| 这个帖子介绍一维测量一另一个实例, 使用measure_pairs 函数,快速 方便简单地实现内六角扳手的间距与宽度试算。
 
 1.7 halcon 上位机测量内六角扳手间距宽度   *从磁盘读取图片用于后续处理
 read_image (Image, 'bin_switch/bin_switch_1')
 *获取 图片长宽
 get_image_size (Image, Width, Height)
 dev_close_window ()
 *打开 窗口,窗口长宽比与图片保持一致
 dev_open_window_fit_image (Image, 0, 0, 640, 640, WindowHandle)
 set_display_font (WindowHandle, 14, 'mono', 'true', 'false')
 dev_display (Image)
 *
 * Define the rectangular ROI within which the edges will be detected
 * and create the measure.
 Row := 385
 Column := 385
 Phi := rad(-60)
 Length1 := 60
 Length2 := 10
 Interpolation := 'nearest_neighbor'
 *生成一测量矩形区域,后续的测量在些范围内执行,MeasureHandle为矩形句柄,后面函数会用到。
 gen_measure_rectangle2 (Row, Column, Phi, Length1, Length2, Width, Height, Interpolation, MeasureHandle)
 *
 * Determine all edge pairs that have a negative transition, i.e., edge pairs
 * that enclose dark regions.
 Sigma := 1.1
 Threshold := 20
 Transition := 'negative'
 Select := 'all'
 *在上面生成矩形区域内进行,进行边缘对数的进取与计算。
 measure_pairs (Image, MeasureHandle, Sigma, Threshold, Transition, Select, RowEdgeFirst, ColumnEdgeFirst, AmplitudeFirst, RowEdgeSecond, ColumnEdgeSecond, AmplitudeSecond, IntraDistance, InterDistance)
 *
 * Visualize the results
 dev_display (Image)
 dev_set_draw ('margin')
 dev_set_color ('black')
 gen_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2)
 *本地函数,用于显示测得的边缘对尺寸信息,RowEdgeFirst, ColumnEdgeFirst,为边缘对和第一条边缘中心行列坐标
 *RowEdgeSecond, ColumnEdgeSecond,为第二条边缘中心行列坐标,
 *IntraDistance, 为边缘对宽度,
 *InterDistance, 为相邻连续两边缘对间的距离
 *Phi,测量矩形 旋转角度, Length2,测量矩形半高, WindowHandle为显示 信息的窗口句柄
 p_disp_dimensions (RowEdgeFirst, ColumnEdgeFirst, RowEdgeSecond, ColumnEdgeSecond, IntraDistance, InterDistance, Phi, Length2, WindowHandle)
 * 释放前面 创建的矩形句柄
 close_measure (MeasureHandle)
 
 
 |