用的你的第二幅图,提取出主要的部分,剩下的要通过卡尺产生边缘的,涉及到保密算法。。。楼主自行补充!
- read_image (Image, 'G:/51halcon/求边缘/175828m918w140j8uja920.jpg')
- decompose3 (Image, ImageR, ImageG, ImageB)
- create_color_trans_lut ('hsv', 'from_rgb', 8, ColorTransLUTHandle)
- apply_color_trans_lut (ImageR, ImageG, ImageB, ImageH, ImageS, ImageV, ColorTransLUTHandle)
- threshold (ImageS, Region, 60, 255)
- closing_circle (Region, RegionClosing, 5.5)
- connection (RegionClosing, ConnectedRegions)
- select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 10000, 700000)
- count_obj (SelectedRegions, Number)
- for Index:=1 to Number by 1
- select_obj (SelectedRegions, ObjectSelected, Index)
- dilation_circle (ObjectSelected, RegionDilation, 20)
- erosion_circle (ObjectSelected, RegionErosion, 20)
- difference (RegionDilation, RegionErosion, RegionDifference)
-
- rgb1_to_gray (Image, GrayImage)
- reduce_domain (GrayImage, RegionDifference, ImageReduced)
- * create_shape_model (ImageReduced, 'auto', -0.39, 0.79, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
- * get_shape_model_contours (ModelContours, ModelID, 1)
- * find_shape_model (GrayImage, ModelID, -0.39, 0.78, 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)
- * dev_display_shape_matching_results (ModelID, 'red', Row, Column, Angle, 1, 1, 0)
- endfor
复制代码
|