Perataan histogram

metode untuk menyesuaikan kontras citra dengan meratakan histogramnya

Perataan histogram adalah metode pengolahan citra yang menyesuaikan kontras dengan mengatur histogram citra.

Sebuah histogram yang bernilai nol selain bagian tengahnya diubah dengan merentangkan bagian tengahnya agar mengisi seluruh sumbu x.
Histogram citra sebelum dan sesudah perataan

Gambaran umum

sunting

Metode ini meningkatkan kontras global pada kebanyakan citra, khususnya pada citra yang nilainya berdekatan (rentangnya kecil). Dengan penyesuaian ini, intensitasnya dapat disebarkan dengan merata pada histogram sehingga bagian dengan kontras rendah dapat menjadi kontras tinggi. Perataan histogram melakukannya dengan meratakan nilai intensitas yang paling sering muncul.

Metode ini cocok untuk citra dengan latar depan dan latar belakang yang sama-sama terang atau sama-sama gelap. Contohnya, struktur tulang dapat menjadi lebih jelas pada hasil rontgen (citra sinar X) serta hasil fotografi yang terlalu terang atau terlalu gelap dapat menjadi jelas (lebih detail).

Keuntungan metode ini adalah penggunaan operasi yang bisa dibalik. Jadi, secara teori, bila operasinya (fungsinya) diketahui, histogram asalnya dapat dipulihkan. Perhitungan metode ini tidak mahal (tidak berat). Kerugian metode ini adalah tidak membedakan derau dari benda yang dimaksud sehingga kontras derau juga ikut naik.

Perataan histogram sering menghasilkan citra yang kurang riil (terlihat nyata). Namun, cara ini dapat membantu untuk citra ilmiah, seperti citra sinar X, citra satelit, dan citra suhu, yang biasanya menggunakan warna semu. Perataan histogram juga dapat memberikan efek samping (seperti gradasi citra yang tampak) ketika diterapkan untuk citra dengan kedalaman warna yang rendah. Perataan histogram cocok untuk citra dengan kedalaman warna yang lebih tinggi daripada ukuran palet, seperti data kontinu dan citra 16 bit.

Modifikasi metode ini menggunakan beberapa histogram yang disebut subhistogram untuk memperkuat kontras lokal alih-alih kontras global. Contohnya adalah perataan histogram adaptif, perataan histogram adaptif terbatas kontras (CLAHE), perataan histogram banyak puncak (MPHE), dan perataan histogram ganda teroptimasi beta multiguna (MBOBHE). Tujuan metode-metode tersebut, khususnya MBOBHE, adalah untuk memperbaiki kontras tanpa menghasilkan pergeseran rata-rata kecerahan dan kekurangan detail dengan mengubah algoritme perataan histogram.[1]

Implementasi

sunting

Misalkan x adalah citra berderajat keabuan diskret dan ni adalah banyak piksel dengan nilai i. Peluang suatu piksel bernilai i (px(x)) adalah

 

dengan L adalah banyak tingkat keabuan pada citra (256 tingkat untuk citra 8 bit), n adalah banyak piksel keseluruhan, dan px(x) berada dalam rentang [0, 1].

Kita juga definisikan fungsi distribusi kumulatif (CDF) untuk px sebagai

 

yang juga menjadi histogram kumulatif citra.

Kita buat transformasi dalam bentuk

 

untuk membuat citra baru y dengan histogram yang datar. Citra tersebut akan memiliki fungsi distribusi kumulatif yang berbentuk garis lurus, yaitu cdfy(i) = iK untuk K suatu tetapan.

Perhatikan bahwa T memetakan tingkat-tingkat menjadi nilai dalam rentang [0, 1] karena kita menggunakan histogram ternormalkan dari x.

Penjelasan lebih terperinci disediakan di sini.

Citra berwarna

sunting

Penjelasan di atas dipakai untuk citra berderajat keabuan. Namun, metode ini juga bisa diterapkan untuk citra berwarna. Salah satunya adalah dengan meratakan histogram untuk tiap saluran (merah, hijau, dan biru). Namun, cara tersebut dapat merusak keseimbangan warna citra karena distribusi relatif (antarsaluran) berubah. Cara lainnya adalah dengan mengubah citra ke dalam ruang warna Lab atau HSL/HSV terlebih dahulu, lalu menerapkan metode ini untuk nilai kependarannya. Cara ini mempertahankan warna dan saturasinya.[2]

Contoh

sunting

Pada contoh berikut, fungsi distribusi kumulatif (CDF) bermakna sama dengan histogram kumulatif.

Citra kecil

sunting
 
Citra 8×8 berderajat keabuan 8 bit

Citra berderajat keabuan di sebelah memiliki nilai-nilai berikut:

52 55 61 59 79 61 76 61
62 59 55 104 94 85 59 71
63 65 66 113 144 104 63 72
64 70 70 126 154 109 71 69
67 73 68 106 122 88 68 68
68 79 60 70 77 66 58 75
69 85 64 58 55 61 65 83
70 87 69 68 65 73 78 90

Histogram citra di atas dan fungsi distribusi kumulatif (CDF) ditunjukkan oleh tabel berikut. Agar ringkas, hanya nilai-nilai yang muncul yang ditunjukkan.

i frek cdf(i) i frek cdf(i) i frek cdf(i)
52 1 1 69 3 33 88 1 53
55 3 4 70 4 37 90 1 54
58 2 6 71 2 39 94 1 55
59 3 9 72 1 40 104 2 57
60 1 10 73 2 42 106 1 58
61 4 14 75 1 43 109 1 59
62 1 15 76 1 44 113 1 60
63 2 17 77 1 45 122 1 61
64 2 19 78 1 46 126 1 62
65 3 22 79 2 48 144 1 63
66 2 24 83 1 49 154 1 64
67 1 25 85 2 51
68 5 30 87 1 52

Dari tabel di atas, nilai minimum pada citra adalah 52 dan maksimumnya adalah 154. Perhatikan bahwa nilai CDF untuk nilai maksimum (154) adalah sama dengan jumlah piksel pada citra. Selanjutnya, nilai CDF di atas diskalakan ke dalam rentang [0, 255]. Rumus umumnya adalah sebagai berikut:

 

dengan cdfmin adalah nilai CDF terendah bukan nol, n adalah banyak piksel keseluruhan, dan L adalah banyak tingkat keabuan pada citra (256 tingkat untuk citra 8 bit).

Untuk contoh kali ini, rumus di atas menjadi berikut.

 

Dari rumus tersebut, dihasilkan pemetaan berikut. Seperti sebelumnya, hanya nilai-nilai yang muncul yang ditunjukkan.

i h(i) i h(i) i h(i)
52 0 69 130 88 210
55 12 70 146 90 215
58 20 71 154 94 219
59 32 72 158 104 227
60 36 73 166 106 231
61 53 75 170 109 235
62 57 76 174 113 239
63 65 77 178 122 243
64 73 78 182 126 247
65 85 79 190 144 251
66 93 83 194 154 255
67 97 85 202
68 117 87 206

Setelah mengganti nilai tiap piksel menjadi sesuai tabel di atas, citra hasilnya menjadi di bawah ini.

0 12 53 32 190 53 174 53
57 32 12 227 219 202 32 154
65 85 93 239 251 227 65 158
73 146 146 247 255 235 154 130
97 166 117 231 243 210 117 117
117 190 36 146 178 93 20 170
130 202 73 20 12 53 85 194
146 206 130 117 85 166 182 215

Perhatikan bahwa nilai terendah (52) menjadi 0 dan nilai tertinggi (154) menjadi 255.

 
Citra asli
 
Hasil perataan
 
Histogram citra asli
 
Histogram hasil perataan

Citra berukuran penuh

sunting
 
Sebelum perataan histogram
 
Histogram (merah) dan kumulatifnya (hitam)
 
Setelah perataan histogram
 
Histogram (merah) dan kumulatifnya (hitam)

Lihat pula

sunting

Referensi

sunting
  1. ^ Hum, Yan Chai; Lai, Khin Wee; Mohamad Salim, Maheza Irna (11 Oktober 2014). "Multiobjectives bihistogram equalization for image contrast enhancement". Complexity. 20 (2): 22–36. Bibcode:2014Cmplx..20b..22H. doi:10.1002/cplx.21499. 
  2. ^ Naik, S. K.; Murthy, C. A. (Desember 2003). "Hue-preserving color image enhancement without gamut problem". IEEE Transactions on Image Processing. 12 (12): 1591–1598. doi:10.1109/TIP.2003.819231. 

Daftar pustaka

sunting