我正在尝试为一个颜色范围创建一个遮罩。我知道在将图像传递到inRange之前,我需要将图像转换为HSV。inRange的下两个参数是我们为其创建遮罩的颜色的下限值和上限值
下面和上面是什么颜色空间
根据这里的答案,我看过HSV和BGR。文档中没有指定要使用的特定颜色空间。例如,这个答案(How to define a threshold value to detect only green colour objects in an image :Opencv)说值应该是HSV,但传递的值看起来像BGR(例如255)。 PS-关于选择特定范围的工具/技巧的任何提示?我一直在使用谷歌的颜色选择器
使用以下代码查找特定对象HSV颜色值。并将该HSV值设置为cv2.in范围下限和上限值。这是一个opencv程序,使用您的设备摄像头和轨迹栏,您可以找到HSV上限和下限值:
输出: 对于我的对象,红色HSV上限值为[193188186],下限值为[135127,95]
cv2.inRange()
函数只检查if array elements lie between the elements of two other arrays.因此,如果
src
数组的形状为BGR、RGB或HSV,则上下边界应在相同的颜色空间中。通常,对于颜色分割,HSV颜色空间更常用,但您也可以尝试其他颜色空间相关问题 更多 >
编程相关推荐