Monografias.com > Computación
Descargar Imprimir Comentar Ver trabajos relacionados

Interpolación y transformaciones básicas de imágenes




Enviado por Pablo Turmero



Partes: 1, 2


    Monografias.com
    R(x,y):= A(f1(x,y), f2(x,y))

    Transformación geométrica: el valor de un píxel depende de otro píxel (o varios) cuya posición es calculada a través de un par de funciones f1 y f2.
    El tamaño de la imagen de salida puede ser distinto del tamaño de la imagen de entrada.
    Transf. global
    Transf. local
    Entrada
    Salida
    Tr. geométrica
    +

    Monografias.com
    Ejemplo. Desplazamiento y recorte (trim): dada una imagen A, seleccionar un trozo rectangular, desde el punto (x0, y0) con tamaño (tX, tY).
    R: imagen de (0..tX-1, 0..tY-1)
    R(x,y):= A(x+x0, y+y0), ?(x,y)?R
    ¿Qué pasa si A(x+x0, y+y0)está fuera de rango?
    Asignar alguna constante a R.
    No modificar lo que hubieraantes en R.
    (x0,y0)
    tX
    tY
    A
    R
    Normalmente esta transformación no aparece de forma explícita, sino implícitamente, al trabajar con ROI

    Monografias.com
    Reflejos y rotaciones exactas (s. horario)
    Sea A la imagen de entrada, de (0..mX, 0..mY)
    La esquina superior izquierda es (0, 0)
    Espejo horizontal: R(x,y):= A(mX-x, y)
    R: (0..mX, 0..mY)
    Espejo vertical: R(x,y):= A(x, mY-y)
    R: (0..mX, 0..mY)
    Rotar 90º: R(x,y):= A(y, mY-x)
    R: (0..mY, 0..mX)
    Rotar 180º: R(x,y):= A(mX-x, mY-y)
    R: (0..mX, 0..mY)
    Rotar 270º: R(x,y):= A(mx-y, x)
    R: (0..mY, 0..mX)
    0
    1
    0
    1
    2
    A

    Monografias.com
    En general la transformación tendrá la forma:
    R(x, y):= A(f1(x,y), f2(x,y))
    Siendo f1 y f2 dos funciones cualesquiera del tipo:
    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)
    Ejemplo. En la rotación de 180ºf1(x,y):= mX-x f2(x,y):= mY-y
    0
    1
    0
    1
    2
    0
    1
    0
    1
    2
    A
    R
    +

    Monografias.com
    … ? R ¿Qué ocurre si el resultado es un número no entero?
    Por ejemplo, se puede conseguir un aumento de 2x con una transformación del tipo:
    R(x,y):= A(x/2, y/2), con R: (0..2mX+1, 0..2mY+1)
    A
    0
    1
    0
    1
    2
    0
    1
    0
    1
    2
    3
    4
    5
    2
    3
    R
    R(0, 0):= A(0/2, 0/2) = A(0, 0) OK
    R(1, 0):= A(1/2, 0/2) = A(0.5, 0)
    R(1, 1):= A(1/2, 1/2) = A(0.5, 0.5)
    Índices no definidos en el array. ¿Qué hacer ahí?

    Monografias.com
    Problema: las imágenes son señales discretas, pero la transformación geométrica las trata como si fueran continuas (definidas en todo el plano).
    0
    1
    0
    1
    2
    X
    Y
    ¿Cuánto vale la imagen ahí?
    Solución: aplicar una interpolación.
    Tipos de interpolación: vecino más próximo, bilineal, bicúbica, supermuestreo.
    A
    +

    Monografias.com
    Interpolación: Vecino más próximoCualquier punto del espacio toma el valor del píxel más cercano.
    0
    1
    0
    1
    2
    X
    Y
    Implementación:
    f1(x,y) ? ?f1(x,y) + 0,5?
    f2(x,y) ? ?f2(x,y) + 0,5?
    R(x,y)= A(?f1(x,y) + 0,5?, ?f2(x,y) + 0,5?)
    A

    Monografias.com
    Ejemplo. Zoom de 10x con vecino más próximo.R(x,y):= A(?x/10? , ?y/10?)
    Ventajas:
    Es muy sencilla y rápida de calcular.
    Inconvenientes:
    El efecto de cuadriculado es evidente, y da lugar imágenes de poca calidad.
    Imagen original 25×26
    Imagen ampliada 250×260

    Monografias.com
    Interpolación bilineal
    En una dimensión, una interpolación lineal significa trazar una línea recta entre cada par de puntos consecutivos.
    Cálculo de la interpolación lineal. Sea p el punto que queremos interpolar.
    Sup. que p se encuentra entre i y d, es decir: i= ?p?, d= i+1
    El valor interpolado en p será: A’(p):= (1-a)A(i) + aA(d)
    siendo a= p-i
    A(x)
    0
    1
    2
    X
    Valores interpolados
    p
    Media ponderada, de los valores de i y d según la distancia a
    a
    1-a

    Monografias.com
    En dos dimensiones, la interpolación bilineal consiste en aplicar dos interpolaciones lineales:
    1. Interpolar la función horizontalmente, en las filas existentes.
    2. Interpolar la función verticalmente en todo el espacio (usando la anterior).
    1º interpolar horizontalmt.
    2º interpolar verticalmt.
    0
    1
    0
    1
    2
    X
    Y
    A(x,y)
    ¿Cómo calcular el valor interpolado de un punto (px, py), A’(px,py)?

    Partes: 1, 2

    Página siguiente 

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter