• Tidak ada hasil yang ditemukan

Perbandingan Algoritma Wiener Dan Lucy-Richardson Untuk Memperbaiki Kualitas Citra

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perbandingan Algoritma Wiener Dan Lucy-Richardson Untuk Memperbaiki Kualitas Citra"

Copied!
19
0
0

Teks penuh

(1)

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, ...

(2)

'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;

(3)

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);

(4)

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);

(5)

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;

(6)

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);

(7)

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);

(8)

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'));

(9)

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;

(10)

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});

(11)

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);

(12)

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;

(13)

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 ');

(14)

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);

(15)

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;

(16)

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

(17)

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

function pushbutton1_Callback(hObject, eventdata, handles) FormAwal

(18)

CURRICULUM VITAE

Nama

: Muhammad Huzaifa

Alamat Sekarang

: Jl.P.Kemerdekaan, cengkeh turi binjai

Alamat Orang tua

: Jl.P.Kemerdekaan, cengkeh turi binjai

Telp/Hp

: 081265713734

Email

:

mhuzaifa14@gmail.com

Riwayat Pendidikan

2009-2014

: S1 Ilmu Komputer Universitas Sumatera Utara, Medan

2006-2009

: Yaspend Teladan Binjai

2003-2006

: SMP Negeri 6 Binjai

1997-2003

: SD Negeri 028067 Binjai

(19)

Referensi

Dokumen terkait

Melalui analisis SWOT diperoleh hasil pada tahap input, skor kekuatan dikurangi skor kelemahan adalah 2,71 sedangkan skor peluang dikurangi skor ancaman adalah 1,06..

William dalam Utami Munandar (1985) menjelaskan bahwa pada kemampuan berpikir kreatif meliputi: 1) kemampuan berpikir lancar (influency), adalah kemampuan

Penegakan hukum terhadap Nenek Minah harus dilepaskan dari unsur-unsur sosial serta moralitas, karena menurut kacamata Paradigma Positivisme, tujuan hukum adalah kepastian

Derajat bebas distribusi t-student dan keempat parameter GLD yang telah diperoleh akan dipergunakan untuk membentuk kurva fungsi densitas untuk mengetahui kedekatan dari

Di lahan belukar muda berumur 10 tahun telah dijumpai jenis suksesi lanjut (Rinorea anguifera) yang mendominasi tapak, sedangkan di tapak belukar dan agroforest berumur lebih dari

Livelihoods Framework” (Ellis , 2000) to help define and organize indicators. Five to six indicators were developed in each category of livelihood assets. Indicators must

Hasil Penelitian: Analisis Mann Whitney menunjukkan bahwa pada taraf signifikansi diperoleh nilai sehingga Hal ini mengindikasikan adanya

Karakter budi pekerti luhur seperti inilah yang seharusnya menjadi modal dasar bagi anak bangsa dalam pembangunan Nation &amp; Character Building yang akan