可以通过提取区域来获取目标,然后获取区域边缘拟合矩形,最后通过矩形参数得到需要的那两个角
代码如下:- dev_set_draw ('margin')
- read_image (Image, 'C:/Users/deedee/Desktop/studyhalcon/001.png')
- rgb1_to_gray (Image, GrayImage)
- threshold (GrayImage, Regions, 110, 255)
- connection (Regions, ConnectedRegions)
- select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 5000, 99999)
- fill_up (SelectedRegions, RegionFillUp)
- opening_rectangle1 (RegionFillUp, RegionOpening, 5, 5)
- closing_rectangle1 (RegionOpening, RegionClosing, 30, 30)
- dev_clear_window ()
- dev_display (GrayImage)
- dev_display (RegionClosing)
- select_obj (RegionClosing, ObjectSelected1, 1)
- gen_contour_region_xld (ObjectSelected1, Contours1, 'border')
- fit_rectangle2_contour_xld (Contours1, 'regression', -1, 0, 0, 3, 2, Row, Column, Phi, Length1, Length2, PointOrder)
- gen_rectangle2 (Rectangle1, Row, Column, Phi, Length1, Length2)
- select_obj (RegionClosing, ObjectSelected2, 2)
- gen_contour_region_xld (ObjectSelected2, Contours2, 'border')
- fit_rectangle2_contour_xld (Contours2, 'regression', -1, 0, 0, 3, 2, Row, Column, Phi, Length1, Length2, PointOrder)
- gen_rectangle2 (Rectangle2, Row, Column, Phi, Length1, Length2)
- dev_clear_window ()
- dev_display (GrayImage)
- dev_display (Rectangle1)
- dev_display (Rectangle2)
复制代码
最后效果如下:
|