计量模型的优点就是拟合效果好、稳定,圆的数据获得输入与上篇线段间距离有一点差别,但大体相同,实验时仍为第一篇的图片
dev_update_off ()
*Im1 Image1 Image2
read_image (Image,'C:/Users/连山人/Desktop/标定板图片/Image1.bmp')
dev_close_window ()
get_image_size (Image,Width, Height)
dev_open_window_fit_image (Image, 0, 0, Width, Height, WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_set_color ('lime green')
dev_set_line_width (3)
dev_display (Image)
*------------------步骤----------------------
*创建计量模型需要的数据结构:MetroLineModel;创建的用于测量的数据结构
create_metrology_model (MetroLineModel1)
* 设置计量对象的图像大小(不是必须的,但可以提高第一次测量的运行时间)
set_metrology_model_image_size (MetroLineModel1, Width, Height)
**------------------步骤----------------------
draw_circle(WindowHandle,RowC1, ColumnC1, Radius1)
draw_circle(WindowHandle,RowC2, ColumnC2, Radius2)
* 添加几个完整的圆圈
CircleParam := [RowC1, ColumnC1, Radius1]
CircleParam := [CircleParam,RowC2, ColumnC2, Radius2]
add_metrology_object_generic (MetroLineModel1, 'circle', CircleParam, 10, 5, 1, 30, [], [], CircleIndices1)
apply_metrology_model (Image, MetroLineModel1)
* 得到一个可视化的测量几何形式
get_metrology_object_result_contour (ContoursfitCir, MetroLineModel1, 'all', 'all', 1.5)
* 提取小圆的半径
get_metrology_object_result (MetroLineModel1, CircleIndices1, 'all', 'result_type', 'all_param', paramAll)
distance_pp( paramAll[0], paramAll[1], paramAll[3], paramAll[4] ,Distancepp)
dev_close_window ()
dev_open_window_fit_image (Image, 0, 0, 640, 640, WindowHandle)
disp_obj (Image, WindowHandle)
dev_display (ContoursfitCir)
Message0 := '圆间距离'+Distancepp
disp_message (WindowHandle, Message0, 'window', -1, -1, 'red', 'true')
stop()