function varargout = xuliu(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @xuliu_OpeningFcn, ...
'gui_OutputFcn', @xuliu_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% 以上程序自动生成,不用修改
function xuliu_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
%显示背景图片
ha=axes('units','normalized','position',[0 0 1 1]);
uistack(ha,'down');
II=imread('dabeijing.jpg');
image(II);
colormap gray;
set(ha,'handlevisibility','off','visible','off');
function varargout = xuliu_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
%点击‘选择图片’按钮执行的程序
function open_Callback(hObject, eventdata, handles)
[filename,pathname] = uigetfile('*.jpg','选择图片');
handles.filename = filename;
guidata(hObject,handles);
zhaopianlujing=[pathname filename];
handles.zhaopianlujing = zhaopianlujing;
guidata(hObject,handles);
%点击‘开始识别’执行的程序
function run_Callback(hObject, eventdata, handles)
tic; %程序运行时间
h=waitbar(0,'请稍等......'); %进度条
yt=imread(handles.zhaopianlujing); %yt为原始图像
axes(handles.show); %显示原图
imshow(yt);
handles.yt = yt; %第一张图
guidata(hObject,handles);
%================================车牌粗定位===============================
waitbar(0.1);
[ydown,yup,xright,xleft]=first_bianjie(yt);
if ydown>0
[ydown,yup,xright,xleft,yuzhi]=xiuzheng(ydown,yup,xright,xleft); %车牌区域根据面积二次修正
Plate = yt(yup:ydown,xleft:xright,:);
handles.Plate = Plate; %放入handles结构体中,方便在其他回调函数中调用 第二张图片
guidata(hObject,handles);
bw=Plate;
%==============================车牌精确定位===============================
bw=rgb_huiduhua(bw); %将车牌彩色图变换为灰度图
chepaihuidu = bw;
handles.chepaihuidu = chepaihuidu; %第三张图片
guidata(hObject,handles);
%==========倾斜校正===========
qingxiejiao=rando_bianhuan(bw);
bw=imrotate(bw,qingxiejiao,'bilinear','crop');%取值为负值向右旋转
jiaozhenghou = bw;
handles.jiaozhenghou = jiaozhenghou; %第四张图片,车牌倾斜矫正后的图片
guidata(hObject,handles);
waitbar(0.4);
%========数学形态学处理======
bw=im2bw(bw,graythresh(bw)); %graythresh函数找到二值化阈值
erzhihua = bw;
handles.erzhihua = erzhihua; %第五张图片,二值化后的图片
guidata(hObject,handles);
bw=bwmorph(bw,'open',5); % 执行形态学开操作(先腐蚀后膨胀)
bw=bwmorph(bw,'hbreak',inf);% 'hbreak'移除连通的像素
bw=bwmorph(bw,'spur',inf);% 移除刺激(孤立)像素。
bw=bwmorph(bw,'open',5);% 执行形态学开操作(先腐蚀后膨胀)
% se=strel('disk',1);
% bw=imdilate(bw,se); %开启操作
xingtaixue = bw;
handles.xingtaixue = xingtaixue; %第六张图片,第一次形态学处理后的图片
guidata(hObject,handles);
bw=~bw; %转化车牌信息的颜色
%==对图像进一步裁剪,保证边框贴近字体====
bw=touying(bw);
waitbar(0.5);
bw=~bw; %车牌信息为白色
diercijiancai = bw;
handles.diercijiancai = diercijiancai; %第七张图片,第二次剪裁后的图片
guidata(hObject,handles);
bw = bwareaopen(bw, yuzhi); %移除小对象
dierciyichu = bw;
handles.dierciyichu = dierciyichu; %第八张图片,第二次移除小对象后的图片
guidata(hObject,handles);
bw=~bw; %黑字白底
[y,~]=size(bw);%对长宽重新赋值
%=========================================字符分割============================================
fenge=shuzifenge(bw);
waitbar(0.7);
%============ 剪裁七个字符===========
han_zi =bw( 1:y,fenge(1):fenge(2));
zi_mu =bw( 1:y,fenge(3):fenge(4));
xuhao_1 =bw( 1:y,fenge(5):fenge(6));
xuhao_2 =bw( 1:y,fenge(7):fenge(8));
xuhao_3 =bw( 1:y,fenge(9):fenge(10));
xuhao_4 =bw( 1:y,fenge(11):fenge(12));
xuhao_5 =bw( 1:y,fenge(13):fenge(14));
%=====显示分割图像结果========
axes(handles.axes2);
imshow(han_zi);
axes(handles.axes15);
imshow(zi_mu);
axes(handles.axes16);
imshow(xuhao_1);
axes(handles.axes17);
imshow(xuhao_2);
axes(handles.axes18);
imshow(xuhao_3);
axes(handles.axes19);
imshow(xuhao_4);
axes(handles.axes20);
imshow(xuhao_5);
waitbar(0.8);
%==========================================识别================================================
%=======将分割后的字符归一化=========
guiyihua_hanzi = imresize(han_zi, [110 70],'bilinear');
guiyihua_zimu = imresize(zi_mu, [110 70],'bilinear');
guiyihua_xuhao1= imresize(xuhao_1,[110 70],'bilinear');
guiyihua_xuhao2 = imresize(xuhao_2,[110 70],'bilinear');
guiyihua_xuhao3 = imresize(xuhao_3,[110 70],'bilinear');
guiyihua_xuhao4 = imresize(xuhao_4,[110 70],'bilinear');
guiyihua_xuhao5 = imresize(xuhao_5,[110 70],'bilinear');
%============ 把0-9 , A-Z以及省份简称的数据存储方便访问====================
muban_hanzi=guiyihua_muban_hanzi;
muban_hanzi = ~muban_hanzi;
%因数字和字母比例不同。这里要修改
muban_shuzizimu = guiyihua_muban_szzm;
mubna_zimu = guiyihua_muban_zimu;
waitbar(0.9);
%============================识别结果================================
jieguohanzi = shibiehanzi(muban_hanzi,guiyihua_hanzi); shibiejieguo(1) =jieguohanzi; i=2;
jieguozimu = shibiezimu(mubna_zimu,guiyihua_zimu); shibiejieguo(i) =jieguozimu; i=i+1;
shibiejieguo(i) ='·'; i=i+1;
jieguozm_sz_1= shibiezm_sz(muban_shuzizimu,guiyihua_xuhao1); shibiejieguo(i) =jieguozm_sz_1;i=i+1;
jieguozm_sz_2= shibiezm_sz(muban_shuzizimu,guiyihua_xuhao2); shibiejieguo(i) =jieguozm_sz_2;i=i+1;
jieguozm_sz_3= shibiezm_sz(muban_shuzizimu,guiyihua_xuhao3); shibiejieguo(i) =jieguozm_sz_3;i=i+1;
jieguozm_sz_4= shibiezm_sz(muban_shuzizimu,guiyihua_xuhao4); shibiejieguo(i) =jieguozm_sz_4;i=i+1;
jieguozm_sz_5= shibiezm_sz(muban_shuzizimu,guiyihua_xuhao5); shibiejieguo(i) =jieguozm_sz_5;
handles.shibiejieguo=shibiejieguo;
guidata(hObject,handles);
set(handles.chepai,'string',shibiejieguo);
%=====================导出文本==================
fid=fopen('Data.dat','a');
fprintf(fid,'%s\r\n',shibiejieguo,datestr(now));
fclose(fid);
%================读取计时==========================
t=toc;
set(handles.time,'string',t);
waitbar(1);
close(h);
else
close(h);
end
function exit_Callback(hObject, eventdata, handles)
button=questdlg('确定退出系统吗?','确认','No'); %当按回车键时,返回default值default 必须是yes,no或cancel 之一。
if strcmp(button,'Yes')
close all;
end
function about_Callback(hObject, eventdata, handles)
str={'车牌识别系统1.0';'完成人:徐柳'};
% 改变msgbox属性
% 寻找句柄,改变属性
hs = msgbox(str,'关于');
ht = findobj(hs, 'Type', 'text');
set(ht, 'FontWeight', 'bold','FontSize',12);
% --- Executes when selected object is changed in uibuttongroup2.
function uibuttongroup2_SelectionChangedFcn(hObject, eventdata, handles)
str = get(hObject,'string');
axes(handles.show);
switch str
case '原图'
imshow(handles.yt);
case '车牌粗定位图像'
imshow(handles.Plate);
case '车牌灰度图像'
imshow(handles.chepaihuidu);
case '车牌倾斜矫正后图像'
imshow(handles.jiaozhenghou);
case '车牌二值图像'
imshow(handles.erzhihua);
case '第一次形态学处理后'
imshow(handles.xingtaixue);
case '车牌精确定位图像'
imshow(handles.diercijiancai);
case '第二次形态学处理后'
imshow(handles.dierciyichu);
end
%点击语音播报执行的函数
function sound_Callback(hObject, eventdata, handles)
duchushengyin(handles.shibiejieguo);
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
本压缩包包含运行的所有文件。 拥有完整的MATLAB程序,包括车牌定位,车牌识别,使用GUI界面人机交互很好。里面有很多车牌照片,都是可以正确识别出来的。我当年的毕设,可靠,完整,下载后可以直接运行。主程序名为xuliu。 下载后联系我,我可以免费赠送毕业设计供参考学习交流。 本人邮箱:liuxuecan@njust.edu.cn 有程序疑问可以问我,抽空会免费解答。 注:本程序及本人毕设仅用作学习交流!
资源推荐
资源详情
资源评论
收起资源包目录
基于MATLAB中GUI的完整的车牌定位、车牌识别程序 (174个子文件)
first_bianjie.asv 5KB
26.BMP 76KB
13.BMP 71KB
11.BMP 67KB
23.BMP 52KB
19.BMP 50KB
32.BMP 50KB
24.BMP 47KB
10.BMP 46KB
20.BMP 46KB
9.BMP 45KB
7.BMP 44KB
15.BMP 44KB
27.BMP 43KB
16.BMP 41KB
12.BMP 38KB
0.BMP 34KB
14.BMP 33KB
33.BMP 32KB
6.BMP 31KB
2.BMP 19KB
4.BMP 19KB
8.BMP 19KB
1.BMP 18KB
3.BMP 18KB
21.BMP 17KB
5.BMP 15KB
29.BMP 5KB
30.BMP 5KB
25.BMP 4KB
31.BMP 4KB
28.BMP 4KB
22.BMP 4KB
17.BMP 4KB
18.BMP 4KB
GANSU.bmp 192B
JI.bmp 190B
YU.bmp 190B
GAN.bmp 190B
YUN.bmp 190B
JIN.bmp 190B
HEI.bmp 190B
GUI.BMP 190B
MENG.bmp 190B
QIONG.bmp 190B
ZANG.bmp 190B
MIN.bmp 190B
JING.BMP 190B
GUIZHOU.bmp 190B
JI_HB.bmp 190B
ZHE.bmp 190B
LIAO.bmp 190B
E.bmp 190B
SHAN.bmp 190B
YUE.bmp 190B
XIANG.bmp 190B
QING.bmp 190B
SU.BMP 190B
NING.bmp 190B
LU.bmp 190B
WAN.bmp 190B
TIANJIN.bmp 190B
Data.dat 5KB
xuliu.fig 187KB
粤AC609Z31.jpg 2.35MB
有蓝.jpg 1.61MB
20090430754.jpg 783KB
20090504806.jpg 754KB
20090430755.jpg 750KB
20090430756.jpg 749KB
20090503773.jpg 728KB
20090501762.jpg 727KB
dabeijing.jpg 659KB
20090425679.jpg 658KB
20090425686.jpg 656KB
20090504798.jpg 636KB
20090504804.jpg 634KB
20090425685.jpg 628KB
20090425706.jpg 627KB
20090530_855d296f298d7c40d861b2K23uhIuz3a.jpg 617KB
20090425682.jpg 616KB
20090425691.jpg 603KB
20090501770.jpg 590KB
20090423671.jpg 565KB
20090425690.jpg 560KB
20090424675.jpg 543KB
20090425710.jpg 535KB
20090423670.jpg 495KB
20090504808.jpg 474KB
20090425709.jpg 461KB
20090504801.jpg 440KB
xuliu.m 7KB
duchushengyin.m 5KB
first_bianjie.m 5KB
guiyihua_muban_szzm.m 4KB
guiyihua_muban_zimu.m 3KB
guiyihua_muban_hanzi.m 2KB
shibiezm_sz.m 2KB
shibiehanzi.m 2KB
shibiezimu.m 2KB
共 174 条
- 1
- 2
资源评论
- weixin_420680932024-02-27总算找到了自己想要的资源,对自己的启发很大,感谢分享~
- 猫猫不爱吃水果2022-05-26用户下载后在一定时间内未进行评价,系统默认好评。
- m0_602145732023-03-12感谢大佬分享的资源,对我启发很大,给了我新的灵感。
- m0_542345132022-05-27用户下载后在一定时间内未进行评价,系统默认好评。
- 2201_761259722023-04-16非常有用的资源,有一定的参考价值,受益匪浅,值得下载。
黑色的雪lxc
- 粉丝: 61
- 资源: 24
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功