LISTING PROGRAM
1.
Form Awal
function FormAwal_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject; guidata(hObject, handles);
function varargout = FormAwal_OutputFcn(hObject, eventdata, handles)
citra_asli=imread('logo_usu.jpg'); citra_hasil=double(citra_asli); citra_hasil=uint8(citra_hasil); axes(handles.axes1);
imshow(citra_hasil);
varargout{1} = handles.output;
function Wiener_Callback(hObject, eventdata, handles) Tesku
close FormAwal;
function Blind_Deconvolotion_Callback(hObject, eventdata, handles)
BlindDeconvolution close FormAwal;
function Bantuan_Callback(hObject, eventdata, handles) Bantuan
close FormAwal;
function Keluar_Callback(hObject, eventdata, handles) selection=questdlg(['Anda Ingin Keluar'],...
['Button Keluar'],...
'Yes','No','Yes');
if strcmp(selection,'No') return;
end
delete(handles.figure1)
II. Form Wiener
function varargout = Tesku(varargin) gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Tesku_OpeningFcn, ...
'gui_OutputFcn', @Tesku_OutputFcn, ...
'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
global gb;
global B;
global noise;
global PSF;
global g;
global Len;
global teta;
function pushbutton1_Callback(hObject, eventdata, handles) [nama_file, namaPath]=uigetfile({'*.jpg; *.bmp; *tif; '},'Buka File');
if ~isequal (nama_file,0)
handles.citra=imread(fullfile(namaPath,nama_file)); guidata(hObject,handles);
axes(handles.axes1);
set(imshow(handles.citra));
info=imfinfo(fullfile(namaPath,nama_file)); set(handles.edit7,'String',info.Filename); set(handles.edit8,'String',info.Format); set(handles.edit9,'String',info.FileSize); set(handles.edit10,'String',info.FileModDate);
else
return;
end
function pushbutton2_Callback(hObject, eventdata, handles)
global gb;
global noise;
global PSF;
global runtimeblur;
runtimeblur=cputime;
Len=str2num(get(handles.Len,'string')); teta=str2num(get(handles.theta,'string')); noise=getimage(handles.axes1);
PSF=fspecial('motion',Len,teta);
gb=imfilter(noise,PSF,'circular','conv'); axes(handles.axes2);
imshow(gb);
runtimeblur=cputime-runtimeblur;
function pushbutton3_Callback(hObject, eventdata, handles)
global gb;
global g;
global runtimenoise;
global noise;
runtimenoise=cputime;
A=str2double(get(handles.nilai,'string')); A=A/100;
b=imnoise(noise,'salt & pepper',A); g=gb+b;
axes(handles.axes3); imshow(g);
runtimenoise=cputime-runtimenoise;
function pushbutton4_Callback(hObject, eventdata, handles)
global B;
global g;
global noise;
global PSF;
global runtimewiener;
global A;
runtimewiener=cputime;
noise1=getimage(handles.axes2);
gb=imfilter(noise1,PSF,'circular','conv'); A=str2double(get(handles.nilai,'string')); A=A/100;
pilih=handles.pilih
switch handles.pilih case 1
M = getimage(handles.axes2); x = rand(size(M));
d = find(x < A/2);
M(d) = 255; % Minimum value
d = find(x >= A/2 & x < A);
M(d) = 0; % Maximum (saturated) value
N=uint8(M);
case 2
b1=getimage(handles.axes2); [r c d] = size (b1);
x=1:r; y=1:c; z=1:d;
E = double(b1(x,y,1)); F = double(b1(x,y,2)); G = double(b1(x,y,3));
M(x,y,1) = E +sqrt (12*A)*E.*(rand(size(E))-.5); M(x,y,2) = F +sqrt (12*A)*F.*(rand(size(F))-.5); M(x,y,3) = G +sqrt (12*A)*G.*(rand(size(G))-.5);
case 3
b2 = getimage(handles.axes2); [r c d] = size (b2);
x=1:r; y=1:c; z=1:d;
E = double(b2(x,y,1)); F = double(b2(x,y,2)); G = double(b2(x,y,3));
M(x,y,1) = E +sqrt (A)*(rand(size(E))); M(x,y,2) = F +sqrt (A)*(rand(size(F))); M(x,y,3) = G +sqrt (A)*(rand(size(G)));
N=uint8(M);
end g=gb+N;
Sn=(abs(fft2(N))).^2;
nA=sum(Sn(:))/prod(size(N)); Sf=(abs(fft2(noise1))).^2;
fA=sum(Sf(:))/prod(size(noise1)); NCORR=fftshift(real(ifft(Sn))); ICORR=fftshift(real(ifft(Sf))); fr3=deconvwnr(g,PSF,NCORR,ICORR); axes(handles.axes4);
imshow(fr3);
runtimewiener=cputime-runtimewiener;
function pushbutton5_Callback(hObject, eventdata, handles) citraAsli=getimage(handles.axes1);
CitraHasil = getimage(handles.axes3);
[psnrval mseval] = MSE_PSNR(citraAsli,CitraHasil); set(handles.text1,'String',mseval);
function pushbutton6_Callback(hObject, eventdata, handles) citraAsli=getimage(handles.axes1);
CitraHasil = getimage(handles.axes3);
[psnrval mseval] = MSE_PSNR(citraAsli,CitraHasil); set(handles.text2,'String',psnrval);
function pushbutton7_Callback(hObject, eventdata, handles) citraAsli=getimage(handles.axes1);
CitraHasil = getimage(handles.axes4);
[psnrval mseval] = MSE_PSNR(citraAsli,CitraHasil); set(handles.text3,'String',mseval);
function pushbutton8_Callback(hObject, eventdata, handles) citraAsli=getimage(handles.axes1);
CitraHasil = getimage(handles.axes4);
[psnrval mseval] = MSE_PSNR(citraAsli,CitraHasil); set(handles.text4,'String',psnrval);
function pushbutton9_Callback(hObject, eventdata, handles) citraAsli=getimage(handles.axes1);
CitraHasil = getimage(handles.axes5);
[psnrval mseval] = MSE_PSNR(citraAsli,CitraHasil); set(handles.text5,'String',mseval);
function pushbutton10_Callback(hObject, eventdata, handles) citraAsli=getimage(handles.axes1);
CitraHasil = getimage(handles.axes5);
[psnrval mseval] = MSE_PSNR(citraAsli,CitraHasil); set(handles.text6,'String',psnrval);
function pushbutton11_Callback(hObject, eventdata, handles) citraAsli=getimage(handles.axes1);
CitraHasil = getimage(handles.axes2);
[psnrval mseval] = MSE_PSNR(citraAsli,CitraHasil); set(handles.text7,'String',mseval);
function pushbutton12_Callback(hObject, eventdata, handles) citraAsli=getimage(handles.axes1);
CitraHasil = getimage(handles.axes2);
[psnrval mseval] = MSE_PSNR(citraAsli,CitraHasil); set(handles.text8,'String',psnrval);
function pushbutton13_Callback(hObject, eventdata, handles)
global runtimeblur;
set(handles.text9,'String',runtimeblur);
function pushbutton14_Callback(hObject, eventdata, handles)
global runtimewiener;
set(handles.text10,'String',runtimewiener);
function pushbutton15_Callback(hObject, eventdata, handles)
global runtimenoise;
set(handles.text11,'String',runtimenoise);
function pushbutton18_Callback(hObject, eventdata, handles) [nama_file, namaPath]=uigetfile({'*.jpg',' File
Jpeg(.*jpg)'},'Buka File');
if ~isequal (nama_file,0)
handles.citra=imread(fullfile(namaPath,nama_file)); guidata(hObject,handles);
axes(handles.axes7); imshow(handles.citra);
else
return;
end
function pushbutton19_Callback(hObject, eventdata, handles)
global gb;
global noise;
global PSF;
global runtimeblur2;
Len1=str2num(get(handles.len2,'string')); teta2=str2num(get(handles.teta2,'string')); noise=getimage(handles.axes7);
PSF=fspecial('motion',Len1,teta2);
gb=imfilter(noise,PSF,'circular','conv'); axes(handles.axes8);
imshow(gb);
runtimeblur2=cputime-runtimeblur2;
function pushbutton23_Callback(hObject, eventdata, handles)
global gb;
global g;
global runtimenoise1;
global noise;
runtimenoise1=cputime;
A=str2double(get(handles.nilai2,'string')); A=A/100;
B=imnoise(noise,'salt & pepper',A); g=gb+B;
axes(handles.axes9); imshow(g);
runtimenoise1=cputime-runtimenoise1;
function pushbutton35_Callback(hObject, eventdata, handles) [nama_file_simpan, path_simpan]=uiputfile(...
{'*.jpeg','file citra (*.jpeg)';
'*.jpeg','citra bmp (*.jpeg)';... '*.*','Semua File (*.*)'},... 'Menyimpan Citra Hasil'); S=getimage(handles.axes4);
imwrite(S,fullfile(path_simpan,nama_file_simpan),'JPEG');
function pushbutton36_Callback(hObject, eventdata, handles) FormAwal
close Tesku;
function pushbutton37_Callback(hObject, eventdata, handles) axes(handles.axes1);
plot(0);
set(handles.edit7,'string',''); set(handles.edit8,'string',''); set(handles.edit9,'string',''); set(handles.edit10,'string',''); axes(handles.axes2);
plot(0);
set(handles.Len,'string',''); set(handles.theta,'string',''); set(handles.text7,'String',''); set(handles.text8,'String',''); set(handles.text9,'String',''); set(handles.radiobutton1,'value',0); set(handles.radiobutton2,'value',0); set(handles.gauss,'value',0);
axes(handles.axes3); plot(0);
set(handles.nilai,'string',''); set(handles.text1,'String',''); set(handles.text2,'String',''); set(handles.text11,'String',''); axes(handles.axes5);
plot(0);
set(handles.text5,'String',''); set(handles.text6,'String',''); set(handles.text40,'String',''); axes(handles.axes4);
plot(0);
set(handles.text3,'String',''); set(handles.text4,'String',''); set(handles.text10,'string','');
function pushbutton38_Callback(hObject, eventdata, handles) [nama_file_simpan, path_simpan]=uiputfile(...
{'*.jpeg','file citra (*.jpeg)';
'*.jpeg','citra bmp (*.jpeg)';... '*.*','Semua File (*.*)'},... 'Menyimpan Citra Hasil'); G=getimage(handles.axes3);
imwrite(G,fullfile(path_simpan,nama_file_simpan),'JPEG');
function pushbutton39_Callback(hObject, eventdata, handles)
global B;
global g;
global noise;
global PSF;
global runtimewiener1;
global A
runtimewiener1=cputime;
noise1=getimage(handles.axes2);
gb=imfilter(noise1,PSF,'circular','conv'); A=str2double(get(handles.nilai,'string')); A=A/100;
pilih=handles.pilih
switch handles.pilih case 1
M = getimage(handles.axes2); x = rand(size(M));
d = find(x < A/2);
M(d) = 255; % Minimum value
d = find(x >= A/2 & x < A);
M(d) = 0; % Maximum (saturated) value
N=uint8(M);
case 2
b1=getimage(handles.axes2); [r c d] = size (b1);
z=1:d;
E = double(b1(x,y,1)); F = double(b1(x,y,2)); G = double(b1(x,y,3));
M(x,y,1) = E +sqrt (12*A)*E.*(rand(size(E))-.5); M(x,y,2) = F +sqrt (12*A)*F.*(rand(size(F))-.5); M(x,y,3) = G +sqrt (12*A)*G.*(rand(size(G))-.5);
N=uint8(M);
case 3
b2 = getimage(handles.axes2); [r c d] = size (b2);
x=1:r; y=1:c; z=1:d;
E = double(b2(x,y,1)); F = double(b2(x,y,2)); G = double(b2(x,y,3));
M(x,y,1) = E +sqrt (A).*(rand(size(E))); M(x,y,2) = F +sqrt (A).*(rand(size(F))); M(x,y,3) = G +sqrt (A).*(rand(size(G)));
N=uint8(M);
end
D=gb+N;
Sn=(abs(fft2(N))).^2;
nA=sum(Sn(:))/prod(size(N)); Sf=(abs(fft2(noise1))).^2;
fA=sum(Sf(:))/prod(size(noise1)); R=nA/fA;
fr2=deconvwnr(D,PSF,R); axes(handles.axes5); imshow(fr2);
runtimewiener1=cputime-runtimewiener1;
function radiobutton1_Callback(hObject, eventdata, handles)
global gb;
global g;
global runtimenoise;
global noise;
global A;
set(handles.text37,'String','salt & pepper'); set(handles.radiobutton1,'Value',1);
set(handles.radiobutton2,'Value',0); set(handles.gauss,'Value',0);
runtimenoise=cputime;
A=str2double(get(handles.nilai,'string'));
A=A/100; pilih = 1;
handles.pilih=pilih; guidata(hObject,handles) b = getimage(handles.axes2);; x = rand(size(b));
d = find(x < A/2);
b(d) = 255; % Minimum value
d = find(x >= A/2 & x < A);
b(d) = 0; % Maximum (saturated) value
g=gb+b;
axes(handles.axes3); imshow(g);
runtimenoise=cputime-runtimenoise;
function radiobutton2_Callback(hObject, eventdata, handles)
global gb;
global g;
global runtimenoise;
global noise;
set(handles.text39,'String','speckle'); set(handles.radiobutton1,'Value',0); set(handles.radiobutton2,'Value',1); set(handles.gauss,'Value',0);
runtimenoise=cputime;
A=str2double(get(handles.nilai,'string')); A=A/100;
pilih = 2;
handles.pilih=pilih; guidata(hObject,handles) b1=getimage(handles.axes2); [r c d] = size (b1);
x=1:r; y=1:c; z=1:d;
E = double(b1(x,y,1)); F = double(b1(x,y,2)); G = double(b1(x,y,3));
M(x,y,1) = E +sqrt (12*A)*E.*(rand(size(E))-.5); M(x,y,2) = F +sqrt (12*A)*F.*(rand(size(F))-.5); M(x,y,3) = G +sqrt (12*A)*G.*(rand(size(G))-.5); n=uint8(M);
op=gb+n;
axes(handles.axes3); imshow(op);
runtimenoise=cputime-runtimenoise;
global runtimewiener1;
set(handles.text40,'String',runtimewiener1);
global gb;
global g;
global runtimenoise;
global noise;
set(handles.text39,'String','speckle'); set(handles.radiobutton1,'Value',0); set(handles.radiobutton2,'Value',0); set(handles.gauss,'Value',1);
runtimenoise=cputime;
A=str2double(get(handles.nilai,'string')); A=A/100;
pilih = 3;
handles.pilih=pilih; guidata(hObject,handles) b2 = getimage(handles.axes2); [r c d] = size (b2);
x=1:r; y=1:c; z=1:d;
E = double(b2(x,y,1)); F = double(b2(x,y,2)); G = double(b2(x,y,3));
M(x,y,1) = E +sqrt (A)*(rand(size(E))); M(x,y,2) = F +sqrt (A)*(rand(size(F))); M(x,y,3) = G +sqrt (A)*(rand(size(G))); n=uint8(M);
op1=gb+n;
axes(handles.axes3); imshow(op1);
runtimenoise=cputime-runtimenoise;
III. Lucy-Richardson
function varargout = BlindDeconvolution(varargin) gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @BlindDeconvolution_OpeningFcn, ...
'gui_OutputFcn', @BlindDeconvolution_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
global gb;
global B;
global noise;
global PSF;
global g;
global Len;
global teta;
global D;
global v;
global UNDERPSF;
function pushbutton1_Callback(hObject, eventdata, handles) [nama_file, namaPath]=uigetfile({'*.jpg; *.bmp; *.tif'},'Buka File');
if ~isequal (nama_file,0)
handles.citra=imread(fullfile(namaPath,nama_file)); guidata(hObject,handles);
axes(handles.axes1); imshow(handles.citra);
info=imfinfo(fullfile(namaPath,nama_file)); set(handles.edit5,'String',info.Filename); set(handles.edit6,'String',info.Format); set(handles.edit7,'String',info.FileSize); set(handles.edit8,'String',info.FileModDate);
else
return;
end
function pushbutton2_Callback(hObject, eventdata, handles)
global gb;
global noise;
global PSF;
global runtimeblur;
runtimeblur=cputime;
Len=str2num(get(handles.alfa,'string')); teta=str2num(get(handles.beta,'string')); noise=getimage(handles.axes1);
PSF=fspecial('motion',Len,teta);
gb=imfilter(noise,PSF,'circular','conv'); axes(handles.axes2);
imshow(gb);
runtimeblur=cputime-runtimeblur;
function pushbutton3_Callback(hObject, eventdata, handles) citraAsli=getimage(handles.axes1);
CitraHasil = getimage(handles.axes2);
set(handles.text1,'String',mseval);
function pushbutton4_Callback(hObject, eventdata, handles) citraAsli=getimage(handles.axes1);
CitraHasil = getimage(handles.axes2);
[psnrval mseval] = MSE_PSNR(citraAsli,CitraHasil); set(handles.text2,'String',psnrval);
function pushbutton5_Callback(hObject, eventdata, handles)
global runtimeblur;
set(handles.text3,'String',runtimeblur);
function pushbutton6_Callback(hObject, eventdata, handles)
global gb;
global g;
global runtimenoise;
global noise;
runtimenoise=cputime;
A=str2double(get(handles.Nilai1,'string')); A=A/100;
B = noise;
x = rand(size(B)); d = find(x < A/2);
B(d) = 0; % Minimum value
d = find(x >= A/2 & x < A);
B(d) = 1; % Maximum (saturated) value
g=gb+B;
axes(handles.axes3); imshow(g);
runtimenoise=cputime-runtimenoise;
function pushbutton7_Callback(hObject, eventdata, handles) citraAsli=getimage(handles.axes1);
CitraHasil = getimage(handles.axes3);
[psnrval mseval] = MSE_PSNR(citraAsli,CitraHasil); set(handles.text4,'String',mseval);
function pushbutton8_Callback(hObject, eventdata, handles)
global runtimenoise;
set(handles.text6,'String',runtimenoise);
function pushbutton9_Callback(hObject, eventdata, handles) citraAsli=getimage(handles.axes1);
CitraHasil = getimage(handles.axes3);
[psnrval mseval] = MSE_PSNR(citraAsli,CitraHasil); set(handles.text5,'String',psnrval);
function pushbutton10_Callback(hObject, eventdata, handles)
global B;
global g;
global D;
global noise;
global PSF;
global UNDERPSF;
global runtimeblind1;
global gb;
global v;
runtimeblind1=cputime; H=getimage(handles.axes3); luc1 = deconvlucy(H, PSF, 5); axes(handles.axes4);
imshow(luc1);
runtimeblind1=cputime-runtimeblind1;
function pushbutton11_Callback(hObject, eventdata, handles) citraAsli=getimage(handles.axes1);
CitraHasil = getimage(handles.axes4);
[psnrval mseval] = MSE_PSNR(citraAsli,CitraHasil); set(handles.text7,'String',mseval);
function pushbutton12_Callback(hObject, eventdata, handles) citraAsli=getimage(handles.axes1);
CitraHasil = getimage(handles.axes4);
[psnrval mseval] = MSE_PSNR(citraAsli,CitraHasil); set(handles.text8,'String',psnrval);
function pushbutton13_Callback(hObject, eventdata, handles)
global runtimeblind1;
set(handles.text9,'String',runtimeblind1);
function pushbutton15_Callback(hObject, eventdata, handles) citraAsli=getimage(handles.axes1);
CitraHasil = getimage(handles.axes5);
[psnrval mseval] = MSE_PSNR(citraAsli,CitraHasil); set(handles.text10,'String',mseval);
function pushbutton16_Callback(hObject, eventdata, handles) citraAsli=getimage(handles.axes1);
CitraHasil = getimage(handles.axes5);
[psnrval mseval] = MSE_PSNR(citraAsli,CitraHasil); set(handles.text11,'String',psnrval);
function pushbutton17_Callback(hObject, eventdata, handles)
global runtimeblind2;
set(handles.text12,'String',runtimeblind2);
function pushbutton18_Callback(hObject, eventdata, handles) [nama_file_simpan, path_simpan]=uiputfile(...
{'*.bmp','file citra (*.bmp)';
'*.bmp','citra bmp (*.bmp)';... '*.*','Semua File (*.*)'},... 'Menyimpan Citra Hasil');
imwrite(handles.hasil,fullfile(path_simpan,nama_file_simpan),'BMP ');
close BlindDeconvolution;
function pushbutton20_Callback(hObject, eventdata, handles) axes(handles.axes1);
plot(0);
set(handles.edit5,'string',''); set(handles.edit6,'string',''); set(handles.edit7,'string',''); set(handles.edit8,'string',''); axes(handles.axes2);
plot(0);
set(handles.alfa,'string',''); set(handles.beta,'string',''); set(handles.text1,'String',''); set(handles.text2,'String',''); set(handles.text3,'String',''); set(handles.salt,'value',0); set(handles.speckle,'value',0); set(handles.gauss,'value',0); axes(handles.axes3);
plot(0);
set(handles.Nilai1,'string',''); set(handles.text4,'String',''); set(handles.text5,'String',''); set(handles.text6,'String',''); axes(handles.axes4);
plot(0);
set(handles.text7,'String',''); set(handles.text8,'String',''); set(handles.text9,'String','');
function salt_Callback(hObject, eventdata, handles)
global g;
global runtimenoise;
global noise;
global A;
set(handles.salt,'Value',1); set(handles.speckle,'Value',0); set(handles.gauss,'Value',0);
runtimenoise=cputime;
A=str2double(get(handles.Nilai1,'string')); A=A/100;
pilih = 1;
handles.pilih=pilih; guidata(hObject,handles) b = getimage(handles.axes2);; x = rand(size(b));
d = find(x < A/2);
b(d) = 255; % Minimum value
d = find(x >= A/2 & x < A);
b(d) = 0; % Maximum (saturated) value
g=gb+b;
axes(handles.axes3);
imshow(g);
runtimenoise=cputime-runtimenoise;
function speckle_Callback(hObject, eventdata, handles)
global gb;
global g;
global runtimenoise;
global noise;
set(handles.salt,'Value',0); set(handles.speckle,'Value',1); set(handles.gauss,'Value',0);
runtimenoise=cputime;
A=str2double(get(handles.Nilai1,'string')); A=A/100;
pilih = 2;
handles.pilih=pilih; guidata(hObject,handles) b1=getimage(handles.axes2); [r c d] = size (b1);
x=1:r; y=1:c; z=1:d;
E = double(b1(x,y,1)); F = double(b1(x,y,2)); G = double(b1(x,y,3));
M(x,y,1) = E +sqrt (12*A)*E.*(rand(size(E))-.5); M(x,y,2) = F +sqrt (12*A)*F.*(rand(size(F))-.5); M(x,y,3) = G +sqrt (12*A)*G.*(rand(size(G))-.5); n=uint8(M);
op=gb+n;
axes(handles.axes3); imshow(op);
runtimenoise=cputime-runtimenoise;
function pushbutton21_Callback(hObject, eventdata, handles) [nama_file_simpan, path_simpan]=uiputfile(...
{'*.jpeg','file citra (*.jpeg)';
'*.jpeg','citra bmp (*.jpeg)';... '*.*','Semua File (*.*)'},... 'Menyimpan Citra Hasil'); G=getimage(handles.axes3);
imwrite(G,fullfile(path_simpan,nama_file_simpan),'JPEG');
function gauss_Callback(hObject, eventdata, handles)
global gb;
global g;
global runtimenoise;
set(handles.salt,'Value',0); set(handles.speckle,'Value',0); set(handles.gauss,'Value',1);
runtimenoise=cputime;
A=str2double(get(handles.Nilai1,'string')); A=A/100;
pilih = 3;
handles.pilih=pilih; guidata(hObject,handles) b2 = getimage(handles.axes2); [r c d] = size (b2);
x=1:r; y=1:c; z=1:d;
E = double(b2(x,y,1)); F = double(b2(x,y,2)); G = double(b2(x,y,3));
M(x,y,1) = E +sqrt (A)*(rand(size(E))); M(x,y,2) = F +sqrt (A)*(rand(size(F))); M(x,y,3) = G +sqrt (A)*(rand(size(G))); n=uint8(M);
op1=gb+n;
axes(handles.axes3); imshow(op1);
runtimenoise=cputime-runtimenoise;
function pushbutton23_Callback(hObject, eventdata, handles) [nama_file_simpan, path_simpan]=uiputfile(...
{'*.jpeg','file citra (*.jpeg)';
'*.jpeg','citra bmp (*.jpeg)';... '*.*','Semua File (*.*)'},... 'Menyimpan Citra Hasil'); G=getimage(handles.axes4);
imwrite(G,fullfile(path_simpan,nama_file_simpan),'JPEG');
IV. Bantuan
function varargout = Bantuan(varargin) gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Bantuan_OpeningFcn, ...
'gui_OutputFcn', @Bantuan_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 pushbutton1_Callback(hObject, eventdata, handles) FormAwal