OpenCV-Python:如何检测热图像中的热点?

我正在使用openCV和
Python制作一个计算机视觉应用程序,用于检测来自热像仪的图像中的热点.

图像基本上是一个大机器,我想得到最热的(就温度而言)图像的一部分.
到目前为止我的想法:

>使用颜色量化(和K-means)将颜色数量减少到8.
>使用某种阈值处理并获得具有大量红色的簇(因为通常红色=更多热量).

现在我已经成功完成了第一部分.我有一个仅包含8种颜色的量化图像.
我到目前为止所做的所有阈值处理都需要我自己设置颜色范围(即使用cv2.inRange函数创建一个桅杆,然后使用cv2.bitwiseAND将蒙版应用于图像).但在这里我希望它是动态的,所以它只是最热门的部分.即使只有很少的红色,它应该让我得到最红的区域.

那么这样做的方法是什么?

(另外,通过“热点”,这里我指的是实际的热点.即具有最高温度的斑点.)

编辑:
正如Photon提到的评论,目前我正在计算红色直方图并使用它来设置阈值.
我希望进一步优化这一点,所以让我知道是否存在更有效的方法. (这个过程应该很快.我可以在一定程度上妥协)

最佳答案 为了动态估计阈值,您需要查看数据的分布.为此,您需要计算红色的直方图.

然后,找到一个阈值,使得一定百分比的像素低于它.例如90%.

点赞