Halcon形状模板匹配
在使用Halcon进行模板匹配的时候,我们使用find_shape_model、find_scaled_shape_model等算子找到模板后返回的是实例,得到的数据是模板中心的行列坐标、角度和缩放比例等数据,不是具体的区域,下面介绍怎么得到具体区域。
解决思路:
一:先获取模板的轮廓,此时获取的轮廓位置在(0,0)的位置;
二:求出模板到匹配实例的旋转矩阵;
三:利用仿射变换得到匹配实例的轮廓;
四:将轮廓转成区域;
————————————————
read_image (Image,'green-dot')
get_image_size (Image, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
dev_display (Image)
*draw_circle (WindowHandle, Row, Column, Radius)
* gen_circle (Circle, 274.5, 280.5, 95)
*获取模板区域
* reduce_domain (Image, Circle, ImageReduced)
*创建模板
* create_scaled_shape_model (ImageReduced, 'auto', rad(-45), rad(90), 'auto', 0.9, 1.1, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
*保存模板
* write_shape_model (ModelID, 'D:/Demo/Model.shm')
*读取模板
read_shape_model ('D:/Demo/Model.shm', ModelID1)
read_image (Image1, 'green-dots')
dev_display (Image1)
*获取初始模板轮廓
get_shape_model_contours (ModelContours, ModelID1, 1)
find_scaled_shape_model (Image1, ModelID1,rad(-45), rad(90), 0.9, 1.1, 0.5, 0, 0.5, 'least_squares', 0, 0.9, Row1, Column1, Angle, Scale, Score)
for i:= 0 to |Score|-1 by 1
*显示找到的模板轮廓
*dev_display_shape_matching_results (ModelID1, 'red', Row1[i], Column1[i], Angle[i], 1, 1, 0)
*求出初始模板到实例中间的旋转矩阵--注:初始模板的行列坐标和角度都是0
vector_angle_to_rigid (0, 0, 0, Row1[i], Column1[i], Angle[i], HomMat2D)
*给旋转矩阵添加缩放信息
hom_mat2d_scale (HomMat2D, Scale[i], Scale[i], Row1[i], Column1[i], HomMat2DScale)
*通过初始模板和旋转矩阵运算得到模板实例的轮廓
affine_trans_contour_xld (ModelContours, ContoursAffinTrans, HomMat2DScale)
*轮廓转区域
gen_region_contour_xld (ContoursAffinTrans, Region, 'margin')
if(Score[i] > 0.8)
*用十字显示中心点
*disp_cross (WindowHandle, Row1[i], Column1[i], 20, Angle[i])
endif
endfor
Halcon形状模板匹配相关推荐
- HALCON:模板匹配方法总结
HALCON:模板匹配方法总结
- 如何用halcon实现模板匹配
最近在搞halcon的模板匹配,花了两天时间算是彻底搞明白了,下面大致给朋友们分享下 首先给大家分享如何使用halcon软件实现模板匹配 第一步:打开halcon软件,界面如下 第二步:点击目录栏里面 ...
- 基于HALCON的模板匹配方法总结
很早就想总结一下前段时间学习HALCON的心得,但由于其他的事情总是抽不出时间.去年有过一段时间的集中学习,做了许多的练习和实验,并对基于HDevelop的形状匹配算法的参数优化进行了研究,写了一篇& ...
- 我的Qt作品(5)使用Qt+Halcon实现模板匹配;支持ROI框选/橡皮擦涂抹功能
声明: 本作品的开发初衷是来自一篇博客(链接见文末).源码是基于网友的原创版本,本人在此基础上重构和新增功能. 网友原创版本截图: 开发环境: Windows7/10 x64,VS2017,Qt5.1 ...
- 【Halcon】模板匹配算子
1.create_ncc_model 函数原型:create_ncc_model( Template : : NumLevels, AngleStart, AngleExtent, AngleStep ...
- 基于Halcon学习的基于形状模板匹配【一】find_scaled_shape_model.hdev例程
套路: (1)读取图片 (2)Blob分析/直接ROI抠图 (3)创建模板 create_scaled_shape_model() (4)匹配模板 find_scaled_shape_model() ...
- halcon NCC模板匹配读写算子
write_ncc_model WriteNccModel - 将一个NCC模板写入一个文件中 函数原型:write_ncc_model( : : ModelID, FileName : ) 功能:算 ...
- Halcon学习路线——模板匹配和仿射变换
模板匹配 1. 模板匹配分类 2. 看一个案例 3. 资源下载 1. 模板匹配分类 halcon对模板匹配进行了详细的分类 基于灰度的模板匹配是最基础也是最简单的,但是由于其受光照影响很大,匹配的精度 ...
- halcon三种模板匹配方法
转自 : http://blog.csdn.net/hust1900/article/details/8843270 halcon有三种模板匹配方法:即Component-Based.Gray-Val ...
最新文章
- python学习之老男孩python全栈第九期_day004知识点总结
- 二十四、爬取古诗网中的100首古诗文
- Java原子操作Atomic
- 在线提问:音视频技术开发是事业还是热爱所在?
- js object转数组_const 和 Object.freeze() 的区别 ?
- LNMP一键安装包+Thinkphp搭建基于pathinfo模式的路由(可以去除url中的.php)
- :传递给 left 或 substring 函数的长度参数无效。_Excel中LEFT函数和RIGHT函数的用法。...
- 将下图的nfa确定化为dfa_实战技术利用AutoCAD确定PCB板型
- SpringBoot修改内置tomcat版本
- 谈谈如何提升工作效率,需要从这4方面入手!
- [英语歌曲]孤独:Soledad
- MOS管(场效应管)工作原理,及反向导通应用
- STM32 FreeRTOS (三) 软件定时器
- 做摄像双机位直播(多机位直播)的整个流程的介绍
- Typora markdown语法基础教程
- TensorFlow技术内幕(八):模型优化之XLA(下)
- 7.3 写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息。
- ubuntu里打开rar,zip文件方法
- 字符串匹配KMP算法及其时间复杂度分析
- 某战友H3CTE之旅