Análisis de
imágenes
digitales
FUNDAMENTOS DE LA IMAGEN DIGITAL
• Las transformaciones geométricas son funciones que mapean un punto del
espacio a uno nuevo y se pueden clasificar en:
DEFINICIONES
Rígidas ⊂ Similaridad ⊂ Afines Rígidas: preservan la distancia !
traslación+rotación.
Similaridad: preservan el ángulo ! traslación+rotación+escalamiento Afines: preservan el paralelismo ! traslación+rotación+escalamiento +sesgo
Transformaciones geométricas lineales
•
Las transformaciones rígidas (transformaciones Euclidianas) preservan
la distancia entre cualquier par de puntos p y q de la imagen
(isometría).
•
Los objetos tienen la misma forma y tamaño antes y después de la
transformación.
DEFINICIONES
D(p,q ) p q D( p’,q’ ) p’ q’ D (p’ ,q’ ) p’ q’•
Las transformaciones similares (homotecia), a partir de un punto fijo,
multiplican todas las distancias por un mismo factor, de manera que se
preservan los ángulos de los objetos en la imagen.
DEFINICIONES
D(p,q ) p q θ λD (p’ ,q’ ) λp’ λq’ θ Imagen original•
Las transformaciones afines preservan la colinearidad y las razones de
las distancias entre dos puntos cualquiera de la imagen, preservando
así el paralelismo entre segmentos de rectas.
DEFINICIONES
p q ½D(p ,q) p’ q’ ½D (p,q) Imagen original Imagen sesgada• Las transformaciones geométricas lineales pueden representarse por medio de
matrices no singulares (invertibles).
• Sea v el vector columna que contiene las coordenadas de un punto de la
imagen (x,y):
DEFINICIONES
v = x y⎡⎣ ⎤⎦T
• Sea T una matriz de transformación 2×2:
T = a b⎡ c d
⎣
⎢ ⎤
⎦ ⎥
• El vector columna con las coordenadas transformadas está dado por:
ˆv = Tv = a b⎡ c d ⎣ ⎢ ⎤ ⎦ ⎥⎡ xy ⎣ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ = ax +by cx +dy ⎡ ⎣ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ = ˆx ˆy ⎡ ⎣ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥
MATRICES DE TRANSFORMACIÓN
Rθ(x,y) = −cosθ sinθ sinθ cosθ ⎡ ⎣ ⎢ ⎤ ⎦ ⎥⎡ xy ⎣ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥= xcosθ +ysinθ ycosθ −xsinθ ⎡ ⎣ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ Rθ−1(ˆx,ˆy) = R−θ(ˆx,ˆy) Forma simple: Inversa: • Rotación: • Escalamiento uniforme: Es(x,y) = s 00 s ⎡ ⎣ ⎢ ⎤ ⎦ ⎥⎡ yx ⎣ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥= sx sy ⎡ ⎣ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ Es−1(ˆx,ˆy) = Es−1(ˆx,ˆy) Forma simple: Inversa: • Escalamiento no uniforme: Esxy(x,y) = sx 0 0 sy ⎡ ⎣ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ x y ⎡ ⎣ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ = sxx syy ⎡ ⎣ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ Esxy −1(ˆx,ˆy) = E s−1(ˆx,ˆy) Forma simple: Inversa: x y x yx y Rxy(x,y) = −1 0 0 −1 ⎡ ⎣ ⎢ ⎤ ⎦ ⎥⎡ xy ⎣ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥= −x −y ⎡ ⎣ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ Forma simple: • Sesgo:
• Reflexión: equivalente a la rotación con cos(π)
Ssxy(x,y) = sx 1 1 sy ⎡ ⎣ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ x y ⎡ ⎣ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥= x +sxx syy+y ⎡ ⎣ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ Forma simple:
• Traslación: no se puede representar mediante una matriz de
transformación de tamaño 2×2 T (x,y) = a b ⎡ ⎣ ⎢ ⎤ ⎦ ⎥ +⎡ yx ⎣ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥= a+ x b+y ⎡ ⎣ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ T−1(ˆx,ˆy) = ˆx ˆy ⎡ ⎣ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥− ab ⎡ ⎣ ⎢ ⎤ ⎦ ⎥ = ⎡ ˆxˆy−−ab ⎣ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ Forma simple: Inversa:
MATRICES DE TRANSFORMACIÓN
x y y• Rotación con
MATRICES DE TRANSFORMACIÓN
θ = −π 4 y 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 x y x 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 v1=[6,2]T v2 =[7,3]T v3 =[8,2]T ˆv1= Tv1 =[3,6]T ˆv2 = Tv2 =[3,7]T ˆv3 =Tv3 =[4,7]T T = 222 − 22 2 22 ⎡ ⎣ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ • Escalamiento con s = 2 x 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 y x 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 v1=[1,1]T v2 =[0,1]T v3 =[0,2]T v4 =[0,2]T v5 =[0,2]T ˆv1 =Tv1=[2,2]T ˆv2 =Tv2 =[0,2]T ˆv3=Tv3 =[2,0]T ˆv4 =Tv4 =[0,4]T ˆv5 =Tv5 =[4,0]T T = 2 0⎡ 0 2 ⎣ ⎢ ⎤ ⎦ ⎥COORDENADAS HOMOGÉNEAS
• Una forma de expresar todas las transformaciones geométricas de una manera
consistente utilizando representación matricial es a través de coordenadas homogéneas.
• Se agrega una dimensión extra, el eje w, y una coordenada extra, la
componente w.
• De esta manera, todas las transformaciones, y combinaciones de ellas, se
mapean de Rd→Rd+1: x y w (x,y,w) ˆv = Tv = a11 a12 a13 a21 a22 a23 0 0 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ x y w ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ = ˆxˆy ˆw ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥
COORDENADAS HOMOGÉNEAS
• Se pueden representar combinaciones de
transformaciones geométricas.
• Esta definición se le conoce como
transformación afin de 6 grados de libertad. ˆv = Tv = a11 a12 a13 a21 a22 a23 0 0 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ x y 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ = ˆxˆy 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ Escalamiento y rotación Traslación
• La transformación inversa se utiliza para encontrar correspondencias entre
cambios geométricos realizados sobre imágenes:
ˆv = T−1v = a11 a12 a13 a21 a22 a23 0 0 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ −1 x y 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ = ˆxˆy 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ T−1 = 1 a11a22 −a12a21 a22 −a12 a12a23 −a13a22 −a21 a11 a12a21− a11a23 0 0 a11a22 −a12a21 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ donde
COORDENADAS HOMOGÉNEAS
Identidad 1 0 00 1 0 0 0 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ x= v y= w Escalamiento sx 0 0 0 sy 0 0 0 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ x= sxv y= sywRotación −cosθ sinθ 0sinθ cosθ 0
0 0 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ x = v cosθ +wsinθ y = w cosθ −v sinθ Traslación 1 0 tx 0 1 ty 0 0 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ x= v +tx y= w +ty Sesgo vertical s1 0 0v 1 0 0 0 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ 1 sh 0 0 1 0 0 0 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ Sesgo horizontal x= v +svw y= w x= v y=shv + w
Transformación Matriz afin Ecuaciones de
COORDENADAS HOMOGÉNEAS
• A través de las transformaciones afines, es posible realizar transformaciones
más complejas utilizando una matriz única que combine las tres transformaciones básicas.
• Por ejemplo, TRSv, escalar el vértice, luego rotarlo, y finalmente trasladarlo
(derecha a izquierda): 1 0 tx 0 1 ty 0 0 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ cosθ sinθ 0 −sinθ cosθ 0 0 0 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ sx 0 0 0 sy 0 0 0 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ x y 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ equivale a: sx cosθ sy sinθ tx −sx sinθ sy cosθ ty 0 0 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ x y 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥
COORDENADAS HOMOGÉNEAS
• Es importante considerar el orden de las transformaciones, ya que la
multiplicación de matrices no es conmutativa.
• Por ejemplo, RT ≠ TR:
cosθ sinθ tx cosθ +ty sinθ
−sinθ cosθ ty cosθ −tx sinθ
0 0 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ ≠ cosθ sinθ tx −sinθ cosθ ty 0 0 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ RTv TRv 1 2 1 2
COORDENADAS HOMOGÉNEAS
• Rotación de objetos en la imagen.
x θ x y a) θ x y b) x y c) a) Desplazamiento del centroide al origen. b) Rotación. c) Regresar el centroide a su posición inicial.
COORDENADAS HOMOGÉNEAS EN 3D
• Se agrega una coordenada/eje: v = [x y z 1]T.
Transformación Matriz Afin Comentario
Escalamiento
Similar a la versión 2D, sólo se agregó el término
Sz.
Rotación Ver siguiente diapositiva
En 2D sólo existe un eje de rotación. En 3D se deben tomar en cuenta todos los posibles ejes.
Traslación
Similar a la versión 2D, sólo se agregó el término
tz. 1 0 0 tx 0 1 0 ty 0 0 1 tz 0 0 0 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ Sx 0 0 0 0 Sy 0 0 0 0 Sz 0 0 0 0 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥
COORDENADAS HOMOGÉNEAS EN 3D
• Cada rotación puede representarse como la
composición de 3 diferentes ángulos rotando en el sentido horario alrededor de 3 ejes como:
Eje-x en el plano yx por ψ. Eje-y en el plano xz por θ. Eje-z en el plano xy por ϕ.
x y z Rxy(φ) Ryz(ψ ) Rxz(θ) Rxy(φ) Ryz(ψ) Rxz(θ) cosφ −sinφ 0 0 sinφ cosφ 0 0 0 0 1 0 0 0 0 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ 1 0 0 0 0 cosψ −sinψ 0 0 sinψ cosψ 0 0 0 0 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ cosθ 0 sinθ 0 0 1 0 0 −sinθ 0 cosθ 0 0 0 0 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ ⎥
TRANSFORMACIONES PROYECTIVAS
• Las transformaciones proyectivas
establecen 8 grados de libertad y se
definen como: ˆv = Tv = a11 a12 a13 a21 a22 a23 a31 a32 1 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ x y w ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ = ˆxˆy ˆw ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥
• Esta operación corresponde a la siguiente transformación no lineal de las
coordenadas de la imagen de original:
ˆx = a11x + a12y + a13
a31x + a32y +1
ˆy = a21x + a22y + a23
TRANSFORMACIONES PROYECTIVAS
• La inversión de la transformación proyectiva se puede calcular mediante la
relación: T−1 = 1 det(T)Tadj T = a11 a12 a13 a21 a22 a23 a31 a32 a33 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ con donde: det(T) = a11a22a33 + a12a23a31+ a13a21a32 −a11a23a32 −a12a21a33 −a13a22a31 y Tadj = a22a33 − a23a32 a13a32 −a12a33 a12a23 − a13a22 a23a31− a21a33 a11a33 −a13a31 a13a21− a11a23 a21a32 − a22a31 a12a31 −a11a32 a11a22 − a12a21 ⎡ ⎣ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥
OTRAS TRANSFORMACIONES NO LINEALES
• La transformación Twirl produce una rotación α de la imagen sobre el punto
de rotación xc=(xc,yc), la cual decrece conforme la distacia del píxel de la
imagen al punto de rotación aumenta (rmax):
Tx : ˆx = xc +r ⋅cos(β) si r ≤ rmax x otro caso ⎧ ⎨ ⎪ ⎩⎪ Ty : ˆy = yc +r ⋅sin(β) si r ≤ rmax y otro caso ⎧ ⎨ ⎪ ⎩⎪ donde: dx =x −xc, dy =y −yc, r = dx2 +dy2 β = tan−1 d y dx
(
)
+α rmax −r rmax ⎛ ⎝⎜ ⎞ ⎠⎟ Original TwirlOTRAS TRANSFORMACIONES NO LINEALES
• La transformación Ripple produce una distorsión local en forma de onda en la
dirección x ó y: Tx : ˆx = x + ax ⋅sin 2 πy τx ⎛ ⎝⎜ ⎞ ⎠⎟ Ty : ˆy =y +ay ⋅sin 2 πx τy ⎛ ⎝⎜ ⎞ ⎠⎟
donde τx y τy son los periodos
de la longitud de onda, y ax y ay
son las amplitudes de los desplazamientos.
OTRAS TRANSFORMACIONES NO LINEALES
• La distorsión esférica produce el efecto parecido al de una lente en forma de
esfera, cuyos parámetros son el centro de la lente, xc=(xc,yc), el radio
máximo de distorsión, rmax, y el índice de la lente, ρ:
Tx : ˆx =x − z ⋅tan(βx) si r ≤rmax 0 otro caso ⎧ ⎨ ⎪ ⎩⎪ Ty : ˆy =y − z ⋅tan(βy) si r ≤rmax 0 otro caso ⎧ ⎨ ⎪ ⎩⎪ dx = x −xc, dy =y −yc r = dx2 +dy2, z = rmax2 −r2 βx = 1− 1ρ ⎛ ⎝⎜ ⎞ ⎠⎟ ⋅sin−1 d x dx2 +z2 ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ β = ⎛1− 1⎞ ⋅sin−1⎛ dy ⎜ ⎞⎟ donde:
INTERPOLACIÓN
• La transformación geométrica de una imagen
puede generar valores no enteros de las coordenadas mapeadas.
• Por tanto, al redondear las nuevas coordenadas se
generan píxeles que no tienen definidos sus niveles gris.
Original Rotación
INTERPOLACIÓN
• Es necesario deducir qué valores de gris debería haber en estos píxeles faltantes
a partir de píxeles conocidos. La técnica utilizada para hacer esta tarea se llama interpolación del nivel de gris.
Interpolación de imágenes
Adaptativo: el método cambia
dependiendo de lo que se esté interpolando.
No adaptativo: trata a todos los
píxeles por igual.
Implementados en programas licenciados como Qimage, PhotoZoom Pro, Genuine Fractals, etc. Vecino más cercano Bilineal Bicúbico Splines Sinc Lanczos
INTERPOLACIÓN
• Métodos de interpolación más comunes:
1.Vecino más cercano: considera el valor del píxel en la imagen original que está más cercano a la nueva localización del píxel.
2.Bilineal: considera el promedio de los 4 píxeles en la imagen original más cercanos a la nueva localización del píxel.
3.Bicúbico: considera el promedio de los 16 píxeles en la imagen original que rodean a la nueva localización del píxel.
Imagen original
Imagen transformada
INTERPOLACIÓN
Imagen escalada Vecino más cercano
INTERPOLACIÓN
Imagen rotada Vecino más cercano