使用开放式简历检测弧的中心

时间:2020-07-08 22:11:39

标签: python opencv image-processing geometry

我正在尝试使用开放式cv检测如下所示的圆弧的中心和半径。我尝试了很多事情并进行了很多搜索,但无法弄清楚。可以请人帮我吗?我真的很高兴。

https://i.stack.imgur.com/vjb8Z.png https://i.stack.imgur.com/FTSHC.png

2 个答案:

答案 0 :(得分:4)

我不会使用OpenCV进行中心查找,而是使用简单的2D几何体来查找自身,而是参见Circular approximation of polygon (or its part)中的第一个项目符号,因此:

  1. 过滤掉不在曲线上的斑点

    细分并删除太小的(未连接的)斑点

  2. 在曲线上找到3个点

    它们应该彼此隔开足够的距离,并应形成2条线(黑色)。您可以应用细化算法来提高精度。而不是简单地从曲线中找到2个最远的点,并且在它们之间的一半处找到一个点。

  3. 从中点(棕色)投射法向轴

    通过交换方向向量x,y并否定其中一个,从而(-y,x)(y,-x)来简单地将线的坡度旋转90度。

  4. 找到十字路口为其要寻找的中心

  5. 查找半径

    它是中心到三个点之间的平均距离...

这是我刚刚在油漆中做过的一个小例子(它的手绘效果并不完美):

center

答案 1 :(得分:1)

这是我的简单方法算法:

  1. 通过宽视角查看角度轮廓,例如:

enter image description here

  1. 逐个检查该宽幅图像的每个像素,并找到轮廓每个点的范数(长度)。 (要清楚:对于每个像素,找到这些轮廓点的长度)
  2. 如果一个像素的所有长度均相等,则该像素为圆的中心。

注意:这是简单的方法,绝对可行。只是不确定计算cpu是否需要很长时间。