procesamiento digital de imágenes lcc-594daniel.valdes/docs/pdi-5-opgeo-1.pdfinterpolación de los...
TRANSCRIPT
Procesamiento Digital de Imágenes LCC-594Benemérita Universidad Autónoma de Puebla
Facultad de Ciencias de la Computación
Daniel Alejandro Valdés Amaro, Ph.D
5. Operaciones geométricas
Objetivo: Conocer los métodos de
transformaciones geométricas sobre una
imagen digital.
I. Traslación
II. Rotación
III. Escala
IV. Ampliación y reducción simples
V. Métodos de interpolación
5. Operaciones geométricas
• Al igual que en los gráficos por computadora, en el procesamiento de imágenes existen operaciones que cambian la posición y el tamaño de las imágenes.
• Es decir, las transformaciones geométricas modifican las relaciones espaciales entre pixeles ya que los valores de los pixeles se mantienen y cambia su posición espacial.
• Una transformación geométrica consiste de dos operaciones básicas:
Operaciones geométricas
1. Una transformación espacial que define la reubicación de los pixeles en el plano imagen.
2. Interpolación de los niveles de grises, los cuales tienen que ver con la asignación de los valores de intensidad de los pixeles en la imagen transformada.
• Las transformaciones afines son las más usadas en imágenes digitales 2D por su representación y manejo matricial.
• Las transformaciones afines son generalizaciones de las transformaciones Euclidianas y bajo éstas no se preservan ni el largo ni el ángulo de los objetos transformados.
Operaciones geométricas
• Las distancias sólo se preservan entre puntos en la misma línea o en líneas paralelas (colineales). La escala y el inclinación pertenece a este tipo de transformaciones.
• Hay que tomar en cuenta que en muchos casos al aplicar una operación geométrica se cambia el tamaño de las imágenes, lo cuál es importante para el desplegado y las operaciones de la interfase de deshacer y rehacer.
Operaciones geométricas
5.1 Traslación
• Esta operación consiste en desplazar un pixel original p(xi, yi) en la imagen original hasta una nueva posición, utilizando:
• A veces será necesario realizar algún tipo de interpolación ya que los desplazamiento pueden no ser enteros.
• Un detalle a considerarse en el proceso de traslación es el hecho de que la imagen se desplaza con respecto a la posición original y una zona de la imagen contenida en el lienzo rectangular deberá ser llenada con un color arbitrario.
Traslación
(1)
Traslación
(a) (b)
(a) Imagen original y (b) imagen trasladada.
5.2 Rotación
• El proceso de rotación consiste en girar la imagen en un ángulo definido. La rotación se encuentra dada por las ecuaciones:
donde x0 y y0 son las coordenadas del centro de rotación y 𝜃 es el ángulo de rotación en sentido de manecillas del reloj.
• Entre los problemas que debemos atender para aplicar esta transformación están los siguientes:
Rotación
(2)
1. Se debe definir un centro de rotación para aplicar la transformación.
Rotación
1. Se debe definir un centro de rotación para aplicar la transformación.
2. Antes de aplicar la transformación será necesario calcular el tamaño de la imagen rotada y de éste las dimensiones de la matriz donde se almacenará.
Rotación
1. Se debe definir un centro de rotación para aplicar la transformación.
2. Antes de aplicar la transformación será necesario calcular el tamaño de la imagen rotada y de éste las dimensiones de la matriz donde se almacenará.
3. Dado que los lienzos son rectangulares, se deben rellenar las esquinas de la imagen rotada con algún color arbitrario, ya que para la mayoría de los valores de 𝜃, la imagen rotada será más grande que la original (las excepciones se dan para 𝜃 = ±90º y 180º). Esto introducirá información que no esta presente en la imagen original.
Rotación
4. Como 𝜃 es arbitrario en general al transformar la coordenada (x, y) de algún pixel, dado que x y y son enteros, la transformación nos regresará un número real y nos veremos obligados a redondear, esto puede provocar que más de un pixel de la imagen original se mapee en el mismo en la imagen transformada. Esto puede provocar que algunos pixeles no se llenen y se produzcan huecos (que forman patrones de tipo mosaico) en la imagen transformada.
• El primer aspecto se puede resolver usando el “centro” de la imagen como eje de rotación, esto implica que se debe aplicar una transformación de translación, rotar y luego deshacer la traslación inicial, esta es la regla que las técnicas estándares de graficado indican.
Rotación
• Es normal que este proceso genere coordenadas negativas, motivo por el cual se debe introducir una corrección ya que los índices de las matrices no deben ser negativos en general.
• El segundo problema se puede resolver mapeando las esquinas de la imagen original, es decir transformar los puntos (0, 0), (N - 1, 0), (0, M - 1) y (N - 1, M - 1), y a partir de su mapeo encontrar las dimensiones del lienzo que contiene a la imagen rotada.
Rotación
• El tercer problema se puede resolver eligiendo un color de fondo, se llena la matriz de destino ya dimensionada y luego se mapea la imagen original punto a punto.
• Y finalmente el cuarto problema (redondeo), se incluye en el algoritmo al momento de hallar los índices del pixel transformado.
Rotación
Rotación
Imagen original e imagen rotada en 90º.
Rotación
Imagen rotada en 180º y 45º.
5.3 Escala
• Las operaciones más frecuentes corresponden a las de cambio de tamaño o escala, a estas muchas veces se les llama operaciones de zoom por su analogía con el efecto que hace una lente en una cámara analógica o digital.
• Se pueden distinguir dos clases de métodos: aquellos que reducen el tamaño y los que lo incrementan. A los primeros se les llama de reducción y a los segundos de ampliación.
• En el primer caso es claro que se producirá una pérdida de información en la imagen resultante debido a que el tamaño de la misma es menor y en el segundo caso se tendrán que proponer algoritmos que propongan como estimar el tono o color de los pixeles nuevos que se crean al ampliar la imagen.
Escala
• En este caso se debe estar consciente de que se “inventar” información que no esta presente en la imagen original, lo cual puede producir artefactos en la imagen ampliada.
• Diremos que un artefacto es un elemento que es producido por un algoritmo de transformación que no está presente en la imagen original, pero aparece en la imagen producto de la transformación.
• En general los artefactos no son deseables pues introducen elementos indeseables que se pueden considerar como ajenos a los datos originales.
Escala
• Las transformaciones más simples de cambio de tamaño corresponden a la ampliación por 2 en ambas dimensiones y la reducción a la mitad de ellas.
• De forma general tenemos que esta operación es similar a un cambio de escala, la cuál se puede generalizar con las ecuaciones:
Escala
(3)
5.3.1 Ampliación y reducción simples
• Las transformaciones más simples de cambio de tamaño corresponden a la ampliación por 2 en ambas dimensiones y la reducción a la mitad de ellas.
• En el caso de a ampliación simple, el algoritmo consiste en la duplicación de cada pixel en la imagen resultante, es decir ya que el alto y ancho de la imagen final corresponden al doble del valor de las propiedades correspondientes originales lo mas simple es reproducir el pixel original en los vecinos mapeados.
• Si nos enfocamos en el pixel que se encuentra en la coordenada corriente (x, y), entonces en la imagen ampliada le corresponderán cuatro pixeles en la coordenada (2x, 2y) en la imagen ampliada, en la figura siguiente se muestra el fenómeno.
Ampliación y reducción simples
Ampliación y reducción simples
Pixeles correspondientes al mapeo de duplicación de un pixel dado.
• Para el caso de la reducción simple, hay que considerar que la imagen resultante tendrá la mitad de ancho y alto respecto a la original, por lo que el método consiste la inserción de los pixeles pares de la imagen original (0, 2, 4, 6,…) en la imagen resultante y en la eliminación sistemática de pixeles intercalados (1, 3, 5, 7,… ) de la imagen original.
• El proceso se debe hacer en las dos dimensiones de la imagen original, por tanto en este caso se perderá información al realizarse la reducción.
Ampliación y reducción simples
• Es claro que al realizar este proceso se pierde el 75% de la información que contiene la imagen original y en caso que no se guarde una copia de ella el proceso inverso no recuperará dicha información.
• En la figura siguiente se hace muestra el efecto de éstos dos procesos.
Ampliación y reducción simples
Ampliación y reducción simples
(a) (b) (c)
(a)Imagen ampliada al doble, (b) Imagen original y (c) imagen reducida a la mitad.
5.3.2 Métodos de interpolación
• En general se denomina interpolación a la obtención de nuevos puntos partiendo del conocimiento de un conjunto discreto de puntos.
• De este modo, el problema trata de que a partir de n parejas de puntos (xk, yk), se pueda obtener una función f que verifique:
a la que se denomina función interpolante de dichos puntos con k = 1,…,n. A los puntos xk se les llama nodos.
Métodos de interpolación
(4)
• A l g u n a s f o r m a s d e interpolación que se utilizan con frecuencia son la interpolación lineal, la interpolación polinómica (de la cual la anterior es un caso par ticular), la interpolación por medio d e s p l i n e o l a interpolación polinómica de Hermite.
Métodos de interpolación
Interpolación lineal: la línea azul representa la interpolación lineal entre los puntos rojos.
• Por ejemplo, en la interpolación lineal se utilizan dos puntos, (xa, ya) y (xb, yb), para obtener un tercer punto interpolado (x, y) a partir de la siguiente fórmula:
• La interpolación lineal es rápida y sencilla, pero no muy precisa.
• En el campo de la fotografía y de las imágenes digitales, la interpolación aplica este mismo método para conseguir un tamaño mayor de la imagen inicial, rellenando la información que falta con datos que no existen en la imagen original a partir de un algoritmo.
Métodos de interpolación
(5)
• Así, la interpolación consiste en el proceso para estimar los valores de intensidad de los pixeles de una imagen en una posición cualquiera, como una función de los pixeles que lo rodean.
Métodos de interpolación
Proceso de interpolación para la ampliación de imágenes.
• Los algoritmos de interpolación se pueden agrupar en dos categorías.
• Algoritmos no adaptativos: estos métodos tratan a todos los pixeles por igual. Dependiendo de su complejidad, estos usan cualquier número, desde 0 a 256 (o más) de los pixeles adyacentes para la interpolación. Mientras más pixeles adyacentes se incluyan, la interpolación será más precisa, a expensas del tiempo de procesamiento. Estos algoritmos se pueden usar tanto para distorsionar como cambiar el tamaño de una foto. Aquí se incluyen los métodos del vecino más cercano, bilineal, bicúbica, esplines, sinc, lanczos y otros.
Métodos de interpolación
• Algoritmos adaptativos: cambian dependiendo de lo que están interpolando, es decir, intentan encontrar un balance entre los bordes nítidos y las textura suaves. En muchos casos se aplica una versión diferente del algoritmo (que trabajan pixel por pixel) cuando detectan la presencia de un borde, con el objetivo de minimizar los artefactos de interpolación antiestéticos en las regiones donde son más evidentes. Estos algoritmos están diseñados principalmente para maximizar detalles libres de artefactos en fotografías ampliadas, por lo que algunos no pueden ser utilizados para distorsionar o girar una imagen. En esta categoría se incluyen muchos algoritmos en software con licencia, tales como: Qimage, Pro PhotoZoom, Genuine Fractals y otros.
Métodos de interpolación
• Se verán tres métodos no apdaptativos para realizar la interpolación y los tres funcionan de forma similar.
• En cada caso para determinar el valor de un pixel interpolado primero se encuentra el punto en la imagen original que corresponde a la imagen interpolada.
• Luego, se asigna el valor del pixel interpolado calculando el promedio ponderado de el conjunto de pixeles hallados en la vecindad de dicho punto.
• Los tres métodos difieren en general el conjunto de pixeles que se consideran.
Métodos de interpolación
• Uno de los algoritmos más simples de interpolación es interpolación de vecino más cercano. En este método, la parte fraccionaria de las coordenadas del pixel se descartan y el valor de brillo de los pixeles en la dirección resultante en la imagen de origen se copia en la imagen ampliada.
• Debido a la inexactitud de la correspondencia espacial entre las dos imágenes, se harán más copias de ciertos pixeles de la imagen original que a otros.
• Esto puede resultar en distorsión espacial de las características de la imagen con zoom y la interpolación resultante del vecino más próximo es por lo tanto poco confiable.
Interpolación del vecino más cercano
• Para factores de zoom pares (como 2X y 4X), la interpolación del vecino más cercano produce los mismos resultados que el método de ampliación y reducción simples antes visto.
• En este caso, se supone que el pixel a ser interpolado toma el mismo valor que el más cercano de entre los cuatro que lo rodean; por eso el nombre de vecino más próximo.
Interpolación del vecino más cercano
• En matemáticas, la interpolación bilineal es una extensión de la interpolación lineal para interpolar funciones de dos variables (por ejemplo, x y y) en un plano de 2D regular.
• La función de interpolación no debe usar el término de x2 o y2, pero si el xy, que es la forma bilineal de x y y.
• La idea clave es realizar la interpolación lineal primero en una dirección y luego en la otra. Aunque cada paso es lineal en los valores de las muestras y en la posición, la interpolación en su conjunto no es lineal sino cuadrática en la ubicación de la muestra.
Interpolación bilineal
• Supongamos que se desea encontrar el valor d e l a f u n c i ó n f , desconocida en el punto P = (x, y) (ver figura).
• S e s upone que s e conoce el valor de f en los cuatro puntos Q11 = (x, y1), Q12 = (x1, y2), Q21 = (x2, y1) y Q22 = (x2, y2).
Interpolación bilineal
Los cuatro puntos rojos muestran los puntos de los datos y el punto verde es el punto a interpolar.
• En el contexto de imágenes digitales, la interpolación bilineal utiliza los 4 valores de los pixeles más próximos que están situados en direcciones diagonales de un pixel dado con el fin de encontrar los valores de los colores apropiados de intensidad de dicho pixel.
• Es decir, considera la vecindad más cercana de 2×2 valores de pixeles circundantes en cada posición calculada del pixel desconocido.
• Luego toma un promedio ponderado de los 4 pixeles para obtener el valor final interpolado.
Interpolación bilineal
• El peso de cada uno de los 4 valores de pixeles se basa en la distancia calculada de cada pixel (en el espacio 2D) de cada uno de los puntos conocidos.
Interpolación bilineal
• De forma geométrica (figura siguiente-(a)), el valor en el punto negro es la suma del valor en cada punto de color multiplicado por el área del rectángulo del mismo color, dividida por el área total de todos los cuatro rectángulos.
Interpolación bilineal
Interpolación bilineal
(a) (b)(a) Representación geométrica de la interpolación bilineal y (b) ejemplo numérico del cálculo de un pixel utilizando
interpolación bilineal.
• Teniendo en cuenta lo anterior, como se ve en el ejemplo de la figura anterior-(b), el valor de intensidad en el pixel calculado para estar en la fila 20.2, columna 14.5 se puede calcular primero interpolando linealmente entre los valores en la columna 14 y 15 en cada una de las filas 20 y 21, dando:
y después se interpola linealmente entre estos valores, dando como resultado:
Interpolación bilineal
• Este algoritmo reduce parte de la distorsión visual causada por el cambio de tamaño de una imagen en un factor de zoom no entero, a diferencia de la interpolación del vecino más cercano, lo que hará aparecer algunos pixeles más grandes que otros en la imagen redimensionada.
• La interpolación bilineal tiende sin embargo a producir un mayor número de artefactos de interpolación (como aliasing, efectos de difuminado y halos de borde) que técnicas computacionalmente más exigentes, tales como la de interpolación bicúbica.
Interpolación bilineal
• En matemáticas, la interpolación bicúbica es una extensión de la interpolación cúbica para la interpolación de puntos de datos en base a una malla regular dimensional.
• La interpolación bicúbica se puede lograr ya sea utilizando polinomios de Lagrange, esplines cúbicos, o con el algoritmo de convolución cúbica.
• En el procesamiento de imágenes, la interpolación bicúbica se prefiere generalmente en lugar de la interpolación bilineal o la del vecino más cercano para el remuestreo de imagen, cuando la velocidad no es un problema.
Interpolación bicúbica
• En contraste con la interpolación bilineal, que sólo toma en cuenta 4 pixeles (2×2), la interpolación bicúbica considera 16 pixeles (4×4).
• Así, el método de la Interpolación bicúbica implica ajustar una serie de polinomios cúbicos a los valores de brillo contenidos en una matriz de pixeles de 4×4 que rodean la dirección calculada.
• En primer lugar, cuatro polinomios cúbicos, f(i) (con i = 0, 1, 2, 3) están instalados en los puntos de control en la dirección y (la elección de la dirección de partida es arbitraria).
Interpolación bicúbica
• A continuación, la parte fraccionaria de la dirección del pixel calculada en la dirección del eje y se usa para encajar con otro polinomio de tercer grado en la dirección x, en base a los valores de brillo interpolados que se encuentran en las curvas.
• Sustituyendo la parte fraccionaria de la dirección del pixel calculada en la dirección x en el polinomio cúbico resultante proporciona entonces el valor de brillo del pixel interpolado.
• Lo anterior se resumen en la figura siguiente.
Interpolación bicúbica
Interpolación bicúbica
Representación gráfica del proceso de la interpolación bicúbica.
• La elección del polinomio utilizado en el algoritmo de interpolación bicúbica puede tener un impacto significativo en la precisión y la calidad visual de la imagen interpolada.
• Los esplines son funciones polinómicas a trozos que se suelen utilizar en los algoritmos de interpolación bicúbica.
• Un requisito importante de los esplines utilizados para la interpolación bicúbica es que siempre se deben interpolar los valores de brillo de los pixeles contenidos en la rejilla de control de 4×4.
Interpolación bicúbica
• Debido a que muchas de las funciones de esplines tienen parámetros de control que están sujetos a la elección del programador, la posibilidad de poder reproducir los resultados, se convierte en un problema cuando se desean comparan los resultados de los algoritmos de interpolación bicúbica entre imágenes.
• Dado que las imágenes remuestreadas usando la interpolación bicúbica son más suaves y tienen menos artefactos de interpolación, es el método usada por programas como Adobe Photoshop o Paint Shop Pro, y es el método de interpolación considerado estándar (promedia 16 pixeles adyacentes).
Interpolación bicúbica
• Photoshop además usa algunas variaciones como interpolación bicúbica enfocada o interpolación bicúbica suavizada que se basa en aplicar algunos cambios a la imagen final.
Interpolación bicúbica
Ejemplos interpolación
Ejemplos interpolación
Vecino más cercano
Ejemplos interpolación
Bilineal
Ejemplos interpolación
Bicúbica
• En la reducción, es evidente que se pierde información original de la imagen, generalmente sin efectos de pixelado.
• Sin embargo, en caso de existir cambios bruscos en la tonalidad de los pixeles, se pueden presentar efectos indeseables.
• En el caso de la reducción simple, la imagen resultante va a contener los pixeles en las renglones/columnas pares (o impares) de la imagen original.
Reducción de pixeles
• Pero para disminuir la posibilidad de artefactos, al igual que en la ampliación, un valor de pixel se puede obtener a partir de la aplicación de algún método, ya sea de interpolación o de otro tipo.
• Por ejemplo, un valor de pixel se puede obtener a partir del promedio de los pixeles vecinos (figura siguiente):
Reducción de pixeles
(6)
Reducción de pixeles
Reducción de pixeles por medio del promedio de los pixeles vecinos.