【数字图像处理】【Matlab】【汽车车牌识别】1-车牌图像预处理

本文详细介绍了使用Matlab进行汽车车牌图像预处理的步骤,包括图像读取、边缘检测、形态学处理和消除小对象。通过边缘检测和形态学操作,有效地突出车牌轮廓,为后续的车牌定位和识别打下基础。
摘要由CSDN通过智能技术生成

author:zox
实验环境:Matlab2019a
课程设计:汽车车牌识别


序号 内容
0 [任务+原理+设计方案]
1 车牌图像预处理
2 车牌定位
3 车牌字符分割
4+5 车牌字符识别+结果分析
6 总结
源代码

三、课程设计步骤和结果

1.车牌图像预处理

  在车牌图像信号的采集、输入过程中由于受到自然环境的影响,总会使图像的质量下降。这就给后面车牌图像的定位、字符分割和识别工作带来困难。因此需要对车牌初始图像进行必要的预处理,提高图像质量并突出我们所需要的信息,从而有利于进行各种后续的处理。

  图像预处理是对初始图像的关键信息的增强。主要是指按需要对图像进行适当的变换以突出某些有用的信息,去除或削弱无用的信息,如统一图像的尺寸、去除噪声或强调边缘等处理。

  本系统中对于车牌图像预处理的流程图如下:
在这里插入图片描述

图2 车牌图像预处理流程图

对于图像预处理部分产生的图像信息如下:

表-1 预处理图像索引

图像名称 图像注解
RGB 输入的原彩色汽车车牌照片
I1 统一高度为400、灰度化后的灰度图像
I2 使用prewitt算子获取到的图像的边缘图像
I3 对图像实施垂直腐蚀操作后的图像
I4 对图像实施闭运算填充车牌区域后的图像
I5 消除车牌区域外的小对象后的图像

1.1读取车牌图像

  第一步是要读取车牌图像, 使用uigetfile函数来读取文件目录下的汽车车牌图像。在选取一张图片后,uigetfile函数可以将图像的文件名返回至 filename,文件的路径名返回至 pathname,再定义一个全局变量,将文件名和文件路径赋给全局变量,就可以通过读取这个全局变量来读取图像的数据。

  但如果没有选择图片,则filename为空,即使用函数msgbox跳出警告提示框,代码如下:

if(filename == 0)
    msgbox({
   '请选择需要识别的汽车车牌图像','[Author:]'},'车牌识别', 'warn');
    return     %若没有选择图片则报错误提示框、并停止运行
end

  错误提示框如下图所示:
在这里插入图片描述

图3 错误提示框

  然后由于读取到的车牌图像尺寸有大有小,可能会对后面的处理造成影响,导致对车牌的粗定位不准确,所以先将原始图像进行等比例缩放处理,统一图片的高度为400。自编写了myimresize函数可对彩色图像进行缩放处理,与matlab的imresize函数对比如下图:

在这里插入图片描述

图4 imresize函数缩放的彩色图像

在这里插入图片描述

图5 myimresize函数缩放的彩色图像

  对比可以看出,因为myimresize函数使用的是双线性插值法,在使用过程中发现效果不好,原图像失真较为严重。 所以为了使车牌识别准确度更高,所以还是选用了matlab自带的函数imresize来对原图进行缩放处理,这部分代码如下:

[x,~,~]=size(RGB);		%获取原图像的大小
rate=400/x;				%统一高度为400
RGB=imresize(RGB,rate);	%对图像进行缩放处理

  车牌的原图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

zoxiii

越打赏越生长

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

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

打赏作者

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

抵扣说明:

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

余额充值