说明

除了常见的模板匹配之外,还有其它模板匹配,虽然不够主流,但尝试使用,也能解决许多问题。这里先说明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. java B2B2C 仿淘宝电子商城系统-Spring Cloud Feign的文件上传实现
  2. 中庸女比美女更有市场
  3. 事件处理程序的执行上下文
  4. 2017广东工业大学程序设计竞赛决赛:G. 等凹数字(数位DP)
  5. 人眼分辨 PPI_1080P=2K,分辨率≠清晰度?关于显示器大多数人都错了
  6. Ubuntu 下安装Skype聊天工具
  7. 我的Unity工具类---对象池
  8. 鱼眼镜头的成像原理到畸变矫正(完整版)
  9. 2021.10.07高一Python语法入门课堂检测题解
  10. 怎么把视频和图片拼在一起?朋友圈会动的拼图视频,快速制作技巧
  11. MarkDownPad2实用教程及MarkDown常用语法
  12. Attention中的Q、K、V
  13. 自媒体博主都用什么剪辑视频_博主和设计师的最佳免费社交媒体图标兆集
  14. 腾讯云企业邮箱怎么样?
  15. Android 渐变色背景样式
  16. python将一组数zscore归一化
  17. 大数据未来产业的爆发,主要会集中在哪几个方面?
  18. 6.又双叒叕背包模拟
  19. 解密中国互联网构成与发展
  20. ibm服务器p系列小型机,IBM Power系列小型机发展历史

热门文章

  1. pycharm开发python时出现控制台显示中文乱码
  2. 深度学习100例 | 第29天-ResNet50模型:船型识别
  3. QCustomplot几种清理曲线数据方法
  4. 网上订票抢票攻略(亲测)
  5. java.lang.Long cannot be cast to java.lang.Integer解决办法
  6. nginx学习笔记(8)虚拟主机名---转载
  7. 【采用-决策引擎】一文看懂风控决策引擎搭建思路
  8. 百分点认知智能实验室:NLP模型开发平台在舆情分析中的设计和实践(下)
  9. 以太坊开发实战:通过truffle-contract与智能合约交互
  10. 新闻上的文本分类:机器学习大乱斗 王岳王院长 王岳王院长 5 个月前 目标 从头开始实践中文短文本分类,记录一下实验流程与遇到的坑 运用多种机器学习(深度学习 + 传统机器学习)方法比较短文本分类处