说明

除了常见的模板匹配之外,还有其它模板匹配,虽然不够主流,但尝试使用,也能解决许多问题。这里先说明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模板匹配相关推荐

  1. 图像处理HALCON中的模板匹配方法总结

    HALCON中的模板匹配方法总结 摘要 1. Shape-Based matching的基本流程 2. 基于形状匹配的参数关系与优化 摘要 德国MVTec公司开发的HALCON机器视觉开发软件,提供了 ...

  2. halcon三种模板匹配方法

    转自 : http://blog.csdn.net/hust1900/article/details/8843270 halcon有三种模板匹配方法:即Component-Based.Gray-Val ...

  3. Halcon学习路线——模板匹配和仿射变换

    模板匹配 1. 模板匹配分类 2. 看一个案例 3. 资源下载 1. 模板匹配分类 halcon对模板匹配进行了详细的分类 基于灰度的模板匹配是最基础也是最简单的,但是由于其受光照影响很大,匹配的精度 ...

  4. 在halcon中使用模板匹配助手进行定位真的很好用!!!

    一.如何使用模板匹配助手 1.菜单栏中点击助手---选择打开新的Matching 2.选择对应的模板类型 二.模板匹配助手中每个界面的功能介绍 (一)创建界面 1.模板来源 选择是从图像画ROI创建还 ...

  5. c# 联合halcon 基于相关性 模板匹配_机器视觉之halcon入门(5)-字符识别exe生成...

    2.3.2 第二个halcon程序转EXE程序:字符识别 老规矩,每一段halcon代码得用C#二次开发下.根据上一节所教的,我们配置下C#的环境,顺便添加好控件,如下图(2-3-2-1). 图 2- ...

  6. c# 联合halcon 基于相关性 模板匹配_宣城seo公司_有效利用及时相关性解决关键词排名上不到首页的难题...

    发布时间:2020-11-04 09:11:33 当你写一条热门新闻时,百度总是能很快地收录和显示你.这就是即时新闻的魅力所在,考虑到全站的权重不算太多. 它完全基于即时新闻和页面相关性,因此,如果你 ...

  7. 如何用halcon实现模板匹配

    最近在搞halcon的模板匹配,花了两天时间算是彻底搞明白了,下面大致给朋友们分享下 首先给大家分享如何使用halcon软件实现模板匹配 第一步:打开halcon软件,界面如下 第二步:点击目录栏里面 ...

  8. MFC与Halcon混合编程--基于相关性的模板匹配

    文章目录 前言 一.基于相关性的模板匹配 二.基于相关性的模板匹配的代码实现 1.Halcon中完成基于相关性的模板匹配 2.MFC实现与Halcon混合编程 3.实现效果 前言 正在学习Halcon ...

  9. halcon知识:常见三种模板匹配方法总结

    目录 一. 形状匹配模板( Shape_Based ) 1.1 形状匹配常见的有四种情况 1.2 四种匹配的特点 1.3 一般形状匹配模板shape_model 1.4 线性变形匹配模板planar_ ...

最新文章

  1. nodejs文件上传报错总结
  2. R语言进行主成分分析(PCA):使用prcomp函数来做主成分分析、使用summary函数查看主成分分析的结果、计算每个主成分解释方差的、每个主成分解释的方差的比例、以及多个主成分累积解释的方差比例
  3. 让iframe可编辑
  4. SAP Success factor自定义launchpad
  5. MySQL日志分类及性能分析你应该知道的知识
  6. 查询工资最低的3名员工的职工工号、姓名和收入_关于工资条,这6个常识必须掌握,事关你的权益!...
  7. FileInputStream 把文件作为字节流进行读操作
  8. 引入CSS文件的@import与link的权重分析
  9. 设计模式再学习之简单工厂模式
  10. Bolt XML和JQBolt Lua代码自动补全插件配置教程
  11. 2012年9月ITbrand笔记本品牌排行榜
  12. python3+pip安装教程--centos6
  13. 采用大规模或超大规模集成电路的计算机,采用大规模或超大规模集成电路的计算机属于_____计算机。...
  14. android int 字节数组,android 将int转byte,byte转int的两种方法
  15. linux创建桥接接口,Linux创建桥接网络
  16. 4TB的移动硬盘,显示只有1.63TB
  17. [禅悟人生]真知从实践中来
  18. Win2008下IIS7不显验证码解决方案
  19. 人工智能和AI到底是什么,浅谈人工智能和AI
  20. 盘点IT行业“中国式合伙人”的离合春秋

热门文章

  1. 【数学建模】MATLAB应用实战系列(八十二)-【数学建模】非线性多元回归(附MATLAB代码)
  2. WEB开发三层架构概述
  3. 新学期的一些安排 | 以及一些小建议
  4. 树的前序遍历、中序遍历、后序遍历详解
  5. QT在windows平台安装使用MInGW编译
  6. QT中无法使用10^n次方来计算
  7. 推荐系统之信息茧房问题
  8. 【Cocosd2d实例教程三】Cocos2d瓦片地图的导入
  9. solr 使用自定义的 QueryParser
  10. hibernate 三种查询方式源码跟踪及总结