Recordemos que una transformación geométrica es cualquier operación del tipo:
R(x, y):= A(f1(x,y), f2(x,y))
Siendo f1 y f2 dos funciones cualesquiera:
f1, f2: N x N ? R
f1: posición en X del original para el píxel resultante (x,y)
f2: posición en Y del original para el píxel resultante (x,y)
Las transformaciones vistas hasta ahora tienen formas particulares y son continuas.
Un mapeo (mapping) es cualquier transformación arbitraria, definida por un par de funciones f1 y f2, continuas o escalonadas.
f1(x,y)f2(x,y)
A
R
Mapeo inverso: el mapeo puede venir dado al revés:
R(g1(x,y), g2(x,y)):= A(x,y)
Significado: el píxel (x,y) en la imagen original se mueve a la posición (g1(x,y), g2(x,y)).
Normalmente trabajaremos con mapeo directo.
Existen infinitos mapeos. Cualquier par de funciones locas, (f1, f2), es posible, pero ¿cuáles son plausibles?
g1(x,y)g2(x,y)
(x,y)
(x,y)
Ejemplo 1. Difuminado aleatorio, de radio a:f1(x,y):= x+random(2a+1)-a f2(x,y):= y+random(2a+1)-a
A
R1
R2
R3
a = 1
a = 5
a = 20
Ejemplo 2. Pixelado: f1(x,y):= ?x/8?*8; f2(x,y):= ?y/8?*8
A
R
Aplicado sólo en la ROI.
Ejemplo 3. Efecto de cristal a cuadros:f1(x,y):= x–x mod 30+y mod 30; f2(x,y):= y–y mod 30+x mod 30
A
R
Los mapeos pueden servir para simular las deformaciones producidas por fenómenos físicos naturales.
Por ejemplo, ¿cómo se deforma una imagen pegada a un cilindro (como una etiqueta de una botella)?
La coordenada Y no se modifica: f2(x, y):= y
¿Qué pasa con la X?
La X de R es el coseno del ángulo correspondiente en A.
A
R
Conclusión. Transformacióncilíndrica en X: R(x,y):= A(arcos(1-x/(mx/2))·mx/p, y)
xA
xR
0
a = arcos (1-xR/(mx/2))
0
mx
mx/2
mx/2
mx
a
1
-1
0
1-xR/(mx/2)
xA = a·mx/p
Representación de la función
f(x):= arcos(1-x/(mx/2))·mx/p
con mx=10
Ejemplo. Aplicación de la transformación cilíndrica.
Imagen de entrada
Tr. cilíndrica en X
Tr. cilíndrica en Y
Interpretación de la transformación cilíndrica
El efecto se puede graduar, si en lugar de un semicírculo consideramos una semielipse, más o menos ovalada.
xA
xR
0
mx
Ahora tenemos que medir el ángulo en una elipse. Si tomamos x’= 1-xR/(mx/2), ent.:
f1(x, y):= atan(a·sqrt(1-x’2)/x’)mx/p
siendo a el segundo radio de la elipse (en relación al ancho de la imagen).
0
mx
0
mx
a
1
1
a
1
a=4
a=2
a=1/4
a=1/2
a=1
a
Ejemplos. Transformaciones elípticas.
a = 0,3
a = 1,2
a = 2
En Y
En X
De forma parecida, podemos definir otros muchos tipos de transformaciones, basados en deformaciones producidas por fenómenos físicos naturales (o no).
Método: estudiar la forma (matemática) de la deformación, y obtener el par de funciones f1(x,y), f2(x,y).
Ejemplo. Transformaciones geométricas genéricas.
Estirar: simula un panel abombado hacia afuera
Pinchar: simula apretar la superficie del panel
Ondulación: simula una deformación por ondas de agua
Página siguiente |