halcon知识:ncc_model模板匹配
说明
除了常见的模板匹配之外,还有其它模板匹配,虽然不够主流,但尝试使用,也能解决许多问题。这里先说明ncc_model模板。
一、基于互相关匹配
一种基于灰度值的方法是基于相关的匹配。这种方法使用归一化互相关,用于评估模型和搜索图像之间的对应关系。它明显快于经典的基于灰度值的匹配,并且可以补偿加法作为以及照明的乘法变化。与基于形状的匹配相反,对象也具有略微变化的形状、大量纹理或模糊图像中的对象(轮廓在模糊中消失图像,例如,因为散焦)可以找到。应用场合:搜索对象有轻微的变形,大量的纹理,图像模糊等场合,速度快,精度低。基本操作:
1.创建互相关模板:create_ncc_model()
2.寻找互相关:find_ncc_model()
3.释放模板:clear_ncc_model()
在本节中,我们将快速概述基于相关匹配的匹配过程。到积极跟随例子,启动HDevelop程序hdevelop\Matching\Correlation-Based\ find_ncc_model_defocused.hdev,展示了基于相关匹配的鲁棒性抵抗纹理和散焦。
dev_update_off ()
read_image (Image, 'smd/smd_on_chip_05')
get_image_size (Image, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_set_color ('green')
dev_set_draw ('margin')
gen_rectangle1 (Rectangle, 175, 156, 440, 460)
area_center (Rectangle, Area, RowRef, ColumnRef)
reduce_domain (Image, Rectangle, ImageReduced)
create_ncc_model (ImageReduced, 'auto', 0, 0, 'auto', 'use_polarity', ModelID)
dev_display (Image)
dev_display (Rectangle)
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
for J := 1 to 11 by 1read_image (Image, 'smd/smd_on_chip_' + J$'02')find_ncc_model (Image, ModelID, 0, 0, 0.5, 1, 0.5, 'true', 0, Row, Column, Angle, Score)vector_angle_to_rigid (RowRef, ColumnRef, 0, Row, Column, 0, HomMat2D)affine_trans_region (Rectangle, RegionAffineTrans, HomMat2D, 'nearest_neighbor')dev_display (Image)dev_display (RegionAffineTrans)if (J < 11)disp_continue_message (WindowHandle, 'black', 'true')endifstop ()
endfor
clear_ncc_model (ModelID)
二、程序简短说明
步骤1:选择参考图像中的对象
首先,在训练图像中,使用 gen_rectangle1 创建一个包含对象的区域。这使用 area_center 查询该区域的中心。在后面的步骤中将需要覆盖结果与原始区域的匹配。然后,将图像缩小到感兴趣的区域。
read_image (Image, 'smd/smd_on_chip_05')
gen_rectangle1 (Rectangle, 175, 156, 440, 460)
area_center (Rectangle, Area, RowRef, ColumnRef)
reduce_domain (Image, Rectangle, ImageReduced)
步骤2:创建模型
缩小的图像用于通过 create_ncc_model 创建 NCC 模型。结果,算子返回新创建的模型(ModelID)的句柄,然后可用于指定模型,例如,在调用操作符 find_ncc_model 时。
create_ncc_model (ImageReduced, 'auto', 0, 0, 'auto', 'use_polarity', ModelID)
步骤3:再次查找对象
现在,循环读取图像,并基于以上模板搜索,对于每个搜索图像,搜索 NCC 模型并使用仿射变换覆盖模型区域。请注意,训练应用于聚焦图像,搜索应用于具有以下特征的图像变化的散焦。尽管如此,对象实例都已找到。图 3.1 显示了参考图像以及散焦但找到的模型实例之一。
for J := 1 to 11 by 1
read_image (Image, 'smd/smd_on_chip_' + J$'02')
find_ncc_model (Image, ModelID, 0, 0, 0.5, 1, 0.5, 'true', 0, Row, \
Column, Angle, Score)
vector_angle_to_rigid (RowRef, ColumnRef, 0, Row, Column, 0, HomMat2D)
affine_trans_region (Rectangle, RegionAffineTrans, HomMat2D, \
'nearest_neighbor')
dev_display (Image)
dev_display (RegionAffineTrans)
endfor
步骤4:销毁模型
当不再需要 NCC 模型时,使用 clear_ncc_model 将其销毁。clear_ncc_model (ModelID)
halcon知识:ncc_model模板匹配相关推荐
- 图像处理HALCON中的模板匹配方法总结
HALCON中的模板匹配方法总结 摘要 1. Shape-Based matching的基本流程 2. 基于形状匹配的参数关系与优化 摘要 德国MVTec公司开发的HALCON机器视觉开发软件,提供了 ...
- halcon三种模板匹配方法
转自 : http://blog.csdn.net/hust1900/article/details/8843270 halcon有三种模板匹配方法:即Component-Based.Gray-Val ...
- Halcon学习路线——模板匹配和仿射变换
模板匹配 1. 模板匹配分类 2. 看一个案例 3. 资源下载 1. 模板匹配分类 halcon对模板匹配进行了详细的分类 基于灰度的模板匹配是最基础也是最简单的,但是由于其受光照影响很大,匹配的精度 ...
- 在halcon中使用模板匹配助手进行定位真的很好用!!!
一.如何使用模板匹配助手 1.菜单栏中点击助手---选择打开新的Matching 2.选择对应的模板类型 二.模板匹配助手中每个界面的功能介绍 (一)创建界面 1.模板来源 选择是从图像画ROI创建还 ...
- c# 联合halcon 基于相关性 模板匹配_机器视觉之halcon入门(5)-字符识别exe生成...
2.3.2 第二个halcon程序转EXE程序:字符识别 老规矩,每一段halcon代码得用C#二次开发下.根据上一节所教的,我们配置下C#的环境,顺便添加好控件,如下图(2-3-2-1). 图 2- ...
- c# 联合halcon 基于相关性 模板匹配_宣城seo公司_有效利用及时相关性解决关键词排名上不到首页的难题...
发布时间:2020-11-04 09:11:33 当你写一条热门新闻时,百度总是能很快地收录和显示你.这就是即时新闻的魅力所在,考虑到全站的权重不算太多. 它完全基于即时新闻和页面相关性,因此,如果你 ...
- 如何用halcon实现模板匹配
最近在搞halcon的模板匹配,花了两天时间算是彻底搞明白了,下面大致给朋友们分享下 首先给大家分享如何使用halcon软件实现模板匹配 第一步:打开halcon软件,界面如下 第二步:点击目录栏里面 ...
- MFC与Halcon混合编程--基于相关性的模板匹配
文章目录 前言 一.基于相关性的模板匹配 二.基于相关性的模板匹配的代码实现 1.Halcon中完成基于相关性的模板匹配 2.MFC实现与Halcon混合编程 3.实现效果 前言 正在学习Halcon ...
- halcon知识:常见三种模板匹配方法总结
目录 一. 形状匹配模板( Shape_Based ) 1.1 形状匹配常见的有四种情况 1.2 四种匹配的特点 1.3 一般形状匹配模板shape_model 1.4 线性变形匹配模板planar_ ...
最新文章
- nodejs文件上传报错总结
- R语言进行主成分分析(PCA):使用prcomp函数来做主成分分析、使用summary函数查看主成分分析的结果、计算每个主成分解释方差的、每个主成分解释的方差的比例、以及多个主成分累积解释的方差比例
- 让iframe可编辑
- SAP Success factor自定义launchpad
- MySQL日志分类及性能分析你应该知道的知识
- 查询工资最低的3名员工的职工工号、姓名和收入_关于工资条,这6个常识必须掌握,事关你的权益!...
- FileInputStream 把文件作为字节流进行读操作
- 引入CSS文件的@import与link的权重分析
- 设计模式再学习之简单工厂模式
- Bolt XML和JQBolt Lua代码自动补全插件配置教程
- 2012年9月ITbrand笔记本品牌排行榜
- python3+pip安装教程--centos6
- 采用大规模或超大规模集成电路的计算机,采用大规模或超大规模集成电路的计算机属于_____计算机。...
- android int 字节数组,android 将int转byte,byte转int的两种方法
- linux创建桥接接口,Linux创建桥接网络
- 4TB的移动硬盘,显示只有1.63TB
- [禅悟人生]真知从实践中来
- Win2008下IIS7不显验证码解决方案
- 人工智能和AI到底是什么,浅谈人工智能和AI
- 盘点IT行业“中国式合伙人”的离合春秋