OpenCV小孔圆心定位

前面写的使用改进的最小二乘法拟合缺陷圆效果很好,但在小孔的圆心定位上效果大相径庭,原因可能是小孔边缘点坐标数少,同时小孔变形的影响也很大。在王术彬的论文《基于几何特征的圆心定位方法研究与应用》中学到两种方法。
一、直角三角形法
通过在圆内找到一个内接直角三角形,利用斜边的中点为圆心,斜边的一半为半径的性质实现小孔定位。
步骤:

  1. 随机找一个点为A,但最好是第 n / 3 个点,避免所选点位于水平和垂直线上,导致找不到后面两点;
  2. 沿A的 x 方向寻找垂直的B点;
  3. 沿A的 y 方向寻找水平的C点;
  4. 计算B、C点间的中点为圆心,距离为直径。
    在这里插入图片描述
    但该方法易受孔大小的限制,当孔过小时不能找到合适的B、C点,且只适用于完整圆中。

二、中垂线法
利用圆上三点可以构造两条弦,分别做弦的中垂线,两线交点即为圆心,求得半径。
步骤:

  1. 可取第一点为A,第 n / 3个点为B,第 2 * n / 3个点为C点;
  2. 求取两线的斜率和线上一点;
  3. 推导出交点计算公式,利用公式计算圆心:
	x = double(y2 - y1 + k1 * x1 - k2 * x2) / (k1 - k2);
	y = k1*(x - x1) + y1;

在这里插入图片描述
该方法较直角三角形法,计算稍微复杂,但适用范围更广。

三、结果显示
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值