HSV色彩空间表和cv2.inRange()的用法

https://blog.csdn.net/a13602955218/article/details/84260237

在这里插入图片描述
结合cv2.inRange()可以清晰看到某个颜色区域图像位于图像的什么地方。
用法cv2.inRange(img,low,high),函数会将位于两个区域间的值置为255,位于区间外的值置为0。
比如想要看到青色的区域处于图像中的什么位置,青色的区域是[78,43,46],[99,255,255]

hsv = cv2.cvtColor(rgb_image, cv2.COLOR_BGR2HSV)
lower_red = np.array([78,43,46])
upper_red = np.array(99, 255, 255])
mask = cv2.inRange(hsv, lower_red, upper_red)
cv2.imshow(‘hsv’,mask)
1
2
3
4
5
效果

作者:yyyzhhhhh
来源:CSDN
原文:https://blog.csdn.net/a13602955218/article/details/84260237
版权声明:本文为博主原创文章,转载请附上博文链接!

这段代码是使用OpenCV实现花着色的示例代码。下面是对代码的解释: 1. 使用cv2.imread函数读取输入图像work8.tif,并使用参数-1示读取的是原始图像,包括alpha通道。 2. 将原始图像转换为彩色图像,因为后面需要用到颜色信息。 3. 将彩色图像转换为HSV颜色空间,方便对颜色进行筛选。 4. 设置颜色范围,这里设置了灰色的颜色范围,lower_gray示下限颜色,upper_gray示上限颜色。 5. 使用cv2.inRange函数根据颜色范围创建掩膜,将符合范围的像素设置为白色,不符合的设置为黑色。 6. 使用cv2.morphologyEx函数对掩膜进行去噪操作,这里采用了开运算操作,可以去除一些小的噪点。 7. 使用cv2.bitwise_and函数获取花的部分,将原始图像和掩膜做按位与操作,得到的结果就是花的部分。 8. 定义一个颜色数组color,将需要着色的部分变为蓝色,这里将蓝色通道设置为255,绿色通道设置为255,红色通道设置为0。 9. 复制原始图像img,将需要着色的部分按照掩膜进行着色,将值为1的部分设置为蓝色,其余部分保持不变。 10. 显示结果,使用cv2.imshow函数展示着色后的花图像和原始图像。使用cv2.waitKey函数等待用户按下任意键,关闭窗口。 需要注意的是,这段代码仅适用于特定的输入图像,对于其他图像可能需要调整颜色范围和去噪参数等。同时,这种方法只能将灰色的花朵着色为蓝色,对于其他颜色的花朵可能需要采用其他着色策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值