LISTING PROGRAM
// Source Code form utama.m
function varargout = utama(varargin)
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @utama_OpeningFcn, ...
'gui_OutputFcn', @utama_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
% End initialization code - DO NOT EDIT
% --- Executes just before utama is made visible.
function utama_OpeningFcn(hObject, eventdata, handles, varargin) citra=imread('fasilkom-TI.jpg');
axes(handles.logo_fklts); imshow(citra);
% Choose default command line output for utama
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
desc
close utama;
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
// Source Code form pengujian.m
function varargout = pengujian(varargin)
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @pengujian_OpeningFcn, ...
'gui_OutputFcn', @pengujian_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
% End initialization code - DO NOT EDIT
% --- Executes on button press in tombolbuka1.
%function tombolbuka1_Callback(hObject, eventdata, handles) function varargout = tombolbuka1_Callback(hObject, eventdata, handles) %variabel_keluaran
[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);
else
return;
end
% --- Executes on button press in tombol_gsc.
function tombol_gsc_Callback(hObject, eventdata, handles) I = handles.citra ;
%I_noise = rgb2gray(I);
citra_double = double(I); [b k c]= size(citra_double);
for x=1:b
for y=1:k
semua =
citra_double(x,y,1)+citra_double(x,y,2)+citra_double(x,y,3); gr(x,y)=semua / 3;
end end
gr = uint8(gr);
% --- Executes on button press in tombol_noise1. Gamma Noise function tombol_noise1_Callback(hObject, eventdata, handles)
I = getimage(handles.axes_gsc); [m, n] = size(I);
a = 2;
b = str2double(get(handles.txt_gam,'string'))*7;
alpha = b;
% --- Executes on button press in tombol_noise2.Rayleigh Noise function tombol_noise2_Callback(hObject, eventdata, handles)
I = getimage(handles.axes_gsc); a = 1;
b = str2double(get(handles.txt_ray,'string'))*7; [m, n] = size(I);
% --- Executes on button press in button_save1.
function button_save1_Callback(hObject, eventdata, handles) S = getimage(handles.axes_gamma);
[nama_save_file, path_save]=uiputfile('*.jpg','Simpan Citra'); nama_file_simpan=fullfile(path_save,nama_save_file);
% --- Executes on button press in button_save2.
function button_save2_Callback(hObject, eventdata, handles)
S = getimage(handles.axes_ray);
[nama_save_file, path_save]=uiputfile('*.jpg','Simpan Citra');
nama_file_simpan=fullfile(path_save,nama_save_file); imwrite(S,nama_file_simpan,'jpg');
% --- Executes on button press in btnWeight.
function btnWeight_Callback(hObject, eventdata, handles)
global runtime; runtime=cputime; disp('ongoing');
if strcmp(handles.noise, 'radio_gamma');
noise_image = getimage(handles.axes_gamma);
else
noise_image = getimage(handles.axes_ray);
end
G = wmfilter(noise_image,handles); disp('end');
axes(handles.axes_weighted); imshow(G);
runtime=cputime-runtime;
set(handles.txt_runtime_weighted,'String',runtime);
% --- Executes on button press in btnHarmonic.
function btnHarmonic_Callback(hObject, eventdata, handles)
global runtime; runtime=cputime; disp('ongoing');
if strcmp(handles.noise, 'radio_gamma');
noise_image = getimage(handles.axes_gamma);
else
noise_image = getimage(handles.axes_ray);
end
G = hrmfilter(noise_image,handles); disp('end');
axes(handles.axes_harmonic); imshow(G);
runtime=cputime-runtime;
set(handles.txt_runtime_harmonic,'String',runtime);
function G = wmfilter(myimage,handles) array_bobot = [1 2 1; 2 3 2; 1 2 1]; jumlah_bobot = sum(sum(array_bobot)); myimage = uint8(myimage);
[m, n] = size(myimage); ukuran = 3;
setengah = floor(ukuran / 2); I = double(myimage);
G = zeros(m,n);
end
pixel_hasil = jum_meanL / jumlah_bobot; G(i, j) = pixel_hasil;
end end
G = uint8(G);
function G = hrmfilter(myimage,handles)
myimage = uint8(myimage); [m, n] = size(myimage); ukuran = 3;
pembilang = ukuran * ukuran; setengah = floor(ukuran / 2); I = double(myimage);
G = zeros(m,n);
for i=1+setengah : m-setengah for j=1+setengah: n-setengah jum_mean = 0;
% penjumlahan total submatriks * bobot
for p = -setengah : setengah %citrahasil
for q = -setengah : setengah
jum_mean = jum_mean + (1 / I(i+p, j+q)); end
end
pixel_hasil = pembilang / jum_mean; G(i, j) = pixel_hasil;
end end
G = uint8(G); disp(G);
% --- Executes on button press in pushbutton11.
function pushbutton11_Callback(hObject, eventdata, handles) utama
close pengujian;
% --- Executes when selected object is changed in uipanel10.
function uipanel10_SelectionChangeFcn(hObject, eventdata, handles) handles.noise = get(eventdata.NewValue, 'Tag');
guidata(hObject, handles);
% --- Executes during object creation, after setting all properties. function uipanel10_CreateFcn(hObject, eventdata, handles)
handles.noise = 'radio_gamma'; guidata(hObject, handles);
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
% --- Executes on button press in button_mse2.
function button_mse2_Callback(hObject, eventdata, handles)
citra = getimage(handles.axes_gsc); citra_hasil=getimage(handles.axes_ray);
mse = (double(citra)- double(citra_hasil)) .^ 2; [m n] = size(citra_hasil);
nilai = sum(mse(:)) / (m * n); set(handles.txt_mse2,'String',nilai);
% --- Executes on button press in button_psnr2.
function button_psnr2_Callback(hObject, eventdata, handles) citra = getimage(handles.axes_gsc);
citra_hasil=getimage(handles.axes_ray);
mse = (double(citra)- double(citra_hasil)) .^ 2; [m n] = size(citra_hasil);
nilai_mse = sum(mse(:)) / (m * n);
nilai_psnr = 10 * log10( 255^2 / nilai_mse); set(handles.txt_psnr2,'String',nilai_psnr);
% --- Executes on button press in button_mse.
function button_mse_Callback(hObject, eventdata, handles)
citra = getimage(handles.axes_gsc);
citra_hasil=getimage(handles.axes_gamma);
mse = (double(citra)- double(citra_hasil)) .^ 2; [m n] = size(citra_hasil);
nilai = sum(mse(:)) / (m * n); set(handles.txt_mse,'String',nilai);
% --- Executes on button press in button_psnr.
function button_psnr_Callback(hObject, eventdata, handles) citra = getimage(handles.axes_gsc);
citra_hasil=getimage(handles.axes_gamma);
mse = (double(citra)- double(citra_hasil)) .^ 2; [m n] = size(citra_hasil);
nilai_mse = sum(mse(:)) / (m * n);
nilai_psnr = 10 * log10( 255^2 / nilai_mse); set(handles.txt_psnr,'String',nilai_psnr);
% --- Executes on slider movement.
function prob_gamma_Callback(h, eventdata, handles) nilai_prob = get(handles.prob_gamma,'value');
handles.nilai_prob = round(nilai_prob); guidata(h,handles);
set(handles.txt_gam, 'string',handles.nilai_prob);
% --- Executes during object creation, after setting all properties. function prob_gamma_CreateFcn(hObject, eventdata, handles)
% hObject handle to prob_gamma (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
% Hint: slider controls usually have a light gray background. if isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]);
% --- Executes on slider movement.
function prob_ray_Callback(h, eventdata, handles)
nilai_prob = get(handles.prob_ray,'value'); handles.nilai_prob = round(nilai_prob); guidata(h,handles);
set(handles.txt_ray, 'string',handles.nilai_prob);
% --- Executes during object creation, after setting all properties. function prob_ray_CreateFcn(hObject, eventdata, handles)
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]);
end
% --- Executes during object creation, after setting all properties. function txt_ray_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
% --- Executes during object creation, after setting all properties. function txt_mse2_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function txt_psnr2_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in button_msehasil.
function button_msehasil_Callback(hObject, eventdata, handles) if strcmp(handles.noise, 'radio_gamma');
citra = getimage(handles.axes_gamma);
else
end
citra_hasil=getimage(handles.axes_weighted); mse = (double(citra)- double(citra_hasil)) .^ 2; [m n] = size(citra_hasil);
nilai = sum(mse(:)) / (m * n);
set(handles.txt_msehasil,'String',nilai);
function txt_msehasil_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in button_psnrhasil.
function button_psnrhasil_Callback(hObject, eventdata, handles) if strcmp(handles.noise, 'radio_gamma');
citra = getimage(handles.axes_gamma);
else
citra = getimage(handles.axes_ray);
end
citra_hasil=getimage(handles.axes_weighted); mse = (double(citra)- double(citra_hasil)) .^ 2; [m n] = size(citra_hasil);
nilai_mse = sum(mse(:)) / (m * n);
nilai_psnr = 10 * log10( 255^2 / nilai_mse); set(handles.txt_psnrhasil,'String',nilai_psnr);
% --- Executes during object creation, after setting all properties. function txt_psnrhasil_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in button_msehasil2.
function button_msehasil2_Callback(hObject, eventdata, handles)
if strcmp(handles.noise, 'radio_gamma'); citra = getimage(handles.axes_gamma);
else
citra = getimage(handles.axes_ray);
end
citra_hasil=getimage(handles.axes_harmonic); mse = (double(citra)- double(citra_hasil)) .^ 2; [m n] = size(citra_hasil);
nilai = sum(mse(:)) / (m * n);
set(handles.txt_msehasil2,'String',nilai);
% --- Executes on button press in button_psnrhasil2.
function button_psnrhasil2_Callback(hObject, eventdata, handles) if strcmp(handles.noise, 'radio_gamma');
citra = getimage(handles.axes_gamma);
citra = getimage(handles.axes_ray);
end
citra_hasil=getimage(handles.axes_harmonic); mse = (double(citra)- double(citra_hasil)) .^ 2; [m n] = size(citra_hasil);
nilai_mse = sum(mse(:)) / (m * n);
nilai_psnr = 10 * log10( 255^2 / nilai_mse); set(handles.txt_psnrhasil2,'String',nilai_psnr);
function txt_msehasil2_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function txt_psnrhasil2_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in pushbutton20.
function pushbutton20_Callback(hObject, eventdata, handles) S = getimage(handles.axes_weighted);
[nama_save_file, path_save]=uiputfile('*.jpg','Simpan Citra'); nama_file_simpan=fullfile(path_save,nama_save_file);
imwrite(S,nama_file_simpan,'jpg');
% --- Executes on button press in pushbutton21.
function pushbutton21_Callback(hObject, eventdata, handles) S = getimage(handles.axes_harmonic);
[nama_save_file, path_save]=uiputfile('*.jpg','Simpan Citra'); nama_file_simpan=fullfile(path_save,nama_save_file);
imwrite(S,nama_file_simpan,'jpg');
% --- Executes during object creation, after setting all properties. function txt_runtime_weighted_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
% --- Executes during object creation, after setting all properties. function txt_runtime_harmonic_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');
// Source Code form desc.m
function varargout = desc(varargin)
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @desc_OpeningFcn, ...
'gui_OutputFcn', @desc_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
% End initialization code - DO NOT EDIT
% --- Executes just before desc is made visible.
function desc_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% --- Outputs from this function are returned to the command line. function varargout = desc_OutputFcn(hObject, eventdata, handles)
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles) utama
CURRICULUM VITAE
Wahyu Eko Putra
wahyudefa19