您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 基于MATLAB的汽车牌照识别
基于MATLAB的车牌识别李家煜2019年6月15日河南科技大学生医161目录CONTENTS数据载入及预处理车牌定位字符提取01020304存在的不足01数据载入及预处理one数据载入及预处理1.图像数据载入uigetfile函数的调用格式为:[filename,filepath]=uigetfile(…),执行此函数可得到供用户选择图片文件的对话框,用户选择要识别的图片并点击“打开”按钮后,会返回此图片的文件名和路径名,分别保存到filename和pathname两个变量中Imread函数将图像读出2.图像转换one数据载入及预处理02车牌定位two车牌定位边缘检测腐蚀处理平滑处理及移除小目标定位裁剪车牌定位two1.边缘检测在将彩色图转换为灰度图后,用edge函数识别该图像的边界,edge函数通过使用一阶导数和二阶导数检测亮度的不连续来确定图像的边界,它可以使用Sobel,Prewitt,Roberts,Canny,LoG,零交叉等多种算子,在此使用最强大的Canny算子进行边缘检测。车牌定位twoI2=edge(I1,‘canny’,0.08,‘both’);subplot(2,2,4),imshow(I2);title('canny算子边缘检测')代码:车牌定位two2.腐蚀处理由于边缘检测后的图像中无关结构太多,需对图像进行腐蚀处理,实现腐蚀处理的函数为imerode。代码:se=[1;1;1];%线型结构元素I3=imerode(I2,se);车牌定位two3.平滑及移除小对象腐蚀后的图像结构大多呈分散状分布,不连贯。为了方便之后确认车牌位置,需对该图像进行平滑处理,使用闭运算使车牌平滑,并减小噪音。代码:I4=imclose(I3,se);%闭运算车牌定位two3.平滑及移除小对象为了使车牌位置的确定更精确,使用bwareaopen函数从图象中移除小对象,。代码:BW2=bwareaopen(BW,P,conn)车牌定位two腐蚀后图像平滑图像的轮廓从图象中移除小对象0510x105灰度图直方图01车牌定位two4.定位裁剪在经过上面的处理,最初的彩色图像已经变成以车牌为主要结构的二值图像,对这种主体结构清晰的二值图像进行扫描,进而确定出车牌的位置。通过定位,得到了车牌的上边界PY1,下边界PY2,左边界PX1,右边界PX2,将这四个边界值从原彩色图像中切割出车牌:dw=I(PY1:PY2,PX1:PX2,:);车牌定位two4.定位裁剪[y,x]=size(I5);%【行列默认1】myI=double(I5);white_y=zeros(y,1);fori=1:yforj=1:xif(myI(i,j,1)==1)white_y(i,1)=white_y(i,1)+1;%蓝色像素点统计endendend[tempMaxY]=max(white_y);%temp为向量white_y的元素中的最大值,MaxY为该值的索引(在向量中的位置)PY1=MaxY;while((white_y(PY1,1)=120)&&(PY11))PY1=PY1-1;%找车牌最上端endPY2=MaxY;while((white_y(PY2,1)=40)&&(PY2y))PY2=PY2+1;%找车牌最下端end03字符提取three字符提取车牌图像二值化滤波膨胀或腐蚀处理定位剪切后的彩色车牌图像1.车牌灰度图像2.车牌二值图像4.均值滤波后g_max=double(max(max(b)));g_min=double(min(min(b)));T=round(g_max-(g_max-g_min)/3);[m,n]=size(b);d=(double(b)=T);通过fspecial函数构造均值滤波器,然后使用filter2函数进行滤波,以减小图中噪音。由于不同原始图像的差异,处理到这里后,字符可能会不连续,也可能会连在一起,这时我们需要再次对滤波后的图像进行腐蚀或者膨胀处理5.膨胀或腐蚀处理后6.切割后图片three字符提取分离字符定义了一个用于分离字符的函数getword,思路如下:对图像从左到右逐列扫描,并将每列中像素点的值进行求和,若和不为零(即这一列是组成某字符的一列),则向右继续扫描下一列,直到某一列求和后值为零(即这一列是两白色字符之间的黑色间隔),图像最左侧到这一列之间即为第一个字符,将其切出,然后将该区域内所有像素点赋值为0(涂黑),重复以上操作直至分离出所有字符。04存在的不足four存在的不足原图灰度图00.511.52x104灰度图直方图0100200canny算子边缘检测腐蚀后图像平滑图像的轮廓从图象中移除小对象0510x105灰度图直方图01当要识别的图像中存在异常高光分布时,由于代码的一些缺陷会造成识别失败,在这一方面任需要改进。four存在的不足定位剪切后的彩色车牌图像1.车牌灰度图像2.车牌二值图像4.均值滤波后感谢
本文标题:基于MATLAB的汽车牌照识别
链接地址:https://www.777doc.com/doc-5183460 .html