基于MATLAB的QR二维码解码技术的程序Word格式文档下载.docx
《基于MATLAB的QR二维码解码技术的程序Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的QR二维码解码技术的程序Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
![基于MATLAB的QR二维码解码技术的程序Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-10/17/4107799b-9f1f-408d-8306-c8773977b803/4107799b-9f1f-408d-8306-c8773977b8031.gif)
%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{:
%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);
%Getdefaultcommandlineoutputfromhandlesstructure
varargout{1}=handles.output;
%---ExecutesonbuttonpressinOpenQRPic.
functionOpenQRPic_Callback(hObject,eventdata,handles)%%%%%%%%打开图像
globalim;
[]=uigetfile({'
*.*'
;
*.bmp'
*.jpg'
*.tif'
},'
选择图像'
);
ifisequal()||isequal(pathname,0)
errordlg('
您还没有选取图片!
!
温馨提示'
%如果没有输入,则创建错误对话框
return;
image=[pathname,];
%合成路径+文件名
im=imread(image);
%读取图像
figure
imshow(im);
%在坐标axes1显示原图像
title('
原始QR图像'
%hObjecthandletoOpenQRPic(seeGCBO)
%---Executesonbuttonpressinpushbutton2.
functionpushbutton2_Callback(hObject,eventdata,handles)
%hObjecthandletopushbutton2(seeGCBO)
%---ExecutesonbuttonpressinDecodeQR.
functionDecodeQR_Callback(hObject,eventdata,handles)%%%%%%%%%%%%%%%%%%%QR解码
globalI_otsu;
%global定义全局变量
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,'
)str]);
%set(handles.text,'
[get(handles.text,'
set(handles.edit1,'
String'
str);
%显示字符
%---ExecutesonbuttonpressinGrayGen.
functionGrayGen_Callback(hObject,eventdata,handles)%%%%%%%%%%%%%%%%%%%灰度化处理
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);
%灰度化处理公式
figure,imshow(II,[])%显示图像
title('
QR二维码灰度化处理'
%---ExecutesonbuttonpressinSmoothGen.
functionSmoothGen_Callback(hObject,eventdata,handles)%%%%%%%%%%%%%%%%%%%平滑处理
globalI3;
III=uint8(II);
%图像转换0-255
Ix=imnoise(III,'
salt&
pepper'
0.02);
%对灰度化图像人为加噪声
I3=medfilt2(Ix,[3,3]);
%平滑处理
figure
imshow(Ix)
QR二维码加噪处理'
imshow(I3)
QR二维码平滑处理'
%---ExecutesonbuttonpressinBinaryzation.
functionBinaryzation_Callback(hObject,eventdata,handles)%%%%%%%%%%%%%%%%%%%二值化处理
I_otsu=otsut(I3);
%二值化处理
imshow(I_otsu,[])
QR二维码二值化处理'
%functionedit1_Callback(hObject,eventdata,handles)
%%hObjecthandletoedit1(seeGCBO)
%%eventdatar