Halcon放射变换XLD

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小兴-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值