28 Oktober 2008

Noise

Noise pada Citra

Ada banyak jenis noise yang dapat mempengaruhi kualitas citra, diantaranya adalah salt and pepper, gaussian, speckle, localvar dan poisson. Efek masing-masing noise tentunya berbeda-beda. Ada yang efeknya sangat mempengaruhi tampilan citra, tapi ada juga yang tidak begitu berpengaruh terhadap citra.

Salt & Peper

Seperti namanya noise jenis ini terlihat seperti salt and pepper. Pada citra akan nampak seperti titik-titik. Untuk citra RGB titik-titik muncul dalam tiga warna yakni merah (red), hijau (green) dan biru (blue), sedangkan pada citra GRAY noise akan muncul dalam dua warna yakni hitam (black) dan putih (white). Noise ini memberikan efek ”on dan off” pada pixel. Pada MatLab kita dapat mengatur ”konstanta” noise. Konstanta berupa angka numerik non negatif dengan range 0 sampai dengan 1. Makin besar konstantanya citra akan semakin kabur, sebaliknya makin kecil konstantanya efek pada citra makin tidak terlihat. Nilai default untuk konstanta noise adalah 0.05.


Gaussian

Disebut juga Gaussian White Noise. Untuk menambahkan noise ini pada MatLab memerlukan input tambahan berupa rata-rata dan variasi. Rata-rata dan variasi merupakan suatu konstanta real. Nilainya bisa positif maupun negative. Makin besar rata-rata dan variasinya maka
citra akan semakin kabur, sebaliknya makin kecil konstantanya efek pada citra makin tidak terlihat. Nilai default adalah 0 untuk mean dan 0.01 untuk variance. Disebut white noise karena pada saat nilai rata-rata dan variasinya besar maka citra seolah-olah hanya terlihat seperti citra putih saja.

Poisson
Poisson noise bukan merupakan noise buatan. Poisson merupakan noise yang ditambahkan langsung pada citra tanpa kita menambahkan parameter apapun, sehingga efeknya pada citra pun tetap, berbeda dengan tipe noise yang sudah dijelaskan sebelumnya. Pada MatLab, jika matrik citra adalah double precision, maka nilai piksel inputnya dianggap sebagai mean dari distribusi Poisson dengan skala 10^12. Sebagai contoh jika piksel inputnya mempunyai nilai 5.5 10^-12, maka piksel output akan dibangkitkan dari distribusi Poisson dengan mean 5.5 di kembalikan lagi ke skala 10^12. Jika matrik citra adalah single precision, maka factor skalanya menggunakan 10^6. Jika matrik citra adalah uint8 atau uint16, maka nilai input piksel digunakan langsung tanpa factor skala. Sebagai contoh jika input piksel uint8 mempunyai nilai 10, maka piksel output akan dibangkitkan dari distribusi Poisson dengan mean 10.


Speckle
Speckle merupakan noise ganda. Noise ini ditambahkan pada citra menggunakan persamaan
J=I+n*I, dimana n terdistribusi random seragam dengan mean 0 dan variance V. V adalah konstanta non negative yang besarnya dapat berubah-ubah. Default nilai untuk V adalah 0.04. Makin besar nilai V maka citra akan semakiin kabur.

Localvar

Pada MatLab kita harus mengunakan dua parameter untuk menambahkan noise ini pada citra. Dua parameter tersebut berupa vector yang ukurannya sama, dan grafik kedua parameter tersebut menggambarkan relasi fungsional antara varians noise dan intensitas citra. Vektor intensitas citra harus bernilai antara 0 dan 1 (normal). Localvar merupakan Gaussian noise dengan mean 0, dengan variance noise adalah fungsi dari intensitas citra yang nilainya berada dalam matrik citra. Vektor intensitas citra tidak boleh bernilai sama karena citra akan nampak sebagai layar putih (Gaussian White Noise).

18 Oktober 2008

Histogram

Histogram Modelling dengan MatLab

Histogram citra menyatakan frekuensi kemunculan berbagai derajat keabuan dalam citra. Teknik pemodelan histogram mengubah citra hingga memiliki histogram sesuai keinginan. Teknik pemodelan yang sering dipakai adalah ekualisasi histogram. Ekualisasi histogram bertujuan untuk mendapatkan histogram citra dengan distribusi seragam.
Langkah-langkah melakukan ekualisasi histogram:
  1. Baca image dan dapatkan nilai tingkat keabuan dari setiap pixel penyusunnya, dan simpan dalam array. Gunakan fungsi imread().
  2. Cari nilai maksimum tingkat keabuan citra tersebut. Nilai ini nantinya akan dipakai untuk menentukan histogram ekualisasinya. Gunakan fungsi max()
  3. Buat histogram citra asal. Simpan frekuensi kemunculan derajat keabuan tersebut dalam array(vector). Mula-mula kita siapkan array(vector) kosong yang ukurannya mengacu kepada nilai maksimum derajat keabuan citra dibulatkan ke 2n. Untuk selajutnya hitung frekuensi kemunculan derajat keabuan pada masing-masing posisi vector.
  4. Buat histogram ekualisasinya. Histogram ekualisasi dicari dengan menghitung prosentase kemunculan derajat keabuan yang ada dikalikan dengan derajat keabuan maksimum dari citra asal.
  5. Cari nilai tingkat keabuan dari citra bari hasil ekualisasi dengan menggunakan histogram ekualisasinya.
  6. Untuk memetakan histogram ekualisasi menjadi citra baru, kita siapkan array (matrik) kosong yang ukurannya sama dengan citra asal. Selanjutnya masing-masing nilai matrik baru dihitung dari nilai histogram ekualisasi bedasarkan nilai matrik gambar lama.
  7. Petakan ke citra baru.
Dengan menggunakan MatLab algoritma tersebut dapat diimplementasikan sebagai berikut:























Atau juga dapat dituliskan sebagai berikut:










Berikut ini adalah perbandingan image sebelum dan setelah
dilakukan ekualisasi.








Pustaka
Departmen Teknik Elektro, Modul Praktikum Pengolahan Citra dan Pengenalan Pola, Institut Teknologi Bandung.

Paul Wintz, 2000, Digital Image Processing, Prentice-Hall.

MatLab 6 Help.

William J Palm, 2004, Introduction to MatLab 6 for Engineers, The McGraw-Hill Companies, Inc.

www.iprg.ee.itb.ac.id/lectures.html

www.datacompression.info/Quantization.shtml

www.cbloom.com/src/index_im.html
www.belajar-share.blogspot.com

Pengenalan

Pengolahan Citra
Pengolahan Citra adalah kegiatan memperbaiki kualitas citra agar mudah diinterpretasi oleh manusia/mesin (komputer). Inputannya adalah citra dan keluarannya juga citra tapi dengan kualitas lebih baik daripada citra masukan. Misal citra warnanya kurang tajam, kabur (blurring), mengandung noise (misal bintik-bintik putih), dll sehingga perlu ada pemrosesan untuk memperbaiki citra karena citra tersebut menjadi sulit diinterpretasikan sebab informasi yang disampaikan menjadi berkurang.