read_image (Image0, 'E:/TEST/halcon视频学习/测量边缘/图片/0.bmp')
get_image_size (Image0, Width, Height)
dev_set_draw ('margin')
dev_set_color ('red')
rgb1_to_gray (Image0, GrayImage)
threshold (GrayImage, Regions, 200, 255)
fill_up (Regions, RegionFillUp)
connection (RegionFillUp, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, ['circularity','area'], 'and', [0.8837,40201.5], [1,900000])
closing_circle (SelectedRegions, RegionClosing, 173.5)
area_center (RegionClosing, Area, Row0, Column0)
gen_cross_contour_xld (Cross, Row0, Column0, 16, 0.785398)
Radius:= sqrt(Area/rad(180))
CircleParam := [Row0,Column0,Radius]
gen_region_line (ROI_0, 601.965, 172.121, 607.73, 584.046)
LineParam := [ 601.965, 172.121, 607.73, 584.046]
LineRows:=[601.965,607.73]
LineColumns:=[172.121,584.046]
list_files ('E:/TEST/halcon视频学习/测量边缘/图片', ['files','follow_links','recursive'], ImageFiles)
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
for Index1 := 0 to |ImageFiles| - 1 by 1
read_image (Image, ImageFiles[Index1])
* Image Acquisition 01: Do something
rgb1_to_gray (Image, GrayImage)
threshold (GrayImage, Regions, 200, 255)
fill_up (Regions, RegionFillUp)
connection (RegionFillUp, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, ['circularity','area'], 'and', [0.8837,40201.5], [1,900000])
closing_circle (SelectedRegions, RegionClosing, 173.5)
area_center (RegionClosing, Area, Row1, Column1)
gen_cross_contour_xld (Cross, Row1, Column1, 16, 0.785398)
Radius:= sqrt(Area/rad(180))
gen_circle_contour_xld (ContCircle, Row1, Column1, Radius, 0, 6.28318, 'positive', 1)
CircleParam := [Row1,Column1,Radius]
vector_angle_to_rigid (Row0, Column0, 0, Row1, Column1, 0, HomMat2D)
affine_trans_pixel (HomMat2D, LineRows, LineColumns, RowTrans2, ColTrans2)
LineParam:=[RowTrans2[0],ColTrans2[0],RowTrans2[1],ColTrans2[1]]
create_metrology_model (MetrologyHandle)
set_metrology_model_image_size (MetrologyHandle, Width, Height)
create_metrology_model (MetrologyHandle1)
set_metrology_model_image_size (MetrologyHandle1, Width, Height)
add_metrology_object_generic (MetrologyHandle, 'circle', CircleParam, 20, 5, 1, 30, [], [], Index)
get_metrology_object_model_contour (Contour, MetrologyHandle, 'all', 1.5)
apply_metrology_model (GrayImage, MetrologyHandle)
get_metrology_object_measures (Contours, MetrologyHandle, 'all', 'all', Row1, Column1)
get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type', 'row', UsedRow)
get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type', 'column', UsedColunm)
gen_cross_contour_xld (Cross, UsedRow, UsedColunm, 16, 0.785398)
get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type', 'radius', UsedRadius)
gen_circle_contour_xld (UsedCircle, UsedRow, UsedColunm, UsedRadius, 0, 6.28318, 'positive', 1)
add_metrology_object_generic (MetrologyHandle1, 'line', LineParam, 20, 5, 1, 30, [], [], Index)
get_metrology_object_model_contour (Contour, MetrologyHandle, 'all', 1.5)
apply_metrology_model (GrayImage, MetrologyHandle1)
get_metrology_object_measures (Contours, MetrologyHandle1, 'all', 'all', Row1, Column1)
get_metrology_object_result (MetrologyHandle1, 'all', 'all', 'result_type', 'row_begin', UsedRowBegin)
get_metrology_object_result (MetrologyHandle1, 'all', 'all', 'result_type', 'column_begin', UsedColunmBegin)
get_metrology_object_result (MetrologyHandle1, 'all', 'all', 'result_type', 'row_end', UsedRowEnd)
get_metrology_object_result (MetrologyHandle1, 'all', 'all', 'result_type', 'column_end', UsedColunmEnd)
gen_region_line (RegionLines, UsedRowBegin, UsedColunmBegin, UsedRowEnd, UsedColunmEnd)
clear_metrology_model (MetrologyHandle)
clear_metrology_model (MetrologyHandle1)
orientation_region (RegionLines, Phi1)
* elliptic_axis_points_xld (RegionLines, Ra, Rb, Phi)
* elliptic_axis_xld (RegionLines, Ra1, Rb1, Phi1)
tuple_deg (Phi1, Deg)
Deg:= Deg-180
dev_display (GrayImage)
dev_display (UsedCircle)
dev_display (RegionLines)
disp_message (3600, 'x='+(1.0*UsedColunm)+'\r\ny='+UsedRow, 'image', UsedRow[0],UsedColunm[0], 'red', 'false')
disp_message (3600, 'angle='+Deg, 'image', UsedRowBegin[0],UsedColunmBegin[0], 'red', 'false')
stop ()
endfor
|