visualizando geometria projetiva 2D - LCG
visualizando geometria projetiva 2D - LCG
visualizando geometria projetiva 2D - LCG
Transforme seus PDFs em revista digital e aumente sua receita!
Otimize suas revistas digitais para SEO, use backlinks fortes e conteúdo multimídia para aumentar sua visibilidade e receita.
intro <strong>geometria</strong> <strong>projetiva</strong><br />
Processamento de Imagens<br />
CPS755<br />
aula 03 - <strong>visualizando</strong> a <strong>geometria</strong> <strong>projetiva</strong> planar<br />
Antonio Oliveira<br />
Ricardo Marroquim<br />
1 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
laboratório de processamento de imagens<br />
tópicos<br />
<strong>visualizando</strong> a <strong>geometria</strong> <strong>projetiva</strong> planar<br />
discussão dos primeiros 2 trabalhos<br />
2 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
<strong>geometria</strong> <strong>projetiva</strong><br />
questões para refletir<br />
porque estudamos <strong>geometria</strong> <strong>projetiva</strong>?<br />
como ela está associada à visão computacional?<br />
o que representa os espaços (projetivo, afim, similaridade e<br />
Euclideano)?<br />
3 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
<strong>geometria</strong> <strong>projetiva</strong><br />
modelo de câmera pinhole<br />
4 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
<strong>geometria</strong> <strong>projetiva</strong><br />
modelo de câmera pinhole<br />
todos os raios de luz que refletem no mundo e passam pelo<br />
buraco (centro da câmera) e são projetados no fundo da caixa<br />
(plano da imagem)<br />
note que a relação entre pontos da imagem e raios é<br />
um-para-um<br />
cada raio define apenas um ponto na imagem<br />
um ponto da imagem é definido por um raio<br />
logo, todos os pontos em um raio, são projetados no mesmo<br />
ponto na imagem<br />
em coordenadas homogêneas:<br />
(a, b, 1) = k(a, b, 1) = (ka, kb, k)<br />
5 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
<strong>geometria</strong> <strong>projetiva</strong><br />
projeção central<br />
o centro da câmera define o conjunto de raios que formam a<br />
imagem<br />
todas imagens tiradas de uma câmera com mesmo centro são<br />
<strong>projetiva</strong>mente equivalentes<br />
ou seja, uma pode ser mapeada na outra sem informações<br />
sobre os pontos 3D ou posição do centro<br />
6 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
<strong>geometria</strong> <strong>projetiva</strong><br />
projeção central<br />
7 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
<strong>geometria</strong> <strong>projetiva</strong><br />
modelo projetivo<br />
x 1<br />
ideal<br />
point<br />
O<br />
x<br />
2<br />
x<br />
l<br />
π<br />
x 3<br />
8 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
<strong>geometria</strong> <strong>projetiva</strong><br />
modelo projetivo<br />
reta no infinito (0, 0, 1)<br />
define o plano no infinito z = 0<br />
contém todos pontos ideais (a, b, 0)<br />
definem todas retas que estão no plano no infinito<br />
atenção com a representação do (0, 0, 0)<br />
9 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
<strong>geometria</strong> <strong>projetiva</strong><br />
modelo projetivo - pontos e retas<br />
elementos geradores e elementos no plano z = 1<br />
z=1<br />
z=0<br />
z=0<br />
z=1<br />
10 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
<strong>geometria</strong> <strong>projetiva</strong><br />
modelo projetivo - pontos e retas<br />
a interseção com o plano z = 0 define a direção da reta<br />
z=1<br />
z=0<br />
11 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
<strong>geometria</strong> <strong>projetiva</strong><br />
modelo projetivo - pontos e retas<br />
planos geradores das retas se intersectam em uma reta em R 3<br />
que passa pela origem (0, 0, 0)<br />
z=1<br />
z=0<br />
12 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
<strong>geometria</strong> <strong>projetiva</strong><br />
modelo projetivo - pontos e retas<br />
(0,0,0)<br />
z=1<br />
z=0<br />
13 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
<strong>geometria</strong> <strong>projetiva</strong><br />
modelo projetivo - pontos e retas<br />
retas paralelas definem a mesma direção<br />
a interseção dos planos geradores é uma reta em z = 0 (reta<br />
no infinito)<br />
z=1<br />
z=0<br />
14 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
<strong>geometria</strong> <strong>projetiva</strong><br />
modelo projetivo - pontos e retas<br />
(0,0,0)<br />
z=1<br />
z=0<br />
15 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
invariantes<br />
Euclideana<br />
comprimento, área<br />
similaridade<br />
razão entre comprimentos, ângulos, pontos circulares<br />
afim<br />
paralelismo, razão entre áreas, razão ente comprimentos entre<br />
retas paralelas (ponto médio), combinação linear de vetores<br />
(centroide), reta no infinito (l∞)<br />
<strong>projetiva</strong><br />
colinearidade, razão entre razão de comprimentos<br />
16 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
decomposição<br />
decomposição de uma transformação <strong>projetiva</strong><br />
podemos decompor a transformação <strong>projetiva</strong> em uma cadeia<br />
de transformações hierárquicas<br />
H =<br />
sR t<br />
0 T 1<br />
H = HSHAHP<br />
K 0<br />
0 T 1<br />
I 0<br />
v T v<br />
<br />
=<br />
A t<br />
v T v<br />
<br />
17 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
decomposição<br />
decomposição<br />
passa ideia de acertos para<br />
voltar à <strong>geometria</strong><br />
Euclideana<br />
qual as transformações<br />
necessárias para levar um<br />
sistema de coordenadas a<br />
outro?<br />
18 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
decomposição<br />
decomposição<br />
retificação <strong>projetiva</strong>:<br />
encontra o alinhamento do<br />
plano da imagem<br />
retificação afim: encontra<br />
a correspondência entre os<br />
eixos do plano<br />
retificação de<br />
similaridade: encontra a<br />
rotação, translação e escala<br />
dos eixos<br />
19 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
<strong>geometria</strong> <strong>projetiva</strong><br />
retificação <strong>projetiva</strong> - afim<br />
vimos que podemos remover a distorção perspectiva<br />
identificando a reta no infinito na imagem l = (l1, l2, l3)<br />
e descobrindo qual transformação leva l em l∞ = (0, 0, 1)<br />
o que estamos fazendo exatamente?<br />
20 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
<strong>geometria</strong> <strong>projetiva</strong><br />
retificação <strong>projetiva</strong> - afim<br />
podemos pensar na foto como uma projeção central<br />
21 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
<strong>geometria</strong> <strong>projetiva</strong><br />
retificação <strong>projetiva</strong> - afim<br />
no caso do exemplo<br />
22 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
<strong>geometria</strong> <strong>projetiva</strong><br />
retificação <strong>projetiva</strong> - afim<br />
no exercício encontrávamos dois pontos de fuga, que definiam<br />
a reta l<br />
23 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
<strong>geometria</strong> <strong>projetiva</strong><br />
retificação <strong>projetiva</strong> - afim<br />
a reta l é gerada por um plano que passa pela origem<br />
24 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
<strong>geometria</strong> <strong>projetiva</strong><br />
retificação <strong>projetiva</strong> - afim<br />
o plano gerador encontrado é perpendicular ao plano que<br />
contém o retângulo<br />
ou seja, estamos encontrando a normal do plano!<br />
25 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
<strong>geometria</strong> <strong>projetiva</strong><br />
cônicas<br />
26 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
<strong>geometria</strong> <strong>projetiva</strong><br />
cônicas<br />
z=1<br />
z=0<br />
z=1<br />
z=0<br />
27 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
<strong>geometria</strong> <strong>projetiva</strong><br />
cônica no infinito (degenerada)<br />
o dual de uma cônica formada por duas retas é uma cônica<br />
formada por dois pontos<br />
C ∗ ∞ é a cônica dual no infinito<br />
28 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
cônicas<br />
cônica dual<br />
note como é a matriz<br />
C ∗ ∞ =<br />
⎛<br />
⎝<br />
1 0 0<br />
0 1 0<br />
0 0 0<br />
ideia dos eixos x e y no plano z = 0<br />
ou seja, na sua forma canônica, C ∗ ∞ é formada pelo dual dos<br />
eixos x e y no plano no infinito<br />
⎞<br />
⎠<br />
29 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
cônicas<br />
ângulos no plano projetivo<br />
forma invariante à transformação <strong>projetiva</strong><br />
cos θ =<br />
l T C ∗′<br />
∞m<br />
(l T C ∗ ∞l)(m T C ∗ ∞m)<br />
ou seja, encontrando C ∗′<br />
∞ no plano projetivo, podemos realizar<br />
medidas Euclideanas de ângulos<br />
conceito<br />
mas o que significa o produto de uma reta por uma cônica,<br />
seguido pelo produto com outra reta??<br />
30 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
cônicas<br />
ângulos no espaço de similaridade<br />
sabemos fazer isso no espaço de similaridade<br />
cos θ = l T m =<br />
l1m1 + l2m2<br />
(l 2 1 + l 2 2 )(m2 1 + m2 2 )<br />
então se queremos calcular o ângulo entre duas retas no<br />
espaço projetivo uma solução é<br />
trazer as retas para o espaço de similaridade e calcular o<br />
ângulo neste espaço<br />
31 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
cônicas<br />
ângulos no espaço de similaridade<br />
lembrando<br />
e consequentemente<br />
então a expressão l T m fica<br />
l ′<br />
= H −T l<br />
l = H T l ′<br />
cos θ = [H T l ′<br />
] T H T m ′<br />
cos θ = l ′<br />
HH T m ′<br />
32 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
cônicas<br />
ângulos no plano projetivo<br />
podemos pensar na cônica degenerada como transformações<br />
“desfaçadas”<br />
ou como uma representação compacta de dois pontos ou duas<br />
retas; ou, ainda melhor, dois eixos<br />
fazendo: C ∗′<br />
∞ = HH T<br />
chegamos a<br />
cos θ =<br />
l ′ T C ∗ ′<br />
∞m ′<br />
(l ′ T C ∗ ∞l ′ )(m ′ T C ∗ ′<br />
∞m ‘ )<br />
e quando C ∗ ∞ está na forma canônica :<br />
cos θ = l ′ T ∗<br />
C∞m ′<br />
= l ′ T ′<br />
m<br />
33 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
cônicas<br />
ângulos no plano projetivo<br />
identificando a cônica dual no infinito C ∗′<br />
∞ na imagem,<br />
descobrimos qual transformação leva ela para sua forma<br />
canônica C ∗ ∞<br />
essa transformação, por consequência, é a retificação para o<br />
espaço de similaridade<br />
34 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
cônicas<br />
ângulos no plano projetivo<br />
a remoção da distorção perspectiva encontra o plano paralelo<br />
ao plano da imagem que passa pela origem<br />
linha no infinito na imagem<br />
inverte a divisão perspectiva, eixo z<br />
na decomposição, encontra a matriz HP<br />
H = HSHAHP =<br />
sR t<br />
0 T 1<br />
K 0<br />
0 T 1<br />
I 0<br />
v T 1<br />
<br />
35 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
cônicas<br />
ângulos no plano projetivo<br />
a remoção da distorção afim encontra a transformação que<br />
leva os eixos x e y em uma posição canônica<br />
a cônica C∗′ ∞ é uma forma compacta de representar esses dois<br />
pontos<br />
na decomposição, encontra a matriz HA<br />
H = HSHAHP =<br />
sR t<br />
0 T 1<br />
K 0<br />
0 T 1<br />
I 0<br />
v T 1<br />
<br />
36 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
cônicas<br />
cônica dual aos pontos circulares<br />
lembrando que a cônica C ∗ ∞ é invariante a transformações de<br />
similaridade (assim como os pontos circulares)<br />
C ∗′<br />
∞ = HSC ∗ ∞H T S = C ∗ ∞<br />
C ∗′<br />
<br />
I 0<br />
∞ =<br />
vT <br />
K 0<br />
1 0T <br />
C<br />
1<br />
∗ <br />
KT 0<br />
∞ 0T 1<br />
fazendo os produtos acima<br />
C ∗′<br />
∞ =<br />
KK T KK T v<br />
v T KK T v T KK T v<br />
<br />
I v<br />
0 T 1<br />
<br />
37 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
cônicas<br />
cônica dual aos pontos circulares<br />
no sentido inverso, de descobrirmos quem é C ∗′<br />
∞<br />
C ∗′<br />
<br />
KKT KK<br />
∞ =<br />
Tv vT KKT vT KKTv podemos encontrar as matrizes<br />
<br />
K 0<br />
HA =<br />
0T <br />
1<br />
e<br />
HP =<br />
I 0<br />
v T 1<br />
o produto dessas duas matrizes é a transformação que leva do<br />
espaço projetivo para o espaço de similaridade 38 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
cônicas<br />
cônica dual aos pontos circulares<br />
na aula passada vimos como encontrar C∗′ ∞ marcando ângulos<br />
retos na imagem e montando o sistema linear<br />
C ∗′<br />
∞ =<br />
KK T KK T v<br />
v T KK T v T KK T v<br />
o último passo daquele trabalho é justamente extrair HA e HP<br />
<br />
39 / 40
intro <strong>geometria</strong> <strong>projetiva</strong><br />
cônicas<br />
cônica dual aos pontos circulares<br />
encontrando H = HAHP e podemos gerar a imagem retificada<br />
essas transformações estão<br />
alinhando os planos: remoção da distorção perspectiva<br />
colocando os eixos na forma canônica: remoção da distorção<br />
afim<br />
mas não está<br />
alinhando os eixos: encontrando a rotação<br />
e transladando para origem<br />
por isso não se preocupe se sua imagem final estiver “torta”<br />
40 / 40