___________________________________ ___________________________________ ___________________________________
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…počet barev m,n…velikost obrázku
c
∑ H (i) = m.n 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
1000
2
6000 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 < T y =⎨ ⎩H pro x ≥T
___________________________________
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=
D … optimální hodnota čar v histogramu n,m ... velikost obrázku MAX... hodnota maximální intenzity v obrázku
n.m MAX
___________________________________ ___________________________________
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 .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
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 0
0 .1 x
8
8
M. Mudrová, 2004
___________________________________
0 0
1 0
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?
l
0
___________________________________
A. Lineární úpravy: g = 1 1. Posun histogramu 2. Zúžení/rozšíření histogramu
x…vstupní histogram
h
1
___________________________________
B. Nelineární úpravy: g <> 1
___________________________________
y = xγ Gamma correction
0 b y…výstupní histogram
t1
___________________________________
g=0.5 output value y
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
500
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
___________________________________
500
0 0
___________________________________
1000
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.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
4500 4000
___________________________________
3500 3000 2500 2000 1500
___________________________________
1000
500
0
___________________________________
5000
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.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
original+0.3
___________________________________ ___________________________________ his togram originalu
___________________________________
7000
his togram po u prave
7000
6000
60 00 6000
5000
50 00 5000
___________________________________
4000
40 00 4000
3000
30 00
3000 2000 1000
20 00
2000
10 00
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
0
1
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 6000 5000
9000
9000
8000
8000
7000
7000
6000
6000
4000 5000
5000
3000
4000
4000
2000
3000
2000
1000 1000
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
___________________________________
1000
0
0
___________________________________
3000
2000
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
! 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í
14
M. Mudrová, 2004
___________________________________ Kontrast: Dilatace a zúžení histogramu
___________________________________ ___________________________________ ___________________________________ ___________________________________
9000 50 0 0
70 0 0
8000 60 0 0 50 0 0
45 0 0
7000
40 0 0
6000
35 0 0
5000
30 0 0
40 0 0 30 0 0
4000
25 0 0 20 0 0
3000
20 0 0
___________________________________
15 0 0 2000
10 0 0
10 0 0
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
___________________________________
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
1
___________________________________ ___________________________________ 15
___________________________________ Gama korekce
___________________________________ ___________________________________
x…vstupní histogram
y=x
l
0
γ
h
1
___________________________________
y = xγ
0<γ <1…obrázek bude světlejší γ >1… obrázek bude tmavší γ =1…lineární úprava
0
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
y=x
input value 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
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
0 .5
___________________________________
1
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 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)))
histogram originalu 4000
2000
2000
0 100 4
x 10
200
0
100
200
___________________________________
4
kumulace car 10
5
0
___________________________________
0 0
10
___________________________________
histogram
4000
x 10
5
0
100
200
300
0
0
100
200
___________________________________
300
___________________________________ 20 M. Mudrová, 2004
___________________________________ Příklad
___________________________________ ___________________________________
Lineární úprava histogramu % Upravy histogramu(2)
original
histogram originalu
___________________________________
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