halcon模板匹配

HALCON系列----模板匹配 模板匹配是机器视觉工业现场中较为常用的一种方法,常用于定位,就是通过算法,在新的图像中找到模板图像的位置。 阅读详情

此章节只介绍形状模板匹配的部分,还有灰度模板匹配等,具体看halcon的手册;一般来说,形状模板匹配在工业视觉中用的最多

模板匹配流程:
  1. 选一副成像清晰的图片,尤其是边缘成像以及图片背景(很重要,直接决定模板匹配是否稳定。)
  2. 画模板区域,并将画的区域裁剪下来当作模板匹配区域(画的区域必须是每张图片都具有的特征且边缘特征明显)
  3. 测试模板区域的稳定性
以下为halcon代码
* 读原始模板图
modelPath:= 'Model_01'
read_image (Image, 'D:/Project/Run_d/model/'+modelPath+'.bmp')

dev_close_window ()
get_image_size (Image, Width, Height)
dev_get_window (WindowHandle)
dev_display (Image)

* 图像预处理
decompose3 (Image, Image1, Image2, Image3)
trans_from_rgb (Image1, Image2, Image3, ImageH, ImageS, ImageV, 'hsv')
mult_image (Image3, Image3, ImageResult, 0.01, 0)
* mean_image (ImageResult, ImageMean, 5, 5)
median_image (ImageResult, ImageMedian, 'circle', 9, 'mirrored')


* 画模板匹配区域(画的区域必须是所有图片都共有的且清晰的区域)
gen_circle (ROI_0, 2306.29, 624.816, 36.4156)
gen_rectangle2 (TMP_Region, 1036.1, 2770.63, rad(-53.3634), 23.071, 8.31533)
union2 (ROI_0, TMP_Region, ROI_0)
gen_rectangle2 (TMP_Region, 3930.64, 2770.71, rad(-41.6901), 15.9835, 7.08005)
union2 (ROI_0, TMP_Region, ROI_0)
gen_rectangle2 (TMP_Region, 3532.98, 2764.16, rad(31.8632), 21.3319, 10.0028)
union2 (ROI_0, TMP_Region, ROI_0)

* 裁剪区域,生成模板
reduce_domain (ImageMedian, ROI_0, ImageReduced)

* 设置匹配角度,搜索精度等
create_shape_model (ImageReduced, 'auto', -rad(180), rad(360), 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
get_shape_model_contours (ModelContours, ModelID, 1)

* 验证模板匹配是否正确
find_shape_model (ImageMedian, ModelID,-rad(180), rad(360), 0.3, 1, 0.5, 'least_squares', 0, 0.9, RefRow, RefColumn, RefAngle, Score1)
dev_display_shape_matching_results (ModelID, 'red', RefRow, RefColumn, RefAngle, 1, 1, 0)

* 保存模板
saveModelPath:='D:/Project/'+modelPath+'/'
write_shape_model (ModelID, saveModelPath+'shapeModel.shm')
tuple_concat(RefRow, RefColumn, Concat)
write_tuple (Concat, saveModelPath+'areaCenter.tup')

* 使用多张图片测试模板匹配算法是否具有稳定性
imagePath:='C:/Users/PC/Desktop/蓝光采图/01'
list_image_files (imagePath, 'default', [], ImageFiles)

for i:=0 to |ImageFiles|-1 by 1
    read_image (Image1, ImageFiles[i])
    
    * 图像预处理
    decompose3 (Image1, Image11, Image2, Image3)
    trans_from_rgb (Image11, Image2, Image3, ImageH, ImageS, ImageV, 'hsv')
    mult_image (Image3, Image3, Image3, 0.01, 0)
*     mean_image (Image3, Image3, 5, 5)
    median_image (Image3, Image3, 'circle', 9, 'mirrored')
    
    * 在图像中查找模板ModelID(也就是上述算法中裁剪下来的区域)
    find_shape_model (Image3, ModelID, -rad(180), rad(360), 0.5, 1, 1, 'least_squares',0, 0.9, RowCheck, ColumnCheck, AngleCheck, Score)
    
    * 显示匹配结果
    dev_display_shape_matching_results (ModelID, 'red',RowCheck, ColumnCheck, AngleCheck, 1, 1, 0)
    for j:=0 to |ColumnCheck|-1 by 1
        dev_display (Image1)
        if (Score>0.5)      
            vector_angle_to_rigid (RefRow, RefColumn, 0,   RowCheck[j], ColumnCheck[j], AngleCheck[j], HomMat2D)
            get_shape_model_contours (ModelContours1, ModelID, 1)
            affine_trans_contour_xld (ModelContours1, ContoursAffineTrans, HomMat2D)
            dev_clear_window ()
            dev_display (Image1)
            dev_display (ContoursAffineTrans)
            stop ()
            
        else
            stop ()
        endif
    endfor
    if (|ColumnCheck| == 0)
        stop ()
    endif
    
endfor

Halcon模板匹配 模板匹配、blob分析法 阅读详情

相关推荐

halcon之基于形状的模板匹配方法实例

下面展示 源代码。 dev_update_off () dev_close_window () *******定位模板******** *读取图像 read_image (Image, 'E:/Halcon_Learn/基于形状的模板匹配/green-dot.png') *获取图像的宽高 get_image_size (Image, Width, Height) *以合适的尺寸打开图像 dev_open_window_fit_size (0, 0, Width, Height, -1, -1, Wi...

qq_39467811的博客 1万+

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

halcon的三种模板匹配方法总结,halcon有三种模板匹配方法:即Component-Based、Gray-Value-Based、Shaped_based,分别是基于组件(或成分、元素)的匹配,基于灰度值的匹配和基于形状的匹配,此外还有变形匹配和三维模型匹配也是分属于前面的大类 本文只对形状匹配做简要说明和补充: Shape_Based匹配方法: 上图介绍的是形状匹配做法的一般流程及模板制作的两种方法。 先要补充点知识:形状匹配常见的有四种情况 一般形状匹配模板shape_model、线性变

gongdiwudu的专栏 4万+

<Halcon> 浅学形状模板匹配

基于Halcon的形状模板匹配的学习

thisiszdy的博客 3600

Halcon——模板匹配

组件匹配用于在图像中检测和识别符合特定形状和属性的组件或物体。相当于是形状的拓展,但是不支持大小缩放匹配。适用于多个对象定位的场合。基于形状的模板匹配方法,可以用于检测和定位具有特定形状的对象。这种方法通常适用于对形状较为明显的目标进行匹配定位。

一个不掉头发的资深小白 5020

Halcon基于形状的模板匹配及坐标转换关系详解

Halcon模板匹配坐标转换关系详解预备知识仿射变换及其变换矩阵Halcon中模板匹配过程举例坐标转换原理解析 预备知识 仿射变换及其变换矩阵 本小节参考文章:https://www.cnblogs.com/shine-lee/p/10950963.html 仿射变换(affine transformation)包括平移(translation)、旋转(rotation)、缩放(scaling)、剪切(shear)、镜像( reflection),以及这些变换任意次序任意次数的组合。各种变换的图示如下:

羽士的博客 9789

<Halcon>基于形状和轮廓的模板匹配

1、模板匹配 模板就是一副已知的小图像,而模板匹配就是在一副大图像中搜寻目标,已知该图中有要找的目标,且该目标同模板有相同的尺寸、方向和图像元素,通过一定的算法可以在图中找到目标,确定其坐标位置。 2、模板匹配方法 基于形状的匹配 基于轮廓的匹配 基于灰度的匹配 基于组件的匹配 基于互相关匹配 3、基于形状和轮廓的匹配 1、创建ROI ①标准形状 draw_rectangle1/2 draw_circle draw_ellipse draw_line ②任意形状 draw_region draw

thisiszdy的博客 1万+

Halcon学习之模板匹配

Halcon学习的模板匹配

Mr_Four97的博客 4977

HALCON 模板匹配的总结

学习和掌握Halcon是如何进行模板匹配的。主要包括基于形状的模板匹配,基于相关性的模板匹配,基于组件的模板匹配,基于局部形变的模板匹配,以及基于描述符的模板匹配。 HALCON提供的基于形状匹配的算法主要是针对感兴趣的小区域来建立模板,对整个图像建立模板也可以,但这样除非是对象在整个图像中所占比例很大,这往往也是要牺牲匹配速度的,这个后面再讲。基本流程是这样的,如下所示: ⑴首先确定出ROI的矩形区域,这里只需要确定矩形的左上点和右下点的坐标即可,gen_rectangle1()这个函数就会帮助你生成.

zhengju444的专栏 2263

C++ Halcon应用之模板匹配

本篇文章主要介绍Halcon模板匹配的在机器视觉检测中的应用。定位是视觉领域最常见的算法之一,也是普遍应用的算法之一。定位使得在处理图像信息方面的准确性大幅提升。下面主要价绍Halcon匹配中的Shape和NCC匹配。模板匹配的准确度受角度范围等参数的影响,在多线程检测中还存在匹配稳定性的问题,这些都需在实际应用中按使用需求进行相应的调整。//2、创建NCCNCC匹配模板。//1、创建Shape匹配模板。//3、Shape模板查找。//4、NCC模板查找。

weixin_52921501的博客 2189

Halcon基于轮廓的模板匹配

分享最近新学的模板匹配 大家自己找张图片测试,就是绘制搜索区域跟模板提取,提取其轮廓,然后再找一张相似的图片,从中定位到模板。话不多说,直接上代码。 read_image (Image1, ‘D:/users/S200722103/桌面/R1_F8Y046205U1N639A1+038_20201109103715200.jpg’) dev_set_draw (‘margin’) dev_set_line_width (2) *模板寻找区域 draw_rectangle2 (3600, Row, Colum

A_lucky_的博客 2101

Halcon优化模板匹配速度

优化匹配速度可以从两个方面入手:缩小搜索空间和使用图像下采样。本节将分别从这两个方面进行解释。

fallingleafgrief的博客 2344

halcon学习之模板匹配

基于HALCON的模板匹配方法总结      德国MVTec公司开发的HALCON机器视觉开发软件,提供了许多的功能,在这里我主要学习和研究了其中的形状匹配的算法和流程。HDevelop开发环境中提供的匹配的方法主要有三种,即Component-Based、Gray-Value-Based、Shape-Based,分 别是基于组件(或成分、元素)的匹配,基于灰度值的匹配和基于形状的匹配。这三种

雍王爷的博客 1519

Halcon-模板匹配

Contrast(in):设置对比度(可以通过inspect_shape_modelinspect_shape_model算子确定对比度)create_scaled_shape_model // 创建_缩放_形状_模型 功能:为尺度不变匹配准备一个轮廓模型。模型的ROI作为模板域传递。set_ncc_model_origin //功能:设置一个NCC模型的原点(参考点)。create_aniso_shape_model // 创建_非对称_形状_模型。

weixin_47588619的博客 2176

使用Halcon匹配助手进行模板匹配

使用Halcon匹配助手,可以很方便地选择模板图像,设置匹配参数,并测试匹配结果.Halcon匹配助手支持下面几种匹配方式。(1)基于形状的匹配。(2)基于相关性的匹配。(3)基于描述符的匹配。(4)基于形变的匹配。使用Halcon匹配助手的过程如下。

fallingleafgrief的博客 2339

Halcon中模板匹配方法的总结归纳

Halcon中模板匹配方法的总结归纳 基于组件的模板匹配: 应用场合:组件匹配是形状匹配的扩展,但不支持大小缩放匹配,一般用于多个对象(工件)定位的场合。 算法步骤: 1.获取组件模型里的初始控件gen_initial_components() 参数: ModelImage [Input] 初始组件的图片 InitialComponents[Ou...

qq_27367199的博客 7610

Halcon形状模板匹配

在使用Halcon进行模板匹配的时候,我们使用find_shape_model、find_scaled_shape_model等算子找到模板后返回的是实例,得到的数据是模板中心的行列坐标、角度和缩放比例等数据,不是具体的区域,下面介绍怎么得到具体区域。 解决思路: 一:先获取模板的轮廓,此时获取的轮廓位置在(0,0)的位置; 二:求出模板到匹配实例的旋转矩阵; 三:利用仿射变换得到匹配实例的轮廓; 四:将轮廓转成区域; ———————————————— read_image (Image,'g.

3989

如何用halcon实现模板匹配

如何使用halcon实现模板匹配,并导出代码呢?请看本文章

qq_53295480的博客 2722
上一篇: 大恒相机SDK的使用
下一篇: 球拟合算法
嘿嘿哈!
博客等级 码龄6年 27粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值