使用OpenCV检测曲线形状的中心点

6
我已经尝试了一段时间来寻找曲线形状(例如香蕉)的中心。我可以做所有基础工作,比如创建二进制图像和定位轮廓。然而,重心函数会正确地找到轮廓外的一个点。我需要的点必须在轮廓内部。我附上了一张图片,应该更好地解释了事情。
如果有人有任何想法或看到类似的东西,我真的很感激帮助。

enter image description here


1
请访问此链接:http://www.pyimagesearch.com/2016/02/01/opencv-center-of-contour/ - udit043
你好 @udit043,感谢您的回复。该文章中的示例仅使用基本的多边形和圆形。我正在使用的形状导致重心位于轮廓之外,正如图像所示。您是否见过使用曲线形状的示例? - Razor Robotics
https://dev59.com/gGjWa4cB1Zd3GeqPoTWC - udit043
你如何在数学上表示这个点?就像你放置的点仅仅是基于某种假设,一个是你想让这个点在轮廓线内,除此之外,你究竟希望这个点在哪里呢? - Arijit
你好@ArijitMukherjee,那是一个很好的问题。我不确定如何在数学上定义这个点,但基本上我想要的是轮廓中心的一个点,在该点两侧的质量相等。我目前正在开发一种细化算法,它将侵蚀轮廓成为1像素线,然后我将找到该线的中心。如果您有任何想法,我真的很想找到更快的方法。 - Razor Robotics
1个回答

3
您可以查看这个答案:如何快速找到不规则多边形的“视觉”中心点? 基本上,骨架化算法应该是有帮助的(从效率和准确性来看,与连续侵蚀相比,在某些情况下会失败),因为它们将可能有效点的集合缩小到一组线段,然后您可以对其进行某种条件处理。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接