read_image(Image1, 'D:/图片/视觉检测图片/31.png')
get_image_size(Image1, Width1, Height1)
dev_close_window()
dev_open_window(0, 0, Width1, Height1, 'black', WindowHandle)
dev_display(Image1)
*框选MARK点
draw_circle(WindowHandle, Row, Column, Radius)
gen_circle(Circle, Row, Column, Radius)
reduce_domain(Image1, Circle, ImageReducedC1)
binary_threshold(ImageReducedC1, Region, 'max_separability', 'dark', UsedThreshold)
connection(Region, ConnectedRegions)
select_shape_std(ConnectedRegions, SelectedRegions, 'max_area', 70)
area_center(SelectedRegions, Area, Row1, Column1)
draw_circle(WindowHandle, Row2, Column2, Radius)
gen_circle(Circle1, Row2, Column2, Radius)
reduce_domain(Image1, Circle1, ImageReducedC2)
binary_threshold(ImageReducedC2, Region1, 'max_separability', 'dark', UsedThreshold)
connection(Region1, ConnectedRegions1)
select_shape_std(ConnectedRegions1, SelectedRegions1, 'max_area', 70)
area_center(SelectedRegions1, Area1, Row3, Column3)
RowRef:=(Row1+Row3)/2
ColRef:=(Column3+Column1)/2
*提取轨迹
draw_rectangle1(WindowHandle, Row11, Column11, Row21, Column21)
gen_rectangle1(Rectangle, Row11, Column11, Row21, Column21)
reduce_domain(Image1, Rectangle, ImageReducedR3)
lines_gauss(ImageReducedR3, Lines, 1.5, 3, 8, 'dark', 'true', 'bar-shaped', 'true')
union_adjacent_contours_xld(Lines, UnionContours, 1, 0.5, 'attr_keep')
select_contours_xld(UnionContours, SelectedContours, 'contour_length', 50, 200, -0.5, 0.5)
*write_image(ImageReducedR3, 'BMP', 0, 'C1')
*画ROI区域
draw_circle(WindowHandle, Row4, Column4, Radius1)
gen_circle(Circle2, Row4, Column4, Radius1)
draw_circle(WindowHandle, Row5, Column5, Radius2)
gen_circle(Circle3, Row5, Column5, Radius2)
Imagefiles := ['D:/图片/视觉检测图片/31.png','D:/图片/视觉检测图片/32.png','D:/图片/视觉检测图片/33.png']
for K := 0 to |Imagefiles| - 1 by 1
read_image (Image, Imagefiles[K])
dev_display(Image)
get_image_size(Image, Width, Height)
*查找第一个MARK点
reduce_domain(Image, Circle2, ImageReducedC1)
binary_threshold(ImageReducedC1, Region1, 'max_separability', 'dark', UsedThreshold)
connection(Region1, ConnectedRegions)
select_shape_std(ConnectedRegions, SelectedRegions, 'max_area', 70)
area_center(SelectedRegions, Area1, RowN1, ColumnN1)
*查找第二个MARK点
reduce_domain(Image, Circle3, ImageReducedC2)
binary_threshold(ImageReducedC2, Region1, 'max_separability', 'dark', UsedThreshold)
connection(Region1, ConnectedRegions1)
select_shape_std(ConnectedRegions1, SelectedRegions1, 'max_area', 70)
area_center(SelectedRegions1, Area1, RowN3, ColumnN3)
RowNew:=(RowN3+RowN1)/2
ColNew:=(ColumnN1+ColumnN3)/2
*得旋转角度
angle_ll(Row1, Column1, Row3, Column3, RowN1, ColumnN1, RowN3, ColumnN3, Angle)
*仿射变化
vector_angle_to_rigid(RowRef, ColRef, 0, RowNew, ColNew, Angle, HomMat2D)
affine_trans_contour_xld(SelectedContours, ContoursAffineTrans, HomMat2D)
endfor
*生成对应得平行轮廓gen_parallel_contour_xld
*极坐标转化:polar_trans_contour_xld_inv
*投射转换projective_trans_contour_xld
*轮廓的集合运算
*闭合轮廓得差difference_closed_contours_xld
*闭合轮廓的交集 intersection_closed_contours_xld
*合并闭合轮廓 union2_closed_contours_xld