基于Halcon学习的基于灰度值模板匹配【二】实战练习

 用相机+夹子进行实战练习:

 

 

* Image Acquisition 03: Code generated by Image Acquisition 03
*打开相机抓取图片
open_framegrabber ('DirectShow', 1, 1, 0, 0, 0, 0, 'default', 8, 'gray', -1, 'false', 'default', '[1] Web Camera', 0, -1, AcqHandle)

grab_image_start (AcqHandle, -1)
*先直接从下面的代码拷贝一行【目的是为了创建模板】
grab_image_async (Image, AcqHandle, -1)

*用ROI画出矩形抠图
gen_rectangle2 (ROI_0, 291.794, 822.621, rad(82.9057), 119.816, 73.5809)
*抠图
reduce_domain (Image, ROI_0, ImageReduced)
*定义角度
*acos(0.0)=π/2
pi :=acos(0.0)*2
*创建具有旋转的模板匹配模式
create_template_rot (ImageReduced, 4, -pi, 2*pi, pi/45, 'sort', 'original', TemplateID)

*设置输出模式
dev_set_draw ('margin')
*设置颜色
dev_set_color ('blue')

while (true)
    grab_image_async (Image, AcqHandle, -1)

    *通过旋转搜索模板和金字塔的最佳匹配。
    best_match_rot_mg (Image, TemplateID, -pi, 2*pi, 40, 'true', 4, Row, Column, Angle, Error)
    *显示匹配到的矩形  需把角度和矩形的长宽参数 输入
    disp_rectangle2 (200000, Row, Column,rad(82.9057), 119.816, 73.5809)
endwhile

*关闭相机
close_framegrabber (AcqHandle)

抠图: 

 无论夹子水平移动到任何地方均可匹配成功:

 

 也可采用缩放进行匹配:

while (true)
    grab_image_async (Image, AcqHandle, -1)

    *缩放
    *scale_image (Image, ImageScaled, 1, -50)
    *模板的灰度值偏移。
    *set_offset_template (TemplateID, -50)
    
    *通过旋转搜索模板和金字塔的最佳匹配。
    best_match_rot_mg (Image, TemplateID, -pi, 2*pi, 40, 'true', 4, Row, Column, Angle, Error)
    disp_rectangle2 (200000, Row, Column,rad(-5.1017), 74.2827, 131.15)
endwhile

或者可以两个图像的偏差相减得到:

*创建具有旋转的模板匹配模式 x
create_template_rot (ImageReduced, 4, -pi, 2*pi, pi/45, 'sort', 'original', TemplateID)
intensity (ImageReduced, Image, Mean, Deviation)


*缩放
scale_image (Image, ImageScaled, 1, -50)
intensity (ImageReduced, ImageScaled, Mean1, Deviation1)

set_offset_template (TemplateID, Mean1-Mean)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值