Halcon学习笔记之模板匹配-基于灰度的匹配

之前的两篇文章讲完在halcon中一维测量以及卡尺测量的一般步骤和思路。既然测量了,那肯定会涉及到如何将像素的距离转换成实际的距离,由于我的实验道具有限啊,没有标定板,无法去获得相机的内外参,等后期具备这个器材后再补上相机标定的内容。
之前也说过有了测量肯定少不了定位,所谓定位就是模板匹配的作用了,所以我们先讲完模板匹配的内容,然后在用一个完全的案例去演示下定位+测量的具体做法。
模板匹配,是模式识别中最容易的一种,这是在机器视觉领域中用的最多的,一般的视觉检测识别有无和视觉引导都离不开它。下面我们来介绍模板匹配的第一种基于灰度的匹配。
基于灰度的匹配的第一种方法,主要用到的算子是:
add_channels() ——把灰度值添加到区域中。
best_match() ——寻找一个模板和一个图像的最佳匹配。
只要后面带_mg,比如best_match_mg,属于金字塔;
需要适应大小的 要用adapt_template ;后面带rot,说明带角度搜索。
下面我们用一个案例来演示下这些如何去使用!
原图如下:
在这里插入图片描述

read_image (Image, 'C:/Users/Administrator/Desktop/ncc.png')
rgb1_to_gray (Image, GrayImage)
*随便画一个需要匹配找到的的目标区域
draw_circle (3600, Row, Column, Radius)
dev_set_draw ('margin')
*生成刚刚我们所画的区域
gen_circle (Circle, Row, Column, Radius)
reduce_domain (GrayImage, Circle, ImageReduced)
*从图像中创建模板
create_template (ImageReduced, 5, 4, 'sort', 'original', TemplateID)
*求出目标区域的大致内容
threshold (GrayImage, Region, 128, 255)
connection (Region, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 1584.05, 2582.61)
*算子add_channels为区域中的每个区域创建一个图像,将来自输入图像Image的像素值“绘制”到该区域中。
*GrayRegions中返回元组形式的创建的图像。 
*图像的所有通道都被采用。 
*输出图像的定义域(ROI)被计算为图像的定义域与区域的交集。 
*因此,新的定义域可以是输入区域的一个子集。 图像矩阵的大小没有改变。
add_channels (SelectedRegions, GrayImage, GrayRegions)
*选择图片中最佳匹配的内容
best_match (GrayRegions, TemplateID, 40, 'false', Row1, Column1, Error)
tuple_gen_const (|Row1|, 26, Radius1)
gen_circle (Circles, Row1, Column1, Radius1)

dev_display(Image)
dev_display(Circles)
clear_template(templateID)

画圈的区域:
在这里插入图片描述
最终匹配到的内容:
在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小丶锦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值