Halcon学习笔记(五)几何定位+仿射+车牌识别

这篇博客详细介绍了如何使用Halcon进行几何定位、仿射变换以及车牌识别。内容涵盖Blob分析、模板匹配、单位矩阵求仿射矩阵、车牌识别的多种方法,包括快速识别、Blob分析结合MLP分类器以及HSV颜色空间转换后的区域分割。通过仿射变换,实现了图像的摆正和车牌字符的精确提取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定位

  • Blob分析
  • 模板匹配

仿射

使用单位矩阵求仿射矩阵

示例:affine_trans_region.hdev

  • 单位矩阵
    hom_mat2d_identity (HomMat2DIdentity)
  • 平移矩阵
    hom_mat2d_translate()
  • 旋转矩阵
    hom_mat2d_rotate(HomMat2DIdentity, -0.3, 256, 256, HomMat2DRotate)
    输入是原矩阵,输出是旋转矩阵,旋转角度是顺时针0.3度,旋转中心点是(256,256)
  • 缩放矩阵
    hom_mat2d_scale (HomMat2DRotate, 1.5, 0.5, 256, 256, HomMat2DScale)
    缩放点是(256,256),(1.5,0.5)表示x轴上缩放1.5倍,y轴上缩放0.5倍
  • 仿射操作

对区域仿射
affine_trans_region (Region, egionAffineTrans, HomMat2DScale, 'nearest_neighbor')
对图像仿射
affine_trans_image()
对XLD进行仿射
affine_trans_xld()
……

使用模板匹配

示例:check_blister.hdev

access_channel (ImageOrig, Image1, 1)
获取第一通道的图片
threshold (Image1, Region, 90, 255)
阈值化
shape_trans (Region, Blister, 'convex')
凸化
orientation_region (Blister, Phi)
测量偏移角度
area_center (Blister, Area1, Row, Column)
测量面积及中心点坐标

### Halcon 中特征匹配与仿射变换的使用方法 #### 特征匹配概述 在机器视觉应用中,特征匹配用于识别定位目标对象。Halcon 提供了一套完整的工具来执行基于几何形状、灰度模板以及局部不变量描述符的特征匹配[^1]。 #### 创建模型并训练数据集 为了进行有效的特征匹配,在Halconi中首先要创建一个合适的模型。这通常涉及到定义要寻找的对象区域,并提取其显著特性作为参考模式。对于复杂的场景或者多姿态的目标物体来说,可能还需要构建多个视图角度下的样本集合来进行更全面的学习过程。 ```cpp // C++ code example to create a model and train dataset using Halcon. create_shape_model (Image, 'auto', 0.7, 0.8, -pi/2, pi/2, 'use_polarity', [], ModelID); ``` #### 应用仿射变换调整检测结果 一旦完成了初步的位置估计之后,则可以利用仿射变换进一步优化最终输出位置。具体而言就是根据已知条件计算出相应的转换参数(比如平移向量、旋转角等),再把这些数值应用于原始坐标上从而得到修正后的位姿信息。 ```cpp // Example of applying affine transformation after initial matching results are obtained. hom_mat2d_identity (HomMat2DIdentity) affine_trans_point_2d (HomMat2DIdentity, Row, Column, RowTrans, ColTrans) ``` #### 处理不同类型的变换情况 除了简单的刚体运动之外,有时候也需要考虑更加复杂的情况如尺度变化甚至是轻微变形等问题。此时可以通过组合多种基本形式(例如先做旋转变换然后再加伸缩处理)或者是直接采用更高阶别的投影映射方式来达到目的。 #### 边缘中心坐标的特殊考量 值得注意的是,在某些特定应用场景下可能会涉及到亚像素级别的精度需求;这时就需要特别注意如何正确设置工作空间内的参照框架以便能够准确反映实际物理尺寸关系——即所谓的“边缘中心坐标系”。这种情况下所使用的仿射变换也会有所不同,需按照相应规则加以调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ThetaQing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值