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 首次发布