kontrast? gråtonehistogrammer...– hvis flere q gir sam me match, velg den minste. • kombiner...
TRANSCRIPT
Repetisjonsforelesning før midtveiseksamen INF2310
våren 2016
Oppsummering av forelesning 4 og 5, gråtonetransformasjoner og histogramtransformasjoner. Ole Marius Hoel Rindal
Hvordan endre kontrasten i et bilde?
09.02.2016 INF2310 2
Hva er kontrast?
• Det er flere mulige definisjoner av dette begrepet.
• De fleste er variasjoner over temaet – differanse/gjennomsnitt
– som kan anvendes på mange fysiske egenskaper
– Her holder vi oss til luminositet.
• Weberkontrast (”Weber fraction”)
• Michelsonkontrast (”Visibility”)
• RMSkontrast
3 INF2310 09.02.2016
1
0
1
0
2),(
1 N
x
M
y
IyxIMN
)()(
min
min
IIII
Max
Max
b
b
III )(
Gråtonehistogrammer
• Gitt et gråtonebilde med nm piksler og G gråtoner
• Et histogram, h(i), er slik at: h(i) = antall piksler i bildet med pikselverdi i
• Dannes ved å gå igjennom alle pikslene og telle gråtoner
• Vi har naturligvis at
1
0
)(G
i
mnih
4 INF2310 09.02.2016
Eksempel histogram
Bilde: Histogram:
1 3 2 1
5 4 5 3
4 1 1 2
2 3 2 1 1 2 3 4 5
Pikselverdi #
pik
sler
i
h(i)
5 INF2310 09.02.2016
Eksempler
6 INF2310 09.02.2016
Normalisert histogram
• Vi har at
• Det normaliserte histogrammet er:
• p(i) kan ses på som en sannsynlighetsfordeling for pikselverdiene i – ”Uavhengig” av antall piksler i bildet
• Man kan si en del om bildet ut fra denne sannsynlighetstetthetsfunksjonen
1
0
)(G
i
mnih
1
0
1)(,)(
)(G
i
ipmnih
ip
7 INF2310 09.02.2016
Kumulativt histogram
• Hvor mange piksler har gråtone mindre enn eller lik gråtone j?
• Normalisert kumulativt histogram:
(Sannsynligheten for at en tilfeldig piksel har gråtone mindre eller lik j)
j
i
ihjc0
)()(
mn
jc
)(
8 INF2310 09.02.2016
Eksempel, kumulativt histogram
Histogram og kumulativt histogram i samme figur
9 INF2310 09.02.2016
Lineær avbilding
• Lineær strekking
• a regulerer kontrasten, og b ”lysheten”
• a>1: mer kontrast
• a<1: mindre kontrast
• b : flytter alle gråtoner b nivåer
• ”Negativer”: a=-1 , b = maxverdi for bildetype
byxfayxg ),(),(
biaiT ][
10 INF2310 09.02.2016
Endre ”lysheten” (brightness)
• Legge til en konstant b til alle pikselverdiene
– Hvis b > 0 , alle pikselverdiene øker, og bildet blir lysere
– Hvis b < 0 , bildet blir mørkere
– Histogrammet flyttes opp eller ned med b
– Middelverdien endres!
byxfyxg ),(,
f
h(f)
g
h(g
)
11 INF2310 09.02.2016
Endre kontrasten
• Multiplisere hver pikselverdi med en faktor a:
– Hvis a > 1, kontrasten øker
– Hvis a < 1, kontrasten minker
• Eks: Bruke hele intensitetsskalaen
• Q: Hva skjer med middelverdien?
),(, yxfayxg
f
h(f)
g
h(g
)
12 INF2310 09.02.2016
Alternativ illustrasjon
• Endre ”brightness”:
• Endre kontrast:
13 INF2310 09.02.2016
byxfyxg ),(,
f
),(, yxfayxg
f
g
g
Fra gråtonenivå [f1,f2] til [g1,g2]
• Endre intervallet [f1, f2] til å bli [g1,g2]
• En lineær mapping fra f til g :
– Rett linje med stigningstall
a=(g2-g1)/(f2-f1)
g g2 g1
f1 f2 f
12
12
ffgg
a 112
121 ),(, fyxf
ffgg
gyxg
14 INF2310 09.02.2016
Klipping etter transform
• Om g(x,y) får verdier utenfor det støttede intervallet, foretas som oftest klipping av verdiene
• F.eks vil et unsigned byte bilde g bli tvunget til å ha intensiteter innenfor intervallet [0, 255]
min g
max g
15 INF2310 09.02.2016
Standardisering av bilder
• Hensikt: – Sørge for at alle bildene i en serie er statistisk like (1. orden)
• Metode: – Justere middelverdien og variansen til gråtoneverdiene i bildet
ved hjelp av en lineær gråtonetransform • Hvorfor? Vi vil fjerne effekten av
– Døgnvariasjon i belysning – Aldringseffekter i lamper og detektorer – Akkumulering av støv på linser etc.
• Hvor: – Produktinspeksjon i industri – Mikroskopering av celler – ...
Neste uke: Kan også standardisere bildene med histogramspesifikasjon, men vil da ikke beholde ”formen” på histogrammet
16 INF2310 09.02.2016
Middelverdien av gråtonene
• Middelverdien av pikselverdiene i et bilde med nхm piksler og G gråtoner kan finnes – enten fra bildet
– eller fra bildets histogram, evt fra normalisert histogram
1
0
1
0
1
0
1
0
)()(1
)1()1(...)1(1)0(01
),(1
G
i
G
i
n
x
m
y
ipiihimn
GhGhhmn
yxfmn
1
0
1)( ,)(
)(:G
i
ipnmih
ipder
(Normalisert histogram)
Hvorfor en fordel med det siste alternativet?
17 INF2310 09.02.2016
Varians av gråtonene
• Variansen av pikselverdiene i et bilde med nxm piksler og G gråtoner kan også finnes fra bildets histogram
21
0
1
0
2
21
0
21
0
1
0
1
0
22
)()(
][)(
][)(1
]),([1
G
i
G
i
G
i
G
i
n
x
m
y
ipiipi
iip
iihmn
yxfmn
18 INF2310 09.02.2016
Justering av μ og σ2
• Gitt innbilde med middelverdi μ og varians σ2 • Anta en lineær gråtonetransform T[i]=ai+b • Ny middelverdi μT og varians σT
2 er da gitt ved
• Dvs. a=σT/σ , b= μT aμ
• Vi kan altså – velge nye μT og σT
2, – beregne a og b, – anvende T[i]=ai + b på innbildet – og få et utbilde med riktig μT og σT
2
baipiTG
iT
1
0
)(][
2221
0
1
0
22
21
0
1
0
222
21
0
1
0
22
)()(
)()(2
)(][)(][
aipiipia
ipbaiipbaibia
ipiTipiT
G
i
G
i
G
i
G
i
G
i
G
iT
19 INF2310 09.02.2016
Ikkelineær transform
• Logaritmisk skalering – Eks: Desibel og radarbilder, Fouriertransform
• Eksponentiell skalering
• Gammaskalering
• Stykkevislineær skalering
• Hva gjøres med kontrasten i de mørke og lyse delene av bildet etter slike skaleringer ? – Tegn skisse av funksjonene og se på Δf mot Δg
20 INF2310 09.02.2016
Logaritmiske transformasjoner
• Hvilken av transformasjonene til høyre er brukt her?
(Fig 3.3 i DIP)
21 INF2310 09.02.2016
”Powerlaw” (gamma)transformasjoner
• Mange bildeproduserende apparater har et input/outputforhold som kan beskrives som:
der s er utintensiteten ved en input i
– γ <1: den mørke delen av skalaen strekkes ut
– γ =1: identitetstransform
– γ >1: den lyse delen av skalaen strekkes ut
• Generell kontrastmanipulasjon – Brukervennlig med kun én variabel
(Fig 3.6 i DIP)
cis
22 INF2310 09.02.2016
Gammastyrt bildeforbedring
23 INF2310 09.02.2016
γ = 1 γ = 0.6
γ = 0.4 γ = 0.3
γ = 1 γ = 3
γ = 4 γ = 5
(Fig 3.9 i DIP) (Fig 3.8 i DIP)
INF2310 – Digital bildebehandling
Forelesning 5 Histogramtransformasjoner
Ole Marius Hoel Rindal
Etter orginale foiler av Fritz Albregtsen.
16.02.2016 INF2310
Histogramutjevning (histogram equalization)
• Maksimal kontrast: Alle pikselverdier like sannsynlige – Histogrammet er uniformt (flatt)
• Ønsker en transformasjon av bildet slik at det transformerte bildet har uniformt histogram – Dvs. at bildet har like mange piksler for hver gråtone
• Tilnærmer ved å flytte på histogramsøyler
• Trenger en oversikt over hvor hver søyle skal flyttes: T[i]
16.02.2016 INF2310
Algoritme for histogramutjevning
• For et nm bilde med L gråtoner: – Lag array p, cn og T av lengde L med initialverdi 0
• Finn bildets normaliserte histogram – Gå igjennom bildet piksel for piksel. – Hvis piksel har intensitet i, la p[i]=p[i]+1 – Deretter skalér, p[i] = p[i]/(n*m), i=0,1,…,L1
• Lag det normaliserte kumulative histogrammet cn – cn[0] = p[0], cn[i] = cn [i1]+p[i], i=1,2,....,L1
• Sett inn verdier i transformarray T T[i] = Round( (L1)*cn [i] ), i=0,1,......,L1
• Gå igjennom bildet piksel for piksel, Hvis innbildet har intensitet i,
sett intensitet i utbildet til s=T[i]
16.02.2016 INF2310
Eksempel – histogramutjevning3
• Finn bildets normaliserte histogram
• Lag det normaliserte kumulative histogrammet cn
• Sett inn verdier i transformarray T – T[i] = Round( (L1)*cn [i] )
for i=0,1,......,L1
INF2310 16.02.2016
Eksempel 1 histogramutjevning
16.02.2016 INF2310
Histogramutjevning
• Histogramutjevning kan flytte histogramsøyler
• Kan også slå sammen søyler
• Men kan ikke splitte søyler
• Gir bare tilnærmet flatt histogram i utbildet
• Utbildets kumulative histogram stiger lineært
16.02.2016 INF2310
Histogramtilpasning
• Histogramutjevning gir tilnærmet flatt histogram
• Kan hende at vi ønsker å spesifisere annen form på resultathistogrammet:
1. Gjør histogramutjevning på innbildet, finn s=T(i)
2. Spesifiser ønsket nytt histogram pz(i)
3. Finn den transformen G som histogramutjevner g(z), og finn inverstransformen G1
4. Inverstransformer det histogramutjevnede bildet fra punkt 1
ved z=G1(s)
16.02.2016 INF2310
Algoritme histogramspesifikasjon
• Finn normalisert histogram, pr(i), for inputbildet, f(r).
• Lag det normaliserte kumulative histogrammet cn(i).
• Sett s(i)=Round( (L1)*cn[i] ), i=0,1,......,L1, Transformasjon T.
• Gitt ønsket histogram, pz(i), for bildet g(z).
• Beregn kumulativt spesifisert histogram, skalér, avrund til nærmeste heltall i [0,L1], og lagre G(q).
• For i=0,1,…,L1, finn q slik at G(q) er nærmest mulig s(i), og lagre alle disse matchene i en array G1(i).
– Hvis flere q gir samme match, velg den minste.
• Kombiner så de de to transformene T og G1 til en ny mapping. – Alternativt først histogramutjevn innbildet med transformasjonen T, for så å
transformere det histogramutjevnede bildet med transformasjonen G1
16.02.2016 INF2310
Tilpasning til Gaussfordeling
INF2310 16.02.2016
Tilpasning til Gaussfordeling
INF2310 16.02.2016
”Histogram matching”
• Histogramtilpasning hvor det ene bildets histogram benyttes som ønsket form
16.02.2016 INF2310
Histogramutjevning av RGBbilder
• Histogramutjevning på hver komponent (r,g,b) uavhengig av hverandre – Kan føre til endring i fargetonene i bildet
• Alternativt benytte HSI: – Transformér bildet fra RGB til HSI – Gjør histogramutjevning på Ikomponenten
– Transformer HSIny tilbake til RGB
hvit
gul grønn
blå magenta
svart
S
I
H
16.02.2016 INF2310
Eks: Histogramutjevning RGB vs HSI
INF2310 16.02.2016
Om vi gjør histogramutjevning på RGB kanalene endrer vi
fargetonene
For HSI er det kun I verdien som representerer gråtonen og denne
kan «trygt» utjevnes.
Eks: Histogramutjevning RGB vs HSI
INF2310 16.02.2016
Originalbilde Histogramutjevning på RGB
Histogramutjevning i intensitet i HSI
HSI: Hue = ren farge, saturation = fargemetning, intensity = gråtone.
Lokal gråtonetransform (GTT)
• Vil standardisere den lokale kontrasten
– Samme kontrast over hele bildet
• Transformasjonene vi har sett på kan også beregnes ut fra pikselverdiene i en lokal omegn (kvadratisk vindu) omkring punktet (x,y)
– Kun pikselverdien g(x,y) bestemmes av transformen basert på dette vinduets piksler
– Altså egen transform for hvert piksel i bildet (lokal adaptivitet).
16.02.2016 INF2310
• Utfør lokal GTT som gir «samme kontrast» over hele bildet
• Vi skal se på to metoder
– 1 : Lokal histogramspesifikasjon/utjevning
• Også kjent som adaptiv histogramutjevning – AHE (Adaptive histogram equalization)
• En mye brukt variant: CLAHE (contrast limited adaptive histogram equalization)
– 2 : Lineær standardisering av σ til σ0 • Beregn μ(x,y) og σ(x,y) i et vindu sentrert om (x,y)
• Transformer f(x,y) til g(x,y) med en lineær transform som gir nytt standardavvik σ0 innenfor vinduet
Lokal gråtonetransform (GTT)
),(
),(),(),(),( 01 yx
yxyxfyxyxg
Vi kom fram til disse uttrykkene forrige uke! 16.02.2016 INF2310
Lokal histogramspesifikasjon/utjevning
• Også kjent som adaptiv histogramutjevning
– AHE (Adaptive histogram equalization)
• Beregn kumulativt histogram i et vindu sentrert om (x,y)
• Endre senterpikselen ved den resulterende transformen
• Størrelsen på vinduet er en viktig parameter.
• Piksler langs kanten må behandles spesielt.
• Hver piksel får altså sin egen transform, dette er en svært regnekrevende fremgangsmåte. Vi kan utnytte at vinduene er overlappende i utregningen.
INF2310 16.02.2016
Global HistEq vs Lokal HistEq
(Fra DIP, Gonzales & Woods)
16.02.2016 INF2310
Kontrastbegrenset lokal histogramspesifikasjon/utjevning
• En mye brukt variant: CLAHE (contrast limited adaptive histogram equalization)
• Her «begrenser vi kontrasten» ved å klippe histogrammet før vi regner ut det kumulative histogrammet.
• Dette gir en transformasjon med lavere stigningstall, som gir mindre kontrast.
INF2310 16.02.2016
Lokal histogramspesifikasjon/utjevning
INF2310 16.02.2016
Hele bildet ble noe mer «varierende», men detaljer i
bildet som for eksempel felgen og hjulet ble mer tydelig.
– Lineær standardisering av σ til σ0
• Beregn μ(x,y) og σ(x,y) i et vindu sentrert om (x,y)
• Transformer f(x,y) til g(x,y) med en lineær transform som gir nytt standardavvik σ0 innenfor vinduet
INF2310 16.02.2016
Lineær standardisering av σ til σ0
),(
),(),(),(),( 01 yx
yxyxfyxyxg
TTT
TT
T
iiiT
aba
1][
1,
Vi kom frem til dette forrige uke:
Lineær standardisering til σ0 og μ0 • Ønsker vi lokal GTT som også gir en ny middelverdi μ0 ,
så bruker vi transformen
• Men dette vil gi et ”flatt” bilde
• Parameteren β kan styre hvor kraftig vi endrer μ: β = 0 => uforandret middelverdi over hele bildet
β = 1 => lik middelverdi over hele bildet
),(),(),(),( 0
02 yxyxyxfyxg
),(),(),(),(1),( 0
03 yxyxyxfyxyxg
16.02.2016 INF2310
Lineær standardisering til σ0 og μ0
• Hva er karakteristisk for homogene områder i et bilde?
• Her får vi problemer, fordi vi har σ i nevneren:
• Innfører parameteren δ:
• Lokal pikselverdimapping gir økt regnearbeid.
0),( yx
),(
),(),(...),( 03 yx
yxyxfyxg
0
0
04
),(),(),(
),(1),(
yxyxyxf
yxyxg
16.02.2016 INF2310
Lokal GTT – Eksempel I
Original Global histogram- utjevning
Lokal endring av middelverdi og kontrast
16.02.2016 INF2310
Sentrale temaer i dag
• Histogramtransformasjoner
– Histogramutjevning – Histogramtilpasning
• Standardisering av histogram for billedserier – Fjerne effekten av variasjoner i avbildningsforhold
(døgnvariasjon, lampe, støv etc) – Ikke lurt med histogramtilpasning hvis histogramformen
inneholder informasjon som senere skal benyttes – Alternativ til standardisering av bilder med lineær transform
• Litt om histogramtransformasjoner i fargebilder • Lokal gråtonetransformasjon
– 1. metode: • Lokal histogramutjevning/tilpasning • Kontrastbegrenset lokal histogramutjevning/tilpasning
– 2. metode • Samme kontrast (og middelverdi) over hele bildet • Beregn og benytt transformene på lokalt vindu rundt hver piksel
– Dette er regnekrevende.
16.02.2016 INF2310
Andre ressurser
• Inf2310.olemarius.net