universidad de vigo - facultad regional córdoba · identificación y catalogación de imágenes de...

25
UNIVERSIDAD DE VIGO PROGRAMA DE DOCTORADO Ingeniería del Software basada en componentes reutilizables, aplicaciones en Interfaces Hombre-Máquina Bienio.- 2007/2009 Curso de Doctorado Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín Dr. María José Lado Touriño INFORME PRÁCTICAS : del Curso 2007/2008 Alumno: Ing. Marciszack, Marcelo Martín

Upload: ngoduong

Post on 29-Sep-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

UNIVERSIDAD DE VIGO

PROGRAMA DE DOCTORADO

Ingeniería del Software basada en componentes reutilizables, aplicaciones en Interfaces Hombre-Máquina

Bienio.- 2007/2009

Curso de Doctorado Identificación y Catalogación de Imágenes de Interf az Código del curso: 091T151A021

Profesores:

Dr. Arturo José Méndez Penín

Dr. María José Lado Touriño

INFORME PRÁCTICAS : del Curso 2007/2008

Alumno: Ing. Marciszack, Marcelo Martín

Page 2: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008

Ing. Marcelo Marciszack Página 2/25

Actividad 1: Instalación de MATLAB y lectura de Documentación

Acciones realizadas

A continuación se enunciarán brevemente las tareas realizadas en este apartado:

• Se procedió a la instalación de la Versión 7.4.0 (R2007a) sobre Windows Vista.

• Se dio lectura a la Documentación de Getting Started with MATLAB.

• Se buscó y accedió a otra documentación alternativa sobre MATLAB: En este punto básicamente se descargó de la web y se trabajó con los siguientes manuales:

� Manual de Matlab – María Cristina Casado Fernandez – www.sisoft.ucm.es/Manuales/MATLAB_r2006b.pdf

� Aprenda Matlab 7.0 – Javier García Jalón – José Ignacio Rodríguez – Jesús Vidal

http://mat21.etsii.upm.es/ayudainf/aprendainf/Matlab70/matlab70primero.pdf

• Se procedió a la lectura de la Guía de usuarios, en lo referido a Gráficos y mas específicamente al manejo de edición y modificación de imágenes en mapa de bit

Page 3: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008

Ing. Marcelo Marciszack Página 3/25

Actividad 2: Image Processing Toolbox

Ejemplo 1: Some Basic Topic

Paso 1: Leer y mostrar una Imagen

a) Limpiar el espacio de trabajo (workspace de MATLAB) de cualquier variable y figuras abiertas en ventanas mediante el comando

clear

que a diferencia del comando clc, (que limpia la Ventana de Comando) y limpia y borra en forma efectiva el Workspace

b) Lectura de una imagen:

Procedemos a la lectura de una imagen de muestra “ pout.tif” , la amacenamos en memoria a través de una variable “I”

La función utilizada para la lectura en imread que recibe como argumento el nombre del archivo en formato tif de la imagen.

I= imread(´pout.tif´)

Con el cuál hemos llevado al workspace una matriz I de 291 x 240 filas y columnas

c) Mostrar la Imagen:

La toolbox dispone de dos funciones imshow / imtool

Imshow es la función fundamental para mostrar imágenes, puede realizarse con imtool pero esta resulta mas limitada ya que imshow nos provee de otras funcionalidades para navegar y explorar imágenes.

Imshow(I)

Donde el único parámetro que recibe es el nombre de la variable donde se encuentra la imagen en memoria.

Como resultado nos devuelve una ventana con la imagen, con un conjunto de herramientas para poder trabajar sobre la misma.

Page 4: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008

Ing. Marcelo Marciszack Página 4/25

Paso 2: Verificación de la imagen en memoria (espacio de trabajo)

Para realizar esta verificación lo podemos hacer de dos maneras diferentes:

a) Inspeccionar en forma directa la ventana de workspace

b) Ejecutar en la ventana de Comandos el comando whos

En donde básicamente de las dos formas nos indica que la imagen está almacenada en una variable I como un array de 291 x 240, que se trata de una imagen de 8 bit en

Page 5: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008

Ing. Marcelo Marciszack Página 5/25

donde cada elemento del array se almacena en memoria como uint8. (pueden almacenarse como uinit8, uinit16 o doble array) .

Como información adicional que nos brinda whos es la cantidad de elementos y los bytes ocupados en memoria

Paso 3: Mejorar el Contraste de Imagen

Para ver el contraste de una imagen se puede realizar un histograma de intensidades a través de la función imhist

Imhist(I)

Luego de su ejecución se evidencia que la imagen alojada en I “ pout.tif”, tiene bajo contraste ya que rango de intensidades está poco distribuido en el espectro. En la figura siguiente se puede observar que no cubre todo el rango posible entre 0 y 255, y por lo tanto está perdiendo los valores altos y bajos, que podrían resultar en un buen contraste.

Existen en varios caminos para mejorar el contraste de imágenes. Uno de ellos es a través de la ejecución de la función histeq que lo que hace es expandir los valores de la intensidad sobre todo el rango, y de esta manera mejoramos el contraste de la imagen. Este proceso es llamado ecualización del histograma

I2 = histeq(I)

Page 6: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008

Ing. Marcelo Marciszack Página 6/25

Ahora el histograma de frecuencias nos queda

Notamos ahora como los valores de los pixeles están distribuidos en el rango completo de valores posibles.

A continuación se muestra ambas imágenes para comparación

Imagen I / Original

Imagen I2 / Modicada

Page 7: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008

Ing. Marcelo Marciszack Página 7/25

Como conclusión podemos decir que: Es posible ajustar el contraste automáticamente por medio de la función histeq para distribuir los pixeles de la imagen sobre todo el rango posible de almacenamiento. Para una determinada imagen, la clase de almacenamiento uint8 tiene un rango total de 0 a 255, para uint16 el rango es de 0 a 65535, y para double es entre 0 y 1.

El proceso que realizamos se llama ecualización de histograma y consiste en distribuir y ensanchar el histograma original.

Paso 4: Grabando la imagen a Disco

Para almacenar la imagen I2 a disco se utiliza la función imwrite

Se pueden especificar diferentes formatos o extensiones para las imágenes.

Por ejemplo podemos ejecutar

imwrite (I2, 'pout2.png')

Y lo que hace es grabar la imagen en formatos Portable Network Graphics (PNG) con la extensión '.png'.

El MATLAB reconoce la extensión de archivo 'png' como válida y graba la imagen al disco. Se almacena como imagen de 8-bit dado que fue almacenada como una imagen de intensidad uint8. En caso de que I2 fuese un array del tipo RGB y clase

Page 8: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008

Ing. Marcelo Marciszack Página 8/25

uint8, se podría haber grabado en disco como una imagen de 24-bit. Para ver la profundidad de color podríamos utilizar el parámetro BitDepth en el imwrite.

También podríamos grabar la imagen con formato GIF

imwrite (I2, 'pout2.gif')

Paso 5: Verificar el contenido del archivo recientemente grabado

Para ver que grabo la función imwrite en el disco ejecutamos la función imfinfo

imfinfo('pout2.png')

MATLAB nos responde:

>> imfinfo('pout2.png')

ans =

Filename: 'pout2.png'

FileModDate: '13-Mar-2008 17:32:34'

FileSize: 36938

Format: 'png'

FormatVersion: []

Width: 240

Height: 291

BitDepth: 8

ColorType: 'grayscale'

FormatSignature: [137 80 78 71 13 10 26 10]

Colormap: []

Histogram: []

InterlaceType: 'none'

Transparency: 'none'

SimpleTransparencyData: []

BackgroundColor: []

RenderingIntent: []

Page 9: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008

Ing. Marcelo Marciszack Página 9/25

Chromaticities: []

Gamma: []

XResolution: []

YResolution: []

ResolutionUnit: []

XOffset: []

YOffset: []

OffsetUnit: []

SignificantBits: []

ImageModTime: '13 Mar 2008 19:32:34 +0000'

Title: []

Author: []

Description: []

Copyright: []

CreationTime: []

Software: []

Disclaimer: []

Warning: []

Source: []

Comment: []

OtherText: []

Al ejecutar el comando imfinfo el MATLAB despliega todos los headers para el formato de archivo PNG que soporta el toolbox. Se podrían modificar esos campos usando parámetros adicionales al ejecutar imwrite.

Page 10: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008

Ing. Marcelo Marciszack Página 10/25

Ejemplo 2: Advanced Topic

Paso 1: Leer y mostrar una Imagen

Para realizar esta acción procedemos a limpiar las variables en el espacio de trabajo

>> clear

>> close all

Leo la imagen y la almaceno en la variable H

>> H =imread('rice.png')

Muestro la imagen

>> imshow(H)

Y la imagen que nos queda es:

Paso 2: Estimación el valor del fondo de la imagen

En esta sección estimaremos la iluminación del fondo de la imagen a través de una análisis morfológico de la imagen. A simple vista se nota que la iluminación del

Page 11: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008

Ing. Marcelo Marciszack Página 11/25

fondo de la imagen es mas brillante en el centro de la imagen que en la parte inferior de la misma.

Para estimar la iluminación del fondo utilizamos la función imopen de la siguiente manera:

>> fondo = imopen(H,strel('disk',15))

y luego la mostramos

>> imshow(fondo)

Lo que se realizó es una operación de apertura morfológica utilizando la función imopen sobre la imagen 'rice.png' previamente almacenada en la variable “H” y un elemento estructurante de forma de disco con un radio de 15. El elemento estructurante fue creado con la función strel. La apertura morfológica produce el efecto de remover los objetos que no contienen completamente un disco de radio 15.

Paso 3: Mostrar la aproximación del fondo como una superficie

Para crear una representación de la superficie de la aproximación del fondo, vamos a utilizar el comando suft

La función surf requiere datos de clase double, por lo tanto se necesitará como primera medida convertir “fondo” utilizando el comando double.

Page 12: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008

Ing. Marcelo Marciszack Página 12/25

Ejecutamos el comando surf, previamente convirtiendo a tipo de dato double a “fondo”.

>> surf(double(fondo(1:8:end,1:8:end))),zlim([0 255])

>> set(gca,'ydir','reverse')

Este ejemplo utiliza sintaxis para ver solamente 1 de 8 pixeles en cada dirección, de lo contrario la superficie de ploteo podría resultar muy densa. También establece la escala de ploteo para que coincida con el rango de los datos uint8 y reversa el eje “Y” del display para otorgar una mejor visión de los datos.

Se utilizó el comando surf para examinar la imagen de fondo. Este comando crea superficies paramétricas coloreadas que permiten apreciar las funciones matemáticas en una región rectangular. En el display de superficie, [0, 0] representa el origen, o sea, la esquina superior izquierda de la imagen. La parte alta de la curva indica que los valores mas altos de los pixeles de “background” (Es decir rice.tif) ocurren cerca de las filas centrales de la imagen. Los valores bajos de los pixeles, ocurren en la parte baja de la imagen y están representados en la superficie por la parte baja de la curva.

Paso 4: Creación de una Imagen con fondo uniforme

Para crear un fondo más uniforme de la imagen substraeremos la imagen de fondo, “fondo”, de la imagen original “H”.

Page 13: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008

Ing. Marcelo Marciszack Página 13/25

>> H2 = imsubtract(H,fondo)

Y luego mostramos la nueva imagen H2 con fondo uniforme

>> imshow(H2)

Paso 5: Ajuste del contraste de la imagen procesada

Luego de la sustracción la imagen ha quedado con el fondo uniforme pero un poco oscura.

Para incrementar el contraste de la imagen usaremos el comando imadjust. Esta función soporta diferentes formas a través de diferentes argumentos.

La usaremos de la forma

>> H3 = imadjust(H2)

En donde lo que realiza es un mapeo de los valores de intensidad de la Imagen H2 con nuevos valores en H3 de tal manera que se produce una saturación del 1 % en los valores de intensidad de la imagen de origen en ambos extremos (valores Altos y Bajos)

Luego del ajuste de intensidad la imagen nos queda

Page 14: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008

Ing. Marcelo Marciszack Página 14/25

>> imshow(H3)

Paso 6: Creación de la versión binaria de la imagen

Para la posterior utilización de diversas funciones de la toolbox es necesario crear una versión binaria de la imagen.

Lo primero que hacemos es a través de la función graythesh es calcular en forma automática el umbral para la conversión de la imagen es escala de grises a binaria.

>> level = graythresh(H3)

Y Matlab nos devuelve el siguiente valor

level = 0.4843

Y ahora podemos convertir la imagen en escala de grises a binaria ya que contamos con el umbral para la conversión

>> bw = im2bw(H3,level)

Y ahora podemos visualizar la imagen bw binaria resultante.

Page 15: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008

Ing. Marcelo Marciszack Página 15/25

>> imshow(bw)

Para apreciar como nos han quedado la imágenes en memoria

>> whos

Name Size Bytes Class Attributes

H 256x256 65536 uint8

H2 256x256 65536 uint8

H3 256x256 65536 uint8

bw 256x256 65536 logical

fondo 256x256 65536 uint8

level 1x1 8 double

Paso 7: Determinación del número de objetos en la imagen

Podemos determinar el número de granos de arroz en la imagen. Para esto usaremos la función bwlabel. Esta rotula todos los componentes conectados en la imagen binaria bw y retorna el número de objetos que encuentra, en el valor de salida.

Page 16: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008

Ing. Marcelo Marciszack Página 16/25

>> [L,NUM] = bwlabel(bw,4)

El valor 4 significa que esta contemplando cuando 4 objetos están conectados, este valor puede ser 8 si no se especifica toma por defecto 8

L es una Matriz en donde si el elemento corresponde al fondo toma el valor o. Si es un objeto encontrado tomarán todos los pixeles conectados un valor que comenzará en 1 para el primer objeto y así sucesivamente.

En NUM quedan la cantidad de objetos encontrados

Luego de la ejecución nos queda:

NUM = 101

La exactitud de los resultados depende de un número de factores, incluyendo:

• El tamaño de los objetos

• La exactitud de la aproximación del background

• Que parámetro de conectividad se utilizó (4 u 8 )

• Si existen objetos en contacto.

Paso 8: Examinar la Matriz Label

Para tener un entendimiento mas acabado de la matriz label, podemos explorar el valor de los pixeles de la imagen

Hay varios caminos para examinar estos valores, aquí usaremos la función imcorp para seleccionar una pequeña porción de imagen.

>> grano = imcrop(L)

Seleccionamos un pequeño rectángulo, tomando el borde de una grano y MATLAB nos responde con los siguientes valores

grano =

0 0 0 0 0 0 0

0 0 0 0 0 0 0

57 57 57 57 0 0 0

57 57 57 57 0 0 0

57 57 57 57 57 0 0

Page 17: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008

Ing. Marcelo Marciszack Página 17/25

Paso 9: Mostrando la Matriz Label como imagen indexada en pseudocolor

Para poder distinguir fácilmente cada objeto podemos mostrarlo en diferentes colores. Para mostrar la matriz en RGB, usamos la función label2rgb. Con ella podemos especificar el colormap, el color de fondo y como los objetos mapean el colormap.

>> RGB2 = label2rgb(L, 'spring', 'c', 'shuffle')

>> imshow(RGB2)

Y nos queda

Paso 10: Midiendo las propiedades de los objetos en la imagen

El comando regionprops mide propiedades de objetos o de regiones en una imagen y las retorna como un array. Cuando se aplica a una imagen con componentes rotulados, crea un elemento para cada componente:

>> graindata = regionprops(L,'basic')

Page 18: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008

Ing. Marcelo Marciszack Página 18/25

MATLAB nos responde

graindata =

101x1 struct array with fields:

Area

Centroid

BoundingBox

Para encontrar el área del componente cuyo rótulo es el “51”, usaremos:

>> graindata(51).Area

Que retorna el siguiente resultado:

ans =

140

Para encontrar el recuadro mas pequeño y el centroide (centro de la masa), para ese componente:

>> graindata(51).BoundingBox, graindata(51).Centroid

MATLAB nos responde

ans =

107.5000 4.5000 13.0000 20.0000

ans =

114.5000 15.4500

Page 19: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008

Ing. Marcelo Marciszack Página 19/25

Paso 11: Computando propiedades estadísticas de objetos in la imagen

Primero creamos un vector con un elemento para cada grano que contenga el área de cada grano

>> allgrains = [graindata.Area]

Allgrains es un vector con 101 elementos

>> whos allgrains

Name Size Bytes Class Attributes

allgrains 1x101 808 double

Ahora si podemos calcular con la función max el grano de mayor tamaño

>> max(allgrains)

Y MATLAB nos responde

ans =

404

Usaremos el comando find para retornar cual es el componente de ese tamaño:

>> biggrain = find(allgrains==404)

Y MATLAB nos responde

biggrain =

59

El tamaño medio de todos los granos se obtiene

Page 20: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008

Ing. Marcelo Marciszack Página 20/25

>> mean(allgrains)

Y MATLAB nos responde

ans =

175.0396

Construcción de un histograma conteniendo 20 niveles que muestre la distribución de los tamaños de los granos de arroz:

>> hist(allgrains,20)

Problemas detectados:

Hay ocasiones en donde existe un fallo en la visualización de las imágenes, dado que en el momento de la visualización aparecen en un espectro de colores y deberían ser mostradas en una tonalidad de grises.

Page 21: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008

Ing. Marcelo Marciszack Página 21/25

Resumen:

“Relación de conceptos de los ejemplos con los temas citados en la bibliografía”

La correlación entre ejemplos de la Image Procesing Toolbox de MATLAB y contenidos del curso comienza tempranamente cuando los contenidos del curso describen la forma de representar digitalmente una imagen (Capítulo 2) y El Ejemplo 1 trata de la Lectura, muestra y verificación de la representación de una imagen en memoria. Luego al tratar el capítulo 2 de algunos efectos en la representación y el concepto de histograma, lo podemos ver en el ejemplo en el paso de Mejoramiento del contraste de una Imagen.

En relación al Ejemplo 2 Advanced Topic produce una ejemplificación de transformaciones que se le pueden realizar a una imagen para eliminar efectos no deseados, o realzar los importantes. Para ello el Ejemplo analiza el fondo de una imagen a través de un análisis morfológico de la imagen, aísla el brillo y genera una imagen con fondo uniforme. Luego el Ejemplo ajusta el contraste la de la imagen. Todos estos conceptos son vertidos desde la teoría (capítulo 6) en donde se trata el realce de la imagen, contraste y aplicación de filtros.

Con respecto a los capítulos 7 y 8 ( Segmentación y la posterior Representación y descripción) se muestra un ejemplo de utilización en el paso 10 donde se pueden medir las propiedades de objetos o regiones de una imagen. Se visualiza como determinar el área de un objeto dentro de una región y también es posible calcular el centro de masa del mismo.

Page 22: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008

Ing. Marcelo Marciszack Página 22/25

Actividad 3: Image Processing Toolbox

Comentario de la sección noise removal dentro del Capítulo Analyzing and Enhancing Image.

Comentario de la Sección Noise Removal

En esta sección se introduce al concepto de ruidos en las imágenes digitales, y se los trata tratando de eliminarlos o reducirlos.

Comienza con la definición de ruido: el cuál lo define como el resultado de errores cometidos en el proceso de adquisición de la Imagen, y que los mismos se traducen en que los valores de los pixels de la imagen no se correspondan con la intensidad de la imagen real.

Comenta algunas de las formas en que estos errores pueden ser introducidos, y luego describe y analiza diferentes maneras de eliminarlos o reducirlos.

Para diferentes tipos de ruidos existen diferentes métodos y los métodos que se analizan son:

• Uso de Filtro lineal • Utilización de la Mediana en el Filtrado • Uso de Filtrado adaptativo-

Para poder simular alguno de los efectos enunciados, la Toolbox proporciona una función imnoise que se utiliza para introducir diversos tipos de ruidos a una imagen.

Uso de Filtro Lineal

Son aptos para la eliminación de ruido de granos en una fotografía, ya que las variaciones locales se eliminan dado que cada píxel se obtiene como un promedio de su vecindad. Los filtros gaussianos o promedio son los utilizados.

Uso de la Mediana de filtrado.

Page 23: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008

Ing. Marcelo Marciszack Página 23/25

En este caso a diferencia de la media del filtrado anterior se utiliza la mediana ya que resulta mucho menos sensible a las variaciones extremas. De este modo se elimina el ruido sin eliminar valores extremos y se mantiene la nitidez de la imagen

Uso de Filtro Adptable

Esta función aplica un filtro de wiener, que se trata de un filtro lineal, pero que se aplica a una imagen adaptable en relación a la varianza local. Si la diferencia es pequeña lo hace en forma muy suave y si la diferencia es grande lo hace en forma poco suavizada.

El Adaptable filtro es más selectivo que un filtro lineal.

Page 24: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008

Ing. Marcelo Marciszack Página 24/25

Actividad Nro 4: Comentario Artículo : Computer-aided Diagnosis: Automatic Detention of Malignant Masses in Digitized Mammograms

Diagnóstico asistido por computadora: detección automática de masas malignas en mamografías digitalizadas.

En este trabajo se presenta un desarrollo de un método computarizado para detectar automáticamente masas malignas en mamografías digitales, el cuál se basa en la substracción bilateral entre las imágenes de ambos pechos.

Luego de la digitalización, se procede al alineado de ambas imágenes por medio de la detección automática de los bordes y la ubicación del pezón. Se corrigen diferencias de brillo, se substraen y se les aplica umbral. Con la imagen binaria obtenida por estos métodos se puede detectar áreas sospechosas. Las regiones sospechosa o con asimetrías son detectadas por un algoritmo, a las cuales se les realiza un testeo sobre la excentricidad, y el tamaño de manera de eliminar falsos positivos y respuestas de textura características forma, tamaño y textura comparados con regiones de tejido normal

El artículo describe la composición de las pruebas y evaluaciones realizadas.

Para el estudio se utilizaron 70 pares de mamografías (izquierda y derecha), las cuales por biopsia demostraban presencia de masa maligna en alguna de las imágenes. Se aportan datos de la resolución horizontal y vertical de la digitalización y su reducción a imágenes de 400x520 píxeles.

El artículo comienza explicando lo dificultoso de tal detección en forma categórica, posteriormente realiza una descripción de la aplicación de dos métodos claramente diferenciados para la detección de tumores malignos, describe sus procedimientos y la fundamentación de los mismos. Focalizando la investigación en el desarrollo de un método computarizado sobre uno de estos métodos

Describe el proceso de selección de las imágenes y el método de captura de las mismas.

Plantea como actividad principal para analizar imágenes al proceso de segmentación de las imágenes, que se realiza para detectar el borde del pecho y el pezón. Primero se calcula un umbral y una versión aplanada de la imagen para evitar distorsiones. Luego se seleccionan automáticamente 5 puntos, para dividir el pecho en 3 regiones. Se aplica un algoritmo de rastreo para detectar el borde basado en una condición sobre el nivel de gris que deben satisfacer los 9 pixeles previos en la dirección de rastreo. El algoritmo de rastreo procede en distintos sentidos según la región que se este explorando. Para detectar el pezón se utiliza un método que combina dos métodos complementariamente.

A continuación se procede a la alineación de las imágenes izquierda y derecha, para lo cuál se seleccionan puntos de referencia para la transformación de las coordenadas de la imagen y así lograr la correspondencia entre ambas imágenes. Se transforma la imagen izquierda mediante desplazamiento y rotación. Para estos procesos se toman coordenadas del pezón y borde del pecho.

Page 25: UNIVERSIDAD DE VIGO - Facultad Regional Córdoba · Identificación y Catalogación de Imágenes de Interfaz Código del curso: 091T151A021 Profesores : Dr. Arturo José Méndez Penín

Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008

Ing. Marcelo Marciszack Página 25/25

Posteriormente se procede a la normalización de las mamografías, para lo cuál se efectúa una corrección de ambas imágenes para evitar diferencias en el brillo, que permitirá la aplicación de un determinado conjunto de técnicas posteriores en el proceso de detección.

La substracción bilateral es un proceso que consiste en el apareo de las imágenes izquierda y derecha para detectar las asimetrías que indican posibles masas malignas. De las imágenes resultantes, se obtienen dos nuevas imágenes. Las masas del pecho izquierdo tienen valores negativos, y las del pecho derecho tienen valores positivos. El 0 indica que no hay diferencias entre ambas imágenes. Un umbral óptimo es calculado iterativamente y se aplica a las imágenes para obtener una imagen binaria. En esta imagen binaria, las regiones con valor de pixel igual a “1” son potenciales masas (asimetrías). De estas regiones se elige un punto semilla y la región crece por agregación de los pixeles vecinos con el mismo valor. El valor del umbral iterativamente se va reduciendo hasta que la región que crece satisface requisitos mínimos de tamaño y excentricidad.

Como resultado del proceso de sustracción bilateral se tienen varias áreas sospechosas. Para reducir el número de falsos positivos se aplican varias técnicas. Una de estas, es el análisis ROC, el cual fija un umbral y mediante condiciones establecidas de excentricidad y tamaño elimina áreas con falsos negativos.

Luego se aplica un test de textura. Para determinar las características de la textura, las mamografías utilizadas para el estudio fueron manualmente analizadas por expertos radiólogos. Resultando dos tipos de características: a) basadas en la dependencia de los niveles de gris y b) basadas en los valores absolutos de los niveles de grises. Estas características son combinadas para construir una función discriminante canónica, que se empleará para determinar entre tejido normal y masa maligna. La performance del test de textura fue evaluado con el análisis FROC.

La base de datos utilizada fue clasificada en dos clases diferentes: a) una clasificación realizada por radiólogos expertos que registró 5 niveles (el cuál abarcó desde el nivel más obvio detectado a simple vista y el más complejo sólo detectado por un experimentado experto en mamografías) y b) el tamaño y el contraste son manualmente calculados, basándose en el delineado para determinar el tamaño y la densidad del mismo.

El sistema, probado en 70 pares de la mamografía digitales, alcanzó una tasa real positiva de 71% con un número medio de 0,67 falsos positivos por imagen.

Los resultados muestran que el sistema puede ser útil a los radiólogos al servir como un segundo lector en mamografías. El bajo número de falsos positivos indica que el sistema no confunde el radiólogo sugiriendo normal regiones como sospechosas.

Se plantea además en la discusión del artículo, y como futuro tema a resolver es la dependencia que existe entre este método y la base de datos utilizada.