Kamis, 10 Desember 2009

Perataan Histogram Menggunakan Matlab

Histogram Equalization / Perataan Histogram adalah suatu proses perataan histogram, dimana distribusi nilai derajat keabuan suatu citra dibuat rata. Untuk dapat melakukan histogram equalization ini diperlukan suatu fungsi distribusi kumulatif yang merupakan kumulatif dari histogram.

Sekarang kita mulai melakukan perataan histogram dengan MATLAB. Pertama-tama file gambar yang kita simpan di dalam folder work dimana kita install matlab.

Disini saya menggunakan gambar merpati(k).jpg.



Untuk perataan histogram ini gambar harus dalam bentuk grayscale, untuk merubah gambar berwarna menjadi grascle perintah yang digunakan yaitu : “rgb2gray(‘merpati(k).jpg’);“

Sebelumnya kita ubah dulu menjadi matriks dengan perintah “imread(‘merpati(k).jpg’);“
Setelah gambar kita ubah menjadi matriks dan menjadi gambar grayscale kita akan membaca gambar dalam bentuk histogram dengan perintah “figure,imhist(‘merpati(k).jpg’);” kemudian untuk melakukan perataan histogram “histeq(‘merpati(k).jpg’);“. Perintah selengkapnya sebagai berikut :



hasil gambar ‘merpati(k).jpg’ dengan bentuk histogram adalah:



Setelah dilakukan perataan histogram menjadi:

Kamis, 03 Desember 2009

Deteksi tepi menggunkan operator prewitt dan sobel

kali ini saya akan melakukan deteksi tepi dengan menggunakan operator prewitt dan sobel dalam MatLab

Operator sobel

Peninjauan pengaturan pixel di sekitar pixelnya (x,y) adalah :

Operator sobel adalah magnitudo dari gradien yang dihitung dengan :

dalam hal ini turunan parsial dihitung dengan :

Dengan konstanta c = 2. Dalam bentuk mask, sy dan sx dapat dinyatakan sebagai :

Arah tepi dihitung dengan persamaan :

Berikut adalah contoh penggunaan operator sobel . Konvolusi pertama dilakukan terhadap pixel yang bernilai 1 (titik pusat mask) :

Nilai 18 pada citra hasil konvolusi didapatkan dengan perhitungan :

Operator Prewitt

Persamaan gradien pada operator prewitt sama dengan gradien pada operator sobel perbedaannya adalah pada prewitt menggunakan konstanta c = 1

gambar yang saya gunakan kali ini untuk membandingkan kedua operator di atas adalah :






Kemudian ketikkan listing program di bawah ini pada program matlab :



Imread berfungsi untuk membaca gambar dan variabel I adalah variabel untuk menyimpan file gambar ‘merpati2(k).jpg’ . BW1 adalah variabel untuk menyimpan gambar yang telah diproses menggunakan deteksi tepi operator ‘prewitt’ dan BW2 adalah variabel untuk menyimpan gambar yang telah diproses menggunakan deteksi tepi operator ’sobel’. Untuk menampilkan hasil pemrosesan menggunakan perintah ‘figure, imshow(var)’.

Hasil dari kedua deteksi tepi tersebut adalah :

dengan operator prewitt:





lalu, untuk operator sobel, hasilnya sebagai berikut:

Mengubah Citra Menjadi Matriks

Pengolahan Citra

Citra adalah gambar dua dimensi yang dihasilkan dari gambar analog dua dimensi yang kontinu menjadi gambar diskrit melalui proses sampling.

Gambar analog dibagi menjadi N baris dan M kolom sehingga menjadi gambar diskrit. Persilangan antara baris dan kolom tertentu disebut dengan piksel. Contohnya adalah gambar/titik diskrit pada baris n dan kolom m disebut dengan piksel [n,m].

Pengolahan citra adalah salah satu cabang dari ilmu informatika. Pengolahan citra berkutat pada usaha untuk melakukan transformasi suatu citra/gambar menjadi citra lain dengan menggunakan teknik tertentu.

disini saya akan merubah suatu citra / image merpati(k).jpg









Image di atas berukuran 105 x 79 pixel yang berarti image di atas terdiri dari 105 kolom dan 79 baris pixel. Total keseluruhan adalah 8295 pixel, demgam resolusi 180 dpi. dimana tiap pixel adalah perpaduan dari 3 warna yaitu merah (Red), hijau (Green) dan biru (Blue) atau yang biasa dikenal dengan RGB.

Untuk merubah gambar menjadi matriks tidaklah sulit, cukup dengan mengetikkan perintah di bawah ini :

>> c=imread(‘merpati2(k).jpg’,’jpg’);
>> asci=uint8(c)

baris pertama berfungsi untuk menampilkan gambar yang sudah disimpan pada folder work dalam matlab :

C:\Program Files\MATLAB71\work

sedangkan pada baris kedua berfungsi untuk merubah gambar menjadi matriks dimana fungsi uint8() digunakan untuk mengubah string menjadi bilangan integer.






maka hasilnya adalah sebagai berikut: asci(: , : , 1) Menandakan bahwa matriks yang ditampilkan adalah komposisi matriks dari warna pertama yaitu merah (Red), sehingga tampilan untuk warna merah adalah sebagai berikut:












asci(: , : , 2) Menandakan bahwa matriks yang ditampilkan adalah komposisi matriks dari warna kedua yaitu hijau (Green), sehingga tampilan untuk warna hijau adalah sebagai berikut:












asci(: , : , 3) Menandakan bahwa matriks yang ditampilkan adalah komposisi matriks dari warna ketiga yaitu biru (Blue), sehingga tampilan untuk warna hijau adalah sebagai berikut: