基于MATLAB的QR二维码解码技术的程序.docx
《基于MATLAB的QR二维码解码技术的程序.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的QR二维码解码技术的程序.docx(11页珍藏版)》请在冰豆网上搜索。
基于MATLAB的QR二维码解码技术的程序
functionvarargout=QRMain(varargin)
%QRMAINMATLABcodeforQRMain.fig
%QRMAIN,byitself,createsanewQRMAINorraisestheexisting
%singleton*.
%
%H=QRMAINreturnsthehandletoanewQRMAINorthehandleto
%theexistingsingleton*.
%
%QRMAIN('CALLBACK',hObject,eventData,handles,...)callsthelocal
%functionnamedCALLBACKinQRMAIN.Mwiththegiveninputarguments.
%
%QRMAIN('Property','Value',...)createsanewQRMAINorraisesthe
%existingsingleton*.Startingfromtheleft,propertyvaluepairsare
%appliedtotheGUIbeforeQRMain_OpeningFcngetscalled.An
%unrecognizedpropertynameorinvalidvaluemakespropertyapplication
%stop.AllinputsarepassedtoQRMain_OpeningFcnviavarargin.
%
%*SeeGUIOptionsonGUIDE'sToolsmenu.Choose"GUIallowsonlyone
%instancetorun(singleton)".
%
%Seealso:
GUIDE,GUIDATA,GUIHANDLES
%EdittheabovetexttomodifytheresponsetohelpQRMain
%LastModifiedbyGUIDEv2.511-Apr-201720:
19:
20
%Begininitializationcode-DONOTEDIT
gui_Singleton=1;
gui_State=struct('gui_Name',m,...
'gui_Singleton',gui_Singleton,...
'gui_OpeningFcn',@QRMain_OpeningFcn,...
'gui_OutputFcn',@QRMain_OutputFcn,...
'gui_LayoutFcn',[],...
'gui_Callback',[]);
ifnargin&&ischar(varargin{1})
gui_State.gui_Callback=str2func(varargin{1});
end
ifnargout
[varargout{1:
nargout}]=gui_mainfcn(gui_State,varargin{:
});
else
gui_mainfcn(gui_State,varargin{:
});
end
%Endinitializationcode-DONOTEDIT
%---ExecutesjustbeforeQRMainismadevisible.
functionQRMain_OpeningFcn(hObject,eventdata,handles,varargin)
%Thisfunctionhasnooutputargs,seeOutputFcn.
%hObjecthandletofigure
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
%varargincommandlineargumentstoQRMain(seeVARARGIN)
%ChoosedefaultcommandlineoutputforQRMain
handles.output=hObject;
%Updatehandlesstructure
guidata(hObject,handles);
%UIWAITmakesQRMainwaitforuserresponse(seeUIRESUME)
%uiwait(handles.figure1);
%---Outputsfromthisfunctionarereturnedtothecommandline.
functionvarargout=QRMain_OutputFcn(hObject,eventdata,handles)
%varargoutcellarrayforreturningoutputargs(seeVARARGOUT);
%hObjecthandletofigure
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
%Getdefaultcommandlineoutputfromhandlesstructure
varargout{1}=handles.output;
%---ExecutesonbuttonpressinOpenQRPic.
functionOpenQRPic_Callback(hObject,eventdata,handles)%%%%%%%%打开图像
globalim;
[]=uigetfile({'*.*';'*.bmp';'*.jpg';'*.tif';'*.jpg'},'选择图像');
ifisequal()||isequal(pathname,0)
errordlg('您还没有选取图片!
!
','温馨提示');%如果没有输入,则创建错误对话框
return;
else
image=[pathname,];%合成路径+文件名
im=imread(image);%读取图像
figure
imshow(im);%在坐标axes1显示原图像
title('原始QR图像');
end
%hObjecthandletoOpenQRPic(seeGCBO)
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
%---Executesonbuttonpressinpushbutton2.
functionpushbutton2_Callback(hObject,eventdata,handles)
%hObjecthandletopushbutton2(seeGCBO)
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
%---ExecutesonbuttonpressinDecodeQR.
functionDecodeQR_Callback(hObject,eventdata,handles)%%%%%%%%%%%%%%%%%%%QR解码
globalI_otsu;%global定义全局变量
globalim;
globalKL;
globalIjibian;
I_jiema=Ijibian;
I_jiema=I_otsu;%二值
I_jiema=KL;
I_jiema=im;
%
str=zxing_decode(I_jiema)%解码
%set(handles.edit1,'string',[get(handles.edit1,'string')str]);
%set(handles.text,'string',[get(handles.text,'string')str]);
set(handles.edit1,'String',str);%显示字符
%---ExecutesonbuttonpressinGrayGen.
functionGrayGen_Callback(hObject,eventdata,handles)%%%%%%%%%%%%%%%%%%%灰度化处理
globalim;
globalII;
I=im;
[w,h,l]=size(I);%图像大小
II=[];
fori=1:
h
forj=1:
w
II(j,i)=0.3*I(j,i,1)+0.59*I(j,i,2)+0.11*I(j,i,3);%灰度化处理公式
end
end
figure,imshow(II,[])%显示图像
title('QR二维码灰度化处理');
%---ExecutesonbuttonpressinSmoothGen.
functionSmoothGen_Callback(hObject,eventdata,handles)%%%%%%%%%%%%%%%%%%%平滑处理
globalII;
globalI3;
III=uint8(II);%图像转换0-255
Ix=imnoise(III,'salt&pepper',0.02);%对灰度化图像人为加噪声
I3=medfilt2(Ix,[3,3]);%平滑处理
figure
imshow(Ix)
title('QR二维码加噪处理');
figure
imshow(I3)
title('QR二维码平滑处理');
%---ExecutesonbuttonpressinBinaryzation.
functionBinaryzation_Callback(hObject,eventdata,handles)%%%%%%%%%%%%%%%%%%%二值化处理
globalI3;
globalI_otsu;
I_otsu=otsut(I3);%二值化处理
figure
imshow(I_otsu,[])
title('QR二维码二值化处理');
%functionedit1_Callback(hObject,eventdata,handles)
%%hObjecthandletoedit1(seeGCBO)
%%eventdatar