0
我正在使用OpenCV和Python开发可以在图像中查找目标模式的软件。我目前正在寻找所需的目标,其中一部分正在运行HSV阈值操作以隔离目标的颜色。该HSV阈值的代码如下所示:如果成功,OpenVV中的HSV阈值应该返回什么?
out = cv2.cvtColor(input, cv2.COLOR_RGB2HSV)
return cv2.inRange(out, (hue[0], sat[0], val[0]), (hue[1], sat[1], val[1]))
hue[]
,sat[]
,并且val[]
在代码的其他地方定义,并包含经实验检验值我正在寻找的HSV范围的阵列。运行此方法后,我添加了打印语句以打印输出。当我在我的相机帧运行这个方法,它的返回这样的:
[[0 0 0 ..., 0 0 0]
[0 0 0 ..., 0 0 0]
[0 0 0 ..., 0 0 0]]
我试图用气球的不同股票的图像包含许多不同的颜色,它返回同样的事情。如果正确工作,我很难找到关于HSV方法应该返回的文档,所以我不确定如何调试。
有没有人知道我应该看到什么类型的输出,如果事情工作正常和/或有任何例子?
cv2.inRange()返回一个二进制图像,这是像素阵列,而不是一个单一的值。因此,所有0都对应于阈值后图像中的黑色像素。 尝试使用imshow查看您的图像。另外,你如何定义“正常工作”?请分享一些图片来说明您期望的输出 –
FYI务必检查[OpenCV颜色转换指标](http://docs.opencv.org/2.4/modules/imgproc/doc/miscellaneous_transformations.html#cvtcolor),手动阈值时非常重要! –
请提供out.dtype,色相,饱和度和色度的下限和上限。 –