Pengolahan Citra Digital

Pengolahan Citra Digital

PR I ini adalah tugas pribadi. Anda boleh berdiskusi dengan teman Anda, tapi tidak boleh saling mencontek! Untuk jawaban yang persis sama nilai untuk soal yang bersangkutan akan dikurangi 50%.

Tujuan dari PR I ini adalah supaya Anda mengetahui cara-cara melakukan transformasi ruang terhadap citra, dan mengetahui apa manfaat transformasi tersebut.

Untuk PR I ini, Anda diminta mengerjakan pemrograman sederhana menggunakan Matlab. Beberapa fungsi primitif Matlab yang akan Anda perlukan untuk mengerjakan PR ini diantaranya adalah : imread, imwrite, fft2, ifft2, abs, log, hist, min, max, wavedec, waverec


Anda dapat menggunakan atau memodifikasi file myFruit.m yang akan diberikan sebagai contoh program. Untuk file citra input, Anda dapat menggunakan fruit1.bmp, fruit2.bmp, fruit3.bmp, dan fruit4.bmp. Keempat citra tersebut diambil dari citra fruit.bmp. Semua citra ini dan file contoh myFruit.m dapat Anda peroleh di http://www.cs.ui.ac.id/kuliah/citra Jika ada hal-hal yang perlu didiskusikan, Anda dapat menggunakan forum.iki.citra


  1. Untuk masing-masing citra fruit1.bmp, fruit2.bmp, fruit3.bmp, dan fruit4.bmp, buatlah Fourier Spectrum-nya dan simpan dalam file citra baru. Hasil yang diminta untuk soal ini adalah
    1. Tabel yang berisi:

i. Nama file citra

ii. Capture citra

iii. Capture Fourier-Spectrum citra

iv. Nilai minimal, maksimal, dan rata-rata dari Fourier Spectrum

v. Capture histogram

Fruit1.bmp

Min: 2.8860

Max: 12.9201

Rataan: 7.0274

Max jumlah:

1500

Nilai terbanyak: 7

Fruit2.bmp

Min: 2.3914

Max: 13.0032

Rataan: 6.9164

Max jumlah:

1800

Nilai terbanyak: 7

Fruit3.bmp

Min: -0.0640

Max: 12.9667

Rataan: 6.2347

Max jumlah:

1500

Nilai terbanyak: 6

Fruit4.bmp

Min: 1.1650

Max: 12.0134

Rataan: 5.9430

Max jumlah:

1600

Nilai terbanyak: 6

    1. Dari hasil yang Anda peroleh, dapatkah Anda menyimpulkan sesuatu dari Transformasi Fourier (TF) ? Apakah yang dapat Anda katakan tentang hubungan TF dan frekuensi tinggi-rendah citra ?

Transformasi Fourier akan menghasilkan Fourier Spectrum (FS). FS dapat memberikan informasi tentang tinggi rendah frekuensi citra. FS dapat dipahami sebagai berikut:


A

B


Biasanya, kita menyebut titik paling kiri atas sebagai titik sumbu atau titik (0,0) seperti pada gambar A. Namun pada FS, kita menempatkan titik sumbu atau titik (0,0) pada titik di tengah-tengah citra seperti pada gambar B. Cara kita menginterpretasikan FS adalah sebagai berikut :

- Nilai titik-titik di sekitar sumbu adalah nilai frekuensi-frekuensi rendah citra

- Nilai titik-titik yang jauh dari sumbu adalah nilai frekuensi-frekuensi tinggi citra.

Dengan demikian, jika kita memiliki citra berfrekuensi tinggi, maka titik-titik yang jauh dari sumbu akan bernilai besar.

C

C

B

B

A

B

B

C

C

A : titik sumbu (frekuensi 0)

B : titik-titik yang merepresentasikan frekuensi rendah (‘rendah’ relatif terhadap

titik-titik yang ada di posisi C)

C : titik-titik yang merepresentasikan frekuensi tinggi

Dari sekilas melihat keempat citra diatas, kita dapat mengatakan bahwa citra dengan frekuensi terendah adalah fruit4.bmp, karena citra tersebut sedikit mengandung sisi / edge dan transisi warna yang ada juga tidak terlalu tajam. Hal ini sesuai dengan FS citra tersebut, dimana dari FS keempat citra, FS fruit4.bmp memiliki nilai paling rendah pada daerah yang jauh dari sumbu (warna piksel-piksel di daerah yang jauh dari sumbu lebih gelap dibandingkan warna piksel-piksel di daerah yang sama pada FS citra lainnya).

Dari FS keempat citra, dapat pula kita katakan bahwa Fruit2.bmp memiliki frekuensi tertinggi. Hal ini dapat dilihat dari warna piksel-piksel yang jauh dari titik sumbu yang berwarna putih / terang.

Jika kita ingin melakukan filtering terhadap citra pada domain frekuensi Fourier, maka yang kita lakukan adalah :

- menghapus atau me-nol-kan nilai di titik-titik C untuk menghapus frekuensi tinggi, dan membiarkan nilai di titik-titik A atau B untuk melewatkan frekuensi rendah (lowpass filtering)

- menghapus atau me-nol-kan nilai di titik-titik A atau B untuk menghapus frekuensi rendah, dan membiarkan nilai di titik-titik C untuk melewatkan frekuensi tinggi (highpass filtering)

Gambar 11.5 dan 11.6 berikut ini diambil dari http://www.icaen.uiowa.edu/~dip/LECTURE/LinTransforms.html untuk mengilustrasikan apa yang terjadi jika kita melakukan lowpass dan highpass filtering pada suatu citra. Pada kedua gambar tersebut, penghapusan nilai digambarkan dengan memberi warna putih cemerlang (dalam hal ini warna putih cemerlang tersebut berarti menghilangkan atau menolkan, bukan memberi nilai 255 seperti pada pemetaan gray level)


  1. Untuk soal ini, Anda bebas menggunakan salah satu dari fruit1.bmp, fruit2.bmp, fruit3.bmp,fruit4.bmp,atau fruit.bmp. Anda juga diperbolehkan memilih untuk mengimplentasikan transformasi Walsh atau transformasi Hadamard.
    1. Untuk citra yang Anda pilih, buatlah transformasi Fourier, Walsh/Hadamard, dan transformasi Waveletnya. (Anda hanya perlu mengimplementasikan transformasi Walsh atau Hadamard, sedangkan untuk Fourier dan Wavelet Anda tinggal menggunakan fungsi primitif Matlab).
    2. Coba Anda ubah beberapa nilai pada hasil transformasi (Anda boleh mengubah sebanyak yang Anda suka).
    3. Kembalikan hasil transformasi ke citra (transformasi invers). Untuk masing-masing transformasi, perubahan apa yang terjadi terhadap citra ? Apakah perubahan tersebut terjadi pada keserluruhan citra ataukah hanya pada sebagiannya saja ?

Perubahan pada hasil FT :

- bersifat periodik

- terlihat pada keseluruhan citra

Perubahan pada hasil transformasi Walsh/Hadamard:

- noise akan berbentuk sama seperti basis pada posisi yang kita ubah (akan terlihat jelas jika angka perubahan yang dibuat cukup besar)

- terlihat pada keseluruhan citra

Perubahan pada hasil transformasi Wavelet:

- noise akan terlihat pada bagian tertentu pada citra. Jika kita mengubah pada bagian detail (H,V,D), hasilnya tidak akan terlalu signifikan. Berbeda jika kita mengubah pada bagian aproksimasi (A), maka perubahan akan terlihat lebih jelas.

- Penambahan noise pada level bawah pengaruhnya tidak sebesar penambahan noise pada level atas, karena perubahan pada level atas akan mempengaruhi rekonstruksi level-level di bawahnya.


  1. Sama seperti pada soal nomor satu, Anda bebas menggunakan salah satu dari fruit1.bmp, fruit2.bmp, fruit3.bmp,fruit4.bmp,atau fruit.bmp. Anda juga diperbolehkan memilih untuk mengimplementasikan transformasi Walsh atau transformasi Hadamard.
    1. Untuk citra yang Anda pilih, buatlah transformasi Fourier, Walsh/Hadamard, dan transformasi Waveletnya.
    2. Untuk setiap hasil Transformasi, selidiki apakah banyak angka 0 atau mendekati 0 yang dihasilkan ?
    3. Jika angka-angka yang mendekati 0 dibuang (atau nilainya dijadikan 0 saja), kemudian dilakukan transformasi invers. Apa yang terjadi pada citra? (Anda bebas menggunakan nilai toleransi sekehendak Anda)
    4. Dari ketiga citra, yang manakah menurut Anda yang paling baik digunakan untuk kompresi citra ?

Tujuan transformasi Fourier adalah mengetahui frekuensi citra, bukan untuk kompresi, sehingga hasil FT tidak akan mendukung kompresi (tidak bersifat compact support).

Dari ketiga transformasi, yang paling baik untuk kompresi adalah transformasi wavelet, karena jika kita melakukan kompresi pada bagian detail (H,V,D), citra invers atau citra hasil rekonstruksi tidak akan terlalu berbeda dengan citra awal.

Deixe o seu comentario

Posting Komentar