Sebuah histogram yang bernilai nol selain bagian tengahnya diubah dengan merentangkan bagian tengahnya agar mengisi seluruh sumbu x.Histogram citra sebelum dan sesudah perataan
**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 algoritme perataan histogram.

Implementasi
------------

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

{\displaystyle p\_{x}(i)=p(x=i)={\frac {n\_{i}}{n}},\quad 0\leq i<L}
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

{\displaystyle \mathrm {cdf} \_{x}(i)=\sum \_{j=0}^{i}p\_{x}(x=j)}
yang juga menjadi histogram kumulatif citra.

Kita buat transformasi dalam bentuk

{\displaystyle y=T(x)}
untuk membuat citra baru *y* dengan histogram yang datar. Citra tersebut akan memiliki fungsi distribusi kumulatif yang berbentuk garis lurus, yaitu cdf*y*(*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
--------------

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 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:

{\displaystyle h(v)=\operatorname {bulatkan} \left({\frac {\mathrm {cdf} (v)-\mathrm {cdf} \_{min}}{n-\mathrm {cdf} \_{min}}}\times (L-1)\right)}
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.

{\displaystyle 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.

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| *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 asliCitra asli 

 | 

Hasil perataanHasil perataan 

 |
| 

Histogram citra asliHistogram citra asli 

 | 

Histogram hasil perataanHistogram hasil perataan 

 |

### Citra berukuran penuh

|  |  |
| --- | --- |
| 

Sebelum perataan histogramSebelum perataan histogram 

 | 

Histogram (merah) dan kumulatifnya (hitam)Histogram (merah) dan kumulatifnya (hitam) 

 |
| 

Setelah perataan histogramSetelah perataan histogram 

 | 

Histogram (merah) dan kumulatifnya (hitam)Histogram (merah) dan kumulatifnya (hitam) 

 |

Lihat pula
----------

* Pencocokan histogram
* Perataan histogram adaptif
* Normalisasi (pengolahan citra)

Referensi
---------

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
--------------

* Acharya dan Ray (2005). *Image Processing: Principles and Applications*. Wiley-Interscience. ISBN 0-471-71998-6. Pemeliharaan CS1: Menggunakan parameter penulis (link)
* Gonzalez, R. C.; Woods, R. E. (2018). *Digital Image Processing* (edisi ke-4). Essex: Pearson Education Ltd. ISBN 978-1-2922-2304-9. OCLC 1120684007.
* Russ (2002). *The Image Processing Handbook: Fourth Edition*. CRC. ISBN 0-8493-2532-3.
* "Histogram Equalization". *Generation5*. Diarsipkan dari versi asli tanggal 16 Mei 2016.