平行线查找模块用于检测图像指定区域内的平行线,输出平行线信息,包括平行线起点/终点、平行线中线起点/终点以及平行线间距,常用于部件平行线特征的检测。
本节内容包含:
在流程中:
图像源、模板匹配、位置修正等模块可作为平行线查找的前序模块,为平行线查找在图像指定区域精确定位平行线。模板匹配和位置修正做粗定位,平行线查找做精定位。
平行线查找对后序模块无特殊要求。可接收并处理平行线信息的模块均可作为平行线查找的后续模块。
平行线查找的检测结果中,两条绿色粗线为一组平行线,中间细线为中线。
以下仅介绍该模块的运行参数详情。通过配置运行参数,可定义当前模块如何处理输入的数据。
参数 |
描述 |
|
---|---|---|
边缘类型 |
最宽 |
检测ROI内间距最大的边缘对。 |
最窄 |
检测ROI内间距最小的边缘对。 |
|
最强 |
检测ROI内边缘对平均梯度最大的边缘对。 |
|
最弱 |
检测ROI内梯度最小的边缘对。 |
|
第一对 |
检测ROI内边缘对中心与搜索起始点最近的边缘对。 |
|
最后一对 |
检测ROI内边缘对中心与搜索起始点最远的边缘对。 |
|
最接近 |
检测ROI内和理想宽度最接近的边缘对集合。 |
|
最不接近 |
检测扫ROI内和理想宽度最不接近的边缘对集合。 |
|
边边缘极性 |
边缘的灰度值变化类型,包括从黑到白、从白到黑以及任意。下图绿色箭头所示为白到黑,红色箭头所示为黑到白。此处“黑”和“白”仅表示灰度值的强弱程度。 ![]() |
|
边缘阈值 |
边缘阈值即梯度阈值,范围0~255,只有边缘梯度值大于该值的边缘点才被检测到。数值越大,抗噪能力越强,得到的边缘数量越少,甚至导致目标边缘点被筛除。如下图所示,在阈值设为10时是可以识别出边缘并找出平行线,而在阈值设为200后,边缘无法被定位到,也就无法找到平行线。 ![]() |
|
滤波尺寸 |
描述目标边缘的清晰程度,最小值为1,值越小,表示边缘越清晰且过滤带小。当边缘模糊或有噪声干扰时,增大该值有利于使得检测结果更加稳定,但如果边缘与边缘之间挨得太近(距离小于滤波尺寸)时反而会影响边缘位置的精度甚至丢失边缘。具体原理参考直线查找中的同名参数。 |
|
卡尺数量 |
定义卡尺的数量。边缘点由多个卡尺提取出。 |
|
最大角度差 |
两条目标直线的角度差小于该值时才会被判定为平行线。 |
|
剔除点数 |
详见直线查找中的同名参数。 |
|
剔除距离 |
允许离群点到拟合直线的最大像素距离,值越小,排除点越多,原理以及操作请参考圆查找运行参数中的同名参数。 |
|
滤波尺寸 |
对噪点起到过滤作用,数值越大抗噪能力越强,得到的边缘数量越少,同时也可能导致目标边缘被筛除。 |
|
投影宽度 |
即卡尺的宽度(下图中蓝色矩形的宽度)。在一定范围内增大该值可以获取更加稳定的边缘点。 ![]() |
|
初始拟合 |
详见直线查找中的同名参数。 |
|
拟合方式 |
包括最小二乘、huber和tukey三种。三种拟合方式只是权重的计算方式有些差异。随着离群点数量增多以及离群距离增大,可逐次使用最小二乘、huber和tukey。 |
该模块输出结果中各项参数详情,请参见平行线查找模块的输出结果。