我们首先加载需要处理的图像。 随后定义红色的颜色范围(在BGR格式中)。 然后,使用cv2.inRange函数创建一个遮罩,该函数会返回一个与原图同大小的数组,其中匹配指定颜色的区域为白色,其他区域为黑色。 接着,我们建立一个全是蓝色的替换图像。 利用位运算(cv2.bitwise_and),将红色区域替换为蓝色,最后生成处理后的图像。
python opencv 颜色替换 opencv改变图像颜色 目标 • 学习如何对图像颜色空间转换,比如从 BGR 到灰度图,或者从 BGR 到 HSV 等。 • 创建一个程序用来从一幅图像中获取某个特定颜色的物体。 • 掌握函数cv2.cvtColor()、cv2.inRange() 等的常用法。 1.颜色空间转换 在OpenCV 中有 150 中颜色空间转换的方...
erode=cv2.erode(binary_img,None,iterations=1)dilate=cv2.dilate(erode,None,iterations=1)# cv2.imshow('dilate',dilate)# 遍历替换foriinrange(rows):forjinrange(cols):ifdilate[i,j]==255:# 此处替换颜色,为BGR通道 new_img[i,j]=(0,0,255)#(0,0,255)替换为红底(255,255,255)替换为白底 c...
有时为了计算方便,会将图片的颜色空间转换成别的类型。 OpenCV 提供了 cv2.cvtColor() 方法可以实现不同色彩空间之间的转换。例如,将 RGB 转换为 HSV、LAB 或 YUV,或者反向转换,都可以通过该函数实现。 常见的色彩空间转换 cv2.COLOR_BGR2RGB:BGR 转 RGB cv2.COLOR_BGR2HSV:BGR 转 HSV cv2.COLOR_BGR2LAB:...
6.遍历像素点进行替换 最后回到我们的题目,要对证件照的背景色进行替换。在之前的步骤中,我们把人物全设置为了黑色,而背景统统变成了白色。因此最后我们只需要遍历每个像素点,把所有的白色像素点设置为我们想要的颜色就OK啦。 importcv2importnumpy as np#读取图片img = cv2.imread('1.jpg') ...
dilate[i,j]==255:像素点为255表示的是白色,我们就要将白色处的像素点,替换为你想要的照片底色。 img[i,j]=(0,0,255):此处替换颜色,为BGR通道,不是RGB通道,若是想要将红底变成蓝底img[i,j]=(255,0,0),若是想将蓝底变为红底则img[i,j]=(0,0,255),若是想变白底img[i,j]=(255,255,255...
# 颜色替换 imageNew=np.copy(image)rows,cols,channels=image.shapeforiinrange(rows):forjinrange(cols):ifr[i,j]==255:# 像素点为255表示的是白色,我们就是要将白色处的像素点,替换为红色 imageNew[i,j]=(0,0,255)# 此处替换颜色,为BGR通道,不是RGB通道 ...
下面来做一件事,就是颜色替换。当然这个只是很简单的颜色替换。 颜色替换 我下面要做的是把图中的蓝色换成绿色,并且亮度还要一样,其实很简单,我们只需要调换蓝色和绿色通道的亮度就可以了。 这样子有点怪,我们要做的不是这样的,应该是单独把比较蓝色的拿出来换成绿色而不是全部都换。那么我们要用一下inRange函...
4.遍历替换颜色 遍历每一个像素的值,如果发现是白色(即原照片的蓝色区域)就将其变为红色 这样变换出来的图片就为红底的。原图与现图对比:这里实现了蓝底变红底,要是实现变白底,只需要让第四步的遍历替换中的代码 img[i, j] = (0, 0, 255)变为img[i, j] = (255, 255, 255)即可,感兴趣的...