美文网首页
Halcon模板匹配之形状匹配

Halcon模板匹配之形状匹配

作者: 抬头望天低头走路 | 来源:发表于2019-04-02 13:04 被阅读0次

一、匹配流程

就是:创建模板和匹配模板,其中:

创建模板:

通过BLOB分析处理图像创建ROI,或读取ROI拿到模板图像。再通过相关参数创建模板匹配原型。

匹配模板:

使用匹配原型进行相应变换,在需要匹配的图像上找和模板一样的位置及相似的分数

二、通过XLD创建AOI

gen_region_contour_xld

gen_region_polygon_xld

修正函数

erosion_*  侵蚀,减小ROI

dilation_*  膨胀,扩大ROI

shape_trans  拟合边缘,形状转换

boundary  获取轮廓,像素级边界

move_region 平移

组合

Intersection 交集

Difference 差集

Union2  并集

三、生成模板

create_shape_model( 

Template , // 模板图像 

NumLevels,  // 图像金字塔,层数越高,像素越少

AngleStart,  // 起始角度 

AngleExtent,  // 角度范围 

AngleStep,  // 角度步长 

Optimization,  // 优化算法,none不减少像素,point_reduction_low大约一半点,point_reduction_medium 大约1/3,point_reduction_high大约1/4

Metric,  // 极性,如果图像有光线的变化,需要调整这个参数,但由于匹配的

极性模式: use_polarity 生成的模板就一个目标

极性模式: ignore_global_polarity 生成的模板有两个目标,一个是原图另一个是灰度值取反,黑的变白,白的变黑

极性模式: ignore_local_polarity 生成的模板有三个目标,除上面两个还有一个是灰度值渐变

Contrast,  // 对比度  (越大边缘越少,越小边缘越多)

MinContrast, // 最小对比度 

ModelID // 模板ID  )

以上参数可以通过Matching助手来设置的具体效果

相关算子介绍

create_shape_model//生成的匹配图像有移动和旋转

create_scaled_shape_model//除了移动和旋转还有放大缩小

create_aniso_shape_model//除了移动和旋转还有放大缩小,但这个的放大缩小是可以控制X轴Y轴放大缩小

以下为这三个算子的参数差异

create_aniso_shape_model  (Template : : NumLevels, AngleStart, AngleExtent, AngleStep, ScaleRMin, ScaleRMax, ScaleRStep, ScaleCMin, ScaleCMax, ScaleCStep, Optimization, Metric, Contrast, MinContrast : ModelID)

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

create_shape_model        (Template : : NumLevels, AngleStart, AngleExtent, AngleStep,                                                                    Optimization, Metric, Contrast, MinContrast : ModelID)

获取模板的参数

determine_shape_model_params

通过像素轮廓可以直接创建模板

create_shape_model_xld

create_scaled_shape_model_xld

create_aniso_shape_model_xld

四、模板匹配算子(find_scaled_shape_models:匹配多个模板)

find_scaled_shape_model(

Image,查找的图像

ModelID, 生成的模板参数

AngleStart, 匹配最小角度

AngleExtent, 匹配最大角度(一起就是匹配角度范围)

ScaleMin, 最小放大倍数

ScaleMax, 最大放大倍数

MinScore, 放大倍数步长

NumMatches, 匹配个数,0则自动选择,100则最多匹配100个

MaxOverlap, 要找到模型实例的最大重叠

SubPixel, 亚像素精度

NumLevels, 图像金字塔

Greediness,贪婪系数

Row, 中心点(X)

Column, 中心点(Y)

Angle, 角度

Scale, 放大倍数

Score)匹配的分数

五、释放资源

clear_shape_model (ModelID)

以下为示例代码:

open_framegrabber ('DirectShow', 1, 1, 0, 0, 0, 0, 'default', 8, 'gray', -1, 'false', 'default', 'XXX', 0, -1, AcqHandle)

grab_image (Image, AcqHandle)

*一、画矩形,选择即将拿来做模板的区域

draw_rectangle2 (3600, Row, Column, Phi, Length1, Length2)

gen_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2)

reduce_domain (Image, Rectangle, ImageReduced)

inspect_shape_model (ImageReduced, ModelImages, ModelRegions, 5, 5)

area_center (Rectangle, Area, Row3, Column3)

*二、生成模板

create_shape_model (ImageReduced, 5, 0, rad(360), 'auto', 'pregeneration', 'use_polarity', 5, 'auto', ModelID)

get_shape_model_contours (ModelContours, ModelID, 1)

while (true)

    grab_image (Image, AcqHandle)

    *三、对模板进行匹配(find_shape_models多个模板匹配)

    find_shape_model (Image, ModelID, 0, rad(360), 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row1, Column1, Angle, Score)

    *四、找到后把模板的区域仿射到找到的区域(为了看效果)

    if(|Score| == 1)

        vector_angle_to_rigid (0, 0, 0, Row1, Column1, Angle, HomMat2D)

        affine_trans_contour_xld (ModelContours, ContoursAffinTrans, HomMat2D)

    endif

endwhile

*五、释放资源

clear_shape_model (ModelID)

close_framegrabber (AcqHandle)

相关文章

  • Halcon模板匹配之形状匹配

    一、匹配流程 就是:创建模板和匹配模板,其中: 创建模板: 通过BLOB分析处理图像创建ROI,或读取ROI拿到模...

  • 基于HALCON的视频对象分割及跟踪方法总结

    前面总结了利用HALCON进行模板匹配的一些方法,讨论了利用物体形状的轮廓进行匹配的步骤和如何来优化匹配的速度,提...

  • halcon模板匹配

    halcon的三种模板匹配方法: Component-Based Gray-Value-Based Shaped_...

  • halcon模板匹配总结

    halcon的模板匹配可以归为三类:1、基于灰度:灰度,互相关ncc2、基于形状:形状,组件3、基于描述符:描述匹...

  • halcon/C++模板匹配

    说明 参考网页 【Halcon】 模板匹配 create_template 与 fast_match_mg[htt...

  • Halcon 定位算法 模板匹配

    写给自己的备忘吧。主要就是:芯片上左右各有一个mark点,手动框选之后作为模板。在之后的其他芯片照片上做匹配,并且...

  • 形状匹配

    基本概念 图像的形状可以看成是图像的轮廓。图像形状的表示方式有:链码、游程码、freeman码等,还有简化方式:B...

  • 形状匹配

    机器视觉原理与案例详解工控帮教研组编著电子工业出版社2020.7ISBN 978-7-121-39084-5 一、...

  • #37周时间统计总结

    一、上周的目标完成情况分析 1、相机的SDK搞定 ✔ 2、模板匹配的与相机联合成功 ❌ 3、测量功能在halcon...

  • OpenCV-Python学习(十三):模板匹配

    目录: 1.模板匹配原理 2.模板匹配操作1)单对象匹配:原图中仅有一个与模板匹配2)多对象匹配:原图中有多个与模...

网友评论

      本文标题:Halcon模板匹配之形状匹配

      本文链接:https://www.haomeiwen.com/subject/csawbqtx.html