• Tidak ada hasil yang ditemukan

LAPORAN TUGAS MATA KULIAH PENGOLAHAN CITRA DIGITAL Aplikasi Filter pada Domain Spasial

N/A
N/A
Protected

Academic year: 2021

Membagikan "LAPORAN TUGAS MATA KULIAH PENGOLAHAN CITRA DIGITAL Aplikasi Filter pada Domain Spasial"

Copied!
14
0
0

Teks penuh

(1)

LAPORAN TUGAS MATA KULIAH

PENGOLAHAN CITRA DIGITAL

Aplikasi Filter pada Domain Spasial

Disusun oleh:

Iyan Hanafi Van Tony

NIM: 11/316832/PA/13958

JURUSAN ILMU KOMPUTER DAN ELEKTRONIKA

FAKULTAS MATEMATIKA DAN ILMU

PENGETAHUAN ALAM

UNIVERSITAS GADJAH MADA

(2)

Dasar Teori

Spasial Filtering adalah filtering dalam domain spasial. Dimana filtering sendiri merupakan proses melewatkan ataupun menghambat suatu frekuensi dari komponen, dalam hal ini komponen spasial. Istilah filter disini sebenarnya mengacu kepada proses domain frekuensi, yaitu meloloskan (menerima) komponen frekuensi tertentu dan menghilangkan (menolak) komponen frekuensi yang lain. Sebagai contoh, filter lolos rendah (Low Pass Filter) berarti meloloskan komponen frekuensi yang rendah.

Pemfilteran domain spasial adalah proses manipulasi kumpulan piksel dari sebuah citra untuk menghasilkan citra baru. Pemfilteran domain spesial merupakan salah satu alat yang digunakan dalam banyak bidang untuk berbagai aplikasi, khususnya pada bagian ini untuk peningkatan kualitas citra dan perbaikan citra.

Di sini di asumsikan bahwa m = 2a+1 dan n = 2b+1, dengan a dan b adalah integer nonnegatif. Untuk mendapatkan citra hasil filtering yang lengkap maka persamaan 3-17 harus dihitung untuk x = 0,1, ..., M-1 dan y = 0,1, ... , N-1.

Korelasi dan Konvolusi

Korelasi adalah perkalian antara dua buah fungsi f(x,y) dan g(x,y). Untuk fungsi diksrit korelasi didefinisikan. Dimana x, y, k, dan l adalah variabel bebas yang memiliki nilai diskrit yang berupa posisi titik di dalam citra. M dan N adalah batas titik tetangga yang masih memberikan pengaruh ke titik yang sedang ditinjau untuk arah vertikal dan horizontal. Dalam hal ini h(x,y) disebut hasil korelasi dari citra f(x,y) dengan filterg(x,y).

Konvolusi adalah suatu proses yang cara kerjanya sama dengan proses korelasi, hanya saja nilai-nilai filternya dibalik 180⁰.

Merancang Filter Rata-rata

Filter ini biasa disebut sebagai filter penghalus (smoothing filters) dan

juga ada yang menyebut sebagai lowpass filters. Cara kerja filter rata-rata adalah seperti konvolusi. Filter ini biasa digunakan untuk mengaburkan (blurring) citra dan untuk mereduksi noise. blurring biasanya digunakan untuk menghilangkan detail kecil dari suatu citra sebelum dilakukan ekstraksi objek dan untuk menghubungkan celah kecil yang memisahkan garis atau kurva dan juga bisa digunakan untuk mereduksi noise.

(3)

FILTER SPASIAL NONLINIER

Filter spasial nonlinier atau disebut juga sebagai Order-statistics filtersadalah filter spasial nonlinier yang responsnya didasarkan pada pengurutan dari intensitas piksel-piksel tetangga yang dilingkupi oleh filter tersebut.

Beberapa Order-statistics filters yang biasa digunakan adalah filter maksimum (memilih nilai terbesar), yang berguna untuk memilih intensitas paling terang, filter minimum (memilih nilai terkecil) yang berguna untuk memilih intensitas paling gelap, filter rata-rata untuk memilih rata-rata dari piksel-piksel yang dilingkupi oleh filter dan filter median yang berguna untuk memilih nilai tengah.

Filter median biasa digunakan untuk menghilangkan noise impulse atau disebut juga noise salt-and-pepper, yaitu noise yang menyerupai taburan garam sehingga titik-titik hitam dan putih tampak pada citra.

Diagram Alir Program

Mulai Input citra sebagai

Matriks

Konversi citra ke grayscale

Tampilkan citra awal dan citra hasil olahan

Lakukan perkalian matriks citra dengan matriks filter yang sudah ditentukan

(4)

Menerapkan Algoritma pada Program

A. High Pass Filter 3x3 dan 5x5

import matplotlib.pyplot as plt import numpy as np

from scipy import ndimage

from scipy.misc.pilutil import Image def plot(data, title):

plot.i += 1 plt.subplot(2,2,plot.i) plt.imshow(data) plt.gray() plt.title(title) plot.i = 0 im = Image.open("E:\ini\saya.jpg").convert('L') data = np.array(im, dtype=int)

plot(data, 'Gambar Asli')

kernel = np.array([[-1, -1, -1], [-1, 8, -1], [-1, -1, -1]])

highpass_3x3 = ndimage.convolve(data, kernel) plot(highpass_3x3, 'High Pass 3x3')

kernel = np.array([[-1, -1, -1, -1, -1], [-1, 1, 2, 1, -1], [-1, 2, 4, 2, -1], [-1, 1, 2, 1, -1], [-1, -1, -1, -1, -1]]) highpass_5x5 = ndimage.convolve(data, kernel) plot(highpass_5x5, 'High Pass 5x5')

(5)

plt.show()

B. Gradient Filter Menggunakan Operator Sobel

import matplotlib.pyplot as plt import numpy as np

from scipy import ndimage

from scipy.misc.pilutil import Image def plot(data, title):

plot.i += 1 plt.subplot(2,2,plot.i) plt.imshow(data) plt.gray() plt.title(title) plot.i = 0 im = Image.open("E:\ini\susi.jpg").convert('L') data = np.array(im, dtype=float)

plot(data, 'Citra Masukan') kernel = np.array([[-1, -2, -1], [0, 0, 0], [1, 2, 1]])

hsobel_3x3 = ndimage.convolve(data, kernel) plot(hsobel_3x3, 'Horizontal Sobel 3x3') kernel = np.array([[-1, 0, 1],

[-2, 0, 2], [-1, 0, 1]])

vsobel_3x3 = ndimage.convolve(data, kernel) plot(vsobel_3x3, 'Vertical Sobel 3x3') plt.show()

C. Gradien Filter Menggunakan Operator Robert

import matplotlib.pyplot as plt import numpy as np

(6)

from scipy import ndimage

from scipy.misc.pilutil import Image def plot(data, title):

plot.i += 1 plt.subplot(2,2,plot.i) plt.imshow(data) plt.gray() plt.title(title) plot.i = 0 im = Image.open("E:\ini\susi.jpg").convert('L') data = np.array(im, dtype=float)

plot(data, 'Citra Masukan') kernel = np.array([[-1, 0], [0, -1]])

hsobel_3x3 = ndimage.convolve(data, kernel) plot(hsobel_3x3, 'Robert Cross 2x2')

kernel = np.array([[0, -1], [1, 0]])

vsobel_3x3 = ndimage.convolve(data, kernel) plot(vsobel_3x3, 'Robert Cross 2x2')

plt.show()

Hasil Eksperimen

A. Hasil Operasi Citra Menggunakan Filter High Pass Hasil Operasi High Pass

(7)
(8)

B. Hasil Operasi Menggunakan Gradient Filter Operator Sobel Hasil Operasi Sobel Operator

(9)

A. Hasil Operasi Citra Menggunakan Robert Cross Gradient Filter Hasil Operasi Robert Cross

(10)
(11)

Pembahasan

A. Algoritma Program

Program ini bekerja dengan cara menerima masukan citra. Untuk kemudian dari citra tersebut diolah menjadi matris dari citra tersebut. Kemudian dengan memanfaatkan persamaan model dari filter spasial yaitu:

𝑔(𝑚, 𝑛) = ∑ ∑ 𝑤(𝑖, 𝑗)𝑓(𝑚 − 𝑖, 𝑛 − 𝑗) 𝐽

𝑗=−𝐽 𝐼

𝑖=−𝐼

Dimana 𝑔(𝑚, 𝑛) adalah citra baru hasil olahan yang didapatkan dari jumlahan perkalian antara matriks filter secara horizontal dan secara vertikal dengan matriks citra secara horizontal dan vertikal kemudian melalui proses konvolusi didapatkan bahwa filter akan menyaring pada matriks citra masukan untuk memeperoleh citra baru yang diinginkan.

Setelah proses filterisasi dan konvolusi selesai maka hasil citra olahan beserta citra asli akan ditampilkan.

B. Listing Program

Progam ini ditulis menggunakan bahala pemrograman Python versi 3.4 serta menggunakan beberapa library, library yang penulis gunakan beserta fungsinya adalah :

(12)

2. Numpy : digunakan untuk melakukan operasi numerik 3. Scipy : untuk memuat citra dalam lingkungan python dan

menampilkannya sebagai array.

Sedangkan untuk pembahasan listing yang penulis gunakan adalah sebagai berikut :

1. import matplotlib.pyplot as plt untuk menampilkan citra hasil olahan 2. import numpy as np

untuk melakukan operasi numerik dimana penulis memuat numpy dengan keyword np dalam program ini.

3. from scipy import ndimage

untuk memuat citra sebagai matriks 4. from scipy.misc.pilutil import Image

fungsi Image didapatkan dalam folder

/...installasipython../lib/scipy/misc/pilutil yang berfugsi untuk memuat citra dalam lingkungan python.

5. def plot(data, title): plot.i += 1 plt.subplot(2,2,plot.i) plt.imshow(data) plt.gray() plt.title(title) plot.i = 0

adalah pembuatan fungsi yang bernama plot dungan deklarasi pada python menggunakan perintah “def”. Kemudian plt.i +=1 adalah melakukan proses increment pada variabel i, plt.subplot(2,2,plot.i) adalah untuk melakukan subplotting atau melakukan plotting citra lain.

Plt.imshow(data) adalaah menampilkan citra asli yang dituliskan dengan variabel “data”, plt.gray() adalah perintah untuk menapiilkan citra dalam grayscale, plt.titl.(title) adalah perintah untuk menampilkan title citra masing maling olahan dan plt.i=0 adalah nilai i untuk inisialisasi adalah 0. 6. im = Image.open("E:\ini\saya.jpg").convert('L')

perintah ini digunakan untuk membuka citra bernama “saya.jpg” yang berada dalam direktori "E:\ini\” kemudian mengonvertnya menjadi citra keabuan dengan perintah .convert(‘L’) kemudian menyimpannya dalam variabel “im”.

7. data = np.array(im, dtype=int)

perintah ini digunakan untuk menjadikan citra yang sebelumnya disimpan dalam variabe “im” menjadi berbentuk nilai matriksnya dengan

menggunakan tipe data int kemudian matriks tersebut disimpan dalam variabel data.

(13)

perintah ini untuk memplotkan matrik 2 dimensi dari variabel data dengan title ‘citra masukan’.

9. kernel = np.array([[-1, -2, -1], [0, 0, 0], [1, 2, 1]])

perintah ini adalah untuk membuat filter yang dituliskan berformat matrix atau array 2 dimensi yang disimpan dalam variabel “kernel”. Filter yang penulis gunakan adalah :

a. Highpass 3x3 dan matriksnya adalah:

−1 −1 −1

−1 8 −1

−1 −1 −1

dalam python

matriks tersebut dapat dituliskan menjadi [[−1, −1, −1], [−1, 8, −1], [−1, −1 − ,1]]. b. Highpass 5x5 dan matriksnya adalah

[−1, −1, −1, −1, −1], [−1, 1,2,1, −1], [−1,1,4,1, −1], [−1,1,2,1, −1]

[−1, −1, −1, −1, −1]]

c. Untuk horizontal sobel 3x3 adalah:

−1 −2 −1

0 0 0

1 2 1

d. Untuk vertikal sobel 3x3 adalah:

−1 0 1 −2 0 2 −1 0 1

e. Untuk Robert Cross 2x2 adalah: 0 −1

1 0

dan

−1 0

0 1

10. hsobel_3x3 = ndimage.convolve(data, kernel)

ndimage.convolve adalah melakukan operasi konvolusi terhadap citra asli yang dituliskan dengan variabel “data” dengan filter yang ditulskan

dengan variabel “kernel” kemudian hasil tersebut disimpan dalam variabel “hsobel_3x3”, untuk variabel lain penulis menggunakan variabel

“vsobel3x3”, “High_pass_3x3”, “high_pass_5x5”, serta “Robert_cross_2x2”.

11. plot(hsobel_3x3, 'Horizontal Sobel 3x3')

perintah tersebut adalah untuk memplot isi dari variabel “hsobel_3x3” dengan caption “Horizontal Sobel 3x3”, untuk variabel lain penulis

(14)

menggunakan variabel “vsobel3x3”, “High_pass_3x3”, “high_pass_5x5”, serta “Robert_cross_2x2”.

12. plt.show()

adalah perintah untuk menampilkan hasil olahan secara kelesuruhan menggunakan fungsi “plt” yang telah didefinisikan sebelumnya.

Kesimpulan

1. Progam ini bekerja dengan baik setelah pengujian dilakukan menggunakan 6 operator dan 3 citra masukan.

2. Proses konvolusi yang dituliskan di progam dapat digantikan dengan menggunakan perintah for maupun while yang berguna untuk melaakukan looping namun hal itu akan memperlama proses.

3. Pada Eksperimen penulis mencoba memasukkan citra berukuran 4320 x 3240 dan hasil pengolahan citra membutuhkan waktu yang lama.

Daftar Pustaka

Wilhelm Burger, Mark J. Burge. Principles of Digital Image Processing.2009.London: Springer

Mark Lutz. Learning Python 4th edition. 2009. California: O’Reily

Gonzalez C. , Rafael. Digital Image Processing 3th Editions. 2008. New York: Academic Press

Gambar

Diagram Alir Program

Referensi

Dokumen terkait

Pola agroforestry merupakan suatu sistem pola tanam yang memadukan berbagai jenis pohon dengan tanaman semusim, pola ini telah diterapkan oleh petani di berbagai

Kasus SP3 Illog Riau tahun 2008 dan lima terpidana korupsi kehutanan di Siak dan Pelalawan menggambarkan dengan jelas korporasi adalah actor utama pemberi suap agar izin larangan

Penelitian Eksperimental pada Kelinci yang Dilakukan Abrasi Ileum CORTISOL, TRANSFORMING GROWTH FACTOR β (TGF-β) LEVEL, AND THE INTRAPERITONEAL ADHESION DEGREE.. AFTER LAPAROSCOPY

Menurut Peraturan Direktur Jenderal Pajak Nomor PER-32/PJ/2015 adalah pajak atas penghasilan berupa gaji, upah, honorarium, tunjangan dan pembayaran lain dengan

Penyer ahan Mahasi swa Magang uni ver si t as pendi di kan Muhammadi yah Sor ong diSMP l eb STKI P Muhammadi yah Kabupat enSor ong... Penar i kan Mahasi swa Magang uni ver si t as

Dalam Buku Putih ini, priority setting dilakukan dengan menggunakan data sekunder yang tersedia, hasil studi Penilaian Resiko Kesehatan Lingkungan (Environmental

Sementara pendekatan kualitatif digunakan untuk menganalisis keterlaksanaan assessment pembelajaran IPA yang dilakukan oleh guru IPA SMP Negeri 01 Gresik melalui

Selain sikap tubuh yang salah yang seringkali menjadi kebiasaan, beberapa aktivitas berat seperti melakukan aktivitas dengan posisi berdiri lebih dari 1 jam dalam