Fungsi Padded Matrix Fungsi untuk Filter Lowpass Filter Fungsi untuk Filter Highpass Filter Fungsi untuk menghasilkan Komponen Frekuensi Fungsi Menghitung Nilai MSE Form Lowpass Filtering

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