Perataan histogram

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

## Gambaran umum
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 algoritma perataan histogram.

## Implementasi
Misalkan  adalah citra berderajat keabuan diskret dan  adalah banyak piksel dengan nilai . Peluang suatu piksel bernilai  () adalah

: p_x(i) = p(x = i) = \frac{n_i}{n},\quad 0 \le i 

dengan  adalah banyak tingkat keabuan pada citra (256 tingkat untuk citra 8 bit),  adalah banyak piksel keseluruhan, dan  berada dalam rentang .

Kita juga definisikan fungsi distribusi kumulatif (CDF) untuk  sebagai

: \mathrm{cdf}_x(i) = \sum_{j = 0}^i p_x(x = j)

yang juga menjadi histogram kumulatif citra.

Kita buat transformasi dalam bentuk

: y = T(x)

untuk membuat citra baru *y* dengan histogram yang datar. Citra tersebut akan memiliki fungsi distribusi kumulatif yang berbentuk garis lurus, yaitu  untuk  suatu tetapan.

Perhatikan bahwa  memetakan tingkat-tingkat menjadi nilai dalam rentang  karena kita menggunakan histogram ternormalkan dari .

Penjelasan lebih terperinci disediakan di sini.

## Citra berwarna
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.

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

### Citra kecil

Citra berderajat keabuan di sebelah memiliki nilai-nilai berikut:

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

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 . Rumus umumnya adalah sebagai berikut:

: h(v) = \operatorname{bulatkan}\left(\frac{\mathrm{cdf}(v) - \mathrm{cdf}_{min}} {n - \mathrm{cdf}_{min}} \times (L - 1)\right)

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

Untuk contoh kali ini, rumus di atas menjadi berikut.

: h(v) = \operatorname{bulatkan}\left(\frac{\mathrm{cdf}(v) - 1} {63} \times 255\right)

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

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

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

### Citra berukuran penuh

## Lihat pula
* Pencocokan histogram
* Perataan histogram adaptif
* Normalisasi (pengolahan citra)

## Referensi

## Daftar pustaka
* 
* 
* 
*