LISTING PROGRAM
1.
Form Home
function varargout = HOME(varargin) gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', 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
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else
gui_mainfcn(gui_State, varargin{:}); end
function HOME_OpeningFcn(hObject, eventdata, handles, varargin) citra=imread('logoilkom.jpg');
axes(handles.logo_fakultas); imshow(citra);
handles.output = hObject; guidata(hObject, handles);
function varargout = HOME_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;
function btn_perbandingan_Callback(hObject, eventdata, handles) selection = questdlg('Apakah Anda ingin menggunakan inputan citra
bernoise?',...
'Input Citra Bernoise?',... 'Ya','Tidak','Ya');
switch selection, case 'Ya', PROSES2; close(gcbf); case 'Tidak' PROSES1; close(gcbf); end
function btn_help_Callback(hObject, eventdata, handles) HELP;
close(gcbf);
function varargout = btn_exit_Callback(hObject, eventdata, handles) selection = questdlg('Apakah Anda yakin untuk menutup aplikasi
ini?',...
'Ya','Tidak','Ya'); switch selection, case 'Ya', close case 'Tidak' return
end
function btn_implementasi_Callback(hObject, eventdata, handles) PROSES;
close(gcbf);
function btn_about_Callback(hObject, eventdata, handles) ABOUT;
close(gcbf);
2.
Form Implementasi
function varargout = PROSES(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @PROSES_OpeningFcn, ... 'gui_OutputFcn', @PROSES_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
function PROSES_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;
guidata(hObject, handles);
function varargout = PROSES_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;
function varargout = btn_open_Callback(hObject, eventdata, handles) [nama_file, namaPath]=uigetfile({'*.bmp'},'Buka File');
if ~isequal (nama_file,0)
handles.citra=imread(fullfile(namaPath,nama_file)); guidata(hObject,handles);
axes(handles.axes_asli); imshow(handles.citra);
set(handles.file_name,'String',nama_file);
set(handles.panjang,'String',size(handles.citra,1)); set(handles.lebar,'String',size(handles.citra,2)); else
return; end
set(handles.btn_clear,'Enable','On') set(handles.gaus,'Enable','On')
set(handles.btn_salt_and_pepper,'Enable','On') set(handles.btn_speckle,'Enable','On')
set(handles.btn_expo,'Enable','On') set(handles.btn_open,'Enable','Off')
function gaus_Callback(hObject, eventdata, handles) global runtime;
runtime=cputime;
P=str2double(get(handles.txt_probabilitas_gauss,'string')); P=P/100;
I = handles.citra;
noise = fungsigaussian(I, P); handles.citra= noise;
axes(handles.axes_gaussian); imshow(handles.citra);
runtime=cputime-runtime;
set(handles.txt_runtime_gaussian,'String',runtime); set(handles.reset,'Enable','On')
set(handles.save_gauss,'Enable','On')
set(handles.btn_mse_gaussian,'Enable','On') set(handles.btn_psnr_gaussian,'Enable','On') set(handles.btn_gauss_reduction,'Enable','On') set(handles.btn_clear,'Enable','Off')
set(handles.gaus,'Enable','Off')
function btn_mse_gaussian_Callback(hObject, eventdata, handles) citra = getimage(handles.axes_asli);
citra_hasil=getimage(handles.axes_gaussian); [psnrval mseval] = MSE_PSNR(citra,citra_hasil); set(handles.txt_mse_gaussian,'String',mseval);
function btn_psnr_gaussian_Callback(hObject, eventdata, handles) citra = getimage(handles.axes_asli);
citra_hasil=getimage(handles.axes_gaussian); [psnrval mseval] = MSE_PSNR(citra,citra_hasil); set(handles.txt_psnr_gaussian,'String',psnrval);
function btn_runtime_gaussian_Callback(hObject, eventdata, handles) global runtime;
set(handles.txt_runtime_gaussian,'String',runtime);
function btn_mse_saltandpepper_Callback(hObject, eventdata, handles) citra = getimage(handles.axes_asli);
citra_hasil=getimage(handles.axes_saltandpepper); [psnrval mseval] = MSE_PSNR(citra,citra_hasil); set(handles.txt_mse_saltandpepper,'String',mseval);
function btn_psnr_saltandpepper_Callback(hObject, eventdata, handles) citra = getimage(handles.axes_asli);
citra_hasil=getimage(handles.axes_saltandpepper); [psnrval mseval] = MSE_PSNR(citra,citra_hasil);
set(handles.txt_psnr_saltandpepper,'String',psnrval);
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_psnr_gaussian_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_runtime_gaussian_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_mse_saltandpepper_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_psnr_saltandpepper_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_runtime_saltandpepper_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function btn_salt_and_pepper_Callback(hObject, eventdata, handles) global runtime;
runtime=cputime;
P=str2double(get(handles.txt_probabilitas_saltandpepper,'string')); P=P/100;
I = handles.citra;
noise = fungsisaltandpepper(I, P); handles.citra= noise;
axes(handles.axes_saltandpepper); imshow(handles.citra);
runtime=cputime-runtime;
set(handles.txt_runtime_saltandpepper,'String',runtime); set(handles.reset,'Enable','On')
set(handles.save_sap,'Enable','On')
set(handles.btn_sap_reduction,'Enable','On') set(handles.btn_clear,'Enable','Off')
function btn_mse_gauss_reduction_Callback(hObject, eventdata, handles)
citra = getimage(handles.axes_gaussian);
citra_hasil=getimage(handles.axes_gauss_reduction); [psnrval mseval] = MSE_PSNR(citra,citra_hasil);
set(handles.txt_mse_gauss_reduction,'String',mseval);
function btn_psnr_gauss_reduction_Callback(hObject, eventdata, handles)
citra = getimage(handles.axes_gaussian);
citra_hasil=getimage(handles.axes_gauss_reduction); [psnrval mseval] = MSE_PSNR(citra,citra_hasil);
set(handles.txt_psnr_gauss_reduction,'String',psnrval);
function txt_mse_gauss_reduction_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_psnr_gauss_reduction_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_runtime_gauss_reduction_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function btn_gauss_reduction_Callback(hObject, eventdata, handles) global runtime;
runtime=cputime;
citra_asli = getimage(handles.axes_gaussian); pixel=citra_asli;
[r, g, b]=size(pixel); for x=1:1:r
for y=1:1:g for z=1:1:b try
nilaipixel(1,1)=pixel(x-1,y-1,z); catch
nilaipixel(1,1)=0; end
try
catch
nilaipixel(1,2)=0; end
try
nilaipixel(1,3)=pixel(x-1,y+1,z); catch
nilaipixel(1,3)=0; end
try
nilaipixel(2,1)=pixel(x,y-1,z); catch
nilaipixel(2,1)=0; end
try
nilaipixel(2,2)=pixel(x,y,z); catch
nilaipixel(2,2)=0; end
try
nilaipixel(2,3)=pixel(x,y+1,z); catch
nilaipixel(2,3)=0; end
try
nilaipixel(3,1)=pixel(x+1,y-1,z); catch
nilaipixel(3,1)=0; end
try
nilaipixel(3,2)=pixel(x+1,y,z); catch
nilaipixel(3,2)=0; end
try
nilaipixel(3,3)=pixel(x+1,y+1,z); catch
nilaipixel(3,3)=0; end
combinationfilter(x,y,z)=(mean(mean(nilaipixel))+ median(median(nilaipixel)))/2;
end end end
combinationfilter=uint8(combinationfilter); handles.citra=combinationfilter;
axes(handles.axes_gauss_reduction); imshow(handles.citra);
runtime=cputime-runtime;
set(handles.txt_runtime_gauss_reduction,'String',runtime); set(handles.btn_gauss_reduction,'Enable','Off')
set(handles.btn_mse_gauss_reduction,'Enable','On') set(handles.btn_psnr_gauss_reduction,'Enable','On') set(handles.save_gauss_reduction,'Enable','On')
function kernel_gauss_res_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function btn_mse_sap_reduction_Callback(hObject, eventdata, handles) citra = getimage(handles.axes_saltandpepper);
citra_hasil=getimage(handles.axes_sap_reduction); [psnrval mseval] = MSE_PSNR(citra,citra_hasil); set(handles.txt_mse_sap_reduction,'String',mseval);
function btn_psnr_sap_reduction_Callback(hObject, eventdata, handles) citra = getimage(handles.axes_saltandpepper);
citra_hasil=getimage(handles.axes_sap_reduction); [psnrval mseval] = MSE_PSNR(citra,citra_hasil);
set(handles.txt_psnr_sap_reduction,'String',psnrval);
function btn_runtime_sap_reduction_Callback(hObject, eventdata, handles)
global runtime;
set(handles.txt_runtime_sap_reduction,'String',runtime);
function txt_mse_sap_reduction_Callback(hObject, eventdata, handles)
function txt_mse_sap_reduction_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_psnr_sap_reduction_Callback(hObject, eventdata, handles)
function txt_psnr_sap_reduction_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_runtime_sap_reduction_Callback(hObject, eventdata, handles)
function txt_runtime_sap_reduction_CreateFcn(hObject, eventdata, handles)
set(hObject,'BackgroundColor','white'); end
function btn_sap_reduction_Callback(hObject, eventdata, handles) global runtime;
runtime=cputime;
citra_asli = getimage(handles.axes_saltandpepper); temp=citra_asli;
[b k c]=size(temp); for x=1:1:b
for y=1:1:k for z=1:1:c try
matriks(1,1)=temp(x-1,y-1,z); catch
matriks(1,1)=0; end
try
matriks(1,2)=temp(x-1,y,z); catch
matriks(1,2)=0; end
try
matriks(1,3)=temp(x-1,y+1,z); catch
matriks(1,3)=0; end
try
matriks(2,1)=temp(x,y-1,z); catch
matriks(2,1)=0; end
try
matriks(2,2)=temp(x,y,z); catch
matriks(2,2)=0; end
try
matriks(2,3)=temp(x,y+1,z); catch
matriks(2,3)=0; end
try
matriks(3,1)=temp(x+1,y-1,z); catch
matriks(3,1)=0; end
try
matriks(3,2)=temp(x+1,y,z); catch
matriks(3,2)=0; end
try
matriks(3,3)=temp(x+1,y+1,z); catch
matriks(3,3)=0; end
end end
filtered=uint8(filtered); handles.citra=filtered;
axes(handles.axes_sap_reduction); imshow(handles.citra);
runtime=cputime-runtime;
set(handles.txt_runtime_sap_reduction,'String',runtime); set(handles.btn_sap_reduction,'Enable','Off')
set(handles.btn_mse_sap_reduction,'Enable','On') set(handles.btn_psnr_sap_reduction,'Enable','On') set(handles.save_sap_reduction,'Enable','On')
function btn_mse_expo_Callback(hObject, eventdata, handles) citra = getimage(handles.axes_asli);
citra_hasil=getimage(handles.axes_exponential); [psnrval mseval] = MSE_PSNR(citra,citra_hasil); set(handles.txt_mse_expo,'String',mseval);
function btn_psnr_expo_Callback(hObject, eventdata, handles) citra = getimage(handles.axes_asli);
citra_hasil=getimage(handles.axes_exponential); [psnrval mseval] = MSE_PSNR(citra,citra_hasil); set(handles.txt_psnr_expo,'String',psnrval);
function btn_runtime_expo_Callback(hObject, eventdata, handles) global runtime;
set(handles.txt_runtime_expo,'String',runtime);
function txt_mse_expo_Callback(hObject, eventdata, handles)
function txt_mse_expo_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_psnr_expo_Callback(hObject, eventdata, handles)
function txt_psnr_expo_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_runtime_expo_Callback(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function btn_expo_Callback(hObject, eventdata, handles) global runtime;
runtime=cputime;
P=str2double(get(handles.txt_probabilitas_exponential,'string')); P=P/100;
I = handles.citra;
I_noise = fungsiexponential(I,P); handles.citra=I_noise;
axes(handles.axes_exponential); imshow(handles.citra);
runtime=cputime-runtime;
set(handles.txt_runtime_expo,'String',runtime); set(handles.reset,'Enable','On')
set(handles.btn_expo,'Enable','Off')
set(handles.btn_expo_reduction,'Enable','On') set(handles.btn_mse_expo,'Enable','On')
set(handles.btn_psnr_expo,'Enable','On') set(handles.save_expo,'Enable','On') set(handles.btn_clear,'Enable','Off')
function btn_mse_speckle_Callback(hObject, eventdata, handles) citra = getimage(handles.axes_asli);
citra_hasil=getimage(handles.axes_speckle); [psnrval mseval] = MSE_PSNR(citra,citra_hasil); set(handles.txt_mse_speckle,'String',mseval);
function btn_psnr_speckle_Callback(hObject, eventdata, handles) citra = getimage(handles.axes_asli);
citra_hasil=getimage(handles.axes_speckle); [psnrval mseval] = MSE_PSNR(citra,citra_hasil); set(handles.txt_psnr_speckle,'String',psnrval);
function btn_runtime_speckle_Callback(hObject, eventdata, handles) global runtime;
set(handles.txt_runtime_speckle,'String',runtime);
function txt_mse_speckle_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_psnr_speckle_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function btn_speckle_Callback(hObject, eventdata, handles) global runtime;
runtime=cputime;
P=str2double(get(handles.txt_probabilitas_speckle,'string')); P=P/100;
I = handles.citra;
I_noise = fungsispeckle(I, P); handles.citra=I_noise;
axes(handles.axes_speckle); imshow(handles.citra); runtime=cputime-runtime;
set(handles.txt_runtime_speckle,'String',runtime); set(handles.reset,'Enable','On')
set(handles.btn_speckle,'Enable','Off')
set(handles.btn_speckle_reduction,'Enable','On') set(handles.btn_mse_speckle,'Enable','On')
set(handles.btn_psnr_speckle,'Enable','On') set(handles.save_speckle,'Enable','On') set(handles.btn_clear,'Enable','Off')
function btn_mse_expo_reduction_Callback(hObject, eventdata, handles) citra = getimage(handles.axes_exponential);
citra_hasil=getimage(handles.axes_exponential_reduction); [psnrval mseval] = MSE_PSNR(citra,citra_hasil);
set(handles.txt_mse_expo_reduction,'String',mseval);
function btn_psnr_expo_reduction_Callback(hObject, eventdata, handles)
citra = getimage(handles.axes_exponential);
citra_hasil=getimage(handles.axes_exponential_reduction); [psnrval mseval] = MSE_PSNR(citra,citra_hasil);
set(handles.txt_psnr_expo_reduction,'String',psnrval);
function btn_runtime_expo_reduction_Callback(hObject, eventdata, handles)
global runtime;
set(handles.txt_runtime_expo_reduction,'String',runtime);
function txt_mse_expo_reduction_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_psnr_expo_reduction_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
function txt_runtime_expo_reduction_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function btn_expo_reduction_Callback(hObject, eventdata, handles) global runtime;
runtime=cputime;
citra_asli = getimage(handles.axes_exponential); temp=citra_asli;
[b k c]=size(temp); for x=1:1:b
for y=1:1:k for z=1:1:c try
matriks(1,1)=temp(x-1,y-1,z); catch
matriks(1,1)=0; end
try
matriks(1,2)=temp(x-1,y,z); catch
matriks(1,2)=0; end
try
matriks(1,3)=temp(x-1,y+1,z); catch
matriks(1,3)=0; end
try
matriks(2,1)=temp(x,y-1,z); catch
matriks(2,1)=0; end
try
matriks(2,2)=temp(x,y,z); catch
matriks(2,2)=0; end
try
matriks(2,3)=temp(x,y+1,z); catch
matriks(2,3)=0; end
try
matriks(3,1)=temp(x+1,y-1,z); catch
matriks(3,1)=0; end
try
matriks(3,2)=temp(x+1,y,z); catch
matriks(3,2)=0; end
try
matriks(3,3)=temp(x+1,y+1,z); catch
end
filtered(x,y,z)=(mean(mean(matriks))+median(median(matriks)))/2; end
end end
filtered=uint8(filtered); handles.citra=filtered;
axes(handles.axes_exponential_reduction); imshow(handles.citra);
runtime=cputime-runtime;
set(handles.txt_runtime_expo_reduction,'String',runtime); set(handles.btn_expo_reduction,'Enable','Off')
set(handles.btn_mse_expo_reduction,'Enable','On') set(handles.btn_psnr_expo_reduction,'Enable','On') set(handles.save_expo_reduction,'Enable','On')
function btn_mse_speckle_reduction_Callback(hObject, eventdata, handles)
citra = getimage(handles.axes_speckle);
citra_hasil=getimage(handles.axes_speckle_reduction); [psnrval mseval] = MSE_PSNR(citra,citra_hasil);
set(handles.txt_mse_speckle_reduction,'String',mseval);
function btn_psnr_speckle_reduction_Callback(hObject, eventdata, handles)
citra = getimage(handles.axes_speckle);
citra_hasil=getimage(handles.axes_speckle_reduction); [psnrval mseval] = MSE_PSNR(citra,citra_hasil);
set(handles.txt_psnr_speckle_reduction,'String',psnrval);
function btn_runtime_speckle_reduction_Callback(hObject, eventdata, handles)
global runtime;
set(handles.txt_runtime_speckle_reduction,'String',runtime);
function txt_mse_speckle_reduction_Callback(hObject, eventdata, handles)
function txt_mse_speckle_reduction_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_psnr_speckle_reduction_Callback(hObject, eventdata, handles)
function txt_psnr_speckle_reduction_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_runtime_speckle_reduction_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function btn_speckle_reduction_Callback(hObject, eventdata, handles) global runtime;
runtime=cputime;
citra_asli = getimage(handles.axes_speckle); pixel=citra_asli;
[r, g, b]=size(pixel); for x=1:1:r
for y=1:1:g for z=1:1:b try
nilaipixel(1,1)=pixel(x-1,y-1,z); catch
nilaipixel(1,1)=0; end
try
nilaipixel(1,2)=pixel(x-1,y,z); catch
nilaipixel(1,2)=0; end
try
nilaipixel(1,3)=pixel(x-1,y+1,z); catch
nilaipixel(1,3)=0; end
try
nilaipixel(2,1)=pixel(x,y-1,z); catch
nilaipixel(2,1)=0; end
try
nilaipixel(2,2)=pixel(x,y,z); catch
nilaipixel(2,2)=0; end
try
nilaipixel(2,3)=pixel(x,y+1,z); catch
nilaipixel(2,3)=0; end
try
nilaipixel(3,1)=pixel(x+1,y-1,z); catch
nilaipixel(3,1)=0; end
try
nilaipixel(3,2)=pixel(x+1,y,z); catch
nilaipixel(3,2)=0; end
try
nilaipixel(3,3)=pixel(x+1,y+1,z); catch
end
combinationfilter(x,y,z)=(mean(mean(nilaipixel))+median(median(nilaip ixel)))/2;
end end end
combinationfilter=uint8(combinationfilter); handles.citra=combinationfilter;
axes(handles.axes_speckle_reduction); imshow(handles.citra);
runtime=cputime-runtime;
set(handles.txt_runtime_speckle_reduction,'String',runtime); set(handles.btn_speckle_reduction,'Enable','Off')
set(handles.btn_mse_speckle_reduction,'Enable','On') set(handles.btn_psnr_speckle_reduction,'Enable','On') set(handles.save_speckle_reduction,'Enable','On')
function btn_clear_Callback(hObject, eventdata, handles) handles.citra=handles.citra([]);
axes(handles.axes_asli); imshow(handles.citra);
set(handles.btn_clear,'Enable','Off') set(handles.btn_open,'Enable','On') set(handles.file_name,'string',' '); set(handles.panjang,'string',' '); set(handles.lebar,'string',' ');
function panjang_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function lebar_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function file_name_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function btn_mainmenu_Callback(hObject, eventdata, handles) HOME;
close(gcbf);
function txt_probabilitas_gauss_CreateFcn(hObject, eventdata, handles)
set(hObject,'BackgroundColor','white'); end
function varargout = probabilitas_gauss_Callback(h, eventdata, handles)
nilai_probabilitas = get(handles.probabilitas_gauss,'value'); handles.nilai_probabilitas = round(nilai_probabilitas);
guidata(h,handles);
set(handles.txt_probabilitas_gauss,'string',handles.nilai_probabilita s);
function probabilitas_gauss_CreateFcn(hObject, eventdata, handles)
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]); end
function txt_probabilitas_saltandpepper_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function varargout = probabilitas_saltandpepper_Callback(h, eventdata, handles)
nilai_probabilitas = get(handles.probabilitas_saltandpepper,'value'); handles.nilai_probabilitas = round(nilai_probabilitas);
guidata(h,handles);
set(handles.txt_probabilitas_saltandpepper,'string',handles.nilai_pro babilitas);
function probabilitas_saltandpepper_CreateFcn(hObject, eventdata, handles)
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]); end
function txt_probabilitas_exponential_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function varargout = probabilitas_exponential_Callback(h, eventdata, handles)
nilai_probabilitas = get(handles.probabilitas_exponential,'value'); handles.nilai_probabilitas = round(nilai_probabilitas);
guidata(h,handles);
set(handles.txt_probabilitas_exponential,'string',handles.nilai_proba bilitas);
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]); end
function txt_probabilitas_speckle_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function varargout = probabilitas_speckle_Callback(h, eventdata, handles)
nilai_probabilitas = get(handles.probabilitas_speckle,'value'); handles.nilai_probabilitas = round(nilai_probabilitas);
guidata(h,handles);
set(handles.txt_probabilitas_speckle,'string',handles.nilai_probabili tas);
function probabilitas_speckle_CreateFcn(hObject, eventdata, handles)
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]); end
function save_sap_Callback(hObject, eventdata, handles) [nama_file,nama_path] = uiputfile('*.bmp','save file'); nama_file_simpan=fullfile(nama_path,nama_file);
citra=getframe(handles.axes_saltandpepper); [x,map]=frame2im(citra);
if isempty(map) rgb = x;
else rgb = ind2rgb(x,map); end
imwrite(x,nama_file_simpan,'bmp');
function save_expo_reduction_Callback(hObject, eventdata, handles) [nama_file,nama_path] = uiputfile('*.bmp','save file');
nama_file_simpan=fullfile(nama_path,nama_file); citra=getframe(handles.axes_exponential_reduction); [x,map]=frame2im(citra);
if isempty(map) rgb = x;
else rgb = ind2rgb(x,map); end
imwrite(x,nama_file_simpan,'bmp');
function save_speckle_reduction_Callback(hObject, eventdata, handles) [nama_file,nama_path] = uiputfile('*.bmp','save file');
nama_file_simpan=fullfile(nama_path,nama_file); citra=getframe(handles.axes_speckle_reduction); [x,map]=frame2im(citra);
if isempty(map) rgb = x;
rgb = ind2rgb(x,map); end
imwrite(x,nama_file_simpan,'bmp');
function save_expo_Callback(hObject, eventdata, handles) [nama_file,nama_path] = uiputfile('*.bmp','save file'); nama_file_simpan=fullfile(nama_path,nama_file);
citra=getframe(handles.axes_exponential); [x,map]=frame2im(citra);
if isempty(map) rgb = x;
else rgb = ind2rgb(x,map); end
imwrite(x,nama_file_simpan,'bmp');
function save_speckle_Callback(hObject, eventdata, handles) [nama_file,nama_path] = uiputfile('*.bmp','save file'); nama_file_simpan=fullfile(nama_path,nama_file);
citra=getframe(handles.axes_speckle); [x,map]=frame2im(citra);
if isempty(map) rgb = x;
else rgb = ind2rgb(x,map); end
imwrite(x,nama_file_simpan,'bmp');
function save_sap_reduction_Callback(hObject, eventdata, handles) [nama_file,nama_path] = uiputfile('*.bmp','save file');
nama_file_simpan=fullfile(nama_path,nama_file); citra=getframe(handles.axes_sap_reduction); [x,map]=frame2im(citra);
if isempty(map) rgb = x;
else rgb = ind2rgb(x,map); end
imwrite(x,nama_file_simpan,'bmp');
function save_gauss_reduction_Callback(hObject, eventdata, handles) [nama_file,nama_path] = uiputfile('*.bmp','save file');
nama_file_simpan=fullfile(nama_path,nama_file); citra=getframe(handles.axes_gauss_reduction); [x,map]=frame2im(citra);
if isempty(map) rgb = x;
else rgb = ind2rgb(x,map); end
imwrite(x,nama_file_simpan,'bmp');
function varargout = save_gauss_Callback(h, eventdata, handles) [nama_file,nama_path] = uiputfile('*.bmp','save file');
nama_file_simpan=fullfile(nama_path,nama_file); citra=getframe(handles.axes_gaussian);
[x,map]=frame2im(citra); if isempty(map)
rgb = x;
rgb = ind2rgb(x,map); end
imwrite(x,nama_file_simpan,'bmp');
function reset_Callback(hObject, eventdata, handles) expo_reduction=handles.citra([]);
axes(handles.axes_exponential_reduction); imshow(expo_reduction);
set(handles.save_expo_reduction,'Enable','Off') set(handles.btn_expo_reduction,'Enable','Off') set(handles.btn_mse_expo_reduction,'Enable','Off') set(handles.btn_psnr_expo_reduction,'Enable','Off') set(handles.txt_mse_expo_reduction,'String',0); set(handles.txt_psnr_expo_reduction,'String',0); set(handles.txt_runtime_expo_reduction,'String',0);
speckle_reduction=handles.citra([]); axes(handles.axes_speckle_reduction); imshow(speckle_reduction);
set(handles.save_speckle_reduction,'Enable','Off') set(handles.btn_speckle_reduction,'Enable','Off') set(handles.btn_mse_speckle_reduction,'Enable','Off') set(handles.btn_psnr_speckle_reduction,'Enable','Off') set(handles.txt_mse_speckle_reduction,'String',0); set(handles.txt_psnr_speckle_reduction,'String',0); set(handles.txt_runtime_speckle_reduction,'String',0);
sap_reduction=handles.citra([]); axes(handles.axes_sap_reduction); imshow(sap_reduction);
set(handles.save_sap_reduction,'Enable','Off') set(handles.btn_sap_reduction,'Enable','Off') set(handles.btn_mse_sap_reduction,'Enable','Off') set(handles.btn_psnr_sap_reduction,'Enable','Off') set(handles.txt_mse_sap_reduction,'String',0); set(handles.txt_psnr_sap_reduction,'String',0); set(handles.txt_runtime_sap_reduction,'String',0);
gaussian_reduction=handles.citra([]); axes(handles.axes_gauss_reduction); imshow(gaussian_reduction);
set(handles.save_gauss_reduction,'Enable','Off') set(handles.btn_gauss_reduction,'Enable','Off') set(handles.btn_mse_gauss_reduction,'Enable','Off') set(handles.btn_psnr_gauss_reduction,'Enable','Off') set(handles.txt_mse_gauss_reduction,'String',0); set(handles.txt_psnr_gauss_reduction,'String',0); set(handles.txt_runtime_gauss_reduction,'String',0);
expo_noise=handles.citra([]); axes(handles.axes_exponential); imshow(expo_noise);
set(handles.save_expo,'Enable','Off') set(handles.btn_mse_expo,'Enable','Off') set(handles.btn_psnr_expo,'Enable','Off') set(handles.btn_expo,'Enable','On')
speckle_noise=handles.citra([]); axes(handles.axes_speckle); imshow(speckle_noise);
set(handles.save_speckle,'Enable','Off') set(handles.btn_mse_speckle,'Enable','Off') set(handles.btn_psnr_speckle,'Enable','Off') set(handles.btn_speckle,'Enable','On')
set(handles.txt_mse_speckle,'String',0); set(handles.txt_psnr_speckle,'String',0); set(handles.txt_runtime_speckle,'String',0);
sap_noise=handles.citra([]); axes(handles.axes_saltandpepper); imshow(sap_noise);
set(handles.save_sap,'Enable','Off')
set(handles.btn_mse_saltandpepper,'Enable','Off') set(handles.btn_psnr_saltandpepper,'Enable','Off') set(handles.btn_salt_and_pepper,'Enable','On') set(handles.txt_mse_saltandpepper,'String',0); set(handles.txt_psnr_saltandpepper,'String',0); set(handles.txt_runtime_saltandpepper,'String',0);
gaussian_noise=handles.citra([]); axes(handles.axes_gaussian); imshow(gaussian_noise);
set(handles.save_gauss,'Enable','Off')
set(handles.btn_mse_gaussian,'Enable','Off') set(handles.btn_psnr_gaussian,'Enable','Off') set(handles.gaus,'Enable','On')
set(handles.txt_mse_gaussian,'String',0); set(handles.txt_psnr_gaussian,'String',0); set(handles.txt_runtime_gaussian,'String',0);
set(handles.reset,'Enable','Off') set(handles.btn_clear,'Enable','On')
1.
Form
Perbandingan (Inputan Citra Tanpa
Noise)
function varargout = PROSES1(varargin) gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @PROSES1_OpeningFcn, ... 'gui_OutputFcn', @PROSES1_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
guidata(hObject, handles);
function varargout = PROSES1_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function btn_open_Callback(hObject, eventdata, handles) [nama_file, namaPath]=uigetfile({'*.bmp'},'Buka File'); if ~isequal (nama_file,0)
handles.citra=imread(fullfile(namaPath,nama_file)); guidata(hObject,handles);
axes(handles.citra_asli); imshow(handles.citra);
set(handles.filename,'String',nama_file);
set(handles.panjang,'String',size(handles.citra,1)); set(handles.lebar,'String',size(handles.citra,2)); else
return; end
set(handles.btn_open,'Enable','Off') set(handles.btn_clear,'Enable','On') set(handles.pilih_noise,'Enable','On')
function filename_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function panjang_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function lebar_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function btn_mainmenu_Callback(hObject, eventdata, handles) HOME;
close(gcbf);
function btn_noise_Callback(hObject, eventdata, handles) global runtime;
runtime=cputime;
P=str2double(get(handles.txt_probabilitas,'string')); P=P/100;
popup_sel_index = get(handles.pilih_noise, 'Value'); switch popup_sel_index
case 1
case 2
I = handles.citra;
noise = fungsigaussian(I, P); handles.citra= noise;
axes(handles.axes_noise); imshow(handles.citra); runtime=cputime-runtime;
set(handles.txt_runtime_noise,'String',runtime); case 3
I = handles.citra;
noise = fungsisaltandpepper(I, P); handles.citra= noise;
axes(handles.axes_noise); imshow(handles.citra); runtime=cputime-runtime;
set(handles.txt_runtime_noise,'String',runtime); case 4
I = handles.citra;
noise = fungsispeckle(I, P); handles.citra=noise;
axes(handles.axes_noise); imshow(handles.citra); runtime=cputime-runtime;
set(handles.txt_runtime_noise,'String',runtime); case 5
I = handles.citra;
noise =fungsiexponential(I, P); handles.citra=noise;
axes(handles.axes_noise); imshow(handles.citra); runtime=cputime-runtime;
set(handles.txt_runtime_noise,'String',runtime); end
set(handles.btn_noise,'Enable','Off') set(handles.reset,'Enable','On') set(handles.save_noise,'Enable','On') set(handles.btn_mse_noise,'Enable','On') set(handles.btn_psnr_noise,'Enable','On') set(handles.btn_clear,'Enable','Off') set(handles.btn_mean,'Enable','On') set(handles.btn_median,'Enable','On') set(handles.btn_combined,'Enable','On')
function btn_mse_noise_Callback(hObject, eventdata, handles) citra = getimage(handles.citra_asli);
citra_hasil=getimage(handles.axes_noise);
[psnrval mseval] = MSE_PSNR(citra,citra_hasil); set(handles.txt_mse_noise,'String',mseval);
function btn_psnr_noise_Callback(hObject, eventdata, handles) citra = getimage(handles.citra_asli);
citra_hasil=getimage(handles.axes_noise);
[psnrval mseval] = MSE_PSNR(citra,citra_hasil); set(handles.txt_psnr_noise,'String',psnrval);
function btn_runtime_noise_Callback(hObject, eventdata, handles) global runtime;
set(handles.txt_runtime_noise,'String',runtime);
function txt_mse_noise_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_psnr_noise_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_runtime_noise_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function varargout = probabilitas_Callback(h, eventdata, handles) nilai_probabilitas = get(handles.probabilitas,'value');
handles.nilai_probabilitas = round(nilai_probabilitas); guidata(h,handles);
set(handles.txt_probabilitas,'string',handles.nilai_probabilitas);
function probabilitas_CreateFcn(hObject, eventdata, handles)
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]); end
function txt_probabilitas_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function btn_combined_Callback(hObject, eventdata, handles) global runtime;
runtime=cputime;
citra_asli = getimage(handles.axes_noise); temp=citra_asli;
[b k c]=size(temp); for x=1:1:b
for y=1:1:k for z=1:1:c try
matriks(1,1)=temp(x-1,y-1,z); catch
matriks(1,1)=0; end
try
matriks(1,2)=0; end
try
matriks(1,3)=temp(x-1,y+1,z); catch
matriks(1,3)=0; end
try
matriks(2,1)=temp(x,y-1,z); catch
matriks(2,1)=0; end
try
matriks(2,2)=temp(x,y,z); catch
matriks(2,2)=0; end
try
matriks(2,3)=temp(x,y+1,z); catch
matriks(2,3)=0; end
try
matriks(3,1)=temp(x+1,y-1,z); catch
matriks(3,1)=0; end
try
matriks(3,2)=temp(x+1,y,z); catch
matriks(3,2)=0; end
try
matriks(3,3)=temp(x+1,y+1,z); catch
matriks(3,3)=0; end
filtered(x,y,z)=(mean(mean(matriks))+median(median(matriks)))/2; end
end end
filtered=uint8(filtered); handles.citra=filtered;
axes(handles.axes_meanmedian); imshow(handles.citra);
runtime=cputime-runtime;
set(handles.txt_runtime_combined,'String',runtime); set(handles.btn_combined,'Enable','Off')
set(handles.save_combine,'Enable','On') set(handles.btn_mse_combined,'Enable','On') set(handles.btn_psnr_combined,'Enable','On')
function btn_mean_Callback(hObject, eventdata, handles) global runtime;
runtime=cputime;
citra_asli = getimage(handles.axes_noise); temp=citra_asli;
for x=1:1:b for y=1:1:k for z=1:1:c try
matriks(1,1)=temp(x-1,y-1,z); catch
matriks(1,1)=0; end
try
matriks(1,2)=temp(x-1,y,z); catch
matriks(1,2)=0; end
try
matriks(1,3)=temp(x-1,y+1,z); catch
matriks(1,3)=0; end
try
matriks(2,1)=temp(x,y-1,z); catch
matriks(2,1)=0; end
try
matriks(2,2)=temp(x,y,z); catch
matriks(2,2)=0; end
try
matriks(2,3)=temp(x,y+1,z); catch
matriks(2,3)=0; end
try
matriks(3,1)=temp(x+1,y-1,z); catch
matriks(3,1)=0; end
try
matriks(3,2)=temp(x+1,y,z); catch
matriks(3,2)=0; end
try
matriks(3,3)=temp(x+1,y+1,z); catch
matriks(3,3)=0; end
filtered(x,y,z)=mean(mean(matriks)); end
end end
filtered=uint8(filtered); handles.citra=filtered;
axes(handles.axes_meanfilter); imshow(handles.citra);
runtime=cputime-runtime;
set(handles.txt_runtime_mean,'String',runtime); set(handles.btn_mean,'Enable','Off')
set(handles.btn_mse_mean,'Enable','On') set(handles.btn_psnr_mean,'Enable','On')
function btn_median_Callback(hObject, eventdata, handles) global runtime;
runtime=cputime;
citra_asli = getimage(handles.axes_noise); temp=citra_asli;
[b k c]=size(temp); for x=1:1:b
for y=1:1:k for z=1:1:c try
matriks(1,1)=temp(x-1,y-1,z); catch
matriks(1,1)=0; end
try
matriks(1,2)=temp(x-1,y,z); catch
matriks(1,2)=0; end
try
matriks(1,3)=temp(x-1,y+1,z); catch
matriks(1,3)=0; end
try
matriks(2,1)=temp(x,y-1,z); catch
matriks(2,1)=0; end
try
matriks(2,2)=temp(x,y,z); catch
matriks(2,2)=0; end
try
matriks(2,3)=temp(x,y+1,z); catch
matriks(2,3)=0; end
try
matriks(3,1)=temp(x+1,y-1,z); catch
matriks(3,1)=0; end
try
matriks(3,2)=temp(x+1,y,z); catch
matriks(3,2)=0; end
try
matriks(3,3)=temp(x+1,y+1,z); catch
matriks(3,3)=0; end
filtered(x,y,z)= median(median(matriks)); end
end
filtered=uint8(filtered); handles.citra=filtered;
axes(handles.axes_medianfilter); imshow(handles.citra);
runtime=cputime-runtime;
set(handles.txt_runtime_median,'String',runtime); set(handles.btn_median,'Enable','Off')
set(handles.save_median,'Enable','On') set(handles.btn_mse_median,'Enable','On') set(handles.btn_psnr_median,'Enable','On')
function btn_mse_median_Callback(hObject, eventdata, handles) citra = getimage(handles.axes_noise);
citra_hasil=getimage(handles.axes_medianfilter); [psnrval mseval] = MSE_PSNR(citra,citra_hasil); set(handles.txt_mse_median,'String',mseval);
function btn_psnr_median_Callback(hObject, eventdata, handles) citra = getimage(handles.axes_noise);
citra_hasil=getimage(handles.axes_medianfilter); [psnrval mseval] = MSE_PSNR(citra,citra_hasil); set(handles.txt_psnr_median,'String',psnrval);
function btn_runtime_median_Callback(hObject, eventdata, handles) global runtime;
set(handles.txt_runtime_median,'String',runtime);
function txt_mse_median_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_psnr_median_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_runtime_median_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function btn_mse_mean_Callback(hObject, eventdata, handles) citra = getimage(handles.axes_noise);
citra_hasil=getimage(handles.axes_meanfilter); [psnrval mseval] = MSE_PSNR(citra,citra_hasil); set(handles.txt_mse_mean,'String',mseval);
function btn_psnr_mean_Callback(hObject, eventdata, handles) citra = getimage(handles.axes_noise);
[psnrval mseval] = MSE_PSNR(citra,citra_hasil); set(handles.txt_psnr_mean,'String',psnrval);
function btn_runtime_mean_Callback(hObject, eventdata, handles) global runtime;
set(handles.txt_runtime_mean,'String',runtime);
function txt_mse_mean_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_psnr_mean_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function txt_runtime_mean_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function btn_mse_combined_Callback(hObject, eventdata, handles) citra = getimage(handles.axes_noise);
citra_hasil=getimage(handles.axes_meanmedian); [psnrval mseval] = MSE_PSNR(citra,citra_hasil); set(handles.txt_mse_combined,'String',mseval);
function btn_psnr_combined_Callback(hObject, eventdata, handles) citra = getimage(handles.axes_noise);
citra_hasil=getimage(handles.axes_meanmedian); [psnrval mseval] = MSE_PSNR(citra,citra_hasil); set(handles.txt_psnr_combined,'String',psnrval);
function txt_mse_combined_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_psnr_combined_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_runtime_combined_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function pilih_noise_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function btn_clear_Callback(hObject, eventdata, handles) handles.citra=handles.citra([]);
axes(handles.citra_asli); imshow(handles.citra);
set(handles.pilih_noise,'Enable','Off') set(handles.btn_noise,'Enable','On') set(handles.btn_clear,'Enable','Off') set(handles.btn_open,'Enable','On') set(handles.filename,'string',' '); set(handles.panjang,'string',' '); set(handles.lebar,'string',' ');
function save_combine_Callback(hObject, eventdata, handles) [nama_file,nama_path] = uiputfile('*.bmp','save file'); nama_file_simpan=fullfile(nama_path,nama_file);
citra=getframe(handles.axes_meanmedian); [x,map]=frame2im(citra);
if isempty(map) rgb = x;
else rgb = ind2rgb(x,map); end
imwrite(x,nama_file_simpan,'bmp');
function save_mean_Callback(hObject, eventdata, handles) [nama_file,nama_path] = uiputfile('*.bmp','save file'); nama_file_simpan=fullfile(nama_path,nama_file);
citra=getframe(handles.axes_meanfilter); [x,map]=frame2im(citra);
if isempty(map) rgb = x;
else rgb = ind2rgb(x,map); end
imwrite(x,nama_file_simpan,'bmp');
function save_median_Callback(hObject, eventdata, handles) [nama_file,nama_path] = uiputfile('*.bmp','save file'); nama_file_simpan=fullfile(nama_path,nama_file);
citra=getframe(handles.axes_medianfilter); [x,map]=frame2im(citra);
if isempty(map) rgb = x;
else rgb = ind2rgb(x,map); end
imwrite(x,nama_file_simpan,'bmp');
function save_noise_Callback(hObject, eventdata, handles) [nama_file,nama_path] = uiputfile('*.bmp','save file'); nama_file_simpan=fullfile(nama_path,nama_file);
citra=getframe(handles.axes_noise); [x,map]=frame2im(citra);
rgb = x;
else rgb = ind2rgb(x,map); end
imwrite(x,nama_file_simpan,'bmp');
function reset_Callback(hObject, eventdata, handles) citra_combine=handles.citra([]);
axes(handles.axes_meanmedian); imshow(citra_combine);
citra_median=handles.citra([]); axes(handles.axes_medianfilter); imshow(citra_median);
citra_mean=handles.citra([]); axes(handles.axes_meanfilter); imshow(citra_mean);
citra_noise=handles.citra([]); axes(handles.axes_noise); imshow(citra_noise);
set(handles.reset,'Enable','Off') set(handles.save_noise,'Enable','Off') set(handles.btn_mse_noise,'Enable','Off') set(handles.btn_psnr_noise,'Enable','Off') set(handles.btn_mse_mean,'Enable','Off') set(handles.btn_psnr_mean,'Enable','Off') set(handles.btn_mse_median,'Enable','Off') set(handles.btn_psnr_median,'Enable','Off') set(handles.btn_mse_combined,'Enable','Off') set(handles.btn_psnr_combined,'Enable','Off') set(handles.btn_noise,'Enable','On')
set(handles.btn_clear,'Enable','On') set(handles.btn_mean,'Enable','Off') set(handles.btn_median,'Enable','Off') set(handles.btn_combined,'Enable','Off') set(handles.save_mean,'Enable','Off') set(handles.save_median,'Enable','Off') set(handles.save_combine,'Enable','Off')
set(handles.txt_mse_noise,'String',0); set(handles.txt_psnr_noise,'String',0); set(handles.txt_runtime_noise,'String',0); set(handles.txt_mse_mean,'String',0); set(handles.txt_psnr_mean,'String',0); set(handles.txt_runtime_mean,'String',0); set(handles.txt_mse_median,'String',0); set(handles.txt_psnr_median,'String',0); set(handles.txt_runtime_median,'String',0); set(handles.txt_mse_combined,'String',0); set(handles.txt_psnr_combined,'String',0); set(handles.txt_runtime_combined,'String',0);
4.
Form
Perbandingan (
Input
-an Citra Ber-
noise
)
function varargout = PROSES2(varargin) gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @PROSES2_OpeningFcn, ... 'gui_OutputFcn', @PROSES2_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
function PROSES2_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;
guidata(hObject, handles);
function varargout = PROSES2_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function btn_open_Callback(hObject, eventdata, handles) [nama_file, namaPath]=uigetfile({'*.bmp'},'Buka File'); if ~isequal (nama_file,0)
handles.citra=imread(fullfile(namaPath,nama_file)); guidata(hObject,handles);
axes(handles.citra_noise); imshow(handles.citra);
set(handles.filename,'String',nama_file);
set(handles.panjang,'String',size(handles.citra,1)); set(handles.lebar,'String',size(handles.citra,2)); else
return; end
set(handles.btn_open,'Enable','Off') set(handles.btn_clear,'Enable','On') set(handles.btn_mean,'Enable','On') set(handles.btn_median,'Enable','On') set(handles.btn_combined,'Enable','On')
function filename_Callback(hObject, eventdata, handles) function filename_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function lebar_Callback(hObject, eventdata, handles) function lebar_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function btn_mainmenu_Callback(hObject, eventdata, handles) HOME;
close(gcbf);
function btn_combined_Callback(hObject, eventdata, handles) global runtime;
runtime=cputime;
citra_asli = getimage(handles.citra_noise); temp=citra_asli;
[b k c]=size(temp); for x=1:1:b
for y=1:1:k for z=1:1:c try
matriks(1,1)=temp(x-1,y-1,z); catch
matriks(1,1)=0; end
try
matriks(1,2)=temp(x-1,y,z); catch
matriks(1,2)=0; end
try
matriks(1,3)=temp(x-1,y+1,z); catch
matriks(1,3)=0; end
try
matriks(2,1)=temp(x,y-1,z); catch
matriks(2,1)=0; end
try
matriks(2,2)=temp(x,y,z); catch
matriks(2,2)=0; end
try
matriks(2,3)=temp(x,y+1,z); catch
matriks(2,3)=0; end
try
matriks(3,1)=temp(x+1,y-1,z); catch
matriks(3,1)=0; end
matriks(3,2)=temp(x+1,y,z); catch
matriks(3,2)=0; end
try
matriks(3,3)=temp(x+1,y+1,z); catch
matriks(3,3)=0; end
filtered(x,y,z)=(mean(mean(matriks))+median(median(matriks)))/2; end
end end
filtered=uint8(filtered); handles.citra=filtered;
axes(handles.axes_meanmedian); imshow(handles.citra);
runtime=cputime-runtime;
set(handles.txt_runtime_combined,'String',runtime); set(handles.btn_combined,'Enable','Off')
set(handles.save_combine,'Enable','On') set(handles.btn_mse_combined,'Enable','On') set(handles.btn_psnr_combined,'Enable','On')
function btn_mean_Callback(hObject, eventdata, handles) global runtime;
runtime=cputime;
citra_asli = getimage(handles.citra_noise); temp=citra_asli;
[b k c]=size(temp); for x=1:1:b
for y=1:1:k for z=1:1:c try
matriks(1,1)=temp(x-1,y-1,z); catch
matriks(1,1)=0; end
try
matriks(1,2)=temp(x-1,y,z); catch
matriks(1,2)=0; end
try
matriks(1,3)=temp(x-1,y+1,z); catch
matriks(1,3)=0; end
try
matriks(2,1)=temp(x,y-1,z); catch
matriks(2,1)=0; end
try
matriks(2,2)=temp(x,y,z); catch
try
matriks(2,3)=temp(x,y+1,z); catch
matriks(2,3)=0; end
try
matriks(3,1)=temp(x+1,y-1,z); catch
matriks(3,1)=0; end
try
matriks(3,2)=temp(x+1,y,z); catch
matriks(3,2)=0; end
try
matriks(3,3)=temp(x+1,y+1,z); catch
matriks(3,3)=0; end
filtered(x,y,z)=mean(mean(matriks)); end
end end
filtered=uint8(filtered); handles.citra=filtered;
axes(handles.axes_meanfilter); imshow(handles.citra);
runtime=cputime-runtime;
set(handles.txt_runtime_mean,'String',runtime); set(handles.btn_mean,'Enable','Off')
set(handles.save_mean,'Enable','On') set(handles.btn_mse_mean,'Enable','On') set(handles.btn_psnr_mean,'Enable','On')
function btn_median_Callback(hObject, eventdata, handles) global runtime;
runtime=cputime;
citra_asli = getimage(handles.citra_noise); temp=citra_asli;
[b k c]=size(temp); for x=1:1:b
for y=1:1:k for z=1:1:c try
matriks(1,1)=temp(x-1,y-1,z); catch
matriks(1,1)=0; end
try
matriks(1,2)=temp(x-1,y,z); catch
matriks(1,2)=0; end
try
matriks(1,3)=temp(x-1,y+1,z); catch
matriks(1,3)=0; end
matriks(2,1)=temp(x,y-1,z); catch
matriks(2,1)=0; end
try
matriks(2,2)=temp(x,y,z); catch
matriks(2,2)=0; end
try
matriks(2,3)=temp(x,y+1,z); catch
matriks(2,3)=0; end
try
matriks(3,1)=temp(x+1,y-1,z); catch
matriks(3,1)=0; end
try
matriks(3,2)=temp(x+1,y,z); catch
matriks(3,2)=0; end
try
matriks(3,3)=temp(x+1,y+1,z); catch
matriks(3,3)=0; end
filtered(x,y,z)= median(median(matriks)); end
end end
filtered=uint8(filtered); handles.citra=filtered;
axes(handles.axes_medianfilter); imshow(handles.citra);
runtime=cputime-runtime;
set(handles.txt_runtime_median,'String',runtime); set(handles.btn_median,'Enable','Off')
set(handles.save_median,'Enable','On') set(handles.btn_mse_median,'Enable','On') set(handles.btn_psnr_median,'Enable','On')
function btn_mse_median_Callback(hObject, eventdata, handles) citra = getimage(handles.citra_noise);
citra_hasil=getimage(handles.axes_medianfilter); [psnrval mseval] = MSE_PSNR(citra,citra_hasil); set(handles.txt_mse_median,'String',mseval);
function btn_psnr_median_Callback(hObject, eventdata, handles) citra = getimage(handles.citra_noise);
citra_hasil=getimage(handles.axes_medianfilter); [psnrval mseval] = MSE_PSNR(citra,citra_hasil); set(handles.txt_psnr_median,'String',psnrval);
global runtime;
set(handles.txt_runtime_median,'String',runtime);
function txt_mse_median_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_psnr_median_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_runtime_median_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function btn_mse_mean_Callback(hObject, eventdata, handles) citra = getimage(handles.citra_noise);
citra_hasil=getimage(handles.axes_meanfilter); [psnrval mseval] = MSE_PSNR(citra,citra_hasil); set(handles.txt_mse_mean,'String',mseval);
function btn_psnr_mean_Callback(hObject, eventdata, handles) citra = getimage(handles.citra_noise);
citra_hasil=getimage(handles.axes_meanfilter); [psnrval mseval] = MSE_PSNR(citra,citra_hasil); set(handles.txt_psnr_mean,'String',psnrval);
function btn_runtime_mean_Callback(hObject, eventdata, handles) global runtime;
set(handles.txt_runtime_mean,'String',runtime);
function txt_mse_mean_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_psnr_mean_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function btn_mse_combined_Callback(hObject, eventdata, handles) citra = getimage(handles.citra_noise);
citra_hasil=getimage(handles.axes_meanmedian); [psnrval mseval] = MSE_PSNR(citra,citra_hasil); set(handles.txt_mse_combined,'String',mseval);
function btn_psnr_combined_Callback(hObject, eventdata, handles) citra = getimage(handles.citra_noise);
citra_hasil=getimage(handles.axes_meanmedian); [psnrval mseval] = MSE_PSNR(citra,citra_hasil); set(handles.txt_psnr_combined,'String',psnrval);
function btn_runtime_combined_Callback(hObject, eventdata, handles) global runtime;
set(handles.txt_runtime_combined,'String',runtime);
function txt_mse_combined_Callback(hObject, eventdata, handles)
function txt_mse_combined_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_psnr_combined_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_runtime_combined_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function btn_clear_Callback(hObject, eventdata, handles) citra_combine=handles.citra([]);
axes(handles.axes_meanmedian); imshow(citra_combine);
citra_median=handles.citra([]); axes(handles.axes_medianfilter); imshow(citra_median);
handles.citra=handles.citra([]); axes(handles.citra_noise);
imshow(handles.citra);
set(handles.btn_clear,'Enable','Off') set(handles.btn_mean,'Enable','Off') set(handles.btn_median,'Enable','Off') set(handles.btn_combined,'Enable','Off') set(handles.btn_mse_mean,'Enable','Off') set(handles.btn_psnr_mean,'Enable','Off') set(handles.btn_mse_median,'Enable','Off') set(handles.btn_psnr_median,'Enable','Off') set(handles.btn_mse_combined,'Enable','Off') set(handles.btn_psnr_combined,'Enable','Off') set(handles.save_mean,'Enable','Off')
set(handles.save_median,'Enable','Off') set(handles.save_combine,'Enable','Off') set(handles.txt_mse_mean,'String',0); set(handles.txt_psnr_mean,'String',0); set(handles.txt_runtime_mean,'String',0); set(handles.txt_mse_median,'String',0); set(handles.txt_psnr_median,'String',0); set(handles.txt_runtime_median,'String',0); set(handles.txt_mse_combined,'String',0); set(handles.txt_psnr_combined,'String',0); set(handles.txt_runtime_combined,'String',0);
function txt_probabilitas_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function switch_noise_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function slider_noise_Callback(hObject, eventdata, handles)
function slider_noise_CreateFcn(hObject, eventdata, handles)
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]); end
function txt_mse_noise_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function txt_rt_noise_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function save_combine_Callback(hObject, eventdata, handles) [nama_file,nama_path] = uiputfile('*.bmp','save file'); nama_file_simpan=fullfile(nama_path,nama_file);
citra=getframe(handles.axes_meanmedian); [x,map]=frame2im(citra);
if isempty(map) rgb = x;
else rgb = ind2rgb(x,map); end
imwrite(x,nama_file_simpan,'bmp');
function save_mean_Callback(hObject, eventdata, handles) [nama_file,nama_path] = uiputfile('*.bmp','save file'); nama_file_simpan=fullfile(nama_path,nama_file);
citra=getframe(handles.axes_meanfilter); [x,map]=frame2im(citra);
if isempty(map) rgb = x;
else rgb = ind2rgb(x,map); end
imwrite(x,nama_file_simpan,'bmp');
function save_median_Callback(hObject, eventdata, handles) [nama_file,nama_path] = uiputfile('*.bmp','save file'); nama_file_simpan=fullfile(nama_path,nama_file);
citra=getframe(handles.axes_medianfilter); [x,map]=frame2im(citra);
if isempty(map) rgb = x;
else rgb = ind2rgb(x,map); end
imwrite(x,nama_file_simpan,'bmp');
5.
Form
About
function varargout = ABOUT(varargin) gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @ABOUT_OpeningFcn, ... 'gui_OutputFcn', @ABOUT_OutputFcn, ... 'gui_LayoutFcn', [], ...
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
function ABOUT_OpeningFcn(hObject, eventdata, handles, varargin) citra=imread('fadil.bmp');
axes(handles.foto_programmer); imshow(citra);
handles.output = hObject; guidata(hObject, handles);
function varargout = ABOUT_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;
function btn_mainmenu_Callback(hObject, eventdata, handles) HOME;
close(gcbf);
6.
Form
Help
function varargout =HELP(varargin) gui_Singleton = 1;
gui_State = 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
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else
gui_mainfcn(gui_State, varargin{:}); end
function HELP_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;
guidata(hObject, handles);
function varargout = HELP_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;
function btn_mainmenu_Callback(hObject, eventdata, handles) HOME;