1.读取图像

快捷键:ctrl+r,以这张车牌为例:

2.图像三通道分割

由于图像中颜色区分明显,尤其是车牌号与背景之间的色差较大,用颜色特征进行分割比较合适。通过三通道分割,将RGB图分成三层独立的图像,分别是红色、绿色和蓝色通道。

decompose3 (Image9, Image1, Image2, Image3)

3.三通道转换成hsv空间

只用于颜色对比明显的图。
hsv:分别代表色度分量、饱和度分量以及亮度分量。

trans_from_rgb (Image1, Image2, Image3, ImageResult1, ImageResult2, ImageResult3, 'hsv')

4.从以上处理过的图像中选取其中一张

选择车牌最突出的。本次选择亮度分量:

5.二值化处理

目的:从整个图像中含有ROI的区域。
由于图像本身就是单通道的,可以直接二值化处理。打开灰度直方图,然后通过调整阈值,图像选中的区域也跟着发生变化。
调至:完全覆盖车牌,其他区域尽量少并且跟车牌的区域明显区分开。然后点击“插入代码”即可。
红色就是被选中的区域。

6.断开连通域

目的:用不同的连通域将二值化后的图像区分RIO和其他区域。
在halcon中同一种颜色代表一个连通域,因此为了将车牌从图像中分割开来,需要将其与其他区域变成不同的颜色,也就是不同的连通域。此处用到算子`。

connection (Regions, ConnectedRegions)

7.特征提取

目的:提取RIO。
通过特征直方图经过多个特征提取出车牌。
注意:特征直方图的使用一定是在断开连通域之后欧进行的。
所用算子:

select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 3737.11, 6228.

8.填充孔洞

分割出来的区域存在多个大大小小的孔洞,需要进行填补。使用算子:

fill_up (SelectedRegions, RegionFillUp)

9.矫正和分割

目的:将原本倾斜的图像摆正。
通过计算图像的倾角和中心。然后绕中心旋转一定的倾角将图像水平放置。算子:

orientation_region (RegionFillUp, Phi)#计算倾斜角度
area_center (RegionFillUp, Area, Row, Column)#区域面积和中心坐标计算
vector_angle_to_rigid (Row, Column, Phi, Row, Column,rad(180), HomMat2D)
affine_trans_image (Image9, ImageAffinTrans, HomMat2D, 'constant', 'false')
affine_trans_region (RegionFillUp, RegionAffineTrans, HomMat2D, 'nearest_neighbor')


10.字符定位。

操作跟上面的相似。原理相通。

11.字符分割

12.字符识别和显示

要用到分类器mlp,算子:

do_ocr_multi_class_mlp (SortedRegions, ImageInvert, OCRHandle1, Class, Confidence)
smallest_rectangle1 (SortedRegions, Row1, Column11, Row21, Column2)
count_obj (SortedRegions, Number)
for i := 1 to Number by 1disp_message (3600, Class, 'window', Row, Column, 'black', 'true')
endfor

读取图像
read_image (Image9, 'C:/Users/Administrator/Desktop/halcon/练习/车牌9.jpg')
*车牌校正以及定位
decompose3 (Image9, Image1, Image2, Image3)
trans_from_rgb (Image1, Image2, Image3, ImageResult1, ImageResult2, ImageResult3, 'hsv')
threshold (ImageResult3, Regions, 119, 255)
connection (Regions, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 3737.11, 6228.52)
fill_up (SelectedRegions, RegionFillUp)
orientation_region (RegionFillUp, Phi)
area_center (RegionFillUp, Area, Row, Column)
vector_angle_to_rigid (Row, Column, Phi, Row, Column,rad(180), HomMat2D)
affine_trans_image (Image9, ImageAffinTrans, HomMat2D, 'constant', 'false')
affine_trans_region (RegionFillUp, RegionAffineTrans, HomMat2D, 'nearest_neighbor')
reduce_domain (ImageAffinTrans, RegionAffineTrans, ImageReduced)*字符定位
rgb1_to_gray (ImageReduced, GrayImage)
invert_image (GrayImage, ImageInvert)
threshold (GrayImage, Regions1, 196, 253)
connection (Regions1, ConnectedRegions1)
select_shape (ConnectedRegions1, SelectedRegions1, 'area', 'and', 38.95, 180.78)
select_shape (SelectedRegions1, SelectedRegions2, 'area', 'and', 107.653, 154.592)*排序和读取字符
sort_region (SelectedRegions2, SortedRegions, 'first_point', 'true', 'column')
read_ocr_class_mlp ('Document_0-9A-Z_NoRej.omc', OCRHandle1)
do_ocr_multi_class_mlp (SortedRegions, ImageInvert, OCRHandle1, Class, Confidence)
*显示字符
smallest_rectangle1 (SortedRegions, Row1, Column11, Row21, Column2)
count_obj (SortedRegions, Number)
for i := 1 to Number by 1disp_message (3600, Class, 'window', Row, Column, 'black', 'true')
endfor

halcon学习笔记-车牌号识别相关推荐

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

    定位 Blob分析 模板匹配 仿射 使用单位矩阵求仿射矩阵 示例:affine_trans_region.hdev 单位矩阵 hom_mat2d_identity (HomMat2DIdentity) ...

  2. Halcon 学习笔记八:颜色识别

    Halcon 学习笔记八:颜色识别 一.图像处理需要的知识 二.图像处理的预处理和分割过程 二.颜色识别的方法 三.例子一 四.例子二 五.例子三 一.图像处理需要的知识 1.图像处理基础(rgb(h ...

  3. Halcon学习笔记:1D Measuring一维测量_fuse.hdev灯丝测量示例

    Halcon学习笔记:1D Measuring一维测量_fuse.hdev灯丝测量示例 一.基本概念 基本流程为: 获取图像 对图像进行灰度值标定 (针对相机获取的图像灰度和输入能量之间的非线性关系, ...

  4. Halcon 学习笔记五:几何定位+仿射变换+测量

    Halcon 学习笔记五:几何定位+仿射变换+测量 定位流程 例子一 例子二(药片的定位) 例子三(充电宝定位) 例子四(车牌定位) 其他 定位流程 blob分析 模板匹配 (仿射变换成标准的形状) ...

  5. 【机器学习】 - 作业4: 基于K-近邻的车牌号识别

    课程链接: 清华大学驭风计划 代码仓库:Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭 ...

  6. Halcon学习笔记(三)---数据类型

    Halcon学习笔记(三)---数据类型 halcon只能在单独行进行注释,不能在语句后面进行注释. 1.tuple(元组,重数) 赋值符号":=" tuple算子: (1)变量定 ...

  7. Halcon学习笔记:select_points_object_model_3d(3D对象模型阀值分割)

    Halcon学习笔记:select_points_object_model_3d 3D对象模型阀值分割 This example program shows how to use the operat ...

  8. Halcon学习笔记:xyz_attrib_to_object_model_3d示例

    Halcon学习笔记:xyz_attrib_to_object_model_3d--从X.Y和Z图像中创建3D对象模型同时附加属性 xyz_attrib_to_object_model_3d.hdev ...

  9. Halcon学习笔记(一):Qt+Halcon联合开发配置

    Halcon学习笔记(1):Qt+Halcon联合开发配置 首先是新建一个QT项目qtest_hc 方法一: 1)QT项目文件 qtest_hc 添加库: #1.包含目录添加 INCLUDEPATH ...

最新文章

  1. 了解 C# “.NET研究”4 中的 Dynamic 关键字
  2. js获取浏览器宽度和高度值
  3. linux-RPM与YUM
  4. 快速创建 IEqualityComparer 实例:改进
  5. python自动生成宣传单_python – Matplotlib boxplot只显示最大和最小传单
  6. python折线图样式_Python金融应用之图表制作(二)
  7. 前端学习(1501):一次帮别人解决问题的案例
  8. mysql数据库设计三大范式_数据库设计三大范式详解
  9. java jtable不可编辑_java – 使JTable单元不可编辑
  10. utilities(matlab)—— l2row/l2col
  11. 低秩矩阵完备_矩阵之芯 SVD: 基本应用以及与其他分解的关系
  12. 微软回应github服务器中断,GitHub怎么了?连续3天出现严重宕机情况微软未回应...
  13. Keil5安装NXP核心LPX2000系列 出现err:Cannot read project file异常,err :出现闪退异常
  14. java实现控制继电器_单片机控制继电器
  15. 互联网的发展简史—web
  16. OBS第三方推流直播教程
  17. 蛋花花:人工智能写的诗版权到底算谁的
  18. python综合实验心得体会_综合实验心得体会
  19. 辐射3特殊武器拿法(修正版)
  20. 让你的网站(MAXCMS4_0)按地区、年份、语言生成分页面(已经修正) -

热门文章

  1. linux c 删除文件,linux c remove 删除文件或目录函数
  2. 如何批量删除word文档中表格_word长文档排版:如何快速批量设置样式
  3. 收发EtherCAT帧——ecx_srconfirm函数
  4. 330pics-shell scripts-second
  5. 马云的蚂蚁金服为何如此看重区块链?如何发挥区块链商业优势?
  6. 关于更改Python的默认工作路径
  7. vim:修改vim录制的宏
  8. 华为Play 4T Pro批量添加联系人
  9. <第6个月>shopee运营日记,2021年shopee还值不值得做?能赚钱吗
  10. Android Animations动画使用详解