7模板匹配

7.1 模板匹配原理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.2 ncc模板匹配

在这里插入图片描述

7.3 形状模板匹配

在这里插入图片描述

dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)

read_image (Image1, 'C:/Users/haokunlee/Desktop/《halcon机器视觉教程》素材及程序/7-2/1.jpg')
rgb1_to_gray (Image1, GrayImage)


draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
reduce_domain (GrayImage, Rectangle, ImageReduced)

*先创建形状模板
create_shape_model (ImageReduced, 'auto', -0.2, 0.2, 0.1, 'auto', 'use_polarity', 'auto', 'auto', ModelID)

find_shape_model (GrayImage, ModelID, -0.2, 0.2, 0.5, 4, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)

get_domain (ImageReduced, Domain)
area_center (Domain, Area, Row3, Column3)
for i := 0 to |Angle|-1 by 1
    vector_angle_to_rigid (Row3, Column3, 0, Row[i], Column[i], Angle[i], HomMat2D)
    affine_trans_region (Domain, RegionAffineTrans, HomMat2D, 'nearest_neighbor')
    stop ()
endfor

7.4 xld模板匹配

在这里插入图片描述

dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
read_image (Image1, 'C:/Users/haokunlee/Desktop/《halcon机器视觉教程》素材及程序/7-5/1.bmp')
rgb1_to_gray (Image1, GrayImage)

draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
smallest_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2)
gen_rectangle2_contour_xld (Rectangle1, Row, Column, Phi, Length1, Length2)

*创建xld模板
create_shape_model_xld (Rectangle1, 'auto', -0.2, 0.2, 0.05, 'auto', 'ignore_local_polarity', 5, ModelID)

*模板匹配
find_shape_model (GrayImage, ModelID, -0.2, 0.2, 0.5, 7, 0.5, 'least_squares', 0, 0.9, Row3, Column3, Angle, Score)

area_center_xld (Rectangle1, Area, Row4, Column4, PointOrder)

gen_empty_obj (Obj)
for i := 0 to |Row3|-1 by 1
    vector_angle_to_rigid (Row4, Column4, 0, Row3[i], Column3[i], Angle[i], HomMat2D)
    affine_trans_contour_xld (Rectangle1, ContoursAffineTrans, HomMat2D)
    concat_obj (Obj, ContoursAffineTrans, Obj)
endfor
1 模板创建
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
read_image (Image1, 'C:/Users/haokunlee/Desktop/《halcon机器视觉教程》素材及程序/7-5/1.bmp')
rgb1_to_gray (Image1, GrayImage)

draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
smallest_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2)
gen_rectangle2_contour_xld (Rectangle1, Row, Column, Phi, Length1, Length2)

*创建xld模板
create_shape_model_xld (Rectangle1, 'auto', -0.2, 0.2, 0.01, 'auto', 'ignore_local_polarity', 5, ModelID)

*shm
write_shape_model (ModelID, '1.shm')
write_object (Rectangle1, '1.hobj')

2 模板匹配
dev_update_off ()
read_image (Image1, 'C:/Users/haokunlee/Desktop/《halcon机器视觉教程》素材及程序/7-5/1.bmp')
rgb1_to_gray (Image1, GrayImage)


read_shape_model ('1.shm', ModelID)
read_object (Rectangle1, '1.hobj')

gen_rectangle1 (Rectangle, 10, 33, 309, 1561)
reduce_domain (GrayImage, Rectangle, ImageReduced)

*模板匹配
find_shape_model (ImageReduced, ModelID, -0.2, 0.2, 0.5, 7, 0.5, 'least_squares', 0, 0.9, Row3, Column3, Angle, Score)


area_center_xld (Rectangle1, Area, Row4, Column4, PointOrder)

gen_empty_obj (Obj)
for i := 0 to |Row3|-1 by 1
    vector_angle_to_rigid (Row4, Column4, 0, Row3[i], Column3[i], Angle[i], HomMat2D)
    affine_trans_contour_xld (Rectangle1, ContoursAffineTrans, HomMat2D)
    concat_obj (Obj, ContoursAffineTrans, Obj)
endfor
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值