目录
前言
课题背景和意义
实现技术思路
一、车牌识别系统总体方案设计
二、车牌识别系统硬件设计
三、车牌识别系统软件设计
四、 实验结果与分析
部分源代码
实现效果图样例
最后
前言
📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。
🚀对毕设有任何疑问都可以问学长哦!
选题指导: https://blog.csdn.net/qq_37340229/article/details/128243277
大家好,这里是海浪学长毕设专题,本次分享的课题是
🎯基于 MATLAB 的车牌识别系统设计
课题背景和意义
TIon,VLPR) 是
计算机视频图像识别技术在车辆牌照识别中的一种应用。车牌识别在高速公路车辆管理中得到广泛应用,
电子收费(ETC)系统中,也是结合DSRC技术识别车辆身份的主要手段。车牌识别系统(Vehicle License Plate Recogni
TIon,VLPR) 是
计算机视频图像识别技术在车辆牌照识别中的一种应用。车牌识别在高速公路车辆管理中得到广泛应用,
电子收费(ETC)系统中,也是结合DSRC技术识别车辆身份的主要手段。
针对车牌识别遇到的问题,提高车牌识别系统的识别率,目前采用的方法先对视频流中车辆的整体情况做出判断,随后对车牌进行精确定位,通过算法对车牌进行字符和数字识别。而我国汉字相对较复杂,无疑给准确识别字符带来了巨大的挑战,所以国内车牌识别系统成熟的产品不多,亟需广大科研工作者,企业、高校相关专家进一步研究,优化出更高效的车牌识别算法。模式识别是人工智能领域的研究重点与难点,然而智能交通领是整个智能行业十分关键的组成部分,因此模式识别就特别关键,对车牌号进行检测、分析与识别是模式识别领域构建智能交通系统重要内容之一。
实现技术思路
一、车牌识别系统总体方案设计
本系统的设计流程图。
二、车牌识别系统硬件设计
三、车牌识别系统软件设计
车牌图像预处理
由于摄像头抓拍到的图像会受到光照、车辆行驶速 度、道路行驶车辆稠密度、车辆新旧程度、摄像头是否抖 动、摄像头拍摄的角度以及拍摄的距离等因素的影响,直 接获取到的车牌图像可能存在着一些噪点,导致无法直接 从其中提取到车牌的真实信息,因此需要通过图像预处 理,从而提升采集到的信息的质量。通常对图像进行滤波 去噪是改善图像质量的一种有效途径。
1)二值图像、灰度图像、彩色图像
①二值图像(Binary Image):图像中每个像素的灰度值仅可取0或1,即不是取黑,就是取白,二值图像可理解为黑白图像
②灰度图像(Gray Scale Image):图像中每个像素可以由0-255的灰度值表示,具体表现为从全黑到全白中间有255个介于中间的灰色值可以取
③彩色图像(Color Image):每幅图像是由三幅灰度图像组合而成,依次表示红绿蓝三通道的灰度值,即我们熟知的RGB,此时彩色图像要视为三维的[height,width, 3]
下面用一张图来感受一下灰度图与彩色图像之间的联系与差别
边缘检测
摄像头拍摄出来的图像是彩色图像,然而在实际的边 缘过程中,其检测对象都是灰度图像,因此需要对采集到 的图像进行灰度转换。总的来说,就是将彩色图像的三个通道信号转变为单通道信号,因此灰度图像的每一个像素点只有一个像素值。边缘检测有多种算法,例如 canny 算法、sobel 算法。
1)一阶导数模板可以检测边缘,主要的边缘模型有:台阶边缘模型、脉冲或者线模型、斜坡边缘模型。
2)梯度偏导数的滤波器模板:通常称为梯度算子、差分算子、边缘算子或边缘检测子。
3)一阶梯度算子:[-1,0,+1];[-1,+1];[+1,-2,+1];
5)二阶梯度算子
(1)Robert算子(罗伯特交叉梯度算子);适用范围:对角线方向的边缘;
(2)Prewitt算子:适用范围:垂直方向、水平方向的边缘。
(3)Sobel算子:
(4)拉普拉斯算子:
(5)LOG算子(Laplacian of Gaussian):
形态学处理
图像形态学处理也是图像处理中应用非常广泛的技术,这种技术方法主要从图像中提取对识别结果的有意义的图像分量。图像形态学处理方法有腐蚀、膨胀、开和闭。
四、 实验结果与分析
将原始图像先转换成灰度图像,灰度图像如图所示
对车牌图像进行边缘检测,检测结果为图所示。
选取结构元素为 3*1 的向量,经过腐蚀、膨胀形态学处理之后的车牌图像如图所示
最后经过中值滤波后的图像如图所示。
随后车牌定位剪切出来的彩色车牌图像如图 :
确定车牌位置后下一步的任务就是将字符区域与车牌背景分离开。然后对图像中每个字符进行分割,在分割时经过多次试验,选出合适的阈值。二值化的图像如图
构造训练样本,用训练好的神经网络识别车牌字符。最后识别结果以标题形式显示在车牌原始图像上。识别结果如图:
部分源代码
k=input( 'Enter the file name:,"s');%输入车牌照片
pic=imread(k);
imshow(pic);
pic_gray=rgb2gray(pic);
pic gray=medfilt2(pic_gray[3,3]);%对灰度图像进行中值滤波
Image=im2bw(pic gray,0.2);
BW=edge(pic gray, 'sobel’);%找出图像的边缘
imx,imy]=size(BW);%计算图像大小
msk=[00000
01110;
01110;
01110;
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);
se=ones(20,2);
B3=imdilate(B2,se);
B4=imerode(B3,se);
se=ones(50,2);
end
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);%要显示的匹配度字串
end
实现效果图样例
车牌识别系统的应用:
我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。
毕设帮助,疑难解答,欢迎打扰!