python:更换图片背景色

您所在的位置:网站首页 图片背景换成黑色 python:更换图片背景色

python:更换图片背景色

2024-07-17 13:33| 来源: 网络整理| 查看: 265

导读

使用python cv2模块识别、更换图片背景。

思路参考:20行代码教你用python给证件照换底色

一、安装、加载依赖 pip install opencv-python import cv2 import numpy as np 二、读取图片

cv2.imread:读取 cv2.imshow:窗口展示 cv2.waitKey:等待

img = cv2.imread('wang.jpg') # 读取照片 cv2.imshow('img', img) # 显示图像 cv2.waitKey(0) # 窗口等待的命令,0表示无限等待 三、缩放图片

cv2.resize:缩放 image.shape:获取尺寸

1 原图尺寸

rows, cols, channels = img.shape print(rows, cols, channels)

2 缩小后尺寸

img2 = cv2.resize(img, None, fx=0.5, fy = 0.5) rows, cols, channels = img2.shape print(rows, cols, channels)

3 缩小后图片

cv2.imshow('img', img2) cv2.waitKey(0) 四、取背景色像素位置

1 图片转为灰度值

cv2.cvtColor():获取灰度值

hsv = cv2.cvtColor(img2, cv2.COLOR_BGR2HSV) cv2.imshow('hsv',hsv) cv2.waitKey(0)

2 二值化处理图片

cv2.inRange(hsv, lower, upper): 二值化处理,低于lower和高于upper的部分分别变成0(黑色),lower upper之间的值变成255(白色)

lower_blue=np.array([110,100,100]) upper_blue=np.array([130,255,255]) mask = cv2.inRange(hsv, lower_blue, upper_blue) mask_tmp = cv2.inRange(hsv, lower_blue, upper_blue)

白色就是背景的像素位置了

取色参考:opencv 颜色空间转换 以及cv2.cvtColor(),cv2.inRange()

五、更改背景

遍历图片像素点,给背景的色重新赋值

# 遍历每个像素点,进行颜色的替换 for i in range(rows): for j in range(cols): if mask[i,j]==255: # 像素点: 255 = 白色 #img2[i,j]=(0,0,255) # 白色 -> 红色 #img2[i,j]=(0,255,0) # 白色 -> 绿色 #img2[i,j]=(255,0,0) # 白色 -> 蓝色 #img2[i,j]=(255,0,255) # 白色 -> 品红色 #img2[i,j]=(0,255,255) # 白色 -> 黄色 img2[i,j]=(255,255,0) # 白色 -> 青色 cv2.imshow('img', img2) cv2.waitKey(0)


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3