1、最小二乘法法,即,拟合 y= ax +b中的a和b
2、检测点是否在直线上,也就是计算点到直线的距离是否小于我们设置的阈值。
具体做法,取直线的法向量为,则距离s满足
p为待测点到直线上任一点的向量
3、RANSAC匹配
(1)在所有的数据点中随机取m(m>2)个点,使用最小二乘法拟合一条直线;
(2)在剩余点中,检测到直线距离小于设置阈值的点的个数,如果个数多于之前记录的最优值,则替换直线参数,并记录此次的点数为最优值;
(3)是否达到设置的迭代次数,若是,则输出直线参数并结束,否则重新迭代,回到步骤(1);
4、图像匹配中滤除误匹配的应用
图像匹配中,两幅图特征点的转换关系可以用单应性矩阵H表示,
其中,表示目标图像角点的位置,表示场景图像角点位置,s为尺度参数
一个目标图像角点位置和其对应的场景图像角点位置代表一组点对。单应性矩阵有8个未知数,每组数据点对可以列2个方程,所以至少需要4组数据点对,则矩阵方程为
令,则。其中,Pinv表示伪逆矩阵。H'表示归一化的单应性矩阵。
计算出H‘后,则将剩下的点对进行投影误差计算
RANSAC的作用就是找出最优的单应性矩阵。步骤
(1) 随机抽出m(m>4)个样本数据,计算出单应性矩阵H',记为模型M;
(2) 使用剩余的点对计算投影误差,检测误差小于设置阈值的点的个数,如果个数多于之前记录的最优值,则替换H',并记录此次的点数为最优值;
(3) 是否达到设置的迭代次数,若是,则输出H'并结束,否则重新迭代,回到步骤(1);
参考博客