HALCON形状匹配总结 下载本文

内容发布更新时间 : 2024/5/28 19:01:16星期一 下面是文章的全部内容请认真阅读。

HALCON形状匹配总结

Halcon有三种模板匹配方法:即Component-Based、Gray-Value-Based、Shaped_based,分别是基于组件(或成分、元素)的匹配,基于灰度值的匹配和基于形状的匹配,此外还有变形匹配和三维模型匹配也是分属于前面的大类 本文只对形状匹配做简要说明和补充: Shape_Based匹配方法:

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

先要补充点知识:形状匹配常见的有四种情况 一般形状匹配模板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

HALCON形状匹配 LIntExport Herror

create_shape_model(const Hobject& Template , //reduce_domain后的模板图像

Hlong NumLevels, //金字塔的层数,可设为“auto”或0—10的整数

Double AngleStart, //模板旋转的起始角度 Double AngleExtent, //模板旋转角度范围, >=0 Double AngleStep, //旋转角度的步长, >=0 and <=pi/16

const char* Optimization, //设置模板优化和模板创建方法

const char* Metric, //匹配方法设置 Hlong Contrast, //设置对比度 Hlong MinContrast , //设置最小对比度