Procesamiento de imágenes (Traslación, Escala, Rotación, Inclinación) (página 2)
Enviado por Pablo Turmero
De manera similar… inclinación en Y en cantidad iy: R(x, y):= A(x, y – iy·x) Inclinación X en ix, Y en iy: R(x, y):= A(x – ix·y, y – iy·x) Matricialmente: R(x,y):= A( · ) Ejemplos. Inclinación ix=-0,4; iy=0 Inclinación ix=0; iy=0,2
Parte de la imagen se sale. Solución: igual que antes, aplicar un desplazamiento para centrar el resultado. ¿De cuánto? O bien, ampliar el tamaño de la imagen resultado para que quepa toda la imagen. ¿Cuánto? ? En X: abs(ix)·mY; en Y: abs(iy)·mX Ejemplos. Inclinación iy=0,2 Inclinación ix=0,1;iy=0,3 Inclinación ix=-0,4
¿Qué tienen en común todas las transformaciones afines? Todas ellas se pueden expresar de forma matricial: R(x,y):= A( · ) Traslación Escala Rotación Inclinación Es más, cualquier combinación de transformaciones afines es una transformación afín, y se puede expresar de forma matricial. +
Podemos definir una transformación afín genérica: R(x,y):= A( · ) La matriz ((c11,c12,c13),(c21,c22,c23)) son los parámetros de la transformación. Puede implicar escalas, traslaciones, rotaciones, etc. ¿Cómo calcular la tr. afín equivalente a dos tr. afines? Usar el producto matricial, añadiendo una fila con (0, 0, 1). x = +
Ejemplo. Sobre una imagen aplicamos 1º) traslación (a, b), 2º) escala (c, d), 3º) rotación e, y 4º) traslación (f, g). Podemos calcular la matriz de transformación equivalente: x x x = En lugar de aplicar 4 transformaciones sobre toda la imagen, basta con aplicar la transformación equivalente.
Uso. Una transformación afín permite “mapear” una región rectangular cualquiera en un rombo cualquiera. O, en general, cualquier rombo en otro rombo (se supone que un rectángulo es también un rombo). ¿Cómo calcular los parámetros de esta transformación? Problema: dado un rombo en la imagen original y otro rombo en la imagen de destino, calcular la transformación afín que realiza ese mapeo. Transformación afín genérica +
Nota: un rombo queda completamente definido por 3 puntos. 6 incógnitas (cij) ? Necesitamos 6 ecuaciones para resolverlas. ¿Cuáles? Cada punto producedos ecuaciones: X Y Coordenadas en A (x1a, y1a) (x2a, y2a) (x3a, y3a) X Y Coordenadas en R (x1r, y1r) (x2r, y2r) (x3r, y3r) Transformación afín genérica ((c11,c12,c13), (c21,c22,c23)) · = +
Ecuaciones a resolver: c11x1a + c12y1a + c13 = x1r c21x1a + c22y1a + c23 = y1r c11x2a + c12y2a + c13 = x2r c21x2a + c22y2a + c23 = y2r c11x3a + c12y3a + c13 = x2r c21x3a + c22y3a + c23 = y3r
6 ecuaciones y 6 incógnitas ? Se resuelven las incógnitas (método de Cramer) y despachados. Existirá solución si los 3 puntos de A no están en la misma recta, y los 3 de R tampoco. Una vez resueltas las incógnitas, aplicamos la transformación afín buscada: R(x,y):= A( · )
Ejemplo 1. La aplicación más inmediata y típica de las transformaciones afines es extraer y redimensionar un área de interés, dándole una forma predefinida de antemano. Esto es lo que se llama normalización. Por ejemplo, detectar una cara humana, seleccionar los ojos y la boca y mapearlos a un rectángulo predefinido. Imagen de entrada Cara detectada Cara normalizada Transf. afín
Este proceso de normalización se puede aplicar sobre vídeo, para conseguir una estabilización de los objetos de interés.
Ejemplo 2. La normalización es fundamental en muchas aplicaciones de reconocimiento de objetos, como los OCR (Optical Character Recognition). Se aplica: umbralización, segmentación, normalización y comparación. Imagen de entrada Umbralizar Rectificar: detectar orientación y rotar Sería conveniente una técnica adaptativa
Segmentar los caracteres Normalizar cada carácter a un tamaño estándar Texto rectificado Aquí se usan integrales proyectivas Detectar y separar las líneas Comparar con un conjunto de patrones (p.ej. diferencia) Tomar el máximo ¡¡Es una “a”!! a e i
Página anterior | Volver al principio del trabajo | Página siguiente |