Halcon 练习(1):模板匹配

20 篇文章 23 订阅

前言

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

相关视频链接

WPF/HALCON机器视觉合集

模板匹配

介绍

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

今天使用如下图片
在这里插入图片描述
在这里插入图片描述
如果Halcon不会使用可以看我上一篇文章

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

Halcon平台使用

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

动态区域截取

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

*----启动
*打开窗口
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)

在这里插入图片描述

代码优化

固定选取位置

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

在这里插入图片描述
在这里插入图片描述

添加打印信息
*----生成注释
*--设置字体
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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值