• Tidak ada hasil yang ditemukan

BAB 4 PEMBAHASAN 4.1 Realisasi GUI Program - PERANCANGAN TAPIS BUTTERWORTH UNTUK MERESTORASI CITRA DIGITAL - Repository UNRAM

N/A
N/A
Protected

Academic year: 2019

Membagikan "BAB 4 PEMBAHASAN 4.1 Realisasi GUI Program - PERANCANGAN TAPIS BUTTERWORTH UNTUK MERESTORASI CITRA DIGITAL - Repository UNRAM"

Copied!
68
0
0

Teks penuh

(1)

24

BAB 4

PEMBAHASAN

4.1 Realisasi GUI Program

Berikut adalah realisasi tampilan antarmuka utama dari program

PERANCANGAN TAPIS BUTTERWORTH UNTUK MERESTORASI CITRA

DIGITAL yang dibuat pada tugas akhir ini.

Gambar 4.1 Tampilan antarmuka utama program

Pada tampilan utama program terdapat empat buah kontrol Axes yang digunakan

untuk menampilkan citra masukan yang dibaca, citra hasil pengaburan dan penambahan

derau, citra hasil penapisan Butterworth, error citra, dan grafik hasil evaluasi kinerja

tapis Butterworth. Terdapat juga sepuluh buah tombol yang mereferesentasikan tiap

proses yang terdapat pada program dalam melakukan proses restorasi citra

menggunakan tapis Butterworth. Tombol-tombol tersebut adalah tombol Buka Citra,

tombol Pengaburan, tombol Derau, tombol Rotasi, tombol Intensitas, tombol RESET,

tombol EVALUASI BUTTERWORTH LOWPASS, EVALUASI BUTTERWORTH

BANDPASS, EVALUASI BUTTERWORTH HIGHPASS, EVALUASI BUTTERWORTH

BANDSTOP. Selain itu terdapat juga empat buah kontrol Button Group yang

masing-masing memiliki tujuh buah kontrol Radio Button. Keempat kontrol Button Group

tersebut mereferesentasikan operasi-operasi penapisan pada empat bidang frekuensi.

Sedangkan kontrol-kontrol Radio Button yang terdapat di dalamnya mereferesentasikan

(2)

25

Selain antarmuka utama, program juga memiliki antarmuka tabel dan grafik

evaluasi kinerja tapis Butterworth. Berikut adalah tampilan antramuka tabel dan grafik

evaluasi yang dimaksud:

Gambar 4.2 Tampilan antarmuka tabel dan grafik evaluasi

Pada antramuka tabel dan grafik evaluasi kinerja terdapat sebuah kontrol Table

yang digunakan untuk menampilkan nilai dari parameter-parameter evaluasi yang

digunakan. Selain itu terdapat juga sebuah kontrol Axes yang digunakan untuk

menampilkan grafik dari parameter evaluasi RMSE, PSNR, PFE, dan MAE. Terdapat

juga empat buah kontrol Push Button yang digunakan untuk menampilkan grafik dari

parameter evaluasi RMSE, PSR, PFE, dan MAE.

Untuk lebih jelasnya, berikut adalah penjelasan detail terkait kontrol-kontrol

yang terdapat pada program.

4.1.1 Kontrol Tombol Buka Citra

Tombol ini digunakan untuk melakukan pembacaan citra masukan yang akan

diproses dengan memilih sendiri citra melalui jendela Open File yang ditamilkan. Hasil

pembacaan citra masukan akan ditampilkan pada sebuah kontrol Axes seperti yang

(3)

26

Gambar 4.3 Kontrol tombol Buka Citra

Berikut adalah perintah-perintah yang terdapat pada Callback kontrol tombol

Buka Citra:

function pushbutton1_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

set(handles.tombolDerau,'Enable','off'); set(handles.tombolKabur,'Enable','on'); set(handles.tombolRotasi,'Enable','off'); set(handles.tombolIntensitas,'Enable','off'); set(handles.tombolReset,'Enable','on');

set(handles.tombolEvaluasiLowPass,'Enable','off');

[namafile

namapath]=uigetfile('*.jpg;*.bmp;*.jpeg;*.png;*.tif;','Pilih Sebuah Citra');

namacitra=[namapath namafile];

if(size(namacitra,3) == 3)

namacitra = rgb2gray(namacitra); end

axes(handles.axes1)

imshow(namacitra); title('Citra Semula');

global I

I = getimage(handles.axes1);

Fungsi Callback tombol Buka Citra mengaktifkan kontrol tombol Pengaburan

(4)

27

Skala Intensitas dan tombol EVALUASI BUTTERWORTH LOWPASS menggunakan

perintah berikut ini.

set(handles.tombolDerau,'Enable','off'); set(handles.tombolKabur,'Enable','on'); set(handles.tombolRotasi,'Enable','off'); set(handles.tombolIntensitas,'Enable','off'); set(handles.tombolReset,'Enable','on');

set(handles.tombolEvaluasiLowPass,'Enable','off');

Fungsi MATLAB uigetfiledigunakan untuk menampilkan jendela Open File

guna memilih citra yang akan diproses. Fungsi uigetfilememiliki dua buah keluaran

yaitu namafile yang digunakan untuk menyimpan nama file dari citra yang dibaca, dan

lokasi absolut atau path dari citra tersebut. Setelah pemilihan citra, program melakukan

pengecekan apakah citra yang dibaca memiliki 3 kanal atau tidak dengan menggunakan

statement if.

if(size(namacitra,3) == 3)

namacitra = rgb2gray(namacitra); end

Apabila citra yang dibaca memiliki tiga kanal maka proses konversi ke

grayscale akan dilakukan dengan menggunakan fungsi MATLAB rgb2gray. Selanjutnya hasil pembacaan citra akan ditampilkan pada kontrol axes dengan

menggunakan perintah berikut ini.

axes(handles.axes1)

imshow(namacitra); title('Citra Semula');

Fungsi imshowdigunakan untuk menampilkan citra pada kontrol axes1. Fungsi ini melewatkan sebuah argument berupa citra yang dibaca. Hasil pembacaan citra

kemudian disimpan pada sebuah variabel global I dengan menggunakan perintah

berikut ini.

global I

I = getimage(handles.axes1);

(5)

28

4.1.2 Kontrol Tombol Pengaburan

Tombol ini digunakan untuk melakukan operasi pengaburan citra masukan yang

sudah dibaca dan ditampilkan pada axes1. Proses pengaburan dilakukan guna menguji kinerja tapis dalam melakukan restorasi.

Gambar 4.4 Kontrol tombol Pengaburan

Proses pengaburan melibatkan dua buah kontrol yaitu Push Button dan Pop-Up

Menu. Kontrol Pop-Up Menu menyediakan pilihan metode pengaburan yang bisa

digunakan. Adapun pilihan metode pengaburan yang bisa digunakan yaitu Tidak Ada,

Rerata, Motion, Disk, dan Gaussian.

Berikut adalah Callback tombol Pengaburan yang terdapat pada program.

function tombolKabur_Callback(hObject, eventdata, handles)

% hObject handle to tombolKabur (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

set(handles.tombolDerau,'Enable','on'); set(handles.tombolKabur,'Enable','off'); set(handles.tombolRotasi,'Enable','off'); set(handles.tombolIntensitas,'Enable','off'); set(handles.tombolReset,'Enable','on');

set(handles.tombolEvaluasiLowPass,'Enable','on'); set(handles.tombolEvaluasiBandPass,'Enable','on'); set(handles.tombolEvaluasiHighPass,'Enable','on'); set(handles.tombolEvaluasiBandStop,'Enable','on'); I = getimage(handles.axes1);

I=getimage(handles.axes1);

[baris, kolom, banyakKanal] = size(I);

(6)

29

switch get(handles.popupmenu7,'Value') case 1

imshow(uint8(kabur)); title('Citra Hasil Pengaburan')

Fungsi callback tombol Pengaburan melakukan pengaktifan terhadap beberapa

tombol yaitu tombol Derau, tombol RESET, tombol EVALUASI BUTTERWORTH

LOWPASS, tombol EVALUASI BUTTERWORTH BANDPASS, tombol EVALUASI

BUTTERWORTH HIGHPASS, dan tombol EVALUASI BUTTERWORTH

BANDSTOP. Selain itu dilakukan juga penonaktifan terhadap tombol Pengaburan,

tombol Rotasi, dan tombol Skala Intensitas. Berikut adalah perintah yang digunakan

untuk melakukan pengaktifan dan penonaktifan tombol-tombol tersebut.

set(handles.tombolDerau,'Enable','on'); set(handles.tombolKabur,'Enable','off'); set(handles.tombolRotasi,'Enable','off'); set(handles.tombolIntensitas,'Enable','off'); set(handles.tombolReset,'Enable','on');

(7)

30

Proses selanjutnya yaitu pembacaan citra masukan yang telah dibaca dan

ditampilkan pada axes1. Proses pembacaan citra dilakukan dengan menggunakan fungsi MATLAB getimage yang kemudian disimpan pada variabel I. Selanjutnya dilakukan pengecekan ukuran citra dengan menggunkan fungsi MATLAB size.

I=getimage(handles.axes1);

[baris, kolom, banyakKanal] = size(I);

Fungsi sizemelewatkan argument berupa citra yang akan dilihat ukurannya dan

mengembalikan tiga buah output yaitu variabel baris yang menyimpan jumlah baris, variabel kolom yang menyimpan jumlah kolom, dan variabel banyakKanal yang menyimpan banyak kanal dari citra yang dibaca. Apabila citra masukan yang dibaca

memiliki kanal 3 (citra RGB) maka akan dilakukan proses konversi citra dari RGB ke

grayscale dengan menggunakan fungsi MATLBA rgb2gray.

if banyakKanal ==1

Proses pengaburan dilakukan berdasarkan jenis pengaburan yang dipilih melalui

kontrol Pop-Up Menu. Proses pengaburan melibatkan statement switch-case untuk

menentukan jenis pengaburan yang dipilih. Statement switch memiliki kondisi yang

akan mengembalikan indeks dari pilihan yang terdapat pada kontrol Pop-Up Menu.

(8)

31

Apabila jenis pengaburan yang dipilih adalah Tidak Ada maka statement yang

akan dieksekusi adalah statement yang terdapat pada case 1. Pada Case 1 tidak terjadi

pengaburan, dimana citra yang tersimpan pada variabel kabur adalah citra asli yang

tersimpan pada variabel I. Apabila jenis pengaburan yan dipilih adalah Rerata maka

statemen yang akan dieksekusi adalah statemen pada case 2. Pada case dua dilakukan

pembangkitan tapis rerata berukuran 11x11 dengan menggunakan fungsi MATLAB

fspecial dan disimpan pada variabel H. Selanjutnya dilakukan penapisan dengan

menggunakan fungsi MATLAB imfilter untuk membuat citra menjadi kabur. Hasil

pengaburan selanjutnya disimpan pada variabel kabur. Adapun jika jenis pengaburan

yang dipilih adalah Motion maka statemen yang dieksekusi adalah statemen yang

terdapat pada case 3. Begitu juga jika jenis pengaburan yang dipilih adalah Disk maka

statement yang dieksekusi adalah statemen yang terdapat pada case 3. Dan pada saat

pengaburan yang dipilih adalah Gaussian maka statemen yang dieksekusi adalah

statement pada case 4.

Hasil pengaburan selanjutnya ditampilkan pada axes3 dengan menggunakan

perintah berikut ini.

axes(handles.axes3)

imshow(uint8(kabur)); title('Citra Hasil Pengaburan')

4.1.3 Kontrol tombol Derau

Kontrol ini digunakan untuk menambahkan derau terhadap citra asli yang sudah

dikaburkan. Penambahan derau hanya bisa dilakukan setelah tombol pengaburan

ditekan. Proses penambahan derau dilakukan guna menguji kinerja atau keandalan dari

(9)

32

Gambar 4.5 Kontrol tombol Derau

Proses penambahan derau melibatkan tiga kontrol utama yaitu Push Button,

Pop-Up Menu, dan Edit Text. Kontrol Pop-Up Menu menyediakan pilihan jenis derau

yang akan disisipkan pada citra yang telah dikaburkan. Adapun kontrol Edit Text

digunakan untuk menentukan/memasukkan nilai variansi dari derau yang ingin

ditambahkan. Adapun jenis-jenis derau yang tersedia pada kontrol Pop-Up Menu

tersebut adalah Gaussian, Poisson, Salt & Pepper, dan Speckle.

Berikut adalah fungsi callback yang terdapat pada tombol Derau pada program

ini.

function tombolDerau_Callback(hObject, eventdata, handles)

% hObject handle to tombolDerau (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

set(handles.tombolDerau,'Enable','off'); set(handles.tombolKabur,'Enable','off'); set(handles.tombolRotasi,'Enable','on'); set(handles.tombolIntensitas,'Enable','on'); set(handles.tombolReset,'Enable','on');

set(handles.tombolEvaluasiLowPass,'Enable','on'); set(handles.tombolEvaluasiBandPass,'Enable','on'); set(handles.tombolEvaluasiHighPass,'Enable','on'); set(handles.tombolEvaluasiBandStop,'Enable','on'); I_kabur = getimage(handles.axes3);

% Mendefinisikan variansi derau

variansi = str2double(get(handles.editVariansi,'String'));

switch get(handles.popupmenu8,'Value') case 1

derau = imnoise(I_kabur,'gaussian', 0,variansi); case 2

(10)

33

imshow(uint8(derau)); title('Citra Pengaburan dan Derau')

Seperti halnya pada callback kontrol tombol Pengaburan, pada callback tombol

ini dilakukan pengaktifan terhadap tombol Rotasi, tombol Skala Intensitas, tombol

RESET, tombol EVALUASI BUTTERWORTH LOWPASS, tombol EVALUASI

BUTTERWORD BANDPASS, tombol EVALUSASI BUTTERWORTH HIGHPASS,

dan tombol EVALUASI BUTTERWORTH BANDSTOP. Selain itu dilakukan juga

penonaktifpan terhadap tombol Pengaburan, dan tombol Derau. Berikut adalah

perintah-perintah yang digunakan melakukan hal tersebut.

set(handles.tombolDerau,'Enable','off'); set(handles.tombolKabur,'Enable','off'); set(handles.tombolRotasi,'Enable','on'); set(handles.tombolIntensitas,'Enable','on'); set(handles.tombolReset,'Enable','on');

set(handles.tombolEvaluasiLowPass,'Enable','on'); set(handles.tombolEvaluasiBandPass,'Enable','on'); set(handles.tombolEvaluasiHighPass,'Enable','on'); set(handles.tombolEvaluasiBandStop,'Enable','on');

Selanjutnya dilakukan pengambilan nilai variansi dari derau yang dimasukkan

melalui kontrol Edit Text dengan menggunakan perintah berikut ini.

variansi = str2double(get(handles.editVariansi,'String'));

Nilai variansi yang dimasukkan melalui kontrol Edit Text editVariansidengan

menggunakan fungsi get. Nilai yang dimasukkan pada Edit Text merupakan data string

sehingga dilakukan proses konversi tipe dari string ke double dengan menggunakan

fungsi MATLAB str2double. Nilai variansi yang dimasukkan disimpan pada variable

variansi.

Proses penambahan derau melibatkan statemen switch-caseuntuk menentukan

jenis derau yang digunakan berdasarkan yang dipilih melalui kontrol Pop-Up Menu.

switch get(handles.popupmenu8,'Value') case 1

(11)

34 derau = imnoise(I_kabur, 'poisson');

case 3

derau = imnoise(I_kabur,'salt & pepper',variansi); case 4

derau = imnoise(I_kabur,'speckle',variansi); end

Apabila jenis pengaburan yang dipilih adalah Gaussian, maka statemen yang

dieksekusi adalah statement yang terdapat pada case 1. Proses penyisipan derau dilakukan dengan menggunakan fungsi MATLAB imnoise. Begitu seterusnya untuk

statemen-statemen yang terdapat pada case 2, case 3 dan case 4 akan dieksekusi jika

jenis derau yang dipilih secara berturut-turut adalah Poisson, Salt & Pepper, dan

Speckle. Citra yang sudah ditambahkan derau disimpan pada variabel derau. Citra hasil

penambahan derau akan ditampilkan pada axes3 dengan menggunakan fungsi MATLAB imshow.

4.1.4 Kontrol tombol Rotasi

Tombol ini digunakan untuk melakukan rotasi terhadap citra hasil pengaburan

dan berderau. Proses rotasi dilakukan guna menguji kinerja dari tapis dalam melakukan

penekanan derau (proses restorasi).

Gambar 4.6 Kontrol tombol Rotasi

Proses rotasi melibatkan dua kontrol utama yaitu Push Button dan Edit Text

(12)

35

penambahan derau. Berikut adalah fungsi callback yang digunakan untuk melakukan

proses rotasi citra.

function tombolRotasi_Callback(hObject, eventdata, handles)

% hObject handle to tombolRotasi (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

I_derau = getimage(handles.axes3);

% Mendefinisikan sudut

sudut = str2double(get(handles.editSudut,'String'));

derau =imrotate(I_derau,sudut);

axes(handles.axes3)

imshow(derau); title('Citra Hasil Rotasi');

Proses rotasi dilakukan dengan mengambil citra hasil pengaburan dan berderau

yang ditampilkan pada axes3 dengan menggunakan fungsi MATLAB getimage.

I_derau = getimage(handles.axes3);

Citra yang telah dibaca menggunakan fungsi MATLAB getimage disimpan pada variabel I_derau. Setelah pembacaan citra, dilakukan pengambilan nilai variansi

yang dimasukkan melalui kontrol Edit Text dengan menggunakan perintah berikut ini.

% Mendefinisikan sudut

sudut = str2double(get(handles.editSudut,'String'));

Nilai sudut yang dimasukkan melalui editSudut diambil dengan menggunakan

fungsi get dan dikonversi menjadi tipe data double menggunakan fungsi MATLAB

str2double. Proses rotasi terhadap citra yang tersimpan pada variabel I_derau dilakukan dengan menggunakan fungsi MATLAB imrotate.

derau =imrotate(I_derau,sudut); axes(handles.axes3)

imshow(derau); title('Citra Hasil Rotasi');

Fungsi imrotate melewatkan dua buah parameter yaitu I_derau selaku citra yang akan dirotasi dan sudutyang merupakan besar sudut rotasi perputaran citra. Hasil

(13)

36

4.1.5 Kontrol tombol Skala Intensitas

Kontrol ini digunakan untuk melakukan penskalaan intensitas dari piksel-piksel

pada citra yang telah dikaburkan dan ditambahkan derau. Proses penskalaan intesitas ini

ditujukan guna menguji kinerja dari tapis dalam melakukan restorasi citra.

Gambar 4.7 Kontrol tombol Skala Intensitas

Proses penskalaan intensitas citra melibatkan dua buah kontrol utama yaitu Push Button

dan Edit Text yang digunakan untuk menentukan faktor penskalaan yang digunakan.

Berikut adalah fungsi callback tombol Skala Intensitas pada program.

function tombolIntensitas_Callback(hObject, eventdata, handles)

% hObject handle to tombolIntensitas (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

I_kabur1 = getimage(handles.axes3);

% Mendefinisikan faktor

faktor = str2double(get(handles.editFaktor,'String'));

derau2 =I_kabur1/faktor;

axes(handles.axes3)

imshow(derau2); title('Citra 2');

Proses penskalaan intensitas citra dilakukan dengan mengambil nilai faktor yang

ditentukan pada Edit Text dengan menggunakan perintah berikut ini.

% Mendefinisikan faktor

(14)

37

Nilai faktor yang dimasukkan pada Edit Text editFaktordiambil menggunakan

fungsi get dan dikonversi menjadi tipe data double menggunakan fungsi MATLAB

str2double. Hasil konversi nilai faktor penskalaan disimpan pada variabel faktor. Proses penskalaan dilakukan dengan membagi tiap intensitas piksel pada citra dengan

faktor yang telah dimasukkan.

derau2 =I_kabur1/faktor; axes(handles.axes3)

imshow(derau2); title('Citra 2');

Hasil penskalaan citra disimpan pada variabel derau2 dan ditampilan pada

axes3menggunakan fungsi MATLAB imshow.

4.1.6 Kontrol Penapisan Frekuensi Cut-Off Butterworth Lowpass

Kontrol ini digunakan untuk melakukan operasi penapisan Butterworth pada

bidang frekuensi lowpass. Proses ini melibatkan tujuh buah kontrol Radio Button yang

dikelompokkan menggunakan kontrol Button Group. Setiap kontrol Radio Button

mereferesentasikan besar frekuensi off yang digunakan. Pada kasus ini frekuensi

cut-off yang digunakan adalah 50 Hz, 100 Hz, 150 Hz, 200 Hz, 250 Hz, 500 Hz, 1000 Hz.

Gambar 4.8 Kontrol penafisan frekuansi cut-off Butterworth lowpass

Pada bidang pelewatan Butterworth Lowpass Filter disana menggunakan

frekuensi cut-off 50 Hz, 100 Hz, 150 Hz, 200 Hz, 250 Hz, 500 Hz dan 1000 Hz,

masing-masing frekuensi cut-off ditentukan secara manual dan memiliki rentang 50 Hz

(15)

38

Berikut adalah fungsi callback yang digunakan untuk melakukan penapisan

Butterworth pada bidang frekuensi lowpass.

function uipanel21_SelectionChangeFcn(hObject, eventdata, handles)

% hObject handle to the selected object in uipanel21

% eventdata structure with the following fields (see UIBUTTONGROUP) % EventName: string 'SelectionChanged' (read only)

% OldValue: handle of the previously selected object or empty if none was selected

% NewValue: handle of the currently selected object

% handles structure with handles and user data (see GUIDATA)

%Semula = getimage(handles.axes1);

set(handles.tombolEvaluasiHighPass,'Enable','off'); set(handles.tombolEvaluasiBandStop,'Enable','off'); set(handles.tombolEvaluasiBandPass,'Enable','off'); set(handles.tombolEvaluasiLowPass,'Enable','on');

I=getimage(handles.axes1);

[baris, kolom, banyakKanal] = size(I);

switch get(eventdata.NewValue, 'Tag') case 'rad50'

judul='Hasil Butterworth Lowpass Frek Cut-off 50 Hz';

[fftI, filterKeluaran, hasil] = butterworthlpf(oimg1,50,4); axes(handles.axes2)

imshow(hasil);title(judul) case 'rad100'

judul='Hasil Butterworth Lowpass Frek Cut-off 100 Hz';

[fftI, filterKeluaran, hasil] = butterworthlpf(oimg1,100,4); axes(handles.axes2)

imshow(hasil);title(judul) case 'rad150'

judul='Hasil Butterworth Lowpass Frek Cut-off 150 Hz';

[fftI, filterKeluaran, hasil] = butterworthlpf(oimg1,150,4); axes(handles.axes2)

imshow(hasil);title(judul) case 'rad200'

judul='Hasil Butterworth Lowpass Frek Cut-off 200 Hz'

[fftI, filterKeluaran, hasil] = butterworthlpf(oimg1,200,4); axes(handles.axes2)

imshow(hasil);title(judul)

case 'rad250'

judul='Hasil Butterworth Lowpass Frek Cut-off 250 Hz'

(16)

39

[fftI, filterKeluaran, hasil] = butterworthlpf(oimg1,500,4); axes(handles.axes2)

imshow(hasil);title(judul)

case 'rad1000'

judul='Hasil Butterworth Lowpass Frek Cut-off 1000 Hz'

[fftI, filterKeluaran, hasil] = butterworthlpf(oimg1,1000,4); axes(handles.axes2)

hasil = imresize(hasil,[m n]);

% Normalisasi dari double ke uint8 %hasil = 255*hasil;

imd = double(Semula)-double(hasil);

axes(handles.axes4); imshow(imd,[]); title('Citra Error');

figure,

subplot(2,2,1) imshow(I,[]);

title('Citra Masukan') subplot(2,2,2)

imshow(fftI,[])

title('Citra Pada Domain Frekuensi') subplot(2,2,3)

imshow(filterKeluaran,[])

title('Citra Tapis Butterworth') subplot(2,2,4)

imshow(hasil,[])

title('Citra Tertapis')

Proses penafisan Butterworth pada bidang frekuensi lowpass dimulai dengan

mengaktifkan tombol EVALUASI BUTTERWORTH LOWPASS dan menonaktifkan

tombol EVALUASI BUTTERWORTH BANDPASS, tombol EVALUASI

BUTTERWORTH HIGHPASS, dan tombol EVALUASI BUTTERWORTH

BANDSTOP.

(17)

40

Langkah selanjutnya adalah melakukan pembacaan citra asli dan citra hasil

pengaburan dan berderau yang terdapat pada axes1 dan axes3 dengan menggunakan

perintah berikut ini.

I=getimage(handles.axes1);

[baris, kolom, banyakKanal] = size(I);

Hasil pembacaa citra masukan asli dilakukan dengan menggunakan fungsi

MATLAB getimage dan disimpan pada variabel I. Apabila citra asli memiliki tiga

kanal maka akan dilakukan proses konvesi dari RGB menjadi citra grayscale

menggunakan fungsi MATLAB rgb2gray. Adapun citra hasil pengaburan dan berderau

disimpan pada variabel oimg1. Pengambilan citra asli dilakukan untuk menghitung

error citra hasil penapisan terhadap citra asli.

Proses penapisan pada bidang frekuensi lowpass melibatkan statement

switch-case untuk menentukan besar frekuensi cut-off berdasarkan pilihan yang ditentukan.

Setiap case mereferesentasikan nilai freuensi cut-off yang terdapat pada Button Group

switch get(eventdata.NewValue, 'Tag') case 'rad50'

judul='Hasil Butterworth Lowpass Frek Cut-off 50 Hz';

[fftI, filterKeluaran, hasil] = butterworthlpf(oimg1,50,4); axes(handles.axes2)

imshow(hasil);title(judul) case 'rad100'

judul='Hasil Butterworth Lowpass Frek Cut-off 100 Hz';

[fftI, filterKeluaran, hasil] = butterworthlpf(oimg1,100,4); axes(handles.axes2)

imshow(hasil);title(judul) case 'rad150'

judul='Hasil Butterworth Lowpass Frek Cut-off 150 Hz';

[fftI, filterKeluaran, hasil] = butterworthlpf(oimg1,150,4); axes(handles.axes2)

imshow(hasil);title(judul) case 'rad200'

judul='Hasil Butterworth Lowpass Frek Cut-off 200 Hz'

[fftI, filterKeluaran, hasil] = butterworthlpf(oimg1,200,4); axes(handles.axes2)

imshow(hasil);title(judul)

case 'rad250'

(18)

41 [fftI, filterKeluaran, hasil] = butterworthlpf(oimg1,250,4); axes(handles.axes2)

imshow(hasil);title(judul)

case 'rad500'

judul='Hasil Butterworth Lowpass Frek Cut-off 500 Hz'

[fftI, filterKeluaran, hasil] = butterworthlpf(oimg1,500,4); axes(handles.axes2)

imshow(hasil);title(judul)

case 'rad1000'

judul='Hasil Butterworth Lowpass Frek Cut-off 1000 Hz'

[fftI, filterKeluaran, hasil] = butterworthlpf(oimg1,1000,4); axes(handles.axes2)

imshow(hasil);title(judul) end

Apabila frekuensi cut-off yang dipilih adalah 50 Hz maka statemen yang

dieksekusi adalah statement yang terdapat pada case ‘rad50’. Dan Begitu seterusnya

untuk frekuensi-frekuensi cut-off lainnya yang diwakili oleh tiap case. Proses penfisan

Butterworth dilakukan menggunakan fungsi butterworthlpf.

(19)

42 %filter3(i,j)= 1.0 - filter2(i,j);

%filter3(i,j) = filter1(i,j).*filter3(i,j);

end end

% Memperbarui citra dengan frekuensi-frekuensi yang dilewatkan

citra_tertapis = filter2.*fftI;

citra_tertapis = ifftshift(citra_tertapis);

citra_tertapis = ifft2(citra_tertapis,2*nx-1,2*ny-1); citra_tertapis = real(citra_tertapis(1:nx,1:ny)); citra_tertapis = uint8(citra_tertapis);

fftI = 20*log(fftI);

filterKeluaran = 20*log(filter2);

Fungsi butterworthlpf melewatkan tiga buah parameter/argumen yaitu citra yang akan ditapis, frekuensi cut-off dan jumlah orde dari proses penafisan. Fungsi ini

memiliki tiga output yaitu nilai FFT dari citra, tapis keluaran dan citra hasil penapisan.

fftI, filterKeluaran, hasil] = butterworthlpf(oimg1,50,4); axes(handles.axes2)

imshow(hasil);title(judul)

Citra hasil penafisan disimpan pada variabel hasil dan ditampilkan pada axes2 dengan menggunakan fungsi MATLAB imshow.

4.1.7 Kontrol Penapisan Frekuensi Cut-Off Butterworth Bandpass

Kontrol ini digunakan untuk melakukan operasi penapisan Butterworth pada

bidang frekuensi bandpass. Proses ini melibatkan tujuh buah kontrol Radio Button yang

dikelompokkan menggunakan kontrol Button Group. Setiap kontrol Radio Button

mereferesentasikan besar frekuensi cut-off yang digunakan. Pada kasus ini frekuensi

cut-off yang digunakan adalah 5|100 Hz, 100|200 Hz, 150|250 Hz, 200|350 Hz, 250|400

Hz, 500|700 Hz, 1000|1500 Hz.

(20)

43

Gambar 4.9 Kontrol penafisan frekuansi cut-off Butterworth bandpass

Pada bidang pelewatan Butterworth Bandpass Filter disana menggunakan

frekuensi cut-off 5|100 Hz, 100|200 Hz, 150|250 Hz, 200|350 Hz, 250|400 Hz, 500|700

Hz dan 1000|1500 Hz, masing-masing frekuensi cut-off ditentukan secara manual

frekuensi cut-off bawah dan atasnya. Contoh, frekuensi cut-off 5|100 Hz merupakan

frekuensi cut-off dengan frekuensi cut-off bawah 5 Hz dan frekuensi cut-off atas 100

Hz.

Berikut adalah fungsi callback yang digunakan untuk melakukan penapisan

Butterworth pada bidang frekuensi bandpass.

function uipanel25_SelectionChangeFcn(hObject, eventdata, handles)

% hObject handle to the selected object in uipanel25

% eventdata structure with the following fields (see UIBUTTONGROUP) % EventName: string 'SelectionChanged' (read only)

% OldValue: handle of the previously selected object or empty if none was selected

% NewValue: handle of the currently selected object

% handles structure with handles and user data (see GUIDATA)

set(handles.tombolEvaluasiLowPass,'Enable','off'); set(handles.tombolEvaluasiHighPass,'Enable','off'); set(handles.tombolEvaluasiBandStop,'Enable','off'); set(handles.tombolEvaluasiBandPass,'Enable','on');

I=getimage(handles.axes1);

[baris, kolom, banyakKanal] = size(I);

if banyakKanal ==1 Semula=I; else

(21)

44

oimg1=getimage(handles.axes3);

switch get(eventdata.NewValue, 'Tag') case 'rb5'

judul='Hasil Butterworth Bandpass Frek Cut-off 5|100 Hz'; [fftI, filterKeluaran,hasil] = butterworthbpf(oimg1,5,100,4); axes(handles.axes2)

judul='Hasil Butterworth Bandpass Frek Cut-off 1000|1500 Hz' [fftI, filterKeluaran,hasil] =

hasil = imresize(hasil,[m n]);

% Normalisasi dari double ke uint8

imd = double(Semula)-double(hasil);

axes(handles.axes4); imshow(imd,[]); title('Citra Error');

(22)

45 subplot(2,2,1)

imshow(I,[]);

title('Citra Masukan') subplot(2,2,2)

imshow(fftI,[])

title('Citra Pada Domain Frekuensi') subplot(2,2,3)

imshow(filterKeluaran,[])

title('Citra Tapis Butterworth') subplot(2,2,4)

imshow(uint8(hasil),[]) title('Citra Tertapis')

Proses penapisan pada bidang frekuensi bandpass melibatkan statemen

switch-case untuk menentukan besar frekuensi cut-off berdasarkan pilihan yang ditentukan. Setiap case mereferesentasikan nilai freuensi cut-off yang terdapat pada Button Group

switch get(eventdata.NewValue, 'Tag') case 'rb5'

(23)

46 case 'rb1000'

judul='Hasil Butterworth Bandpass Frek Cut-off 1000|1500 Hz' [fftI, filterKeluaran,hasil] =

dieksekusi adalah statement yang terdapat pada case ‘rad50’. Dan Begitu seterusnya

untuk frekuensi-frekuensi cut-off lainnya yang diwakili oleh tiap case. Proses penfisan

Butterworth pada bidang frekuensi bandpass dilakukan menggunakan fungsi

butterworthbpf.

function [fftI, filterKeluaran,citra_tertapis] = butterworthbpf(I,d0,d1,n)

% Memperbarui citra dengan frekuensi-frekuensi yang dilewatkan

citra_tertapis = filter3.*fftI;

(24)

47 citra_tertapis = ifftshift(citra_tertapis);

citra_tertapis = ifft2(citra_tertapis,2*nx-1,2*ny-1); citra_tertapis = real(citra_tertapis(1:nx,1:ny)); citra_tertapis = uint8(citra_tertapis);

fftI = 20*log(fftI);

filterKeluaran = 20*log(filter3);

Fungsi butterworthbpfmelewatkan empat buah parameter/argumen yaitu citra

yang akan ditapis, frekuensi cut-off awal, frekuensi cut-off akhir dan jumlah orde dari

proses penafisan. Fungsi ini memiliki tiga output yaitu nilai FFT dari citra, tapis

keluaran dan citra hasil penapisan.

[fftI, filterKeluaran,hasil] = butterworthbpf(oimg1,5,100,4); axes(handles.axes2)

imshow(hasil);title(judul)

Citra hasil penafisan disimpan pada variabel hasil dan ditampilkan pada axes2 dengan menggunakan fungsi MATLAB imshow.

4.1.8 Kontrol Penapisan Frekuensi Cut-Off Butterworth Highpass

Kontrol ini digunakan untuk melakukan operasi penapisan Butterworth pada

bidang frekuensi highpass. Proses ini melibatkan tujuh buah kontrol Radio Button yang

dikelompokkan menggunakan kontrol Button Group. Setiap kontrol Radio Button

mereferesentasikan besar frekuensi cut-off yang digunakan. Pada kasus ini frekuensi

cut-off yang digunakan adalah 50 Hz, 100 Hz, 150 Hz, 200 Hz, 250 Hz, 500 Hz, 1000

Hz.

(25)

48

Pada bidang pelewatan Butterworth Highpass Filter disana menggunakan

frekuensi cut-off 50 Hz, 100 Hz, 150 Hz, 200 Hz, 250 Hz, 500 Hz dan 1000 Hz,

masing-masing frekuensi cut-off ditentukan secara manual dan memiliki rentang 50 Hz

dari setiap frekuensi cut-off. Kecuali, frekuensi cut-off 250 Hz, 500 Hz dan 1000 Hz.

Berikut adalah fungsi callback yang digunakan untuk melakukan penapisan

Butterworth pada bidang frekuensi highpass.

function uipanel31_SelectionChangeFcn(hObject, eventdata, handles)

% hObject handle to the selected object in uipanel31

% eventdata structure with the following fields (see UIBUTTONGROUP) % EventName: string 'SelectionChanged' (read only)

% OldValue: handle of the previously selected object or empty if none was selected

% NewValue: handle of the currently selected object

% handles structure with handles and user data (see GUIDATA)

%Semula = getimage(handles.axes1);

set(handles.tombolEvaluasiHighPass,'Enable','on'); set(handles.tombolEvaluasiBandStop,'Enable','off'); set(handles.tombolEvaluasiBandPass,'Enable','off'); set(handles.tombolEvaluasiLowPass,'Enable','off');

I=getimage(handles.axes1);

[baris, kolom, banyakKanal] = size(I);

switch get(eventdata.NewValue, 'Tag') case 'rm50'

judul='Hasil Butterworth HighPass Frek Cut-off 50 Hz'; [fftI, filterKeluaran, hasil] = butterworthhpf(oimg1,50,4); axes(handles.axes2)

imshow(hasil);title(judul) case 'rm100'

judul='Hasil Butterworth HighPass Frek Cut-off 100 Hz'; [fftI, filterKeluaran, hasil] = butterworthhpf(oimg1,100,4); axes(handles.axes2)

imshow(hasil);title(judul) case 'rm150'

judul='Hasil Butterworth HighPass Frek Cut-off 150 Hz'; [fftI, filterKeluaran, hasil] = butterworthhpf(oimg1,150,4); axes(handles.axes2)

imshow(hasil);title(judul) case 'rm200'

judul='Hasil Butterworth HighPass Frek Cut-off 200 Hz'

(26)

49

[fftI, filterKeluaran, hasil] = butterworthhpf(oimg1,250,4); axes(handles.axes2)

imshow(hasil);title(judul)

case 'rm500'

judul='Hasil Butterworth HighPass Frek Cut-off 500 Hz'

[fftI, filterKeluaran, hasil] = butterworthhpf(oimg1,500,4); axes(handles.axes2)

imshow(hasil);title(judul)

case 'rm1000'

judul='Hasil Butterworth HighPass Frek Cut-off 1000 Hz'

[fftI, filterKeluaran, hasil] = butterworthhpf(oimg1,1000,4); axes(handles.axes2)

hasil = imresize(hasil,[m n]);

% Normalisasi dari double ke uint8 %hasil = 255*hasil;

imd = double(Semula)-double(hasil);

axes(handles.axes4); imshow(imd,[]); title('Citra Error');

figure,

subplot(2,2,1) imshow(I,[]);

title('Citra Masukan') subplot(2,2,2)

imshow(fftI,[])

title('Citra Pada Domain Frekuensi') subplot(2,2,3)

imshow(filterKeluaran,[])

title('Citra Tapis Butterworth') subplot(2,2,4)

imshow(hasil,[])

title('Citra Tertapis')

Proses penapisan pada bidang frekuensi highpass melibatkan statement

switch-case untuk menentukan besar frekuensi cut-off berdasarkan pilihan yang ditentukan. Setiap case mereferesentasikan nilai freuensi cut-off yang terdapat pada Button Group

switch get(eventdata.NewValue, 'Tag') case 'rm50'

judul='Hasil Butterworth HighPass Frek Cut-off 50 Hz'; [fftI, filterKeluaran, hasil] = butterworthhpf(oimg1,50,4); axes(handles.axes2)

(27)

50 case 'rm100'

judul='Hasil Butterworth HighPass Frek Cut-off 100 Hz'; [fftI, filterKeluaran, hasil] = butterworthhpf(oimg1,100,4); axes(handles.axes2)

imshow(hasil);title(judul) case 'rm150'

judul='Hasil Butterworth HighPass Frek Cut-off 150 Hz'; [fftI, filterKeluaran, hasil] = butterworthhpf(oimg1,150,4); axes(handles.axes2)

imshow(hasil);title(judul) case 'rm200'

judul='Hasil Butterworth HighPass Frek Cut-off 200 Hz'

[fftI, filterKeluaran, hasil] = butterworthhpf(oimg1,200,4); axes(handles.axes2)

imshow(hasil);title(judul)

case 'rm250'

judul='Hasil Butterworth HighPass Frek Cut-off 250 Hz'

[fftI, filterKeluaran, hasil] = butterworthhpf(oimg1,250,4); axes(handles.axes2)

imshow(hasil);title(judul)

case 'rm500'

judul='Hasil Butterworth HighPass Frek Cut-off 500 Hz'

[fftI, filterKeluaran, hasil] = butterworthhpf(oimg1,500,4); axes(handles.axes2)

imshow(hasil);title(judul)

case 'rm1000'

judul='Hasil Butterworth HighPass Frek Cut-off 1000 Hz'

[fftI, filterKeluaran, hasil] = butterworthhpf(oimg1,1000,4); axes(handles.axes2)

imshow(hasil);title(judul) end

Apabila frekuensi cut-off yang dipilih adalah 50 Hz maka statemen yang

dieksekusi adalah statement yang terdapat pada case ‘rad50’. Dan Begitu seterusnya

untuk frekuensi-frekuensi cut-off lainnya yang diwakili oleh tiap case. Proses penfisan

Butterworth pada bidang frekuensi highpass dilakukan menggunakan fungsi

butterworthhpf.

(28)

51

% Memperbarui citra dengan frekuensi-frekuensi yang dilewatkan

citra_tertapis = filter3.*fftI;

Fungsi butterworthhpf melewatkan tiga buah parameter/argumen yaitu citra yang akan ditapis, frekuensi cut-off dan jumlah orde dari proses penafisan. Fungsi ini

memiliki tiga output yaitu nilai FFT dari citra, tapis keluaran dan citra hasil penapisan.

fftI, filterKeluaran, hasil] = butterworthhpf(oimg1,50,4); axes(handles.axes2)

imshow(hasil);title(judul)

Citra hasil penafisan disimpan pada variabel hasil dan ditampilkan pada axes2 dengan menggunakan fungsi MATLAB imshow.

4.1.9 Kontrol Penapisan Frekuensi Cut-Off Butterworth Bandstop

Kontrol ini digunakan untuk melakukan operasi penapisan Butterworth pada

bidang frekuensi bandstop. Proses ini melibatkan tujuh buah kontrol Radio Button yang

(29)

52

mereferesentasikan besar frekuensi off yang digunakan. Pada kasus ini frekuensi

cut-off yang digunakan adalah 5|100 Hz, 100|200 Hz, 150|250 Hz, 200|350 Hz, 250|400 Hz,

500|700 Hz, 1000|1500 Hz.

Gambar 4.11 Kontrol penafisan frekuansi cut-off Butterworth bandstop

Pada bidang pelewatan Butterworth Bandstop Filter disana menggunakan

frekuensi cut-off 5|100 Hz, 100|200 Hz, 150|250 Hz, 200|350 Hz, 250|400 Hz, 500|700

Hz dan 1000|1500 Hz, masing-masing frekuensi cut-off ditentukan secara manual

frekuensi cut-off bawah dan atasnya. Contoh, frekuensi cut-off 5|100 Hz merupakan

frekuensi cut-off dengan frekuensi cut-off bawah 5 Hz dan frekuensi cut-off atas 100

Hz.

Berikut adalah fungsi callback yang digunakan untuk melakukan penapisan

Butterworth pada bidang frekuensi bandstop.

function uipanel29_SelectionChangeFcn(hObject, eventdata, handles)

% hObject handle to the selected object in uipanel29

% eventdata structure with the following fields (see UIBUTTONGROUP) % EventName: string 'SelectionChanged' (read only)

% OldValue: handle of the previously selected object or empty if none was selected

% NewValue: handle of the currently selected object

% handles structure with handles and user data (see GUIDATA)

set(handles.tombolEvaluasiLowPass,'Enable','off'); set(handles.tombolEvaluasiHighPass,'Enable','off'); set(handles.tombolEvaluasiBandStop,'Enable','on'); set(handles.tombolEvaluasiBandPass,'Enable','off');

I=getimage(handles.axes1);

(30)

53

switch get(eventdata.NewValue, 'Tag') case 'rt5'

judul='Hasil Butterworth Bandstop Frek Cut-off 5|100 Hz'; [fftI, filterKeluaran,hasil] = butterworthbspf(oimg1,5,100,4); axes(handles.axes2)

(31)

54 hasil = imresize(hasil,[m n]);

% Normalisasi dari double ke uint8

imd = double(Semula)-double(hasil);

axes(handles.axes4); imshow(imd,[]); title('Citra Error');

figure,

subplot(2,2,1) imshow(I,[]);

title('Citra Masukan') subplot(2,2,2)

imshow(fftI,[])

title('Citra Pada Domain Frekuensi') subplot(2,2,3)

imshow(filterKeluaran,[])

title('Citra Tapis Butterworth') subplot(2,2,4)

imshow(uint8(hasil),[]) title('Citra Tertapis')

Proses penapisan pada bidang frekuensi bandstop melibatkan statemen

switch-case untuk menentukan besar frekuensi cut-off berdasarkan pilihan yang ditentukan. Setiap case mereferesentasikan nilai freuensi cut-off yang terdapat pada Button Group

switch get(eventdata.NewValue, 'Tag') case 'rt5'

(32)

55

judul='Hasil Butterworth Bandstop Frek Cut-off 1000|1500 Hz' [fftI, filterKeluaran,hasil] =

dieksekusi adalah statement yang terdapat pada case ‘rad50’. Dan Begitu seterusnya

untuk frekuensi-frekuensi cut-off lainnya yang diwakili oleh tiap case. Proses penfisan

Butterworth pada bidang frekuensi bandstop dilakukan menggunakan fungsi

butterworthbspf.

(33)

56 end

end

% Memperbarui citra dengan frekuensi-frekuensi yang dilewatkan

citra_tertapis = filter3.*fftI;

citra_tertapis = ifftshift(citra_tertapis);

citra_tertapis = ifft2(citra_tertapis,2*nx-1,2*ny-1); citra_tertapis = real(citra_tertapis(1:nx,1:ny)); citra_tertapis = uint8(citra_tertapis);

fftI = 20*log(fftI);

filterKeluaran = 20*log(filter3);

Fungsi butterworthbspf melewatkan empat buah parameter/argumen yaitu citra yang akan ditapis, frekuensi cut-off awal, frekuensi cut-off akhir dan jumlah orde

dari proses penafisan. Fungsi ini memiliki tiga output yaitu nilai FFT dari citra, tapis

keluaran dan citra hasil penapisan.

fftI, filterKeluaran, hasil] = butterworthhpf(oimg1,50,4); axes(handles.axes2)

imshow(hasil);title(judul)

Citra hasil penafisan disimpan pada variabel hasil dan ditampilkan pada axes2 dengan

menggunakan fungsi MATLAB imshow.

4.1.10 Kontrol Tombol EVALUASI BUTTERWORTH LOWPASS

Tombol ini digunakan untuk melihat kinerja tapis Butterworth lowpass terhadap

seluruh frekuensi cut-off yang ada. Parameter-parameter evaluasi yang digunakan

adalah RMSE, PFE, MAE, CORR, SNR, PSNR, MI, QI, dan SSIM.

(34)

57

Berikut adalah fungsi callback tombol EVALUASI BUTTERWORTH

LOWPASS.

function tombolEvaluasiLowPass_Callback(hObject, eventdata, handles)

% hObject handle to tombolEvaluasiLowPass (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

I=im2double(getimage(handles.axes1)); [baris, kolom, banyakKanal] = size(I);

[fftI1, filterKeluaran1, hasil1] = butterworthlpf(oimg1,50,4);

% Frek Cut-Off 100

[fftI2, filterKeluaran2, hasil2] = butterworthlpf(oimg1,100,4);

% Frek Cut-Off 150

[fftI3, filterKeluaran3, hasil3] = butterworthlpf(oimg1,150,4);

% Frek Cut-Off 200

[fftI4, filterKeluaran4, hasil4] = butterworthlpf(oimg1,200,4);

% Frek Cut-Off 250

[fftI5, filterKeluaran5, hasil5] = butterworthlpf(oimg1,250,4);

% Frek Cut-Off 500

[fftI6, filterKeluaran6, hasil6] = butterworthlpf(oimg1,500,4);

% Frek Cut-Off 1000

[fftI7, filterKeluaran7, hasil7] = butterworthlpf(oimg1,1000,4);

% metrik-metrik evaluasi kualitas citra

[m,n]=size(Semula);

hasil1 = imresize(hasil1,[m n]); hasil2 = imresize(hasil2,[m n]); hasil3 = imresize(hasil3,[m n]); hasil4 = imresize(hasil4,[m n]); hasil5 = imresize(hasil5,[m n]); hasil6 = imresize(hasil6,[m n]); hasil7 = imresize(hasil7,[m n]);

oimg1 = imresize(oimg1,[m n]);

(35)

58

set(t,'ColumnName',{'RMSE |(Root Mean Square Error)';'PFE |(Persentage Fit Error)';'MAE |(Mean Absolute Error)'; 'CORR| (Correlation)';... 'SNR |(Signal to Noise Ratio'; 'PSNR |(Peak Signal to Noise

plot(z',d1, z',d2, z',d3, z',d4, z',d5, z',d6, z',d7); title('Grafik Kinerja TAPIS BUTTERWORTH LOWPASS'); grid on;

(36)

59

4.1.11 Kontrol Tombol EVALUASI BUTTERWORTH BANDPASS

Tombol ini digunakan untuk melihat kinerja tapis Butterworth bandpass

terhadap seluruh frekuensi cut-off yang ada. Parameter-parameter evaluasi yang

digunakan adalah RMSE, PFE, MAE, CORR, SNR, PSNR, MI, QI, dan SSIM.

Gambar 4.13 Kontrol tombol EVALUASI BUTTERWORTH BANDPASS

Berikut adalah fungsi callback yang terdapat pada tombol EVALUASI

BUTTERWORTH BANDPASS.

function tombolEvaluasiBandPass_Callback(hObject, eventdata, handles)

% hObject handle to tombolEvaluasiBandPass (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %set(handles.tombolEvaluasiLowPass,'Enable','on');

%set(handles.tombolEvaluasiBandPass,'Enable','off');

I=im2double(getimage(handles.axes1)); [baris, kolom, banyakKanal] = size(I);

if banyakKanal ==1 Semula=I; else

Semula=rgb2gray(I); end

% Frek Cut-Off 5|100

oimg1=getimage(handles.axes3);

[fftI1, filterKeluaran1, hasil1] = butterworthbpf(oimg1,5,100,4);

% Frek Cut-Off 100|200

[fftI2, filterKeluaran2, hasil2] = butterworthbpf(oimg1,100,200,4);

% Frek Cut-Off 150|250

(37)

60

% Frek Cut-Off 200|350

[fftI4, filterKeluaran4, hasil4] = butterworthbpf(oimg1,200,350,4);

% Frek Cut-Off 250|400

[fftI5, filterKeluaran5, hasil5] = butterworthbpf(oimg1,250,400,4);

% Frek Cut-Off 500|700

[fftI6, filterKeluaran6, hasil6] = butterworthbpf(oimg1,500,700,4);

% Frek Cut-Off 1000|1500

[fftI7, filterKeluaran7, hasil7] = butterworthbpf(oimg1,1000,1500,4);

% metrik-metrik evaluasi kualitas citra

[m,n]=size(Semula);

hasil1 = imresize(hasil1,[m n]); hasil2 = imresize(hasil2,[m n]); hasil3 = imresize(hasil3,[m n]); hasil4 = imresize(hasil4,[m n]); hasil5 = imresize(hasil5,[m n]); hasil6 = imresize(hasil6,[m n]); hasil7 = imresize(hasil7,[m n]);

(38)

61 set(t,'ColumnName',{'RMSE |(Root Mean Square Error)';'PFE |(Persentage Fit Error)';'MAE |(Mean Absolute Error)'; 'CORR| (Correlation)';... 'SNR |(Signal to Noise Ratio'; 'PSNR |(Peak Signal to Noise Ratio)';'MI | (Mutual Information)'; 'QI| (Quality Index)';...

'SSIM| (Measure of Structural Similarity)';})

set(t,'RowName',{'5|100 Hz'; '100|200 Hz'; '150|250 Hz'; '200|350 Hz'; '250|400 Hz'; '500|700 Hz'; '1000|1500 Hz'});

%Menampilkan grafik

z=1:9;

axes(handles.axes11);

plot(z',d1, z',d2, z',d3, z',d4, z',d5, z',d6, z',d7); title('Grafik Kinerja TAPIS BUTTERWORTH BANDPASS'); grid on;

legend('5|100 Hz', '100|200 Hz', '150|250 Hz', '200|350 Hz', '250|400 Hz', '500|700 Hz', '1000|1500 Hz')

set(gca,'XTick',1:9)

set(gca,'XTickLabel',{'RMSE','PFE','MAE','CORR','SNR','PSNR','MI','QI' ,'SSIM'});

save d1.mat d1; save d2.mat d2; save d3.mat d3; save d4.mat d4; save d5.mat d5; save d6.mat d6; save d7.mat d7;

4.1.12 Kontrol Tombol EVALUASI BUTTERWORTH HIGHPASS

Tombol ini digunakan untuk melihat kinerja tapis Butterworth highpass terhadap

seluruh frekuensi cut-off yang ada. Parameter-parameter evaluasi yang digunakan

adalah RMSE, PFE, MAE, CORR, SNR, PSNR, MI, QI, dan SSIM.

(39)

62

Berikut adalah fungsi callback dari tombol EVALUASI BUTTERWORTH

HIGHPASS.

function tombolEvaluasiHighPass_Callback(hObject, eventdata, handles)

% hObject handle to tombolEvaluasiHighPass (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

I=im2double(getimage(handles.axes1)); [baris, kolom, banyakKanal] = size(I);

[fftI1, filterKeluaran1, hasil1] = butterworthhpf(oimg1,50,4);

% Frek Cut-Off 100

[fftI2, filterKeluaran2, hasil2] = butterworthhpf(oimg1,100,4);

% Frek Cut-Off 150

[fftI3, filterKeluaran3, hasil3] = butterworthhpf(oimg1,150,4);

% Frek Cut-Off 200

[fftI4, filterKeluaran4, hasil4] = butterworthhpf(oimg1,200,4);

% Frek Cut-Off 250

[fftI5, filterKeluaran5, hasil5] = butterworthhpf(oimg1,250,4);

% Frek Cut-Off 500

[fftI6, filterKeluaran6, hasil6] = butterworthhpf(oimg1,500,4);

% Frek Cut-Off 1000

[fftI7, filterKeluaran7, hasil7] = butterworthhpf(oimg1,1000,4);

% metrik-metrik evaluasi kualitas citra

[m,n]=size(Semula);

hasil1 = imresize(hasil1,[m n]); hasil2 = imresize(hasil2,[m n]); hasil3 = imresize(hasil3,[m n]); hasil4 = imresize(hasil4,[m n]); hasil5 = imresize(hasil5,[m n]); hasil6 = imresize(hasil6,[m n]); hasil7 = imresize(hasil7,[m n]);

oimg1 = imresize(oimg1,[m n]);

size(oimg1) size(Semula) size(hasil1)

(40)

63

set(t,'ColumnName',{'RMSE |(Root Mean Square Error)';'PFE |(Persentage Fit Error)';'MAE |(Mean Absolute Error)'; 'CORR| (Correlation)';... 'SNR |(Signal to Noise Ratio'; 'PSNR |(Peak Signal to Noise

plot(z',d1, z',d2, z',d3, z',d4, z',d5, z',d6, z',d7); title('Grafik Kinerja TAPIS BUTTERWORTH HIGHPASS'); grid on;

(41)

64

4.1.13 Kontrol Tombol EVALUASI BUTTERWORTH BANDSTOP

Tombol ini digunakan untuk melihat kinerja tapis Butterworth bandstop

terhadap seluruh frekuensi cut-off yang ada. Parameter-parameter evaluasi yang

digunakan adalah RMSE, PFE, MAE, CORR, SNR, PSNR, MI, QI, dan SSIM.

Gambar 4.15 Kontrol tombol EVALUASI BUTTERWORTH BANDSTOP

Berikut adalah fungsi callback dari tombol EVALUASI BUTTERWORTH

BANDSTOP.

function tombolEvaluasiBandStop_Callback(hObject, eventdata, handles)

% hObject handle to tombolEvaluasiBandStop (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

I=im2double(getimage(handles.axes1)); [baris, kolom, banyakKanal] = size(I);

if banyakKanal ==1 Semula=I; else

Semula=rgb2gray(I); end

% Frek Cut-Off 5|100

oimg1=getimage(handles.axes3);

[fftI1, filterKeluaran1, hasil1] = butterworthbspf(oimg1,5,100,4);

% Frek Cut-Off 100|200

[fftI2, filterKeluaran2, hasil2] = butterworthbspf(oimg1,100,200,4);

% Frek Cut-Off 150|250

[fftI3, filterKeluaran3, hasil3] = butterworthbspf(oimg1,150,250,4);

% Frek Cut-Off 200|350

(42)

65

% Frek Cut-Off 250|400

[fftI5, filterKeluaran5, hasil5] = butterworthbspf(oimg1,250,400,4);

% Frek Cut-Off 500|700

[fftI6, filterKeluaran6, hasil6] = butterworthbspf(oimg1,500,700,4);

% Frek Cut-Off 1000|1500

[fftI7, filterKeluaran7, hasil7] = butterworthbspf(oimg1,1000,1500,4);

% metrik-metrik evaluasi kualitas citra

[m,n]=size(Semula);

hasil1 = imresize(hasil1,[m n]); hasil2 = imresize(hasil2,[m n]); hasil3 = imresize(hasil3,[m n]); hasil4 = imresize(hasil4,[m n]); hasil5 = imresize(hasil5,[m n]); hasil6 = imresize(hasil6,[m n]); hasil7 = imresize(hasil7,[m n]);

oimg1 = imresize(oimg1,[m n]);

(43)

66 'SNR |(Signal to Noise Ratio'; 'PSNR |(Peak Signal to Noise

Ratio)';'MI | (Mutual Information)'; 'QI| (Quality Index)';...

'SSIM| (Measure of Structural Similarity)';})

set(t,'RowName',{'5|100 Hz'; '100|200 Hz'; '150|250 Hz'; '200|350 Hz'; '250|400 Hz'; '500|700 Hz'; '1000|1500 Hz'});

%Menampilkan grafik

z=1:9;

axes(handles.axes11);

plot(z',d1, z',d2, z',d3, z',d4, z',d5, z',d6, z',d7); title('Grafik Kinerja TAPIS BUTTERWORTH BANDSTOP'); grid on;

legend('5|100 Hz', '100|200 Hz', '150|250 Hz', '200|350 Hz', '250|400 Hz', '500|700 Hz', '1000|1500 Hz')

set(gca,'XTick',1:9)

set(gca,'XTickLabel',{'RMSE','PFE','MAE','CORR','SNR','PSNR','MI','QI' ,'SSIM'});

save d1.mat d1; save d2.mat d2; save d3.mat d3; save d4.mat d4; save d5.mat d5; save d6.mat d6; save d7.mat d7;

4.2 Pengujian Program Restorasi Citra Tapis Butterworth

4.2.1 Penapisan Butterworth Bidang Frekuensi Lowpass

Berikut adalah proses penapisan Butterworth lowpass terhadap citra

mandrill.png dengan frekuensi cut-off 50 Hz. Pada ujicoba ini, citra diberikan derau

Gaussian dengan variansi 0.01.

(44)

67

Berdasarkan hasil pengujian yang dilakukan, terlihat bahwa tapis Butterworth

lowpass dengan frekuensi cut-off 50 Hz menghasilkan citra hasil penapisan dengan

derau tereduksi. Hal tersebut dapat dilihat dari citra hasil yang diperoleh, dimana derau

pada citra hasil penapisan memiliki variansi yang rendah dan citra hasil penapisan

mendekati citra aslinya. Citra hasil penapisan mengalami pengaburan akibat

terbuangnya semua koefisien frekuensi citra >50 Hz, yang berkontribusi pada citra

error.

Gambar 4.17 adalah gambar yang memperlihatkan citra uji berderau dalam

domain frekuensi dan citra tapis Butterworth lowpass 50 Hz, serta citra hasil penapisan.

Dapat dilihat bagaimana tampilan citra pada domain frekuensi dan citra dari tapis

Butterworth lowpass dengan frekuensi cutoff 50 Hz.

Citra berderau pada domain frekuensi, yang ada di sebelah kanan atas gambar,

memiliki koefisien-koefisien yang tersebar pada seluruh bidang frekuensi, dengan

sejumlah koefisien bernilai besar terkonsentrasi di titik tengah (atau di bidang frekuensi

rendah). Citra tapis, di sebelah kiri bawah gambar, menunjukkan sebuah lingkaran putih

dengan jari-jari dalam 50 Hz.

(45)

68

Gambar 4.18 Hasil penafisan Butterworth lowpass frekuensi cut-off (a) 100 Hz, (b)

150 Hz, (c) 200 Hz, (d) 250 Hz, (e) 500 Hz, (f) 1000 Hz

(a) (b)

(c) (d)

(46)

69

Seperti terlihat pada Gambar 4.18, citra hasil penapisan lowpass dengan

frekuensi 100 Hz, 150 Hz, dan 200 Hz memiliki efek pengaburan akibat dibuangnya

koefisien-koefisien frekuensi citra yang lebih besar dari frekuensi cutoffnya. Tetapi,

derau dapat direduksi secara signifikan pada ketiga hasil penapisan tersebut. Apa yang

terjadi pada penapisan lowpass dengan frekuensi cutoff 250 Hz, 500 Hz, dan 1000 Hz

berbeda dari lainnya. Pada hasil penapisan pada ketiga frekuensi cutoff ini, citra hasil

penapisan sedikit lebih tajam, meskipun derau tampak lebih jelas.

Berikut adalah tabel dan grafik evaluasi yang memperlihatkan kinerja tapis

Butterworth lowpass untuk tiap frekuensi cut-off.

Gambar 4.19 Tabel dan grafik evaluasi kinerja tapis Butterworth lowpass

Berdasarkan tabel dan grafik evaluasi kinerja tapis Butterworth pada Gambar

4.19 terlihat bahwa frekuensi cut-off 50 Hz memiliki nilai RMSE paling kecil dengan

nilai 131.6718, kemudian diikuti oleh frekuensi cut-off 100 Hz dengan RMSE 132.0758.

Nilai RMSE yang paling besar diperoleh pada frekuensi cut-off 100 Hz dengan nilai

134.7541. Semakin besar nilai frekuensi cut-off maka nilai RMSE yang diperoleh akan

(47)

70

4.2.2 Penapisan Butterworth Bidang Frekuensi Bandpass

Gambar 4.20 adalah proses penapisan Butterworth bandpass terhadap citra

mandrill.png dengan frekuensi cut-off 5|100 Hz. Pada ujicoba ini, citra diberikan derau

Gaussian dengan variansi 0.01.

Berdasarkan hasil pengujian yang dilakukan, terlihat bahwa tapis Butterworth

bandpass dengan frekuensi cutoff 5|100 Hz menghasilkan citra hasil penapisan dengan

nilai-nilai piksel yang didominasi dengan nilai rendah, yang mengakibatkan gelapnya

citra hasil penapisan. Citra hasil penapisan mengalami penggelapan akibat terbuangnya

semua koefisien frekuensi citra <5 Hz dan >100 Hz, yang berkontribusi pada citra error.

Citra error tampak memuat informasi citra akibat terbuangnya semua koefisien

frekuensi citra <5 Hz dan >100 Hz.

(48)

71

Gambar 4.21 Citra pada domain frekuensi dan citra tapis Butterworth bandpass dengan

frekuensi cutoff 5|100 Hz

Gambar 4.21 adalah gambar yang memperlihatkan citra uji berderau dalam

domain frekuensi dan citra tapis Butterworth bandpass dengan frekuensi cutoff 5|100

Hz, serta citra hasil penapisan. Dapat dilihat bagaimana tampilan citra pada domain

frekuensi dan citra dari tapis Butterworth bandpass dengan frekuensi cutoff 5|100 Hz.

Citra berderau pada domain frekuensi, yang ada di sebelah kanan atas gambar, memiliki

koefisien-koefisien yang tersebar pada seluruh bidang frekuensi, dengan sejumlah

koefisien bernilai besar terkonsentrasi di titik tengah (atau di bidang frekuensi rendah).

Citra tapis, di sebelah kiri bawah gambar, menunjukkan sebuah lingkaran putih dengan

jari-jari dalam 5 Hz dan jari-jari luar 100 Hz. Citra tertapis didominasi warna gelap,

(49)

72

Gambar 4.22 Hasil penafisan Butterworth bandpass frekuensi cutoff (a) 100|200 Hz,

(b) 150|250 Hz, (c) 200|350 Hz, (d) 250|400 Hz, (e) 500|700 Hz, (f) 1000|1500 Hz

(a) (b)

(c) (d)

(50)

73

Seperti terlihat pada Gambar 4.22, citra hasil penapisan bandpass dengan

frekuensi 100|200 Hz, 150|250 Hz, dan 200|350 Hz memiliki efek seperti deteksi tepi,

dimana piksel-piksel terang tampak pada tepi objek. Hal ini diakibatkan oleh

dibuangnya koefisien-koefisien frekuensi citra yang lebih kecil dari frekuensi cutoff

bawah dan yang lebih besar dari frekuensi cutoff atas. Apa yang terjadi pada penapisan

bandpass dengan frekuensi cutoff 250|400 Hz, 500|700 Hz, dan 1000|1500 Hz lebih

buruk dari sebelulmnya. Pada hasil penapisan pada ketiga frekuensi cutoff ini, citra hasil

penapisan tampak tidak memuat informasi apapun, kecuali hanya piksel-piksel terang

pada posisi yang acak.

Berdasarkan tabel dan grafik evaluasi kinerja tapis Butterworth pada Gambar

4.23 terlihat bahwa frekuensi cut-off 1000|1500 Hz justru memiliki nilai RMSE paling

kecil dengan nilai 0.5342, kemudian diikuti oleh frekuensi cutoff 500|700 Hz dengan

RMSE 6.3448. Nilai RMSE yang paling besar diperoleh pada frekuensi cutoff 5|100 Hz

dengan nilai 31.1234. Semakin besar nilai frekuensi cutoff maka nilai RMSE yang

diperoleh membentuk gelombang sinusoidal yang termodulasi dengan eksponensial

menyusut.

(51)

74

4.2.3 Penapisan Butterworth Bidang Frekuensi Highpass

Gambar 4.24 adalah penapisan Butterworth highpass terhadap citra mandrill.png

dengan frekuensi cut-off 50 Hz. Pada uji coba ini, citra diberikan derau Gaussian

dengan variansi 0.01.

Gambar 4.24 Hasil penapisan Butterworth frekuensi cutoff highpass 50 Hz

Berdasarkan hasil pengujian yang dilakukan, terlihat bahwa tapis Butterworth

highpass dengan frekuensi cutoff 50 Hz menghasilkan citra hasil penapisan yang

didominasi oleh piksel-piksel berwarna gelap, dengan piksel-piksel berwarna terang di

tepi-tepi objek. Hal ini diakibatkan oleh dibuangnya semua koefisien frekuensi yang

lebih kecil dari frekuensi cutoff (<50 Hz). Akibatnya, citra error justru memuat sebagian

besar informasi citra, semua koefisien frekuensi >=50 Hz berkontribusi pada citra error

tersebut. Kehadiran derau tampak nyata pada citra error, meskipun derau pada citra

(52)

75

Gambar 4.25 Citra pada domain frekuensi dan citra tapis Butterworth highpass dengan

frekuensi cutoff 50 Hz

Gambar 4.25 merupakan gambar yang memperlihatkan citra uji berderau dalam

domain frekuensi dan citra tapis Butterworth bandpass dengan frekuensi cutoff 50 Hz,

serta citra hasil penapisan. Dapat dilihat bagaimana tampilan citra pada domain

frekuensi dan citra dari tapis Butterworth highpass dengan frekuensi cutoff 50 Hz.

Citra berderau pada domain frekuensi, yang ada di sebelah kanan atas gambar,

memiliki koefisien-koefisien yang tersebar pada seluruh bidang frekuensi, dengan

sejumlah koefisien bernilai besar terkonsentrasi di titik tengah (atau di bidang frekuensi

rendah). Citra tapis, di sebelah kiri bawah gambar, menunjukkan sebuah lingkaran

hitam dengan jari-jari dalam 50 Hz. Citra tertapis didominasi warna gelap, akibat

terbuangnya semua koefisien frekuensi citra <50 Hz, yang menyebabkan tampilan

seperti mekanisme deteksi tepi. Piksel-piksel putih pada tepi-tepi objek tampak tidak

(53)

76

Gambar 4.26 Hasil penapisan Butterworth highpass frekuensi cutoff (a) 100 Hz, (b)

150 Hz, (c) 200 Hz, (d) 250 Hz, (e) 500 Hz, (f) 1000 Hz

Pada Gambar 4.26, semua citra tertapis didominasi warna gelap, akibat

terbuangnya semua koefisien frekuensi citra yang lebih kecil dari frekuensi cutoff-nya,

(a) (b)

(c) (d)

(54)

77

yang menyebabkan tampilan seperti mekanisme deteksi tepi. Piksel-piksel putih pada

tepi-tepi objek tampak tidak kontinyu. Dapat diperhatikan bahwa semakin besar

frekuensi cutoff yang diberikan, citra hasil penapisan memiliki piksel-piksel putih yang

semakin tidak kontinyu dan citra tersebut semakin didominasi oleh warna gelap. Dapat

diperhatikan pula bahwa citra tapis memiliki lingkaran hitam dengan radius yang lebih

besar seiring dengan bertambahnya frekuensi cutoff.

Gambar 4.27 Tabel dan grafik RMSE untuk penapisan Butterworth highpass untuk

sejumlah frekuensi cutoff.

Berdasarkan tabel dan grafik evaluasi kinerja tapis Butterworth pada Gambar

4.27 terlihat bahwa frekuensi cut-off 1000 Hz justru memiliki nilai RMSE paling kecil

dengan nilai 0.5342, kemudian diikuti oleh frekuensi cutoff 500 Hz dengan RMSE

7.5741. Nilai RMSE yang paling besar diperoleh pada frekuensi cutoff 50 Hz dengan

nilai 26.6142. Semakin besar nilai frekuensi cutoff maka nilai RMSE yang diperoleh

menyusut secara hampir linier.

4.2.4 Penapisan Butterworth Bidang Frekuensi Bandstop

Gambar 4.28 adalah penapisan Butterworth bandstop terhadap citra

mandrill.png dengan frekuensi cutoff 5|100 Hz. Pada uji coba ini, citra diberikan derau

(55)

78

Gambar 4.28 Hasil penapisan Butterworth bandstop dengan frekuensi cutoff 5|100 Hz

Berdasarkan hasil pengujian yang dilakukan, terlihat bahwa tapis Butterworth

bandpass dengan frekuensi cutoff 5|100 Hz menghasilkan citra hasil penapisan yang

didominasi oleh piksel-piksel berwarna gelap, dengan piksel-piksel berwarna terang

tersebar secara terpola mengikuti tekstur objek pada citra. Hasil ini diakibatkan oleh

dibuangnya semua koefisien frekuensi antara 5 Hz sampai 100 Hz. Akibatnya, citra

error justru memuat sebagian besar informasi citra, dimana semua koefisien frekuensi

citra <50 Hz dan >100 Hz berkontribusi pada citra error tersebut. Kehadiran derau

tampak sangat nyata pada citra error.

Gambar 4.29 merupakan gambar yang memperlihatkan citra uji berderau dalam

domain frekuensi dan citra tapis Butterworth bandstop dengan frekuensi cutoff 5|100

Hz, serta citra hasil penapisan. Dapat dilihat bagaimana tampilan citra pada domain

(56)

79

Gambar 4.29 Citra pada domain frekuensi dan citra tapis Butterworth bandstop dengan

frekuensi cutoff 5|100 Hz

Citra berderau pada domain frekuensi, yang ada di sebelah kanan atas gambar,

memiliki koefisien-koefisien yang tersebar pada seluruh bidang frekuensi, dengan

sejumlah koefisien bernilai besar terkonsentrasi di titik tengah (atau di bidang frekuensi

rendah). Citra tapis, di sebelah kiri bawah gambar, menunjukkan sebuah lingkaran

hitam dengan jari-jari dalam 5 Hz dan jari-jari luar 100 Hz. Citra tertapis didominasi

warna gelap, akibat terbuangnya semua koefisien frekuensi citra antara 5 Hz sampai 100

Hz, dengan piksel-piksel berwarna terang tersebar secara terpola mengikuti tekstur

objek pada citra. Piksel-piksel putih tersebut tampak tidak kontinyu.

Dari Gambar 4.30, dapat diperhatikan bahwa citra tapis memiliki lingkaran

hitam dengan radius dalam dan radius luar yang lebih besar seiring dengan

bertambahnya frekuensi cutoff. Hasil penapisan dengan frekuensi cutoff 200|350 Hz,

250|400 Hz, dan 500|700 Hz tampak memiliki derau yang lebih tereduksi dibandingkan

dengan hasil penapisan dengan frekuensi cutoff lainnya. Hasil penapisan dengan

(57)

80

Gambar 4.30 Hasil penafisan Butterworth bandstop frekuensi cutoff (a) 100|200 Hz,

(b) 150|250 Hz, (c) 200|350 Hz, (d) 250|400 Hz, (e) 500|700 Hz, (f) 1000|1500 Hz

(a) (b)

(c) (d)

(58)

81

Gambar 4.31 Tabel dan grafik RMSE untuk penapisan Butterworth bandstop untuk

sejumlah frekuensi cutoff.

Berdasarkan tabel dan grafik evaluasi kinerja tapis Butterworth bandstop pada

Gambar 4.31 terlihat bahwa frekuensi cutoff 5|100 Hz memiliki nilai RMSE paling kecil

dengan nilai 126.0731, kemudian diikuti oleh frekuensi cutoff 100|200 Hz dengan

RMSE 136.7436. Nilai RMSE yang paling besar diperoleh pada frekuensi cutoff

1000|1500 Hz dengan nilai 138.2939. Semakin besar nilai frekuensi cutoff maka nilai

(59)

82

4.3 Komparasi RMSE Tapis Butterworth Pada Sejumlah Citra Uji

4.3.1 Perbandingan RMSE Tiga Citra Uji Bidang Frekuensi Lowpass

Gambar 4.32 Tabel dan grafik RMSE untuk penapisan Butterworth lowpass untuk citra

uji boat

Gambar 4.33 Tabel dan grafik RMSE untuk penapisan Butterworth lowpass untuk citra

(60)

83

Gambar 4.34 Tabel dan grafik RMSE untuk penapisan Butterworth lowpass untuk citra

uji lena

Berdasarkan tabel dan grafik evaluasi kinerja tapis Butterworth lowpass dari

ketiga citra uji pada Gambar 4.32-4.34 terlihat bahwa hasil penapisan dengan frekuensi

cutoff 50 Hz selalu memiliki nilai RMSE paling kecil dan hasil penapisan dengan

frekuensi cutoff 1000 Hz selalu memiliki nilai RMSE paling besar. Semakin besar nilai

frekuensi cutoff maka nilai RMSE yang diperoleh meningkat hampir linier dengan

kemiringan yang cukup kecil.

Nilai RMSE paling kecil didapatkan dari hasil penapisan dengan frekuensi cutoff

50 Hz pada citra lena dengan nilai 97.2053, sedangkan nilai RMSE paling besar

didapatkan dari hasil penapisan dengan frekuensi cutoff 1000 Hz pada citra boat dengan

(61)

84

4.3.2 Perbandingan RMSE Tiga Citra Uji Bidang Frekuensi Bandpass

Gambar 4.35 Tabel dan grafik RMSE untuk penapisan Butterworth bandpass untuk

citra uji boat

Gambar 4.36 Tabel dan grafik RMSE untuk penapisan Butterworth bandpass untuk

Gambar

Gambar 4.6 Kontrol tombol Rotasi
Gambar 4.14 Kontrol tombol EVALUASI BUTTERWORTH HIGHPASS
Gambar 4.15 Kontrol tombol EVALUASI BUTTERWORTH BANDSTOP
Gambar 4.16 Hasil penapisan Butterworth frekuensi cut-off lowpass 50 Hz
+7

Referensi

Dokumen terkait

No Kegiatan Nama Paket Jenis Volume Pagu Sumber Dana Lokasi Pekerjaan Tanggal aw.. Pengadaan Kendaraan Dinas/Operasional Belanja Modal Peralatan dan Mesin-Pengadaan Alat Angkutan

Tujuan penelitian adalah menentukan strategi pengendalian vektor spesifik berdasarkan distribusi spasial/ pemetaan kasus DBD dengan sistem informasi geografi (SIG), Index

Benang merah pembelajaran tutorial adalah untuk memberikan kepuasan atau pemahaman secara tuntas (mastery learning) kepada siswa mengenai materi/bahan pelajaran yang

Bahan pemutih yang banyak digunakan adalah senyawa yang mengandung khlor, yang dalam penggunaannya akan menghasilkan zat yang sangat berbahaya seperti gas khlor, khloroform

Dalam rangkaian finalisasi seluruh tahapan dan proses Penyusunan Strategi Pembangunan Permukiman dan Infrastruktur Perkotaan SPPIP Kota Muara Bungo Tahun Anggaran 2011, Satuan

Hasil : Hasil penelitian uji paired sample T-test pada kedua kelompok didapatkan hasil p=0,000&lt;0,05 yang berarti ada pengaruh pemberian terapi laser berintensitas rendah dan

terutama yang berhubungan dengan citra merek dan kepuasan konsumen serta loyalitas pelanggan sehingga bisa mempertahankan jumlah pelanggan dan bisa meningkatkan

Sehingga dapat disimpulkan bahwa H 0 ditolak, yang artinya secara simultan perubahan laba bersih, perubahan arus kas operasi, perubahan arus kas investasi, perubahan