【问题标题】:Detecting the centre of a curved shape with opencv用opencv检测弯曲形状的中心
【发布时间】:2016-06-02 12:30:41
【问题描述】:

我一直在尝试找到弯曲形状(例如香蕉)的中心。我可以做所有的基础工作,例如创建二值图像和定位轮廓。但是,centroid 函数正确地找到了轮廓之外的点。我需要的点必须在轮廓内。我附上了一张可以更好地解释事情的图片。

如果有人有任何想法,或者看到过类似的东西,我将非常感谢一些帮助。

【问题讨论】:

  • 你好@udit043 谢谢你的回复。那篇文章中的示例仅使用基本的多边形和圆形。我使用的形状导致质心在轮廓之外。如图所示。你见过使用弯曲形状的例子吗?
  • 你如何在数学上表示这样的点??就像您提出的观点只是通过某种假设一样,一件事是您希望该点位于轮廓内,而不是您想要该点的确切位置?
  • 你好@ArijitMukherjee 这是一个好问题。我不确定如何在数学上定义该点,但基本上我想要的是轮廓中心的一个点,该点两侧的质量相等。我目前正在研究一种细化算法,它将轮廓侵蚀为 1 像素线,然后我将找到该线的中心。不过,如果您有任何想法,我真的很想找到一种更快的方法?

标签: python opencv opencv-contour


【解决方案1】:

你可以看看这个答案,What is the fastest way to find the "visual" center of an irregularly shaped polygon?

基本上骨架化算法应该有所帮助(在效率和准确性方面,与连续侵蚀相比,在某些情况下会失败),因为它们将可能的有效点集缩小到一组线段,然后您可以进行某种条件处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-16
    • 2016-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-16
    相关资源
    最近更新 更多