一、项目简介
本系统是一个基于MATLAB GUI的车牌识别与停车场管理系统,集车牌自动识别、字符分割与识别、车辆入库/出库管理、车位信息查询等功能于一体,适用于智能停车场管理场景。系统通过图像处理技术完成车牌定位与识别,并结合Excel数据管理实现车辆信息的自动化记录与查询。
核心算法流程分为车牌定位、字符分割和字符识别三个阶段。车牌定位阶段,将图像转为灰度后采用Canny边缘检测提取边缘,通过腐蚀、闭运算和面积过滤去除噪声,再结合蓝色像素点在水平和垂直方向的投影统计精确定位车牌区域。字符分割阶段,对定位后的车牌图像进行灰度化、二值化及Radon变换倾斜矫正,利用垂直投影法将7个字符逐一分割,并对汉字区域做特殊处理以优化分割精度。字符识别阶段,将分割后的字符归一化为40×20像素,与模板库中的标准字符进行逐像素差值匹配,选取差值最小的字符作为识别结果,分别针对首位汉字、第二位字母及后续字母数字采用不同的模板匹配范围。系统同时集成了基于Excel的车辆管理功能,支持入库登记、出库删除、车牌号查询及车位状态实时刷新,实现从图像识别到数据管理的完整业务闭环。
二、部分源码
function pushbutton3_Callback(~, eventdata, handles)
global img
I1=rgb2gray(img);
axes(handles.axes1);%axes1是坐标轴的标示
% set(handles.axes1,'visible','on')
imshow(I1);
function pushbutton9_Callback(hObject, eventdata, handles)
global img;
I1=rgb2gray(img);
%subplot(2,3,2),imshow(I1);title('灰度图');
%subplot(2,3,3),imhist(I1);title('灰度图直方图');
I2=edge(I1,'canny',0.2,0.55);
%subplot(2,3,4);imshow(I2);title('canny算子边缘检测')
se=1;1;1;
I3=imerode(I2,se);
axes(handles.axes1);%axes1是坐标轴的标示
% set(handles.axes1,'visible','on')
imshow(I3);
function pushbutton10_Callback(hObject, eventdata, handles)
global img;
I1=rgb2gray(img);
%subplot(2,3,2),imshow(I1);title('灰度图');
%subplot(2,3,3),imhist(I1);title('灰度图直方图');
I2=edge(I1,'canny',0.2,0.55);
%subplot(2,3,4);imshow(I2);title('canny算子边缘检测')
se=1;1;1;
I3=imerode(I2,se);
%subplot(2,3,5);imshow(I3);title('腐蚀后图像');
se=strel('rectangle',30,30);
I4=imclose(I3,se);
% figure(5),imshow(I4);title('平滑图像的轮廓');
I5=bwareaopen(I4,3500);
axes(handles.axes1);%axes1是坐标轴的标示
% set(handles.axes1,'visible','on')
imshow(I5);
function pushbutton11_Callback(hObject, eventdata, handles)
global img;
axes(handles.axes1);%axes1是坐标轴的标示
% set(handles.axes1,'visible','on')
imshow(img);
I1=rgb2gray(img);
%subplot(2,3,2),imshow(I1);title('灰度图');
%subplot(2,3,3),imhist(I1);title('灰度图直方图');
I2=edge(I1,'canny',0.2,0.55);
%subplot(2,3,4);imshow(I2);title('canny算子边缘检测')
se=1;1;1;
I3=imerode(I2,se);
%subplot(2,3,5);imshow(I3);title('腐蚀后图像');
se=strel('rectangle',30,30);
I4=imclose(I3,se);
axes(handles.axes1);%axes1是坐标轴的标示
% set(handles.axes1,'visible','on')
imshow(I4);
function pushbutton12_Callback(hObject, eventdata, handles)
global img;
axes(handles.axes1);%axes1是坐标轴的标示
% set(handles.axes1,'visible','on')
imshow(img);
I1=rgb2gray(img);
%subplot(2,3,2),imshow(I1);title('灰度图');
%subplot(2,3,3),imhist(I1);title('灰度图直方图');
I2=edge(I1,'canny',0.2,0.55);
%subplot(2,3,4);imshow(I2);title('canny算子边缘检测')
se=1;1;1;
I3=imerode(I2,se);
%subplot(2,3,5);imshow(I3);title('腐蚀后图像');
se=strel('rectangle',30,30);
I4=imclose(I3,se);
% figure(5),imshow(I4);title('平滑图像的轮廓');
I5=bwareaopen(I4,3500);
%subplot(2,3,6);imshow(I5);title('从对象中移除小对象');
y,x,\~=size(I5);
myI=double(I5);
%begin横向扫描
Blue_y=zeros(y,1);
for i=1:y
for j=1:x
if(myI(i,j,1)==1)
%如果myI(i,j,1)即myI图像中坐标为(i,j)的点为蓝色
%则Blue_y的相应行的元素white_y(i,1)值加1
Blue_y(i,1)= Blue_y(i,1)+1;%蓝色像素点统计
end
end
end
\~,MaxY=max(Blue_y);%temp为向量white_y的元素中的最大值,MaxY为该值的索引( 在向量中的位置)
PY1=MaxY;
while ((Blue_y(PY1,1)>=50)&&(PY1>1))
PY1=PY1-1;
end
PY2=MaxY;
while ((Blue_y(PY2,1)>=10)&&(PY2<y))
PY2=PY2+1;
end
% IY=img(PY1:PY2,:,:);
%IY为原始图像I中截取的纵坐标在PY1:PY2之间的部分
%end横向扫描
%begin纵向扫描
Blue_x=zeros(1,x);%进一步确定x方向的车牌区域
for j=1:x
for i=PY1:PY2
if(myI(i,j,1)==1)
Blue_x(1,j)= Blue_x(1,j)+1;
end
end
end
PX1=1;
while ((Blue_x(1,PX1)<3)&&(PX1<x))
PX1=PX1+1;
end
PX2=x;
while ((Blue_x(1,PX2)<3)&&(PX2>PX1))
PX2=PX2-1;
end
PX1=PX1+3;
% PX2=PX2;
% PY1=PY1-2.5;
PY1=PY1-2;
%end纵向扫
% dw=img(PY1:PY2,PX1:PX2,:);
img1 = img;
for i=PY1-10:PY1
for j=PX1:PX2
img1(i,j,1)= 255;
img1(i,j,2)= 0;
img1(i,j,3)= 0;
end
end
for i=PY1:PY2
for j=PX1-10:PX1
img1(i,j,1)= 255;
img1(i,j,2)= 0;
img1(i,j,3)= 0;
end
end
for i=PY2-10:PY2
for j=PX1:PX2
img1(i,j,1)= 255;
img1(i,j,2)= 0;
img1(i,j,3)= 0;
end
end
for i=PY1:PY2
for j=PX2-10:PX2
img1(i,j,1)= 255;
img1(i,j,2)= 0;
img1(i,j,3)= 0;
end
end
axes(handles.axes1);%axes1是坐标轴的标示
% set(handles.axes1,'visible','on')
imshow(img1);
三、运行结果





四、总结
本文实现了一套完整的车牌识别与停车场管理系统,涵盖图像预处理、边缘检测、车牌定位、字符分割、模板匹配识别及Excel数据管理的全流程。系统利用蓝色车牌的颜色特征进行定位,采用投影法分割字符,通过模板匹配完成OCR识别,实现了从车牌图像到结构化数据的自动转换。主要不足在于:算法对蓝色车牌依赖性强,对新能源绿色车牌或其他颜色车牌适应性差;模板匹配方法对字体变化和噪声敏感,识别鲁棒性有限;Excel作为数据存储方式不适合高并发场景。后续可引入深度学习目标检测(如YOLO)进行端到端车牌检测与识别,并采用数据库替代Excel以支撑更大规模的停车场管理需求。
五、代码获取
接matlab程序定制和论文设计,方向如下:
图像处理|语音识别|图像识别|目标检测|深度学习|神经网络|强化学习|机器学习|通信系统|信号处理|时频分析|小波降噪|路径规划|优化算法|智能算法|数据处理|数学建模|文献复现|算法复现|模型复现等
程序包运行成功,零基础的可以远程帮你运行,赠送安装包。
作为初学者,遇见不会的问题是非常正常的事情,具体代码仿真可通过主页添加 私信博主。