50
C C C C 2 2 2 2 2 2 V V i i s s ã ã o o C C o o m m p p u u t t a a c c i i o o n n a a l l T T r r a a n n s s f f o o r r m m a a ç ç õ õ e e s s 3 3 D D e e P P r r o o j j e e ç ç õ õ e e s s Instituto Tecnológico de Aeronáutica Prof. Carlos Henrique Q. Forster – Sala 121 IEC ramal 5981

CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CCCC222222 –– VViissããoo CCoommppuuttaacciioonnaall

TTrraannssffoorrmmaaççõõeess 33DD ee PPrroojjeeççõõeess

Instituto Tecnológico de Aeronáutica

Prof. Carlos Henrique Q. Forster – Sala 121 IEC

ramal 5981

Page 2: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-2/50

Tópicos da aula • Geometria Projetiva Tridimensional • Transformações em 3D • Representação de Rotações • Transformação de Corpo rígido em 3D • Projeção ortográfica • Projeção perspectiva • Pontos de fuga • Bases afins e projetivas • Razão Cruzada

Page 3: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

Livro para acompanhar essa aula Mathematical Elements for Computer Graphics (2nd edition) D. F. Rogers, J. A. Adams McGraw-Hill Capítulos 2 e 3 pp 61-206 Fundamentos de Geometria Computacional Resende, R. J., Stolfi, J. IX Escola de Computação, Recife, 1994 Capítulo 2 pp 25-76

Page 4: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-4/50

Geometria Projetiva 3D 3 é o espaço projetivo orientado.

Pontos Os pontos são representados por quádruplas de coordenadas homogêneas

[ ]Twzyx das quais se exclui [ ]T0000 e correspondem ao ponto

[ ]Twzwywx /// em coordenadas cartesianas para 0>w , à direção do vetor

),,( zyx se 0=w ou ao ponto [ ]Twzwywx /// do além se 0<w .

Page 5: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-5/50

Plano

Planos são definidos por quádruplas de coeficientes homogêneos WZYX ,,, e um

ponto [ ]Twzyx pertence ao plano se 0=+++ WwZzYyXx . Um plano divide os espaço em dois lados. De acordo com o sinal da expressão

WwZzYyXx +++ um ponto [ ]Twzyx está do lado positivo ou do lado negativo do plano.

O plano no infinito é definido como [ ]T1000=Ω , que define o aquém do

espaço como os pontos que 0>w e o além, 0<w .

Page 6: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-6/50

Orientação do tetraedro

3333

2222

1111

0000

321 sgn),,,(

wzyxwzyxwzyxwzyx

ppppo −=∆

Obtenção do plano por 3 pontos [ ],210 WZYXppp =∨∨

222

111

000

222

111

000

222

111

000

222

111

000

,,,zyxzyxzyx

Wyxwyxwyxw

Zzxwzxwzxw

Yzywzywzyw

X =−==−=

Obtenção do ponto intersecção de 3 planos (que não possuem reta comum) pela fórmula dual.

Page 7: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-7/50

Transformações Geométricas em 3D

Transformação 4x4 de coordenadas homogêneas (transformação projetiva em 3D)

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

hhzhyhx

srqpnjigmfedlcba

wzyx

´´´´

Page 8: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-8/50

Partes da matriz de transformação:

⎥⎥⎥

⎢⎢⎢

jigfedcba

Transformação linear em 3D.

⎥⎥⎥

⎢⎢⎢

nml

Vetor de translação em 3D.

[ ]rqp perspectiva.

[ ]s escala global

Page 9: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-9/50

Escala em 3D

⎥⎥⎥⎥

⎢⎢⎢⎢

1000000000000

je

a

⎪⎩

⎪⎨

===

jzzeyyaxx

´´´

Exemplo: aplicar escala ao paralelepípedo

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

11111111000011113300330002200220

11

3/12/1

Page 10: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-10/50

Escala global

⎥⎥⎥⎥

⎢⎢⎢⎢

2/11

11

equivale à ⎥⎥⎥⎥

⎢⎢⎢⎢

12

22

Translação3D

⎥⎥⎥⎥

⎢⎢⎢⎢

1000100010001

nml

⎪⎩

⎪⎨

+=+=+=

nzzmyylxx

´´´

Page 11: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-11/50

Reflexo 3D

⎥⎥⎥⎥

⎢⎢⎢⎢

−1000010000100001

Reflexo em relação ao plano xy.

Cisalhamento

⎥⎥⎥⎥

⎢⎢⎢⎢

10000100010001

fc

⎪⎩

⎪⎨

=+=+=

zzfzyy

czxx

´´´

Desloca x e y em função de z.

Cisalhamentos nos outros planos são análogos.

Page 12: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-12/50

Rotações em 3D

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡−

=

10000cossin00sincos00001

θθθθ

xR Rotação em torno do eixo x no sentido anti-horário.

⎥⎥⎥⎥

⎢⎢⎢⎢

−=

10000cos0sin00100sin0cos

θθ

θθ

yR Rotação em torno do eixo y no sentido anti-horário.

Page 13: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-13/50

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡ −

=

1000010000cossin00sincos

θθθθ

zR Rotação em torno do eixo z no sentido anti-horário.

O determinante é 1. As linhas são vetores ortonormais (unitários e ortogonais).

Por isso 1−= RRT

A composição de rotações é associativa, mas não é comutativa. A mudança da ordem das rotações pode dar resultados diferentes.

Page 14: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-14/50

Exemplo: Rotação de 90 graus em x e em y. Depois em ordem inversa.

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡−

10110

1

⎥⎥⎥⎥

⎢⎢⎢⎢

−1

011

10

⎥⎥⎥⎥

⎢⎢⎢⎢

=

11

11

⎥⎥⎥⎥

⎢⎢⎢⎢

−1

011

10

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡−

10110

1

⎥⎥⎥⎥

⎢⎢⎢⎢

−−

=

11

11

Page 15: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-15/50

Exercício: Composição de Transformações Rotação em torno de um eixo arbitrário.

Eixo passa por [ ]Tzyx 000 com cossenos de direção ( )zyx ccc ,, .

Rotação por um ângulo δ .

1- Transladar de ( )000 ,, zyx −−− para eixo passar pela origem. 2- Rotacionar em torno do eixo x até eixo no plano xz. 3- Rotacionar em torno do eixo y até eixo coincidir com eixo z.

4- Rotacionar δ em torno do eixo z 5- Transformação 3 inversa 6- Transformação 2 inversa 7- Transformação 1 inversa

Page 16: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-16/50

⎥⎥⎥⎥

⎢⎢⎢⎢

−−−

=

11

11

0

0

0

1 zyx

T

dc

dc

ccd

yz

zy

==

+=

αα sin,cos

22

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡−

==

100000000001

2 dcdcdcdc

RTzy

yzx

Page 17: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-17/50

xcd == ββ sin,cos

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡ −

==

100000001000

3 dc

cd

RTx

x

y

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡ −

==

1000010000cossin00sincos

4

δδδδ

zRT

Composição: 12341

31

21

1 TTTTTTT −−−

Page 18: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-18/50

Outros Exemplos de Composição de Transformações: • Rotações e Translações • Rotação por eixo paralelo a um eixo coordenado. • Reflexo sobre plano arbitrário no espaço

Page 19: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-19/50

Transformações Afins em 3D

⎥⎥⎥

⎢⎢⎢

⎡+

⎥⎥⎥

⎢⎢⎢

⎡=′

nml

Pjigfedcba

P (coordenadas cartesianas)

Ou ainda, em coordenadas homogêneas:

Pnjigmfedlcba

P

⎥⎥⎥⎥

⎢⎢⎢⎢

=′

1000

Preservam o paralelismo de retas e de planos e as combinações convexas.

Page 20: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-20/50

Transformações de Corpo Rígido em 3D Rotações e translações em 3D e suas composições.

⎥⎥⎥

⎢⎢⎢

⎡+

⎥⎥⎥

⎢⎢⎢

⎡=

nml

Pjigfedcba

⎪⎪⎪⎪

⎪⎪⎪⎪

=++=++=++=++

=++

=++

000111

222

222

222

cjbiagfjeidgcfbeadjigfedcba

e 1+=

jigfedcba

Restrições não-lineares

Page 21: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-21/50

Representação de Rotações em 3D 3 graus de liberdade • Ângulos de Euler: rotação em x, rotação em y e rotação em z. • Ângulos de Euler II: eixo pela origem e ângulo de rotação (regra mão direita). • Matriz 3x3 ortonormal positiva. • Quartenhões unitários.

Problema dos ângulos de Euler é o chamado “Gimbal lock”: para uma dada configuração, um grau de liberdade é perdido.

Page 22: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-22/50

Lembrando números complexos iyxz += onde 1−=i .

Soma )()( 212121 yyixxzz +++=+ translação.

Escala ( ) ( )yixz ααα += escala uniforme.

Produto )())(( 21122121221121 yxyxiyyxxiyxiyxzz ++−=++=⋅

Fórmula de Euler θθθ sincos iei +=

Produto por θie : )sincos(sincos θθθθθ xyiyxez i ++−=⋅

Número complexo unitário representa uma rotação em 2D.

Page 23: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-23/50

Quaternhões Vetor de 4 componentes

q+= qqo

(soma de um componente escalar e um vetor 3D). Produto, associativo, mas não comutativo

⎩⎨⎧

×++=⋅−=

=qppqr

qpqp

pqrqprooo

Produto escalar de quartenhões

qp ⋅+=• pqqpoo

Norma:

qq ⋅+=•= 2qqqqooo

Page 24: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-24/50

Quartenhão unitário tem norma igual a 1.

Rotação de θ em torno de um vetor unitário ωr

é representada por

ωθθ r⎟⎠⎞

⎜⎝⎛+=

2cos

2sin

oq

Notar que oq− define a mesma rotação que

oq , visto que inverte a orientação do eixo

e o ângulo simultaneamente. Quartenhão conjugado:

q−= qqo*

Inverte apenas o “cosseno”: rotação inversa para quartenhão unitário:

1** ==oooo

qqqq (para quartenhão unitário)

Page 25: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-25/50

Fórmula da rotação oo

qq *)0()0( xx +=′+ A composição de rotações resulta da multiplicação de quartenhões

**** ))(0)(())0(()0()0(oooooooooopqqppqqppp xxxx +=+=′+=′′+

A matriz de rotação correspondente é

⎥⎥⎥

⎢⎢⎢

+−−++−+−−+−+++−−−+

=2

32

22

12

023103120

32102

32

22

12

01230

312021302

32

22

12

0

)(2)(2)(2)(2

)(2)(2

qqqqqqqqqqqqqqqqqqqqqqqq

qqqqqqqqqqqqR

Page 26: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-26/50

Para os ângulos de Euler γβα ,, , a matriz de rotação é dada por

⎥⎥⎥

⎢⎢⎢

++−−+−+

−=

γαγαγβαγαγβαβαγαγβαγαγβα

βγβγβ

coscoscossinsinsincossinsincossincoscossincoscossinsinsinsincoscossinsin

sinsincoscoscosR

A rotação em torno do vetor [ ]Tnnnn 321= unitário é

⎥⎥⎥

⎢⎢⎢

−−

−+

⎥⎥⎥

⎢⎢⎢

−+=0

00

sin)cos1(cos

12

13

23

232313

322

212

31212

1

nnnn

nn

nnnnnnnnnnnnnnn

IR θθθ

Os autovalores de R são θθ sincos,1 i± . O auto-vetor de 1 é o vetor n (eixo).

Page 27: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-27/50

Definição de uma matriz de rotação pela direção dos eixos. Basta determinar uma base ortonormal. Vetor VPN (view plane normal – aponta para um objeto) Vetor VUP (view up vector – aponta para cima) Queremos que eixo z aponte para o objeto Normalizar VPN (unitário). Produto vetorial VX=VUP × VPN, normalizar VX. Produto vetorial VY=VPN × VX Preencher a matriz que leva o eixo z para VPN, o eixo x para VX e o y para VY:

[ ]VPNVYVXR =

Page 28: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-28/50

Projeção Ortográfica Redução para um espaço de dimensão menor. No caso da projeção ortográfica, perdemos a informação do eixo z.

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

=

wzyx

P

1000000000100001

ou simplesmente ⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎡=

wzyx

P100000100001

wWZ

yYxX

====

0

Page 29: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-29/50

Projeção Perspectiva Várias formulações possíveis

C

P

f

y´y

z

C é o centro de projeção, f é a distância focal (C ao plano-imagem).

Page 30: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-30/50

⎪⎪⎩

⎪⎪⎨

=′

=′⇒=

xzfx

yzfy

zy

fy

Em coordenadas homogêneas:

zwfxxfyy

=′=′=′

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎡=

wzyx

ff

P0100000000

, ou então ⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎡=

wzyx

fP

010000100001

Page 31: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-31/50

Outro modelo.

C

P

f

y´y

z

O plano-imagem agora está sobre a origem (e não o centro de projeção).

Page 32: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-32/50

⎪⎪⎩

⎪⎪⎨

+=′

+=′

⇒+

=′

xfz

fx

yfz

fy

fzy

fy

Em coordenadas homogêneas:

fz

ffzw

xxyy

+=+

=′

=′=′

1 ⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎡=

wzyx

fP

110000100001

Page 33: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-33/50

Mais um modelo

C

P

f

y

z

Agora o centro de projeção está à frente do plano-imagem.

Page 34: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-34/50

⎪⎪⎩

⎪⎪⎨

−=′

−=′

⇒−

=′

xfz

fx

yfz

fy

fzy

fy

Em coordenadas homogêneas:

1−=−

=′

=′=′

fz

ffzw

xxyy

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

−=

wzyx

fP

110000100001

Page 35: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-35/50

Pontos de Fuga Os pontos de fuga numa imagem de perspectiva são os pontos em que as imagens das retas paralelas de uma cena se encontram. Para nós, é simplesmente a projeção perspectiva de pontos no infinito. Se a transformação de um ponto no infinito resultar um ponto no infinito, as retas paralelas naquela direção são também paralelas na imagem. Se a transformação de um ponto no infinito resultar um ponto finito, as retas paralelas naquela direção são concorrentes na imagem sobre esse ponto.

Page 36: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-36/50

Pontos de Fuga Resultado da seguinte matriz de projeção

⎥⎥⎥⎥

⎢⎢⎢⎢

+

=

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

11100010000100001

pxzyx

zyx

p

Aplicando ao ponto no infinito no eixo x ⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

100/1

001

0001

100010000100001 p

pp

Page 37: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-37/50

Resultado da seguinte projetividade:

⎥⎥⎥⎥

⎢⎢⎢⎢

+++

=

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

111010000100001

pzpypxzyx

zyx

rqp

Aplicando aos pontos no infinito da direção dos eixos x, y e z e à origem:

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

1000

,

1/100

,

10/10

,

100/1

1000010000100001

1010000100001

rq

p

rqp

Page 38: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-38/50

Exemplo – encontrar os pontos de fuga da seguinte transformação para as retas paralelas ao eixo x, ao eixo y e ao eixo z.

⎥⎥⎥⎥

⎢⎢⎢⎢

−−−

−−−

1245.0283.0141.000000612.0707.0354.005.00866.0

Page 39: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-39/50

Resposta: O ponto de fuga de

⎥⎥⎥⎥

⎢⎢⎢⎢

−−−

−−−

1245.0283.0141.000000612.0707.0354.005.00866.0

para o eixo x é ⎥⎥⎥⎥

⎢⎢⎢⎢

141.00354.0

866.0

.

Em coordenadas cartesianas é o ponto ⎥⎥⎥⎥

⎢⎢⎢⎢

⎡−

105.2142.6

ou ( )5.2,142.6− da imagem.

Os pontos de fuga para o eixo y e z são respectivamente ( )5.2,0 − e ( )5.2,04.2

Page 40: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-40/50

Exemplo Translação para traz e para frente. Mudança da distância focal em cada um dos modelos de projeção perspectiva. Encontrar os pontos de fuga para uma dada matriz de transformação. Encontrar a matriz de projeção ortográfica numa determinada direção.

Page 41: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-41/50

Base Afim Encontrar a transformação afim em 2D que mapeia os três pontos P1, P2 e P3 nos pontos Q1, Q2 e Q3.

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎡=

⎥⎥⎥

⎢⎢⎢

⎡=

110011

1

1

1

1 y

x

y

x

pp

fedcba

qq

Q

Para cada par de pontos PQ tenho duas equações. Para encontrar as 6 incógnitas a,b,c,d,e,f, preciso de 3 pares de pontos. Lembrando a solução linear

⎥⎥⎥

⎢⎢⎢

=⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎡=

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

3

2

1

33

22

11

3

2

1

33

22

11

111

111

y

y

y

yx

yx

yx

x

x

x

yx

yx

yx

qqq

fed

pppppp

eqqq

cba

pppppp

Page 42: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-42/50

Qualquer transformação afim em 2D pode ser representada como a transformação dos pontos (0,0), (0,1) e (1,0). Os três pontos resultantes dessa transformação formam uma base afim (se não colineares). Quantos pontos são necessários em 3 dimensões?

Pnjigmfedlcba

P

⎥⎥⎥⎥

⎢⎢⎢⎢

=′

1000

São doze incógnitas, mas cada ponto contribui com 3 equações. Assim, são necessários quatro pontos (não-coplanares) para formar uma base afim. Correspondem às transformações de (1,0,0), (0,1,0), (0,0,1) e (0,0,0).

Page 43: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-43/50

Base Projetiva Encontrar transformação projetiva em 2D que mapeia 4 pontos.

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎡=

⎥⎥⎥

⎢⎢⎢

11''

1

1

yx

jgfedcba

hhyhx

1''

++=++=++=

ii

iii

iii

jygxhfeydxhycbyaxhx

Substituindo h,

feydxyyjyygxcbyaxxxjyxgx

iiiiiii

iiiiiii

++=++++=++

''''''

Construímos o sistema 8x8, são duas equações para cada ponto.

Page 44: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-44/50

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢

=

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢

−−−−−−−−

4

4

3

3

2

2

1

1

444444

444444

333333

333333

222222

222222

1111

111111

''''''''

''1000''0001''1000''0001''1000''0001

''1000''0001

yxyxyxyx

jgfedcba

yyxyyxxyxxyxyyxyyxxyxxyxyyxyyxxyxxyx

yyxyyxxyxxyx

ii

Podemos formar uma base pela transformação dos pontos (1,0), (0,1) (0,0) e (1,1).

Page 45: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-45/50

A transformação encontrada é uma transformação de plano para plano ou então de imagens planas para imagens planas (com aplicações ...)

Page 46: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-46/50

Exercício Considere a transformação projetiva

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

hhzhyhx

srqpnjigmfedlcba

wzyx

´´´´

Quantas incógnitas (ou parâmetros) devem ser determinadas dadas associações de pontos originais e pontos transformados (em 3D)? Quantas equações cada par de ponto (original-transformado) contribui para determinar a transformação? Quantos pontos são necessários em 3D para determinar uma base projetiva?

Page 47: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-47/50

Pontos para a base projetiva: (1,0,0), (0,1,0), (0,0,1), (0,0,0) e (1,1,1).

Page 48: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-48/50

Razão Cruzada Dados 4 pontos da reta projetiva, descritos em coordenadas homogêneas

4..1, =⎥⎦

⎤⎢⎣

⎡= i

wx

pi

ii

A razão cruzada C é definida como

)4,2()3,1()4,3()2,1()4,3,2,1(

dddd

=C, onde j

j

i

i

wx

wxjid −=),(

e o determinante ),(),( jidww

wwxx

ppjiD jiji

jiji ===

Page 49: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-49/50

A razão cruzada é invariante a transformações projetivas de P1 em P1.

A

BC

D

A’

B’

C’

D’

O

),(),(),(),(),,,(

DBdCAdDCdBAdDCBA =C

Page 50: CC222 – Visão Computacional Transformações 3D e Projeçõesforster/CC-222/lecture/03-Transformaco...CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-3/50

CC222 – Visão Computacional – ITA – IEC Transformações 3D e Projeções-50/50

Para a transformação projetiva T.

ii pTp ⋅='

TjidppTppjid jiji ⋅=⋅== ),(''),('

)4,3,2,1()4,2()3,1(

)4,3()2,1()4,2(')3,1(')4,3(')2,1(')4,3,2,1(' 2

4231

24321 CC ===

Tdwwdww

TdwwdwwDDDD

Se λ é a razão cruzada de 4 pontos, a s razões cruzadas das outras 23 permutações

dos 4 pontos serão λλ

λλ

λλ

λλ 1,

1,

11,1,1, −

−−−