Halcon基于相关性的模板匹配create_ncc_model

Halcon基于相关性的模板匹配

基于相关性的模板匹配也是一种基于灰度特征的匹配方法。该方法使用一种基于行向量的归一化互相关匹配法,在检测图像中匹配模板图像。与基于灰度值的匹配相比,该方法速度快得多,并且能够适应线性光照变化。与基于形状的模板匹配相比,该方法能适用于有大量纹理的模板,支持有轻微形变的搜索,能弥补形状模板在某些方面的不足。
使用基于相关性的匹配有如下步骤。
(1)从参考图像上选择检测的目标。使用矩形选区等方式,从参考图像上选择一块ROI,然后使用reduce_domain 算子将该区域裁剪成一个独立的图像区域。
(2)创建模板。用上一步裁剪后的图像创建一个归一化的互相关模型,使用的是create_ncc model 算子。该算子的原型如下:

create_ncc_model(Template : : NumLevels, AngleStart, AngleExtent, Anglestep, Metric : ModelID)

参数 Template 是输入的包括了ROI的图像。参数NumLevels 是金字塔的层数,默认可以设为auto,程序将自动确定合适的金字塔层级数,该层级数可以通过 get_ncc_model_params 算子进行查看。AngleStart和AngleExtent 两个参数确定了模板图像可能出现在检测图像上的旋转角度范围,在这个范围内的旋转才有可被搜素到。参数 AngleStep 为角度旋转变化的步长。模型的角度变化是在检测前进行预处理,并将旋转信息保存在内存中的。因此,旋转的角度大小和模型的点的数量决定了所需内存的大小。也可以设置AngleStep为auto或0,则程序会自动确定合适的旋转角度的步长。旋转的中心点是模板图像的重心。
表示在检测图像中识别模板的条件,或者说是“度量”。该参数在其他几种匹配算子中也经常用到。这里有两个可选择的值:use_polarity 和ignore_global_polarity。如果选择use_polarity,那么检测图像中的目标对象必须和模板中的目标对象具有相同的对比度“方向”。例如,模板中是一个暗背景上有一个亮的目标,那么在检索时,只有符合匹配条件并且亮度比背景亮的目标才能被检测出来。如果选择ignore_global_polarity,那么该亮度变化可以忽略,还是上面的例子,即使是前景与背景的对比度“方向”相反,即该目标比背景还暗,也能检测出来。
参数ModelID是模板的句柄,供匹配算子find_ncc_model调用。在该算子中,有一个参数MinSore用于指定匹配分数的最小值,即低于这个匹配分数的匹配结果就不需要返回了。由于匹配分数是从归一化的互相关系数中来的,为了提升匹配速度,这个分数的阈值应该尽可能设置得高一点,但是也要防止设得过高导致匹配失败。
匹配结束后,使用clear_ncc_model算子释放模板。其代码如下:

*读取参考的原始图像。如果是彩色的,需要先转化为单通道灰度图像
read_image (Image, 'data/carmex-0')
get_image_size (Image, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
*设置窗口绘制参数,线宽设为3
dev_set_line_width(3)
dev_set_draw ('margin')
*创建圆形,因为目标区域是圆形,因为用圆形将ROI区域选择出来
gen_circle (Circle, 161, 208, 80)
*获取圆形的中心点,为匹配后的可视化显示结果做准备
area_center (Circle, Area, RowRef, ColumnRef)
*裁剪ROI区域,得到模板图像
reduce_domain (Image, Circle, ImageReduced)
*创建基于相关性的匹配模型,输入模板图像和模型参数
create_ncc_model (ImageReduced, 'auto', 0, 0, 'auto', 'use_polarity', ModelID)
*显示原始图像和圆形框
dev_display (Image)
dev_display (Circle)
stop ()
*读取测试图像。该测试图像和参考图像比起来有轻微的位移,旋转,缩放,以及失焦
read_image (Image2, 'data/carmex-1')
*进行行基于相关性的模板匹配
find_ncc_model (Image2, 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 (Circle, RegionAffineTrans, HomMat2D, 'nearest_neighbor')
*显示测试画面和圆形标记圈
dev_display (Image2)
dev_display (RegionAffineTrans)
*匹配结束,释放模板资源
clear_ncc_model (ModelID)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/640419.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3setup()的非语法糖和语法糖的用法

1、setup()的语法糖的用法 script标签上写setup属性&#xff0c;不需要export default {} setup() 都可以省 创建每个属性或方法时也不需要return 导入某个组件时也不需要注册 <script setup > // script标签上写setup属性&#xff0c;不需要export default {} set…

Med-YOLO:3D + 医学影像 + 检测框架

Med-YOLO&#xff1a;3D 医学影像 检测框架 提出背景设计思路网络设计训练设计讨论分析 魔改代码&#xff1a;加强小目标检测总结 提出背景 论文链接&#xff1a;https://arxiv.org/abs/2312.07729 代码链接&#xff1a;https://github.com/JDSobek/MedYOLO 提出背景&…

一文梳理Windows自启动位置

不同版本的Windows开机自启动的位置略有出入&#xff0c;一般来说&#xff0c;Windows自启动的位置有&#xff1a;自启动文件夹、注册表子键、自动批处理文件、系统配置文件等。如果计算机感染了木马&#xff0c;很有可能就潜伏于其中&#xff01;本文将说明这些常见的Windows开…

理想架构的非对称高回退Doherty功率放大器理论与仿真

Doherty理论—理想架构的非对称高回退Doherty功率放大器理论与仿真 参考&#xff1a; 三路Doherty设计 01 射频基础知识–基础概念 Switchmode RF and Microwave Power Amplifiers 目录 Doherty理论---理想架构的非对称高回退Doherty功率放大器理论与仿真0、高回退Doherty功率…

UVT音乐证书考试时间确定,学习氛围渐浓

美国职业资格与人才管理中心&#xff08;UVT&#xff09;音乐证书考试时间正式确定&#xff0c;学习氛围逐渐浓厚。众多热爱音乐的从业者和学生开始积极备考&#xff0c;希望通过这一考试获得音乐领域的宝贵证书。音乐证书被认为是音乐人才展示个人专业水平的重要机会&#xff…

【K8S 云原生】K8S的包包管理器-helm

目录 一、helm概念 1、什么是helm 2、helm的概念&#xff1a; 二、实验部署&#xff1a; 1、安装helm&#xff1a; 2、对chart仓库的基本使用&#xff1a; 2.1、查看和更新chart仓库 2.2、安装chart 2.3、卸载chart&#xff1a; 3、helm自定义模版&#xff1a; 3.1、…

常规二分查找中遇到的问题

以前我们写二分查找的时候&#xff0c;是这么写的&#xff1a; public static int binarySearch2(int []a,int target){int i0,ja.length-1;while(i<j){int mid(ij)/2;if(a[mid]target){return mid;}else if(a[mid]<target){imid1;}else {jmid-1;}}return -1;} 这么写&…

签名不对,请检查包名是否与开放平台上填写的一致。微信分享 errorCode 为-6(方法有两种)

微信分享 errorCode 为-6 解决办法1.自己编译&#xff0c;把MD5加密文件改成小写且去掉&#xff1a;如下图 解决方法2 下载GenSignature 输入包名 然后生成应用签名 在微信开放平台创建应用&#xff0c;填写应用签名

74.MySQL 分页原理与优化(下)

文章目录 前言一、一次分页查询的演进二、分页数据在不同页反复出现的坑 前言 上一篇文章介绍了分页原理与优化&#xff1a;73.MySQL 分页原理与优化&#xff08;上&#xff09; 但分页还有一个“坑”需要注意&#xff0c;本文细细道来&#xff0c;可能很多朋友都踩过这个坑还…

REVIT二次开发批量编号

步骤1 步骤2 步骤3 实现代码using System; using System.Collections.Generic; using System.Linq; using Syste

基于springboot+vue的教师工作量管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

Mybatis-Generator-1.4.2

知道代码自动化原理&#xff0c;可以自己搞的&#xff0c;连客户端js html一起弄掉 Low Code Development Platform(LCDP)_cms lcdp-CSDN博客

稀有物种加测bcr/tcr vdj How to create a Cell Ranger compatible V(D)J reference? cellranger

10x官网给出了如下几个答案 How to create a Cell Ranger compatible V(D)J reference? Question: I want to run Cell Rangers V(D)J pipeline on an organism different from human or mouse. How can I create a compatible V(D)J reference? Answer: To generate a Cel…

一种行之有效的防错策略:在支付系统中实施防呆设计的实践

聊个支付人都会碰到的问题&#xff1a;资损防控。做支付如果还没有碰到过资损&#xff0c;那就是做得时间还不够久。资损防控是一个很大的话题&#xff0c;需要开几篇文章才能讲完&#xff0c;今天只从一件小事入手聊一个简单而又行之有效的防错策略&#xff1a;防呆设计的实践…

论文阅读_tinyllama_轻量级大模型

英文名称: TinyLlama: An Open-Source Small Language Model中文名称: TinyLlama: 一个开源的小型语言模型链接: http://arxiv.org/abs/2401.02385v1代码: https://github.com/jzhang38/TinyLlama作者: Peiyuan Zhang, Guangtao Zeng, Tianduo Wang, Wei Lu机构: 新加坡科技与设…

OOM异常

OOM异常详解-CSDN博客 1.什么是OOM&#xff1f; OOM&#xff0c;java.lang.OutOfMemoryError 错误&#xff0c;也就是java内存溢出错误。一般当jvm虚拟机内存不够用的时候&#xff0c;就会抛出该错误。 2.OOM的各种情况

【C++】list容器迭代器的模拟实现

list容器内部基本都是链表形式实现&#xff0c;这里的迭代器实现的逻辑需要注意C语言中指针的转换。 list容器如同数据结构中的队列&#xff0c;通常用链式结构进行存储。在这个容器中&#xff0c;我们可以模仿系统的逻辑&#xff0c;在头结点后设置一个“ 哨兵 ”&#xff0c;…

14.2搭建ASP运行环境

14.2搭建ASP运行环境 可以使用WinXP来搭建ASP的运行环境&#xff0c;不过&#xff0c;WinXP不适宜作为商业用Web服务器。目前比较常用的Web服务器操作系统是Windows2003 Server&#xff0c;在Windows2003 Server上安装完IIS6.0并进行相关设置后&#xff0c;即完成了ASP运行环境…

【lettuce-排行榜】

背景&#xff1a; 这次游戏中台采用lettuce的zset完成游戏内的本服和跨服排行榜&#xff0c;因此写一下案例。 pom.xml <dependency><groupId>io.lettuce</groupId><artifactId>lettuce-core</artifactId><version>6.2.4.RELEASE</ve…

【Redis】Redis基础

Redis基础 初识Redis 认识NoSQL SQL&#xff1a;结构化查询语言 > 关系型数据库 NoSQL&#xff1a;非关系型数据库 SQL与NoSQL的差异&#xff1a; 数据结构 SQL结构化&#xff1a;表的信息依赖于表的结构NoSQL非结构化&#xff1a;存储的信息为KV形式 数据关联 SQL关联…