在halcon中使用模板匹配助手进行定位真的很好用!!!

一、如何使用模板匹配助手

1、菜单栏中点击助手---选择打开新的Matching

 2、选择对应的模板类型

二、模板匹配助手中每个界面的功能介绍 

(一)创建界面

1、模板来源

  • 选择是从图像画ROI创建还是读取模板文件

2、模板资源

  • 选项有基于图像窗口、文件、采集助手

  • 在创建模板的时候绘制ROI区域,对于ROI区域的绘制可以根据ROI监视更改

3、修改模板图像

  •  点击使能则可以使用该功能

4、金字塔层数

  • 金字塔层级1对应的轮廓和图像 

  • 金字塔层级3对应的轮廓和图像 

  • 金字塔层级5对应的轮廓和图像 

  • 金字塔层级7对应的轮廓和图像 

 5、标定来源

(二) 参数界面

  • 关于角度步长:在0-360°进行搜索模板时模板以设置的角度步长进行一个匹配。步长大,执行次数少,可能存在的就是精度和稳定性差;步长小,执行次数多,这样精度和稳定性比较高,同时会带来的问题就是搜索时间比较久。针对不知道如何设置步长,可设置为'auto'

(三)应用

  • 加载测试图像进行检测

图像中有两个电芯,识别出来的也是两个
图像中有两个电芯,识别出来的是1个,更改设置参数后就可以识别到了

 (四)检测

  • 点击执行后会显示一些和查找相关的信息数据

 (五)代码

  • 这里就可以插入代码了

*模型初始化的开始
set_system ('border_shape_models', 'false')

*获取模型图片
read_image (Image, 'C:/Users/13601/Desktop/0.BMP')

*从基本区域构建ROI
gen_rectangle2 (ModelRegion, 674.29, 1110.63, rad(-176.76), 557.391, 298.746)

*简化模型模板
reduce_domain (Image, ModelRegion, TemplateImage)

*创建形状模型
create_shape_model (TemplateImage, 8, rad(0), rad(360), rad(0.2265), ['point_reduction_high','no_pregeneration'], 'use_polarity', [32,59,23], 7, ModelID)

*获取模型轮廓,以便稍后将其转换为图像
get_shape_model_contours (ModelContours, ModelID, 1)

*获取参考位置
area_center (ModelRegion, ModelRegionArea, RefRow, RefColumn)
vector_angle_to_rigid (0, 0, 0, RefRow, RefColumn, 0, HomMat2D)
affine_trans_contour_xld (ModelContours, TransContours, HomMat2D)

*显示模型边缘
dev_display (Image)
dev_set_color ('green')
dev_set_draw ('margin')
dev_display (ModelRegion)
dev_display (TransContours)
stop ()
*模型初始化的结束

*模型应用的开始
*遍历所有指定的测试图像
TestImages := ['C:/Users/13601/Desktop/1.BMP','C:/Users/13601/Desktop/2.BMP']
for T := 0 to 1 by 1
    *获取测试图像
    read_image (Image, TestImages[T])


    *在检测图像中寻找模板
    find_shape_model (Image, ModelID, rad(0), rad(360), 0.5, 2, 0.75, 'least_squares', [8,3], 0.75, Row, Column, Angle, Score)

    *将模型轮廓变换为检测到的位置
    dev_display (Image)
    for I := 0 to |Score| - 1 by 1
        hom_mat2d_identity (HomMat2D)
        hom_mat2d_rotate (HomMat2D, Angle[I], 0, 0, HomMat2D)
        hom_mat2d_translate (HomMat2D, Row[I], Column[I], HomMat2D)
        affine_trans_contour_xld (ModelContours, TransContours, HomMat2D)
        dev_set_color ('green')
        dev_display (TransContours)
        stop ()
    endfor
endfor

 

Halcon是一款常用的机器视觉软件,提供了丰富的图像处理和分析功能,其模板匹配是非常常用的功能之一。 以下是使用Halcon进行模板匹配的基本步骤: 1. 准备工作 首先需要准备好模板图像和待匹配图像。模板图像是我们要匹配的目标图像,待匹配图像是我们要在其寻找目标的图像。在Halcon,可以使用read_image函数读取图像文件。 2. 创建模板 使用create_template函数创建模板,该函数需要传入模板图像和匹配算法。常用的匹配算法有形状匹配(shape-based matching)和区域匹配(region-based matching)等。 3. 匹配图像 使用find_template函数在待匹配图像寻找模板,该函数需要传入模板、待匹配图像和匹配参数等。匹配参数包括匹配得分(score)、匹配位置(row、column)等。 4. 显示结果 使用disp_matching_results函数将匹配结果显示在图像上,可以显示匹配位置、匹配得分等信息。如果需要进行多个模板的匹配,可以使用tuple_find_best_match函数找到最好的匹配结果。 下面是一个简单的Halcon代码示例: ``` read_image(Image, 'test.jpg') read_image(Template, 'template.jpg') create_template(Template, 'shape-based', 'use_polarity', 'auto_contrast', ModelID) find_template(Image, ModelID, 'use_polarity', 'auto_contrast', 0.5, 0, 0, Row, Column, Angle, Score) disp_matching_results(Image, ModelID, Row, Column, Angle, Template, 'red', 'false') ``` 其,test.jpg是待匹配图像,template.jpg是模板图像,0.5是匹配得分的阈值,'red'是匹配结果显示的颜色。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盾山狂热粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值