sábado, 17 de noviembre de 2012


ELEMENTOS DE UN SISTEMA DE PROCESAMIENTO DE IMÁGENES
Modelo de Imagen Simple
Consideremos una situación simple en la que la orientación de una superficie no juega ningún papel, por ejemplo un grupo de círculos en el que dentro de cada uno se refleja la luz de la misma forma (ver figura 4.1). Este tipo de escena recibe el nombre de Mondrian en honor del pintor holandés Cornelis Mondrain que a comienzos del siglo veinte pintaba cuadros con estas características.
Figura 4.1: Un Mondrian formado por regiones de color constante
En una situación de este tipo, la radiancia de la escena, que se nota l(x,y), se caracteriza por dos componentes: (1) la cantidad de luz que incide en la escena que se está observando y (2) la cantidad de luz que reflejan los objetos en la escena. Estos conceptos reciben el nombre de irradición y reflectancia y se notan e(x,y) y r(x,y) respectivamente. Su producto define l(x,y), es decir
donde
Las ecuaciones anteriores indican que la reflectancia está acotada por 0 (absorción total) y 1 (reflectancia total). La naturaleza de c(x,y) se determina por la fuente de luz y r(x,y) lo determina la característica del objeto.
Algunos ejemplos típicos son los siguientes. En un día claro la iluminación puede ser de 9000 candelas en la superficie de la Tierra y menor que 1000 en un día nublado. La luna puede producir 0.01 candelas de iluminación. En cuanto a la reflactancia 0.01 es el
número correspondiente a terciopelo negro, 0.65 le corresponde a acero inoxidable, 0.80 para las paredes blancas, 0.93 para la nieve, etc.
Es obvio que una pregunta a la que necesitamos dar respuesta es qué relación existe entre la radiancia en un punto de un objeto (radiación de la escena) L y la irradiancia en el correspondiente punto de la imagen captada (irradiación de la imagen) E. Si d es el diámetro de la lente y f es la distancia al plano de la imagen, puede probarse que (ver figura 1.2)
Donde
Es el ángulo del rayo desde el objeto hasta el centro de la lente.A lo largo de este capítulo usaremos f para notar el nivel de gris observado.
Figura 4.2: De escena 3-D a la imagen 2-D
 Formación de la Imagen
Supongamos que un objeto tridimensional o escena es convertido en una imagen 2-D mediante un sistema de grabación como una cámara (ver figura 1.3). Los sistemas de grabación no son perfectos e introducen distorsiones estadísticas y determinísticas.
Figura 4.3: Captación de Imagen
Notaremos por ƒ(i,j) y g(i,j) la imagen original sin distorsiones y la imagen observada, ruidosa y emborronada, respectivamente. Un modelo general de formación de imágenes consta de las partes siguientes
Función de Emborronamiento o psf
Transformación
Proceso de Ruido
Donde S{.} representa una función no lineal, d(i,j,m,n) es la respuesta del sistema de emborronamiento a un impulso bidimensional en la posición (i,j),
denota el proceso de ruido, y
representa una operación punto a punto.
Algunas Relaciones Básicas Entre Píxeles
En esta sección vamos a considerar varias relaciones simples aunque importantes entre los píxeles de una imagen digital. Como mencionamos antes, una imagen se nota mediante ƒ(x,y). Para píxeles particulares usaremos letras minúsculas como p y q. Un subconjunto de píxeles de ƒ(x,y) se nota S.
 Transformaciones de Imágenes
En este tema analizaremos algunas transformadas discretas de señales e imágenes, así como algunas de sus aplicaciones. La teoría de las transformaciones ha jugado, y juega, un papel fundamental en el procesamiento de imágenes por su descripción alternativa de una imagen y por ser una herramienta para realizar operaciones como la resolución de ecuaciones lineales. Ambos conceptos serán tratados en este tema. Es muy importante tener en cuenta la enorme aplicación de las transformaciones de imágenes en campos como la restauración, codificación, mejora, segmentación, etc.
Aunque el material de este tema trata fundamentalmente del desarrollo de transformaciones bidimensionales y sus aplicaciones, algunos conceptos serán introducidos a partir de funciones unidimensionales.
 Transformada de Fourier. Caso Continuo.
Series de Fourier
Consideremos una función ƒ(t) definida sobre la recta real y consideremos ahora, de nuevo, la función
esta función tiene como transformada de Fourier
que recibe el nombre de serie de Fourier. Observemos además que la función Fs(u) es periódica de período 2.
 Ejemplo de la transformada de Fourier
Una vez estudiada la transformada de Fourier veamos algunos ejemplos de espectros de funciones así como alguna de sus propiedades. La figura 4.4 muestra lo que le ocurre a la transformada de Fourier cuando la imagen es rotada.
Figura 4.4: De izquierda a derecha y de arriba a abajo. Imagen y su espectro de potencias, la misma imagen rotada y su espectro de potencias.
Ejemplo de una aplicación en procesamiento de imágenes
/* suponemos que existen los include correspondientes
donde están definidas, entre otras cosas, las funciones que usamos */
#define MAXSIZE 256
float g[MAXSIZE*MAXSIZE],
prior [MAXSIZE*MAXSIZE],
blur[MAXSIZE*MAXSIZE];
float complexblur[MAXSIZE*MAXSIZE*2],
complexg[MAXSIZE*MAXSIZE*2];
main(argc,argv)
int argc;
char **argv;
{
/* Habremos declarado las variables que necesitemos */
/* En g tenemos la imagen observada y en blur el emborronamiento */
/* suponemos que g y blur tienen el mismo tama\~no */
/* las dimensiones son nr2 (filas) y nc2 (columnas) ambos
potencias de 2 */
/* por tanto */
dim[0]=nr2;
dim[1] =nc2;
size = nc2*nr2;
real2complex(blur,complexblur,size);
real2complex(g,complexg,size);
fourn(complexblur-1,dim-1,2,-1);
fourn(complexg-1,dim-1,2,-1);
cal_coefprior (prior, nc2, nr2);
complex_rest(complexg,complexim,complexblur,prior,lambda,nc2,nr2);
fourn(complexim-1,dim-1,2,1);
complex2real(complexim, g, size);
mult_image(g, g, 1.0/size, size);
}
void complex_rest(complexim,complexrest,complexblur,prior,lambda,nc2,nr2)
float *complexim, *complexrest, *complexblur, *prior, lambda;
int nc2,nr2;
/* Calculates in the frequence domain
* blur^{t}(complexim)/(lambda*prior + blur^{t}blur)
* We assume that blur is complex, so it comes in complex format,
*/
{
int i, size = nr2*nc2;
float *p1,*p2, *p3, *p4, aux, re1, re2, im1, im2, re, im;
for(i=0,p1=complexim,p2=complexrest,p3=complexblur,p4=prior;
i<size; i++,p1+=2,p3+=2,p4++){
re1 = *p1;
re2 = *p3;
im1 = *(p1+1);
im2 = *(p3+1);
re = re1 * re2 + im1 * im2 ;
im = - re1*im2 + re2*im1 ;
aux = 1.0/((re2*re2 + im2*im2) + lambda*(*p4));
*p2++= aux * re;
*p2++= aux * im;
}
}
void cal_coefprior(prior, nc2, nr2)
float *prior ;
int nc2,nr2;
/* Calculates the fourier transform of the prior model.
*/
{
float *p1;
int i,j, size=nr2*nc2;
double pi2;
float coc1, coc2;
pi2 = 8 * atan(1.0);
coc1 = pi2 / nr2;
coc2 = pi2 / nc2;
for(i = 0, p1 = prior; i < nr2; i++)
for(j=0;j<nc2;j++)
*p1++= 1.0-0.5*(cos(i*coc1)+cos(j*coc2));
}
void real2complex (realmatrix, complexmatrix, size)
float *realmatrix, *complexmatrix;
int size;
/* convert the real image realmatrix to complex format.
* the assumed size of realimage is size, so complexmatrix
* should be size*2.
*/
{
int i;
float *p1, *p2;
for (i = 0, p1 = realmatrix, p2 = complexmatrix; i < size; i++){
*p2++ = *p1++;
*p2++ = 0.0;
}
}
void complex2real (complexmatrix, realmatrix, size)
float *complexmatrix, *realmatrix;
int size;
/* copies the real part of the complex matrix complexmatrix to
* realimage, size is the size of realimage.
* complexmatrix is stored in the format, real part, i part, .....
* See the book "recipes in C" for details.
*/
{
int i;
float *p1, *p2;
for (i = 0, p1 = realmatrix, p2 = complexmatrix; i < size; i++){
*p1++ = *p2++;
p2++;
}
}
void mult_image (destination, source, factor, size)
float *destination, *source, factor;
int size;
/* Multiplies source by factor and
* copies the result in destination.
* the assumed size of both images is
* size.
*/
{
int i;
float *p1, *p2;
for (i=0,p1=destination,p2=source; i<size; i++)
*p1++ = *p2++ * factor;
}
 Restauración de Imágenes
En el campo del análisis de imágenes, éstas son procesadas para mostrar o extraer información útil para el problema que estemos resolviendo. Como ya sabemos, debido a las imperfecciones en su proceso de captación las imágenes observadas son versiones degradadas de la imagen original. Esta degradación, que fue examinada anteriormente, es debida por una parte al emborronamiento y por otra al proceso de ruido.
El campo de la restauración de imágenes se dedica a la estimación de la imagen original, la imagen sin corrupción que ha dado lugar a la imagen degradada. Básicamente este proceso es el inverso del sistema de formación de la imagen. En este tema veremos los modelos más simples de restauración de imágenes y el uso de la transformada de Fourier para estimar la imagen original.
 Restauración sin condiciones, Filtrado Inverso.
Como dijimos al principio del tema el objetivo de la restauración de imágenes es estimar la imagen original f, dada una imagen degradada g y algún conocimiento sobre la matriz de emborronamiento D y el ruido
Supuesto el modelo
El objetivo, es buscar un estimador de la imagen original que haga mínima una determinada función. La primera idea en que puede pensarse es definir el estimador de la imagen original,
Si la matriz inversa de D existe, tendremos que
 Restauración con restricciones
Cuando la inversa no existe o bien debido al proceso de ruído la estimación es inestable y no realista, la solución del sistema anterior requiere que introduzcamos restricciones en la solución que buscamos, estas restricciones suelen tener la forma de cotas superiores sobre las derivadas primera o segunda.
 Mejora de Imágenes
El principal objetivo de las técnicas de mejora de imágenes es procesar una imagen dada de forma que la imagen resultante sea más apropiada que la imagen original para unas aplicaciones específicas. Es importante destacar el término ``específico'' ya que establece que las técnicas que veremos en este tema estarán muy orientadas a aplicaciones concretas. Así por ejemplo, un método que es muy útil para mejorar imágenes de rayos X puede no ser la mejor aproximación para mejorar las imágenes de Marte transmitidas por un transbordador.
Mejora Mediante Procesamiento Puntual
Podría decirse que este tipo de transformaciones son operaciones de memoria cero, en el sentido de no tener en cuenta información local. Un nivel de gris
Ampliación de Contraste
Las imágenes con poco contraste aparecen a menudo debido a iluminación pobre o no uniforme o a la no linealidad o pequeño rango dinámico de los sensores de las imágenes.
 Diferencia y Promedio de Imágenes
La diferencia entre dos imágenes ƒ(x,y) y g(x,y) viene expresada por
Esta técnica tiene numerosas aplicaciones en segmentación y realce.
Supongamos que el valor del ruido
en cada pixel es una variable aleatoria con media cero y desviación típica
Es decir, tenemos el modelo
para todo i,j. El resultado de realizar el promedio sobre n imágenes distintas de la misma escena sería
Lo que ocurre es que ahora la desviación típica del ruido es
Por tanto si tenemos n imágenes de la misma escena, podemos obtener una nueva versión de la imagen original con menos ruido mediante la fórmula del estimador de la desviación estándar para la mejora de imágenes.
 Filtros de Alisamiento
Los filtros de alisamiento se usan con el objetivo de emborronar o para reducir el ruido. El emborronamiento es usado como preprocesamiento para suprimir detalles pequeños antes de la extracción de objetos usualmente grandes, también puede usarse para unir segmentos.
 Filtros de Realce
El objetivo principal del realce es destacar los detalles finos de una imagen o mejorar detalles que han sido emborronados, bien por errores o por problemas en la adquisición de la imagen.
 Mejora en el Dominio de las Frecuencias
El fundamento de las técnicas basadas en el dominio de las frecuencias es el teorema de convolución. Este teorema dice que si g(x,y) es la imagen formada por la convolución de la imagen ƒ(x,y) y un operador lineal invariante h(x,y), es decir,
entonces por el teorema de convolución, se verifica la siguiente relación en el dominio de las frecuencias
donde G,H y F son las transformadas de Fourier de g,h y f respectivamente.
Muchos problemas de mejora de imágenes pueden ser formulados como sigue, dado ƒ(x,y), una vez calculado F(u,v) el objetivo es seleccionar H(u,v) de forma que la imagen deseada
muestra algunos rasgos de interés de ƒ(x,y). Por ejemplo, bordes en la imagen ƒ(x,y) pueden ser acentuados usando una función que enfatice las frecuencias altas de F(u,v).
h(x,y) caracteriza un sistema cuyo objetivo es producir una imagen de salida g(x,y) a partir de una imagen de entrada ƒ(x,y). El sistema realiza la convolución de h(x,y) con la imagen de entrada y produce el resultado. El teorema de convolución permite dar una nueva interpretación al proceso, en el sentido de que se puede alcanzar el mismo resultado si multiplicamos F(u,v) por H(u,v) para producir G(u,v). Calculando la transformada de Fourier inversa de la salida, produce la imagen deseada.
Supongamos por un momento que h(x,y) es desconocido y que aplicamos una función de impulso unitario (es decir, un punto de luz) al sistema. La transformada de Fourier del impulso unidad es simplemente uno, y por tanto tenemos
por tanto la transformada inversa de G(u,v) es h(x,y). Este resultado es bien conocido en la teoría de los sistemas lineales: un sistema lineal invariante por traslaciones se especifica completamente por su respuesta a un impulso.
Es importante notar que la mejora de imágenes no coincide con el problema de la restauración de las mismas, aunque su formulación podría resultar muy similar.
Tal y como acabamos de discutir, la mejora en el dominio de las frecuencias es, en principio, directa. Simplemente calculamos la transformada de Fourier de la imagen que queremos mejorar, multiplicamos el resultado por una función de transferencia, un filtro, y calculamos la transformada de Fourier inversa para producir la imagen mejorada.
GEOMETRIA DE IMAGENES
Estudiaremos ahora como se forman las imágenes 2-D a partir de las escenas tridimensionales. Entender la formación de imágenes es un prerequisito para entender completamente los métodos de recuperar información 3-D a partir de imágenes. Si entendemos el proceso por el cual el mundo 3-D (una escena) se proyecta en el mundo 2-D (una imagen) comprenderemos dos aspectos fundamentales de la formación de imágenes:
 Perspectiva por Proyección.
Consideremos un agujero diminuto ideal (ojo de aguja) a una distancia fija delante del plano de la imagen. Supongamos que idealmente sólo la luz que viene a partir del ojo de la aguja puede alcanzar el plano de la imagen. Puesto que la luz viaja en línea recta, cada punto en la imagen corresponde a una dirección particular definida por un rayo desde el punto a través del ojo de la aguja.
Definimos el eje óptico, en este caso simple, como la perpendicular, a través del ojo de la aguja, al plano de la imagen. Introducimos un sistema de coordenadas con el origen en el ojo de la aguja y el eje z alineado con el eje óptico y apuntando hacia la imagen. Es importante tener en cuenta que con esta orientación los puntos hacia los que mira la cámara tienen componente z negativa.
Queremos ahora calcular dónde aparecerá la imagen P´ del punto P que está sobre un objeto enfrente de la cámara. Supondremos que no existe ningún otro objeto en el rayo que une P y el ojo de la aguja O. Sea P (x,y,z)t el vector que une P y O y r´= (x´,y´, ƒ´) el que une O y P´.
Si el rayo que conecta P y P´ forma un ángulo:
con el eje óptico tendremos
Donde:
es el vector unitario en la dirección del eje óptico. Es importante recordar que los puntos delante de la cámara tienen componente z negativa. Además
de modo que
lo que en componentes significa:
El mismo modelo puede obtenerse cuando el plano z=0 se sitúa en el plano de la imagen.
 Proyección Ortográfica.
Consideremos la proyección de perspectiva donde el plano de la imagen se encuentra en z=0, el ojo de la aguja en z=f y el plano de la escena en z=z, con f > z. En ese caso las ecuaciones de la proyección de perspectiva serían, observemos que en este caso las imágenes no salen invertidas,
obviamente la z proyectada tiene z=0 en todos los casos. Observemos que cuando f tiende a infinito tenemos que x = x´ y y = y´ . Llamaremos perspectiva con distorsión a la que aplica (x,y,z) en (ƒx/( ƒ-z), ƒy/( ƒ-z), ƒz/( ƒ-z)).
Esta transformación recibe el nombre de proyección ortográfica cuando el ojo de la aguja está a distancia infinito en la dirección de z.
La perspectiva con distorsión produce un objeto tridimensional al que se le ha quitado la forma, cuanto más lejano del ojo de la aguja esté más pequeño se verá.
Observemos que en los modelos que hemos descrito hemos perdido la información sobre el eje z. Es claro que para recuperarla necesitamos al menos dos imágenes distintas, desde diferentes ángulos, del mismo objeto.

No hay comentarios:

Publicar un comentario