Ekvalizácia histogramu
**Ekvalizácia histogramu** (angl. *histogram equalization*) je technika spracovania obrazu v informatike, ktorá zvyšuje jeho kontrast. Jej cieľom je dosiahnutie rovnomerného zastúpenia všetkých jasových hodnôt v obraze, teda zmeniť rozloženie farieb tak, aby sa v histograme vyskytovalo čo najviac odtieňov.

Prehľad
-------

Ekvalizácia histogramu: (a) pôvodný obrázok, (b) obrázok po ekvalizácii, (c) histogram pôvodného obrázku a (d) histogram výstupného obrázku.
Histogram môže byť v tomto prípade interpretovaný ako dátová štruktúra, ktorá obsahuje počet pixelov jednotlivých intenzít. Pre 8-bitový šedotónový obrázok je potrebných 256 tried (stĺpcov) histogramu. Pre obrázky s viac bitovou hĺbkou je potrebný iný, vhodný počet tried. 

Ekvalizáciu histogramu je vhodné použiť vtedy, ak obrázok vyzerá vyblednuto a nemá dostatočný kontrast. Cieľom ekvalizácie je rozložiť najviac sa vyskytujúce intenzity jasu do viacerých častí histogramu, a tým ho urobiť viac plochým. Ekvalizácia zvyšuje hodnoty jasných pixelov ku maximu a znižuje hodnoty tmavých pixelov ku minimu.

Príklad výpočtu
---------------

Majme 8-bitový šedotónový obrázok s hodnotami:

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

Na výpočet hodnôt výstupného obrázku sú potrebné nasledujúce kroky:

* vytvoriť histogram obrázku H(i)
* vytvoriť kumulatívny histogram{\displaystyle \ K(j)=\sum \_{j=0}^{i}H(i)}

* vypočítať hodnotu nového pixelu podľa vzorca: {\displaystyle h(v)=\mathrm {round} \left({\frac {K(v)-K\_{min}}{(M\times N)-K\_{min}}}\times (L-1)\right)}

kde Kmin je najmenšia nenulová hodnota kumulatívneho histogramu (v tomto príklade 1), M × N uvádza počet pixelov obrázku (pre tento príklad 8\*8=64 pixelov) a L je počet úrovní jasu (vo väčšine prípadov, ako aj v tomto, je to 256).

Rovnica pre tento príklad teda bude: {\displaystyle h(v)=\mathrm {round} \left({\frac {K(v)-1}{63}}\times 255\right)}

Napríklad, pre pixel s hodnotou 78 je hodnota z kumulatívneho histogramu 46 (hodnota 78 je použitá v 7. stĺpci a 8. riadku). Normalizovanú hodnotu vypočítame:

{\displaystyle h(78)=\mathrm {round} \left({\frac {46-1}{63}}\times 255\right)=\mathrm {round} \left(0.714286\times 255\right)=182}

  

Nasledujúca tabuľka zobrazuje v - hodnotu pixelu, H(v) - histogram (počet výskytov hodnoty pixelu), K(v) - kumulatívny histogram a h(v) - výsledná ekvalizovaná hodnota.

| v | H(v) | K(v) | h(v) |
| --- | --- | --- | --- |
| 52 | 1 | 1 | 0 |
| 55 | 3 | 4 | 12 |
| 58 | 2 | 6 | 20 |
| 59 | 3 | 9 | 32 |
| 60 | 1 | 10 | 36 |
| 61 | 4 | 14 | 53 |
| 62 | 1 | 15 | 57 |
| 63 | 2 | 17 | 65 |
| 64 | 2 | 19 | 73 |
| 65 | 3 | 22 | 85 |
| 66 | 2 | 24 | 93 |
| 67 | 1 | 25 | 97 |
| 68 | 5 | 30 | 117 |
| 69 | 3 | 33 | 130 |
| 70 | 4 | 37 | 146 |
| 71 | 2 | 39 | 154 |
| 72 | 1 | 40 | 158 |
| 73 | 2 | 42 | 166 |
| 75 | 1 | 43 | 170 |
| 76 | 1 | 44 | 174 |
| 77 | 1 | 45 | 178 |
| 78 | 1 | 46 | 182 |
| 79 | 2 | 48 | 190 |
| 83 | 1 | 49 | 194 |
| 85 | 2 | 51 | 202 |
| 87 | 1 | 52 | 206 |
| 88 | 1 | 53 | 210 |
| 90 | 1 | 54 | 215 |
| 94 | 1 | 55 | 219 |
| 104 | 2 | 57 | 227 |
| 106 | 1 | 58 | 231 |
| 109 | 1 | 59 | 235 |
| 113 | 1 | 60 | 239 |
| 122 | 1 | 61 | 243 |
| 126 | 1 | 62 | 247 |
| 144 | 1 | 63 | 251 |
| 154 | 1 | 64 | 255 |

Výsledné hodnoty obrázku:

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

Porovnanie vstupného a výstupného obrázku:

Referencie
----------

1. 1 2  SONKA, MILAN.. *Image processing, analysis, and machine vision*. Toronto : Thompson Learning, 2008. (3rd ed.) Dostupné online. ISBN 0-495-08252-X.
2. ↑  SZELISKI, RICHARD, 1958-. *Computer vision : algorithms and applications*. London : Springer, 2011. Dostupné online. ISBN 978-1-84882-934-3.
3. ↑  HTOON, Kyaw Saw. *A Tutorial to Histogram Equalization* [online]. Medium, 2020-08-18, [cit. 2020-10-31]. Dostupné online. (po anglicky)