本帖最后由 绝地武士 于 2018-11-23 14:36 编辑
- ImageList:=[]
- ImageList[0]:='C:/Users/Admin/Desktop/1.png'
- ImageList[1]:='C:/Users/Admin/Desktop/2.png'
- for Index:=0 to |ImageList|-1 by 1
- read_image (Image, ImageList[Index])
- rgb1_to_gray (Image, GrayImage)
- threshold (GrayImage, Region, 60, 255)
- connection (Region, ConnectedRegions)
- select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)
- closing_circle (SelectedRegions, RegionClosing, 50)
- region_to_spoke (RegionClosing, 300, SpokeRows1, SpokeCols1)
- *gen_cross_contour_xld (Cross, SpokeRows, SpokeCols, 15, 0.785398)
- spoke (GrayImage, Regions, 30, 30, 15, 1, 20, 'all', 'max', SpokeRows1, SpokeCols1, 'inner', ResultRow1, ResultColumn1, ArcType1)
- pts_to_best_circle (Circle1, ResultRow1, ResultColumn1, ArcType1, 15, RowCenter1, ColCenter1, Radius1, StartPhi1, EndPhi1, PointOrder1, ArcAngle1)
- fill_up (RegionClosing, RegionFillUp)
- difference (RegionFillUp, RegionClosing, RegionDifference)
- region_to_spoke (RegionDifference, 300, SpokeRows2, SpokeCols2)
- *gen_cross_contour_xld (Cross, SpokeRows, SpokeCols, 15, 0.785398)
- spoke (GrayImage, Regions, 30, 30, 15, 1, 20, 'all', 'max', SpokeRows2, SpokeCols2, 'inner', ResultRow2, ResultColumn2, ArcType2)
- pts_to_best_circle (Circle2, ResultRow2, ResultColumn2, ArcType2, 15, RowCenter2, ColCenter2, Radius2, StartPhi2, EndPhi2, PointOrder2, ArcAngle2)
- dev_set_line_width (3)
- dev_display (Image)
- dev_display (Circle1)
- dev_display (Circle2)
- gen_cross_contour_xld (Cross1,RowCenter1, ColCenter1, 15, 0.785398)
- gen_cross_contour_xld (Cross2,RowCenter2, ColCenter2, 15, 0)
- endfor
复制代码
第一张图像可以,第二张要调试下参数,把圆环先填充好再进行 |