Petunjuk; deletehandles.figure1;
------------------------------------------------------------------- -
function ttg_CallbackhObject, eventdata, handles About;
deletehandles.figure1; -------------------------------------------------------------------
- function keluar_CallbackhObject, eventdata, handles
close;
2. Fungsi Padded Matrix
function PQ=paddedAB,CD,param if nargin==1
PQ=2AB; elseif nargin==2 ~ischarCD
PQ=AB+CD-1; PQ=2 ceilPQ2;
elseif nargin==2 m=maxAB;
P=2nextpow22m; PQ=[P,P];
elseif nargin==3 m=max[AB CD];
P=2nextpow22m; PQ=[P,P];
end
3. Fungsi untuk Filter Lowpass Filter
function[H,D]=lpfiltertype,M,N,D0,n [U,V]=dftuvM,N;
D=sqrtU.2+V.2; switch type
case ideal H=doubleD=D0;
case btw if nargin ==4
n=1; end;
H=1.1+ D . D0.2N; case gaussian
H=exp-D.2 . 2 D02; otherwise
errorUnknown filter type; end
Universitas Sumatera Utara
4. Fungsi untuk Filter Highpass Filter
function H=hpfiltertype,M,N,D0,n if nargin==4
n=1; end
Hlp=lpfiltertype,M,N,D0,n; H=1-Hlp;
5. Fungsi untuk menghasilkan Komponen Frekuensi
function [U,V]=dftuvM,N u=0:M-1;
v=0:N-1; idx=finduM2;
uidx=uidx-M; idy=findvN2;
vidy=vidy-N; [V,U]=meshgridv,u;
6. Fungsi Menghitung Nilai MSE
function NilaiMSE=HitungMSECitra,CitraRef [tinggi,lebar]=sizeCitra;
NilaiSSE=sumsumdoubleCitra-doubleCitraRef.2; NilaiMSE=NilaiSSEtinggilebar;
7. Form Lowpass Filtering
Begin initialization code - DO NOT EDIT gui_Singleton = 1;
gui_State = structgui_Name, mfilename, ... gui_Singleton, gui_Singleton, ...
gui_OpeningFcn, Lowpass_Filter_OpeningFcn, ... gui_OutputFcn, Lowpass_Filter_OutputFcn, ...
gui_LayoutFcn, [] , ... gui_Callback, [];
if nargin ischarvarargin{1} gui_State.gui_Callback = str2funcvarargin{1};
end if nargout
[varargout{1:nargout}] = gui_mainfcngui_State, varargin{:}; else
gui_mainfcngui_State, varargin{:}; end
--- Executes on button press in btn_buka. function btn_buka_CallbackhObject, eventdata, handles
Universitas Sumatera Utara
hObject handle to btn_buka see GCBO eventdata reserved - to be defined in a future version of MATLAB
handles structure with handles and user data see GUIDATA [nama_file,nama_path] = uigetfile{.jpg;.png;.bmp},Buka
File Citra; if ~isequalnama_file,0
handles.citra_asli=imreadfullfilenama_path,nama_file; guidatahObject,handles;
axeshandles.citra_rgb; imshowhandles.citra_asli;
handles.citra_asli1=rgb2grayhandles.citra_asli; guidatahObject,handles;
axeshandles.citra_grayscale; imshowhandles.citra_asli1;
else return;
end; --- Executes on button press in pushbutton12.
function pushbutton12_CallbackhObject, eventdata, handles hObject handle to pushbutton12 see GCBO
eventdata reserved - to be defined in a future version of MATLAB handles structure with handles and user data see
GUIDATAhandles.terang=doublehandles.citra_asli1; B=gethandles.pop1,value;
if B==1 handles.C=10;
guidatahObject,handles; elseif B==2
handles.C=20; guidatahObject,handles;
elseif B==3 handles.C=30;
guidatahObject,handles; elseif B==4
handles.C=40; guidatahObject,handles;
else handles.C=50;
guidatahObject,handles; end;
handles.terang=handles.citra_asli1+handles.C; guidatahObject,handles;
axeshandles.citra_penajaman; imshowhandles.terang;
--- Executes on button press in bt_transform1. function bt_transform1_CallbackhObject, eventdata, handles
hObject handle to bt_transform1 see GCBO eventdata reserved - to be defined in a future version of MATLAB
handles structure with handles and user data see GUIDATA citrax=uint8handles.terang;
handles.F=fft2handles.terang; guidatahObject,handles;
S=fftshiftlog1+abshandles.F; axeshandles.trans_fourier;
Universitas Sumatera Utara
imshowS,[];
--- Executes on button press in filterlpf. function filterlpf_CallbackhObject, eventdata, handles
hObject handle to filterlpf see GCBO eventdata reserved - to be defined in a future version of MATLAB
handles structure with handles and user data see GUIDATA PQ=paddedsizehandles.terang;
[x,y]=sizehandles.terang; Ip=zerosPQ1,PQ2;
Ip1:x,1:y=handles.terang; Ip=doubleIp;
Ic=zerosPQ1,PQ2; for m=1:PQ1
for n=1:PQ2 Icm,n=-1m+nIpm,n;
end end
If=fft2Ic; B=gethandles.pop2,value;
if B==1 handles.D=100;
guidatahObject,handles; elseif B==2
handles.D=120; guidatahObject,handles;
elseif B==3 handles.D=140;
guidatahObject,handles; elseif B==4
handles.D=160; guidatahObject,handles;
else handles.D=180;
guidatahObject,handles; end;
Sig=handles.D; H1=lpfilterideal,PQ1,PQ2,Sig;
H1=fftshiftH1; G1=H1.If;
g1=realifft2G1; Ifin=zerosPQ1,PQ2;
for m=1:PQ1 for n=1:PQ2
Ifinm,n=-1m+ng1m,n; end
end
Universitas Sumatera Utara
Ifin=Ifin1:x,1:y; Ifin=uint8Ifin;
handles.idealhasil=Ifin; guidatahObject,handles;
axeshandles.ILPF; imshowIfin;
hxl=HitungMSEhandles.citra_asli1,handles.idealhasil; sethandles.MSE1,String,hxl;
psnr= 20 log10double10 255 sqrthxl; sethandles.PSNR1,String,psnr;
--- Executes on button press in save1. function save1_CallbackhObject, eventdata, handles
[name,path] = uiputfile{.jpg;.bmp;.png},Save Image; if isequal[name,path],[0,0]
return else
Hasil = getimagehandles.ILPF; imwriteHasil,strcatpath,name;
end --- Executes on button press in bt_filter2.
function bt_filter2_CallbackhObject, eventdata, handles PQ=paddedsizehandles.terang;
[x,y]=sizehandles.terang; Ip=zerosPQ1,PQ2;
Ip1:x,1:y=handles.terang; Ip=doubleIp;
Ic=zerosPQ1,PQ2; for m=1:PQ1
for n=1:PQ2 Icm,n=-1m+nIpm,n;
end end
If=fft2Ic; B=gethandles.pop2,value;
if B==1 handles.D=100;
guidatahObject,handles; elseif B==2
handles.D=120; guidatahObject,handles;
elseif B==3 handles.D=140;
guidatahObject,handles; elseif B==4
handles.D=160; guidatahObject,handles;
else
Universitas Sumatera Utara
handles.D=180; guidatahObject,handles;
end; Sig=handles.D;
H2=lpfilterbtw,PQ1,PQ2,Sig,2; H2=fftshiftH2;
G2=H2.If; g2=realifft2G2;
Ifin=zerosPQ1,PQ2; for m=1:PQ1
for n=1:PQ2 Ifinm,n=-1m+ng2m,n;
end end
Ifin=Ifin1:x,1:y; Ifin=uint8Ifin
handles.btwhasil=Ifin; axeshandles.BLPF;
imshowIfin; hxl=HitungMSEhandles.citra_asli1,handles.btwhasil;
sethandles.MSE2,String,hxl; psnr= 20 log10double10 255 sqrthxl;
sethandles.PSNR2,String,psnr; --- Executes on button press in save2.
function save2_CallbackhObject, eventdata, handles [name,path] = uiputfile{.jpg;.bmp;.png},Save Image;
if isequal[name,path],[0,0] return
else Hasil = getimagehandles.BLPF;
imwriteHasil,strcatpath,name; end
--- Executes on button press in bt_filter3. function bt_filter3_CallbackhObject, eventdata, handles
PQ=paddedsizehandles.terang; [x,y]=sizehandles.terang;
Ip=zerosPQ1,PQ2; Ip1:x,1:y=handles.terang;
Ip=doubleIp; Ic=zerosPQ1,PQ2;
for m=1:PQ1 for n=1:PQ2
Icm,n=-1m+nIpm,n; end
end If=fft2Ic;
Universitas Sumatera Utara
B=gethandles.pop2,value; if B==1
handles.D=100; guidatahObject,handles;
elseif B==2 handles.D=120;
guidatahObject,handles; elseif B==3
handles.D=140; guidatahObject,handles;
elseif B==4 handles.D=160;
guidatahObject,handles; else
handles.D=180; guidatahObject,handles;
end; Sig=handles.D;
H3=lpfiltergaussian,PQ1,PQ2,Sig; H3=fftshiftH3;
G3=H3.If; g3=realifft2G3;
Ifin=zerosPQ1,PQ2; for m=1:PQ1
for n=1:PQ2 Ifinm,n=-1m+ng3m,n;
end end
Ifin=Ifin1:x,1:y; Ifin=uint8Ifin;
handles.gaussianhasil=Ifin; axeshandles.GLPF;
imshowIfin; hxl=HitungMSEhandles.citra_asli1,handles.gaussianhasil;
sethandles.MSE3,String,hxl; psnr= 20 log10double10 255 sqrthxl;
sethandles.PSNR3,String,psnr; msgboxProses filtering sudah selesai dilakukan,Sukses;
--- Executes on button press in save3. function save3_CallbackhObject, eventdata, handles
[name,path] = uiputfile{.jpg;.bmp;.png},Save Image; if isequal[name,path],[0,0]
return else
Hasil = getimagehandles.GLPF; imwriteHasil,strcatpath,name;
end
Universitas Sumatera Utara
--- Executes on button press in back2. function back2_CallbackhObject, eventdata, handles
close Sistem_LPF_HPF;
8. Form Highpass Filtering
Begin initialization code - DO NOT EDIT gui_Singleton = 1;
gui_State = structgui_Name, mfilename, ... gui_Singleton, gui_Singleton, ...
gui_OpeningFcn, Highpass_Filter_OpeningFcn, ... gui_OutputFcn, Highpass_Filter_OutputFcn, ...
gui_LayoutFcn, [] , ... gui_Callback, [];
if nargin ischarvarargin{1} gui_State.gui_Callback = str2funcvarargin{1};
end if nargout
[varargout{1:nargout}] = gui_mainfcngui_State, varargin{:}; else
gui_mainfcngui_State, varargin{:}; end
End initialization code - DO NOT EDIT --- Executes on button press in btn_buka2.
function btn_buka2_CallbackhObject, eventdata, handles [nama_file,nama_path] = uigetfile{.jpg;.png;.bmp},Buka
File Citra; if ~isequalnama_file,0
handles.citra_asli=imreadfullfilenama_path,nama_file; guidatahObject,handles;
axeshandles.citra_rgb; imshowhandles.citra_asli;
handles.citra_asli1=rgb2grayhandles.citra_asli; guidatahObject,handles;
axeshandles.citra_grayscale; imshowhandles.citra_asli1;
else return;
end; --- Executes on button press in trnsfrm.
function trnsfrm_CallbackhObject, eventdata, handles hObject handle to trnsfrm see GCBO
eventdata reserved - to be defined in a future version of MATLAB handles structure with handles and user data see GUIDATA
handles.F=fft2handles.citra_asli1; S=fftshiftlog1+abshandles.F;
axeshandles.trans_fou; imshowS,[];
Universitas Sumatera Utara
--- Executes on button press in pushbutton17. function pushbutton17_CallbackhObject, eventdata, handles
hObject handle to pushbutton17 see GCBO eventdata reserved - to be defined in a future version of MATLAB
handles structure with handles and user data see GUIDATA B=gethandles.pop4,value;
if B==1 handles.C=10;
guidatahObject,handles; elseif B==2
handles.C=20; guidatahObject,handles;
elseif B==3 handles.C=30;
guidatahObject,handles; elseif B==4
handles.C=40; guidatahObject,handles;
else handles.C=50;
guidatahObject,handles; end;
handles.gelap=handles.citra_asli1-handles.C; guidatahObject,handles;
axeshandles.citra_gelap; imshowhandles.gelap;
--- Executes on button press in fltr1. function fltr1_CallbackhObject, eventdata, handles
hObject handle to fltr1 see GCBO eventdata reserved - to be defined in a future version of MATLAB
handles structure with handles and user data see GUIDATA PQ=paddedsizehandles.citra_asli1;
[x,y]=sizehandles.citra_asli1; Ip=zerosPQ1,PQ2;
Ip1:x,1:y=handles.citra_asli1; Ip=doubleIp;
Ic=zerosPQ1,PQ2; for m=1:PQ1
for n=1:PQ2 Icm,n=-1m+nIpm,n;
end end
If=fft2Ic; B=gethandles.pop3,value;
if B==1 handles.D=10;
guidatahObject,handles; elseif B==2
handles.D=20; guidatahObject,handles;
elseif B==3 handles.D=40;
guidatahObject,handles; elseif B==4
Universitas Sumatera Utara
handles.D=60; guidatahObject,handles;
else handles.D=80;
guidatahObject,handles; end;
Sig=handles.D; H1=hpfilterideal,PQ1,PQ2,Sig;
H1=fftshiftH1; G1=H1.If;
g1=realifft2G1; Ifin=zerosPQ1,PQ2;
for m=1:PQ1 for n=1:PQ2
Ifinm,n=-1m+ng1m,n; end
end Ifin=Ifin1:x,1:y;
Ifin=uint8Ifin; handles.idealhasil=Ifin;
axeshandles.IHPF; imshowIfin;
hxl=HitungMSEhandles.citra_asli1,handles.idealhasil; sethandles.MSE4,String,hxl;
psnr= 20 log10double10 255 sqrthxl; sethandles.PSNR4,String,psnr;
--- Executes on button press in save4. function save4_CallbackhObject, eventdata, handles
hObject handle to save4 see GCBO eventdata reserved - to be defined in a future version of MATLAB
handles structure with handles and user data see GUIDATA [name,path] = uiputfile{.jpg;.bmp;.png},Save Image;
if isequal[name,path],[0,0] return
else Hasil = getimagehandles.IHPF;
imwriteHasil,strcatpath,name; end
--- Executes on button press in fltr2. function fltr2_CallbackhObject, eventdata, handles
hObject handle to fltr2 see GCBO eventdata reserved - to be defined in a future version of MATLAB
handles structure with handles and user data see GUIDATA PQ=paddedsizehandles.citra_asli1;
[x,y]=sizehandles.citra_asli1;
Universitas Sumatera Utara
Ip=zerosPQ1,PQ2; Ip1:x,1:y=handles.citra_asli1;
Ip=doubleIp; Ic=zerosPQ1,PQ2;
for m=1:PQ1 for n=1:PQ2
Icm,n=-1m+nIpm,n; end
end If=fft2Ic;
B=gethandles.pop3,value; if B==1
handles.D=10; guidatahObject,handles;
elseif B==2 handles.D=20;
guidatahObject,handles; elseif B==3
handles.D=40; guidatahObject,handles;
elseif B==4 handles.D=60;
guidatahObject,handles; else
handles.D=80; guidatahObject,handles;
end; Sig=handles.D;
H2=hpfilterbtw,PQ1,PQ2,Sig,2; H2=fftshiftH2;
G2=H2.If; g2=realifft2G2;
Ifin=zerosPQ1,PQ2; for m=1:PQ1
for n=1:PQ2 Ifinm,n=-1m+ng2m,n;
end end
Ifin=Ifin1:x,1:y; Ifin=uint8Ifin
handles.btwhasil=Ifin; axeshandles.BHPF;
imshowIfin; hxl=HitungMSEhandles.citra_asli1,handles.btwhasil;
sethandles.MSE5,String,hxl; psnr= 20 log10double10 255 sqrthxl;
sethandles.PSNR5,String,psnr;
Universitas Sumatera Utara
--- Executes on button press in save5. function save5_CallbackhObject, eventdata, handles
[name,path] = uiputfile{.jpg;.bmp;.png},Save Image; if isequal[name,path],[0,0]
return else
Hasil = getimagehandles.BHPF; imwriteHasil,strcatpath,name;
end
--- Executes on button press in fltr3. function fltr3_CallbackhObject, eventdata, handles
hObject handle to fltr3 see GCBO eventdata reserved - to be defined in a future version of MATLAB
handles structure with handles and user data see GUIDATA PQ=paddedsizehandles.citra_asli1;
[x,y]=sizehandles.citra_asli1; Ip=zerosPQ1,PQ2;
Ip1:x,1:y=handles.citra_asli1; Ip=doubleIp;
Ic=zerosPQ1,PQ2; for m=1:PQ1
for n=1:PQ2 Icm,n=-1m+nIpm,n;
end end
If=fft2Ic; B=gethandles.pop3,value;
if B==1 handles.D=10;
guidatahObject,handles; elseif B==2
handles.D=20; guidatahObject,handles;
elseif B==3 handles.D=40;
guidatahObject,handles; elseif B==4
handles.D=60; guidatahObject,handles;
else handles.D=80;
guidatahObject,handles; end;
Sig=handles.D; H3=hpfiltergaussian,PQ1,PQ2,Sig;
H3=fftshiftH3; G3=H3.If;
g3=realifft2G3; Ifin=zerosPQ1,PQ2;
for m=1:PQ1
Universitas Sumatera Utara
for n=1:PQ2 Ifinm,n=-1m+ng3m,n;
end end
Ifin=Ifin1:x,1:y; Ifin=uint8Ifin;
handles.gaussianhasil=Ifin; axeshandles.GHPF;
imshowIfin; hxl=HitungMSEhandles.citra_asli1,handles.gaussianhasil;
sethandles.MSE6,String,hxl; psnr= 20 log10double10 255 sqrthxl;
sethandles.PSNR6,String,psnr; msgboxProses Filter sudah selesai dilakukan,Sukses;
--- Executes on button press in save6. function save6_CallbackhObject, eventdata, handles
[name,path] = uiputfile{.jpg;.bmp;.png},Save Image; if isequal[name,path],[0,0]
return else
Hasil = getimagehandles.GHPF; imwriteHasil,strcatpath,name;
end --- Executes on button press in back2.
function back2_CallbackhObject, eventdata, handles close
Sistem_LPF_HPF;
9. Form Petunjuk Aplikasi