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)