Histogram a jeho zpracování 3. přednáška předmětu Zpracování obrazů Martina Mudrová 2004
Definice Co je to histogram? = vektor absolutních četností výskytu každé barvy v obrázku
[H(1),H(2),…H(c)]
c ≤ m.n c
∑ H (i) = m.n
c…počet barev m,n…velikost obrázku
i =1
• intenzitní obrázky: 1 vektor H • barevné obrázky: 3 vektory H1,H2,H3 (typicky pro R,G,B složky obrazu, každá ze složek je zpracována zvlášť - podle stejného schématu a se stejnými parametry)
2 M. Mudrová, 2004
Základní vlastnosti histogramu
• je to statistická veličina popisující pravděpodobnost výskytu každé barvy v obraze • neříká nic o umístění barev v obraze Dva rozdílné obrázky:
Se stejným histogramem (bimodálním v tomto případě): 1 4
1 2
1 0
8
6
4
2
0
0
0 . 1
0 . 2
0 . 3
0 . 4
0 . 5
0 . 6
0 . 7
0 . 8
0 . 9
1
3 M. Mudrová, 2004
Další způsoby vyjádření histogramu 1. 2.
normalizace x-ové osy (barevného rozsahu) na interval <0,1> zobrazení kumulativního histogramu
4 M. Mudrová, 2004
Použití histogramu I • histogram poskytuje základní informaci o úrovni jasu v obrázku – metody zpracování histogramu mohou vést ke zlepšení kvality obrázku ! z pohledu subjektivního vjemu !
8000 2.5
x 10
4
7000 6000
1000
2
5000 1.5
4000 3000
500
1
2000 0.5
1000 0
0
0
0
50
100
150
200
250
Obrázek je příliš světlý (přeexponovaný) -čáry histogramu jsou převážně v pravé části
M. Mudrová, 2004
0
50
100
150
200
250
Obrázek je příliš tmavý (podexponovaný) -čáry histogramu jsou převážně v levé části
0
50
100
150
200
250
Nízká úroveň kontrastu v obrázku – čáry histogramu jsou pouze ve střední části
5
Použití histogramu II • umožňuje vhodnou volbu prahu(ů) T při redukci barev - zvláště v případě bimodálního histogramu - použití při detekci objektů – granulometrie apod.
⎧L pro x
x… vstupní hodnota intenzity y… nová hodnota intenzity T… hodnota prahu (threshold level)
6 M. Mudrová, 2004
Použití histogramu III •
kalibrace optických digitálních přístrojů (fotoaparáty, kamery, skenery,...)
1. 2.
snímání obrázku se známým histogramem (etalonu) porovnání histogramu získaného obrázku a daného histogramu slouží k nastavení parametrů přístroje
Příklad etalonu 7 M. Mudrová, 2004
Ekvalizace histogramu Co to znamená? • Upravit histogram tak, aby byl tak plochý jak je to jen možné 5000
Real picture histogram
4000
Ideal histogram
3000 2000 1000 0 0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
• Algoritmy ekvalizace jsou založeny na statistických metodách: D=
n.m MAX
D … optimální hodnota čar v histogramu n,m ... velikost obrázku MAX... hodnota maximální intenzity v obrázku 8
M. Mudrová, 2004
Příklad ekvalizace histogramu Originální obrázek
Obrázek po ekvalizaci po ekvalizaci.
original
h is t o g ra m
5000
5000
4000
4000
3000
3000
2000
2000
1000
1000
0
0
0 1 0
0 .1 x
1 0
0 .2
0 .3
0 .4
4
0 .5 k u m u la c e
0 .6
0 .7
0 .8
0 .9
1
c a r
0 1 0
0 .2
0 .3
0 .4
0 .5
0 .6
0 .7
0 .8
0 .9
1
4
6
6
4
4
2
2
0
M. Mudrová, 2004
1 0
8
8
0
0 .1 x
0
5 0
1 0 0
1 5 0
2 0 0
2 5 0
3 0 0
0
5 0
1 0 0
1 5 0
2 0 0
2 5 0
3 0 0
9
Úpravy histogramu Co se stane, když změním pozici čar v histogramu z hodnot x na y? A. Lineární úpravy: g = 1 1. Posun histogramu 2. Zúžení/rozšíření histogramu
x…vstupní histogram
0
l
h
1
B. Nelineární úpravy: g <> 1
y = xγ Gamma correction
t1
g=0.5 output value y
0 b y…výstupní histogram
1
g=2
0.8 0.6 0.4 0.2 0 0
0.2
0.4
0.6
0.8
1
input value x
10 M. Mudrová, 2004
Posun histogramu vpravo • Zvyšování jasové úrovně obrázku posouvá histogram doprava (k bílé).
5000
5000
5000
4500
4500
4500
4000
4000
4000
3500
3500
3500
3000
3000
3000
2500
2500
2500
2000
2000
2000
1500
1500
1500
1000
1000
1000
500
500
500
0
0 0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
11 M. Mudrová, 2004
Posun histogramu vlevo • Snižování jasové úrovně obrázku posouvá histogram doleva (k černé).
5000
5000
4500
4500
4000
4000
3500
3500
3000
3000
2500
2500
2000
2000
1500
1500
1000
1000
500
500
0
0
5000 4500 4000 3500 3000 2500 2000 1500 1000 500 0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1 0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
12 M. Mudrová, 2004
Další možnosti úpravy jasu? Nešlo by jednoduše přičíst nějakou konstantu k hodnotě každého pixelu? original+0.3
original
his togram originalu
7000
his togram po uprave
7000
6000
6000 6000
5000
5000 5000
4000
4000 4000
3000
3000
3000
2000
2000
2000
1000
1000
1000 0
0
0 0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
! Tento způsob může vést ke ztrátě detailní informace v oblasti „jasných“ barev bez možnosti jejího zpětného obnovení 13 M. Mudrová, 2004
Ztráta tmavých odstínů ...Nebo odečíst konstantu od hodnoty každého pixelu?
7000
9000
9000
6000
8000
8000
5000
7000
7000
6000
6000
5000
5000
3000
4000
4000
2000
3000
4000
3000
2000
2000
1000 1000
0
1000
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
! Tento způsob může vést ke ztrátě detailní informace v oblasti „tmavých“ barev bez možnosti jejího zpětného obnovení M. Mudrová, 2004
14
Kontrast: Dilatace a zúžení histogramu
9000 5000
7000
8000 6000
4500
7000
4000
6000
3500
4000
5000
3000
3000
4000
5000
2500 2000
3000
2000
1500 2000
1000
1000
1000
500
0
0 0
0 .1
0 .2
0 .3
0 .4
0.5
0.6
0.7
0 .8
0 .9
0
1
0
0.1
0.2
0.3
0.4
0 .5
0 .6
0 .7
0 .8
0 .9
Dilatace histogramu způsobuje zvýšení kontrastu
1
0
0 .1
0.2
0.3
0 .4
0.5
0 .6
0.7
0.8
0 .9
1
Zúžení histogramu vede ke snížení kontrastu
! Pozor na ztrátu detailní informace ve velmi jasných a tmavých úrovních
barev v průběhu operací s histogramem – dilatace následovaná odpovídajícím zúžením nemusí vést k původnímu obrazu M. Mudrová, 2004
15
Gama korekce x…vstupní histogram
y=x
l
0
γ
h y=x
0<γ <1…obrázek bude světlejší γ >1… obrázek bude tmavší γ =1…lineární úprava
0
1
γ
t 1
b
y…výstupní histogram
Gamma correction o u tp u t valu e y
g=0.5
1
g=2
0.8 0.6 0.4
! Některá digitální zařízení definují hodnotu gama převráceně:
0.2 0 0
0.2
0.4
0.6
0.8
1
input value x
y=x
1
γ
16 M. Mudrová, 2004
Použití gama korekce Parametry úpravy histogramu původní obrázek
Obrázek
Histogram 8
0
6
0
4
0
2
0 0 0
posun čar histogramu z <0.25,1> do <0, 0.75>, γ =1
0
. 5
1
50 0 0
0 5
1
0 .5
1
8 0
posun čar histogramu z <0.25,1> do <0, 0.75>, γ =5
6 0 4 0 2 0 0 0
posun čar histogramu z <0.25,1> do <0, 0.75>, γ =0.2 M. Mudrová, 2004
50 0 0
02
04
06
08
1
17
Pokročilé metody úpravy histogramu - Operace s vyhledávací tabulkou - LUT (Look-up table) -1 nová barva je přiřazena 1,2 nebo více původním barvám - nevratná operace - použití pro zajímavé efekty (vytváření tzv. vodových kreseb z realistických fotografií) a pro zvýraznění struktur v obraze - Daný histogram s daným tvarem může být obrázku vnucen -…
18 M. Mudrová, 2004
Příkazy Matlabu pro operace s histogramem
imhist histeq imadjust (brighten) (contrast) stretchlim
19 M. Mudrová, 2004
Příklad Ekvalizace histogramu original
po ekvalizaci.
histogram originalu
histogram
% Histogram a jeho upravy (1) % Ekvalizace histogramu clear delete(get(0,'children')); [x,map]=imread('busek.bmp'); i=ind2gray(x,map); subplot(321), imshow(i) title('original') subplot(323),imhist(i) title('histogram originalu'), j=histeq(i,32); subplot(322), subimage(j ) axis off,title('po ekvalizaci.') subplot(324),imhist(j) title('histogram '), subplot(325),plot(cumsum(imhist(i))) title('kumulace car'), subplot(326),plot(cumsum(imhist(j)))
4000
4000
2000
2000
0
0 0
100 4
10
x 10
200
0
kumulace car 10
5
0
100
200
4
x 10
5
0
100
200
300
0
0
100
200
300
20 M. Mudrová, 2004
Příklad Lineární úprava histogramu original
histogram originalu
% Upravy histogramu(2) 6000
clear delete(get(0,'children'))
4000 2000
figure(1) [x,map]=imread('../busek.bmp'); i=ind2gray(x,map); j=imadjust(i,[0 1],[0 0.8],1); subplot(221),imshow(i) title('original') subplot(222),imhist(i,128) title('histogram originalu') subplot(223),imshow(j) title(' po uprave') subplot(224),imhist(j) title('histogram po uprave')
0 0
100
200
histogram po uprave
po uprave 4000 2000 0 0
100
200
21 M. Mudrová, 2004