Tareas U04

Transcripción

Tareas U04
Maestría en Ciencias de la Computación
Procesamiento Digital de Imágenes
[email protected]
TAREAS UNIDADES 3 Y 4
Entregar el 14 de julio
Tarea 1. Ecualización adaptativa del histograma con CLAHE
•
Hacer una función en MATLAB que se llame “clahe.m” que realice la
ecualización adaptativa del histograma mediante la técnica CLAHE:
J = clahe(I,tiles,clip)
donde I es la imagen original; tiles es un vector de tamaño 1×2 con el
número de regiones contextuales los ejes horizontal y vertical (e.g., 6 regiones
contextuales tiles=[2,3]); clip es el valor de la fracción de recorte del
histograma entre 0 y 1; J es la imagen ecualizada.
•
La función debe ser capaz procesar imágenes a color o en escala de grises.
Para las imágenes a color se pueden usar las funciones de MATLAB rgb2hsv
y hsv2rgb.
•
Hacer una función principal que procesar las imágenes de prueba.
•
Entregar reporte de la práctica.
Maestría en Ciencias de la Computación
Procesamiento Digital de Imágenes
[email protected]
Tarea 2. Filtros espaciales suavizantes
•
Implementar una función en MATLAB que se llame “spatialfilt.m” que
realice la reducción de ruido. La función debe tener tres o cuatro argumentos
de entrada dependiendo del caso: (1) la imagen en grises, (2) cualquiera de la
siguientes opciones de suavizado como una cadena de caracteres:
a.
b.
c.
d.
e.
f.
g.
h.
i.
j.
'gaussian' (Filtro Gaussiano),
'amean' (Media aritmética),
'gmean' (Media geométrica),
'hmead' (Media harmónico),
'chmean' (Media contraharmónico),
'median' (Filtro de mediana),
'hybmedian' (Filtro de mediana híbrido),
'max' (Filtro de máximos),
'min' (Filtro de mínimos),
'midpoint' (Filtro de punto medio),
(3) el tamaño del kernel cuadrado m×m, con m impar, y (4) un parámetro que
define los valores de σ y Q, solo en el caso de los filtros Gaussiano y
contraharmónico, respectivamente.
•
Hacer una función principal procese las imágenes de prueba proporcionadas
las cuales contienen diferentes tipo de ruido. Se recomiendan hacer pruebas
con tamaños de filtros de 3×3, 5×5, 7×7 y 9×9, σ={1, 1.5, 2, 2.5} y Q={−1.5,
−1.0, 0, +1.0, +1.5}.
•
Elaborar el reporte de la práctica. En la parte de resultados se deberán reportar
los valores de SNR y MSE obtenidos para diferentes tamaños de kernel y
parámetros de σ y Q.
•
Se pueden utilizar las funciones de MATLAB “imfilter” (filtros lineales) y
“ordfilt2” (filtros de orden) para el filtrado de las imágenes:
f = imfilter(g, w,'replicate','conv')
donde g es la imagen ruidosa y w el kernel de convolución.
f = ordfilt2(g, i, w,'symmetric')
donde g es la imagen ruidosa, i es la posición en el arreglo ordenado que indica el
percentil, y w la máscara con “1s” en los píxeles que se desean incluir en el cálculo.
Maestría en Ciencias de la Computación
Procesamiento Digital de Imágenes
[email protected]
Tarea 3. Filtros de Gabor en frecuencia
•
Implementar una función en MATLAB que se llame “gaborfilter.m” que
realice el realce de texturas con filtros de Gabor en el dominio de la
frecuencia:
J = gaborfilter(I,b,ang)
donde I la imagen en grises, b el parámetro de ancho de banda y ang el salto
de ángulos (en grados) que será utilizado. El argumento de salida será una
matriz 3D con el conjunto de imágenes filtradas por el banco de filtros de
Gabor y J contiene el conjunto de imágenes filtradas con el banco de Filtros
de Gabor y es una hipermatriz double de tamaño M×N×K donde M y N son
el ancho y alto de la imagen original y el valor de K está dado por el producto
del número de orientaciones por el número de frecuencias radiales.
•
Se pueden utilizar las funciones de MATLAB “fft2” e “ifft2” para el
cálculo de las transformadas de Fourier directa e inversa, respectivamente.
•
Hacer una función principal procese las imágenes de textura proporcionadas.
•
Elaborar el reporte de la práctica.
Maestría en Ciencias de la Computación
Procesamiento Digital de Imágenes
[email protected]
Tarea 4. Operadores morfológicos
•
Hacer una función en MATLAB que se llame “strele.m” que cree un
elemento estructurante con un radio determinado y una forma definida. La
función tendrá dos argumentos de entrada (o tres en el caso de una línea):
1) una cadena de caracteres que indique la forma del elemento estructurante:
'line' (línea), 'square' (cuadrado), 'diamond' (rombo) ó 'disk'
(circulo), 2) el radio del elemento estructurante (debe ser un valor entero
positivo y en el caso de 'square' debe ser impar), y 3) sólo aplica en el
caso de 'line', un valor entero que indique el ángulo de la línea y que sea:
0, 45, 90 ó 135. El argumento de salida será el elemento estructurante con las
características deseadas.
•
Hacer una función en MATLAB que se llame “morphoper.m” que aplique
operadores morfológicos sobre una imagen. La función tendrá tres argumentos
de entrada: 1) la imagen en escala de grises, 2) una cadena de caracteres que
indique la operación morfológica: 'erode', 'dilate', 'open',
'close' ó 'gradient' (Beucher), y 3) el elemento estructurante creado
con la función “strele.m”. Un ejemplo es:
se = strele('disk',3);
J = morphoper(I,'open',se);
•
Se puede usar la función de MATLAB “ordfilt2” para implementar los
operadores básicos de dilatación y erosión.
•
Hacer una función principal que llame las funciones “strele.m” y
“morphoper.m” que procese las imágenes de prueba para calcular los
diferentes operadores morfológicos.
•
Elaborar reporte de la práctica.

Documentos relacionados