Lysark(4 per side)

Temaer i dag
•
•
•
•
INF 2310 – Digital bildebehandling
F l
i 3
Forelesning
Geometriske operasjoner
Geometriske operasjoner
Li
Lineære
/ affine
ffi transformer
t
f
Resampling og interpolasjon
S
Samregistrering
i t i av bilder
bild
• Pensum:
P
K
Kap. 2
2.4.4
4 4 og 2.6.5
2 6 5 i DIP
Fritz Albregtsen
02.02.2015
INF2310
1
02.02.2015
Geometriske operasjoner
• Forstørre deler av bilder for visuell inspeksjon («zoome»)
• Rette opp geometriske feil som oppstår under avbildningen
–
–
–
–
–
• Første steg i denne prosessen:
– Transformer pikselkoordinatene (x,y) til (x’,y’):
x’ = Tx(x,y)
y’ = Ty(x,y)
Rotasjon i bildeplanet
Fiskeøyelinse
(Radar)avbildning av terreng
Medisinsk ultralyd
…
• Samregistrere bilder
–
–
–
–
– Tx og Ty er ofte gitt som polynomer
polynomer.
• Siden p
pikselkoordinatene må være heltall,,
må vi deretter bruke interpolasjon
til å finne pikselverdien (gråtonen)
i den
d nye posisjonen.
i j
INF2310
2
Anvendelser
• Endrer på pikslenes posisjoner
02.02.2015
INF2310
Samregistrere bilder fra ulike sensorer (CT, MR, US)
Samregistrere
S
i t
bild
bilder tatt
t tt på
å ulike
lik tidspunkt.
tid
kt
Samregistrere bilder med kart i en bestemt kartprojeksjon.
Eksempel: Ansiktsgjenkjenning: Finne alle ansiktene i et bilde, ”klipp” ut
ansiktene transformer del-bildene
ansiktene,
del bildene slik at ansiktene i bildet blir på samme
sted, har samme orientering og samme størrelse som i referansebildene.
• Generere bilder fra andre kameravinkler
• Spesialeffekter
3
02.02.2015
INF2310
4
Affine transformer
●
Egenskaper ved affine transformer
Transformerer pikselkoordinatene (x,y)
(x y) til (x’,y’):
(x’ y’):
• Rette linjer bevares (se ukeoppgave)
• Parallelle linjer forblir parallelle
- bevarer
b
ikke
ikk vinkler
i kl eller
ll avstander
t d
+ bevarer lengdeforhold langs rette linjer
• Utrykkes
Ut kk ved
d enkel
k l matrisemultiplikasjon
ti
lti lik j
x’ = Tx(x,y)
y’ = Ty(x,y)
●
Affine transformer beskrives ved:
x’ = a0x + a1y + a2
yy’ = b0x + b1y + b2
●
• Eksempler på affine transformasjoner:
–
–
–
–
–
På matriseform:
eller
02.02.2015
INF2310
5
• Høyrehånds koordinatsystem
koordinatsystem, rotasjon positiv med urviseren:
x’ = xcosθ - ysinθ; y’ = xsinθ + ycosθ
• Venstrehånds koordinatsystem,
y
, rotasjon
j positiv
p
med urviseren:
x’ = xcosθ + ysinθ; y’ = -xsinθ + ycosθ
θ
P
θ
y’
6
a0
a1
a2
b0
b1
b2
Uttrykk
y
Identitet
1
0
0
0
1
0
x’ = x
y’ = y
Skalering
s1
0
0
0
s2
0
xx’ = s1x
y’ = s2y
Rotasjon
cosθ
-sinθ
0
sinθ
cosθ
0
x’ =xcosθ-ysinθ
y’’ =xsinθ+ycosθ
i θ
θ
F
x’
x
INF2310
Transformasjon
j
x
yy’
02.02.2015
Eksempler på enkle transformer - I
Litt om rotasjon …
y
Translasjon
Rotasjon
”Shearing”
Skalering
K bi
Kombinasjoner
j
av disse
di
(!)
P
F
y
x’
02.02.2015
INF2310
7
02.02.2015
INF2310
8
Sammenslåing av affine transformer
Eksempler på enkle transformer - II
Transformasjon
j
a0
a1
a2
b0
b1
b2
Uttrykk
y
Translasjon
1
0
∆x
0
1
∆y
x’ = x+∆x
y’ = y+∆y
Horisontal ”shear”
shear
med faktor s1
1
s1
0
0
1
0
xx’ = x+s1y
y’ = y
Vertikal ”shear”
med
d faktor
f k
s2
1
0
0
s2
1
0
x’ = x
y’’ = s2x+y
F
(etc )
(etc.)
02.02.2015
INF2310
9
02.02.2015
Alternativ måte å finne
t
transformkoeffisientene
f
k ffi i t
INF2310
10
Transformer med høyere ordens polynomer
• En affin transform kan bestemmes ved å spesifisere
tre punkter før og etter avbildningen
●
Bilineære transformer beskrives ved:
x’ = a0x + a1y + a2 + a3xy
y’ = b0x + b1y + b2 + b3xy
●
Kvadratiske transformer:
x’ = a0x + a1y + a2 + a3xy + a4x2 + a5yy2
y’ = b0x + b1y + b2 + b3xy + b4x2 + b5yy2
resultat-bildet
inn-bildet
• Med disse tre p
punktparene
p
kan vi finne de 6 koeffisientene;;
a0, a1, a2, b0, b1, b2
• Med flere enn 3 punktpar velger man den transformasjonen
som minimerer (kvadrat
(kvadrat-)feilen
)feilen summert over alle punktene
(mer om dette senere)
02.02.2015
INF2310
●
11
Polynomer av høyere orden gir muligheter for å
k i
korrigere
for
f mer «komplekse»
k
l k
avbildningsfeil.
bild i
f il
02.02.2015
INF2310
12
Resampling
Forlengs mapping
Forlengs-mapping
for all x',y' do g(x',y') = 0
a0 = cos θ
a1 = -sin θ
b0 = sin θ
b1 = cos θ
I illustrasjonen:
H kun
Har
k sample/piksell / ik l
verdier
der linjene krysser
Vil gjerne ha bildet samplet
på et rektangulært grid
-> resample
Ikke glem at sammenhengen
mellom romlig oppløsning og
samplingsrate
(samplingsteoremet)
fortsatt gjelder!
02.02.2015
INF2310
13
for all x,y do
x’’ = ro
round(a
nd(a0x+a
+a1y))
y’ = round(b0x+b1y)
if (x’,y’) inside g
g(x’,y’) = f(x,y)
end
02.02.2015
Forlengs mapping forts.
Forlengs-mapping,
forts
Ikke alle utpiksler får
verdi
di (hullene
(h ll
i bildet)
bild t)
●
• Unødig beregning av
pikselkoordinater som
p
allikevel ikke blir synlige
(ender utenfor utbildet)
• Samme utbilde-piksel
utbilde piksel
kan bli satt flere ganger
INF2310
Flytter de posisjonstransformerte
pikselposisjonene
til nærmeste pikselposisjon i utbildet.
Skriver innbildets f(x,y) inn i g(x’, y’)
INF2310
14
Baklengs mapping
Baklengs-mapping
Problemer:
02.02.2015
Eksempel:
Enkel rotasjon ved transformen:
15
a0 = cos (-θ)
a1 = -sin (-θ)
b0 = sin (-θ)
b1 = cos (-θ)
for alle x’,y’ do
x = round(a
d( 0x’+a
’ 1y’)
’)
y = round(b0x’+b1y’)
if (x,y) inside f
g(x’,y’) = f(x,y)
else
g(x’,y’)=0
end
02.02.2015
Samme eksempel
S
k
l som
ved forlengs-mappingen.
NB ((x,y)) rotert
NB:
ote t med θ ga (x’,y’)
( ’ ’)
(x’,y’) rotert med -θ gir (x,y)
Resample bildet.
bildet
Her; for hvert utbilde-piksel,
invers-transformér,
og velg verdien til nærmeste piksel
fra innbildet.
For hver pikselposisjon i ut
ut-bildet:
bildet:
Hent pikselverdi fra innbildet.
INF2310
16
Og så : INTERPOLASJON
Baklengs mapping forts.
Baklengs-mapping,
forts
GARANTI:
Alle utpiksler
p
får verdi
(ingen hull i ut-bildet).
●
• Vi har utført den geometriske operasjonen
”baklengs
baklengs mapping
mapping”, som er en re-sampling
re-sampling.
• Ingen unødig beregning
av pikselkoordinater som
allikevel ikke blir synlige
(ender utenfor utbildet).
piksel i utbildet har vi valgt
g pikselverdien
p
• For hvert p
fra nærmeste piksel i innbildet, gitt transformen.
• Ingen utbilde-piksel vil
bli satt flere ganger.
• Er
E d
dette det
d beste
b
vii kan
k få til?
il?
• Eller finnes det metoder som gir et bedre resultat?
02.02.2015
INF2310
17
02.02.2015
INF2310
Interpolasjon :
H ilk intensitetsverdi
Hvilken
i t
it t
di skal
k l pikselen
ik l få?
Bilineær interpolasjon
p
j -I
• Anta at vi kjenner gråtoneverdien i fire nabo-punkter
• Ønsker å estimere gråtonen i et mellomliggende punkt.
• Gjør to lineære interpolasjoner i én retning først, f.eks i x-retning:
Baklengs-mapping
y
y’’
x’
f ( x , y1 ) 
x
og
f ( x, y2 ) 
x 2  x  f ( x , y )
x 2  x1  1 1
x 2  x  f ( x , y )
x 2  x1  1 2


x  x1  f ( x , y )
x 2  x1  2 1
x  x1  f ( x , y )
x 2  x1  2 2
• Så é
én iinterpolasjon
t
l j i ortogonal
t
l retning:
t i
f ( x, y ) 
Nullte-ordens
Nullte
ordens interpolasjon eller nærmeste nabo
nabo-interpolasjon
interpolasjon
g(x’,y’) = f( round(x) , round(y) )
INF2310
 y2  y  f ( x, y )
1
 y 2  y1 

 y  y1  f ( x , y )
2
 y 2  y1 
y2
y
y1
x1
x
x2
• Resultatet er uavhengig av rekkefølgen.
• Den interpolerte flaten er kvadratisk (krum)
(krum),
men lineær langs alle linjer som er parallelle med aksene.
=> Intensiteten til g(x’,y’)
g(x ,y ) blir en av verdiene fra f
02.02.2015
18
19
02.02.2015
INF2310
20
Første-ordens interpolasjon/
bili
bilineær
interpolasjon
i t
l j
Bilineær interpolasjon
p
j - II
• Intensiteten blir en kombinasjon
j av pikselverdiene
p
i
de fire pikslene som omgir punktet
g
fra hver av disse vektes med avstanden
• Bidragene
• Interpolere i x- og y-intervallene mellom 0 og 1:
• Bilineær interpolasjon når f er kjent i (0,0), (0,1), (1,0) og (1,1):
f ( x , y )  1  y  f ( x ,0 )  y f ( x ,1)
der
f ( x ,0 )  (1  x ) f ( 0 , 0 )  x f (1,0 )
og
f ( x ,1)  (1  x ) f ( 0 ,1)  x f (1,1)
Praktisk algoritme:
x0 = floor(x), y0 = floor(y)
x1 = ceil(x),
l( ) y1 = ceil(y)
l( )
 f ( x , y )  (1  x ) (1  y ) f ( 0 , 0 )  x (1  y ) f (1, 0 )  (1  x ) y f ( 0 ,1)  x y f (1,1)
Δx = x - x0
Δy = y - y0
p = f(x0,y0)+[f(x1,y0)-f(x0,y0)] Δx
q = f(x0,y1)+[f(x1,y1)-f(x0,y1)] Δx
f(x’,yy’))=p+(q-p)Δy
f(x
p+(q p)Δy
• Eller i matrisenotasjon:
f ( x , y )  (1  x )
 f ( 0 ,0 )
x 
 f (1,0 )
02.02.2015
f ( 0 ,1) 
f (1,1) 
 (1  y ) 


 y 
INF2310
21
Bilinært eksempel,
eksempel skulptur på Blindern
02.02.2015
INF2310
22
NN & bilineær interpolasjon,
interpolasjon eksempel
Jon Gundersen
”Velle”
1994
Utført i larvikitt,
larvikitt
På plassen foran
Helga Engs hus
”Vannet fremhever steinens vridde form
d den
der
d ligger
li
langs
l
Blindernaksen.
li d
k
( ll Uberg)
(Ulla
b )
02.02.2015
INF2310
23
02.02.2015
INF2310
24
Trilineær interpolasjon
p
j
Høyere ordens interpolasjon
Høyere-ordens
• Bi-kubisk
Bi kubisk interpolasjon benytter et naboskap på 4x4 piksler
• Utvidelsen fra 2D til 3D kalles trilineær interpolasjon,
og er en lineær interpolasjon mellom resultatene
av to bilineære interpolasjoner.
interpolasjoner
• IInterpolasjon
t
l j kan
k sees på
å som (kontinuerlig)
(k ti
li ) konvolusjon
k
l j
med bestemte filtre.
• Resultatet er igjen
uavhengig av
rekkefølgen.
(1D-varianter av nærmeste nabo, lineær og kubisk interpolasjonskjerne)
02.02.2015
INF2310
25
Interpolasjonsfunksjoner i praksis
02.02.2015
INF2310
26
”Kant
Kant-glorie-effekter
glorie effekter” / ”ringing”
ringing ved kubisk interpolasjon
• Nærmeste nabo:
The image cannot be display ed. Your computer may not hav e enough memory to open the image, or the image may hav e been corrupted. Restart y our computer, and then open the file again. If the red x still appears, y ou may hav e to delete the image and then insert it again.
– Taggete kanter og større totalfeil.
– Hver ut-piksel har en verdi fra inn-bildet:
• Ingen rekvantisering
k
er nødvendig:
d
d
– en fordel hvis man vil bevare visse statistiske egenskaper i bildet
(eller hvis bildet er segmentert i ulike klasser)
• Bilineær interpolasjon og høyere-ordens interpolasjon:
– er mer regnekrevende
• Bi-kubisk interpolasjon:
p
j
Negative lobe-verdier
– gir skarpere bilder og har kontinuerlige deriverte
– Men er (mye) mer regnekrevende enn bilineær interpolasjon,
– og kan gi opphav til ”kant-glorie-effekter”
02.02.2015
INF2310
27
02.02.2015
INF2310
28
Bruk av geometriske transformer:
S
Samregistrering
av b
bilder
ld
Interpolasjon – en sammenligning
• Nærmeste nabo gir 2D
trappefunksjon, med
diskontinuitet midt mellom
punktene.
• Bi-lineær interpolasjon
b k 2x2=4
bruker
2 2 4 piksler.
ik l
Derivert er ikke
kontinuerlig over flaten.
flaten
• Bi-kubisk interpolasjon gir
glattere flater enn
bilineær, men er mer
regnekrevende;
bruker 4x4=16 piksler.
02.02.2015
INF2310
Original
Transformert
Ønsket bilde å
samregistrere med
29
02.02.2015
Samregistrering II
• Ved flere kontrollpunkter enn nødvendig for å bestemme
transformkoeffisientene, benyttes ofte kvadratfeilen som
minimeringskriterium.
• Hvis ikke,
ikke brukes gjerne kontrollpunkter:
– Kontrollpunkter kan plukkes ut manuelt
• lett identifiserbare p
punkter (landemerker)
(
) i begge
gg bildene.
– Affine transformer er unikt spesifisert med 3 punktpar
• (bestemmer a0, a1, a2, b0, b1, b2)
– Bi-lineære med 4 punktpar
– Bi-kvadratiske med 6 punktpar
– Bi-kubiske
Bi kubiske med 16 punktpar
punktpar, …
• I praksis velges ofte mange flere punkter for å få en
god
d transformasjon
f
j (se
( neste side)
id )
INF2310
30
Samregistrering III
• Hvis bildenes kartkoordinater er kjent,
j ,
benyttes de til å finne transformkoeffisientene.
02.02.2015
INF2310
• Gitt M kontrollpunkter (xi,yi),(xir,yir) («r» indikerer referansebildet)
og anta mappingen (xi,yi) --> (x’i,y’i)
• Polynomkoeffisientene settes til de som minimerer kvadratfeilen
mellom kontrollpunktets sanne koordinater (xir,yir) og de
transformerte koordinatene (xi’,yi’):
• ”Enkel” lineæralgebra
g
benyttes
y
til å finne eksakt løsning.
g
31
02.02.2015
INF2310
32
Kursorisk pensum
Stykkevise transformer
Samregistrering IV (Minimere kvadratfeilen)
• Resampling:Forskjellige transformer for ulike deler av bildet
d
G
a
Vi er på jakt
etter
koeffisientene
i
denne avektoren
G og a er her
basert
på en affin
transform
02.02.2015
INF2310
Én enkelt matrise
33
Oppsummering
• Transform/endring av pikslenes posisjoner (x-,y-koordinater)
– Affine transformer
p g
• Resampling:
– Forlengs- og baklengsmapping
• Interpolasjonsmetoder for å bestemme gråtonene
til de geometrisk transformerte pikslene:
– Nærmeste nabo-interpolasjon
– Bilineær interpolasjon
– Høyere-ordens interpolasjoner
• Bruk av geometriske operasjoner til å samregistrere bilder
– Kontrollpunkter
– Løs
Lø liligningssett
i
tt som minimerer
i i
kvadratfeil
k d tf il
02.02.2015
INF2310
35
• Ofte bestemmes et kontrollgrid som styrer
hvordan de ulike delene skal endres
• Bilineær transformasjon benyttes ofte:
xx’ = a0xy + a1x + a2y + a3
y’ = b0xy + b1x + b2y + b3
Hver firkants
fire
hjørnepunkter
bestemmer
entydig den
bilineære
transformen
02.02.2015
INF2310
34