一维测量中measure_pos和measure_pairs算子
原创锡克步兵团团长 最后发布于2018-11-15 15:23:31 阅读数 2942 收藏
展开
一般我们进行一维尺寸测量有两个关键步骤:
一 设置测量区域
首先需要设定测量区域的大小,一般是通过gen_measure_rectangle2 来查找平面区域的边缘距离,通过gen_measure_arc来设定圆弧区域的边缘距离;
注意生成图像的角度,会影响你找边缘的方向 及找边缘的结果;
二 执行测量任务
在一维测量中有两个测量关键算子measure_pos和measure_pairs
Halcon 的F1文档中关于measure_pos有如下说明:
measure_pos(Image : : MeasureHandle, Sigma, Threshold, Transition, Select : RowEdge, ColumnEdge, Amplitude, Distance)
这个算子会找寻你设定检测区域内的边缘
算子中的参数Threshold和Amplitude 都涉及到边缘的幅度值;
以前 我理解边缘幅度值边缘处渐变的灰度差值,但现在看来这个理解是不准确的,应该是边缘灰度值变化的趋势,因为由黑到白(小变大)和由白到黑(大变小) 在图形中反映出幅度为负和正;因此可以理解这个幅度值是有正负的;
话回参数:
Threshold 设置的是你选取的幅度阈值下限;
Amplitude 获取的是你提取到的边缘处的幅度大小;
Transition=‘positive’ 代表找寻所有正边缘 :所谓正边缘即为在查找方向上从黑到白过渡变化的边缘;
Transition=‘negative’ 代表找寻所有负边缘 :所谓负边缘即为在查找方向上从白到黑过渡变化的边缘;
Transition=‘all’ 代表找寻所有边缘 ;
measure_pairs属于加强版的measure_pos
halcon 的F1文档中关于measure_pairs有如下说明:
measure_pairs(Image : : MeasureHandle, Sigma, Threshold, Transition, Select : RowEdgeFirst, ColumnEdgeFirst, AmplitudeFirst, RowEdgeSecond, ColumnEdgeSecond, AmplitudeSecond, IntraDistance, InterDistance)
首先需要明确几点:
1、这个算子找出的都是边缘对(两个边形成一对边缘),边缘给