Halcon 练习(1):模板匹配

文章目录

  • 前言
  • 相关视频链接
  • 模板匹配
    • 介绍
    • Halcon平台使用
      • 动态区域截取
      • 代码优化
        • 固定选取位置
        • 添加打印信息
        • 添加匹配个数
  • 个人能力不足

前言

Halcon平台的使用需要学习新的知识,这里专门开个新的专栏用来练习Halcon平台使用。

相关视频链接

WPF/HALCON机器视觉合集

模板匹配

介绍

模板匹配就是相似匹配,找到图片中类似的点

今天使用如下图片
Halcon 练习(1):模板匹配_第1张图片
Halcon 练习(1):模板匹配_第2张图片
如果Halcon不会使用可以看我上一篇文章

Halcon WPF 开发学习笔记(1):Hello World小程序

Halcon平台使用

图片就用我给的[Q版长颈鹿]就可以了,由于我之前已经写过从零开始Halcon项目调试了,这里就不再详细讲解细节了,主要功能会以注释的形式表明。

动态区域截取

因为我们要模板匹配,首先要先获取模板。Halcon提供了一个算子可以在图片上截取区域
draw_circle (WindowHandle, Row, Column, Radius)

Halcon 练习(1):模板匹配_第3张图片
Halcon 练习(1):模板匹配_第4张图片
Halcon 练习(1):模板匹配_第5张图片

*----启动
*打开窗口
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
*加载图片
read_image (Image2, 'D:/workSpace/Halcon/Hello Halcon/wpf_-halcon/Images/2.png')

*----图像预处理
*灰度处理
rgb1_to_gray (Image2, GrayImage)

*----图像截取
*通过算子,运行动态获取圆形参数
draw_circle (WindowHandle, Row, Column, Radius)
*生成一个圆
gen_circle(Circle, Row, Column, Radius)
*将图片,圆放进去,运行算子得到截取范围
*GrayImage:灰度图像
*Circle:截取区域
*ImageReduced:截取结果
reduce_domain (GrayImage, Circle, ImageReduced)

*----生成模板

*--生成截取区域对应模板,scaled_shape:缩放形状匹配
*ImageReduced:匹配图像
*ModelID:模板Id
*其他参数:匹配类型,旋转角度等,不展开说明
create_scaled_shape_model (ImageReduced, 'auto', -0.39, 0.79, 'auto', 0.9, 1.1, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
*--找到对应图像
*ImageReduced:匹配图像
*ModelID:匹配模板Id
*导出匹配结果:Row1, Column1, Angle, Scale, Score
find_scaled_shape_model (ImageReduced, ModelID, -0.39, 0.78, 0.9, 1.1, 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row1, Column1, Angle, Scale, Score)
*绘制匹配结果
dev_display_shape_matching_results (ModelID, 'red', Row1, Column1, Angle, 1, 1, 0)

Halcon 练习(1):模板匹配_第6张图片

代码优化

固定选取位置

为了不每次运行都手动截取,我们可以把截取后的参数改成固定值

Halcon 练习(1):模板匹配_第7张图片
Halcon 练习(1):模板匹配_第8张图片

添加打印信息
*----生成注释
*--设置字体
set_display_font (WindowHandle, 26, 'mono', 'true', 'false')
*--设置宽度
dev_set_line_width (3)
*--打印msg
disp_message (WindowHandle, 'row['+Row1+']\ncolumn['+Column1+'', 'window', 10, 10, 'black', 'true')
*--添加锚点
disp_cross (WindowHandle, Row1, Column1, 20, 0)

Halcon 练习(1):模板匹配_第9张图片

添加匹配个数

Halcon 练习(1):模板匹配_第10张图片

Halcon 练习(1):模板匹配_第11张图片
Halcon 练习(1):模板匹配_第12张图片

个人能力不足

我折腾半天还是只有一只眼睛,我真的是吐了。不懂算子,只能单独去看Halcon的教程了。

Halcon 练习(1):模板匹配_第13张图片

你可能感兴趣的:(C#,Halcon开发,c#,机械视觉,Halcon)