LAMPIRAN A-1: LISTING PROGRAM
1.
home.m
functi
on varargout = home(varargin)
% Begin initialization code - DO NOT EDIT gui_Si
ngleton = 1; gui_St
ate = struct('gui_Name', mfilename, ... 'gui_S
ingleton', gui_Singleton, ...
'gui_OpeningFcn', @home_OpeningFcn,... 'gui_OutputFcn', @home_OutputFcn, ... 'gui_LayoutFcn', [] , ...
'gui_Callback', []); if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1}); end
if nargout [varar
gout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else
gui_mainfcn(gui_State, varargin{:}); end
functi
on home_OpeningFcn(hObject, eventdata, handles, varargin) handle
s.output = hObject; guidat
a(hObject, handles); axes(h
andles.axes_logoUSU); image(
imread('logo_usu','jpg')); grid off;
axis off; functi
on varargout = home_OutputFcn(hObject, eventdata, handles) vararg
out{1} = handles.output;
functi
on Home_Callback(hObject, eventdata, handles)
functi
on GenerateNoise_Callback(hObject, eventdata, handles) genera
tenoise();
functi
on Testing_Callback(hObject, eventdata, handles) close
testin g();
functi
on Help_Callback(hObject, eventdata, handles) help()
;
functi
on Exit_Callback(hObject, eventdata, handles) respon
=keluar('Title','Konfirmasi Keluar'); switch
lower(respon) case 'tidak'
2.
generatenoise.m
functi
on varargout = generatenoise(varargin) % Begin initialization code - DO NOT EDIT gui_Si
ngleton = 1; gui_St
ate = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @generatenoise_OpeningFcn, ... 'gui_OutputFcn', @generatenoise_OutputFcn, ... 'gui_LayoutFcn', [] , ...
'gui_Callback', []); if nargin && ischar(varargin{1}) gui_St
ate.gui_Callback = str2func(varargin{1}); end
if nargout [varar
gout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else
gui_ma
infcn(gui_State, varargin{:}); end
functi
on generatenoise_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject; guidat
a(hObject, handles); functi
on varargout = generatenoise_OutputFcn(hObject, eventdata, handles)
vararg
out{1} = handles.output;
functi
on pb_InputImageOri_Callback(hObject, eventdata, handles) global
I;
[nama_
file, nama_path] = uigetfile({'*.bmp'},'Buka File Citra');
if ~isequal(nama_file,0)
handles.citra=(imread(fullfile(nama_path, nama_file))); info=imfinfo(fullfile(nama_path, nama_file));
size_file=info.FileSize/1000; guidata(hObject,handles); I=handles.citra;
[b k c]=size(I);
axes(handles.axes_original); imshow(handles.citra);
set(handles.edit_FileLocation,'String',nama_path); set(handles.edit_FileName,'String',nama_file); set(handles.edit_ImageSize,'String',size_file); set(handles.edit_Width,'String',k);
set(handles.edit_Height,'String',b);
set(handles.pb_GenerateNoise,'Visible','on'); else
return; end;
functi
on Home_Callback(hObject, eventdata, handles) close
home() ;
functi
on GenerateNoise_Callback(hObject, eventdata, handles)
functi
on Testing_Callback(hObject, eventdata, handles) testin
functi
on Help_Callback(hObject, eventdata, handles) help()
;
functi
on Exit_Callback(hObject, eventdata, handles) respon
=keluar('Title','Konfirmasi Keluar'); switch
lower(respon) case 'tidak'
case 'ya' close end
functi
on edit_FineName_Callback(hObject, eventdata, handles) functi
on edit_FileName_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
functi
on edit_ImageSize_Callback(hObject, eventdata, handles) functi
on edit_ImageSize_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
functi
on pb_GenerateNoise_Callback(hObject, eventdata, handles) global
citra_asli; h_sele
ctedNoise=get(handles.Noise_Type,'SelectedObject'); select
edNoise=get(h_selectedNoise,'Tag'); I =getimage(handles.axes_original); noise=
str2double(get(handles.edit_ProbNoise,'String')); nilain
oise=noise/100; [b k c]=size(I); r = rand(b,k,c);
switch selectedNoise case 'Noise_saltpepper'
pepper = find (r<=nilainoise/2); I(pepper)=0;
salt = find (r>1-nilainoise/2); I(salt)=255;
guidata(hObject,handles); axes(handles.axes_noise);
%set(proyek.figure1,'CurrentAxes',proyek.axes_noise); %set(imshow(I));
imshow(I);
%set(proyek.axes_noise,'Userdata',I);
case 'Noise_speckle'
speckle = find (r<=nilainoise); I(speckle)=0;
guidata(hObject,handles); axes(handles.axes_noise);
%set(proyek.figure1,'CurrentAxes',proyek.axes_noise); %set(imshow(I));
imshow(I);
end
set(handles.pb_SaveImage,'Visible','on'); guidata(hObject, handles);
J = getimage(handles.axes_original); nilaimse_noise = msecitra(J,I);
set(handles.edit_MSE,'String',nilaimse_noise);
nilaipsnr_noise = 20*log10(255/sqrt(nilaimse_noise)); set(handles.edit_PSNR,'String',nilaipsnr_noise);
%Fungs i MSE functi
on [NilaiMSE]= msecitra(F1,F2) [a1 b1 c1]=size(F1);
[a2 b2 c2]=size(F2);
Nilai = sum((( double(F1)-double(F2)).^2)/(a1*b1)); NilaiMSE =
sum(Nilai(:,:,1))+sum(Nilai(:,:,2))+sum(Nilai(:,:,3));
functi
on Noise_saltpepper_Callback(hObject, eventdata, handles) functi
on Noise_speckle_Callback(hObject, eventdata, handles) functi
on edit_ProbNoise_Callback(hObject, eventdata, handles)
functi
on edit_ProbNoise_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
functi
on edit_MSE_Callback(hObject, eventdata, handles) functi
on edit_MSE_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
functi
on edit_PSNR_Callback(hObject, eventdata, handles)
functi
on edit_PSNR_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
functi
on pb_SaveImage_Callback(hObject, eventdata, handles) sImage
= getimage(handles.axes_noise); [FileN
ame, PathName] = uiputfile('*.bmp', 'Save As'); pathfi
le=fullfile(PathName,FileName); imwrit
e(sImage,pathfile,'bmp'); guidat
a(hObject,handles); infoNo
iseImage = imfinfo(pathfile); size_f
ile_ImageNoise=infoNoiseImage.FileSize/1000; set(ha
ndles.edit_sizeImageNoise,'String',size_file_ImageNoise);
functi
functi
on edit_sizeImageNoise_CreateFcn(hObject, eventdata, handles)
3.
testing.m
functi
on varargout = testing(varargin)
% Begin initialization code - DO NOT EDIT gui_Si
ngleton = 1; gui_St
ate = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @testing_OpeningFcn, ... 'gui_OutputFcn', @testing_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
functi
on testing_OpeningFcn(hObject, eventdata, handles, varargin) handle
s.output = hObject; guidat
a(hObject, handles);
functi
on varargout = testing_OutputFcn(hObject, eventdata, handles) vararg
out{1} = handles.output;
functi
on pushbutton1_Callback(hObject, eventdata, handles) global
size_file; [nama_
file, nama_path] = uigetfile({'*.bmp'},'Buka File Citra'); if ~isequal(nama_file,0)
handles.citra=(imread(fullfile(nama_path, nama_file))); info=imfinfo(fullfile(nama_path, nama_file));
size_file=info.FileSize/1000; guidata(hObject,handles); I=handles.citra;
[b k c]=size(I);
axes(handles.axes_noise); imshow(handles.citra);
set(handles.edit_locationINoise,'String',nama_path); set(handles.edit_fileNameINoise,'String',nama_file); set(handles.edit_sizeINoise,'String',size_file); set(handles.edit_widthINoise,'String',k);
set(handles.edit_heightINoise,'String',b); set(handles.pb_medianFiltering,'Visible','on'); else
return; end;
functi
on pb_medianFiltering_Callback(hObject, eventdata, handles) global
I; tic; Image=
[b k c]=size(Image);
for x=1:1:b
for y=1:1:k for z=1:1:c try
matriks(1,1)=Image(x-1,y-1,z); catch
matriks(1,1)=0; end
try
matriks(1,2)=Image(x-1,y,z); catch
matriks(1,2)=0; end
try
matriks(1,3)=Image(x-1,y+1,z); catch
matriks(1,3)=0; end
try
matriks(2,1)=Image(x,y-1,z); catch
matriks(2,1)=0; end
try
matriks(2,2)=Image(x,y,z); catch
matriks(2,2)=0; end try
matriks(2,3)=Image(x,y+1,z); catch
matriks(2,3)=0; end try
matriks(3,1)=Image(x+1,y-1,z); catch
matriks(3,1)=0; end
try
matriks(3,2)=Image(x+1,y,z); catch
matriks(3,2)=0; end
try
matriks(3,3)=Image(x+1,y+1,z); catch
matriks(3,3)=0; end
ukmatriks = round(size(matriks(:)));
matriksurut=reshape(matriks,1,ukmatriks(1));
for i=1:9
for j=i+1:9
matriksurut(i)=matriksurut(j); matriksurut(j)=temp;
end end end
nilaitengah=round(ukmatriks(1)/2); filterMedian(x,y,z) = matriksurut(nilaitengah);
end end end filter
Median=uint8(filterMedian); toc
citra_ asli = I; guidat
a(hObject,handles); axes(h
andles.axes_medianFiltering); imshow
(filterMedian); set(ha
ndles.pb_saveIMedianFiltering,'Visible','on');
nilaim
se_noise = msecitra(citra_asli,filterMedian); set(ha
ndles.edit_mseIMedianFiltering,'String',nilaimse_noise); nilaip
snr_noise = 20*log10(255/sqrt(nilaimse_noise)); set(ha
ndles.edit_psnrIMedianFiltering,'String',nilaipsnr_noise); set(ha
ndles.edit_RTimeIMedianFiltering,'String',toc);
%Fungs i MSE functi
on [NilaiMSE]= msecitra(F1,F2) [a1 b1 c1]=size(F1); [a2 b2 c2]=size(F2);
Nilai = sum((( double(F1)-double(F2)).^2)/(a1*b1));
NilaiMSE = sum(Nilai(:,:,1))+sum(Nilai(:,:,2))+sum(Nilai(:,:,3));
functi
on edit3_Callback(hObject, eventdata, handles) functi
on edit3_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
functi
on edit4_Callback(hObject, eventdata, handles) functi
on edit_mseIMedianFiltering_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
functi
on edit5_Callback(hObject, eventdata, handles) functi
on edit_psnrIMedianFiltering_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
functi
on edit1_Callback(hObject, eventdata, handles) functi
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
functi
on edit2_Callback(hObject, eventdata, handles) functi
on edit_sizeINoise_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
functi
on edit6_Callback(hObject, eventdata, handles) functi
on edit_widthINoise_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
functi
on edit7_Callback(hObject, eventdata, handles) functi
on edit_heightINoise_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
functi
on edit8_Callback(hObject, eventdata, handles) functi
on edit_locationINoise_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
functi
on edit9_Callback(hObject, eventdata, handles) functi
on edit9_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
functi
on edit10_Callback(hObject, eventdata, handles) functi
on edit10_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
functi
on edit11_Callback(hObject, eventdata, handles) functi
on edit11_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
functi
on edit12_Callback(hObject, eventdata, handles) functi
set(hObject,'BackgroundColor','white'); end
functi
on edit13_Callback(hObject, eventdata, handles) functi
on edit13_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
functi
on edit14_Callback(hObject, eventdata, handles)
functi
on edit_RTimeIMedianFiltering_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
functi
on pb_saveIMedianFiltering_Callback(hObject, eventdata, handles)
sImage
= getimage(handles.axes_medianFiltering); [FileN
ame, PathName] = uiputfile('*.bmp', 'Save As'); pathfi
le=fullfile(PathName,FileName); imwrit
e(sImage,pathfile,'bmp'); guidat
a(hObject,handles); infoMe
dianFImage = imfinfo(pathfile); size_f
ile_MedianFNoise=infoMedianFImage.FileSize/1000; set(ha
ndles.edit_sizeIMedianFiltering,'String',size_file_MedianFNoise );
set(ha
ndles.pb_JPEGComm,'Visible','on');
functi
on pb_JPEGComm_Callback(hObject, eventdata, handles) tic;
A = getimage(handles.axes_medianFiltering); [Heigh
t,Width,Depth] = size(A); N = 8;
if mod(Height,N)~=0
Height = floor(Height/N)*N; end
if mod(Width,N)~=0
Width = floor(Width/N)*N; end
A1 = A(1:Height,1:Width,:);
clear A
A = A1;
%Sampl
ingFormat = '4:2:0';
Cb = imresize(A(:,:,2),[Height/2 Width/2],'cubic'); Cr = imresize(A(:,:,3),[Height/2 Width/2],'cubic');
jpgQst
epsY = [16 11 10 16 24 40 51 61;...
12 12 14 19 26 58 60 55;... 14 13 16 24 40 57 69 56;... 14 17 22 29 51 87 80 62;... 18 22 37 56 68 109 103 77;... 24 35 55 64 81 104 113 92;... 49 64 78 87 103 121 120 101;... 72 92 95 98 112 100 103 99];
Qsteps
Y = jpgQstepsY;
%kuali
tas kompresi level_
quality = get(handles.popupmenu_quality,'Value');
Qscale
= (10/level_quality)*0.5;
Yy = zeros(N,N);
xqY = zeros(Height,Width);
acBits Y = 0;
dcBits Y = 0;
if Depth > 1
jpgQstepsC = [17 18 24 47 66 99 99 99;... 18 21 26 66 99 99 99 99;... 24 26 56 99 99 99 99 99;... 47 66 99 99 99 99 99 99;... 99 99 99 99 99 99 99 99;... 99 99 99 99 99 99 99 99;... 99 99 99 99 99 99 99 99;... 99 99 99 99 99 99 99 99];
QstepsC = jpgQstepsC; YCb = zeros(N,N); YCr = zeros(N,N);
xqCb = zeros(Height/2,Width/2); xqCr = zeros(Height/2,Width/2);
acBitsCb = 0; dcBitsCb = 0; acBitsCr = 0; dcBitsCr = 0; end
% Compute the bits for the Y component for m = 1:N:Height
for n = 1:N:Width
% quantize the DCT coefficients
temp = floor(Yy./(Qscale*QstepsY) + 0.5);
% Calculate bits for the DC difference if n==1
DC = temp(1,1);
dcBitsY = dcBitsY + jpgDCbits(DC,'Y'); else
DC = temp(1,1) - DC;
dcBitsY = dcBitsY + jpgDCbits(DC,'Y'); DC = temp(1,1);
end
% Calculate the bits for the AC coefficients ACblkBits = jpgACbits(temp,'Y');
acBitsY = acBitsY + ACblkBits;
% dequantize & IDCT the DCT coefficients
xqY(m:m+N-1,n:n+N-1)= idct2(temp .* (Qscale*QstepsY))+ 128; end
end
% calculate the bits for the chroma components
if Depth > 1
EndRow = Height/2;
for m=1:N:EndRow
for n=1:N:(Width/2)
if ((m+N)<=EndRow)&&((n+N)<=Width/2) t1 = Cb(m:m+N-1,n:n+N-1) - 128; t2 = Cr(m:m+N-1,n:n+N-1) - 128; end
Ycb = dct2(t1); Ycr = dct2(t2);
temp1 = floor(Ycb./(Qscale*QstepsC) + 0.5); temp2 = floor(Ycr./(Qscale*QstepsC) + 0.5);
if n==1
DC1 = temp1(1,1);%Cb DC2 = temp2(1,1);%Cr
dcBitsCb = dcBitsCb + jpgDCbits(DC1,'C'); dcBitsCr = dcBitsCr + jpgDCbits(DC2,'C'); else
DC1 = temp1(1,1) - DC1; DC2 = temp2(1,1) - DC2;
dcBitsCb = dcBitsCb + jpgDCbits(DC1,'C'); dcBitsCr = dcBitsCr + jpgDCbits(DC2,'C'); DC1 = temp1(1,1);
DC2 = temp2(1,1); end
acBitsCr = acBitsCr + ACblkBits2;
% dequantize and IDCT the coefficients
xqCb(m:m+N-1,n:n+N-1)= idct2(temp1 .* (Qscale*QstepsC))+ xqCr(m:m+N-1,n:n+N-1)= idct2(temp2 .* (Qscale*QstepsC))+ end
end end %
TotalB
its = acBitsY + dcBitsY + dcBitsCb +... acBits
Cb + dcBitsCr + acBitsCr;
%upsam pling
c1 = imresize(xqCb,[Height Width],'cubic'); c2 = imresize(xqCr,[Height Width],'cubic'); xq(:,:
,1) = xqY; xq(:,: ,2) = c1; xq(:,: ,3) = c2;
%YCbCr toRGB imagec
ompress = ycbcr2rgb(uint8(round(xq))); sprint
f('Ukuran = %4.2f\n',TotalBits) toc
set(ha
ndles.edit_RTkompresi,'String',toc); axes(h
andles.axes_JPEGCompression)
imshow
(imagecompress); set(ha
ndles.pb_saveImageComm,'Visible','on');
functi
on edit15_Callback(hObject, eventdata, handles)
functi
on edit_RTkompresi_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
functi
on edit16_Callback(hObject, eventdata, handles)
functi
on edit_Ratiokompresi_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
functi
on edit17_Callback(hObject, eventdata, handles) functi
on edit_ImageSizekompresi_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
functi
on pb_saveImageComm_Callback(hObject, eventdata, handles) global
size_file; sImage
= getimage(handles.axes_JPEGCompression); [FileN
pathfi
EGCommImage = imfinfo(pathfile); size_f
ile_JPEGCom=infoJPEGCommImage.FileSize/1000; R_Comp
ression = 100 - ((size_file_JPEGCom / size_file )*100); set(ha
ndles.edit_ImageSizekompresi,'String',size_file_JPEGCom); set(ha
ndles.edit_Ratiokompresi,'String',R_Compression);
functi
on edit18_Callback(hObject, eventdata, handles)
functi
on edit_sizeIMedianFiltering_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
functi
on Home_Callback(hObject, eventdata, handles) close
home() ;
functi
on GenerateNoise_Callback(hObject, eventdata, handles) close
genera tenoise(); functi
on Testing_Callback(hObject, eventdata, handles)
functi
on Help_Callback(hObject, eventdata, handles) help()
;
functi
on Exit_Callback(hObject, eventdata, handles) respon
=keluar('Title','Konfirmasi Keluar'); switch
lower(respon) case 'tidak'
case 'ya' close end
functi
on popupmenu_quality_Callback(hObject, eventdata, handles) functi
on popupmenu_quality_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
4.
jpgACbits.m
functi
on Bits = jpgACbits(x,C)
k=k+1; end
5.
jpgDCbits.m
functi
on Bits = jpgDCbits(dc,C)
CodeLe
ngthY = int16([3 4 5 5 7 8 10 12 14 16 18 20]); CodeLe
ngthC = int16([2 3 5 6 7 9 11 13 15 18 19 20]); switch
C
case 'Y'
CodeLength = CodeLengthY; case 'C'
CodeLength = CodeLengthC; end
if dc == 0
Bits = double(CodeLength(1)); else
Bits = double(CodeLength(round(log2(abs(dc))+0.5)+1)); end
6.
ZigZag.m
functi
on y = ZigZag(x)
y(1) = x(1,1);y(2) = x(1,2);y(3) = x(2,1);y(4) = x(3,1); y(5) = x(2,2);y(6) = x(1,3);y(7) = x(1,4);y(8) = x(2,3); y(9) = x(3,2);y(10) = x(4,1);y(11) = x(5,1);y(12) = x(4,2); y(13) = x(3,3);y(14) = x(2,4);y(15) = x(1,5);y(16) = x(1,6); y(17) = x(2,5);y(18) = x(3,4);y(19) = x(4,3);y(20) = x(5,2); y(21) = x(6,1);y(22) = x(7,1);y(23) = x(6,2);y(24) = x(5,3); y(25) = x(4,4);y(26) = x(3,5);y(27) = x(2,6);y(28) = x(1,7); y(29) = x(1,8);y(30) = x(2,7);y(31) = x(3,6);y(32) = x(4,5); y(33) = x(5,4);y(34) = x(6,3);y(35) = x(7,2);y(36) = x(8,1); y(37) = x(8,2);y(38) = x(7,3);y(39) = x(6,4);y(40) = x(5,5); y(41) = x(4,6);y(42) = x(3,7);y(43) = x(2,8);y(44) = x(3,8); y(45) = x(4,7);y(46) = x(5,6);y(47) = x(6,5);y(48) = x(7,4); y(49) = x(8,3);y(50) = x(8,4);y(51) = x(7,5);y(52) = x(6,6); y(53) = x(5,7);y(54) = x(4,8);y(55) = x(5,8);y(56) = x(6,7); y(57) = x(7,6);y(58) = x(8,5);y(59) = x(8,6);y(60) = x(7,7); y(61) = x(6,8);y(62) = x(7,8);y(63) = x(8,7);y(64) = x(8,8);
7.
help.m
functi
on varargout = help(varargin)
% Begin initialization code - DO NOT EDIT gui_Si
ngleton = 1; gui_St
ate = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @help_OpeningFcn, ... 'gui_OutputFcn', @help_OutputFcn, ... 'gui_LayoutFcn', [] , ...
'gui_Callback', []); if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1}); end
if nargout
else
gui_mainfcn(gui_State, varargin{:}); end
functi
on help_OpeningFcn(hObject, eventdata, handles, varargin) handle
s.output = hObject;
guidat
a(hObject, handles); functi
on varargout = help_OutputFcn(hObject, eventdata, handles) vararg
out{1} = handles.output;
8.
keluar.m
functi
on varargout = keluar(varargin)
% Begin initialization code - DO NOT EDIT gui_Si
ngleton = 1; gui_St
ate = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @keluar_OpeningFcn, ... 'gui_OutputFcn', @keluar_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
functi
on keluar_OpeningFcn(hObject, eventdata, handles, varargin)
% Choose default command line output for keluar handle
s.output = 'Yes';
% Update handles structure guidat
a(hObject, handles);
if(nar gin > 3)
for index = 1:2:(nargin-3),
if nargin-3==index, break, end switch lower(varargin{index}) case 'title'
set(hObject, 'Name', varargin{index+1}); case 'string'
set(handles.text1, 'String', varargin{index+1}); end
end end
FigPos
=get(0,'DefaultFigurePosition'); OldUni
ts = get(hObject, 'Units'); set(hO
bject, 'Units', 'pixels'); OldPos
= get(hObject,'Position'); FigWid
th = OldPos(3); FigHei
ScreenUnits=get(0,'Units'); set(0,'Units','pixels');
ScreenSize=get(0,'ScreenSize'); set(0,'Units',ScreenUnits);
FigPos(1)=1/2*(ScreenSize(3)-FigWidth); FigPos(2)=2/3*(ScreenSize(4)-FigHeight); else
GCBFOldUnits = get(gcbf,'Units'); set(gcbf,'Units','pixels');
GCBFPos = get(gcbf,'Position'); set(gcbf,'Units',GCBFOldUnits);
FigPos(1:2) = [(GCBFPos(1) + GCBFPos(3) / 2) - FigWidth / 2, ... (GCBFPos(2) + GCBFPos(4) / 2) - FigHeight / 2]; end
FigPos
(3:4)=[FigWidth FigHeight]; set(hO
bject, 'Position', FigPos); set(hO
bject, 'Units', OldUnits);
% Show a question icon from dialogicons.mat - variables questIconData % and questIconMap
load dialogicons.mat
IconDa
ta=questIconData; questI
conMap(256,:) = get(handles.figklu, 'Color'); IconCM
ap=questIconMap;
Img=im
age(IconData, 'Parent', handles.axes1); set(ha
ndles.figklu, 'Colormap', IconCMap);
set(ha
ndles.axes1, ...
'Visible', 'off', ...
'YDir' , 'reverse' , ... 'XLim' , get(Img,'XData'), ... 'YLim' , get(Img,'YData') ... );
% Make the GUI modal set(ha
ndles.figklu,'WindowStyle','modal')
% UIWAIT makes keluar wait for user response (see UIRESUME) uiwait
(handles.figklu);
% --- Outputs from this function are returned to the command line. functi
on varargout = keluar_OutputFcn(hObject, eventdata, handles)
% Get default command line output from handles structure vararg
out{1} = handles.output;
% The figure can be deleted now delete
(handles.figklu);
functi
on btyes_Callback(hObject, eventdata, handles) handle
s.output = get(hObject,'String');
% Update handles structure guidat
% Use UIRESUME instead of delete because the OutputFcn needs % to get the updated handles structure.
uiresu
me(handles.figklu);
functi
on btno_Callback(hObject, eventdata, handles) handle
s.output = get(hObject,'String');
% Update handles structure guidat
a(hObject, handles);
% Use UIRESUME instead of delete because the OutputFcn needs % to get the updated handles structure.
uiresu
me(handles.figklu);
functi
on figklu_CloseRequestFcn(hObject, eventdata, handles) if isequal(get(handles.figklu, 'waitstatus'), 'waiting') % The GUI is still in UIWAIT, us UIRESUME
uiresume(handles.figklu); else
% The GUI is no longer waiting, just close it delete(handles.figklu);
end
functi
on figklu_KeyPressFcn(hObject, eventdata, handles) % Check for "enter" or "escape"
if isequal(get(hObject,'CurrentKey'),'escape') % User said no by hitting escape
handles.output = 'No';
% Update handles structure guidata(hObject, handles);
uiresume(handles.figklu); end
if isequal(get(hObject,'CurrentKey'),'return') uiresume(handles.figklu);