基于matlab的汽车牌照识别

合集下载

(完整版)基于matlab的车牌识别(含子程序)

(完整版)基于matlab的车牌识别(含子程序)

基于matlab的车牌识别系统一、对车辆图像进行预处理1.载入车牌图像:function [d]=main(jpg)[filename, pathname] = uigetfile({'*.jpg', 'JPEG 文件(*.jpg)'});if(filename == 0), return, endglobal FILENAME %定义全局变量FILENAME = [pathname filename];I=imread(FILENAME);figure(1),imshow(I);title('原图像');%将车牌的原图显示出来结果如下:2.将彩图转换为灰度图并绘制直方图:I1=rgb2gray(I);%将彩图转换为灰度图figure(2),subplot(1,2,1),imshow(I1);title('灰度图像');figure(2),subplot(1,2,2),imhist(I1);title('灰度图直方图');%绘制灰度图的直方图结果如下所示:3. 用roberts算子进行边缘检测:I2=edge(I1,'roberts',0.18,'both');%选择阈值0.18,用roberts算子进行边缘检测figure(3),imshow(I2);title('roberts 算子边缘检测图像');结果如下:4.图像实施腐蚀操作:se=[1;1;1];I3=imerode(I2,se);%对图像实施腐蚀操作,即膨胀的反操作figure(4),imshow(I3);title('腐蚀后图像');5.平滑图像se=strel('rectangle',[25,25]);%构造结构元素以正方形构造一个seI4=imclose(I3,se);% 图像聚类、填充图像figure(5),imshow(I4);title('平滑图像');结果如下所示:6. 删除二值图像的小对象I5=bwareaopen(I4,2000);% 去除聚团灰度值小于2000的部分figure(6),imshow(I5);title('从对象中移除小的对象');结果如下所示:二、车牌定位[y,x,z]=size(I5);%返回I5各维的尺寸,存储在x,y,z中myI=double(I5);%将I5转换成双精度tic %tic表示计时的开始,toc表示计时的结束Blue_y=zeros(y,1);%产生一个y*1的零阵for i=1:yfor j=1:xif(myI(i,j,1)==1)%如果myI(i,j,1)即myI的图像中坐标为(i,j)的点值为1,即该点为车牌背景颜色蓝色 %则Blue_y(i,1)的值加1Blue_y(i,1)= Blue_y(i,1)+1;%蓝色像素点统计endendend[temp MaxY]=max(Blue_y);%Y方向车牌区域确定%temp为向量white_y的元素中的最大值,MaxY为该值的索引PY1=MaxY;while ((Blue_y(PY1,1)>=5)&&(PY1>1))PY1=PY1-1;endPY2=MaxY;while ((Blue_y(PY2,1)>=5)&&(PY2<y))PY2=PY2+1;endIY=I(PY1:PY2,:,:);%x方向车牌区域确定%%%%%% X方向 %%%%%%%%%Blue_x=zeros(1,x);%进一步确定x方向的车牌区域for j=1:xfor i=PY1:PY2if(myI(i,j,1)==1)Blue_x(1,j)= Blue_x(1,j)+1; endendendPX1=1;while ((Blue_x(1,PX1)<3)&&(PX1<x))PX1=PX1+1;endPX2=x;while ((Blue_x(1,PX2)<3)&&(PX2>PX1))PX2=PX2-1;endPX1=PX1-1;%对车牌区域的校正PX2=PX2+1;dw=I(PY1:PY2-8,PX1:PX2,:);t=toc;figure(7),subplot(1,2,1),imshow(IY),title('行方向合理区域');%行方向车牌区域确定figure(7),subplot(1,2,2),imshow(dw),title('定位裁剪后的车牌彩色图像');的车牌区域如下所示:三、字符分割及处理1.车牌的进一步处理对分割出的彩色车牌图像进行灰度转换、二值化、均值滤波、腐蚀膨胀以及字符分割以从车牌图像中分离出组成车牌号码的单个字符图像,对分割出来的字符进行预处理(二值化、归一化),然后分析提取,对分割出的字符图像进行识别给出文本形式的车牌号码。

《2024年基于MATLAB的车牌识别系统研究》范文

《2024年基于MATLAB的车牌识别系统研究》范文

《基于MATLAB的车牌识别系统研究》篇一一、引言随着智能交通系统的快速发展,车牌识别技术已成为智能交通系统的重要组成部分。

车牌识别技术能够有效地对车辆进行身份识别、交通监控、违法查处等,对于提高交通管理效率和保障交通安全具有重要意义。

本文将基于MATLAB平台,对车牌识别系统进行深入研究。

二、车牌识别系统概述车牌识别系统主要由图像采集、预处理、特征提取和识别四个部分组成。

首先通过摄像头等设备采集包含车牌的图像,然后对图像进行预处理,包括去噪、二值化、边缘检测等操作,使车牌图像更加清晰。

接着,通过特征提取算法提取出车牌上的字符特征,最后通过识别算法对字符进行识别,实现车牌号码的识别。

三、MATLAB在车牌识别系统中的应用MATLAB是一种强大的数学计算软件,具有强大的图像处理和机器学习功能,非常适合用于车牌识别系统的研究和开发。

在车牌识别系统中,MATLAB可以用于图像预处理、特征提取和识别等各个环节。

1. 图像预处理在MATLAB中,可以使用图像处理工具箱中的各种函数对车牌图像进行预处理。

例如,可以使用imread函数读取图像,使用imnoise函数添加噪声模拟实际环境中的干扰,使用gray2ind 函数进行图像二值化等。

此外,MATLAB还提供了许多滤波器和边缘检测算法,如Sobel算子和Canny算子等,可以用于去除图像中的噪声和增强边缘信息。

2. 特征提取特征提取是车牌识别系统中的关键环节。

在MATLAB中,可以使用各种算法对车牌图像进行特征提取。

例如,可以使用投影法、连通域法等算法对车牌字符进行分割和定位,然后使用模板匹配、神经网络等算法对字符进行特征提取和分类。

此外,MATLAB还提供了许多机器学习算法,如支持向量机、决策树等,可以用于训练和优化车牌识别模型。

3. 识别算法在特征提取后,需要使用识别算法对字符进行识别。

在MATLAB中,可以使用各种分类器对字符进行识别。

例如,可以使用最近邻分类器、贝叶斯分类器等基于统计的分类器,也可以使用神经网络、支持向量机等基于机器学习的分类器。

基于MATLAB的车牌识别程序详解..精要

基于MATLAB的车牌识别程序详解..精要
预处理部分,将采集到的图像转换为灰度图像, 便于后面处理,同时显示原图的图片以及处理好的灰度图片。
(2)图像增强与边缘检测 figure(2),subplot(1,2,2),imhist(I1;title('灰度图直方图');)%显 示图像直方图,图像增强处理,直方图均衡 I2=edge(I1,'robert',0.15,'both');%将灰度图像用Robert算子计算, 间距0.15,方向水平,垂直两个方向,图像边缘处理,利用Robert算 子运算 figure(3),imshow(I2)%显示边缘处理后的;title('robert算子边缘检 测') se=[1;1;1];%创造一个维度矩阵,用于腐蚀单位扫描 I3=imerode(I2,se);%将I3灰度腐蚀,se为腐蚀算子 figure(4),imshow(I3);title('腐蚀后图像');%对裁剪好的图像进行 图像增强处理,利用腐蚀处理 se=strel('rectangle',[25,25]);%构建一个25为边长的正方形结构体 图
(一)图像预处理 收集到的图片一般为彩色图片,由于彩色图片占用存储容
量大,处理时间长,因此需要对图像进行灰度转换,将彩色图像转 换为灰度图像,灰度图像只保留亮度信息,方便使用,也为后面的 对图像进行二值化处理提供方便。
程序:I1=rgb2gray(I); rgb2gray,MATLAB中灰度图像转换函数,原图及处理后的
PX1=PX1+1; end %从上至下截取一段区域,区域上限位PY1 PX2=x; while ((Blue_x(1,PX2)<3)&&(PX2>PX1))

《2024年基于MATLAB的车牌识别系统研究》范文

《2024年基于MATLAB的车牌识别系统研究》范文

《基于MATLAB的车牌识别系统研究》篇一一、引言随着智能化交通系统的不断发展,车牌识别技术在现代交通管理中发挥着越来越重要的作用。

基于MATLAB的车牌识别系统研究,能够为智能交通系统提供准确、高效的车牌信息处理手段。

本文旨在介绍基于MATLAB的车牌识别系统的基本原理、方法以及实际应用。

二、车牌识别系统基本原理车牌识别系统主要包括图像预处理、车牌定位、字符分割和字符识别四个基本环节。

基于MATLAB的车牌识别系统采用数字图像处理技术,对采集到的车牌图像进行处理,以实现车牌的准确识别。

1. 图像预处理图像预处理是车牌识别系统的第一步,主要目的是去除图像中的噪声、增强图像的对比度,以便于后续的车牌定位和字符分割。

MATLAB提供了丰富的图像处理函数,如滤波、二值化、边缘检测等,可以有效地实现图像预处理。

2. 车牌定位车牌定位是车牌识别系统的关键环节,主要采用颜色分割、形态学方法、投影分析等方法。

在MATLAB中,可以通过颜色空间转换、阈值分割等手段,提取出车牌区域,为后续的字符分割和识别提供基础。

3. 字符分割字符分割是将车牌图像中的每个字符进行分离的过程。

在MATLAB中,可以采用投影法、连通域法等方法进行字符分割。

首先对车牌区域进行垂直投影,根据投影峰值的分布情况,确定每个字符的位置,然后进行水平投影,进一步确定每个字符的宽度,从而实现字符的精确分割。

4. 字符识别字符识别是车牌识别系统的最后一步,主要是对分割后的字符进行识别。

在MATLAB中,可以采用模板匹配、神经网络等方法进行字符识别。

模板匹配法是通过将待识别的字符与标准字符模板进行比对,找出最相似的字符作为识别结果。

神经网络法则是通过训练大量的样本数据,建立字符识别的模型,从而实现高精度的字符识别。

三、MATLAB在车牌识别系统中的应用MATLAB作为一种强大的数学计算软件,在车牌识别系统中发挥着重要作用。

首先,MATLAB提供了丰富的图像处理函数和算法库,可以方便地实现图像的预处理、车牌定位、字符分割和字符识别等过程。

基于MATLAB的车牌智能识别设计

基于MATLAB的车牌智能识别设计

基于MATLAB的车牌智能识别设计摘要:车牌智能识别技术是智能交通系统中的重要组成部分,能够提高交通管理效率和安全性。

本文基于MATLAB平台,设计了一种车牌智能识别系统,通过图像处理和模式识别技术实现车牌号码的准确识别。

该系统能够实现对车辆行驶过程中的车牌信息进行实时提取和识别,具有较高的准确性和稳定性,可以有效应用于停车场管理、交通违法抓拍等领域。

关键词:车牌智能识别;MATLAB;图像处理;模式识别一、引言随着汽车数量的快速增长,交通拥堵和交通管理成为社会发展中的一大难题。

为了提高交通管理效率和安全性,智能交通系统得到了广泛的关注和应用。

车牌智能识别技术作为智能交通系统中的重要组成部分,能够实现对车辆行驶过程中的车牌信息进行实时提取和识别,为交通管理和监控提供了重要的支持。

二、相关技术及方法1. 图像处理技术图像处理技术是车牌智能识别系统中的核心技术之一,主要包括灰度化、二值化、边缘检测、形态学处理等操作。

灰度化是将彩色图像转换为灰度图像,简化了图像信息的处理;二值化将灰度图像转换为二值图像,方便进行特征提取和分割操作;边缘检测可以准确提取车牌的轮廓信息;形态学处理可以用于去除图像中的噪声点和填充孔洞,提高字符的连通性。

2. 字符分割与特征提取字符分割是指将车牌图像中的字符分离出来,是车牌识别的关键步骤之一。

在字符分割后,需要进行字符的特征提取,包括字符的大小、形状、像素点分布等特征。

这些特征可以用于字符的识别和分类,提高识别的准确性和鲁棒性。

3. 模式识别算法模式识别算法是车牌智能识别系统中的另一个核心技术,主要包括基于模板匹配的模式识别、基于统计学习的模式识别、基于深度学习的模式识别等方法。

这些算法能够对字符进行准确的识别和分类,为车牌智能识别系统提供了强大的分析和识别能力。

三、车牌智能识别系统设计基于MATLAB平台,设计的车牌智能识别系统主要包括图像预处理、字符分割与特征提取、模式识别和结果输出四个主要模块。

基于MATLAB的车牌识别系统的源代码(可以实现)

基于MATLAB的车牌识别系统的源代码(可以实现)

k=input('Enter the file name:','s');%输入车牌照片im=imread(k);imshow(im);im_gray=rgb2gray(im);im_gray=medfilt2(im_gray,[3,3]);%对图像进行中值滤波Image=im2bw(im_gray,0.2);BW=edge(im_gray,'sobel');%找出图像边缘[imx,imy]=size(BW);%计算图像大小msk=[0 0 0 0 0;0 1 1 1 0;0 1 1 1 0;0 1 1 1 0;0 0 0 0 0;];B0=conv2(double(BW),double(msk));%对边缘区域进行加强se=ones(2,80);B1=imdilate(B0,se);%figure;%imshow(B1);B2=imerode(B1,se);%figure;%imshow(B2);se=ones(20,2);B3=imdilate(B2,se);%figure;imshow(B3);B4=imerode(B3,se);%figure;imshow(B4);se=ones(50,2);B5=imdilate(B4,se);%figure;imshow(B5);B6=imerode(B5,se);%figure;imshow(B6);%对边界图进行小区域连通,使车牌区域连通为一个方块[B,L]=bwboundaries(B6,4);imshow(label2rgb(L,@jet,[.5 .5 .5]))%对连通区域进行标记hold onfor k=1:length(B)%用线条给连通区域标上边界线boundary=B{k};plot(boundary(:,2),boundary(:,1),'w','LineWidth',2)endstats=regionprops(L,'Area','Centroid');%找到每个连通域的质心for k=1:length(B)%循环遍历每个连通域的边界boundary=B{k};%获取一条边界上的所有点delta_sq=diff(boundary).^2;perimeter=sum(sqrt(sum(delta_sq,2)));%计算边界周长area=stats(k).Area;%获取边界所围面积metric=27*area/perimeter^2;%计算匹配度metric_string=sprintf('%2.2f',metric);%要显示的匹配度字串if metric>=0.85&&metric<=1.15&&area>1000%截取出匹配度接近1且面积大于1000像素的连通域centroid=stats(k).Centroid;plot(centroid(1),centroid(2),'ko');%提取该连通域所对应在二值图像中的矩形区域goalboundary=boundary;s=min(goalboundary,[],1);e=max(goalboundary,[],1);goal=imcrop(Image,[s(2) s(1) e(2)-s(2) e(1)-s(1)]);endtext(boundary(1,2)-35,boundary(1,1)+13,metric_string,'Color','g','FontSize',14,'FontWeight','bold') ;%显示匹配度字串endgoal=~goal;%对截取图像进行反色处理figure;imshow(goal);[a,b]=size(goal);for i=a/2:-1:1 %从图像水平中轴开始向上扫描,当白点数少于每行总点数的1/10时,停止扫描,并将该行定义为车牌字符区域的上限num=0;for j=1:bif goal(i,j)==1num=num+1;endendif num<(b*0.1)line_up=i;break;endendfor i=a/2:a %从图像水平中轴开始向下扫描,当白点数少于每行总点数的1/10时,停止扫描,并将该行定义为车牌字符区域的下限num=0;for j=1:bif goal(i,j)==1num=num+1;endendif num<(b*0.1)line_down=i;break;endendgoal=goal(line_up:line_down,1:b);%根据之前定义的上下限截取车牌字符区域figure;imshow(goal);%显示车牌字符区域[a,b]=size(goal);row=zeros(18);now=1;flag=0;for j=1:b %对截取出的字符区域进行竖列扫描,并取每列总点数的1/10作为阈值点,当每列的白点数从阈值以上掉落到阈值以下或从阈值以下上升到阈值以上时,记录该列的横坐标num=0;for i=1:aif goal(i,j)==1num=num+1;endendif flag==0if num<0.1*arow(now)=j;now=now+1;flag=1;endelseif num>0.1*arow(now)=j;now=now+1;flag=0;endendendif row(3)-row(2)>10 %判断扫描出的第二块区域(扫描到的第二列与第三列之间)是否包含有效字符,如包含,则将扫描到的第二列定义为字符分割的起始列;否则,则定义第一列为起始列now=2;elsenow=1;endfigure;l1=0;l2=0;for k=1:8m=row(now);n=row(now+1);temp=goal(1:a,m:n);point=0;%扫描每一个字符图片的白点数for i=1:afor j=1:n-mif temp(i,j)==1point=point+1;endendendif point>0.4*a*(n-m)&&n>m %当扫描到的白点数小于总点数的2/5时放弃输出(有可能是车牌上的点状分隔符)l2=l2+1;%l2用来记录识别出的字符数subplot(1,7,l2);x(k)=code(temp);%调用子程序进行字符扫描,并返回字符的ASCII码x(k)=uint8(x(k));if x(k)>0 %当所选区域不为空时进行输出l1=l1+1;%l1用来记录输出的字符数s(l1)=char(x(k));endtemp(32,32)=0;imshow(temp);endnow=now+2;endy=char(s);%将得到的ASCII码重新转换为字符并在屏幕上输出fprintf('\r\n该车辆的车牌号为:\r\n');disp(y);fprintf('\r\n输出的字符数为:%4d\r\n',l1);fprintf('识别出的字符数为:%4d\r\n',l2);。

基于Matlab的车牌识别(完整版)

基于Matlab的车牌识别(完整版)

基于Matlab的车牌识别摘要:车牌识别技术是智能交通系统的重要组成部分,在近年来得到了很大的发展。

本文从预处理、边缘检测、车牌定位、字符分割、字符识别五个方面,具体介绍了车牌自动识别的原理。

并用MATLAB软件编程来实现每一个部分,最后识别出汽车车牌。

一、设计原理车辆车牌识别系统的基本工作原理为:将摄像头拍摄到的包含车辆车牌的图像通过视频卡输入到计算机中进行预处理,再由检索模块对车牌进行搜索、检测、定位,并分割出包含车牌字符的矩形区域,然后对车牌字符进行二值化并将其分割为单个字符,然后输入JPEG或BMP格式的数字,输出则为车牌号码的数字。

车牌自动识别是一项利用车辆的动态视频或静态图像进行车牌号码、车牌颜色自动识别的模式识别技术。

其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。

某些车牌识别系统还具有通过视频图像判断车辆驶入视野的功能称之为视频车辆检测。

一个完整的车牌识别系统应包括车辆检测、图像采集、车牌识别等几部分。

当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。

车牌识别单元对图像进行处理,定位出车牌位置,再将车牌中的字符分割出来进行识别,然后组成车牌号码输出。

二、设计步骤总体步骤为:基本的步骤:a.车牌定位,定位图片中的车牌位置;b.车牌字符分割,把车牌中的字符分割出来;c.车牌字符识别,把分割好的字符进行识别,最终组成车牌号码。

车牌识别过程中,车牌颜色的识别依据算法不同,可能在上述不同步骤实现,通常与车牌识别互相配合、互相验证。

(1)车牌定位:自然环境下,汽车图像背景复杂、光照不均匀,如何在自然背景中准确地确定车牌区域是整个识别过程的关键。

首先对采集到的视频图像进行大范围相关搜索,找到符合汽车车牌特征的若干区域作为候选区,然后对这些侯选区域做进一步分析、评判,最后选定一个最佳的区域作为车牌区域,并将其从图象中分割出来。

基于matlab的车牌识别算法

基于matlab的车牌识别算法

基于Matlab的车牌识别算法摘要车牌系统是计算机视觉和模式识别技术在智能交通领域的重要应用课题之一。

车牌识别系统是以特定目标为对象的专用计算机系统,该系统主要包括三个内容:车牌定位、字符分割和字符识别。

其中车牌定位的目的就是从所拍摄的汽车图像中确定车牌的位置,从而便于后续的字符分割和字符识别工作。

目前常用的方法有:基于模板匹配的方法、基于特征的方法和神经网络法等。

本设计采用基于模板匹配算法和基于人工神经网络算法对车牌进行定位识别,此算法只对蓝底白字车牌进行分割识别,对黑底白字车牌原则上整个算法可直接适用,。

此算法分割出的图像像素值和模板图像达到了一致,由此便避免了切割出的图像像素值不一致所带来的问题。

但对白底黑字车牌、黄底黑字车牌,需要对车牌定位算法进行调整,并将图像反转(0变1、1变0)。

关键词:车牌识别系统;字符分割;车牌定位LICENSE PLATE RECOGNITION ALGORITHM BASEDON MATLABABSTRACTLicense plate system is a computer vision and pattern recognition technology in one of the important application research topic in the field of intelligent transportation. License plate recognition system based on specific goals of a special computer system, the system mainly includes three contents: license plate locating, character segmentation and character recognition. One of the purpose of license plate location is taken from the auto locate the license plate in the image, so as to facilitate the subsequent work character segmentation and character recognition. Now commonly used methods are: based on template matching method, based on the characteristics of the method and neural network, etc.This design USES based on template matching algorithm and based on artificial neural network algorithm to locate license plate recognition, the algorithm is only for blue white license plate segmentation recognition, the algorithm can be directly applicable in principle to the black white plate,. This algorithm to segment the image pixel values and template image, thus to avoid the cut out in the process of image pixel values are not consistent. But black on white background and black text plate, yellow bottom plate, adjustments need to license plate localization algorithm, and the image inversion of (0, 1, 1, 0).Key words: license plate recognition system; Character segmentation; License plate location目录1 前言 (4)1.1车牌号识别研究背景 (4)1.2 车牌号识别技术研究现状和趋势 (5)1.2.1国内外车牌识别技术情况及我国车牌特点 (5)1.2.2车牌识别技术的应用前景 (6)1.3 车牌识别研究内容 (7)2 车牌识别系统设计原理概述 (9)3 车牌识别系统程序设计 (11)3.1图像读取及车牌区域提取 (11)3.1.1图像灰度图转化 (11)3.1.2图像的边缘检测 (13)3.1.3灰度图腐蚀 (14)3.1.4图像平滑处理 (15)3.1.5移除小对象 (16)3.1.6车牌区域的边界值计算 (17)3.2字符切割 (18)3.2.1字符切割前的图像去噪处理 (18)3.2.2字符切割前的图像膨胀和腐蚀处理 (19)3.2.3字符切割 (19)3.3字符识别 (22)3.3.1字符识别方法选择 (22)3.3.2字符归一化 (22)3.3.3字符匹配识别 (23)4 仿真结果及分析 (26)4.1 车牌定位及图像读取及其图像处理 (26)4.2 车牌字符分割及其图像处理 (26)5 结论 (28)参考文献 (29)致谢............................................... 错误!未定义书签。

基于MATLAB图像处理的汽车牌照识别系统

基于MATLAB图像处理的汽车牌照识别系统

基于MATLAB 图像处理的汽车牌照识别系统仇成群(盐城师范学院,江苏盐城224002)汽车牌照识别系统是建设智能交通系统不可或缺的部分。

基于MATLAB 图像处理的汽车牌照识别系统是通过引入数字摄像技术和计算机信息管理技术,采用先进的图像处理、模式识别和人工智能技术,通过对图像的采集和处理,获得更多的信息,从而达到更高的智能化管理程度。

车牌识别系统整个处理过程分为预处理、边缘提取、车牌定位、字符分割、字符识别五大模块,用MATLAB 软件编程来实现每一个部分处理工程,最后识别出汽车牌照[1-4]。

1MATLAB 及其图像处理工具概述MATLAB 是MATrix LABoratory (矩阵实验室)的缩写,是Math Works 公司开发的一种功能强、效率高、简单易学的数学软件。

MATLAB 的图像处理工具箱,功能十分强大,支持的图像文件格式丰富,如*.BMP 、*.JPG 、*.JPEG 、*.GIF 、*.TIF 、*.TIFF 、*.PNG 、*.PCX 、*.XWD 、*.HDF 、*.ICO 、*.CUR 等。

MATLAB 7.1提供了20多类图像处理函数,几乎涵盖了图像处理的所有技术方法,是学习和研究图像处理的人员难得的宝贵资料和加工工具箱。

这些函数按其功能可分为:图像显示、图像文件I/O 、图像算术运算、几何变换、图像登记、像素值与统计、图像分析、图像增强、线性滤波、线性二元滤波设计、图像去模糊、图像变换、邻域与块处理、灰度与二值图像的形态学运算、基于边缘的处理、色彩映射表操作、色彩空间变换、图像类型与类型转换。

MATLAB 还着重在图形用户界面(GUI )的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。

本文将给出MATLAB 的图像处理工具箱中的图像处理函数实现图像处理与分析的应用技术实例。

2基于MATLAB 图像处理的汽车牌照识别系统2.1系统组成基于MATLAB 图像处理的汽车牌照识别系统主要包括车牌定位、字符车牌分割和车牌字符识别三个关键环节。

Matlab环境下基于神经网络的车牌识别

Matlab环境下基于神经网络的车牌识别

Matlab环境下基于神经网络的车牌识别一、本文概述随着科技的快速发展和智能交通系统(ITS)的广泛应用,车牌识别技术已成为现代城市管理、交通监控、违法查处等多个领域的关键技术之一。

作为智能交通系统的核心组成部分,车牌识别技术旨在通过图像处理和计算机视觉的方法,从复杂多变的交通图像中准确地提取车牌信息,进而实现车辆的自动识别和跟踪。

在众多的车牌识别方法中,基于神经网络的方法因其强大的特征提取和分类能力而备受关注。

Matlab作为一款强大的数学计算和仿真软件,提供了丰富的神经网络工具箱,为用户提供了便捷的神经网络模型构建、训练和应用环境。

本文旨在探讨在Matlab环境下,如何利用神经网络技术实现高效、准确的车牌识别。

本文首先介绍了车牌识别的研究背景和意义,然后详细阐述了神经网络的基本原理及其在车牌识别中的应用。

接着,文章重点介绍了在Matlab环境下,车牌识别系统的设计和实现过程,包括图像预处理、车牌定位、字符分割和字符识别等关键步骤。

文章通过实验验证了所提出方法的有效性和优越性,并对未来的研究方向进行了展望。

通过本文的研究,旨在为车牌识别技术的发展和应用提供一定的参考和指导,同时也为相关领域的研究者和技术人员提供一种有效的解决方案。

二、车牌识别系统的基本原理车牌识别系统(License Plate Recognition, LPR)是一种通过图像处理技术自动识别和提取车辆牌照信息的系统。

在Matlab环境下,基于神经网络的车牌识别主要依赖于深度学习算法,特别是卷积神经网络(Convolutional Neural Networks, CNN)。

预处理:预处理是车牌识别的第一步,其主要目的是改善图像质量,减少噪声,并突出车牌区域。

常见的预处理步骤包括灰度化、噪声去除、边缘检测、图像增强等。

车牌定位:车牌定位是在预处理后的图像中找出车牌所在的位置。

这通常通过图像处理技术,如颜色分割、形态学操作、边缘检测等实现。

《2024年基于MATLAB的车牌识别系统研究》范文

《2024年基于MATLAB的车牌识别系统研究》范文

《基于MATLAB的车牌识别系统研究》篇一一、引言随着科技的发展,车牌识别系统在交通管理、安全监控、车辆定位等领域的应用越来越广泛。

MATLAB作为一种强大的编程语言和数据处理工具,被广泛应用于图像处理和机器视觉等领域。

本文旨在研究基于MATLAB的车牌识别系统,包括系统的基本原理、实现方法、实验结果和结论。

二、车牌识别系统的基本原理车牌识别系统是一种基于图像处理和机器视觉技术的自动识别系统。

其主要原理包括图像预处理、车牌定位、字符分割和字符识别四个部分。

在MATLAB中,这些过程通过数字图像处理算法、计算机视觉算法以及机器学习算法实现。

(一)图像预处理图像预处理是车牌识别系统的第一步,主要目的是消除图像中的噪声和干扰信息,提高图像的清晰度和对比度,以便后续的图像处理和分析。

常用的预处理方法包括灰度化、二值化、滤波等。

(二)车牌定位车牌定位是车牌识别系统的关键步骤,其主要目的是从图像中准确地检测出车牌的位置。

常用的车牌定位方法包括基于颜色特征的方法、基于形状特征的方法和基于模板匹配的方法等。

在MATLAB中,可以通过边缘检测、Hough变换等方法实现车牌的定位。

(三)字符分割字符分割是将车牌图像中的每个字符分割出来的过程。

常用的字符分割方法包括投影法、连通域法等。

在MATLAB中,可以通过图像形态学操作、阈值分割等方法实现字符的分割。

(四)字符识别字符识别是将分割后的字符进行分类和识别的过程。

常用的字符识别方法包括模板匹配法、神经网络法等。

在MATLAB中,可以通过训练分类器、使用机器学习算法等方法实现字符的识别。

三、车牌识别系统的实现方法在MATLAB中,我们可以通过编写程序实现车牌识别系统的各个步骤。

具体实现方法如下:(一)图像预处理首先,对输入的图像进行灰度化和二值化处理,消除噪声和干扰信息。

然后,通过滤波等操作提高图像的清晰度和对比度。

(二)车牌定位通过边缘检测和Hough变换等方法检测出车牌的轮廓,并确定车牌的位置。

基于MATLAB的车牌识别系统

基于MATLAB的车牌识别系统

基于MATLAB的车牌识别系统
MATLAB是一款常用的科学计算软件,它具有强大的图像处理功能,因此可以用来实现一些基于图像的应用,如车牌识别系统。

以下是一个基于MATLAB的车牌识别系统的实现步骤:
1. 图像采集:使用摄像头或者其他图像采集设备获取车牌图像。

2. 图像预处理:对采集到的车牌图像进行预处理,实现图像的
灰度化、噪声去除、边缘检测等操作。

3. 车牌定位:在处理后的图像中,通过车牌的大小、形状以及
颜色等特征,确定车牌的位置和范围。

4. 字符切割:根据车牌的字符间距和字符大小等特征,将车牌
区域的字符进行切割和分离,得到每个字符的图像。

5. 字符识别:利用机器学习算法、神经网络等方法,对切割出
的字符进行识别,确定车牌号码。

6. 结果显示:将识别结果显示在屏幕上,以及保存结果。

需要注意的是,在识别车牌号码的过程中,需要大量的实例图
像和标注数据,用来进行训练和测试。

同时,对于车牌识别系统,
还需要考虑一些实际应用中的问题,如光线、角度、车速等因素对
图像质量的影响。

因此,需要设计合适的算法和方法,充分考虑实
际应用中的各种因素,提高识别准确度和可靠性。

基于matlab的汽车牌照识别源程序

基于matlab的汽车牌照识别源程序

基于matlab的车牌识别的源程序clcclearfilename='E:\matlab7.0\car.jpg';%图片的路径I=im2gray(filename);%调用自编函数读取图像,并转化为灰度图象;tic%计时开始[height,width]=size(I);%预处理I_edge=zeros(height,width);%创建height*width矩阵for i=1:width-1%对每一列进行遍历I_edge(:,i)=abs(I(:,i+1)-I(:,i));%每列的值赋为原图像中左右两列相减的绝对值(即梯度)end%归一化处理(0~255)I_edge=(255/(max(max(I_edge))-min(min(I_edge))))*(I_edge-min(min(I_edge)));[I_edge,y1]=select(I_edge,height,width);%%%%%%调用select函数选择图像的某个区域BW2 = I_edge;%%%%%%%%%%%%%%%%%一些形态学处理SE=strel('rectangle',[10,10]);%创建10*10的建构元素IM2=imerode(BW2,SE);%腐蚀IM2=bwareaopen(IM2,20);%删除小面积IM3=imdilate(IM2,SE);%膨胀%先腐蚀再膨胀,进行了开运算,消除小物体%%%%%%%%%%%%%%%%%%投影以粗略估计车牌位置p_h=projection(double(IM3),'h');%调用projection函数,水平方向if(p_h (1)>0)p_h=[0,p_h];endp_v=projection(double(IM3),'v');%调用projection函数,垂直方向if(p_v (1)>0)p_v=[0,p_v];end%%%%%%p_h=double((p_h>5));%水平方向p_h=find(((p_h(1:end-1)-p_h(2:end))~=0));len_h=length(p_h)/2;%%%%%p_v=double((p_v>5));%垂直方向p_v=find(((p_v(1:end-1)-p_v(2:end))~=0));len_v=length(p_v)/2;%%%%%%%%%%% %%%%%%%%%%%%%%%%%粗略计算车牌候选区k=1;for i=1:len_hfor j=1:len_vs=IM3(p_h(2*i-1):p_h(2*i),p_v(2*j-1):p_v(2*j));if(mean(mean(s))>0.1)p{k}=[p_h(2*i-1),p_h(2*i)+1,p_v(2*j-1),p_v(2*j)+1];k=k+1;endendendk=k-1; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%进一步缩小车牌候选区for i=1:kedge_IM3=double(edge(double(IM3(p{i}(1):p{i}(2),p{i}(3):p{i}(4))),'canny'));[x,y]=find(edge_IM3==1); p{i}=[p{i}(1)+min(x),p{i}(2)-(p{i}(2)-p{i}(1)+1-max(x)),...p{i}(3)+min(y),p{i}(4)-(p{i}(4)-p{i}(3)+1-max(y))];p_center{i}=[fix((p{i}(1)+p{i}(2))/2),fix((p{i}(3)+p{i}(4))/2)];p_ratio(i)=(p{i}(4)-p{i}(3))/(p{i}(2)-p{i}(1));end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%对上面参数和变量的说明:p为一胞元,用于存放每个图像块的左上和右下两个点的坐标;%存放格式为:p{k}=[x1,x2,y1,y2];x1,x2分别为行坐标,y1,y2为列坐标%p_center为一胞元,用于存放每个图像块的中心坐标,p_center{k}=[x,y];x,y分别为行,列坐标%p_ratio为一矩阵,用来存放图像块的长宽比例%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%合并临近区域%%%%%%%%如果有多个区域则执行合并if k>1n=0;ncount=zeros(1,k);for i=1:k-1%%%需要调整if条件中的比例%%%需要调整%检查是否满足合并条件if(abs(p{i}(1)+p{i}(2)-p{i+1}(1)-p{i+1}(2))<=height/30&&abs(p{i+1}(3)-p{i}(4))<=width/15)p{i+1}(1)=min(p{i}(1),p{i+1}(1));p{i+1}(2)=max(p{i}(2),p{i+1}(2));p{i+1}(3)=min(p{i}(3),p{i+1}(3));(4)=max(p{i}(4),p{i+1}(4));%向后合并n=n+1;ncount(n)=i+1;endend%如果有合并,求出合并后最终区域if(n>0)d_ncount=ncount(2:n+1)-ncount(1:n);%避免重复记录临近的多个区域。

基于MATLAB的汽车牌照自动识别系统设计

基于MATLAB的汽车牌照自动识别系统设计

1引言随着我国交通迅速发展,人工管理方式已经逐渐不能满足实际的需要,微电子、通信和计算机技术在交通领域的应用极大地提高了交通管理效率。

汽车牌照的自动识别技术已经得到了广泛应用。

通过对车辆牌照的正确认识,不仅可以实现交通流量的统计和查询,道路负荷的测定和管理,而且可以对肇事车辆、走私车辆、丢失车辆进行辨识和追查。

传统的方法是在设定的路口派专人进行观察和笔录,因此工作强度大、统计繁杂、效率低、准确性差。

因而对车辆牌照自动识别技术的研究和应用系统开始具有重要的意义。

汽车牌照自动识别整个处理过程分为预处理、边缘提取、车牌定位、字符分割、字符识别五大模块,其中字符识别过程主要由以下3个部分组成:①正确地分割文字图像区域;②正确的分离单个文字;③正确识别单个字符。

MATLAB是一种强大的数值计算功能的编程工具,在图像处理、信号处理、神经网络中都有着广泛的应用。

其数据类型最大的特点是每一种类型都以数组为基础,从数组中派生出来。

其所提供的强大的矩阵运算功能。

如特征值和特征向量的计算、矩阵求逆灯都可以直接通过MATLAB提供的函数求出。

MATLAB还提供了小波分析、图像处理、信号处理、虚拟现实、神经网络等的工具包。

其中,图像处理工具包提供了许多可用于图像处理的相关函数。

按功能可以分为图像显示;图像文件输入与输出;几何操作;像素值和统计;图像分析与增强;图像铝箔;线性二维滤波器设计;图像变换;领域和块操作;二值图像操作;颜色映射和颜色空间转换;图像类型和类型转换;工具包参数获取和设置等。

基于此,用MATLAB软件编程来实现每一个部分,最后识别出汽车牌照,有很大的优势。

在研究的同时对其中出现的问题进行了具体分析,处理。

2车牌定位2.1预处理及边缘提取图2 预处理及边缘提取流程图2.1.1图象的采集与转换考虑到现有牌照的字符与背景的颜色搭配一般有蓝底白字、黄底黑字、白底红字、绿底白字和黑底白字等几种,利用不同的色彩通道就可以将区域与背景明显地区分出来,例如,对蓝底白字这种最常见的牌照,采用蓝色 B 通道时牌照区域为一亮的矩形,而牌照字符在区域中并不呈现。

基于MATLAB的车牌识别系统设计

基于MATLAB的车牌识别系统设计

基于MATLAB的车牌识别系统设计基于MATLAB的车牌识别系统设计在现代社会,车辆的数量迅速增加,因此车牌识别系统的需求也日益增加。

车牌识别技术可以应用于交通管理、停车场管理、盗抢车辆追踪等领域。

为了满足这一需求,本文将介绍基于MATLAB的车牌识别系统的设计。

一、系统架构基于MATLAB的车牌识别系统的架构主要分为图像获取、图像预处理、字符分割和字符识别四个模块。

1. 图像获取模块:这一模块通过摄像头或者图像输入设备获取车牌图像,并将获取到的图像进行读取。

2. 图像预处理模块:该模块对获取到的车牌图像进行预处理,包括图像灰度化、图像二值化、图像增强等。

3. 字符分割模块:该模块将预处理后的车牌图像按照字符进行分割,形成独立的字符图像。

4. 字符识别模块:该模块使用字符识别算法对分割出的字符图像进行识别,并输出识别结果。

二、图像获取模块在实际应用中,车牌图像的获取方式多种多样。

本文以摄像头获取车牌图像为例进行介绍。

在MATLAB中,使用VideoInput对象可以获取摄像头的实时图像,并将获取到的图像存储为矩阵。

三、图像预处理模块图像预处理模块的目的是对获取到的车牌图像进行一系列操作,使得后续的字符分割和字符识别模块能够更好地处理图像。

常见的预处理操作包括图像灰度化、图像二值化和图像增强。

1. 图像灰度化:将彩色图像转化为灰度图像。

在MATLAB 中,可以使用rgb2gray函数完成灰度化操作。

2. 图像二值化:将灰度图像转化为二值图像,使得车牌字符与背景能够更好地区分开来。

常见的二值化方法有阈值法、自适应阈值法等。

这里选择阈值法,通过设定一个合适的阈值,将灰度值大于阈值的像素置为1,小于阈值的像素置为0。

3. 图像增强:对二值图像进行增强处理,使得字符边界更加清晰。

常见的增强方法有直方图均衡化、中值滤波等。

这里选择直方图均衡化,通过对图像的像素值进行重新分布,使得图像整体对比度增强。

四、字符分割模块在图像预处理模块完成后,得到的车牌图像已经是经过处理的二值图像。

基于MATLAB的汽车牌照自动识别技术研究

基于MATLAB的汽车牌照自动识别技术研究

基于MATLAB的车牌自动识别技术研究1、本文概述随着技术的快速发展和智能时代的到来,自动驾驶、智能交通系统等领域的研究和应用逐渐成为全球热点。

在这些领域,汽车牌照的自动识别技术起着至关重要的作用。

汽车牌照自动识别技术作为车辆的唯一标识,不仅可以提高交通管理效率,还可以为车辆跟踪、违章记录等提供有力支持。

本文旨在通过对相关算法和技术的深入探索,研究基于MATLAB的汽车牌照自动识别技术,为实际应用提供理论支持和技术指导。

本文首先阐述了车牌自动识别技术的研究背景和意义,指出其在智能交通系统中的重要地位。

随后,文章回顾了国内外该领域的研究现状和发展趋势,分析了现有技术的优缺点,为后续研究提供了理论支持。

在此基础上,重点介绍了基于MATLAB的车牌自动识别技术的实现过程,包括预处理、车牌定位、字符分割、字符识别等关键环节。

通过对这些方面的详细阐述,展示了MATLAB在车牌识别技术中的强大功能和优势。

本文还对所提出的算法和技术进行了实验验证和性能分析,并通过对比实验和实际应用案例验证了所提出算法的有效性和实用性。

展望了车牌自动识别技术的未来发展方向,为相关领域的研究人员提供了有益的参考和启示。

通过本文的研究,我们希望能为车牌自动识别技术的发展和推广做出贡献,推动智能交通系统的进一步发展,为人们的出行和生活带来更方便、更安全的体验。

2、车牌自动识别技术综述车牌自动识别(ALPR)是一项利用图像处理、模式识别、人工智能等技术自动捕获、识别和提取车牌的关键技术。

随着智能交通系统的发展,车牌自动识别技术已广泛应用于交通管理、车辆跟踪、违章记录、停车场管理等领域。

车牌自动识别技术主要包括四个步骤:图像预处理、车牌定位、字符分割和字符识别。

图像预处理用于提高图像质量,减少噪声干扰,并为后续步骤提供清晰稳定的图像。

车牌定位是使用算法在预处理的图像中定位车牌的位置,为后续的字符分割提供准确的车牌区域的过程。

字符分割是将车牌中的字符逐一分割,为字符识别中的单个字符提供输入的过程。

基于MATLAB平台下的车牌识别系统设计

基于MATLAB平台下的车牌识别系统设计

3、实验改进
3、实验改进
根据实验结果,我们发现车牌定位和字符分割模块是影响系统性能的关键因 素。因此,我们计划从以下两个方面进行改进:
3、实验改进
1、针对车牌定位模块,尝试引入更多的特征提取方法,以便更准确地定位车 牌区域;
2、针对字符分割模块,研究更为稳健的连通域分析方法,减少误分割和漏分 割。
三、实验结果与分析
1、实验设置
1、实验设置
为了评估车牌识别系统的性能,我们构建了一个包含200张车牌图像的数据集, 其中包含了不同的光照条件、车牌位置和尺寸。评估指标主要包括准确率、召回 率和运行时间。
2、实验结果分析
2、实验结果分析
经过大量实验,我们得到了以下结果: 1、车牌定位模块的准确率为95%,召回率为90%;
1、需求分析
3、适应性:系统应能适应不同的环境条件,包括不同的光照条件、车牌位置 和车牌尺寸等;
1、需求分析
4、可靠性:系统应具备一定的可靠性,能够稳定运行,保证识别结果的准确 性。
2、总体设计
2、总体设计
在总体设计阶段,我们将车牌识别系统分解为以下几个模块: 1、车牌定位模块:该模块主要负责寻找并定位车牌区域,排除其他干扰因素;
基于MATLAB平台下的车牌识别 系统设计
01 一、引言
目录
02
二、车牌识别系统设 计
03 三、实验结果与分析
04 四、结论与展望
05 参考内容
一、引言
一、引言
随着社会的快速发展和科技的不断进步,智能化交通管理成为了研究的热点。 车牌识别系统作为智能化交通管理的重要组成部分,能够自动识别车辆身份,提 高交通监管能力和服务质量。本次演示将基于MATLAB平台,设计一套车牌识别系 统,旨在提高车牌识别的准确性和效率,为智能交通管理提供有力支持。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于matlab的汽车牌照识别程序摘要:本次课程设计的目的是通过对基于MATLAB的字符识别的研究,以汽车牌照识别的设计为实例,详细介绍字符识别的相关原理。

整个汽车牌照识别的过程分为预处理、边缘提取、车牌定位、字符分割、字符识别五大模块,用MATLAB软件编程来实现每一个部分,最后识别出汽车牌照。

在研究的同时对其中出现的问题进行了具体分析,处理。

寻找出对于具体的汽车牌照识别过程的最好的方法。

关键词:MATLAB字符识别车牌识别神经网络图像处理0 引言在MATLAB的字符识别研究中,汽车牌照的识别是最经典的样例,因为车辆牌照识别系统(License Plate Recognition System,简称LPRS)是建设智能交通系统不可或缺的部分。

基于MATLAB图像处理的汽车牌照识别系统是通过引入数字摄像技术和计算机信息管理技术,采用先进的图像处理模式识别和人工智能技术,通过对图像的采集和处理,获得更多的信息,从而达到更高的智能化管理程度。

车牌识别系统整个处理过程分为预处理、边缘提取、车牌定位、字符分割、字符识别五大模块,用MATLAB软件编程来实现每一个部分处理工程,最后识别出汽车牌照。

1 MATLAB及其图像处理工具概述MATLAB是MATrix LABoratory(矩阵实验室)的缩写,是Math Works公司开发的一种功能强、效率高、简单易学的数学软件。

MATLAB的图像处理工具箱,功能十分强大,支持的图像文件格式丰富,如*.BMP、*.JPG、*.JPEG、*.GIF、*.TIF、*.TIFF、*.PNG、*.PCX、*.XWD、*.HDF、*.ICO、*.CUR等。

MATLAB7.X提供了20多类的图像处理函数,几乎涵盖了图像处理的所有技术方法,是学习和研究图像处理的人员难得的宝贵资料和加工工具箱。

这些函数按其功能可分为:图像显示、像文件I/O、图像算术运算、几何变换、图像登记、像素值与统计、像分析、图像增强、线性滤波、线性二元滤波设计、图像去模糊、图像变换、邻域与块处理、灰度与二值图像的形态学运算、基于边缘的处理、色彩映射表操作色彩空间变换、像类型与类型转换。

MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。

本文将给出MATLAB的图像处理工具箱中的图像处理函数实现图像处理与分析的应用技术实例。

2 基于MATLAB图像处理的汽车牌照识别系统2.1系统组成基于MATLAB图像处理的汽车牌照识别系统主要包括车牌定位字符车牌分割和车牌字符识别三个关键环节其识别流程图如图1所示。

图1 识别流程图其中,(1) 原始图像:由数码相机或其它扫描装置拍摄到的图像;(2) 图像预处理:对动态采集到的图像进行滤波、边界增强等处理以克服图像干扰;(3) 车牌定位:计算边缘图像的投影面积,寻找峰谷点,大致确定车牌位置,再计算此连通域内的宽高比,剔除不在域值范围内的连通域,最后得到的便为车牌区域;(4) 字符分割:利用投影检测的字符定位分割方法得到单个的字符;(5) 字符数据库:为第6步的字符识别建立字符模板数据库;(6) 字符识别:通过基于模板匹配的OCR算法或基于人工神经网络的OCR算法,通过特征对比或训练识别出相关的字符,得到最后的汽车牌照,包括英文字母和数字。

2.2 图像预处理图像在形成传输或变换过程中,受多种因素的影响,如:光学系统失真、系统噪声、曝光不足或过量、相对运动等,往往会与原始景物之间或图像与原始图像之间产生了某种差异,这种差异称为降质或退化。

因此在图像处理之前必须进行预处理,包括去除噪音、边界增强、增加亮度等等。

输入的彩色图像包含大量颜色信息,会占用较多的存储空间,且处理时也会降低系统的执行速度,因此对图像进行识别等处理时,常将彩色图像转换为灰度图像,以加快处理速度。

对图像进行灰度化处理、边缘提取、再利用形态学方法对车牌进行定位。

具体步骤如下:首先对图像进行灰度转换,二值化处理然后采用4X1的结构元素对图像进行腐蚀,去除图像的噪声。

采用25X25的结构元素,对图像进行闭合应算使车牌所在的区域形成连通。

再进行形态学滤波去除其它区域。

figure, imshow(I),title('原始图像');I1=rgb2gray(I);%转化为灰度图像figure,imshow(I1),title('灰度图像');I2=edge(I1,'roberts',0.09,'both');%采用robert算子进行边缘检测figure,imshow(I2),title('边缘检测后图像');se=[1;1;1]; %线型结构元素I3=imerode(I2,se); %腐蚀图像figure,imshow(I3),title('腐蚀后边缘图像');se=strel('rectangle',[25,25]); %矩形结构元素I4=imclose(I3,se);%图像聚类、填充图像figure,imshow(I4),title('聚类填充后图像');I5=bwareaopen(I4,2000);%去除聚团灰度值小于2000的部分figure,imshow(I5),title('形态滤波后图像');通过对比原始图片,我们可以发现形态滤波后的图像已经很接近正确的车牌位置了,因此后期处理将通过这张图来找出车牌位置。

2.3 车牌定位观察经过预处理后得到的图像发现车牌位置有明显的矩形有明显的矩形图样,通过对矩形区域的定位即可获得具体的车牌位置。

(1) 车牌的行起始和终止位置的确定%绘制行曲线图[y,x,z]=size(I5);I6=double(I5);Y1=zeros(y,1);for i=1:yfor j=1:xif(I6(i,j,1)==1)Y1(i,1)= Y1(i,1)+1;endendend[temp MaxY]=max(Y1);%subplot(3,2,1),figure,plot(0:y-1,Y1),title('行方向像素点灰度值累计和'),xlabel('行值'),ylabel('像素'); [temp, MaxY]=max(Y1);PY1=MaxY;while ((Y1(PY1,1)>=80)&&(PY1>1))PY1=PY1-7;endPY2=MaxY;while ((Y1(PY2,1)>=80)&&(PY2<y))PY2=PY2+7;End(2) 车牌的列起始位置和终止位置的确定%绘制列曲线图X1=zeros(1,x);for j=1:xfor i=PY1:PY2if(I6(i,j,1)==1)X1(1,j)= X1(1,j)+1;endend%subplot(1,3,2);figure,plot(0:x-1,X1),title('列像素灰度值累计'),xlabel('列值'),ylabel('像数和');PX1=1;while ((X1(1,PX1)<3)&&(PX1<x))PX1=PX1+7;endPX2=x;while ((X1(1,PX2)<3)&&(PX2>PX1))PX2=PX2-7;end%PX1=PX1-7;%PX2=PX2+1;(3) 最后拼合获取的车牌在图像的行列位置dw=I(PY1:PY2,PX1:PX2,:);figure,imshow(dw),title('定位剪切后的彩色车牌图像')3 字符分割在汽车牌照自动识别过程中,字符分割有承前启后的作用。

它在前期牌照定位的基础上进行字符的分割,然后再利用分割的结果进行字符识别。

%车牌图像转为灰度I1 = rgb2gray(dw);elseI1 = dw;end%二值化车牌图像I1 = im2bw(I1,graythresh(I1));%二值化图像%subplot(1,2,1);figure,imshow(I2),title('二值化车牌图像');I2 = bwareaopen(I1,16);%去除小于16像素的区块%subplot(3,2,5);figure,imshow(I2),title('形态学滤波后的二值化图像');[y1,x1,z1]=size(I2);I3=double(I2);TT=1;%%%%%%%去除图像顶端和底端的不感兴趣区域%%%%% Y1=zeros(y1,1);for i=1:y1for j=1:x1if(I3(i,j,1)==1)Y1(i,1)= Y1(i,1)+1 ;endendendPy1=1;Py0=1;while ((Y1(Py0,1)<20)&&(Py0<y1))Py0=Py0+7;endPy1=Py0;while((Y1(Py1,1)>=20)&&(Py1<y1))Py1=Py1+7;endI2=I2(Py0:Py1,:,:);%subplot(3,2,6);figure,imshow(I2),title('目标车牌区域');%分割字符按行积累量X1=zeros(1,x1);for j=1:x1for i=1:y1if(I3(i,j,1)==1)X1(1,j)= X1(1,j)+1;endendendfigure;plot(0:x1-1,X1),title('列方向像素点灰度值累计和'),xlabel('列值'),ylabel('累计像素量')% 分割字符Px0=1;Px1=1;figure();for i=1:9while ((X1(1,Px0)<3)&&(Px0<x1))Px0=Px0+7;endPx1=Px0;while (((X1(1,Px1)>=3)&&(Px1<x1))||((Px1-Px0)<10)) Px1=Px1+7;endZ=I2(:,Px0:Px1,:);switch strcat('Z',num2str(i))case 'Z1'PIN0=Z;case 'Z2'PIN1=Z;case 'Z3'PIN2=Z;case 'Z4'PIN3=Z;case 'Z5'PIN4=Z;case 'Z6'PIN5=Z;case 'Z7'PIN6=Z;case 'Z8'PIN7=Z;otherwisePIN8=Z;endsubplot(1,9,i);imshow(Z);Px0=Px1;end由于有干扰没有去除故分割成九块后的车牌图像4 建立字符模板数据库模板库的合理建造是字符识别准确的关键之一,所以在字符识别之前必须把模板库设置好。

相关文档
最新文档