Laboratorio 7: Procesamiento Digital de Imágenes 1. Manipulación

Anuncio
1
ELO 385 – Laboratorio de Procesamiento Digital de Señales
Laboratorio 7: Procesamiento Digital de Imágenes
En este laboratorio se introducirá el procesamiento digital de imágenes y se extenderán conceptos del
procesamiento digital de señales en dos dimensiones para hacia dos dimensiones. Para una introducción al
tema del procesamiento digital de imágenes, ver la documentación adicional a esta guía de laboratorio.
1. Manipulación simple de imágenes
Lea en MATLAB la imagen yatch.tif utilizando A = imread(‘yatch.tif’). Para que pueda realizar
manipulaciones en esta imagen en MATLAB, asegúrese que todas sus imágenes sean representada como
matrices de elementos en punto flotante utilizando B = double(A).
1.1. Grafique la imagen utilizando el comando image de MATLAB. Para mantener el aspecto original
de la imagen asegúrese que el mapa de colores sea en una escala de grises utilizando
colormap(gray(256))
y que los pixeles sean representados como cuadrados utilizando el
comando axis image. Genere un “negativo” de la imagen invirtiendo los el blanco por el negro
y de igual forma con sus tonos intermedios. Note que esta transformación corresponde a restar
255 menos la matriz de la imagen. Escriba la imagen resultante con el nombre “yacht_inv.jpg” en
formato JPG utilizando el comando imwrite(A,map, filename,fmt) y definiendo el mapas de
colores adecuadamente.
1.2. Tomando una porción de 150x150 pixeles del centro de la imagen original, genere un mosiaco de
4x4 con la imagen original, y rotaciones hacia la izquierda en 90°, 180°, y 270°. Escriba la imagen
resultante como “yacht_mosaic.bmp” de igual forma que la anterior. Puede usar los comandos de
MATLAB transpose, flipud, fliplr.
2. Histograma, brillo y contraste
2.1. Lea en MATLAB la imagen yatch.tif y calcule su histograma utilizando los comandos de
MATLAB size, reshape y hist. Grafique el histograma y denote los ejes claramente.
Laboratorio de Procesamiento Digital de Señales
UTFSM-2011
Matías Zañartu, PhD
2
2.2. Realice operaciones aritméticas sobre la matriz que permitan cambiar el brillo de la imagen
yatch.tif.
Grafique la imagen nueva y su histograma. ¿Por qué aparecen peaks en los extremos
al realizar esta operación?
2.3. Realice operaciones aritméticas sobre la matriz que permitan cambiar el contraste de la imagen
yatch.tif.
Grafique la imagen nueva y su histograma. ¿Por qué aparecen peaks en los extremos
al realizar esta operación? ¿Qué distorsiones presenta el nuevo histograma y a qué se deben?
2.4. Cree una función que permita implementar la transformación lineal de pixel a pixel presentada en
la Fig. 1. ¿Qué tipo de cambios introduce esta transformación en la imagen? Aplique la
transformación sobre yatch.tif, grafique la imagen y su histograma resultante.
Fig. 1. Transformación lineal de pixel a pixel
2.5. Cree una función que permita implementar una transformación no lineal del tipo
donde y es el pixel luego de la transformación y
, como se muestra en la Fig. 2 . ¿Qué tipo
de cambios se observan en la imagen? Aplique la transformación sobre yatch.tif, grafique la
imagen y su histograma resultante.
Laboratorio de Procesamiento Digital de Señales
UTFSM-2011
Matías Zañartu, PhD
3
Fig. 2. Transformación no-lineal de pixel a pixel
3. Filtrado digital y análisis espectral de imágenes
3.1. Cree un filtro Gaussiano del tipo
(
), donde
constante utilizada para escalar el filtro de modo que ∑
con
es la varianza y C es una
. Obtenga un filtro de 7×7
y grafique los valores de los coeficientes (es decir la PSD) en una tabla y en un gráfico
mesh. Recuerde que el origen en filtros se ubica al centro en una PSD.
3.2. Calcule la magnitud del filtro en frecuencia con una resolución espectral de 256 × 256 puntos
utilizando el comando fft2 y fftshift, de modo que la magnitud se grafique entre [-π, π] × [-π,
π]. Cree vectores para frecuencia (u,v) y grafique su resultado: 1) en un gráfico mesh, 2) en una
imagen con la magnitud en escala lineal, y 3) en imagen con una escala logarítmica (en dB). Utilice
el comando imagesc para los dos últimos caso. Asegúrese que sus gráficos estén entre -π, π] × [π, π]. ¿Qué tipo de filtro es este? ¿A qué se debe la diferencia entre la magnitud en escala lineal y
logarítmica?
3.3. Aplique el filtro anterior sobre la imagen noise1.tif utilizando el comando de MATLAB
filter2.
Grafique la imagen con ruido, la filtrada y la imagen sin ruido race.tif, y explique las
diferencias observadas entre ellas. Grafique también la magnitud en dB de la DFT de las tres
Laboratorio de Procesamiento Digital de Señales
UTFSM-2011
Matías Zañartu, PhD
4
imágenes de igual forma que en el punto anterior. Comente la estructura del espectro y explique
las diferencias entre ellas y el efecto del filtro.
3.4. Aplique un filtro de 3 × 3 del tipo
*ones(3,3) sobre la imagen noise1.tif. ¿Se obtienen
mejoras en la calidad de la imagen? ¿Qué tipo de filtro es este? ¿Qué diferencias produce con
respecto al filtro Gaussiano? Compare la magnitud del espectro en dB de la PSD de los filtros para
justificar su análisis.
3.5. Aplique un filtro de 3 × 3 del tipo
[0 1 0; 1 -4 1; 0 1 0]
sobre la imagen race.tif.
¿Qué cambios se observan? ¿Qué tipo de filtro es este? ¿Qué utilidad tiene un filtro de este tipo?
Compare la magnitud del espectro en dB de la PSD de la imagen antes y después del filtrado para
justificar su análisis.
3.6. Aplique un filtro de 3 × 3 del tipo
1/9*[-4 -4 -4; -4 41 -4; -4 -4 -4]
sobre la
imagen blur.tif ¿Qué cambios se observan? ¿Qué tipo de filtro es este? ¿Qué utilidad tiene un
filtro de este tipo? Compare la magnitud del espectro en dB de la PSD de la imagen antes y
después del filtrado para justificar su análisis.
4. Imágenes binarias
Ciertos equipos electrónicos no son capaces de producir imágenes en escalas de grises (por ejemplo FAX e
impresoras láser) y sólo pueden imprimir imágenes binarias (sólo blanco y negro). En este ejercicio
simplificaremos imágenes monocromáticas para obtener binarias utilizando un método conocido como
“halftoning”. Se recomienda graficar las imágenes por separado y usar el comando de MATLAB axis
image,
para minimizar la distorsión al mostrar la imagen en pantalla en MATLAB.
4.1. El método más básico para realizar halftoning es el método del umbral binario, el que consiste en
asignar la intensidad mínima o máxima a cada pixel partir de un umbral T definido. Aplique este
método sobre la imagen house.tif utilizando un umbral de intensidad T= 80. ¿Qué sucede con
la calidad de la imagen resultante?¿Se obtienen mejoras importantes al cambiar el umbral T? ¿Qué
criterio propondría usted para definir dicho umbral?
4.2. Repita el punto anterior, pero antes de definir el umbral agregue ruido uniformemente distribuido
en [-40,40] a la imagen house.tif. ¿Cómo se compara la calidad de la imagen resultante con la
del punto anterior utilizando un umbral de intensidad T= 80? ¿A qué se debe esto? ¿Qué
deficiencias tiene éste método?
Laboratorio de Procesamiento Digital de Señales
UTFSM-2011
Matías Zañartu, PhD
5
4.3. Un método común de producir aparentes escalas de grises sólo con imágenes binarias se llama
“dithering”, el cual consiste en producir múltiples niveles de intensidad creando cuadrados
binarios, como se ilustra en la Fig. 3. Un método de realizar esta división es cuantizar la imagen
utilizando patrones dither directamente, lo que permite ordenar el orden del “encendido” de cada
pixel. El patrón dither asociado a la Fig. 3 corresponde a T=255×[5/8 3/8; 1/8 7/8]. Repita
y expanda este mismo patrón utilizando el comando de MATLAB repmat hasta obtener una
matriz del mismo tamaño que la imagen house.tif. Aplique el método del umbral operando con
la imagen completa y el patrón de igual tamaño con el comando Y = 255*(X>T), donde X es la
imagen y T el mosaico con los patrones (del mismo tamaño que X). ¿Cómo se compara la calidad
con la de las imágenes resultantes en los puntos anteriores? ¿Qué deficiencias tiene éste método y
cómo cree usted que se podría mejorar?
Fig. 3 Cinco niveles de intensidad obtenidos con un método de dithering de 2 × 2.
4.4. Repita los puntos anteriores para la imagen race.tif. ¿Se aprecia mejor o peor las diferencias
entre los tres tipos de halftoning?
Informe de laboratorio:
Para todos los puntos de este laboratorio: Presente las funciones de MATLAB requeridas, junto con sus
cálculos, ecuaciones y gráficos. Comente sus observaciones y etiquete sus gráficos adecuadamente.
Laboratorio de Procesamiento Digital de Señales
UTFSM-2011
Matías Zañartu, PhD
Descargar