当前位置: 代码迷 >> python >> 如果成功,OpenCV中的HSV阈值应返回什么?
  详细解决方案

如果成功,OpenCV中的HSV阈值应返回什么?

热度:130   发布时间:2023-06-13 13:37:18.0

我正在使用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方法正确运行时应返回什么内容的文档时遇到了麻烦,因此我不确定如何调试此方法。

有谁知道我应该看到什么类型的输出,如果一切正常运行和/或有任何示例?

我已经解决了这个问题,我想把它放在这里,以防有人遇到类似的问题并在以后进行搜索。

将图像打印到窗口上对我有极大的帮助,因为我的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()