miércoles, 28 de enero de 2009

Histogramas

Dada una imagen en niveles de grises, siendo el rango de 256 colores (de 0 a 255). El histograma de la imagen es en una gráfica en la que se muestra el número de píxeles de cada color que aparece en la imagen.



El análisis del histograma permite comparar contrastes e intensidades entre imágenes. El histograma podría ser alterado para producir cambios en la imagen.



Por ejemplo, el histograma es utilizado para binarizar una imagen digital, es decir, convertirla en una imagen en blanco y negro, de tal manera que se preserven las propiedades "esenciales" de la imagen. La forma usual de binarizar una imagen es eligiendo un valor adecuado u (valor umbral) dentro de los niveles de grises, tal que el histograma forme un "valle" en ese nivel. Todos los niveles de grises menores que u se convierten en 0 (negro), y los mayores que u se convierten en 255 (blanco).








El histograma de una imagen a color RGB consiste en tres gráficas siendo cada una el histograma de cada color primario







Código fuente en Matlab para Histograma


canalvideo=videoinput('winvideo',1);


preview(canalvideo);


frame=getsnapshot(canalvideo);


%image(frame);


delete(canalvideo);


prompt = {'Nombre:'};


title = 'ANALISIS CORNEAL';


lines = 1;


def = {'mi imagen'};


answer = inputdlg(prompt,title,lines,def);


assignin('base','imfile',answer{1});


imwrite(frame,strcat(answer{1},'.jpg'));


% guarda la imagen , se usa strcat %porque se van a introducir muchas imagenes, concatena el nombre con la%extension (primera vez) % %T=dir('*.jpg');


% a=imread(T.name);


otra OPCIONNNNNNNNNN %a=imread(strcat(answer{1},'.jpg'));


% lee % planeR=a( :, :,1);


% reconoce la intensidad del color rojo en la imagen% planeG=a( :, :,2);


% reconoce la intensidad del color verde en la imagen% planeB=a( :, :,3);


% reconoce la intensidad del color azul en la imagen% % imwrite(planeR,'plano1.jpg');


% imwrite(planeG,'plano2.jpg');


% EL COLOR AMARILLO SE OBTIENE ENTRE EL PLANO ROJO Y EL PLANO VERDE,QUE% CORRESPONDEN AL PLANO1 Y AL PLANO2, POR ESTO DEBEMOS HACER EL PLANO 3% OSEA EL AZUL EN NEGRO


martes, 20 de enero de 2009


Filtro de Media

De entre la multitud de máscaras de filtro paso bajo destaca especialmente la máscara de media, que es la que efectúa el promedio de los valores del entorno. El filtro espacial de media reemplaza el valor de un píxel por la media de los valores del punto y sus vecinos. Su efecto es el difuminado o suavizado de la imagen y se aplica junto con el de mediana para eliminar ruidos. Este filtro lo implementamos con la siguiente máscara para un tamaño 3x3:
1/9 1/9 1/9
1/9 1/9 1/9
1/9 1/9 1/9

Normalmente el tamaño de la máscara se toma en función de la cantidad de suavizado que queramos aplicar en cada momento. La visualización del resultado es el único medio de saber si hemos elegido el tamaño adecuado.

Se puede observar que el efecto final del filtro de la media es un suavizado de la imagen por reducción o redistribución del valor de los píxeles. Este filtro tiene el resultado opuesto a los de detección de bordes, donde el objetivo de los filtros es acentuar las diferencias, por esta razón el filtro de la media es un filtro paso bajo. También hay que notar que este filtro no modifica la imagen en las zonas donde el valor de los píxeles son el mismo, en oposición a los detectores de bordes que ponen estas regiones a cero.

En resumen, la media, como el resto de los filtros de suavizado, suaviza los contornos y otros detalles de forma de los objetos aparezcan menos definidos.

En este applet podemos observar los efectos de las diferentes máscaras de filtrado paso bajo que hemos visto y experimentar con filtros paso bajo propios, sólo tenemos que cumplir la condición de que todos los coeficientes han de ser positivos y sumar 1.


ALGORITMO DE FILTROS DE IMAGENES

ALGORITMO FILTRO DE LA MEDIANA

A
B=P;
n=5;
for i = 2:n-1,
for j = 2:n-1,
B(i,j)=(B(i-1,j)+B(i,j-1)+B(i,j)+B(i,j+1)+B(i+1,j))/5;
end;
end
B


ALGORITMO FILTRO DE LA MEDIA

=[25,25,25,25,25;25,35,45,128,25;25,45,35,35,25;25,45,35,35,25;25,25,25,25,25]
A=P;
n=5;
for i = 2:n-1,
for j = 2:n-1,
A(i,j)=(A(i-1,j-1)+A(i-1,j)+A(i-1,j+1)+A(i,j-1)+A(i,j)+A(i,j+1)+A(i+1,j-1)+A(i+1,j)+A(i+1,j+1))/9;
end;
end


Suavizado de imágenes con filtros no lineales.

Filtro de mediana



Una de las técnicas no lineales más utilizadas para el procesado de imágenes, en cuanto a la eliminación de ruido, es el filtrado de mediana. Esta técnica fue desarrollada por Tukey (1977) y Pratt (1978) a finales de los años setenta, y partió de la idea de conseguir un suavizado de imágenes y eliminación de ruido aplicando una técnica no lineal, pero de simple implementación.

Al ser un filtrado no lineal, hay que empezar destacando las diferencias entre un filtrado lineal y otro que no lo sea. En ambos casos, se ha de recorrer la imagen píxel a píxel, y operando con los píxeles cercanos para obtener un suavizado de la imagen, que reduzca el ruido. En el caso del filtrado lineal, la operación que se implementa es la convolución, en este caso bidimensional, de una matriz de píxeles con otra matriz de coeficientes, que define el comportamiento del filtro:

En el caso de un filtro no lineal la operación no es la convolución, sino que se le aplica algún algoritmo u operación a la matriz de píxeles. En el caso del filtrado de mediana, la operación es bien sencilla, y los efectos de suavizado son, en determinados casos, espectaculares.

La idea es que en un conjunto de píxeles cercanos, valores muy alejados del resto, serán valores que corresponden a píxeles ruidosos. La operación consiste en analizar una matriz de píxeles de N x N, y reemplazar el píxel central por el valor de la mediana de todos ellos. Y por supuesto repetir el algoritmo recorriendo toda la imagen.

Aplicando este método escogeremos, por razones obvias, ventanas de N x N con N impar, para tener bien diferenciado el píxel central. Tamaños habituales son ventanas de 3x3, de 5x5, y de hasta 7x7. Esto nos lleva a pensar en el hecho de la elección del tamaño de ventana como algo importante, puesto que un valor pequeño puede no eliminar bien el ruido, mientras que un valor demasiado alto es capaz de distorsionar la imagen. Para la elección de la ventana, en definitiva, no existe una regla fija, sino que se trata de escoger el orden que mejor resultados dé con una determinada imagen. En general, se suele decir que un tamaño de ventana es bueno si el número de píxeles ruidosos dentro de la ventana es menor que la mitad de píxeles de la ventana.