Descargar

Procesamiento de imágenes (Traslación, Escala, Rotación, Inclinación)

Enviado por Pablo Turmero


Partes: 1, 2

    edu.red Las transformaciones afines son cualquiera de los cuatro tipos siguientes, o combinaciones de las mismas. Traslación Escala Rotación Inclinación +

    edu.red Transformación de traslación (desplazamiento): R(x,y):= A(x+dx, y+dy) Ejemplos. Traslación (1, 1) R1(x,y):= A(x+1,y+1) Traslación (-1, -1) R2(x,y):= A(x-1,y-1) A Si las imágenes A y R tienen el mismo tamaño, algunos píxeles caen fuera de la imagen A. ¿Qué valor toman? Más que una interpolación sería una extrapolación… Pero no tiene mucho sentido. Se puede usar mejor un valor constante predefinido. O no modificar el contenido previo.

    edu.red Aplicaciones: Seleccionar y recortar una región rectangular. Aunque, como ya hemos visto, no suele aparecer de forma explícita, sino al manejar ROI. También suele aparecer en combinación con las otras operaciones, para centrar la imagen resultante. Ejemplo. Recordar la operación de rotación de 180º: R(x, y):= A(mX-x, mY-y) (dx,dy) tX tY A R Trasladar (dx, dy) y recortar (tx, ty)

    edu.red Transformación de escala: R(x,y):= A(ex·x, ey·y) ex = escala en el eje X ey = escala en el eje Y Normalmente será igual en ambos ejes (ex=ey), aunque puede ser distinta. Pero es más intuitivo el concepto de aumento o zoom: R(x,y):= A(x/ax, y/ay) ax = aumento en el eje X = 1/ex ay = aumento en el eje Y = 1/ey Si la imagen A es de tamaño mX x mY, la imagen resultante R será de mX·ax x mY·ay

    edu.red ax, ay mayor que 1 ? Aumento o zoom de la imagen ? Aplicar interpolación bilineal o bicúbica. ax, ay menor que 1 ? Reducción (decimate) de la imagen ? Aplicar supermuestreo o suavizado previo.

    Ejemplos. Transformaciones de escala. A R1 ax= ay= 0,8 R2 ax= 2 ay= 0,5 Aumentar el doble en X y reducir a la mitad en Y Reducir al 80% El aumento sirve para hacer zoom digital, pero recordar sus limitaciones.

    edu.red Transformación de rotación: Hemos visto las rotaciones exactas (90º, 180º, 270º), pero ¿cómo realizar una rotación de un ángulo cualquiera a (en sentido horario)? X Y El punto (x, 0) en R corresponde en A a (x·cos a, -x·sen a) El punto (0, y) en R “ en A a (y·sen a, y·cos a) (x, y) en R ? (x·cos a + y·sen a, -x·sen a + y·cos a) en A a a Punto en A Punto en A Punto en R Punto en R (x,0) (0,y)

    edu.red Rotación de una imagen A en un ángulo a: R(x,y):= A(x·cos a + y·sen a, -x·sen a + y·cos a) La rotación se suele expresar matricialmente: Ojo: estas rotaciones son respecto al punto (0,0). ¿Cómo hacerlas respecto a un centro arbitrario (cx,cy)? R(x,y):= A( · ) Ejemplos. Rotar 10º Rotar -10º Lo que cae fuera de la imagen no se modifica

    edu.red Rotación de A en un ángulo a, respecto a un centro (cx,cy) Idea: es equivalente a una rotación respecto a (0,0), seguida de un desplazamiento (dx, dy) adecuado. ¿Cuánto? El centro no se debe modificar: R(cx,cy):= A(cx,cy) R(cx,cy):= A(cx·cos a+cy·sen a+dx, -cx·sen a+cy·cos a+dy) Solución: dx= cx – cx·cos a – cy·sen a ; dy= cy + cx·sen a – cy·cos a Matricialmente, la rotación a con centro (cx,cy) sería: R(x,y):= A( · )

    edu.red Ejemplos. Rotaciones respecto a un centro cualquiera. Se ha utilizado interpolación bicúbica. Recordar la importancia de la interpolación. Rotar -10º Rotar 10º Imagen de entrada Vecino más próximo Interpolación bilineal

    edu.red Transformación de inclinación (shear): La inclinación transforma una región rectangular en un rombo. Sirve para “simular” una perspectiva. Posibilidades: inclinación en X, en Y o en ambos ejes. Inclinación en X de b/a Imagen de entrada Inclinación en X de -b/a Inclinación en Y de b/a Inclinación en Y de -b/a Inclinación en X e Y El valor de inclinación es la tangente del ángulo. a b a b a b a b

    Partes: 1, 2
    Página siguiente