首页 > 其他分享 >halcon的模板匹配

halcon的模板匹配

时间:2024-08-28 16:52:29浏览次数:8  
标签:匹配 缩放 变形 deformable halcon model 模板

halcon的三种模板匹配方法总结
halcon有三种模板匹配方法:即Component-Based、Gray-Value-Based、Shaped_based,分别是基于组件(或成分、元素)的匹配,基于灰度值的匹配和基于形状的匹配,此外还有变形匹配和三维模型匹配也是分属于前面的大类

本文只对形状匹配做简要说明和补充:

Shape_Based匹配方法:

image.png

上图介绍的是形状匹配做法的一般流程及模板制作的两种方法。

先要补充点知识:形状匹配常见的有四种情况 一般形状匹配模板shape_model、线性变形匹配模板planar_deformable_model、局部可变形模板local_deformable_model、和比例缩放模板Scale_model

第一种是不支持投影变形的模板匹配,但是速度是最高的,第二种和第四种是支持投影变形的匹配,第三种则是支持局部变形的匹配。

一般形状匹配模板是最常用的,模板的形状和大小一经制作完毕便不再改变,在查找模板的过程中,只会改变模板的方向和位置等来匹配目标图像中的图像。这个方法查找速度很快,但是当目标图像中与模板对应的图像存在比例放大缩小或是投影变形如倾斜等,均会影响查找结果。涉及到的算子通常为create_shape_model 和find_shape_model

线性变形匹配模板planar_deformable_model是指模板在行列方向上可以进行适当的缩放。行列方向上可以分别独立的进行一个适当的缩放变形来匹配。主要参数有行列方向查找缩放比例、图像金字塔、行列方向匹配分数(指可接受的匹配分数,大于这个值就接受,小于它就舍弃)、设置超找的角度、已经超找结果后得到的位置和匹配分数

线性变形匹配又分为两种:带标定的可变形模板匹配和不带标定的可变形模板匹配。涉及到的算子有:

不带标定的模板:创建和查找模板算子create_planar_uncalib_deformable_model和find_planar_uncalib_deformable_model

带标定模板的匹配:先读入摄像机内参和外参 read_cam_par 和read_pose 创建和查找模板算子 create_planar_calib_deformable_model和find_planar_calib_deformable_model

局部变形模板 是指在一张图上查找模板的时候,可以改变模板的尺寸,来查找图像上具有局部变形的模板。例如包装纸袋上图案查找。参数和线性变形额差不多

算子如下:create_local_deformable_model和find_local_deformable_model

比例缩放末班匹配 是介于一般形状匹配和线性变形匹配之间的一种方法。它可以匹配放大或是缩小的模板,但是仅限于模板大小的缩放,即行列缩放因子一样。这也是它和线性缩放最大的不同。

涉及到的算子如下:create_scale_shape_model和find_scale_shape_model

标签:匹配,缩放,变形,deformable,halcon,model,模板
From: https://www.cnblogs.com/wsq484751984/p/18385114

相关文章

  • 深度解析HarmonyOS SDK实况窗服务源码,Get不同场景下的多种模板
    HarmonyOSSDK实况窗服务(LiveViewKit)作为一个实时呈现应用服务信息变化的小窗口,遍布于设备的各个使用界面,它的魅力在于将复杂的应用场景信息简洁提炼并实时刷新,在不影响当前其他应用操作的情况下,时刻向用户展示最新的信息动态,用户也可以点击实况窗卡片或胶囊进入应用落地页查看......
  • 【数据结构】【模板】李超线段树
    李超线段树定义可以看看洛谷的模板题目:作用优化动态规划,如果可以将一个动态规划的转移式子转化为\(y=kx+b\)的形式,那么我们可以边转移边将\(y=kx+b\)这条线段放入李超线段树,然后在下次转移时,直接调用下次计算出来的\(x\)位置上的最大值或最小值。(结合题目理解......
  • 【题解】「CQOI2014」通配符匹配
    【题解】「CQOI2014」通配符匹配https://www.luogu.com.cn/problem/P3167令\(s\)为模式串,\(t\)为文本串。首先有一个显然的的dp是,\(f_{i,j}\)表示模式串的前\(i\)个和文本串的前\(j\)个是否匹配。显然\(O(n^2)\)是过不了的。Motivation:注意到题目限定了通配符......
  • D11 kubernetes yaml模板与示例
    》 kubernetes资源的创建、更新、删除等操作均可以使用json或者yaml文件进行操作,更新和删除可以依赖之前的文件进行更改。但是资源清单文件就没那么容易了,k8s的配置项实在是太多,稍微不注意就会犯错。要写好一个yaml文件,需要了解yaml文件的语法,需要整我k8s的各种配置。本文按照k8s......
  • 有趣的C++模板代码
    1#include<iostream>2template<typename...Ts>3structCNAny{4staticboolDo(inti){5return(Ts::Do(i)||...);6}7};89template<typename...Ts>10structCNAll{11staticboolDo(inti){......
  • P8436 【模板】边双连通分量
         ~~~~~     P8436【模板】边双连通分量     ~~~~~......
  • P1656 炸铁路(割边模板)
         ~~~~~     原题链接     ~~~~~     总题......
  • 行为型设计模式-模板方法(template method)模式
    通俗示例想象一下你正在制作一杯咖啡,制作咖啡的步骤大致相同,但有些步骤可以根据个人口味进行调整,比如选择咖啡豆、添加糖和奶等。在这种情况下,可以定义一个“制作咖啡”的模板,它规定了制作咖啡的基本步骤,但将某些步骤的具体实现留给子类完成。这就是模板方法模式的一个例子......
  • P5788 【模板】单调栈
    P5788【模板】单调栈传送门题目描述给出项数为\(n\)的整数数列\(a_{1\dotsn}\)。定义函数\(f(i)\)代表数列中第\(i\)个元素之后第一个大于\(a_i\)的元素的下标,即\(f(i)=\min_{i<j\leqn,a_j>a_i}\{j\}\)。若不存在,则\(f(i)=0\)。试求出\(f(1\dotsn)\)。......
  • WPF 模板
    一、数据模板继承了ItemConrol的控件对象(如ListView、ListBox、DataGrid、TabControl等等),都可以使用数据模板DataTemplate。数据模板的作用在于决定每个Item中的数据的展示形式。普通控件通过Template属性来定义模板,而子项容器控件则通过ItemTemplate属性来定义子项模板。先创......