天天看点

create_metrology_model

read_image (Image, 'D:/工业相机光源控制/无标题.png')

*threshold (Image, Region1, 69, 255)

binary_threshold (Image, Region, 'smooth_histo', 'light', UsedThreshold)

connection (Region, ConnectedRegions)

*closing_rectangle1 (ConnectedRegions, RegionClosing, 45,45)

*opening_rectangle1 (ConnectedRegions, RegionOpening, 30, 30)

select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 475, 481)

area_center (SelectedRegions, Area, Row, Column)

vector_angle_to_rigid (Row, Column, 0, Row, Column, 0, HomMat2D)

affine_trans_region (SelectedRegions, RegionAffineTrans, HomMat2D, 'nearest_neighbor')

*gen_contour_region_xld (RegionAffineTrans, Contours, 'border')

smallest_circle (RegionAffineTrans, Row2, Column2, Radius)

*smallest_rectangle2(RegionAffineTrans,Row1, Column1, Phi, Length1, Length2)

*gen_rectangle2_contour_xld (Rectangle, Row1, Column1, Phi, Length1, Length2)

*get_contour_xld (Rectangle, Row2, Column2)

*gen_cross_contour_xld (Cross2, Row, Column, 6, Phi)

*gen_cross_contour_xld (Cross1, Row1, Column1, 60, Phi)

*affine_trans_pixel (HomMat2D, Row6[0], Col6[0], RowTrans, ColTrans)

*affine_trans_pixel (HomMat2D, Row6[3], Col6[3], RowTrans1, ColTrans1)

*gen_region_line (RegionLines3, RowTrans, ColTrans, RowTrans1, ColTrans1)

*LinePara:=[RowTrans, ColTrans, RowTrans1, ColTrans1]

*dev_display (RegionLines3)

*测试

*边缘强度

MeasureThreshold:=100

*创建卡尺句柄

create_metrology_model (MetrologyHandle)

*设置被测图尺寸

*set_metrology_model_image_size (MetrologyHandle, 120, 40)

*添加直线模型,卡尺尺寸设定,边缘强度设定

add_metrology_object_circle_measure (MetrologyHandle, Row2, Column2, Radius, 20, 5, 1, 30, [], [], Index2)

*add_metrology_object_ellipse_measure (MetrologyHandle, Row2, Column2, Radius, MeasureThreshold, MeasureThreshold, 20, 5, 1, 30, [], [], Index1)

*add_metrology_object_line_measure (MetrologyHandle,RowTrans, ColTrans, RowTrans1, ColTrans1, 20, 5, 1, 30, [], [], Index)

*add_metrology_object_generic (MetrologyHandle, 'line', LinePara, 20, 3, 1, 40, [], [], Index)

set_metrology_object_param (MetrologyHandle, 'all', 'num_measures',6)

*set_metrology_object_param (MetrologyHandle, 'all', 'num_instances', 1)

*set_metrology_object_param (MetrologyHandle, 'all', 'measure_sigma', 1)

*set_metrology_object_param (MetrologyHandle, 'all', 'measure_threshold',15)

*set_metrology_object_param (MetrologyHandle, 'all', 'measure_interpolation', 'bicubic')

*set_metrology_object_param (MetrologyHandle, 'all', 'measure_select', 'all')

*set_metrology_object_param (MetrologyHandle, 'all', 'min_score', 0.7)

*执行测量

apply_metrology_model (Image, MetrologyHandle)

*获取测量Contours

get_metrology_object_measures (Contours, MetrologyHandle, 'all', 'all', Row3, Column3)

*gen_cross_contour_xld (Cross1, Row3, Column3, 3, 0)

*dev_display (Contours)

*获取测量数据

*get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type', 'all_param', Parameter)

*获取测量直线

get_metrology_object_result_contour (Contour, MetrologyHandle,'all', 'all', 1.5)

*获取直线的两个端点

*smallest_rectangle1_xld (Contour, Row4, Column4, Row21, Column21)

*angle_lx ( Row4, Column4, Row21, Column21, Angle)

*andle:=deg(Angle)

*显示 交点

*gen_cross_contour_xld (Cross, Row21, Column21, 3, Phi+rad(30))

dev_display (Image)

dev_set_color ('red')

dev_display (Contour)

dev_display (Contours)

*dev_display (Cross1)

继续阅读