1实践目的
车牌是一辆汽车独一无二的信息,因此,对车辆牌照的识别技术可以作为
辨识一辆车最为有效的方法。随着ITS(智能交通系统)的高速发展,对车牌识别技术的研究也随之发展。从根本上讲,牌照识别应用了先进的图像处理,模式识别,人工智能技术来获取,处理,解释,记录拍照的图像。目前, 汽车牌照的自动识别技术已经得到了广泛应用。
汽车牌照自动识别整个处理过程分为预处理、边缘提取、车牌定位、字符分割、字符识别五大模块,其中字符识别过程主要由以下3个部分组成:①正确地分割文字图像区域;②正确的分离单个文字;③正确识别单个字符。用MATLAB软件编程来实现每一个部分,最后识别出汽车牌照。
- 实践原理
![8abc54c9ca70201e4e517149cf411213.png](https://i-blog.csdnimg.cn/blog_migrate/a8e1808faf022fb4c13650016f89b944.png)
车牌图像通常是在各种复杂的背景、环境条件下采集得到,图像质量难以保证,因此在进行车牌定位之前,通常要进行图像的预处理工作。图像预处理主要是对系统获取的原始图像基本特征的信息进行相应的、有针对性的处理,以滤去干扰、噪声,作几何校正、色彩校正,以便于计算机的分析计算,一般包括滤波、图像增强、图像二值化、形态学运算、边缘检测等。
![0d01118afd48aeb1e965a959aed75488.png](https://i-blog.csdnimg.cn/blog_migrate/f87ad74b525eff55d5506ce02746df97.png)
图2 车牌图像预处理流程图
- 实践内容
- 车牌预处理(灰度化、去噪、灰度变换、边缘检测、
形态学处理)
由于照片拍摄的好坏有很多外界因素决定,由于光照强度的影响,晴天拍摄的照片与阴天拍摄的照片质量肯定不一样,白天和晚上更是不同;由于每部车的车速的不一致,慢速行驶的车辆会比快速行驶的车辆拍摄的照片质量好一些,而且车速过快,会使照片的字迹模糊,这肯定会影响字符的识别。故要对拍摄的照片进行灰度化、二值化、滤波等预处理。传统的设计方法为:利用静止的汽车牌照图片,利用C 语言或C++语言来对图像进行处理,编程很复杂,维护难度大。而MATLAB 语言对处理图像而言非常方便,可直接调用已经编好的函数,如可直接调用现成的函数进行复杂的傅里叶变换、拉普拉斯变换、二值化处理、数字滤波等操作。
- 车牌定位
- 字符分割
- 字符识别
程序如下:
I=imread('C:\Documents and Settings\Administrator\桌面\yu.jpg');
figure(1),imshow(I);title('原图');
![1ea13c41143bc9a6092cb39b14115bcb.png](https://i-blog.csdnimg.cn/blog_migrate/5ab697536a30172d9da6eb2ebc8c00f2.png)
I1=rgb2gray(I);
figure(2),subplot(1,2,1),imshow(I1);title('灰度图');
figure(2),subplot(1,2,2),imhist(I1);title('灰度图直方图');
![14ae5c74d8c2d59bf8b642af82a9d61b.png](https://i-blog.csdnimg.cn/blog_migrate/b755ffdc76a75ce388932bcb5293d4a6.png)
I2=edge(I1,'roberts',0.08,'both');
figure(3),imshow(I2);title('robert算子边缘检测')