直线拟合几何特征的作用就是将一条直线拟合到一组两个或多个点上。这个几何特征功能,在寻找直边函数中应该是有使用的。寻找直边函数中先是使用耙子函数得到一系列的边缘点,然后利用这些边缘点使用拟合直线函数拟合出直线。所以,在选择点时,尽量选择一条直边上的点。拟合功能和选择点的顺序是没有关系的。
使用边缘检测器检测直边上的边缘点
使用边缘检测器得到的边缘点拟合直线:偏差非常小
这里的角度结果可能是有点问题的。水平时的角度是90或270度左右,而垂直的直边的角度则是0或360度左右,难道搞反了?这个在VBAI中是正常的:
VBAI中的几何-直线拟合函数表现正常
在VBAI中拟合直线的结果有角度、偏差、直线的起点和终点。角度也比较正常,拟合的水平直线的角度约有180度左右。
视觉助手2023Q1中的拟合直线结果仍然不正常
打开前面导出的卡尺函数查看内部的拟合直线功能的实现程序框图:
卡尺算法的拟合直线实现程序框图
卡尺算法的水平角度实现程序框图
卡尺算法的垂直角度实现程序框图
可以看到,卡尺算法中的水平角度的实现,其实是通过起点X方向+100来辅助构建了一条水平线。但是在拟合直线中,则是在Y方向+100来辅助构建了一条垂直线,和卡尺算法中的垂直角度实现类似。所以,在视觉助手中的拟合直线的角度,实际反映的是垂直方向的角度,这种表示方法在视觉助手中是有问题的。