首页 > 其他分享 >Halcon模板匹配之形状匹配,缩放比匹配,相关性匹配

Halcon模板匹配之形状匹配,缩放比匹配,相关性匹配

时间:2023-05-07 12:12:24浏览次数:35  
标签:匹配 缩放 Halcon shape 控制参数 model 模板 输入 ModelID

 

是什么是模板匹配?

模板就是一副已知的小图像,而模板匹配就是在一副大图像中搜寻目标,已知该图中有要找的目标,且该目标同模板有相同的尺寸、方向和图像元素,通过一定的算法可以在图中找到目标,确定其坐标位置

 

模板匹配的参数介绍:

1. 图像金字塔:Numberlever

2. 起始角度:AngleStart

3. 角度范围:AngleExtern

4. 角度步长:AngleStep

5. 优化算法:Optimization

6. 极性:Metric

7. 对比度:Contrast

8. 最小对比度:MinContrast

9. 缩放比:scale(find_scale_shape_model.hdev)

 

查找模板参数介绍

1. 最小匹配分数:Score 。

2. 匹配最大个数:NumMatches

3. 最大重叠比:MaxOverlap(1 为允许重叠,0 为不允许)

4. 亚像素精度:SubPixel。

5. 搜索时使用的金字塔层数:NumLevels (0 为最高效)。

6. 贪婪度:Greediness(为 0 时慢而安全,为 1 时快而可能匹配失败)。

 

 

9.2基于助手的模板匹配步骤

 

9.3基于形状的模板匹配

1.创建形状模板匹配create_shape_model

算子:

Template  NumLevels AngleStart AngleExtent AngleStep Optimization Metric Contrast MinContrast  ModelID

示例:create_shape_model (ImageReduced, 'auto',0,rad(360), 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)

ImageReduced1(输入对象):输入图像对象

'auto'(输入控制参数1):默认自动获取

0(输入控制参数2):创建模板的起始角度(弧度)

rad(360) (输入控制参数3):创建模板的终止角度(弧度)

'auto'(输入控制参数4):默认自动获取

'auto'(输入控制参数5):缩放最小比例默认自动获取

'use_polarity'(输入控制参数9):设置模板优化和模板创建方法

'auto'(输入控制参数10):默认自动获取

'auto'(输入控制参数11):默认自动获取

ModelID(输出控制参数):输出模板句柄

 

 

2.发现模板find_shape_model

算子:find_shape_model(Image : : ModelID, AngleStart, AngleExtent, MinScore, NumMatches, MaxOverlap, SubPixel, NumLevels, Greediness : Row, Column, Angle, Score)

示例:find_shape_model (Image, ModelID, 0, rad(360), 0.7, 0, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)

Image(输入对象):输入需要找寻的图像

ModelID(输入控制参数1):输入模和句柄

0(输入控制参数2):找寻的起始角度

rad(360)(输入控制参数3):找寻的终止角度

0.7(输入控制参数4):最小匹配分数

0(输入控制参数5):找寻的最大个数

0.5(输入控制参数6):最大覆盖率还可以发现系数值

'least_squares'(输入控制参数7):计算精度的设置

0(输入控制参数8):搜索时金字塔的层数

0.9(输入控制参数9):贪婪度  一般设置为0.9 速度快 容易出现找不到的情况

Row(输出控制参数1):匹配位置的行坐标

Column(输出控制参数2):匹配位置的列坐标

Angle(输出控制参数3):匹配位置的角度

Score(输出控制参数4):匹配位置的得分

 

3.获取模板的轮廓进行查看get_shape_model_contours

算子:get_shape_model_contours( : ModelContours : ModelID, Level : )

示例:get_shape_model_contours (ModelContours, ModelID, 1)

ModelContours(输出对象):输出模板轮廓

ModelID (输入控制参数):输入模板句柄

1(输入控制参数):输入显示数量

 

4. 显示找到的结果dev_display_shape_matching_results

算子:dev_display_shape_matching_results( : : ModelID, Color, Row, Column, Angle, ScaleR, ScaleC, Model : )

示例:dev_display_shape_matching_results (ModelID, 'red', Row, Column, Angle, 1, 1, 0))

ModelID(输入控制参数1):输入模型的句柄

'red'(输入控制参数2):设定显示颜色

Row(输出控制参数3):输入显示的行坐标

Column(输入控制参数4):输入显示的列坐标

Angle(输入控制参数5):输入显示的角度

1(输入控制参数6):水平方向的缩放比例

1(输入控制参数7):垂直方向的缩放比例

0(输入控制参数8):找到的模型实例的索引

 

5. 清除句柄 以免爆内存

算子:clear_shape_model( : : ModelID : )

示例:clear_shape_model(ModelID)

  ModelID(输入控制参数):输入模型句柄

 

9.4基于相关性的模板匹配

1.基于相似度模板匹配create_ncc_model

算子:create_ncc_model(Template : : NumLevels, AngleStart, AngleExtent, AngleStep, Metric : ModelID)

示例:create_ncc_model (ImageReduced, 'auto', rad(0),rad(360), 'auto', 'use_polarity', ModelID)

ImageReduced(输入对象):输入图像对象

'auto'(输入控制参数1):默认自动获取

0(输入控制参数2):创建模板的起始角度(弧度)

rad(360) (输入控制参数3):创建模板的终止角度(弧度)

'auto'(输入控制参数8):默认自动获取

'use_polarity'(输入控制参数9):设置模板优化和模板创建方法

ModelID(输出控制参数):输出模板句柄

 

2.发现模板find_ncc_model

算子:find_ncc_model(Image : : ModelID, AngleStart, AngleExtent, MinScore, NumMatches, MaxOverlap, SubPixel, NumLevels : Row, Column, Angle, Score)

示例:find_ncc_model (Image, ModelID, rad(0),rad(360), 0.8, 0, 0.5, 'true', 0, Row, Column, Angle, Score)

Image(输入对象):输入需要找寻的图像

ModelID(输入控制参数1):输入模和句柄

0(输入控制参数2):找寻的起始角度

rad(360)(输入控制参数3):找寻的终止角度

0.8(输入控制参数4):最小匹配分数

0(输入控制参数5):找寻的最大个数

0.5(输入控制参数6):最大覆盖率还可以发现系数值

'true'(输入控制参数7):亚像素级别标志

0(输入控制参数8):搜索时金字塔的层数

Row(输出控制参数1):匹配位置的行坐标

Column(输出控制参数2):匹配位置的列坐标

Angle(输出控制参数3):匹配位置的角度

Score(输出控制参数4):匹配位置的得分

 

3. 清除句柄 以免爆内存clear_ncc_model

算子:clear_ncc_model( : : ModelID : )

示例:clear_ncc_model(ModelID)

ModelID(输入控制参数):输入模型句柄

 

9.5基于缩放比的模板匹配

1.创建缩放比模板匹配create_scaled_shape_model

算子:create_scaled_shape_model(Template : : NumLevels, AngleStart, AngleExtent, AngleStep, ScaleMin, ScaleMax, ScaleStep, Optimization, Metric, Contrast,MinContrast : ModelID)

示例:create_scaled_shape_model (ImageReduced1, 'auto', 0, rad(360), 'auto',  0.2,  1.5, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)

ImageReduced1(输入对象):输入图像对象

'auto'(输入控制参数1):默认自动获取

0(输入控制参数2):创建模板的起始角度(弧度)

rad(360) (输入控制参数3):创建模板的终止角度(弧度)

'auto'(输入控制参数4):默认自动获取

0.2(输入控制参数5):缩放最小比例

1.5(输入控制参数6):缩放最大比例

'auto'(输入控制参数7):默认自动获取

'auto'(输入控制参数8):默认自动获取

'use_polarity'(输入控制参数9):设置模板优化和模板创建方法

'auto'(输入控制参数10):默认自动获取

'auto'(输入控制参数11):默认自动获取

ModelID(输出控制参数):输出模板句柄

 

2.发现模板find_scaled_shape_model

算子:find_scaled_shape_model(Image : : ModelID, AngleStart, AngleExtent, ScaleMin, ScaleMax, MinScore, NumMatches, MaxOverlap, SubPixel, NumLevels, Greediness :Row, Column, Angle, Scale, Score)

示例:find_scaled_shape_model (Image, ModelID, 0, rad(360),  0.2, 1.9, 0.8, 4, 0.8, 'least_squares', 0, 0.9, Row, Column, Angle, Scale, Score)

Image(输入对象):输入需要找寻的图像

ModelID(输入控制参数1):输入模和句柄

0(输入控制参数2):找寻的起始角度

rad(360)(输入控制参数3):找寻的终止角度

0.2(输入控制参数4):找寻的最小缩放比

1.9(输入控制参数5):找寻的最大缩放比

0.8(输入控制参数6):最小匹配分数

4(输入控制参数7):找寻的最大个数

0.8(输入控制参数8):最大覆盖率还可以发现系数值

'least_squares'(输入控制参数9):计算精度的设置

0(输入控制参数10):搜索时金字塔的层数

0.9(输入控制参数11):贪婪度  一般设置为0.9 速度快 容易出现找不到的情况

Row(输出控制参数1):匹配位置的行坐标

Column(输出控制参数2):匹配位置的列坐标

Angle(输出控制参数3):匹配位置的角度

Scale(输出控制参数4):默认值Score(输出控制参数5):匹配位置的得分

 

3.获取模板的轮廓进行查看get_shape_model_contours

算子:get_shape_model_contours( : ModelContours : ModelID, Level : )

示例:get_shape_model_contours (ModelContours, ModelID, 1)

ModelContours(输出对象):输出模板轮廓

ModelID (输入控制参数):输入模板句柄

1(输入控制参数):输入显示数量

 

 

 

4. 显示找到的结果dev_display_shape_matching_results

算子:dev_display_shape_matching_results( : : ModelID, Color, Row, Column, Angle, ScaleR, ScaleC, Model : )

示例:dev_display_shape_matching_results (ModelID, 'red', Row, Column, Angle, 1, 1, 0))

ModelID(输入控制参数1):输入模型的句柄

'red'(输入控制参数2):设定显示颜色

Row(输出控制参数3):输入显示的行坐标

Column(输入控制参数4):输入显示的列坐标

Angle(输入控制参数5):输入显示的角度

1(输入控制参数6):水平方向的缩放比例

1(输入控制参数7):垂直方向的缩放比例

0(输入控制参数8):找到的模型实例的索引

4. 显示找到的结果dev_display_shape_matching_results

 

 

5. 清除句柄 以免爆内存

算子:clear_shape_model( : : ModelID : )

示例:clear_shape_model(ModelID)

       ModelID(输入控制参数):输入模型句柄

 

      

标签:匹配,缩放,Halcon,shape,控制参数,model,模板,输入,ModelID
From: https://www.cnblogs.com/ksjqsj/p/17379108.html

相关文章

  • 练习:判断字符串是否与给定的正规式匹配
    代码写完后应该是这个效果:控制台键入“./a.exe'a(b|c)*d'acbcd<回车>”,可以看到控制台显示“True”。大致流程:判断参数个数,参数不够就给出提示。分析正规式的正确性。合法字符是数字、英文字母大小写、下划线、左右小括号、竖线“|”和星号“*”。用树结构存储正规式。对......
  • Rabbitmq介绍,安装,基于queue实现消费者生产者,基本使用,消息安全,持久化,闲置消费,发布订阅,
    内容详细Rabbmit介绍消息队列中间件概念很大,准确一些叫消息队列中间件消息队列中间件使用redis当作消息队列来用,blpop阻塞式弹出,实现队列,先进先出MQ,消息队列,MessageQueue是什么?消息队列就是基础数据结构中先进先出(队列)的一种数据机制,类比于生活中,买东西,需要排队,先排队的人......
  • wazuh正则规则,匹配没有用公司打印机打印的日志
     <!--检查使用公司外部打印机打印的行为--><groupname="天擎"><ruleid="100020"level="5"><decoded_as>json</decoded_as><description>TianQing</description><fieldnam......
  • sed 多行条件匹配修改
    cattest111222333------111222333---111333---111222需要将111222333替换成444555666使用sed命令sed-n'1h;1!H;${g;s/111.222.333/444\n555\n666/g;p}'test444555666------444555666---111333---111222如写回文件可使用sed-n'1h;1!H;${g;s/111.222.333/444\......
  • 特征缩放/归一化
         ......
  • Rabbitmq 介绍 、安装、基于Queue实现生产者消费者模型、基本使用、消息安全之ack、du
    师承老刘llnb一、消息队列介绍1.1介绍消息队列就是基础数据结构中的“先进先出”的一种数据机构。想一下,生活中买东西,需要排队,先排的人先买消费,就是典型的“先进先出”1.2MQ解决什么问题MQ是一直存在,不过随着微服务架构的流行,成了解决微服务之间问题的常用工具。应用解耦......
  • 【Vue】vue3 vue-pdf-embed 实现pdf预览、缩放、拖拽、旋转和左侧菜单选择
    实际效果安装插件pnpminstallvue-pdf-embedpnpminstallvue3-pdfjs左侧pdf菜单组件<template><divclass="pdf-view-list"><divclass="itemactive-item"v-for="(item,index)inpageTotalNum"@click="itemClcik(i......
  • 2023-05-04:用go语言重写ffmpeg的scaling_video.c示例,用于实现视频缩放(Scaling)功能。
    2023-05-04:用go语言重写ffmpeg的scaling_video.c示例,用于实现视频缩放(Scaling)功能。答案2023-05-04:这段代码实现了使用libswscale库进行视频缩放的功能。下面是程序的主要流程:1.获取命令行参数,包括输出文件名和目标图像大小。2.解析目标图像大小,生成指定大小的输出文件。3.创建缩......
  • Halcon XLD 轮廓操作,轮廓交集补集
    8.1获取轨迹的图像数据 获取轮廓坐标get_contour_xld     算子:get_contour_xld(Contour ::: Row, Col)示例:get_contour_xld(Contours4,Row26,Col)Contours4(输入对象):输入轮廓对象Row26(输出控制参数1):输出轮廓的每一个点的行坐标Col(输出控制参数2):输出轮廓的每一个点的......
  • Halcon XLD 轮廓操作,轮廓交集补集
     8.1获取轨迹的图像数据 获取轮廓坐标get_contour_xld     算子:get_contour_xld(Contour ::: Row, Col)示例:get_contour_xld(Contours4,Row26,Col)Contours4(输入对象):输入轮廓对象Row26(输出控制参数1):输出轮廓的每一个点的行坐标Col(输出控制参数2):输出轮廓的......