Ekvalizáca 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. [1]

Ekvalizácia histogramu

PrehľadUpraviť

 
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. [2]

Ekvalizáciu histogramu je vhodné použiť vtedy, ak obrázok vyzerá vyblednuto a nemá dostatočný kontrast[3]. 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[1].

Príklad výpočtuUpraviť

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 
  • vypočítať hodnotu nového pixelu podľa vzorca:  

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:  

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:

 


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:

   

ReferencieUpraviť

  1. a b 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)