KULIAH 2 TEKNIK PENGOLAHAN CITRA HISTOGRAM CITRA
Informasi penting mengenai isi citra digital dapat diketahui dengan membuat histogram citra. Histogram citra adalah grafik yang menggambarkan penyebaran nilai-nilai intensitas piksel dari suatu citra atau bagian tertentu di dalam citra. Dari sebuah histogram dapat diketahui frekuensi relatif kemunculan setiap nilai aras keabuan pada citra. Oleh karena derajat keabuan mempunyai 256 aras (0 – 255) maka histogram akan menyatakan jumlah kemunculan setiap nilai 0 – 255. Berikut diberikan ilustrasi dengan sebuah matriks yang menggambarkan sebuah citra aras keabuan. Misalkan matriks berikut diperoleh dari pembacaan nilai piksel citra digital yang berukuran 5 x 5, maka frekuensi kemunculan setiap aras keabuan pada citra adalah sbb.
10 15 15 10 15
⎧6 ⎪5 ⎪ ⎪2 ⎪ frekuensi kemunculan = ⎨ 5 ⎪ ⎪1 ⎪6 ⎪0 ⎩
10 70 70 15 15
70 75 100 100 10
65 100 100 70 70
10 100 100 65 10
untuk aras keabuan 10 untuk aras keabuan 15 untuk aras keabuan 65 untuk aras keabuan 70 untuk aras keabuan 75 untuk aras keabuan 100 untuk aras keabuan lain
Coba anda gambarkan histogramnya.
Matlab menyediakan fungsi untuk menggambarkan histogram sebuah citra, yaitu imhist.m. >> I = imread (’lena.jpg’); >> imhist (I)
3500 3000 2500 2000 1500 1000 500 0 0
50
100
150
200
250
>> H = imhist (I)
Menampilkan frekuensi kemunculan setiap aras keabuan (0 – 255) secara berurutan. Lihat hasilnya di editor Matlab.
Dari histogramnya, dapat diketahui banyak tentang kenampakan citra yang bersangkutan, misalnya:
Pada sebuah citra yang gelap, maka histogramnya akan mengumpul pada sisi aras keabuan rendah (sebelah kiri) Æ objek untuk peningkatan citra,
Pada sebuah citra yang terang, maka histogramnya akan mengumpul pada sisi aras keabuan tinggi (sebelah kanan). Citra seperti ini sering disebut citra yang over exposure Æ objek untuk peningkatan citra,
Pada sebuah citra dengan kontras yang baik, maka histogramnya akan menempati hampir seluruh aras keabuan yang ada (0 – 255). Citra lena.jpg
adalah contoh citra dengan kontras yang baik karena histogramnya menempati hampir seluruh aras keabuan yang ada.
Citra lena1.jpg berikut ini adalah citra dengan pencahayaan yang terlalu banyak (over exposure), sehingga histogramnya sempit dan bergeser ke arah kanan (aras keabuan tinggi).
7000 6000 5000 4000 3000 2000 1000
0 0
50
100
150
200
250
Citra lena2.jpg berikut ini adalah citra dengan pencahayaan yang terlalu kurang (citra gelap), sehingga histogramnya sempit dan bergeser ke arah kiri (aras keabuan rendah).
4
x 10
3
2.5
2
1.5
1
0.5
0 0
50
100
150
200
250
Untuk citra berwarna, histogramnya dinyatakan untuk setiap komponen RGB (Red, Blue, Green) yang membentuk setiap piksel citranya. Dengan demikian untuk setiap citra berwarna dapat dibuat tiga buah histogram. Contoh Citra peppers.png
>> I = imread (‘peppers.png’) >> imhist (I(:,:,1)) Æ menampilkan histogram layer merah (red)
3000
2500
2000
1500
1000
500
0 0
50
100
150
200
250
>> imhist (I(:,:,2)) Æ menampilkan histogram layer biru (blue) 3500
3000
2500
2000
1500
1000
500
0 0
50
100
150
200
250
>> imhist (I(:,:,3)) Æ menampilkan histogram layer hijau (green) 3500 3000 2500 2000 1500 1000 500 0 0
50
100
150
200
250
Operasi Translasi Operasi translasi merupakan operasi geometrik. Pada operasi geometrik, koordinat piksel akan berubah akibat transformasi sedangkan intensitasnya tetap. Hal ini berbeda dengan operasi aritmatika yang menyebabkan intensitas piksel berubah sedangkan koordinatnya tetap. Pengubahan geometrik dari citra u[m,n] menjadi citra baru u’[m,n] dapat ditulis sebagai
u’[m’,n’] = u[g1[m,n], g2[m,n]] dengan g1 dan g2 adalah fungsi transformasi geometrik. Atau dapat dinyatakan bahwa m’ = g1[m,n] n’ = g2 [m,n] Pada operasi translasi citra, fungsi transformasi geometrik yang digunakan adalah sebagai berikut. m’ = m + y n’ = n + x
Konstanta y dan x merupakan besaran pergeseran masing-masing dalam arah m dan arah n. Jika citra semula adalah A dan citra hasil translasi adalah B, maka translasi dapat diimplementasikan dengan menyalin citra dari A ke B sebagai berikut. B[m, n] = A[(m + y), (n + x)]
Operasi translasi dapat digunakan untuk memotong citra menjadi citra dengan ukuran yang lebih kecil dengan cara membuang sebagian pikselnya pada arah baris (m) dan kolom (n). Pemotongan citra yang demikian sering disebut dengan istilah cropping. Perhatikan gambar contoh. Cropping biasanya digunakan untuk memilih suatu wilayah citra yang dikehendaki (sering disebut dengan istilah
ROI atau Region of Interest) atau membuang bagian-bagian pada citra yang tidak dibutuhkan untuk proses pengolahan selanjutnya.
Matlab menyediakan fungsi untuk operasi cropping citra, yaitu imcrop.m. Berikut beberapa contoh untuk menggunakan fungsi tersebut. >> I = imread (‘circuit.tif’);
>> I2 = imcrop (I)
Dengan menggunakan sintaks ini, maka Matlab akan menunggu pengguna untuk memilih daerah yang akan di-cropping (menggunakan mouse). Pengguna dapat melihat hasilnya dengan fungsi imshow.m. >> imshow (I2)
Sintaks fungsi imcrop yang lain adalah I3 = imcrop (I, RECT) RECT = [ xmin ymin width height] Æ koordinat cropping Dengan I adalah matriks hasil pembacaan citra, xmin adalah kolom paling kiri, ymin adalah baris paling atas, width adalah lebar yang dikehendaki, dan height adalah tinggi yang dikehendaki.
>> I3 = imcrop (I, [1 1 100 200]); >> imshow (I3) >> imshow (I), figure, imshow (I3)