Halcon学习路线——模板匹配和仿射变换
模板匹配
- 1. 模板匹配分类
- 2. 看一个案例
- 3. 资源下载
1. 模板匹配分类
- halcon对模板匹配进行了详细的分类
- 基于灰度的模板匹配是最基础也是最简单的,但是由于其受光照影响很大,匹配的精度也不高,在实际项目当中往往不被采用。
- 更高版本的halcon中基于灰度和基于相关性的模板匹配案例也被删减了,可能他们也觉得这种方法并不好用吧。
- 更常用的是基于形状的模板匹配,在halcon中案例也最多,在此基础上又产生了局部可变性等方法,这些在后面再详细阐述,这里就不展开说了。
2. 看一个案例
https://blog.csdn.net/weixin_38566632/article/details/121029374
- 上面的博客中提到的扣除极耳区域,是通过一个固定的ROI区域来实现的。但是实际生产中,电池的位置可能有变动,这就需要ROI也跟随电池移动,才能确保准确的将极耳扣除。
- 下面是基于形状的模板匹配方法,效果图和代码:
* 读取图像
list_files ('', ['files','follow_links'], ImageFiles)
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
read_image (Image, ImageFiles[0])* 创建想扣除的ROI区域
gen_rectangle1 (ROI_0, 2080.74, 4179.05, 2637.4, 4908.4)
gen_rectangle1 (TMP_Region, 2726.46, 4173.02, 3275.69, 4908.4)
union2 (ROI_0, TMP_Region, ROI_Ear)* ROI +抠图
gen_rectangle1 (ROI_0, 1280.76, 2080.26, 3780.28, 4945.57)
reduce_domain (Image, ROI_0, ImageReduced)
* 二值化+抠图
binary_threshold (ImageReduced, Region, 'max_separability', 'dark', UsedThreshold)
* 分割、筛选
connection (Region, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 3.05233e+006, 5e+006)
* 膨胀 + 抠图
dilation_rectangle1 (SelectedRegions, RegionDilation, 50, 50)
reduce_domain (ImageReduced, RegionDilation, ImageReduced1)
* 区域中心和角度
area_center (RegionDilation, Area, tmpRow, tmpCol)* 创建形状模板
create_shape_model (ImageReduced1, 'auto', -0.39, 0.79, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
* 获取模板轮廓
get_shape_model_contours (ModelContours, ModelID, 1)for Index := 0 to |ImageFiles| - 1 by 1read_image (Image, ImageFiles[Index])* 寻找实例find_shape_model (Image, ModelID, -rad(30), rad(60), 0.3, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)* 显示轮廓vector_angle_to_rigid (0, 0, 0, Row, Column, Angle, HomMat2D)affine_trans_contour_xld (ModelContours, ContoursAffinTrans, HomMat2D)dev_set_line_width (2)dev_display (ContoursAffinTrans)* 区域仿射变换,极耳区域跟随实例移动vector_angle_to_rigid (tmpRow, tmpCol, 0, Row, Column, Angle, HomMat2D1)affine_trans_region (ROI_Ear, RegionAffineTrans, HomMat2D1, 'nearest_neighbor')* 抠图gen_rectangle1 (ROI_Tmp, 692.643, 1449.21, 4452.42, 5815.39)difference (ROI_Tmp, RegionAffineTrans, ROI_Battery)reduce_domain (Image, ROI_Battery, Battery)* 二值化、分割、筛选 threshold (Battery, Regions, 0, 100)connection (Regions, ConnectedRegions1) select_shape (ConnectedRegions1, SelectedRegions1, 'area', 'and', 2.48079e+006, 5e+006)* 最小外接矩形smallest_rectangle2 (SelectedRegions1, Row1, Column1, Phi, Length1, Length2)gen_rectangle2_contour_xld (Rectangle, Row1, Column1, Phi, Length1, Length2)dev_display (Image)dev_display (Rectangle) * 显示set_display_font (3600, 20, 'mono', 'true', 'false')disp_message (3600, 'L1:'+2*Length1, 'image', Row, Column-400, 'white', 'false')disp_message (3600, 'L2:'+2*Length2, 'image', Row+400, Column-400, 'white', 'false')stop()
endfor
3. 资源下载
https://download.csdn.net/download/weixin_38566632/35337982
Halcon学习路线——模板匹配和仿射变换相关推荐
- 图像处理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.菜单栏中点击助手---选择打开新的Matching 2.选择对应的模板类型 二.模板匹配助手中每个界面的功能介绍 (一)创建界面 1.模板来源 选择是从图像画ROI创建还 ...
- OpenCV学习之模板匹配
模板匹配的概念与原理就不说了,<OpenCV3编程入门>这本书第9.5节有介绍,不过比较简洁,至于看不看得懂就NBCS了嘻嘻,毕竟本人也是看得一知半解.那么本次呢,主要就是针对该书中的9. ...
- opencv学习_11 (模板匹配(包括单模板和多模板))
模板匹配--在一幅图像中匹配与模板相似的单个或者多个目标 (1)目标匹配函数: cvMatchTemplate( const CvArr* image, constCvArr* templ, CvAr ...
- c# 联合halcon 基于相关性 模板匹配_机器视觉之halcon入门(5)-字符识别exe生成...
2.3.2 第二个halcon程序转EXE程序:字符识别 老规矩,每一段halcon代码得用C#二次开发下.根据上一节所教的,我们配置下C#的环境,顺便添加好控件,如下图(2-3-2-1). 图 2- ...
- Halcon学习路线——Blob分析(1)
Blob分析 1. 谈谈Blob分析 2. 看一张图片 3. 处理图像效果 4. Halcon代码 5. 资源下载 1. 谈谈Blob分析 Blob可以说是图像处理中最简单.最常用的方法了.虽说简单, ...
- c# 联合halcon 基于相关性 模板匹配_宣城seo公司_有效利用及时相关性解决关键词排名上不到首页的难题...
发布时间:2020-11-04 09:11:33 当你写一条热门新闻时,百度总是能很快地收录和显示你.这就是即时新闻的魅力所在,考虑到全站的权重不算太多. 它完全基于即时新闻和页面相关性,因此,如果你 ...
- Halcon学习路线——Blob分析(2)
Blobf分析 1. 看一个实际案例 2. 解决方案和代码 3. 资源下载 1. 看一个实际案例 这是一块电池,右侧有两个极耳,极耳相对电池的位置固定. 力神的检测部门会对电池进行抽检,他们使用的工具 ...
最新文章
- 什么是REST?以及RESTful
- 关于Exchange Server 2010中OWA页面无法打开问题处理方法
- [ACM_几何] Pipe
- ThinkPHP的field方法的用法总结
- 如何查看本机端口_怎样查看Mac的端口号以及占用情况
- Winform中设置ZedGraph的曲线为散点图
- github推送错误:已经有此代码,不允许覆盖的解决方法
- python 嵌入式 linux 产品 发布_基于嵌入式Linux进行Python应用开发
- 设计模式五: 原型模式(Prototype)
- 结对编程(黄金点游戏)
- vb.net 的 openFileDialog 控件文件筛选器使用
- 归档-软考部分科目的考察内容
- [工具资源] 《HelloGitHub》第 08 期
- Tomcat 项目部署方式
- Python xrange()函数
- 京东联盟sdk php,京东联盟新增对接sdk,配置教程
- java中以yyyyMMddHHmmss格式取得系统时间
- 第1章 Java基本概念及环境配置——FAQ1.05 Java SE. Java EE和Java ME有什么区别?
- 谈谈创业公司给服务器放在云端的优势和缺陷
- 实现正六边形、圆形及带倒角正六边形的头像显示
热门文章
- 使用FFTW3做二维DFT的示例代码
- 内部办公网与IDC机房的GRE隧道配置实践
- 教你CentOS7部署TOMCAT8
- MySQL中的备份和恢复
- 记一次MySQL中Waiting for table metadata lock的解决方法
- 超链接a标签的伪类选择器问题,Link标签与visited标签的失效问题(问题介绍与解决方法)。以下全部内容跟可通过鼠标左键选取后,复制到编辑器中直接运行。
- 用JavaScript编码URL?
- SpringBoot配置Druid数据源,持久层分别 mybatis,jdbc
- java aciss_C语言ACISS表.doc
- php和fastapi,FastAPI快速开始