一个基于1:1比例的匹配的实例及详解

从1月份暂停了halcon的学习,复习考研和年终收尾工作,直到这个月才开始halcon的学习,正好也庆祝自己考上浙江大学的工程硕士,新的学习和工作也开始了。
今天开始总结前面学习的几个例子和分享这周刚测试的关于匹配的实例分析。
学习Halcon以来在论坛上的几个帖子(按学习顺序步骤排列):

[Halcon编程交流学习区] 图像获取的实例
[Halcon实例学习交流区] 一个用摄像头获取条形码并显示类型及解码的实例及每个步骤注解
[Halcon实例学习交流区] Halcon支持的颜色及其名称,共21种
[Halcon算子学习交流区] 一个摄像头解码二维码的实例及分步骤注解
[Halcon实例学习交流区] 一段可视化的条码扫描线的实例和注解
[Halcon编程交流学习区] Visual Studio 10.0设置引用HalconDotNet.dll
[Halcon编程交流学习区] C#导出的代码,怎么调用?
[Halcon实例学习交流区] 第一个Blob分析的例子,抽取Blobs
基本上比较详细得解释和学习这几个例子,发现在群上对于二维码的问题,大部分我都能理解和帮助到大家,挺欣慰。

这周开始了匹配方面的学习,有两个有用的例子和大家分享,一个是基于1:1比例的匹配的实例,一个是基于可变比例的匹配,正在测试的是基于变形可变比例的匹配。
这个例子是基于1:1比例的匹配的实例。


* 在一个图片中获取ROI并在此图片中匹配
dev_close_window ()
dev_open_window (0, 0, 600, 600, 'black', WindowHandle)
* 窗口语句
read_image(Image,'L:/Halcon test/mk2.jpg')
*read_image(Image,'L:/Halcon test/mk3.jpg')
*read_image(Image,'L:/Halcon test/mk4.jpg')
* 这里有4张图片,每一张都说明一个小问题,附图分析。
gen_rectangle1 (ROI1, 57.8333, 49.5, 181.167, 342.833)
* 画一个矩形选择ROI,矩形在左上角,覆盖一个完整的,无变形规定尺寸的商标,作为模板。
reduce_domain(Image,ROI1,ImageReduced1)
* 大图和这个矩形的ROI相减就会得到一个左上角的商标的图案作为模板,命名ImageReduced。
create_shape_model(ImageReduced1,0,0,rad(360),0,'no_pregeneration','use_polarity',40,10,ModelID1)
* 创建一个比例不变(1:1)的匹配的轮廓模型。具体参数下个帖子说明,也可见[Halcon算子学习交流区] Halcon模版匹配算子解析
find_shape_model(Image,ModelID1,0,rad(360),0.7,13,0.5,'interpolation',0,0.9,Row,Column,Angle,Score)
* 寻找与模板的大小尺寸必须是一比一匹配的,只是角度的不同而已,若大小发生变化,则不能匹配
get_shape_model_contours(ModelContours1,ModelID1,1)
* 在大图中获取匹配。
for i := 0 to |Row|-1 by 1
vector_angle_to_rigid(0,0,0,Row ,Column,Angle,HomMat2D)
affine_trans_contour_xld(ModelContours1,ContoursAffinTrans,HomMat2D)
endfor
* 获取匹配。
disp_message (WindowHandle, '总共匹配了' + |Row| + '个商标', 'window', 12, 12, 'red', 'true')
* 输出数量统计。
clear_shape_model(ModelID1)

stop()



一个基于1:1比例的匹配的实例及详解
图片mk2,共匹配出9个商标,商标只是角度变化(360度,也可自己规定角度)。


一个基于1:1比例的匹配的实例及详解
图片mk3,匹配到4个商标,有的商标放大,有的缩小,有的变形,则不能被找出。
若要识别这类匹配,就需要采用基于可变比例的匹配。下个帖子讲。


一个基于1:1比例的匹配的实例及详解
图片mk4,共匹配9个商标,可以看到这张图里,有些商标缺了一角,有些商标中间多了一条白线,等等,商标受到不同程度的干扰认可被识别,只要总的轮廓是一致的。
说明这个例子仍不能用于商标印刷缺陷的检测。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值