Histogrammi ühtlustamine

**Histogrammi ühtlustamine** on digitaalse pilditöötluse meetod, mis kasutab pildi histogrammi selleks, et kohandada pildi kontrasti. Histogrammi ühtlustamine parendab pildikvaliteeti, kaotamata sellest tähtsat informatsiooni. See leiab rakendust näiteks ülesäritatud, puuduliku valguse käes tehtud või madala eraldusvõimega piltide selgemaks tegemiseks. Tihti on küll objektide selguse ja eristatavuse hind see, et pilt kaotab loomuliku väljanägemise. Olles tehniliselt intuitiivne ja arvutuslikult efektiivne, on histogrammi ühtlustamisel tähtis koht kontrasti tõstmise tehnikate seas.

## Ülevaade
### Olemus
Histogrammi ühtlustamine on algoritm, mis määrab ümber sisendpildi hallväärtused kasutades jaotusfunktsiooni. Selle tulemusena hallide pikslite intensiivsus ühtlustub ära ja venitab välja pildi dünaamilise ulatuse, mis omakorda suurendab kontrasti histogrammi väikseimate ja suurimate väärtuste vahel ning seeläbi aitab eristada sisendpildil olevaid objekte. Tulemusena saadud dünaamiline ulatus on ulatusega 0, 2^{n}-1 kus n on bitti/piksli kohta. 
### Globaalne ja lokaalne
Histogrammi ühtlustamine ei ole monoliitne või ühetaoline protsess, sellel on palju spetsiifilisi ja eristuvaid alamkategooriaid. Üks taoline jaotus on globaalne *vs.* lokaalne histogrammi ühtlustamine. Globaalne algoritm kasutab transformatsioonfunktsiooni leidmiseks terve pildi pikslite infot. Lokaalne aga muudab transformatsioonfunktsiooni sõltuvalt akendatud pildi tükkidest. Kuna see aitab vältida müra teket ja hoiab ära mõnede pikslite negatiivset mõju, siis seda kasutatakse peenemates süsteemides näiteks meditsiinitööstuses.
### Bi-HE ja multi-HE
Näiteks bi-HE (*ingl k:bi-histogram equalisation*) kutsutud meetod üritab säilitada sisendpildi heledust jaotades pildi histogrammi väiksemateks tükkideks, kasutades mediaani kui lävendit ning ühtlustades kõik alamhistogrammid eraldi. Nende meetodite põhiline puudujääk on, et pildi heledamad väärtused saavad liigselt nihutatud.
Multi-HE (*ingl k:multi-histogram equalisation*) on sisuliselt bi-HE arendus ja sellele täiendava töötlemise lisamine, et eelmainitud probleemist jagu saada, näiteks rekursiivne alampildi histogrammi ühtlustamine. Need protsessid üritavad kontrollida heleduse nihet, et säilitada pildi loomulikku väljanägemist. See aga tihti vähendab väljundi dünaamilist ulatust ja tekitab omakorda müra, mistõttu antud algoritmide kasulikkus on piiratud.
### Kohanev histogrammi ühtlustamine
Üks uuemaid võimalusi, mis väidab paremat kontrasti suurendamist ja müra vältimist, kui muud kaasaegsed meetodid, kasutab pildi tihedusfunktsiooni maksimumi ja miinimumist sõltuvat kohanevat parameetrit. Antud parameetrit kasutatakse kui lävendit, mida rakendatakse pildi tihedus- ja jaotusfunktsioonidel. Seejärel leitakse uuest jaotusfunktsioonist uus kohanev parameeter, mida kasutatakse et luua kolmas jaotusfunktsioon. Lõplik väljund saadakse rakendades sellele viimasele jaotusfunktsioonile traditsionaalne histogrammi ühtlustamine.
## Värviliste piltide puhul
Ülevalolevad meetodid kirjeldavad hallskaalas pildi histogrammi ühtlustamist. Seda võib rakendada ka näiteks RGB piltidel rakendades seda eraldi selle punasele, rohelisele ja sinisele komponendile, kuid peab olema ettevaatlik, sest sellel võib olla tugev mõju pildi värvitasakaalule. Seda on võimalik vältida, kui kasutada värviruumi nagu CIELAB või HSB/HSV, kus saab algoritmi rakendada pildi heledusele, mis ei muuda selle värvitooni või -küllastust. 

## Näitepildid
### Väike pilt
:
### Täissuuruses pilt

## Teostamise näide ja matemaatiline kirjeldus
Tähistagu f meie pildi esitust, mis koosneb kahest täisarvulisest maatriksist m_r ja m_c. Need väärtused varieeruvad 0 -> L-1 ja näitavad pildi piksli intensiivsust. Tähistagu p f-i normaliseeritud histogrammi, mis on jaotatud kastideks iga võimaliku intensiivsuse jaoks. 

Ehk \ p_n = \frac{\text{pikslite arv intensiivsusega n}}{\text{kogu pikslite arv}},\quad \text{kus }n= 0,1,...,L-1.

Selle puhul näeb välja normaliseeritud histogrammi valem kui 

\ T(k) = floor((L-1)\sum_{n=0}^{k}p_n). 

Antud diskreetne transformatsioon edukalt lamendab meie histogrammi. Kuigi tuleb märkida, et selle tulemus ei ole täiesti lame on see siiski piisav, et pildi kontrast oluliselt muutuks.
Seda saab edasi üldistada tõlgendades f ja g kui pideva juhusliku suuruse muutujaid X, Y piirkonnas [0,L-1], kus Yon defineeritud kui:

Y = T(X) = (L-1)\int_{0}^{X}p_x(x)dx,

kus p_x on f-i tihedusfunktsioon. T on (L-1)-ga läbikorrutatud X-i jaotusfunktsioon. 

Kui eeldame, et T on diferentseeruv ja pööratav, siis saame näidata, et T(X)-i poolt defineeritud Y on ühtlaselt jaotunud üle [0,L-1] ning, et p_Y(y)=1/L-1. 

## Viited