Upload
internet
View
111
Download
1
Embed Size (px)
Citation preview
Imagem Digital
Captura, Processamento, Interpretação, Criação,
Reprodução, …
FORMAÇÃO DE UMA IMAGEM NUMA CÂMERA DIGITAL
Captura da radiância de uma cena num plano
Câmera obscura e Câmera “pin-hole”
Plymouth, UK
Câmera Obscura -- efeito natural
Bellinzona no canton TicinoSwitzerland.
Primeiras câmaras fotográficas
Luis-Jacques-Mandé Daguerre (1787-1851)1839
Câmeras digitais
Captura da cor
Sensores
MONITORESEmissão da radiância num plano
Primeira imagem colorida (início do sec. XX)
James Clerk Maxwell (1831-1879)
Scottish physicist.
RBG Images
Multi-fontes pontuais
Nexus_one_screen_microscope.jpg(wiki)
OLED
Impressão
Imagem: Modelo Matemático: Função
u
v
L
L(u,v)
Função
0%
20%
40%
60%
80%
100%
Nív
eis
de c
inza
Posição ao longo da linhax
C 2,0,0: hwL
Lv
u
Imagem colorida
R
G
Bu
v
Imagem coloridas como 3 canais de cor
= ++
u
v
R
R(u,v)
u
v
GG(u,v)
u
v
BB(u,v)
Imagem Digital
Amostragem, quantização e codificação
Digitalização de Imagens
Discretização espacial (amostragem)
Processos básicos
Imagem de tons contínuos
64x54
Imagem amostrada
amostragem
64x54 - 16 cores
Imagem amostrada equantizada
quantização
55 55 55 55 55 55 55
55 20 22 23 45 55 55
55 55 10 09 11 55 55
55 55 43 42 70 55 55
55 55 28 76 22 55 55
55 55 55 55 55 55 55
codificação8*55, 1*20, 1*22, 1*23, ….
Imagem amostrada, quantizada e codificada
Áudio (Sinal 1D)
Amostragem, quantização e codificação de f(x)
x
f(x)
amostra
partição do eixo x
codificação = (3, 4, 5, 5, 4, 2, 2, 3, 5, 5, 4, 2)
Amostragem, quantização e codificação de f(x)
0
1
2
3
4
5
6
x
f(x)
amostraquantizada
(a) aumento de resolução
Problemas associados a re-amostragem de um sinal digital f(x)
x
f(x)
função reconstruídapelo vizinho mais próximo
função reconstruídapor interpolação linear
0
1
2
3
4
5
6 função original
Re-amostragem de f(x)
x
f(x)
função reconstruídapelo vizinho mais próximo
função reconstruídapor interpolação linear
função original
(b) redução de resolução
0
1
2
3
4
5
6
Parte 2 - Eliminação de ruídos e realce de arestas
Aplicações da Transformada de Fourier
Imagem DigitalConceitos, Processamento e Análise
Redução de ruídos
• Dada uma imagem I com um ruído n, reduza n o máximo que puder (preferencialmente elimine n completamente) sem alterar significativamente I.
),(),(),(ˆ jinjiIjiI
n
sSNR
n
sdBSNR
10log10
100n
s
20 dB significam
Dois tipos básicos de ruídos
• Ruído Gaussiano branco : processo estocástico de média zero, independente do tempo e dos espaço.
2
2
2
2
1)(
x
exG
0),( jin
),(~),( 00 jjiinjin é o mesmo processo estocástico que não varia no tempo.
),( jin é uma variável aleatória com a distribuição:
Dois tipos básicos de ruídos
• Ruído impulsivo: causado por erro de transmissão, CCDs defeituosos, etc... Também chamado de pico e de sal e pimenta.
lxiiyi
lxjinsp )(
0),(
minmaxmin
1,0, yx são v.a. uniformemente distribuídas
imin, imax, e l são parâmetos de controle da quantidade de ruídos.
Exemplo de ruído Gaussiano (=5) e Impulsivo ( =0.99)
Imagem com ruído impulsivo
223 204 204 204 204 204 204 204 204 204 204 204 204 223
171 120 120 120 18 120 50 120 120 120 120 120 120 171
171 120 120 120 116 120 120 120 120 120 120 120 120 171
138 120 120 120 120 120 50 120 97 120 120 120 120 171
171 120 120 120 120 120 120 120 120 120 187 120 120 242
172 120 120 120 120 120 120 120 120 120 120 120 120 171
171 120 120 120 120 120 179 120 120 120 120 167 120 171
171 120 120 120 120 120 120 235 120 120 120 120 120 171
171 120 120 120 120 120 120 235 120 76 175 120 120 171
171 120 120 120 120 120 120 120 120 120 120 120 120 171
171 120 120 120 120 120 120 120 123 120 120 214 120 114
171 120 120 120 120 120 120 120 120 120 120 120 143 171
171 120 120 120 232 120 120 198 120 120 120 120 120 171
203 171 171 171 171 171 171 171 171 205 171 171 171 203
Uso da mediana
Iij = mediana Ωij
Sinal com ruído
:= ( )f3 x 10 ( )cos 2 x 6 ( )sin 10 x .8 ( )cos 40 x
-20
-15
-10
-5
0
5
10
15
20
Suavização
f
h
4
2 11 iii
i
fffh
Filtragem Gaussiana
-20
-15
-10
-5
0
5
10
15
20
w1+w2+w3 filtro w1+w2
Imagem Digital: Histogramas
Uma outra maneira de ver a informação da imagem: probabilidade deocorrência de um determinado valor, uso do intervalo [0,255], contraste,...
Histogramas de Imagem Colorida
Propriedades básicas de uma Imagem Digital
Convolução
t
t
dtxfxtgxh )()()(
1
0)(
n
kiiki fgh
duuxgufgfxh )()()(
Convolution
• Pictorially
f(x)
h(x)
Convolution
f(t)
x
h(t-x)
Convolution
• Consider the function (box filter):
21
21
21
21
0
1
0
)(
x
x
x
xh
Convolution
• This function windows our function f(x).
f(t)
Convolution
• This function windows our function f(x).
f(t)
Convolution
• This function windows our function f(x).
f(t)
Convolution
• This function windows our function f(x).
f(t)
Convolution
• This function windows our function f(x).
f(t)
Convolution
• This function windows our function f(x).
f(t)
Convolution
• This function windows our function f(x).
f(t)
Convolution
• This function windows our function f(x).
f(t)
Convolution
• This function windows our function f(x).
f(t)
Convolution
• This function windows our function f(x).
f(t)
Convolution
• This function windows our function f(x).
f(t)
Convolution
• This function windows our function f(x).
f(t)
Convolution
• This function windows our function f(x).
f(t)
Convolution
• This function windows our function f(x).
f(t)
Convolution
• This function windows our function f(x).
f(t)
Convolution
• This function windows our function f(x).
f(t)
Convolution
• This function windows our function f(x).
f(t)
Convolution
• This function windows our function f(x).
f(t)
Convolution
• This function windows our function f(x).
f(t)
Convolution
• This function windows our function f(x).
f(t)
Convolution
• This function windows our function f(x).
f(t)
Convolution
• This function windows our function f(x).
f(t)
Convolution
• This particular convolution smooths out some of the high frequencies in f(x).
f(x)g(x) f(t)
Ilustação da convolução
t
t
dtxfxtgxh )()()(
Ilustração da convolução
t
t
dtxfxtgxh )()()(
ALIASO problema de amostragem
Freqüência de Amostragem
x
f(x)
x
f(x)
x
f(x)
Sinal sub-amostrado
Estudo de sinais digitais
Transformadas para o domínio da freqüencia
Teorema de Nyquist e Alias
Harmônicos
t+
)cos( tA
-8
-6
-4
-2
0
2
4
6
8
0 0.01 0.02 0.03 0.04 0.05A-A
T
)(1
HzT
f
revisão
)(2
2 radtT
ftt
A
Integrais de senos e cosenos em [-,]
cos(nx) sin(nx)
n = 1
n = 2
sin(nx)cos(nx)
revisão
Áreas se compensam.Integrais resultam em 0.
Integrais de senos e cosenos em [-,]
Funções ortogonais
revisão
Série de Fourier
)2
sin2
cos(2)(1
0 T
ktb
T
ktaatf k
kk
t
f(t)
0T
Jean Baptiste Joseph Fourier (1768-1830) Paper de 1807 para o Institut de France: Joseph Louis Lagrange (1736-1813), and Pierre Simon de Laplace (1749-1827).
Exemplo: Série de harmônicos
-0.25
-0.05
0.15
0.35
0.55
0.75
0.95
1.15
-0.25
-0.05
0.15
0.35
0.55
0.75
0.95
1.15
-0.25
-0.05
0.15
0.35
0.55
0.75
0.95
1.15
Série de Fourier: cálculo de a0
T
k
T
k
T
k
T
o dtT
ktbdt
T
nktadtadttf
01
000)
2sin()
2cos()(
00)(0 0 T
Tadttf
T
dttfT
a00 )(
1
)2
sin2
cos(2)(1
0 T
ktb
T
tkaatf k
kk
t
f(t)
0 T
Série de Fourier: an e bn
T
dttfT
tn0
)()2
cos(
T
n dtT
tntf
Ta
0)
2cos()(
1
T
n dtT
tntf
Tb
0)
2sin()(
1 ...
)2
sin2
cos(2)(1
0 T
ktb
T
tkaatf k
kk
t
f(t)
0 T
0)2
cos()2
cos(200
1
T
kn dt
T
tk
T
tna
nTa
Resumindo
)2
sin2
cos(2)(1
0 T
ktb
T
ktaatf k
kk
T
k kdtT
kttf
Ta
0,...3,2,1,0)
2cos()(
1
T
k kdtT
kttf
Tb
0,...3,2,1)
2sin()(
1
t
f(t)
0 T
T
kk
2
T
2
Domínios
t
f(t)
0 T
T
2
w
ak
0
w
bk
0
tempo ou espaço
freqüencia
Coeficientes de funções pares e ímpares
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
0 0.2 0.4 0.6 0.8 1
cos cos sin sin
f-ímpar ak= 0
f-par bk= 0
Periodicidade da Série de Fourier
)()(2
sin)(2
cos2)(1
0 tfTtT
kbTt
T
kaaTtf
kkk
t
f(t)
0 T
t
f(t)
0 T
Números complexos
• x é a parte real• y é a parte imaginária• A é a magnitude• q é a fase
q
A
x
eixo real
eixo imagnário
y
)sin(cos iAiyxz
1i
revisão
Operação básicas com complexos
)()( 2211 iyxiyx
))(( 2211 iyxiyx
))(( iyxiyx
22
11
iyx
iyx
iayax)()( 2121 yyixx )( iyxa
)()( 21122121 yxyxiyyxx )()( 2112212
21 yxyxiyyixx 12 i
2222 )()( yxxyxyiyx
2222
2211
iyxiyx
iyxiyx
221122
22
1iyxiyx
yx
sincos iei
revisão
Derivada de eit
titi eiedt
d
tittitdt
d cossinsincos
)cossin1
( tti
i
i
1
)cossin( ttii
C.Q.D.
2i
ii
i
1
revisão
Outras propriedades úteis
sincos iei
1ie
iei2
i
-1 1
revisão
Outras propriedades úteis (2)
sincos iei sincos ie i
)(cos 21 ii ee
revisão
)(cos 21 titi eet
t
t
1-1
i
-i
o cosseno corresponde a média de dois harmônicos de freqüênciasw e -w
Outras propriedades úteis (2)
sincos iei sincos ie i
)()(sin 221 iiiiii eeee
revisão
i
12i
ii
i
1
tt
1-1
i
-i
o seno também corresponde a dois harmônicos:w e -w
Outras propriedades úteis (3)
)sin(cos 111111 iAeAz i
)sin(cos 222222 iAeAz i
)(2121
21 ieAAzz
)(
2
1
2
1 21 ieA
A
z
z
revisão
Amplitude e fase de complexos
sinA
A-A
Dado um valor:
iyxiAz )sin(cos
zzyxA 222
x
ytan
Amplitude
Fase
cosA
revisão
Série de Fourier com números complexos
10
2sin
2cos2)(
knk T
ktb
T
ktaatf
2cos
ii ee
i
ee ii
2sin
1
22
0)(k
T
kti
kT
kti
k eFeFFtf
nnkkkk ibaFibaFaF ,,00
k
T
kti
keFtf2
)(
kk FF
1
2222
0)(k
T
kti
T
kti
kT
kti
T
kti
k eei
beeaatf
1
22
0)(k
T
kti
kk
T
kti
kk e
i
bae
i
baatf
T
T
kti
k kdtetfT
F0
)2
(,...3,2,1)(
1
i
12i
ii
i
1
Escrevendo em complexos
k
T
kti
kkk
k eFT
ktb
T
ktaatf
2
10 )
2sin
2cos(2)(
T T
kk kdtT
kttf
Tbdt
T
kttf
Ta
0 0,...3,2,1,0)
2sin()(
1,)
2cos()(
1
T
T
kti
k kdtetfT
F0
)2
(,...3,2,1,0)(
1
kkk ibaF
)2
sin()2
cos()
2(
T
kti
T
kte T
kti
Serie de Fourier de Sinais Discretos
Sinal discreto
t0 1 2 3 4 5 6 N-1
rf
r
)(tf
tNT
ttrt
,,,,,,,, 1221 NNro ffffff
T
k dtT
kttf
Ta
0)
2cos()(
1
01 2 3 4 5 N
)2
cos()(T
kttf
tt
trtr
ttN
tkrf
tN
N
rk
1
0
2cos
1
TtNT
1
0
)2
cos(1 N
rrk N
rkf
Na
1
0
2sin
1 N
rkk N
rkf
Nb
. . .
1
0
)2
cos(1 N
rrk N
rkf
Na
1
0
2sin
1 N
rkk N
rkf
Nb
1
1
0
)1)(1(1)1(0)1(
)1(11110
)1(00100
1
1
0
1
NNNNN
N
N
N f
f
f
ccc
ccc
ccc
N
a
a
a
)2
cos(N
krckr
onde:
1
1
0
)1)(1(1)1(0)1(
)1(11110
)1(00100
1
1
0
1
NNNNN
N
N
N f
f
f
sss
sss
sss
N
b
b
b
)2
sin(N
krskr
onde:
1
0
)2
(1 N
s
N
ksi
skkk efN
ibaF
1
1
0
)1)(1(1)1(0)1(
)1(11110
)1(00100
1
1
0
1
NNNNN
N
N
N f
f
f
EEE
EEE
EEE
N
F
F
F
N
kri
kr eE2
onde:
1
0
)2
(N
r
N
kri
rk eFf
1
1
0
)1)(1(1)1(0)1(
)1(11110
)1(00100
1
1
0
'''
'''
'''
NNNNN
N
N
N F
F
F
EEE
EEE
EEE
f
f
f
N
kri
kr eE2
'
onde:
Transformada Discreta
)102sin()( ttf
256N
sec005.01
aft
sec28.1256005.0 T
T - não é o período do sinal!
Hzfa 200
-1.5
-1
-0.5
0
0.5
1
1.5
0 0.2 0.4 0.6 0.8 1 1.2 1.4
af
NtNT
-1.5
-1
-0.5
0
0.5
1
1.5
0 0.2 0.4 0.6 0.8 1 1.2 1.4
)102sin(N
sTf s
Transformada Discreta de Fourier
1
0
)2
(1 N
s
N
ksi
sk efN
F
/sec0.78131
Tf
/sec91.42
radT
-1.5
-1
-0.5
0
0.5
1
1.5
0 0.2 0.4 0.6 0.8 1 1.2 1.4
ampl
10.15625, 0.46776
0
0.1
0.2
0.3
0.4
0.5
0 20 40 60 80 100
)102sin(N
sTf s
1k
todas as feqüências computadas são multiplas destas
Outro exemplo
-20
-15
-10
-5
0
5
10
15
20
:= ( )f3 t + +10 ( )cos 2 p t 6 ( )sin 10 p t .8 ( )cos 40 p t
Transformada fk
-20
-15
-10
-5
0
5
10
15
20
0 0.2 0.4 0.6 0.8 1 1.2 1.4
ampl
0.78
, 4.5
24.
69, 2
.41
20.3
1, 0
.35
0
1
2
3
4
5
0 20 40 60 80 100 120
1
0
)2
(1 N
s
N
ski
sk efN
F
1
0
)2
(N
r
N
rki
rk eFf
Eixo de freqüência
Discrete Cosine Transformation (DCT)
02
01)(
k
kk
1
0 2
)12(cos
)( N
ssk N
ksf
N
kC
1
0 2
)12(cos
)(N
krs N
ksC
N
kf
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31
N
ks
2
)12(cos
)()cos( 2 sen o cosseno pode substituir o seno
Resumindo
)2
sin2
cos(2)(1
0 T
ktb
T
ktaatf k
kk
T
k kdtT
kttf
Ta
0,...3,2,1,0)
2cos()(
1
T
k kdtT
kttf
Tb
0,...3,2,1)
2sin()(
1
t
f(t)
0 T
T
kk
2
T
2
T
k dtT
kttf
Ta
0)
2cos()(
1
01 2 3 4 5 N
)2
cos()(T
kttf
tt
trtr
ttN
tkrf
tN
N
rk
1
0
2cos
1
TtNT
1
0
)2
cos(1 N
rrk N
rkf
Na
1
0
2sin
1 N
rkk N
rkf
Nb
. . .
Aula 2
Serie de Fourier de Sinais Discretos
Sinal discreto
t0 1 2 3 4 5 6 N-1
rf
r
)(tf
tNT
ttrt
,,,,,,,, 1221 NNro ffffff
1
0
)2
(1 N
s
N
ksi
skkk efN
ibaF
1
1
0
)1)(1(1)1(0)1(
)1(11110
)1(00100
1
1
0
1
NNNNN
N
N
N f
f
f
EEE
EEE
EEE
N
F
F
F
N
kri
kr eE2
onde:
1
0
)2
(N
r
N
kri
rk eFf
1
1
0
)1)(1(1)1(0)1(
)1(11110
)1(00100
1
1
0
'''
'''
'''
NNNNN
N
N
N F
F
F
EEE
EEE
EEE
f
f
f
N
kri
kr eE2
'
onde:
Transformada fk
-20
-15
-10
-5
0
5
10
15
20
0 0.2 0.4 0.6 0.8 1 1.2 1.4
ampl
0.78
, 4.5
24.
69, 2
.41
20.3
1, 0
.35
0
1
2
3
4
5
0 20 40 60 80 100 120
1
0
)2
(1 N
s
N
ski
sk efN
F
1
0
)2
(N
r
N
rki
rk eFf
Transformada de Fourier
dwewFxf wxi 2)()(
dxexfwF wxi 2)()(
Exemplo 1: Função caixa (box)box(x)
x
]2,
20
2[
20
)()( b
bxse
bxsea
bxse
xboxxf
a
dxexboxwF wxi 2)()(
2/
2/2
2
b
bwxie
wi
a
2/
2/
2b
b
wxi dxea
wbiwbi eewi
a
2
i
ee
w
a wbiwbi
2
)sin( wb
w
a
b
wb
wbabwF
)sin(
)(
Transformada da função box
bw
bwabwF
)sin(
)(
F(w)
0 1/b 2/b 3/b-1/b-2/b-3/b
ab
w
sinc(bw)
wb
wbabwF
)sin(
)( box(x)
x
a
b
Distribuição normal: Gaussiana
2
2
22
1)(
x
exGauss
:= ( )gaus x e( ) x
2
Exemplo 2: Gaussiana
-0.02
0.03
0.08
0.13
0.18
-0.02
0.03
0.08
0.13
0.18
2
2
2
2
1)(
x
exf
2
2
12)(
w
ewF
f(x)
x
|| F(w) ||
w
1
Transformada da Gaussiana
dxeewF wxix
22 2
2
2
1)(
dxwxiwxex
)2sin()2cos(2
1 2
2
2
dxwxex
)2cos(
2
2
22
1
222 we
2
1,
2
12
2
2
2
w
e
Exemplo 3: Delta de Dirac f(x)
xb/2-b/2
1/b ]2,
20
2[/1
20
lim)(0
b
bxse
bxseb
bxse
xb
2
,2
),(2/2/
lim)(1
lim)()(0
2/
2/0
bbf
b
bbdxxf
bdxxxf
b
b
bb
)0()()( fdxxxf
Delta de Dirac de Gaussianas
22
31
9
x
e
22
21
4
x
e
22
11
1
x
e
2
2
20
1lim)(
x
ex
Transformada do Delta de Dirac
f(x)
x
1)()( 02
edxexwF wxi (x)
|| F(w) ||
w
1
Transformada do cosseno
dxexwwF wxi 2cos()(
dxwxiwxxw )2sin()2cos()cos(
2
20
)2cos()cos(w
wse
wwse
dxwxxw
-1.5
-1
-0.5
0
0.5
1
1.5)cos( tw
x
Exemplo 4: Cosseno
)
2()
2(
2
1)(
w
ww
wwF
|| F(w) ||
ww w
)( ww )( ww
-1.5
-1
-0.5
0
0.5
1
1.5)cos( tw
x
Exemplo 5: Sequência de impulsos
w
f(x)
xb 2b3b-b-2b
|| F(w) ||
1/b 2/b2/b-1/b-2/b
f(x)
x1b 2b 3b-b-2b
|| F(w) ||
w1/b 2/b2/b-1/b-2/b
k
kTtt )()( 0 k T
ktw )2
()(0
Pares importantes
Propriedades da transformada
convolução
Filtragem com Transformada de Fourier
)(xf
)(wF
FT
)(xh
)(wH
FT
)(xf )(xh
X )(wF X )(wH
FT
FT
-1
Amostragem e Reconstrução
Observando os domínio do espaço e das freqüências
Sinal original
domínio do espaço domínio das freqüências
Sinal discretizado
dtkTttffk
k )()( 0
Amostragemdomínio do espaço domínio das freqüências
produto convolução
Sinal discretizado
domínio do espaço domínio das freqüências
Reconstruçãodomínio do espaço domínio das freqüências
convolução produto
Retorno ao sinal original
domínio do espaço domínio das freqüências
Sinal original com mais altas freqüências
domínio do espaço domínio das freqüências
Mesma taxa de amostragemdomínio do espaço domínio das freqüências
produto convolução
Sinal amostrado
domínio do espaço domínio das freqüências
Não temos como reconstruir sem introduzir artefatos!
Teorema de Nyquist
Para que um sinal de banda limitada (i.e. aqueles cuja a transformada resultam em zero para freqüências f > B) seja reconstruido plenamente ele precisa ser amostrado numa freqüência f >= 2B. Um sinal amostrado na freqüência (f=2B) é dito amostrado por Nyquist e f=2B é a freqüência de Nyquist.
Não há perda de informação nos sinais amostrados na freqüência de Nyquist, e não adicionamos nenhuma informação se amostrarmos numa freqüência maior.
Aliasing
• Esta mistura de espectros é chamada de aliasing.
• Existem duas maneiras de lidarmos com aliasing.
– Passar um filtro passa-baixa no sinal.
– Aumentar a freqüência de amostragem.
Alias
Texture errors
Parte 2 - Eliminação de ruídos e realce de arestas
Aplicações da Transformada de Fourier
Imagem DigitalConceitos, Processamento e Análise
Filtragem Gaussiana
-20
-15
-10
-5
0
5
10
15
20
w1+w2+w3 filtro w1+w2
4
2 11 iii
i
fffh
Filtro
• Um filtro é um operador que atenua ou realça uma determinada freqüência
• Fácil de visualizar no domínio da freqüência onde:
)()()( GFH
)()( tfF
)()( Hth h(t) é o f(t) filtrado
Tipos de Filtros
F G
=
=
=
H
Passa baixa
Passa alta
Passa banda
)()()( GFH
Imagem filtrada com um filtro passa baixa
Imagem filtrada com um filtro passa alta
Filtragem no domínio espacial
• Filtragem no domínio espacial é obtida pela convolution (e vice-versa).
)()()( GFH
)()( xfF
)()( Hxh
)()( xgG
duuxgufgfxh )()()(
ou:
Na realidade é ao contrário: a TF é uma ferramenta para filtragem.
Mascara ou Filtro
4
2 11 iii
i
fffh
1
0)(
n
kiiki fgh
10
14/1
04/2
14/1
10
lse
lse
lse
lse
lse
gl
ou:
Discretização da Gaussiana 1D
0.1
0.2
0.3
-4 -3 -2 -1 0 1 2 3 4
2
2
2
2
1)(
x
exG
1214
1 14641
16
1
161520156164
1
Discretização da Gaussiana 2D
2
22
2
2
1),(
yx
eyxG
121
242
121
16
1
14741
41626164
72641267
41626164
14741
273
1
Separabilidade do filtro gaussiano
207 247 38 131 38
62 90 129 234 231
211 175 44 1 26
236 58 75 128 112
210 141 125 168 58
121
242
121
16
1
130 117 129
125 90 88
129 93 92
1214
1
1214
1
185 113 84
93 145 207
151 66 18
107 84 111
154 140 130
130 117 129
125 90 88
129 93 92
Transformada normalizada de Fourier
1
0
1
0
)//(2),(1
),(w
x
h
y
hyswxrieyxfwh
srF
1
0
1
0
)//(2),(1
),(w
r
h
s
hyswxriesrFwh
yxf
Transformada normalizada de Fourier: separação
)/(21
0
1
0
)/(2),(11
),( wxriw
x
h
y
hysi eeyxfhw
srF
1
0
1
0
)//(2),(1
),(w
x
h
y
hyswxrieyxfwh
srF
),( sxT
Transformada normalizada de Fourier: Matriz H
1
0
)/(21),(),(
h
y
hysieh
yxfsxT
),( syH
sy
h
ihysi e
he
hsyH
2)/(2 11
),(
)1(0)1)(1(1)1(0)1(
)1(11110
)1(00100
hhhhh
h
h
ffff
fff
fff
f
fHT
)1()1(21)1(20)1(2
)1(12112012
)1(02102002
1
hh
h
ih
h
ih
h
i
h
h
i
h
i
h
i
h
h
i
h
i
h
i
eee
eee
eee
h
H
fHT
1
0
2
),(1
),(w
x
rx
w
i
sxTew
srF
),( xrW
xr
w
i
ew
xrW
21),(
)1()1(21)1(20)1(2
)1(12112012
)1(02102002
1
ww
h
iw
h
iw
h
i
w
h
i
h
i
h
i
w
h
i
h
i
h
i
eee
eee
eee
w
W
WfHWTF
Problemas com a Transformada de Fourier
)(2121
21),(),( bkakiekkFbxaxf
),(),( 2121 kkFxxf
),(1
),( 2121
kkFxxf
)cossin,sincos(
)cossin,sincos(
2121
2121
kkkkF
xxxxf
Como tornar a TF invariante a rotação e escala?
),(),( 2121 kkFxxf ),(),( 2121 kkFxxf iezkkF ),( 21
2
1 )ln(
y
yez i
)','(),( 2121 kkFyyf
Parte 3 - Processamentos apenas no espaço das cores
Imagem DigitalConceitos, Processamento e Análise
Correção gamaAjustes de contraste e iluminação
Correção gama
LL
Probabilidade
0 1 x
DF(x)
x0 x1
1
0
)( 10
x
x
dxxDFxxxP x
dxxDFxxPxCDF0
)(0)(
)()( xCDFdx
dxDF
Função de densidade de probabilidade
0 1 x
CDF(x)
1
x
Função de densidade acumulada de probabilidade
Mudança de variavel y = f (x)
)()( yCDFdy
dyDF
0 1 x
y=f(x)
1
0 1 y
1
)(1 yfx
)()( xCDFxf )(xDFdx
dy
1)(
)()(
xDF
xDFyDF
0 1 x
DF(y)1
Transformação monotônica e limitada ao intervalo [0,1]
dy
dxxCDF
dx
d)(
dy
dxxDF )(
Equalização de Histograma
L
j
j
n
nLfL
0
)('
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1 2 3 4 5 6 7 8 9 10 11
n
n j
L
Equalização do histograma
Tons de cinza e negativo
Lx,y = 0.299Rx,y + 0.587Gx,y + 0.114Bx,y
tons de cinza
Lx,y = 255 - Lx,y
Outros exemplos com o PaintShopProtm
Quantização de cores
Quantização de 24 para 8 bits
A qualidade depende da imagem
Corte mediano
Corte mediano
Parte 4 - Codificação e armazenamento de Imagens
compressão e formatos de arquivos
Imagem DigitalConceitos, Processamento e Análise
Codificação uniforme
Uniforme
tons # pixels código tam. # bits
0 1900 000 3 5700
1/7 2500 001 3 7500
2/7 2100 010 3 6300
3/7 1600 011 3 4800
4/7 800 100 3 2400
5/7 600 101 3 1800
6/7 300 110 3 900
1 200 111 3 600
TOTAL 30000
Podemos melhorar?
Construção da Árvore Huffman
1/7 2500
2/7 2100
0 1900
3/7 1600
4/7 800
5/7 600
6/7 300
1 200
1/7 2500
2/7 2100
0 1900
3/7 1600
4/7 800
5/7 600
n0 500
n0
6/7 1
Construção da Árvore Huffman
1/7 2500
2/7 2100
0 1900
3/7 1600
4/7 800
5/7 600
n0 500
n0
6/7 1
1/7 2500
2/7 2100
0 1900
3/7 1600
n1 1100
4/7 800
5/7
n1
Construção da Árvore Huffman
1/7 2500
2/7 2100
0 1900
3/7 1600
n1 1100
4/7 800
1/7 2500
2/7 2100
0 1900
n2 1900
3/7 1600
n0
6/7 1
5/7
n1 4/7
n2
Construção da Árvore Huffman
1/7 2500
2/7 2100
0 1900
n2 1900
3/7 1600
n3 3500
1/7 2500
2/7 2100
0 1900
n0
6/7 1
5/7
n1 4/7
n2 3/7
n3
Construção da Árvore Huffman
n3 3500
1/7 2500
2/7 2100
0 1900
n0
6/7 1
5/7
n1 4/7
n2 3/7
n3
n4 4000
n3 3500
1/7 2500
n4
2/7 0
Construção da Árvore Huffman
n0
6/7 1
5/7
n1 4/7
n2 3/7
n3
n5 6000
n4 4000 n4
2/7 0
n4 4000
n3 3500
1/7 2500n5
1/7
n6
Construção da Árvore Huffman
1 0
11
10 01
00
111 110
1111 1110
1111
1
11110
1111
01
111100
000110
110
1110
11111
111100111101
n0
n1
n2
n3
n4n5
n6
6/7 1
5/7
4/7
3/7
0 2/71/7
Codificação de HuffmanUniforme Huffman
tons # pixels código tam. # bits código tam. # bits
0 1900 000 3 5700 00 2 3800
1/7 2500 001 3 7500 10 2 5000
2/7 2100 010 3 6300 01 2 4200
3/7 1600 011 3 4800 110 3 4800
4/7 800 100 3 2400 1110 4 3200
5/7 600 101 3 1800 11111 5 3000
6/7 300 110 3 900 111101 6 1800
1 200 111 3 600 111100 6 1200
TOTAL 30000 TOTAL 27000
Redundância de Codificação
r p(r) Code 1 l(r) l(r)p(r) Code 2 l(r) l(r)p(r)0 0.19 000 3 0.57 11 2 0.38
1/7 0.25 001 3 0.75 01 2 0.502/7 0.21 010 3 0.63 10 2 0.423/7 0.16 011 3 0.48 001 3 0.484/7 0.08 100 3 0.24 0001 4 0.325/7 0.06 101 3 0.18 00001 5 0.306/7 0.03 110 3 0.09 000001 6 0.18
1 0.02 111 3 0.06 000000 6 0.12
1.00 Lavg= 3.00 2.70
rk = tons de cinza em uma imagem, k=0, 1, ..., 1
p(rk) = nk / n
onde nk = número de pixels com tom rk
n = número de pixels da imagem
Lavg=
kk
kavg rprlL
1
0
111001
001
0001
00001
000001000000
Resultado da Teoria da Informação
bitsdenúmerorp
rlk
kopt
1log2
r p(r) Code 1 l(r) l(r)p(r) Code 2 l(r) l(r)p(r) log(1/p) log(1/p)*p0 0.19 000 3 0.57 11 2 0.38 2.4 0.461/7 0.25 001 3 0.75 01 2 0.50 2.0 0.502/7 0.21 010 3 0.63 10 2 0.42 2.3 0.473/7 0.16 011 3 0.48 001 3 0.48 2.6 0.424/7 0.08 100 3 0.24 0001 4 0.32 3.6 0.295/7 0.06 101 3 0.18 00001 5 0.30 4.1 0.246/7 0.03 110 3 0.09 000001 6 0.18 5.1 0.151 0.02 111 3 0.06 000000 6 0.12 5.6 0.11
=1.00 Lavg = 3.00 2.70 Lopt = 2.65Lavg =
Compressão de imagens
Compressão deImagens
Compressão deImagens
Sem PerdaSem Perda Com PerdaCom Perda
• Preserva exatamente o conteúdo da imagem
• Taxas de compressão 3 : 1
• Preserva de forma controlada o nível de qualidade da imagem
• Taxas de compressão que chegam a valores de mais de 100 : 1
Métodos de compressão
• Sem perdas–Run length encoding (RLE) - repetição–Huffman coding - histograma–Predictive coding - diferenças–Block coding (LZW) - dicionário
• Com perdas–Truncation coding - reduz a representação–Predictive coding - descarta diferenças altas–Block coding - dicionário aproximado –Transform coding - descarta frequencias altas
Métodos compostos: JPEG, MPEG
Processo de compressão e descompressão
Dados daImagemOriginal
32, 45, 57, 68, 23, 100,98, ...
32, 45, 57, 68, 23, 100,98, ...
Imagem Comprimida
32, 45, 57, 68, 23, 100,98, ...
Dados daImagemOriginal
Compressãoda imagem
Imagem Comprimida
32, 45, 57, 68, 23, 100,98, ...
Transporte e/ouArmazenamento
Descompressãoda imagem
¹
¹
Fundamentos da Compressão de Imagens
•codificação
•entre pixels
•psico-visual
A compressão de uma imagem é obtida quando se elimina a redundância de:
Redundância entre pixels
640 colunas x 480 linhas x 1 byte/pixel = 300 KBytes
480*(1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0) = ~18 Kbytes
onde 1 = 32 bytes de preto e 0 = 32 bytes de branco
Compressão - RLE
Objetivo
Reduzir a quantidade de dados redundantes.
Exemplo
AAAAAAxxx 6A3x
Caracterísiticas
Simples e rápido, porém a eficiência depende da imagem a ser comprimida.
Run-Length Encoding
76 76 76 76 76 78 79 79 79 79 80 80
76 | 5 78 | 1 79 | 4 80 | 2
imagem binária
0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0
7 4
1. . .
5
Compressão do jpeg
Aplicações são tecnologicamente complexas:
exemplo: algoritmo do JPEG
FDCT
SourceImage
QuantizerEntropyEncoder
TableTable
Compressedimage data
DCT-based encoding
8x8 blocks
R
BG
Equations for JPEG DCT
• Forward DCT:
• Inverse DCT:
.1, otherwise ;0yfor x, 2
1 where
16
)12(cos
16
)12(cos),(
4
1),(
7
0
7
0
yxyx
x yyx
CCCC
yjxijiSpixelCCyxDCT
.1, otherwise ;0,for 2
1, where
)12(cos
16)12(
cos),(41
),(7
0
7
0
jiji
x yji
CCjiCC
iyjx
jiDCTCCyxpixel
Visualization of Basis Functions
Increasin
g frequ
ency
Increasing frequency
Organização de pixels num arrayno formato TGA (targa)
b g r ab g r a bb arg
0 1 …
...
arg
w-1x
y
unsigned char *bgra_vector;…offset=4*(w*y+x);blue = bgra_vector[offset];green = bgra_vector[offset+1];red = bgra_vector[offset+2];alpha = bgra_vector[offset+3];
0
12
h-1
3
Pixel (x,y)
Outra ordem no plano
Tipo Abstrato ImagemImage *imgCreate (int w, int h);
void imgDestroy (Image *image);
int imgGetWidth(Image * image);
int imgGetHeight(Image * image);
float * imgGetRGBData(Image * image);
void imgSetPixel3fv(Image *image, int x, int y, float * color);
void imgSetPixel3ubv(Image *image, int x, int y, unsigned char *color);
void imgGetPixel3fv(Image *image, int x, int y, float *color);
void imgGetPixel3ubv(Image *image, int x, int y, unsigned char *color);
Image * imgReadBMP(char *filename);
int imgWriteBMP(char *filename, Image * image);
Image * imgCopy(Image * image);
Image * imgGrey(Image * image);
Image * imgResize(Image * img0, int w1, int h1);
/*- implementação do tipo Imagem */
struct image_imp
int width; /* largura (width) em pixels */
int height; /* altura (height) em pixels */
float *buf; /* buffer RGB */
;
Arquivos Targa RGBA
Cabeçalho Pixels (bgra,bgra, …,bgra)
/* escreve o cabecalho */
putc(byteZero,filePtr); /* no. de caracteres no campo de id da imagem */
putc(byteZero,filePtr); /* imagem nao tem palheta de cores */
putc(imageType,filePtr); /* = 2 -> imagem "true color" (RGBA) */
putuint(shortZero,filePtr);/* info sobre a tabela de cores (inexistente) */
putuint(shortZero,filePtr); /* idem */
putc(byteZero,filePtr); /* idem */
putuint(shortZero,filePtr); /* =0 origem em x */
putuint(shortZero,filePtr); /* =0 origem em y */
putuint(img->width,filePtr); /* largura da imagem em pixels */
putuint(img->height,filePtr); /* altura da imagem em pixels */
putc(bitDepth,filePtr); /* numero de bits de um pixel */
putc(byteZero, filePtr); /* origem canto inf esquedo sem entrelacamento */
unsigned char imageType=2 /* RGB(A) sem compressão */
unsigned char bitDepth=32; /* 32 bits por pixel */
unsigned char byteZero=0; /* usado para escrever um byte zero no arquivo */
short int shortZero=0; /* usado para escrever um short int zero no arquivo */
Organização de pixels num arrayno formato PPM (o mais simples)
00 01 02 0807060503 04 1009 11
0 1 2
...
1312 14
w-1
15 16 17 18 ...
x
y Pixel (x,y)unsigned char *rgb_vector;…offset=3*(w*y+x);red = rgb_vector[offset];green = rgb_vector[offset+1];blue = rgb_vector[offset+2];
01
2
h-1
3
...
Formato PPM• File_signature "P6". • White_space (blanks, TABs, CRs, LFs). • Width, w, (ASCII decimal characters). • White_space (blanks, TABs, CRs, LFs). • Height, h, (ASCII decimal characters). • White_space (blanks, TABs, CRs, LFs). • Max_color, max, (ASCII decimal characters). • White_space (blanks, TABs, CRs, LFs). • Pixels, (3*w*h bytes rgb components of pixels)
• Comments from # to the end of line• lines 70 characters
Formato PPM
P6# Created by Paint Shop Pro358 539255=?:?A<AC>CE@EFAFGBGHCGHCGHB . . .
exemplo
Gravação em PPM
int ppm_write(int w, int h, unsigned char *rgb, char *file_name) FILE *fp;
fp = fopen(file_name, "wb"); if (fp == NULL) return 0;
if (fprintf(fp, "P6\n%d %d\n255\n", w, h) <= 0) fclose(fp); return 0;
if (fwrite(rgb, 3*w*h, 1, fp) != 1) fclose(fp); return 0;
fclose(fp); return 1;
Leitura em PPMint ppm_read(int *p_w, int *p_h, unsigned char **p_rgb, char *file_name) FILE *fp; char line[80]; int rgb_size; int max;
fp = fopen(file_name, "rb"); if (fp == NULL) printf(”Error reading %s",file_name); return 0; fgets(line,80,fp); if(strcmp(line,"P6\n")) printf(”Wrong signature\n"); return 0;
while (fscanf( fp, " %d ", p_w ) != 1) fgets(line, 80, fp);
while (fscanf( fp, " %d ", p_h ) != 1)
fgets(line, 80, fp); while (fscanf( fp, " %d", &max ) != 1)
fgets(line, 80, fp); fgetc(fp); rgb_size=3*(*p_w)*(*p_h); (*p_rgb) = (unsigned char *) calloc(rgb_size, 1); if ((*p_rgb) != NULL) fread( (*p_rgb), rgb_size, 1, fp ); fclose(fp); return 1;
Programa Simplesvoid main(void) int w, h; // dimensões da imagem unsigned char *rgb; // bytes de rgb unsigned char r,g,b,grey; // componentes de cor int x,y; long int k;
if (ppm_read(&w,&h,&rgb,"test_in.ppm")==0) return; for (y = 0; y < h; y++) for (x = 0; x < w; x++) k = 3*(y*w+x); r = rgb[k]; g = rgb[k+1]; b = rgb[k+2]; grey = (unsigned char)(0.3*r+0.6*g+0.1*b); rgb[k] = grey; rgb[k+1] = grey; rgb[k+2] = grey; ppm_write(w, h, rgb, "test_out.ppm"); free(rgb);
Arquivo BMP
00 01 02 0807060503 04 1009 11
Pixel 0 Pixel 1 Pixel 2 Pixel 3
1312 14
Pixel 4
15
16 17 18 ...
colocado para garantir múltiplo de 4
colocado para garantir múltiplo de 4
Organização dos pixels de uma imagem RGB no arquivo BMP
Microsoft Windows Bitmap - BMP
Características Principais
• Mono, 4-bit, 8-bit, 24-bit• Tipo de compressão: RLE / não comprimido• Tamanho máximo: 64K x 64K pixels• Seções (versão 3):
Header
Info. Header
Palette
Bitmap Data
BMP - Header
typedef struct _Win3xBitmapHeader
WORD Type; /* Image file type 4D42h (“BM”)*/
DWORD FileSize; /* File size (bytes) */
WORD Reserved1; /* Reserved (always 0) */
WORD Reserved2; /* Reserved (always 0) */
DWORD Offset; /* Offset to bitmap data in bytes */
WIN3XHEAD;
BMP - Information Header
typedef struct _Win3xBitmapInfoHeader
DWORD Size; /* Size of this Header (40) */
DWORD Width; /* Image width (pixels) */
DWORD Height; /* Image height (pixels) */
WORD Planes; /* Number of Planes (always=1) */
WORD BitCount; /* Bits per pixel (1/4/8 or 24)*/
DWORD Compression; /* Compression (0/1/2) */
DWORD SizeImage; /* Size of bitmap (bytes) */
DWORD XPelsPerMeter; /* Horz. resol.(pixels/m) */
DWORD YPelsPerMeter; /* Vert. resol.(pixels/m) */
DWORD ClrUsed; /* Num of colors in the image */
DWORD ClrImportant; /* Num of important colors */
WIN3XINFOHEADER;
BMP - Palette
typedef struct _Win3xPaletteRGBQUAD Palette[ ]; /* 2, 16, or 256 elem. */ WIN3XPALETTE;
typedef struct _Win3xRgbQuadBYTE Blue; /* 8-bit blue component */BYTE Green; /* 8-bit green component */BYTE Red; /* 8-bit red component */BYTE Reserved; /* Reserved (= 0) */
RGBQUAD;
BMP - Image Data
Notas
Cada scan line em um arquivo BMP é sempre um múltiplo de 4.
Imagens com1-, 4-, e 8-bits usam uma palheta de cores.
Imagens com 24-bits guardam a cor diretamente, na ordem azul, verde e vermelho.
O armazenamento da imagem é sempre feito a partir do canto esquerdo inferior.
Esquemas de armazenamento de imagens
Verm.
Verde
Azul
Pixe
l 2
Plano de Cores
00 01 02 060503 04
07 08 09 . . .
Pixe
l 0
Pixe
l 5
Pixe
l 4
Pixe
l 3
Pixe
l 1
06
06
Organização dos pixels de uma imagem por planos de cores
Ban
cos
(Jav
a)
Informação é uma componente da cor
(Data Buffer – Java)
Transformações Geométricas na Imagem
Amostragem
e
Reconstrução
Transformações R2 R2
xy
yx
y
x 2
'
'
Exemplos:
x
yx´
y´ p´ =
x
y
y
xf
y
x'
'
pp T'
x
yp =
yx
yx
y
x 52'
'
)sin(
)cos('
'
yx
yx
y
x
Transformações lineares R2 R2
x
y
m11 x´
y´ =
m21 m22
m12
Mostre que:
1 0
x
y
0 1
m11 m21
1 0
T =
m12 m22
0 1
T =
T (0) = 0A)
B)
0)()()()0( pppp TTTT
222112211 ),()()( RpRpppp ii eaTaTaaaT
Transformações lineares: escala
x
y
a =x
y
x´
y´ a =
Redução (0< sx <1) ,Aumento (sy >1)
c
b
y
x
s
s
ys
xs
y
x
y
x
y
x
0
0
'
'
y
x
s
s
0
0S
x
y
i
j
0)( xs
T i
ysT
0)(j
Transformações lineares: espelhamento
x´ = -1xy´ = y
x
y
x´
y´ p' =
=px
y
y
x
y
x
y
x
10
01
'
'
x
y
i
j
0
1)( iiT
1
0)( jjT
10
01yE
Transformações lineares: rotação
x´
y´ p' =
x´
y´
a
r
x´ = x.cos q - y.sen q y´ = x.sen q + y.cos q
x
y
p =x
yqar
r
sincoscoscos
sinsincoscos
rr
rr
y
x
y
x
cossin
sincos
'
'
r
sinsin - coscos )cos(
sincos cossin )sin(
)sin(
)cos(
'
'
r
r
y
x
Transformações Lineares:matriz derivada pela geometria
x
y
q
sin
cos)(iT
cos
sin)(jT
i
j
cossin
sincosR
cossin
sincosR
Mudança de referêncial
x
y
p =x
y
x
y
cos q u
v=
sen q cos q
-sen q
u
v
u
vou
- qx
y
p =
x´
y´ p'=
x
yq
x
yux
u
v=
vxvy
uy
Para montarmos a matriz que transforma as coordenadas de um refencial xy para um novo refencial uv basta escrevermos as linhas como sendo os unitários das direções.
x
y
q
sin
cos)(iT
cos
sin)(jT
i
j
cossin
sincosR
Mudança de coordenadas entre sistemas rotacionados
• As coordenas de um ponto rodado de um ângulo em relação a um sistema são iguais as coordenadas do ponto original em relação a um sistema que sofre a rotação inversa.
• Como o novo sistema sofre a rotação inversa, a matriz de rotação é a inversa da matriz que levaria da base original para a este novo sistema.
• As colunas de uma matriz de uma rotação são as transformadas dos vetores da base e a transposta desta matriz é a sua inversa (rotaçãomatriz ortonormal).
• Logo as linhas da matriz que escreve uma mudança entre bases ortonormais rodadas são as coordenadas do vetores da nova base em relação a base original.
y
x
y
yx
y
x
10
tan1tan
'
'
Transformações lineares: cisalhamento (shear)
Cisalhamento em x
x
x
yy
x
y
ij
0
1)( iiT
1)(
tgT j
10
1 tgShx
Exemplo de aplicação do cisalhamento
x
y
a
b
cplano de projeção
m
x
y
a' m'
x
y
c'
b'
a' m'
R
ySh
Exemplo de aplicação do cisalhamento
2
xy
1
4
y
xyx
x
y
x12
101
2'
'
x
y
a x
y
c'
b'
a' m'
5
4
2
4
2'
'
xyy
xx
i
)(jj T
)(iT
Decomposição Singular de Matrizes
USVM diagonal
rotações
0.7991650.601112
0.601112-0.799165
1.3294760
00.752176
0.6011120.799165-
0.7991650.601112
10
5773.01
10
5773.01
10
30tan1 0
M
)cos(37)sin(37
)sin(37-)cos(37
1.3294760
00.752176
)cos(-53)sin(-53
)sin(-53-)cos(-53
10
30tan100
00
00
000
)37()329.1,752.0()53()30( 000 RSRSh x
Exemplo: cisalhamento como composição de rotações e escala
10
5773.01
0.7991650.601112
0.601112-0.799165
1.3294760
00.752176
0.6011120.799165-
0.7991650.601112
)30( 0xSh
)37( 0R
S
)53( 0R
Transformações Geométricas: Translação
x
y
p
p'
tx
ty
t =
x
yp' =
tx
ty
+=x’
y’
x
y
? x´
y´ =
? ??
x
y
1 x´
y´ =
0 10 tx
ty
+
Não pode ser escrito na forma
Ruim paraimplementação
Translação num plano do R3
yh
xh
w
w=1
x
y
t
1100
10
01
1
'
'
y
x
t
t
y
x
y
x
matriz de translação
Concatenação
x
y
x0
y0
a
x
y
x
y
a
x
y
x0
y0
1 0
0 1
0 0 1
0
0
x
y 1 0
0 1
0 0 1
0
0
x
y
cos sin
sin cos
0
0
0 0 1
x
y
x
y
x
y
x
y
'
'
cos sin
sin cos
1
1 0
0 1
0 0 1
0
0
0 0 1
1 0
0 1
0 0 1 1
0
0
0
0
Concatenação
x
y
x
y
x
y
x
y
x
y
x
yT1
R1
E
R2
T2P’= T2 R2 E R1 T1 PP’= T2 R2 E R1 T1 P
Coordenadas projetivas(ou homogêneas)
x
yp
wx
wy
w
xh
yh
w
= =
x
y
1
=D =D
yh
xh
w
w=1
x
y
wx
wy
w
x = xh /w
y = yh /ww>0
Ex.:
3
2
1
3
2
6
4
2
9
6
3
==D =D
p
Vantagens das coordenadas homogêneas (pontos no infinito)
yh
xh
w
w=1
x
y
2
3u =
u
uh
2
3
0
=?
?
w=1
uh
wh1
c1h2 = c2
h3
c3
2
3
2
2
3
1
2
3
1/2
2
3
1/4
2
3
0
. . .
1
1.5
2
3
4
6
8
12
infinitona
direção(2,3)
infinitona
direção(2,3)
h1 h2 h3 h4
c1 c2 c3 c4
Reta no espaço projetivo
yh
xh
w
reta: ax+by+c=0
plano: ax+by+cw=0
plano: w=1
Reta paralelas no espaço projetivo
yh
xh
wplano: ax+by+c1w=0
reta: ax+by+c 1 =0
reta: ax+by+c 2 =0
plano: ax+by+c2w=0
reta= ax+by =0
plano: w=1
Deformação sem paralelismo
yh
xh
w
w=1
x
y
yh
xh
w
w=1
x
y
Matriz da Homografia
?H
u
v
x
y
0
0
v
u
1
1
v
u
2
2
v
u
3
3
v
u
0
0
y
x
1
1
y
x
2
2
y
x
3
3
y
x
NP
A
APNH
[A] : Afim
100
00301
00301
yyyyy
xxxxx
A
x
y
0
0
y
x
1
1
y
x
2
2
y
x
3
3
y
x
?A
110012
2
1
00301
00301
2
21 y
x
yyyyy
xxxxx
y
x
A Obs: Se fosse um
paralelograma a imagem do ponto 2 seria (1,1)T
e não (α, )T
[P] : Projetiva
111
00
00
P
?P
[N] : Paralelograma para quadrado unitário
TLN 1
u
v
0
0
v
u
1
1
v
u
2
2
v
u
01
01
vv
uu
03
03
vv
uu
3
3
v
u
100
10
01
0
0
v
u
T
1
1
100
0
0
0301
0301
vvvv
uuuu
L
1L
Fundamentals of Texture Mapping and Image Warping
“Explained”A revisit of Paul Heckbert’s
M.Sc. Thesis
Um exemplo 1D
)(uf
u
)(ufc
Nk
kkkc uurwuf )()(
u
Sinal de entrada discreto
Textura discreta Textuta contínua
Deformação da textura (warping)
Nk
kkkc uurwuf )()(
)(ufc
u))(()( 1 xmfxg cc
)(xgc
x
)(umx
)(1 xmu
))(()( 1k
Nkkkc uxmrwxg
Textuta contínua deformadaTextuta contínua
Limitando a freqüência
)(xgc
))(()( 1 xmfxg cc
x
)(xgc
)()()(' xhxgxg cc
x
Filtro de re-amostragem
R
cc dttxhtmfxg )())(()(' 1
)()()(' xufxg kNk
kc
)()()(' xhxgxg cc
R Nk
kkkc dtuxmrwtxhxg ))(()()(' 1
R
kkk dtutmrtxhx ))(()()( 1
R
kkk duu
muurumxhx )())(()(
)(umt
duu
umdt
)(
Reconstrução, warping, filtragem e amostragem
Textura em imagem
v
ji
ijkijc rff,
)()()( uuuu
u
v
u
Textura em imagem
ji
ijkijc rff,
)()()( uuuu
v
u x
y)(umx
))(()( 1 xmx cc fg
)(1 xmu
Filtro de re-amostragem no espaço de destino (espaço da imagem)
A
cc dAhfg ttxtmx )())(()(' 1
)()()(',
xux ijji
ijc fg
)()()(' xxx hgg cc
A
tji
ijijijc dArfhg,
1 ))(()()()(' uxmutxx
A
ijijij dArh tutmtxx ))(()()( 1
destination space integral
Filtro de re-amostragem no espaço de origem (espaço da textura)
)()()(',
xux ijji
ijc fg
A
ijijij dArh tutmtxx ))(()()( 1
R
ijijij drh uu
muuumxx )())(()(
)(umt
R
ijijij drh uJuuumxx )())(()(
)(det)(
v
x
u
y
v
y
u
x
v
y
u
yv
x
u
x
ddd
u
u
umuJt
)(1 tmu
R
ijijij drh uJuuumxx )())(()(
Filtro de re-amostragem no espaço de origem (espaço da textura)
cJuculumx )()( 11111 )()( cxJcxlxmu
))(()(
))(()(1
1
uxmJumx
uxmmumx
ijijcJux
cJux
22
11
)( 2121 uuJxx
R
ijijij drh uuuuxmJJx )()))((()( 1
R
ijijij drh tttuxmJJx )()))((()( 1
ijuut ut dd tuu ij
R
ijijij drh tttuxmJJx )()))((()( 1
)()(' uJJu hh
R
ijijij drh tttuxmx )()))(((')( 1
))()('()( 1ijijij rh uxmx
Filtro de re-amostragem no espaço de origem (espaço da textura)
texture space integral
Mapeamentos lineares afins
11001
v
u
fed
cba
y
x
100
1
1
v
u
bdae
afcdab
cebfde
bdaev
u
ed
ba
v
y
u
yv
x
u
x
J
cJuculumx )()(
f
c
v
u
ed
ba
y
x
11111 )()( cxJcxlxmu
)()(' uJJu hh ),()(),(' evdubvauhdbaevuh
Elliptical Gaussian Resampling
Gaussiana
xVx
VV x1
1/22
1
||π21)(
T
eG
2
2
0
0
V
0
02
1V
y
xyxT
2
21
10
01
xVx2
22
yx
2
22
222
1),(
yx
eyxG
2
2
2
2
1)(
x
exG
Gaussiana
2
22
222
1),(
yx
eyxG
2
2
2
2
1)(
x
exG
2
2
2
2
1)(
y
eyG
2
22
2
2
2
2
22
222 2
1
2
1)()(),(
yxyx
eeeyGxGyxG
Circulos e Elipses
v
u
dc
ba
y
x222 Ryx
2Ry
xyx
2R
v
u
dc
ba
db
cavu
2
22
22
Rv
u
dbcdab
cdabcavu
2
2
2 Rv
u
CB
BAvu
FCvBuvAu 22
Warping de domínios de Gaussianas
2
22
2
1),(
vu
evuG
xVx
VV x1
1/22
1
||π21)(
T
eG
CB
BA
2/
2/V
.22 contCyBxyAxT Vxx
Filtro Gaussiano de re-amostragem no espaço de origem (espaço da textura)
Exemplo de reconstrução com Gaussiana
Implementação do Filtro Gaussiano
IRH k
))(()( 1 kkk Tg uxmxIJJ
xVx
VV x1
1/22
1
||π21)(
T
eg
IJJV T1
Magnificação e mimificação
Regiões que mapeiam num quadrado ou círculo
Nosso problema
Screen space Texture space
Como tratar o caso geral
...)( Jucumx
FIM
Adding a lens
• A lens focuses light onto the film– There is a specific distance at which
objects are “in focus”• other points project to a “circle of confusion” in
the image
– Changing the shape of the lens changes this distance
“circle of confusion”
Lenses
• A lens focuses parallel rays onto a single focal point– focal point at a distance f beyond the plane
of the lens• f is a function of the shape and index of refraction of the lens
– Aperture of diameter D restricts the range of rays• aperture may be on either side of the lens
– Lenses are typically spherical (easier to produce)
focal point
F
optical center(Center Of Projection)
Thin lenses
• Thin lens equation:
– Any object point satisfying this equation is in focus– What is the shape of the focus region?– How can we change the focus region?– Thin lens applet: http://www.phy.ntnu.edu.tw/java/Lens/lens_e.html (by Fu-Kwun Hwang )
Depth of field
• Changing the aperture size affects depth of field– A smaller aperture increases the range in
which the object is approximately in focus
f / 5.6
f / 32
Flower images from Wikipedia http://en.wikipedia.org/wiki/Depth_of_field
Lentes reais
Câmera obscura e Camera “pin-hole”
Sensor Fujifilm
O que é registrado nos sensores (CCD, CMOS...)
yim
xim0
1 3 4
1
2
0
3
2
sx
sy
5