*合并
* 合并断点,临近的轮廓:union_adjacent_contours_xld
* 合并位于同一条直线上的轮廓:union_collinear_contours_xld
* 合并属于同一圆上的轮廓:union_cocircular_contours_xld
* 合并具有切线关系的轮廓:union_contangential_contours_xld
* 合并具有相似方向的轮廓:union_straight_contours_xld
*拟合:
* 拟合为圆:fit_circle_contour_xld
* 拟合为直线:fit_line_contour_xld
* 拟合为矩形:fit_rectangle2_contour_xld
*
Imagefiles := ['D:/图片/视觉检测图片/3251.jpg','D:/图片/视觉检测图片/323.jpg','D:/图片/视觉检测图片/223.jpg']
for K := 0 to |Imagefiles| - 1 by 1
read_image (Image, Imagefiles[K])
get_image_size(Image, Width, Height)
dev_close_window()
dev_open_window(0, 0, Width/4, Height/4, 'black', WindowHandle)
dev_display(Image)
emphasize(Image, ImageEmphasize, 10, 10, 3)
threshold_sub_pix(Image, Border, 150)
select_shape_xld(Border, SelectedXLD, 'circularity', 'and', 0.85, 1)
select_shape_xld(SelectedXLD, SelectedXLD1, 'area', 'and', 150, 9999999999)
fit_circle_contour_xld (SelectedXLD1, 'atukey', -1, 2, 0, 5, 2, Row, Column, Radius, StartPhi, EndPhi, PointOrder)
gen_circle_contour_xld (ContCircle, Row, Column, Radius, 0, rad(360), 'positive', 1)
dev_display(Image)
edges_sub_pix(ImageEmphasize, Edges, 'canny', 8, 80, 80)
select_shape_xld(Edges, SelectedXLD2, 'area_points', 'and', 4000, 5000)
*select_shape_xld(SelectedXLD, SelectedXLD2, 'contlength', 'and', 1500, 2200)
fit_circle_contour_xld(SelectedXLD2, 'algebraic', -1, 0, 0, 3, 2, Row1, Column1, Radius1, StartPhi1, EndPhi1, PointOrder1)
gen_circle_contour_xld(ContCircle1, Row1, Column1, Radius1, 0, rad(360), 'positive', 1)
gen_region_points(Region, Row, Column)
gen_region_points(Region, Row1, Column1)
distance_pp(Row, Column, Row1, Column1, Distance)
gen_region_line(RegionLines, Row1, Column1, Row, Column)
dev_disp_text('D: ' + Distance+'.4', 'image', Row1, Column1, 'white', [], [])
endfor
read_image(Image, 'D:/图片/视觉检测图片/3251.jpg')