博主写作不容易,孩子需要您鼓励     万水千山总是情 , 先点个赞行不行     
查找圆环缺陷
 
read_image  ( Image ,  'F:/HALCON/圆环划痕处理/10_33221_ba4582f0e88ec79.bmp' ) 
rgb3_to_gray  ( Image ,  Image ,  Image ,  ImageGray ) 
dev_close_window  ( ) 
dev_open_window_fit_image  ( ImageGray ,  0 ,  0 ,  - 1 ,  - 1 ,  WindowHandle ) 
get_image_size  ( ImageGray ,  Width ,  Height ) 
auto_threshold  ( ImageGray ,  Regions ,  2 ) 
select_obj  ( Regions ,  ObjectSelected ,  1 ) 
complement  ( ObjectSelected ,  RegionComplement ) 
fill_up  ( RegionComplement ,  RegionFillUp ) 
difference  (  RegionFillUp , RegionComplement ,  RegionDifference ) 
smallest_circle  ( RegionDifference ,  Row ,  Column ,  RadiusIn ) 
boundary  ( RegionFillUp ,  RegionBorder ,  'outer' ) 
dilation_circle  ( RegionBorder ,  RegionDilation ,  3.5 ) 
reduce_domain  ( ImageGray ,  RegionDilation ,  ImageReduced ) 
edges_sub_pix  ( ImageReduced ,  Edges , 'canny' ,  0.5 ,  20 ,  40 ) 
segment_contours_xld  ( Edges ,  ContoursSplit ,  'lines_circles' ,  5 ,  4 ,  2 ) 
union_cocircular_contours_xld  ( ContoursSplit ,  UnionContours ,  0.9 ,  0.5 ,  0.5 ,  200 ,  50 ,  50 ,  'true' ,  1 ) 
length_xld  ( UnionContours ,  Length ) 
select_obj  ( UnionContours ,  LongestContour ,  sort_index ( Length ) [ | Length |  -  1 ]  +  1 ) 
fit_circle_contour_xld  ( LongestContour ,  'algebraic' ,  - 1 ,  0 ,  0 ,  3 ,  2 ,  Row1 ,  Column1 ,  RadiusOUT ,  StartPhi ,  EndPhi ,  PointOrder ) 
gen_circle  ( Circle ,  Row1 ,  Column1 ,  RadiusOUT ) 
dilation_circle  ( Circle ,  RegionDilation ,  5 ) 
erosion_circle  ( Circle ,  RegionErosion , RadiusOUT-RadiusIn + 5 ) 
difference  ( RegionDilation ,  RegionErosion ,  RegionDifference1 ) 
erosion_circle  ( RegionDifference1 ,  RegionErosion1 , 8 ) 
reduce_domain  ( ImageGray ,  RegionDifference1 ,  ImageReduced1 ) 
polar_trans_image_ext  ( ImageReduced1 ,  PolarTransImage ,  Row1 ,  Column1 ,  0 ,  rad ( 360 ) ,  RadiusIn ,  RadiusOUT ,  6.28 * RadiusOUT ,  RadiusOUT-RadiusIn ,  'nearest_neighbor' ) 
dev_open_window_fit_image  ( PolarTransImage ,  0 ,  0 ,  - 1 ,  - 1 ,  WindowHandle1 ) 
mean_image  ( PolarTransImage ,  ImageMean ,  100 ,  3 ) 
dyn_threshold  ( PolarTransImage ,  ImageMean ,  RegionDynThresh ,  10 ,  'dark' ) 
connection  ( RegionDynThresh ,  ConnectedRegions ) 
select_shape  ( ConnectedRegions ,  SelectedRegions ,  'area' ,  'and' ,  5 ,  99999 ) 
polar_trans_region_inv  ( SelectedRegions ,  XYTransRegion ,  Row1 ,  Column1 ,  0 ,  rad ( 360 ) ,  RadiusIn ,  RadiusOUT ,  6.28 * RadiusOUT ,  RadiusOUT-RadiusIn ,  Width ,  Height ,  'nearest_neighbor' ) 
intersection  ( RegionErosion1 ,  XYTransRegion ,  RegionIntersection ) 
dev_set_window  ( WindowHandle ) 
dev_display  ( ImageGray ) 
dev_display  ( RegionIntersection ) 
 
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 分割线
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 博主简介:  工业自动化上位机软件工程师、机器视觉算法工程师、运动控制算法工程师。目前从业于智能制造自动化行业。  博主邮箱:2296776525@qq.com