UNIVERSIDAD DE VIGO

Transcripción

UNIVERSIDAD DE VIGO
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
Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008
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
www.sisoft.ucm.es/Manuales/MATLAB_r2006b.pdf
Aprenda Matlab 7.0 – Javier García Jalón – José Ignacio Rodríguez – Jesús
Vidal
Fernandez
–
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
Ing. Marcelo Marciszack
Página 2/25
Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008
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.
Ing. Marcelo Marciszack
Página 3/25
Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008
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
Ing. Marcelo Marciszack
Página 4/25
Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008
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)
Ing. Marcelo Marciszack
Página 5/25
Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008
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
Ing. Marcelo Marciszack
Imagen I2 / Modicada
Página 6/25
Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008
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
Ing. Marcelo Marciszack
Página 7/25
Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008
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: []
Ing. Marcelo Marciszack
Página 8/25
Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008
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.
Ing. Marcelo Marciszack
Página 9/25
Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008
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
Ing. Marcelo Marciszack
Página 10/25
Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008
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.
Ing. Marcelo Marciszack
Página 11/25
Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008
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”.
Ing. Marcelo Marciszack
Página 12/25
Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008
>> 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
Ing. Marcelo Marciszack
Página 13/25
Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008
>> 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.
Ing. Marcelo Marciszack
Página 14/25
Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008
>> imshow(bw)
Para apreciar como nos han quedado la imágenes en memoria
>> whos
Name
Size
Bytes Class
H
256x256
65536 uint8
H2
256x256
65536 uint8
H3
256x256
65536 uint8
bw
256x256
65536 logical
fondo
256x256
level
1x1
Attributes
65536 uint8
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.
Ing. Marcelo Marciszack
Página 15/25
Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008
>> [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
Ing. Marcelo Marciszack
Página 16/25
Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008
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')
Ing. Marcelo Marciszack
Página 17/25
Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008
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
Ing. Marcelo Marciszack
Página 18/25
Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008
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
allgrains
1x101
Bytes Class
Attributes
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
Ing. Marcelo Marciszack
Página 19/25
Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008
>> 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.
Ing. Marcelo Marciszack
Página 20/25
Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008
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.
Ing. Marcelo Marciszack
Página 21/25
Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008
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.
Ing. Marcelo Marciszack
Página 22/25
Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008
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.
Ing. Marcelo Marciszack
Página 23/25
Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008
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.
Ing. Marcelo Marciszack
Página 24/25
Práctica de Identificación e catalogación de Imágenes e Interfaz 2007/2008
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.
Ing. Marcelo Marciszack
Página 25/25

Documentos relacionados