Practica matlab histogramas

Solo disponible en BuenasTareas
  • Páginas : 5 (1060 palabras )
  • Descarga(s) : 0
  • Publicado : 24 de enero de 2011
Leer documento completo
Vista previa del texto
Practica Procesamiento de imágenes en Matlab

Mostrar en una misma pantalla los siguientes gráficos:

1. Selección de Imagen (imagen original)

2. Histograma de imagen original

3. Ecualización de imagen original

4. Histograma de Imagen ecualizada

Codigo en Matlab 7.6.0

f=imread('radiacion.jpg');

imshow(f);

grises=rgb2gray(f);

imshow(grises);

figure,imhist(grises);

g=histeq(grises, 256);

figure, imshow(g);

figure, imhist(g);

subplot(4,2,1), subimage(grises), title('Imagen Original');

subplot(4,2,2), imhist(grises), title('Histograma Imagen Original');

subplot(4,2,3), histeq(grises,256), title('Imagen Ecualizada');

subplot(4,2,4), imhist(g), title('Histograma Imagen Ecualizada');

Resultados Gráficos

Algunas otrasTransformaciones de Intensidad y Filtrado Espacial

Funciones de transformación de intensidad

Función imadjust

La función imadjust es la herramienta básica para transformaciones de intensidad en imágenes de niveles de gris. Su sintaxis es:
g=imadjust(f, [low_in high_in], [low_out high_out], gamma)

Ejemplo - Uso de imadjust

Leemos la imagen original
>>f=imread('Fig0303(a)(breast).tif');>>imshow(f);

Obtenemos la imagen negativa de f
>>g1=imadjust(f, [0 1], [1 0]);
>>figure,imshow(g1);

Para realzar una banda de intensidades de interés
>>g2=imadjust(f, [0.5 0.75], [0 1]); %expansión de grises entre 0.5 y 0.75 a [0 1]
>>figure,imshow(g2);

Parámetros por defecto: salida=[0 1]
Si hacemos que gamma=2, la transformación pesa hacia los negativos Obtenemos un resultado similara la figura anterior, pero con más niveles de gris, comprimiendo los valores más bajos en la escala de niveles de gris y expandiendo los valores más altos de la misma.
>>g3=imadjust(f, [], [], 2);
>>figure,imshow(g3);

Función intrans
La función intrans se denomina como la transformación de estrechamiento de contraste porque comprime los niveles de entrada menores que m a un rango másestrecho de niveles oscuros en la imagen de salida. Además, comprime los valores por encima de m a una banda más estrecha de niveles claros en la salida. El resultado es una imagen con mayor contraste. Sus sintaxis es:
g=intrans(f,'stretch', M, E)
Ejemplo – Uso de intrans
Leemos la imagen original
>>f=imread('Fig0306(a)(bone-scan-GE).tif');
>>imshow(f);
Realzamos el contraste de la imagen>>g=intrans(f, 'stretch', mean2(im2double(f)),0.9);
>>figure,imshow(g);
Se puede probar con distintos valores de E, que es la pendiente de la gráfica, para ver cómo afecta a la imagen resultante.

Filtrado espacial

El procesamiento de vecindad implica definir un punto central, realizar una operación que implique sólo los píxeles de la vecindad y hacer que el resultado de la operación sea larespuesta del proceso en ese punto, repitiendo el proceso para todos los puntos de la imagen. Los dos términos principales usados para identificar esta operación son Procesamiento de vecinos y filtrado espacial.
Si los cálculos realizados sobre los píxeles vecinos es lineal, la operación se denomina filtrado espacial lineal (o convolución espacial); en otro caso se denomina filtrado espacial no lineal.Filtrado espacial lineal

Se implementa mediante la función imfilter, con el siguiente formato:
g=imfilter(f,w,filtering_mode,boundary_optioons,size_options);
Donde f es la imagen de entrada, w es la máscara del filtro, g es el resultado filtrado, y los demás parámetros los iremos viendo a medida que los necesitemos. El modo_filtrado especifica si el filtrado se realiza mediante lacorrelación ('corr') o la convolución ('conv'). El parámetro boundary_options está relaciónado con el problema de los bordes de la imagen.
La sintaxis más común para imfilter es:
g=imfilter(f,w,'replicate')

Ejemplo - Filtrado espacial lineal

Leemos la imagen original (512x512)
>>f=imread('Fig0315(a)(original_test_pattern).tif');
>>imshow(f);

Creamos la máscara del filtro, que es un filtro...
tracking img