数字图像处理之matlab大作业:车牌识别

您所在的位置:网站首页 图像车牌识别 数字图像处理之matlab大作业:车牌识别

数字图像处理之matlab大作业:车牌识别

2024-07-15 04:04| 来源: 网络整理| 查看: 265

1、基于模板的车牌识别,带GUI

GitHub - joeyos/LicensePlateRecognition: License plate recognition

2、基于模板的车牌识别,注释详细

https://github.com/hangxyz/License-Plate-Recognition-by-MATLAB

3、其他优秀作品

1)董同学:带语音播报的车牌识别 车牌识别-基于模板匹配_勇敢歪歪的博客-CSDN博客_车牌识别模板匹配

 2)李同学:

基于Matlab实现车牌识别-CSDN博客

下面我们将详细解释第二个例子的代码:

1、代码文件说明

 2、车牌识别算法流程

1)图像预处理

将彩色图转灰度图;canny算子边缘检测;用[1;1;1]三行一列的垂直线结构腐蚀边缘图像,因为腐蚀具有标记结构元素的作用,因此边缘图中包含丰富垂直线的部分被保留下来(即车牌);利用矩形结构元素对辅食后图像进行闭运算,即先膨胀后腐蚀,闭运算有填充内部孔洞的作用,因此将上一步腐蚀后图像的车牌区域变成一个连通域;利用bwareaopen函数删除二值图像中面积小于2000的对象

%%%%%%%%%%1、图像预处理%%%%%%%%%%% YuanShiHuiDu=rgb2gray(YuanShi);%转化为灰度图像 subplot(3,2,2),imshow(YuanShiHuiDu),title('灰度图像'); BianYuan=edge(YuanShiHuiDu,'canny',0.5);%Canny算子边缘检测 subplot(3,2,3),imshow(BianYuan),title('Canny算子边缘检测后图像'); se1=[1;1;1]; %线型结构元素 FuShi=imerode(BianYuan,se1); %腐蚀图像 subplot(3,2,4),imshow(FuShi),title('腐蚀后边缘图像'); se2=strel('rectangle',[25,25]); %矩形结构元素 TianChong=imclose(FuShi,se2);%图像聚类、填充图像 subplot(3,2,5),imshow(TianChong),title('填充后图像'); YuanShiLvBo=bwareaopen(TianChong,2000);%从对象中移除面积小于2000的小对象 subplot(3,2,6),imshow(YuanShiLvBo),title('形态滤波后图像');

2)车牌定位 

车牌粗定位之一确定行的起始位置和终止位置

车牌粗定位之二确定列的起始位置和终止位置

车牌精定位之一预处理

车牌精定位之二去除边框干扰(分别去除左侧和右侧干扰)

%%%%%%%%%%2、车牌定位%%%%%%%%%%% [y,x]=size(YuanShiLvBo);%size函数将数组的行数返回到第一个输出变量,将数组的列数返回到第二个输出变量 YuCuDingWei=double(YuanShiLvBo); %%%%%%%%%%2.1、车牌粗定位之一确定行的起始位置和终止位置%%%%%%%%%%% Y1=zeros(y,1);%产生y行1列全零数组 for i=1:y for j=1:x if(YuCuDingWei(i,j)==1) Y1(i,1)= Y1(i,1)+1;%白色像素点统计 end end end [temp,MaxY]=max(Y1);%Y方向车牌区域确定。返回行向量temp和MaxY,temp向量记录Y1的每列的最大值,MaxY向量记录Y1每列最大值的行号 subplot(2,2,2),plot(0:y-1,Y1),title('原图行方向像素点值累计和'),xlabel('行值'),ylabel('像素'); %% 找到上边界 PY1=MaxY; while ((Y1(PY1,1)>=50)&&(PY1>1)) PY1=PY1-1; end %%找到下边界 PY2=MaxY; while ((Y1(PY2,1)>=50)&&(PY2


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3