Anda di halaman 1dari 28

PENGOLAHAN CITRA DIGITAL

RESTORASI CITRA
‘’DERAU ATAU NOISE”

NAMA : Ahmad Iman Waworuntu


NIM : 1529041055
KELAS : PTIK 06

PENDIDIKAN TEKNIK INFORMATIKA DAN KOMPUTER


UNIVERSITAS NEGERI MAKASSAR
TAHUN AKADEMIK 2015/2016
TUTORIAL MEMBUAT GUI RESTORASI CITRA
(DERAU ATAU NOISE)

1. Bukalah aplikasi Matlab yang telah diinstal

2. Window Matlab akan muncul seperti gambar dibawah


3. Buka gui pada matlab dengan mengetik syntax “Guide” lalu akan tampil kotak dialog seperti
dibawah, kemudian pilih Blank GUI (Default)

4. Akan tampil layar kerja GUI seperti ini


5.

6. Kemudian buatlah panel pada work sheet.


7. Selanjutnya memasukkan Axes, sebagai tempat untuk menampilkan citra
atau gambar. Klik tools Axes

8. Kemudian buatlah Axes1 pada lembar kerja, yang diletakkan pada tengah
Panel.
9. Karena kita akan menggunakan 3 axes, maka kita akan juga menggukan
3 panel, untuk mebuatnya lakukan langakah 7 dan 8 kembali atau dengan
cara menduplikat panel dan axesnya. Caranya yaitu dengan mengklik
panel pada lembar kerja (bukan Axes1), kemudian tekan tombol Ctrl+P
sebanyak 2 kali. Maka akan muncul axes2 dan axes3. Atur posisi axes
sesusai dengan keinginan kalian.

10. Selanjutnya menampilkan Push Button. Caranya klik tools Push Button.
11. Buatlah Push button pada lembar kerja.

12. Lakukan kembali langkah 11 untuk membuat Push button Lainnya, atau
dapat dengan menekan tombol Ctrl+D untuk menduplikate push button
13. Dapat pula ditambahkan panel pada push button, seperti pada gambar
berikut.

14. Selanjutnya yaitu mengubah nama pada masing-masing Push Button.


Caranya dengan mengklik Push Button1, kemudian pilih “Property
Inspector”. Atau dapat pula dengan double klik pada Push Button1.
15. Maka akan muncul tampilan berikut ini. Pilih “string” kemudian ganti
Push button Menjadi “Browser”.

16. Lakukan langkah 15 untuk mengganti semua nama push button sesuai
dengan fungsi masing-masing yaitu: push button2 =
17. Selanjutnya yaitu dengan menggatin nama “Panel” pada axes dan push
button sesuai dengan nama fungsi masing-masing. Caranya yaitu dengan
mengklik icon “Property Inspector”, kemudian pilihh “Title”. Ubah panel
menjadi “RESTORASI CITRA” untuk panel pada Push Button.

18. Lakukan langkah 17 untuk mengubah semua nama panel. Dimana panel
axes1 diubah menjadi “CITRA ASLI”, panel axes2 menjadi “DERAU
DALAM CITRA”, dan panel axes3 menjadi “HASIL FILTER
PERERATAAN”.
19. Guide diatas dapat kalian kreasikan baik itu warna bacground, tulisan
dan sebagainya. Misalny seperti berikut ini.

20. Kemudian simpan dengan mengklik Icon “Save Figure”.

21. Maka akan muncul jendela berikut ini. Simpan dengan nama “Restorasi
Citra” dan klik “SAVE”.
22. Apabila muncul jendela editor, langsung saja Close atau keluar untuk
keluar dari jendela editor.

B. Menginput Sintaks Pada Push Botton

1. Menginput Sintaks Pada Browser


a. Selanjutnya yaitu memasukkan sintaks pada masing-masing push button
Browser. Cara dengan klik kanan pada Push Button Browser-pilih
View callback-callback.

b. Maka akan muncul jendela Editor yang langsung tertuju pada tempat
memasukkan Sintaks yaitu pada Push Button1. Dan sintaks akan di
tulis pada baris 81.
c. Masukkan sintaks berikut ini pada baris 81.
[name_file1,name_path1] = uigetfile(...
{'*.bmp;*.jpg;*.tif','Files of type
(*.bmp,*.jpg,*.tif)';
'*.bmp','File Bitmap (*.bmp)';...
'*.jpg','File jpeg (*.jpg)';
'*.tif','File Tif (*.tif)';
'*.*','All Files (*.*)'},...
'Open Image');
if ~isequal(name_file1,0)
handles.data1 =
imread(fullfile(name_path1,name_file1));
guidata(hObject,handles);
axes(handles.axes1);
imshow(handles.data1);
img1 = handles.data1;
F = rgb2gray(img1);
axes(handles.axes1);
imshow(F);
guidata(hObject,handles);
else
return;
end
d. Kemudian simpan dengan mengklik icon “Save”.
2. Menginput Sintaks pada Push button “Derau Gaussian”
a. Selanjutnya yaitu memasukan sintaks pada push button Derau
Gaussian. Caranya klik kanan pada Push Button Derau Gaussianpilih
View callback-Callback.

b. Maka akan mucul jendela editor yang lansung tertuju pada Push
Button2.
c. Sebelum memasukan sintaksnya, terlebih dahulu kita harus
menyimpan Function dari Gaussian pada Document dalam folder
Matlab, caranya yaitu dengan mengklik icon “New Script”.
d. Maka akan muncul lembar script yang baru
e. Masukan sintaks berikut pada Script tersebut.
function [G] = drgaussian(F, sigma, mu)
% DRGAUSSIAN Menghasilkan citra yang telah diberi derau
% menggunakan Gaussian.
% F = citra berskala keabuan
% sigma = standar deviasi fungsi Gaussian
% mu = rerata fungsi Gaussian
if nargin < 3
mu = 0; % Nilai bawaan mu
end
if nargin < 2
sigma = 1; % Nilai bawaan deviasi standar
end
[m, n] = size(F);
F = double(F);
for i=1 : m
for j=1 : n
derau = randn * sigma + mu;
G(i,j) = round(F(i, j) + derau);
if G(i,j) > 255
G(i,j) = 255;
elseif G(i,j) < 0
G(i,j) = 0;
end
end
end
G = uint8(G);
f. Kemudian klik icon “Save” untuk menyimpan Function tersebut

g. Maka akan muncul jendela Save dengan nama drgaussian. Langsung


klik “save” tanpa harus mengganti nama file tersebut.
h. Kemudian pilih kembali jendela Script Derau untuk kembali ke
script selanjutnya.
i. Masukan sintaks berikut ini pada baris ke-110.
img1 = handles.data1;
F = rgb2gray(img1);
G = drgaussian(F, 25)
% DRGAUSSIAN Menghasilkan citra yang telah diberi derau
% menggunakan Gaussian.
% F = citra berskala keabuan
% sigma = standar deviasi fungsi Gaussian
% mu = rerata fungsi Gaussian
[m, n] = size(F);
F = double(F);
for i=1 : m
for j=1 : n
derau = randn * 25;
G(i,j) = round(F(i, j) + derau);
if G(i,j) > 255
G(i,j) = 255;
elseif G(i,j) < 0
G(i,j) = 0;
end
end
end
G = uint8(G);
axes(handles.axes2);
imshow(G);
guidata(hObject,handles);
% FILTER PERERATAAN
[tinggi, lebar] = size(G);
G2 = double(G);
for baris=2 : tinggi-1
for kolom=2 : lebar-1
jum = G2(baris-1, kolom-1)+ ...
G2(baris-1, kolom) + ...
G2(baris-1, kolom-1) + ...
G2(baris, kolom-1) + ...
G2(baris, kolom) + ...
G2(baris, kolom+1) + ...
G2(baris+1, kolom-1) + ...
G2(baris+1, kolom) + ...
G2(baris+1, kolom+1);
H(baris, kolom) = uint8(1/9 * jum);
end
end
axes(handles.axes3);
imshow(H);
guidata(hObject,handles);
clear;
Penggunaan
Filter
j. Kemudian simpan dengan mengklik icon “Save”.
3. Menginput Sintaks pada Push Button “Derau Impuls”.
a. Selanjutnya yaitu memasukan sintaks pada push button Derau
Impuls. Caranya klik kanan pada Push Button Derau impuls-pilih
View callback-Callback.
b. Maka akan mucul jendela editor yang lansung tertuju pada Push
Button3.

c. Sebelum memasukan sintaksnya, terlebih dahulu kita harus


menyimpan Function dari Gaussian pada Document dalam folder
Matlab, caranya yaitu dengan mengklik icon “New Script”.
d. Maka akan muncul lembar script yang baru
e. Masukan sintaks berikut pada Script tersebut.
function [G] = drimpuls(F, probabilitas)
% DRIMPULS Menghasilkan citra yang telah diberi derau
% menggunakan fungsi impuls.
% F = citra berskala keabuan
% probabilitas = Probabilitas kemunculan derau
% (0 s/d 1)
if nargin < 2
probabilitas = 0.05; % Nilai bawaan
end;
if probabilitas < 0 || probabilitas > 1
error('Nilai probabilitas harus antara 0 s/d 1');
end
[m, n] = size(F);
G = double(F);
for i=1 : m
for j=1 : n
nilai_acak = rand;
if nilai_acak <= probabilitas / 2
G(i,j) = 0;
elseif (nilai_acak > probabilitas / 2) &&...
(nilai_acak <= probabilitas)
G(i,j) = 255;
end
end
end
G = uint8(G);
f. Kemudian klik icon “Save” untuk menyimpan Function tersebut
g. Maka akan muncul jendela Save dengan nama drimpuls. Langsung
klik “save” tanpa harus mengganti nama file tersebut.
h. Kemudian pilih kembali jendela Script Derau untuk kembali ke
script selanjutnya.
i. Masukan sintaks berikut ini pada baris ke-163.
img1 = handles.data1;
F = rgb2gray(img1);
G = drimpuls(F, 0.05)
% DRIMPULS Menghasilkan citra yang telah diberi derau
% menggunakan fungsi impuls.
% F = citra berskala keabuan
% probabilitas = Probabilitas kemunculan derau
% (0 s/d 1)
[m, n] = size(F);
G = double(F);
for i=1 : m
for j=1 : n
nilai_acak = rand;
if nilai_acak <= 0.05/ 2
G(i,j) = 0;
elseif (nilai_acak > 0.05 / 2) &&...
(nilai_acak <= 0.05)
G(i,j) = 255;
end
end
end
G = uint8(G);
axes(handles.axes2);
imshow(G);
guidata(hObject,handles);
% FILTER PERERATAAN
[tinggi, lebar] = size(G);
G2 = double(G);
for baris=2 : tinggi-1
for kolom=2 : lebar-1
jum = G2(baris-1, kolom-1)+ ...
G2(baris-1, kolom) + ...
G2(baris-1, kolom-1) + ...
G2(baris, kolom-1) + ...
G2(baris, kolom) + ...
G2(baris, kolom+1) + ...
G2(baris+1, kolom-1) + ...
G2(baris+1, kolom) + ...
G2(baris+1, kolom+1);
H(baris, kolom) = uint8(1/9 * jum);
end
end
axes(handles.axes3);
imshow(H);
guidata(hObject,handles);
clear;
Penggunaan
Filter
Rerataan
j. Kemudian simpan dengan mengklik icon “Save”.
4. Menginput sintaks pada push Button “Derau Eksponensial”.
a. Selanjutnya yaitu memasukan sintaks pada push button Derau Impuls.
Caranya klik kanan pada Push Button Derau impuls-pilih View
callback-Callback.

b. Maka akan mucul jendela editor yang lansung tertuju pada Push
Button4.
c. Sebelum memasukan sintaksnya, terlebih dahulu kita harus
menyimpan Function dari Gaussian pada Document dalam folder
Matlab, caranya yaitu dengan mengklik icon “New Script”.
d. Maka akan muncul lembar script yang bar
e. Masukan sintaks berikut pada Script tersebut.
function [G] = dreksponensial(F, a)
% DREKSPONENSIAL Menghasilkan citra yang telah diberi
derau
% menggunakan fungsi eksponensial negatif.
%
% Berdasarkan kode
% Rafael C. Gonzales, Richard E. Woods, dan
% Steven L. Eddins, 2004
%
% F = citra berskala keabuan
% varians = varians yang dikehendaki
if nargin ~= 2
error('Penggunaan: dreksponensial(F, a)');
end
if a <= 0
error('Parameter berupa sebarang bilangan > 0');
end
[m, n] = size(F);
F = double(F);
G = zeros(m, n);
for i=1 : m
for j=1 : n
derau = -1/a * log(1 - rand);
G(i,j) = round(F(i,j) + derau);
if G(i,j) > 255
G(i,j) = 255;
end
end
end
G = uint8(G);
f. Kemudian klik icon “Save” untuk menyimpan Function tersebut

g. Maka akan muncul jendela Save dengan nama drimpuls. Langsung


klik “save” tanpa harus mengganti nama file tersebut.
h. Kemudian pilih kembali jendela Script Derau untuk kembali ke script
selanjutnya.
i. Masukan sintaks berikut ini pada baris ke-163.
img1 = handles.data1;
F = rgb2gray(img1);
G = dreksponensial(F, 0.01)
% DREKSPONENSIAL Menghasilkan citra yang telah diberi
derau
% menggunakan fungsi eksponensial negatif.
% Berdasarkan kode
% Rafael C. Gonzales, Richard E. Woods, dan
% Steven L. Eddins, 2004
% F = citra berskala keabuan
% varians = varians yang dikehendaki
[m, n] = size(F);
F = double(F);
G = zeros(m, n);
for i=1 : m
for j=1 : n
derau = -1/0.01 * log(1 - rand);
G(i,j) = round(F(i,j) + derau);
if G(i,j) > 255
G(i,j) = 255;
end
end
end
G = uint8(G);
axes(handles.axes2);
imshow(G);
guidata(hObject,handles);
% FILTER PERERATAAN
[tinggi, lebar] = size(G);
G2 = double(G);
for baris=2 : tinggi-1
for kolom=2 : lebar-1
jum = G2(baris-1, kolom-1)+ ...
G2(baris-1, kolom) + ...
G2(baris-1, kolom-1) + ...
G2(baris, kolom-1) + ...
G2(baris, kolom) + ...
G2(baris, kolom+1) + ...
G2(baris+1, kolom-1) + ...
G2(baris+1, kolom) + ...
G2(baris+1, kolom+1);
H(baris, kolom) = uint8(1/9 * jum);
end
end
axes(handles.axes3);
imshow(H);
guidata(hObject,handles);
clear;
Penggunaan
Filter
Rerataan
j. Kemudian simpan dengan mengklik icon “Save”.
C. Menampilkan Hasil
Adapun cara menampilkan hasil dari citra diatas adalah sebagai
berikut:
1. Untuk menampilkan hasil dari Restorasi Citra pertama kita harus
menjalankan Gui dengan Me-RUN. Run Dapat dilakukan pada jendela
editor atau pada jendela GUI.
Run pada Jendela editor
Run pada GUI

2. Maka akan muncul jendela figure.

3. Untuk memasukan citra klik Push Button Browser. Maka akan muncul
tampilan berikut. Pilih gambar yang akan di masukan kemudian
klik”Open”.
4. Maka gambar akan muncul pada Axes1

5. Untuk menampilkan hasil dari derau Gaussian, pilih Push Button Derau
Gaussian. Maka hasil dari gaussian akan muncul pada axes2 dan hasil
filter pererataan pada axes3.
6. Untuk menampilkan hasil dari derau Impuls, pilih Push Button Derau
Impuls. Maka hasil dari Impuls akan muncul pada axes2 dan hasil filter
pererataan pada axes3.

7. Untuk menampilkan hasil dari derau Eksponensial, pilih Push Button Derau
Eksponensial. Maka hasil dari eksponensial akan muncul pada axes2 dan
hasil filter pererataan pada axes3.

Anda mungkin juga menyukai