Halcon 二维匹配

匹配:在训练图像中呈现一个所谓的模板。系统从这个模板中派生出一个模型,通过使用该模型来定位于搜索图像中的相似模板对象。此方法能够处理打光、杂乱、位置和旋转变换的图像。
匹配优点:鲁棒性和灵活性。匹配不需要对目标进行任何形式的分割。通过某些匹配方法,即使对象与其他对象重叠,也可以定位对象。
Halcon提供不同的匹配方法,选择哪种方法取决于图像和需要解决的问题。
不同的匹配方法如下:
基于相关性的匹配是根据灰度值和归一化的关系。
基于形状匹配代表机器视觉最新技术,而不适应灰度值,沿着轮廓提取特征,并用于模型的生产和匹配。
局部变换匹配类似于形状匹配,这可处理和返回不同的变形。特别是,除位置和分数外,匹配可以返回搜索图像重要特征,描述变换的向量场以及找到的模型实例的轮廓变换。
透视可变换匹配也类似基于形状匹配,此方法可处理变换较大的透视图,并且返回二维投影变换矩阵而不是2D姿态。
基于描述符的匹配与透视可变形匹配意义相同,在未校准情况下课二维投影变换矩阵,在校准情况下课获得三维位置信息。注意区别是点而不是轮廓被用来创建和识别模型。因此,适应于高纹理对象,但不适合具有圆形边缘的低纹理对象。下图总结二维匹配方法:在这里插入图片描述

1 基本概念

匹配分为以下几步:
在这里插入图片描述

1.1 读取图像

获取图像进行模板匹配和训练。

1.2 创建模板

创建模板对象,需要指定覆盖训练图像中模板的感兴趣区域。图像稳定的部分才适合用于训练,训练算子的输入是简化图和控制参数,模型的句柄是训练输出。然后将用于立即搜索或存储到文件中。

1.3 寻找模型

创建(或加载)模型后,现在可以使用它来定位图像中的对象。每个方法都提供直线此任务的特定方法。如果找到一个或多个对象,则返回他妈的姿态(位置、旋转和缩放)或二维投影变换矩阵以及分数。这些值是期望结果可作为视觉过程的下一步的输入,例如定位感兴趣区域。

2 程序示例

2.1 简单示例

read_image(ReferenceImage,'board/board_01')
create_generic_shape_model(ModelID)
gen_rectangle1(ROI,450,470,580,755)
reduce_domain(ReferenceImage,ROI,TrainingImage)
train_generic_shape_model(TrainingImage,ModelID)
set_generic_shape_model_param(ModelID,'num_matches',1)
set_generic_shape_model_param(ModelID,'min_score',0.6)

*
for i:=1 to 9 by 1
    read_image(SearchImage,'board/board_'+i$'02')
    find_generic_shape_model(SearchImage,ModelID,MatchResultID,NumMatchResult)
    
    *检索图像匹配结果
    get_generic_shape_model_result_object(Objects,MatchResultID,'all','contours')
    
    * 显示结果
    dev_display(SearchImage)
    dev_display(Objects)
    Text:='Found instances'
    dev_disp_text(Text,'window',12,12,'black', [], [])
    wait_seconds(1)
endfor

在这里插入图片描述

2.2 基于关联的匹配:在纹理中识别标签

read_image(Image,'face_masks/face_mask_01')
create_generic_shape_model(ModelID)
gen_rectangle2(ROI,616.5,708.5,rad(-82.4054),50,35)
reduce_domain(Image,ROI,ImageReduced)
create_ncc_model(ImageReduced,'auto',rad(0),rad(360),'auto','use_polarity',ModelID)

NumImages:=9
Color:='green'
for Index:=1 to NumImages by 1
    read_image(Image,'face_masks/face_mask_'+Index$'02')
    find_ncc_model(Image,ModelID,rad(0),rad(360),0.7,1,0.5,'true',0,Row,Column,Angle,Score)
    dev_display_ncc_matching_results(ModelID,Color,Row,Column,Angle,0)
endfor

在这里插入图片描述

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值