问题描述
我正在使用OpenCV和Python开发可以在图像中找到目标图案的软件。 我目前正在寻找所需的目标,并且其中一部分正在运行HSV阈值操作以隔离目标的颜色。 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方法正确运行时应返回什么内容的文档时遇到了麻烦,因此我不确定如何调试此方法。
有谁知道我应该看到什么类型的输出,如果一切正常运行和/或有任何示例?
1楼
我已经解决了这个问题,我想把它放在这里,以防有人遇到类似的问题并在以后进行搜索。
将图像打印到窗口上对我有极大的帮助,因为我的IP摄像机Web查看器,GRIP显示窗口和OpenCV图像都稍有不同,因此我从GRIP得到的阈值根本不起作用,并且仅返回黑色图像。
这是将图像打印到窗口并查看正在使用的方法:
cv2.imshow('image', img) #img is your image, 'image' is the name of the window you'll create
cv2.waitKey(0) #handles GUI elements, and causes the window to close when you press any key
cv2.destroyAllWindows()