繁体   English   中英

对象轮廓上的opencv角点检测

[英]opencv corner detection on object contour

我有一个熔炼立方体的图像,随着时间的推移形成一个液滴。 到目前为止,我提取了它的轮廓,但接下来我需要区分物体和表面。 我的想法是检测物体接触表面的角落,但我很难找到一个合理的方法如何这样做(最好使用opencv的c ++接口)。 我很感激任何建议。
以下是提取轮廓的一些示例:
1234

编辑:@Haris:

我试过你的建议的一个变种,它正在为我做的工作:

R1R2R2

在近似轮廓i中,从左侧接近,查找具有指定范围内的值的第一个角度,然后从右侧查找相同的角度。 由于近似轮廓点是原始轮廓点的子集,然后我识别原始序列中的2个角点,并在两个角处切割它。 中间部分我作为液滴,左右部分,我重新定位为我的表面线。 可能有更好,更稳定的方法,但这对我有用。 谢谢!

你可以尝试这种方法,

  1. 查找轮廓和近似值。

  2. 假设您有像P1,P2,P3等大约的点...

  3. 现在计算连续线之间的角度,即线(P1,P2),线(P2,P3)之间的角度等。并检查每条调整线的角度差异,如果差值接近90度你可以说那里是一个角落。

对于角度,您可以使用等式

double Angle = atan2(y2 - y1, x2 - x1) * 180.0 / CV_PI; 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM