import cv2
import numpy as np
# 1、读取照片
img=cv2.imread(r'C:\Users\Desktop\123.jpg')
rows,cols,channels = img.shape
cv2.imshow('img',img)
# 2、图片的二值化处理
### 二值化处理将图片转为黑白两色,但因为本来就是白底照片,因此在设置颜色上需要调整。
### lower~upper之间的值将变成255(纯白) 其他均变为0(纯黑)
lower = np.array([251,251,251])
upper = np.array([256,256,256])
mask = cv2.inRange(img, lower, upper)
cv2.imshow('mask',mask)
# 3、图像的腐蚀膨胀
# kernel = np.ones((2, 2), np.uint8) 这里经过测试选择None代替kernel
erode=cv2.erode(mask,None,iterations=1) #进行腐蚀操作
cv2.imshow('erode',erode)
### dilate进行膨胀操作,iterations=3是为了将白色区域增强,否则换背景色时会出现裸漏色
dilate=cv2.dilate(erode,None,iterations=3)
cv2.imshow('dilate',dilate)
# 4、遍历替换底色
for i in range(rows):
for j in range(cols):
if dilate[i,j]==255: # 像素点255是白色
img[i,j]=(219,142,67) # 此处替换颜色,为BGR通道,不是RGB通道
cv2.imshow('red',img)
# 窗口等待的命令,0表示无限等待
# cv2.waitKey(0)
# 5、保存图片
cv2.imwrite(r'C:\Users\Desktop\gzq.jpg', img)
白底图片转换为蓝底图片
于 2022-06-23 15:56:43 首次发布
5943

被折叠的 条评论
为什么被折叠?



