很抱歉,如果这个问题可能听起来像另一个我太懒了google ,我找不到我要找的东西。
这个问题是为了避免重新发明轮子。我认为我正在寻找的东西可能存在,所以我不想开始自己实现它:
我想将热图转换为离散点列表。我确信可以使用一种算法,首先对热图进行阈值处理,然后,对于由阈值处理创建的每个“岛”,找到重力中心。这个中心将是一个点。我想得到这些要点的清单:
第0步:
第1步:
第2步:
我想知道这样的算法是否已经存在,或者是否有比我的想法更好的方法。此外,如果有一个随时可用的实现,那将是完美的。例如。像OpenCV这样的计算机视觉库包含了阈值。我只是找不到下一步。
我的目标平台是iOS,因此对于实现,首选Objective-C,C或C ++。
答案 0 :(得分:3)
有很多方法可以达到您想要的效果。这是其中之一:
通过应用cv::threshold();
,您应该得到以下内容:
现在是cv::distanceTransform();
和cv::normalize();
通过应用cv::applyColorMap();
下一步,cv::connectedComponents();
以确保不会有任何连接:
最后cv::approxPolyDP();
和cv::minEnclosingCircle();
找到中心:
我希望这有用!
保持良好的工作并享受乐趣:)
答案 1 :(得分:2)
你可以做到
在源上应用Threshold二进制文件。
最后使用Image Moment计算轮廓质量中心。
答案 2 :(得分:0)
您可以查看我的帖子,了解下面提到的链接问题。基本上,在阈值处理后,你可以获得一些圆圈或椭圆形。然后,您可以在它们上面拟合高斯混合模型来估计精确的中心。有许多现有的库可以适应GMM