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

在这里插入图片描述
结合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)

效果
在这里插入图片描述
在这里插入图片描述

  • 12
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
这段代码是使用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函数等待用户按下任意键,关闭窗口。 需要注意的是,这段代码仅适用于特定的输入图像,对于其他图像可能需要调整颜色范围和去噪参数等。同时,这种方法只能将灰色的花朵着色为蓝色,对于其他颜色的花朵可能需要采用其他着色策略。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值