[英]opencv corner detection on object contour
我有一个熔炼立方体的图像,随着时间的推移形成一个液滴。 到目前为止,我提取了它的轮廓,但接下来我需要区分物体和表面。 我的想法是检测物体接触表面的角落,但我很难找到一个合理的方法如何这样做(最好使用opencv的c ++接口)。 我很感激任何建议。
以下是提取轮廓的一些示例:
编辑:@Haris:
我试过你的建议的一个变种,它正在为我做的工作:
在近似轮廓i中,从左侧接近,查找具有指定范围内的值的第一个角度,然后从右侧查找相同的角度。 由于近似轮廓点是原始轮廓点的子集,然后我识别原始序列中的2个角点,并在两个角处切割它。 中间部分我作为液滴,左右部分,我重新定位为我的表面线。 可能有更好,更稳定的方法,但这对我有用。 谢谢!
你可以尝试这种方法,
查找轮廓和近似值。
假设您有像P1,P2,P3等大约的点...
现在计算连续线之间的角度,即线(P1,P2),线(P2,P3)之间的角度等。并检查每条调整线的角度差异,如果差值接近90度你可以说那里是一个角落。
对于角度,您可以使用等式
double Angle = atan2(y2 - y1, x2 - x1) * 180.0 / CV_PI;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.