matlab 图像模板匹配,基于MATLAB模板匹配的车牌识别系统
一、课题名称[Q1321814823]
基于MATLAB模板匹配的车牌识别系统
二、课题背景
随着汽车数量的增加,城市交通状况日益受到人们的重视,如何进行有效的交通管理更是成为了人们关注的焦点。针对此问题,人们运用新的科学技术,相继研制开发出了各种交通道路监视、管理系统。这些系统通过车辆检测装置对过往的车辆实施检测,提取有关交通数据,达到监控、管理和指挥交通的目的。因此,智能交通系统ITS(intelligent traffic system)已成为世界交通领域研究的重要课题。 车牌识别系统LPR(1icense plate recognition)作为智能交通系统的一个重要组成部分,已在高速公路、城市交通和停车场等项目的管理中占有无可取代的重要地位。它在不影响汽车状态的情况下,由计算机自动完成车牌的识别,从而降低交通管理工作的复杂度。
三、识别流程
①图像预处理:在整个车牌识别系统中,由于采集进来的图像为真彩图,再加上实际采集环境的影响以及采集硬件等原因,图像质量并不高,其背景和噪声会影响字符的正确分割。和识别,所以在进行车牌分割和识别处理之前,需要先对车牌图像进行图像预处理操作。
②车牌定位:首先对车牌的二值图片进行形态学滤波,使车牌区域形成一个连通区域,然后根据车牌的先验知识对所得到的连通区域进行筛选,获取车牌区域的具体位置,完成从图片中提取车牌的任务。
③车牌校正:由于捕捉图片的摄像头与车身的角度问题,得到的车牌图片不是水平的。为了顺利进行后续的分割和识别,必须对车牌进行角度校正。在此,使用了Radon变换来对车牌进行校正。
④车牌分割:首先对车牌进行水平投影,去除水平边框;再对车牌进行垂直投影。通过对车牌进行投影分析可知,与最大值峰中心对应的为车牌中第二个字符和第三个字符的间隔,与第二大峰中心距离对应的即为车牌字符的宽度,并以此为依据对车牌进行分割。
⑤字符识别:本文采用模板匹配方法来对车牌进行识别。识别过程中,首先建立标准字库,再将分割所得到的字符进行归一化,将归一化处理后的字符与标准字库里的字符逐一比较,最后把误差最小的字符作为结果显示出来。采用成熟的数字图像处理技术和Matlab仿真工具。
四、程序实现
1、读取图像
[fn,pn,fi]=uigetfile('*.bmp','选择图片');
Scolor=imread([pn fn]);
imshow(Scolor);
title('车牌原始图像');
2、图像预处理
Sgray = rgb2gray(Scolor);%rgb2gray转换成灰度图
s=strel('disk',13);%strei函数13
Bgray=imopen(Sgray,s);%打开sgray s图像
Egray=imsubtract(Sgray,Bgray);%两幅图相减
grd=edge(Egray,'canny',0.09,'both');
se=[1;1;1]; %线型结构元素
I3=imerode(grd,se); %腐蚀图像
bg1=imclose(I3,strel('rectangle',[8,18]));%取矩形框的闭运算即平滑8,18
bg3=imopen(bg1,strel('rectangle',[8,14]));%取矩形框的开运算8,18
bg2=bwareaopen(bg3,700);%去除聚团灰度值小于1000的部分800
3、车牌定位
for j=1:x
for i=PY1:PY2
if(I6(i,j,1)==1)
X1(1,j)= X1(1,j)+1;
end
end
end
% subplot(1,3,2);
% plot(0:x-1,X1),title('列像素灰度值累计'),xlabel('列值'),ylabel('像数和');
PX1=1;
while ((X1(1,PX1)<3)&&(PX1
PX1=PX1+1;
end
PX2=x;
while ((X1(1,PX2)<3)&&(PX2>PX1))
PX2=PX2-1;
end
DW=Scolor(PY1:PY2,PX1:PX2,:);
axes(handles.axes2);
imshow(DW),title('车牌定位图像');
4、字符分割
function e=qiege(d)
[m,n]=size(d);
top=1;bottom=m;left=1;right=n; % init
while sum(d(top,:))==0 && top<=m
top=top+1;
end
while sum(d(bottom,:))==0 && bottom>1
bottom=bottom-1;
end
while sum(d(:,left))==0 && left
left=left+1;
end
while sum(d(:,right))==0 && right>=1
right=right-1;
end
dd=right-left;
hh=bottom-top;
e=imcrop(d,[left top dd hh]);
5、字符识别
liccode=char(['0':'9' 'A':'Z' '藏川甘赣贵桂黑沪吉济冀津晋京警兰辽领鲁蒙闽宁青琼陕使苏皖湘新学渝豫粤云浙']); %建立自动识别字符代码表
tt=1;
l=1;
for I=1:7
ii=int2str(I);
t=imread([ii,'.jpg']);
t=255-t;
level=graythresh(t);
t=im2bw(t,level);
SegBw2=imresize(t,[22 14],'nearest');
if tt==1 %第一位汉字识别
kmin=37;
kmax=72;
t=~t;
SegBw2=imresize(t,[22 14],'nearest');
elseif tt==2 %第二位 A~Z 字母识别
kmin=11;
kmax=36;
else %第三位以后是字母或数字识别
kmin=1;
kmax=36;
end
for k2=kmin:kmax
fname=strcat('code module\Sam',liccode(k2),'.jpg');
%SamBw2 = imread(fname);
SamBw22 = imread(fname);
SamBw22 = rgb2gray(SamBw22);
SamBw2=imresize(SamBw22,[22 14],'nearest');
level=graythresh(SamBw2);
SamBw2=im2bw(SamBw2,level);
for i=1:22
for j=1:14
SubBw2(i,j)=SegBw2(i,j)-SamBw2(i,j);
end
end
% 以上相当于两幅图相减得到第三幅图
Dmax=0;
for k1=1:22
for l1=1:14
if ( SubBw2(k1,l1) > 0 || SubBw2(k1,l1) <0 )
Dmax=Dmax+1;
end
end
end
Error(k2)=Dmax;
end
Error1=Error(kmin:kmax);
MinError=min(Error1);
findc=find(Error1==MinError);
if tt==1
findc=findc+36;
end
if tt==2
findc=findc+10;
end
tt=tt+1;
res=liccode(findc);
shibiejieguo(1,l)=res;
l=l+1;
end
五、GUI实现
六、更多课题推荐
请加我QQ609553134
matlab 图像模板匹配,基于MATLAB模板匹配的车牌识别系统相关推荐
- 毕业设计-基于深度学习的智能车牌识别系统
目录 前言 课题背景和意义 实现技术思路 一.车牌识别的一般流程 二.智能车牌识别系统的设计思路 三.基于深度学习的智能车牌识别系统的实现 四.智能车牌识别系统的训练与测试 五.总结 实现效果图样例 ...
- 基于JAVA车辆大全和车牌识别系统(Springboot框架+AI人工智能) 开题报告
本科生毕业论文 基于Java(springboot框架)车辆大全和智能识别系统 开题报告 学 院: 专 业: 计算机科学与技术 年 级: 学生姓名: 指导教师: XXXX大学 ...
- matlab图像类论文,基于matlab图形图像处理技术毕设论文.doc
基于matlab图形图像处理技术毕设论文 基于MATLAB图形图像处理技术 摘 要 本文提出了一种基于MATLAB的数字图像处理技术的设计,系统中包括了图像处理技术的各个方面,涵盖了图像处理领域的个别 ...
- 基于FPGA的车牌识别系统
程序基于Xilinx公司的Pynq-Z2开发板,使用opencv库完成车牌识别. 项目背景和设计目的 • 车牌识别系统是计算机视频图像识别技术在车辆牌照识别中的一种应用,在高速公路.停车场 ...
- 【车牌识别】模板匹配新能源、轿车、货车车牌识别【含GUI Matlab源码 2169期】
⛄一.模板匹配车牌识别简介 1 系统整体设计 车牌识别系统包括4个步骤:车牌定位 (包括识别图像中的车牌位置并将其分割) .图像处理.字符分割与字符识别, 如图1所示.车牌定位的主要功能是从图像中可能 ...
- 基于模板匹配的车牌识别系统实例
这几天其实是准备做课题的,无奈车牌识别系统(界面是VS2017+Qt5.9.2做的)一直没有做完,所以一直在修正这个系统,前三天其实已经完成了,最后一天是改进识别方案,虽然个别字符识别不准确(尤其是汉 ...
- MATLAB多方法车牌识别系统(bp+模板+GUI)
一.课题介绍 资源链接https://gitee.com/chending006/cpsbhttps://gitee.com/chending006/cpsb 随着汽车数量的增加,城市交通状况日益受到 ...
- 【图像融合】基于matlab DSIFT多聚焦图像融合【含Matlab源码 2224期】
⛄一.SIFT配准简介 1 算法概述 在实时系统中,算法的输入为相机数据流,当前输入的图像与上一张相似度很高时应不参与融合,由于在体视显微镜下序列图像存在较大程度的偏移,所以融合前还需要进行图像配准, ...
- 【图像修复】基于matlab损坏图像修复【含Matlab源码 731期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像修复]基于matlab损坏图像修复[含Matlab源码 731期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费专栏 ...
最新文章
- SparkStreaming靠什么征服了字节跳动?
- 多通道ADC一致性的高精度测量方法
- jQuery 1.6 源码学习(六)——core.js[6]之jQuery对象/数组操作相关方法
- 写在园子里的第一篇BLOG
- 《STL源码剖析常见面试问题》
- MySQL中information_schema
- java并发初探CountDownLatch
- python中while与else的联姻
- 电子教室软件 android,超越电子教室
- 时间序列模型ARIMA -- 唐宇迪
- 电脑用什么软件可以测试网速吗,在电脑上怎么测试网速_两种快速测试网速的方法介绍 - 驱动管家...
- LaTeX 文字带边框
- 2020年度十大高薪岗位出炉,程序员霸榜!
- AutoCAD2022下载安装教程
- Justinmind恢复30天试用 For Mac
- lpc1768的gpio库函数_Cortex-M3学习LPC1768 - GPIO实验
- matlab wiggle打开,wig、bigWig和bedgraph文件详解
- LOJ#2833 「JOISC 2018 Day 1」帐篷 dp
- rk3288 Android 8,RK3288W Android8.1开发日志(一)
- APP UI结构-首页功能点大集锦,很干很详细