read_image (Image, '1.bmp')
dev_close_window()
dev_open_window_fit_image(Image, 0, 0, -1, -1, WindowHandle)
dev_display(Image)
threshold(Image, Region, 0, 80)
closing_circle(Region, RegionClosing, 5)
fill_up(RegionClosing, RegionFillUp)
*求外圆
opening_circle(RegionFillUp, RegionOpening1, 2)
connection(RegionOpening1, ConnectedRegions1)
select_shape_std(ConnectedRegions1, SelectedRegions1, 'max_area', 50)
gen_contour_region_xld(SelectedRegions1, Contours, 'border')
fit_circle_contour_xld(Contours, 'algebraic', -1, 0, 0, 3, 2, Row, Column, Radius, StartPhi, EndPhi, PointOrder)
gen_circle_contour_xld(ContCircle, Row, Column, Radius, 0, 6.28318, 'positive', 1)
*求内圆
difference(RegionFillUp, RegionClosing, RegionDifference)
opening_circle(RegionDifference, RegionOpening, 2)
connection(RegionOpening, ConnectedRegions)
select_shape_std(ConnectedRegions, SelectedRegions, 'max_area', 70)
gen_contour_region_xld(SelectedRegions, Contours1, 'border')
smallest_circle_xld(Contours1, Row1, Column1, Radius1)
gen_circle_contour_xld(ContCircle1, Row1, Column1, Radius1, 0, 6.28318, 'positive', 1)
*显示
dev_clear_window()
dev_display(Image)
dev_display(ContCircle1)
dev_display(ContCircle)
disp_message(WindowHandle, '厚度为:'+(Radius-Radius1), 'window', Row1, Column1, 'black', 'true')
|