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.
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)
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
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.
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)
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
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( · )
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
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
Página siguiente |