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

来源:互联网 发布:老牛登录器源码 编辑:程序博客网 时间:2024/05/16 04:20
从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个商标,可以看到这张图里,有些商标缺了一角,有些商标中间多了一条白线,等等,商标受到不同程度的干扰认可被识别,只要总的轮廓是一致的。
说明这个例子仍不能用于商标印刷缺陷的检测。