Post on 20-Jan-2019
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Introdução ao Processamento eSíntese de imagens – Transformações deVisualização: Matrizes Homogêneas
Fontes:
•Esperança e Cavalcanti (2002) (UFRJ);
•Traina e Oliveira (2004) (USP); e
•Antonio Maria Garcia Tommaselli - notas de Aula de CG (2009)
Júlio Kiyoshi Hasegawa
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Transformações
� Um sistema gráfico que permita ao utilizador definir objetos deve incluir a capacidade de simular o movimento e a manipulação de objetos segundo determinadas regras – operações definidas como “Transformações de visualização”
� Transformações de visualização envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos básicos de álgebra e geometria.
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Pontos e Vetores (2D)
� Ponto: Denota posição no plano
� Vetor: Denota deslocamento, isto é, inclui a noção de direção e magnitude (vetor -intensidade, direção e magnitude)
� Ambos são normalmente expressos por pares de coordenadas (em 2D) x
yP
v
),(
),(
vv
PP
yxv
yxP
=
=r
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Pontos e Vetores (2D)
� Ponto: Denota posição no plano
� Vetor: Denota deslocamento, isto é, inclui a noção de direção e magnitude (vetor -intensidade, direção e magnitude)
� Ambos são normalmente expressos por pares de coordenadas (em 2D) x
yP
v
),(
),(
vv
PP
yxv
yxP
=
=r
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Operações com Pontos e Vetores (2D)
� Soma de vetorest = v + u
� Multiplicação de vetor por escalaru = 2 v
� Subtração de pontosv = Q – P
� Soma de ponto com vetorQ = P + v
x
y
v
u
x
y
v
x
y P
v
v
Q
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Pontos e Vetores (2D)
� Exercício 1:� Calcular a distância
entre os pontos P1P2.
� P1(101, 333)� P2(134, 153)
� Exercício 2:� Determinar o vetor
definido pelos pontos P1P2.(Ex. 1)
� Calcular o vetor unitário.
� Módulo de 1 vetor� |v| = (a2 + b2)1/2
� u = v/|v|
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Transformações Lineares em 2D
� Uma transformação linear Isogonal
++−=
++=
faybxy
ebyaxx
'
'
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Transformações Lineares em 2D
� Uma transformação linear afim
++=
++=
fdycxy
ebyaxx
'
'
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Forma Matricial - 2D
� Mais conveniente para uso em um computador:
� Então uma transformação linear afim pode ser escrita T (P ) = P’ onde
=
=
=
=
f
eD
y
xP
dc
baA
y
xP
'
''
DPAP +×='
+
=
f
e
y
x
dc
ba
y
x
'
'
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Transformação de pontos - 2D
[ ][ ] [ ]
[ ] * *( ) ( )
a bX T x y
c d
ax cy bx dy x y
= =
+ + =
[ ][ ]
[ ] [ ]( ) ( ) ' '
T a b xT X
c d y
ax by cx dy x y
= =
+ + =
Pós-multiplicação pela matriz de transformação:
Leva a um resultado diferente da Pré-multiplicação:
Não é comutativa
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Transformação de pontos - 2D
� Exercício 1: � Calcule: [P][A]
� Exercício 2: � Calcule:[A] [P]T
Considere: [P] = [10 20] e [A] = | 0.4 0.6|| 0.3 0.5|
Transformações em coordenadas cartesianas
P´ = T + P ⇒ TranslaçãoP´ = S · P ⇒ EscalaP´ = R · P ⇒ Rotação
Exercício 3: Considere -> [D] = [3 -2]Calcule: P´=A.PT + DT
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Coordenadas Homogêneas e Matrizes de Transformação
� Problemas computacionais:� Rotação e Escala - são tratadas através de multiplicações.� Translações – são tratadas como adições/subtrações.
� Para tratar do mesmo modo todas as 3transformações de uma forma consistente.
� Expressar os pontos em CoordenadasHomogêneas� adiciona-se uma terceira coordenada ao ponto;� Assim um ponto P(x, y) é representado por uma tripla
(x,y,W);
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Coordenadas Homogêneas e Matrizes de Transformação - 2D
� 2 conjuntos de coordenadas
homogêneas (x,y,W) e (x',y',W')
representam o mesmo ponto se e
somente se um é múltiplo do
outro. Exemplo: (2,3,6) e (4,6,12)
� As coordenadas homogêneas
(6,4,2), (12,8,4), (3,2,1)
representam o ponto cartesiano
(3,2).
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Coordenadas Homogêneas e Matrizes de Transformação - 2D
� Se w é diferente de zero, podemos dividir (x,y,w) por ela,
obtendo o mesmo ponto (x/w, y/w, 1). Os números x/w e
y/w são chamados de Coordenadas Cartesianas do ponto
homogêneo.
� (tx, ty, tw) resulta numalinha no espaço – para t ≠0.
� cada ponto tem diferentesrepresentaçõeshomogêneas
� P(0,0,0) não é permitido
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Coordenadas Homogêneas e Matrizes de Transformação - 2D
� Translação para coordenadas homogêneas
•
=
1100
10
01
1
'
'
y
x
d
d
y
x
y
x
� O que acontece se transladarmos um ponto P de (dx1, dy1) para P’ e depois de (dx2, dy2) para P”?
PddTPyx),(' =
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Coordenadas Homogêneas e Matrizes de Transformação - 2D
� Composição de transformações
?
100
d10
d01
100
d10
d01
y2
x2
dy1
x1
=
•
PddTddTP
PddTPePddTP
yxyx
yxyx
⋅⋅=
⋅=⋅=
)],(),([
),(),(
2211
"
'
22
"
11
'
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Coordenadas Homogêneas e Matrizes de Transformação - 2D
� Composição de transformações
PddTddTP
PddTPePddTP
yxyx
yxyx
⋅⋅=
⋅=⋅=
)],(),([
),(),(
2211
"
'
22
"
11
'
+
+
=
•
100
10
01
100
10
01
100
10
01
21
21
2
2
1
1
yy
xx
y
x
y
x
dd
dd
d
d
d
d
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Coordenadas Homogêneas e Matrizes de Transformação -2D
� Escala
•
=
1100
00
00
1
,
,
y
x
S
S
y
x
y
x
� Verificar produtos duplos
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Coordenadas Homogêneas e Matrizes de Transformação - 2D
� Composição de transformações
⋅
⋅
=
•
100
00
00
100
00
00
100
00
00
21
21
3
2
1
1
yy
xx
y
x
y
x
SS
SS
S
S
S
S
P)]s,s(S)s,s(S[P
P)s,s(SPeP)s,s(SP
2y2x1y1x"
'2y2x
"1y1x
'
⋅⋅=
⋅=⋅=
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Coordenadas Homogêneas e Matrizes de Transformação - 2D
� Composição de transformações
⋅
⋅
=
•
100
00
00
100
00
00
100
00
00
21
21
3
2
1
1
yy
xx
y
x
y
x
SS
SS
S
S
S
S
PssSssSP
PxsSPePssSP
yxyx
yxyx
⋅⋅=
⋅=⋅=
)],(),([
),(),(
2211
"
'
22
"
11
'
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Coordenadas Homogêneas e Matrizes de Transformação -2D
� Rotação
•
−
=
1100
0cos
0cos
1
,
,
y
x
sen
sen
y
x
θθθθ
� Qual o resultado após a rotação de um ponto P de θ e depois de - θ?
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Transformação Afim 2D – Coord. Homogênea
∆++
∆++
=
∆
∆
11100
ydycx
xbyax
y
x
ydc
xba
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Transformações 2D Adicionais: Reflexão
−
100
010
001
−
−
100
010
001
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Reflexão em Relação à Reta y = x [2D]
100
001
010
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Transformações 2D Adicionais: cisalhamento � Shearing (cisalhamento) em x
100
010
01x
sh
� Shearing (cisalhamento) em y
100
01
001
ysh
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Transformações 2D Adicionais: cisalhamento � cisalhamento na direção y e x – distorção na direção x e y -
respectivamente
⋅−
100
010
1refxx
yshsh
⋅−
100
1
001
refyyxshsh
yy
yyshxxrefx
=
−+=,
, )(
)(,
,
refyxxshyy
xx
−+=
=
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Composição de Transformações� 1. Efetuar uma translação, levando P1 à origem.
2. Efetuar a Rotação desejada.3. Efetuar uma Translação oposta à realizada em 1., levando P1 a posição anterior.
−
−
⋅
ΘΘ
Θ−Θ
⋅
=−−⋅Θ⋅
100
10
01
100
0cos
0cos
100
10
01
),()(),(
1
1
1
1
1111
y
x
sen
sen
y
x
yxTRyxT
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Composição de Transformações� Escala de um objeto em relação a um ponto arbitrário P1.
� Escala e rotação de uma casa em relação ao ponto P1
−
−
⋅
⋅
=−−⋅⋅
100
10
01
100
00
00
100
10
01
),(),(),(
1
1
1
1
1111
y
x
S
S
y
x
yxTssSyxT
y
x
yx
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Transformação Window-to-ViewportJanela em Coordenadas do mundo e porta de visualização em coordenadas de
tela
Duas portas de visão associadas a mesma janela
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Transformação Window-to-Viewport� Especificar uma região retangular em coordenadas do mundo, chamada
de janela de coordenadas do mundo, e uma região retangular correspondente em coordenadas de tela, chamada de Porta de Visualização (Viewport);
� transformação composta por 3 passos:1. A janela especificada pelo seu canto inferior esquerdo e canto superior
direito, é primeiramente transladada para a origem das coordenadas de mundo;
2. A seguir o tamanho da janela é escalonado para ser igual ao tamanho da porta de visualização;
3. Finalmente, a translação é usada para posicionar a porta de visualização
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Transformação Window-to-Viewport
� Multiplicando P=Mjp ⋅[x y 1] , temos:
−
−
⋅
−−
−−
⋅
=
100
10
01
100
00
00
100
10
01
min
min
minmax
minmax
minmax
minmax
min
min
y
x
yy
vv
xx
uu
v
u
Mjp
+
−−
⋅−+−−
⋅−= 1)()(min
minmax
minmax
minmin
minmax
minmax
minv
yy
vvyyu
xx
uuxxP
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Transformação Window-to-Viewport com clipping� Primitivas gráficas de saída em coordenadas do mundo são recortadas
pela janela. O seu interior é apresentado na tela (viewport)
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Transformações em 3D
X
y
z (fora da página)
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Transformação Homogênea
=
w
z
y
x
V
Um ponto V no espaço pode ser representado em coordenadas
homogêneas por,
onde
321v
w
zv
w
yv
w
x=== , ,
e w é o fator de escala real e não nulo.
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Transformações em 3D
� Vetores e pontos em 3D
� Transformação linear afim
=
0
z
y
x
V
V
V
Vr
=
1
z
y
x
P
P
P
P
=
1000
lihg
kfed
jcba
T
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
TRANSLAÇÃO em 3D
⋅
=
11000
100
010
001
1
,
,
,
z
y
x
d
d
d
z
y
x
z
y
x
É Possível transladar um ponto u nas direções X, Y, e Z ou emuma direção arbitrária, a partir da aplicação da relação
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Translação
=
=10
1000
100
010
001
3 tI
t
t
t
Tz
y
x
tPtP
tP
tP
P
P
P
t
t
t
PTPzz
yy
xx
z
y
x
z
y
x
+=
+
+
+
=
×
=×=
111000
100
010
001
'
� Observe que translações são comutativas:P + t + v = P + v + t
x
y
z
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Considere a transformação homogênea
=
1000
0100
0010
1001
T e o ponto
1
0
0
1
P
=
A transformação homogênea T, transforma
o ponto u em um ponto v,
TRANSLAÇÃO em 3D - Exemplo 1
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Considere a transformação homogênea
=
1000
0100
0010
1001
T e o ponto
1
0
0
1
P
=
A transformação homogênea T, transforma
o ponto u em um ponto v,
P’ = T. P =
=
1
0
0
2
1
0
0
1
1000
0100
0010
1001
TRANSLAÇÃO em 3D - Exemplo 1
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
�Transladar o ponto v(1,0,0) de 1 unidade na direção X, 2
na direção Y e 3 na direção Z.
TRANSLAÇÃO em 3D - Exemplo 2
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
=
==
1
3
2
2
1
0
0
1
1000
3100
2010
1001
T(1,2,3)v
TRANSLAÇÃO em 3D - Exemplo 2�Transladar o ponto v(1,0,0) de 1 unidade na direção X, 2
na direção Y e 3 na direção Z.
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
�Reflexão no eixo X
Reflexão nos 3 eixos
=
1000
0100
0010
0001-
T
�Reflexão no eixo Y
�Reflexão no eixo Z
=
100 0
010 0
001-0
000 1
T
=
10 0 0
01-0 0
00 10
00 0 1
T
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
ESCALA em 3D � Especificada por três fatores (Sx, Sy , Sz) que multiplicam
os vetores unitários x, y, z� Escala uniforme (Sx = Sy = Sz) entretanto, é uma
operação ortogonal ou homotética, isto é, preserva osângulos
� Para obter reflexão em torno do plano z=0, usar fatoresde escala (1, 1, -1)
=
1000
000
000
000
z
y
x
escalaS
S
S
T
x
y
z
x
y
z
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
ESCALA em 3D
⋅
=
11000
000
000
000
1
,
,
,
z
y
x
S
S
S
z
y
x
z
y
x
Escala em um ponto
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Rotação em torno dos eixos coordenados
� As rotações em torno dos eixos X e Y são
−
1000
0100
00cossin
00sincos
θθθθ
−
1000
0cossin0
0sincos0
0001
θθθθ
−
1000
0cos0sin
0010
0sin0cos
θθ
θθ
� Rotação em torno de Z é dada pela matriz
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Deformação - (“shear”) � É uma transformação de deformação onde um eixo é
“entortado” em relação aos demais
� Se o vetor unitário do eixo z é levado em [Shx Shy 1 0]T, então a matriz de transformação é dada por
=
1000
0100
010
001
y
x
inclinação
Sh
Sh
T
x
yz
x
yz
z´
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Exemplo
� Um ponto P(3, 7, 2) foi rotacionado por 30
graus (sobre o eixo z), e transladado de 10
unidades no eixo x, 5 unidades no eixo y e 3
unidades no eixo z.
� Qual a nova posição do ponto P ?
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
� Dado que:
� Usamos a definição e encontramos:
=
1
2
7
3
P
−
=
1000
3100
50)30cos()30(sen
100)30(sen)30cos(
T
Exemplo
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
� Dado que:
� Usamos a definição e encontramos:
=⋅=
1
5
5.12
9
PTP
=
1
2
7
3
P
−
=
1000
3100
50)30cos()30(
100)30()30cos(
sen
sen
T
Exemplo
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Composição de transformações em 3D
� Em nossa notação, usamos pré-multiplicação:� P’ = T x P
� Para compor 2 transformações temos:� Se P’ = T1 x P e P’’ = T2 x P’ , então, P’’ = T2 x T1 x P
1T 2T
12 TT ×
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Composição de transformações em 3D•Transformar P1, P2 e P3 da posição inicial em (a) para a posição final em (b).
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Composição de transformações em 3DSolução:
1. Transladar P1 para a origem.2. Rotacionar o segmento P1P2 em relação ao eixo y, de
forma que ele (P1P2) fique no plano yz.3. Rotacionar o segmento P1P2 em relação ao eixo x, de
forma que ele (P1P2) fique sobre o eixo z.4. Rotacionar o segmento P1P3 em relação ao eixo z, de
forma que ele (P1P3) fique no plano yz.
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Composição de transformações em 3D
−
−
−
=−−−
1000
100
010
001
),,(1
1
1
111
z
y
x
zyxT
Primeiro Passo:
Transladar P1 para a Origem
Aplicando T a P1, P2 e P3 temos:
=⋅−−−=
1
0
0
0
),,(1111
´
1PzyxTP
−
−
−
=⋅−−−=
1
),,(13
13
13
3111
´
3
zz
yy
xx
PzyxTP
−
−
−
=⋅−−−=
1
),,(12
12
12
2111
´
2
zz
yy
xx
PzyxTP
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Composição de transformações em 3DSegundo Passo: Rotacionar em Relação ao eixo Y
ângulo utilizado = −(90o − θ) =θ - 90o
1
12
1
´
20
1
12
1
´
20
)()90cos(
)cos()90(
D
zz
D
zsen
D
xx
D
xsen
−−=−=−=−
−−=−=−=−
θθ
θθ
2
12
2
12
2´
2
2´
21)()()()( xxzzxzD −+−=+=
−
=⋅−=
1
0
)90(1
12´
2
0"
2
D
yyPRP
yθ
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Composição de transformações em 3DTerceiro Passo: Rotacionar em Relação ao eixo X
2
"
2
2
"
2 )()cos(D
ysen
D
z== φφ
2
12
2
12
2
1221
"
2
"
12)()()( zzyyxxPPPPD −+−+−===
=⋅⋅−⋅
=⋅−⋅=
1
0
0
)90()(
)90()(
21
2
0
´
2
0´´´
2
PPPTRR
PRRP
yx
yx
θφ
θφ
P1P2 agora está sobre (coincidindo) o eixo z positivo
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Composição de transformações em 3DQuarto Passo: Rotacionar em Relação ao eixo Z
3111
0
´´´
3
´´´
3
´´´
3
´´´
3),,()90()(
1
PzyxTRRz
y
x
Pyx
⋅−−−⋅−⋅=
= θφ
P1P2 e P1P3 com P2´´´sobre o eixo z
3
´´´
3
3
´´´
3 )()cos(D
xsen
D
y== αα
2´´´
3
2´´´
33)()( yxD +=
TRzyxTRRRM yxx ⋅=−−−⋅−⋅⋅= ),,()90()()( 111
0θφα
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Transformações Rígidas
� Não modificam a forma (dimensões/ângulos) do objeto
� São compostas de uma rotação e uma translação
=
1000
lihg
kfed
jcba
T
Submatriz de
Rotação
Vetor de
Translação
=
1000
lihg
kfed
jcba
T
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Composição de transformações em 3D
� A submatriz 3x3 do canto superior esquerdo R, agrega as transformações de escala e rotação, enquanto a última coluna à direita T agrega as translações
=
1000
333231
232221
131211
z
y
x
trrr
trrr
trrr
M
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
∆
∆
∆
1000
987
654
321
zrrr
yrrr
xrrr3x3
rotation
matrix
3x1
translation
matrix
perspective global scale
Matriz de Transformação Homogênea 3D