【发布时间】:2016-07-12 05:40:11
【问题描述】:
我正在使用 openCV 和 Python 制作一个计算机视觉应用程序,用于检测热像仪图像中的热点。
图像基本上是一台大型机械,我想获得图像中最热(就温度而言)的部分。
到现在为止我的想法:
- 使用颜色量化(和 K-means)将颜色数量减少到 8 种。
- 使用某种阈值并获得红色最多的集群(因为通常红色=更多热量)。
现在我已经成功完成了第一部分。我有一个仅包含 8 种颜色的量化图像。
到目前为止,我所做的所有阈值处理都需要我自己设置颜色范围(即使用cv2.inRange 函数创建一个桅杆,然后使用cv2.bitwiseAND 将蒙版应用于图像)。但在这里我希望它是动态的,以便它获得最热门的部分。即即使红色很少,它也应该让我得到最红色的区域。
那么有什么方法可以做到这一点?
(另外,这里的“热点”是指实际的热点。即温度最高的点。)
编辑:
正如Photon 的评论所提到的,目前我正在计算红色的直方图并使用它来设置阈值。
我正在寻求进一步优化这一点,所以让我知道是否存在任何更有效的方法。 (这个过程应该很快。我可以在一定程度上妥协准确性)
【问题讨论】:
-
计算红色的直方图,并根据相对位置选择阈值(例如> 90%的总数)
-
这就是我最终所做的。我也在看分水岭,但在 OpenCV 2.x 中实现它时遇到了麻烦
-
@Photon,把你的评论作为答案,这样我可以接受吗?
标签: python opencv computer-vision cluster-analysis