从热图,计算离散点

时间:2014-10-15 00:40:55

标签: opencv computer-vision heatmap threshold

很抱歉,如果这个问题可能听起来像另一个我太懒了google ,我找不到我要找的东西。

这个问题是为了避免重新发明轮子。我认为我正在寻找的东西可能存在,所以我不想开始自己实现它:

我想将热图转换为离散点列表。我确信可以使用一种算法,首先对热图进行阈值处理,然后,对于由阈值处理创建的每个“岛”,找到重力中心。这个中心将是一个点。我想得到这些要点的清单:

第0步:

第1步:

第2步:

我想知道这样的算法是否已经存在,或者是否有比我的想法更好的方法。此外,如果有一个随时可用的实现,那将是完美的。例如。像OpenCV这样的计算机视觉库包含了阈值。我只是找不到下一步。

我的目标平台是iOS,因此对于实现,首选Objective-C,C或C ++。

3 个答案:

答案 0 :(得分:3)

有很多方法可以达到您想要的效果。这是其中之一:

通过应用cv::threshold();,您应该得到以下内容:

enter image description here

现在是cv::distanceTransform();cv::normalize();

的时候了

enter image description here

通过应用cv::applyColorMap();

,您可以更好地了解它

enter image description here

下一步,cv::connectedComponents();以确保不会有任何连接:

enter image description here

最后cv::approxPolyDP();cv::minEnclosingCircle();找到中心:

enter image description here

我希望这有用!

保持良好的工作并享受乐趣:)

答案 1 :(得分:2)

你可以做到

答案 2 :(得分:0)

您可以查看我的帖子,了解下面提到的链接问题。基本上,在阈值处理后,你可以获得一些圆圈或椭圆形。然后,您可以在它们上面拟合高斯混合模型来估计精确的中心。有许多现有的库可以适应GMM

Robust tracking of blobs