Halcon-基于相关性的模板匹配和基于形状的模板匹配

Halcon-模板匹配之基于形状+基于相关性

基于形状的模板匹配

  • 运行代码
read_image (Bd01, 'F:/2020spring/机器视觉/课件/lesson6videos模板匹配/Imgdata/bd-1.png')//图片位置
gen_rectangle1 (ROI_0, 96.3836, 120.125, 384.507, 484.858)
//找到物品
reduce_domain (Bd01, ROI_0, ImageReduced)
create_shape_model (ImageReduced, 'auto', 0, rad(360), 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
//自动生成模板
// Loop through all images.
for i := 1 to 20 -1 by 1
    read_image(Image,'F:/2020spring/机器视觉/课件/lesson6videos模板匹配/Imgdata/bd-'+i+'.png')
    dev_display(Image)
    find_shape_model (Image, ModelID, 0, rad(360), 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)
    dev_display_shape_matching_results (ModelID, 'red', Row, Row, Angle, 1, 1, 0)
    stop()
endfor
clear_shape_model (ModelID)
  • 运行结果
    基于形状的模板匹配

基于相关性的模板匹配

  • 运行代码
dev_open_window (0, 0, 768, 512, 'black', WindowHandle)
read_image (Image, 'F:/2020spring/机器视觉/课件/lesson6videos模板匹配/Imgdata/bd-1.png')
gen_circle (ROI_0, 238.226, 307.152, 184.855)
//生成模板
area_center (ROI_0, Area, Row, Column)
//找到模板中心及大小
reduce_domain (Image, ROI_0, ImageReduced1)
create_ncc_model (ImageReduced1, 'auto', -0.39, 0.79, 'auto', 'use_polarity', ModelID)
//创建相关性模板
rows:=[]
columns:=[]
*创建矩阵存放圆心
dev_set_draw ('margin')
*dev_set_draw定义region的填充模式。 如果DrawMode设置为'fill',region显示为填充,如果设置为'margin',则只显示轮廓。
for i := 19 to 20 by 1
    //遍历所有图片
    read_image(Image,'F:/2020spring/机器视觉/课件/lesson6videos模板匹配/Imgdata/bd-'+i+'.png')
    find_ncc_model (Image, ModelID, 0, rad(360), 0.8, 1, 0.5, 'true', 0, Row1, Column1, Angle, Score)
    //模板匹配,找到新的圆心坐标,min匹配度设置为0.5
    vector_angle_to_rigid (Row, Column, 0, Row1, Column1, 0, HomMat2D)
    //仿射变换???没有看懂具体参数
    rows:=[rows,Row1]
    columns:=[columns,Column1]
    affine_trans_region (ROI_0, RegionAffineTrans, HomMat2D, 'nearest_neighbor')
    dev_display (Image)
    dev_display (RegionAffineTrans)
    disp_continue_message (WindowHandle, 'black', 'true')
    //画出轮廓
    stop()
endfor
clear_ncc_model (ModelID) 
//清模板,释放内存
  • 运行结果及分析
    匹配度0.97
    0
    从这张图可以看到当物体转的角度大的时候,模板匹配的时候匹配分数低于设定的0.5,未输出圆心坐标,则模板匹配失败
    匹配度0.82
    这张图片,物体已经转过180°,匹配分数为0.8。
  • 8
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值