Anda di halaman 1dari 115

UNIVERSIDAD SIMÓN BOLÍVAR

DECANATO DE ESTUDIOS PROFESIONALES


COORDINACIÓN DE INGENIERÍA ELECTRÓNICA

DESARROLLO DE UN SISTEMA CAD PARA DETECTAR Y CLASIFICAR


LESIONES MAMARIAS PRESENTES EN MAMOGRAFÍAS DIGITALES

Por:
Rigel Alfredo Rodríguez Hernández

PROYECTO DE GRADO
Presentado ante la Ilustre Universidad Simón Bolívar
como requisito parcial para optar al título de
Ingeniero Electrónico

Sartenejas, Abril de 2009


UNIVERSIDAD SIMÓN BOLÍVAR
DECANATO DE ESTUDIOS PROFESIONALES
COORDINACIÓN DE INGENIERÍA ELECTRÓNICA

DESARROLLO DE UN SISTEMA CAD PARA DETECTAR Y CLASIFICAR


LESIONES MAMARIAS PRESENTES EN MAMOGRAFÍAS DIGITALES

Por:
Rigel Alfredo Rodríguez Hernández

Realizado con la asesoría de:


Profesor: Juan Carlos Grieco
Ingeniera: Arisa Koki

PROYECTO DE GRADO
Presentado ante la Ilustre Universidad Simón Bolívar
como requisito parcial para optar al título de
Ingeniero Electrónico

Sartenejas, Abril de 2009


UNIVERSIDAD SIMÓN BOLÍVAR
DECANATO DE ESTUDIOS PROFESIONALES
COORDINACIÓN DE INGENIERÍA ELECTRÓNICA

ACTA DE EVALUACIÓN DEL PROYECTO DE GRADO


CÓDIGO DE LA ASIGNATURA: EP FECHA:___/___/______
ESTUDIANTE: CARNET:
TÍTULO DEL TRABAJO:

TUTOR: Prof. CO-TUTOR: Prof.


JURADO: Profs.

APROBADO: REPROBADO:
OBSERVACIONES:

El Jurado considera por unanimidad que el trabajo es EXCEPCIONALMENTE BUENO:


SI: NO: En caso positivo, justificar razonadamente:

Jurado Jurado

Tutor Académico

Co-Tutor Jurado
Nota: Colocar los sellos de los respectivos Departamentos. Para jurados externos, usar sello de la
Coordinación
UNIVERSIDAD SIMÓN BOLÍVAR
DECANATO DE ESTUDIOS PROFESIONALES
COORDINACIÓN DE INGENIERÍA ELECTRÓNICA

DESARROLLO DE UN SISTEMA CAD PARA DETECTAR Y CLASIFICAR


LESIONES MAMARIAS PRESENTES EN MAMOGRAFÍAS DIGITALES
PROYECTO DE GRADO presentado por
Rigel Alfredo Rodríguez Hernández
Carnet 01-34373

RESUMEN

Este proyecto de investigación se desarrolló, como parte del Programa de Intercambio 2007-
2008 que promueve la USB, en la Universidad Tecnológica de Nagaoka en Japón, bajo la tutoría
del Prof. Fukumoto, en el Laboratorio de Ingeniería Biomédica, el cual consistió en el desarrollo
de un algoritmo de detección automática de tumores en mamogramas basado en la clasificación
de la estructura de la glándula mamaria.
El diagnóstico temprano del cáncer de mama juega un papel muy importante en la reducción de
la mortalidad y en la mejora del pronóstico, siendo la mamografía la técnica actualmente
disponible más sensible en el diagnóstico del cáncer de mama, en especial cuando las anomalías
no se pueden determinar mediante el auto examen palpable. Sin embargo, debido al gran número
de mamogramas que tiene que analizar un radiólogo al día, existe el peligro de que el diagnóstico
se pueda ver afectado por un descuido por parte del médico que puede incurrir en algún error ya
sea por fatiga, falta de experticia o negligencia. Esta inexactitud, radica en la gran semejanza que
existe entre las estructuras de la glándula mamaria con la forma y densidad de tumores, factor que
conlleva a realizar un mal diagnóstico de la situación. Por esta razón, el propósito de esta tesis era
ofrecer una herramienta de apoyo para el diagnóstico de las mamografías por parte de los
radiólogos. Se desarrolló un sistema para detectar automáticamente tumores en mamas del tipo
graso y del tipo fibroglandular. En el desarrollo de este sistema se emplearon 3 imágenes del tipo
graso, 27 del tipo fibroglandular, 15 heterogéneamente densas y 2 altamente densas. La región de
la mama ha sido extraída a partir de estos mamogramas mediante el método de umbralización.
iv
Luego, la densidad promedio del área del musculo pectoral, el momento central del área de la
glándula mamaria y los valores de las características del histograma de la densidad de la glándula
mamaria fueron calculados.
La estructura de la glándula mamaria fue clasificada a partir de la distancia de Mahalanobis.
Como resultado, la correcta distinción entre estructuras de la glándula mamaria, fue de 93% para
mamas del tipo grasas y fibroglandulares y del 100% para mamas heterogéneas y altamente
densas. Para extraer el tumor de los mamogramas del tipo graso y fibroglandular previamente
clasificados, se empleó un Iris Filter para determinar la posición del tumor. Luego, se determinó
el centro y punto de control inicial del tumor mediante el algoritmo de Snakes, para proceder a
demarcar el borde del tumor y finalmente extraerlo de la imagen. La suma de las características
de forma, textura e histograma de densidad fueron calculadas para luego a través de la distancia
de Mahalanobis clasificar el tipo de carcinoma. La diferenciación fue del 100% tanto para
tumores benignos como malignos. Este sistema arroja resultados muy alentadores y se espera que
se someta a un banco de imágenes mayor, para corroborar su efectividad.

PALABRAS CLAVES: Mamografía, Mamograma, Cáncer de Mama, CAD (Computer Aided


Diagnosis), Procesamientos de Imágenes, Iris Filter, Snakes, Gray Level Run Length Matrix,
Distancia de Mahalanobis.

Aprobado con mención: _______________


Postulado para el premio: _______________

Sartenejas, Abril de 2009

v
DEDICATORIA

A mi madre, por apoyarme, alentarme y ser mi compañera y amiga en cada


momento de mi vida,

A mi padre, por adentrarme al maravillo mundo de la ciencia,

A mi hermana, por su alegría y simpatía y aliento que me ayudaron a persistir en


el transcurso de mi carrera,

A Juana Inés, por ser mi sabia consejera y por creer en mí,

A Juan por brindarme el apoyo necesario para culminar mi carrera,

A todos mis amigos, simplemente por existir y estar ahí tanto en los momentos de
apremio como en los momentos de alegría,

A todas las mujeres del mundo,

vi
AGRADECIMIENTOS

Un agradecimiento muy especial, a los Profesores Watanabe, Fukumoto, a la USB y a la


empresa Teikoku Oil, por haber hecho posible realizar mi sueño de vivir un año en Japón.

A mis amigos japoneses Koki San, Abe Kun y Guuchon, por haber estado ahí apoyándome en
la realización de esta investigación y por haber hecho mi estadía en Nagaoka una experiencia
inolvidable.

Al Centro Clínico de Esterotaxia CECLINES y al Hospital Central de Nagaoka, por haberme


facilitado las imágenes utilizadas en esta investigación y brindarme su valiosa asesoría médica.

A mis padres, por su confianza y apoyo en cada una de las etapas de mi vida y de mi carrera.
Sin ustedes este éxito no habría sido posible.

A mis Profesores Juan Carlos Grieco y Gerardo Fernández, por su valiosa ayuda y por
brindarme una gran amistad.

A Ismail, Oliver, Ulderico, Oscar, Andrés, Christian y a todos mis amigos por estar allí
siempre, en las buenas y en las malas. A todos ustedes muchas gracias.

A mis niñas lindas, por todo el cariño brindado.

A mi Familia, no sólo grande en número sino también grande en corazón.

A Dios, ya que sin él nada sería posible.

vii
ÍNDICE GENERAL

ACTA DE EVALUACIÓN DEL PROYECTO DE GRADO __________________________________iii

RESUMEN___________________________________________________________________ iv

DEDICATORIA _______________________________________________________________ vi

AGRADECIMIENTOS _________________________________________________________ vii

ÍNDICE GENERAL ____________________________________________________________ viii

ÍNDICE DE FIGURAS ___________________________________________________________ ix

ÍNDICE DE TABLAS ____________________________________________________________ xi

LISTA DE ABREVIATURAS _____________________________________________________ xiv

CAPÍTULO 1 _________________________________________________________________ 1

INTRODUCCIÓN ______________________________________________________________ 1

1.1 Introducción ________________________________________________________________ 1

1.2 Objetivos __________________________________________________________________ 4


1.2.1 Objetivo General _________________________________________________________________ 4
1.2.2 Objetivos Específicos _____________________________________________________________ 4

1.3 Estructura de la Tesis _________________________________________________________ 5

CAPÍTULO 2 _________________________________________________________________ 6

MARCO TEÓRICO _____________________________________________________________ 6

2.1 Cáncer de Mama ____________________________________________________________ 6

2.2 Terminología del Cáncer de Mama ______________________________________________ 9

2.3 Tipos de Cáncer de Mama ____________________________________________________ 10

2.4 Causas ____________________________________________________________________ 11

2.5 Signos y Síntomas___________________________________________________________ 12

2.6 Diagnóstico ________________________________________________________________ 12

2.7 Etapas de Extensión _________________________________________________________ 13

viii
2.8 Prevención ________________________________________________________________ 15

2.9 Tratamiento del Cáncer de Mama ______________________________________________ 15

2.10 Tipos de Cirugías para el Cáncer de Mama _____________________________________ 16

2.11 Mamografía _____________________________________________________________ 17


2.11.1 Proyecciones en Mamografías _____________________________________________________ 18
2.11.2 Características de las anomalías encontradas en mamografía ____________________________ 20
2.11.3 CLASIFICACIÓN BIRADS___________________________________________________________ 22
2.11.4 Diagnóstico Asistido por Computadoras (CADs) _______________________________________ 25

CAPÍTULO 3 ________________________________________________________________ 27

PROCEDIMIENTO EXPERIMENTAL ______________________________________________ 27

3 Construcción de un sistema CAD automático para detectar y clasificar tumores mamarios


presentes en Mamogramas Digitales __________________________________________________ 27

3.1 Características de las imágenes mamográficas utilizadas como objetos de estudio ______ 27

3.2 Diagrama de flujo del Sistema CAD de detección automática de tumores y clasificación en
mamografía digital ________________________________________________________________ 29

3.3 Método de Clasificación de la estructura de glándula mamaria. ______________________ 30


3.3.1 Extracción del área del seno mediante método de umbralización_________________________ 30
3.3.2 Extracción del músculo pectoral mediante el método de Aprox. de Mín. Cuadrados__________ 32
3.3.3 Cálculo de las características de la estructura de la glándula mamaria _____________________ 33
3.3.4 Clasificación de la estructura de la glándula mamaria mediante la Distancia Mahalanobis _____ 38

3.4 Método de extracción del área tumoral _________________________________________ 40


3.4.1 Determinación de la Región de Interés ( Region Of Interest: ROI) _________________________ 40
3.4.2 Extracción de la locación del tumor mediante el Vector Gradiente y Iris Filter _______________ 41
3.4.3 Extracción del tumor mediante modelos de contornos activos (SNAKES) ___________________ 44
3.4.4 Extracción (corte) del tumor ______________________________________________________ 47

3.5 Diferenciación entre tumores benignos y tumores malignos ________________________ 48


3.5.1 Cálculo de las características de los tumores _________________________________________ 48
3.5.2 Diferenciación de tumores benignos y malignos mediante la Distancia de Mahalanobis _______ 51

ix
CAPÍTULO 4 ________________________________________________________________ 52

RESULTADOS Y DISCUSIÓN ____________________________________________________ 52

CAPÍTULO 5 ________________________________________________________________ 60

CONCLUSIONES Y RECOMENDACIONES __________________________________________ 60

REFERENCIAS _______________________________________________________________ 62

APÉNDICE__________________________________________________________________ 65

APÉNDICE A ________________________________________________________________ 65

x
ÍNDICE DE FIGURAS
Figura 2.1 Anatomía básica de la glándula mamaria _________________________________________ 7
Figura 2.2 Tipos de Cáncer de Mama determinados por el tejido donde se forman _______________ 11
Figura2.3 Lumpectomía _______________________________________________________________ 16
Figura 2.4 Mastectomía Parcial _________________________________________________________ 16
Figura 2.5 Masctetomía Radical_________________________________________________________ 16
Figura 2.6 Unidad de Mamografía Digital _________________________________________________ 17
Figura 2.7 Mujer a la que se le está tomando una mamografía ________________________________ 17
Figura 2.8 Proyección Medio Lateral Oblicua (MLO) _________________________________________ 19
Figura 2.9 Proyección Cranio Caudal (CC) _________________________________________________ 19
Figura 2.10 Mamografías en MLO _______________________________________________________ 19
Figura 2.11 Mamografías en CC _________________________________________________________ 19
Figura 2.12 Imagen Sospechosa ded constituir una masa (flecha) ______________________________ 20
Figura 2.13 Desaparición de la masa sospechosa tras compresión selectiva de la zona. Se trataba de
superposición de tejidos _______________________________________________________________ 20
Figura 2.14Tipos de Márgenes en una masa. ACircunscrito, B Microlobulado, C Oscuricido o mal definido,
D Espiculado ________________________________________________________________________ 21
Figura 2.15 Tipos de Forma en una Masa. A Redonda, B ovalada, C Lobular, D irregular. ____________ 21
Figura 2.16 Cinco tipos de lesiones mamarias clasificadas según la categoría del BIRADS. ___________ 23
Figura 2.17 Muestras de mamogramas clasificados según la estructura de la glándula mamaria _____ 24
Figura 3.1 Muestras de mamogramas clasificados según la estructura de la glándula mamaria utilizados
como objetos de estudio en la construcción del presente CAD _________________________________ 28
Figura 3.2 Muestras de mamogramas utilizados como objetos de estudio para el sistema de detección
automática de tumores mamarios. ______________________________________________________ 28
Figura 3.3 Diagrama de flujo del sistema de clasificación de la estructura de la glándula mamaria y del
sistema de detección automática de tumores para mamas Adiposas y Fibroglandulares. ____________ 29
Figura 3.4 Imagen original e imagen resultante tras convertirla a binario ________________________ 31
Figura 3.5 Área mamaria extraída mediante proceso de Labeling ______________________________ 31
Figura 3.6 Área del músculo pectoral_____________________________________________________ 32
Figura 3.7 Método de aprox. de Mín. Cuadrados ___________________________________________ 32
Figura 3.8 Área del seno previamente extraída_____________________________________________ 33
Figura 3.9 Área del seno donde ha sido eliminada el área del músculo pectoral ___________________ 33

xi
Figura 3.10 Histogramas de Densidad del cada una de las estructuras de glándulas mamarias y sus
características ______________________________________________________________________ 36
Figura 3.11 Determinación de las áreas de estudios _________________________________________ 38
Figura 3.12 Flujograma del método de clasificación de la estructura de la glándula mamaria ________ 39
Figura 3.13 Regiones de Interés del Histograma de Densidad __________________________________ 40
Figura 3.14 Determinación Región de Interés (Region of Interest: ROI) __________________________ 40
Figura 3.15 Diagrama del Iris Filter. Región circular. El píxel P en el centro de la región circular, cuyos
valores serán cambiados, se muestra junto con las medias líneas radiadas desde él. _______________ 43
Figura 3.16 Imagen resultante tras aplicar Iris Filter _________________________________________ 44
Figura 3.17 Modelo Snakes ____________________________________________________________ 45
Figura 3.18 Técnica de Snakes __________________________________________________________ 45
Figura 3.19 Extracción del domino de un tumor mediante el modelo de Snakes ___________________ 46
Figura 3.20 Esquema del método empleado donde se nota el centro O y puntos de control Si, S i+1 y la
curva que converge al borde del tumor ___________________________________________________ 47
Figura 3.21 Corte del tumor mediante esta técnica __________________________________________ 47
Figura 3.22 Muestra de Grey Level Run Length Matrix (GLRLM) para matriz 5x5___________________ 50
Figura 3.23 Flujograma de clasificación de tumores _________________________________________ 51
Figura 4.1 Mamogramas clasificados equívocamente en este estudio___________________________ 56
Figura 4.2 Imágenes fibroglandulares erróneamente clasificadas como heterogéneamente densas
___________________________________________________________________________________ 56
Figura 4.3 Histograma de densidad de la glándula mamaria usando como parámetro SKW ○2
___________________________________________________________________________________57

xii
ÍNDICE DE TABLAS
Tabla 2.1 Incidencia del Cáncer en Mujeres en Venezuela _____________________________________ 8
Tabla 2.2 Mortalidad del Cáncer en Mujeres en Venezuela _____________________________________ 8
Tabla 2.1 Número y tipo de imágenes utilizadas para el estudio del sistema CAD automático de tumores
en mamografías _____________________________________________________________________ 27
Tabla 4.1 Tasa de Clasificación de la estructura de la glándula mamaria mediante la distancia de
Mahalanobis________________________________________________________________________ 56
Tabla 4.2 Tasa de Clasificación de Tumores Benignos y Malignos ______________________________ 59

xiii
LISTA DE ABREVIATURAS

• ACR: American College of Radiology. (Colegio de Radiología Americano)

• ACS: American Cancer Society (Sociedad Americana del Cáncer)

• BI-RADS: Breast Imaging Reporting and Data System (Informe de Imágenes del Seno y
Sistema de Datos)

• CAD: Computer Aided Diagnosis (Diagnóstico Asistido por Computadora)

• CC: Proyección Cráneo-Caudal

• CNT: Contrast (Contraste)

• DCIS: Ductal Carcinoma “in situ”

• DICOM: Digital Imaging and Communication in Medicine.


(Tratamiento digital de imágenes y Comunicaciones en Medicina)

• EGY: Energy ( Energía)

• EPY: Entropy (Entropía)

• GRLM :Gray Level Run Length Matrix (Matrices de longitud de secuencias de niveles
de gris)

• IBC: Cáncer inflamatorio del seno

• IDC: Carcinoma ductal invasivo (infiltrante)

• ILC: Carcinoma lobulillar invasivo (infiltrante)

• KRT: Kurtosis (Curtosis)

• LCIS: lobulillar Carcinoma “in situ”

• MEN: Mean (Media)

• MLO: Proyección Medio-Lateral-Oblicua

• SKW: Skewness (Asimetría)

• VAR: Variance (Varianza)

xiv
1

CAPÍTULO 1

INTRODUCCIÓN

1.1 Introducción
Se ha determinado, que el cáncer de mamas es la tumoración más frecuente en la población
femenina en diversas partes del mundo, y la segunda causa de muerte de mujeres que padecen
esta enfermedad. Según la Sociedad Americana del Cáncer, ACS (American Cancer Society), en
el año 2005, un estimado de 1.150.000 mujeres a nivel mundial fueron diagnosticadas con cáncer
de mamas y 411.000 murieron de esta enfermedad. Una de cada ocho mujeres ó 12.6% de todas
las mujeres, desarrollará cáncer de mamas a lo largo de su vida y una de cada 25 morirá por esta
enfermedad [1]. En Venezuela, el cáncer de mama representa la segunda tumoración con mayor
incidencia y la segunda causa de muerte en mujeres con cáncer, después del cáncer del cuello
uterino [2]. En Japón, donde se desarrolló esta investigación, el cáncer de mama ocupa el primer
lugar dentro de las afecciones de cáncer que sufren las japonesas entre 40 y 50 años. El celibato,
la no procreación y la occidentalización de los hábitos alimenticios, son considerados por los
nipones, algunas de las causas principales en el incremento progresivo de mujeres que sufren de
cáncer de mama en Japón, así como de aquellas que lo sufren cada vez a más temprana edad. De
allí, su preocupación por desarrollar métodos de avanzada tecnología que faciliten el diagnóstico
clínico.

En efecto, debido a que actualmente no existe manera de prevenir dicho cáncer, el


procedimiento de reducir los índices de mortalidad se basa en la detección de la enfermedad lo
antes posible. La temprana detección de cáncer puede salvar a los pacientes de un tratamiento
radical agresivo y aumentar la tasa de curación de la enfermedad. En tal sentido, actualmente la
mamografía es uno de los mejores métodos de diagnóstico por imágenes que se dispone para la
detección de lesiones mamarias. Recientes técnicas de procesamiento de imágenes para
mamografía digital, han facilitado la temprana detección de anormalidades. Sin embargo, su
clasificación entre benigno y maligno continúa siendo una de las más difíciles tareas para
radiólogos e investigadores.
2

El problema radica en la falta de individualidad de patrones de tipo benigno y maligno. Ambos


tipos presentan características similares tanto en tamaño, forma, color, distribución, etc. La
interpretación de los radiólogos en tales casos produce a veces errores en el diagnóstico; ya sea
en casos malignos no evidenciados o en un número mayor de biopsias benignas innecesarias. Lo
acertado del diagnóstico depende del entrenamiento acumulado, la experiencia y en muchos casos
de criterios subjetivos. Incluso expertos con un nivel alto de entrenamiento pueden tener una gran
variación en sus diagnósticos [3].

Hoy en día, los radiólogos que examinan las mamografías normalmente tienen que diagnosticar
un gran número de casos al día. Esto, aunado a que hay lesiones difíciles de detectar por el ojo
humano, existe también la ocultación 2-D de objetos o tejidos, el cansancio, falta de
concentración y la enorme responsabilidad y presión a que se ven sometidos, constituyen factores
que hacen que sea de gran utilidad un sistema de ayuda al diagnóstico. Investigadores han
demostrado que el Diagnóstico Asistido por Computadora, conocido como CAD (por sus siglas
en inglés, Computer-Aided Diagnosis), puede reducir los errores de detección y dar una segunda
opinión a los especialistas a la hora de realizar un análisis. En este sentido, el presente proyecto
de grado ha pretendido desarrollar un sistema CAD con el fin de optimizar el reconocimiento y
clasificación de lesiones mamarias presentes en mamografías digitales, a través de técnicas de
procesamiento de imágenes, reconocimiento de patrones e implementación de métodos
estadísticos.

El sistema desarrollado en este trabajo pretende servir de ayuda al radiólogo, ofreciéndole más
elementos de juicio a la hora de establecer un diagnóstico y de decidir qué acciones han de
tomarse ante un determinado caso.

El tema tratado posee además un impacto social de mucho interés, debido a que una pequeña
mejora en la precisión diagnóstica podía suponer un enorme beneficio para los pacientes que
presentan este tipo de tumores.

Para ello, a través de herramientas computacionales de manejo de imágenes, se han


desarrollado diversos algoritmos de análisis y segmentación de las mismas, con el fin de
conseguir patrones de interés presentes en mamografías, asociados con lesiones mamarias. De la
misma manera, se han utilizado métodos estadísticos que permitieron clasificar correctamente el
mayor número de lesiones mamarias (en especial nodos) en tumores benignos o malignos.
3

Para ello, se contó con un banco inicial de mamografías ya previamente diagnósticas y


clasificadas por un especialista, con el fin de comprobar y comparar las conclusiones de la
investigación.

Los resultados del presente trabajo de investigación, van dirigidos fundamentalmente a los
científicos en el área de procesamiento de imágenes médicas, y en especial a los radiólogos, ya
que se intenta contribuir en las líneas de investigación que facilitan y aumentan la fiabilidad de
las decisiones del radiólogo, intentando la integración del mismo como parte del sistema,
proporcionando una herramienta que sirva de apoyo a la hora de la toma de decisiones y que
abra nuevos caminos de investigación.
4

1.2 Objetivos

1.2.1 Objetivo General

El presente proyecto de tesis, tiene como objetivo principal, crear un sistema de diagnóstico
asistido por computadora (CAD) para mamografía digital, que permita detectar y clasificar la
estructura de la glándula mamaria y las lesiones presentes en ella. Para ello se pretende emplear
diferentes técnicas de procesamiento de imágenes, combinado con métodos estadísticos que
permitan mejorar la detección y clasificación de patrones benignos y malignos, proporcionando
así, una herramienta útil a los radiólogos para optimizar el diagnóstico médico de la patología
mamaria.

1.2.2 Objetivos Específicos

Entre los objetivos específicos que enmarcan el desarrollo de este proyecto y que nos
permitirán alcanzar nuestro objetivo principal se encuentran los siguientes:

 Realizar una investigación documental sobre los diferentes algoritmos de segmentación


y clasificación, y la posibilidad de optimización y aplicación de los mismos en el
estudio de mamografías digitales.
 Verificar la tecnología que permita una óptima implementación de la misma,
permitiendo la posibilidad de expansión para algoritmos futuros, conjuntamente con la
posibilidad de obtener una interfaz visual orientada al usuario final.
 Acumular experiencia en la manipulación, visualización y almacenamiento de imágenes
 Aplicar técnicas de procesamiento de imágenes utilizando como entrada mamografías
digitales.
 Desarrollar una aplicación a través del diseño orientado a objetos.
 Lograr el aprendizaje y desarrollar la habilidad capaz de interpretar y ofrecer un
diagnóstico de una mamografía mediante la detección de patrones basado en la
metodología del BIRADS (Breast Imaging Reporting and Data System) del ACR
(American College of Radiology).
 Integrar conocimientos del área informática y de medicina con el fin de construir una
herramienta que sea capaz de detectar patrones y clasificarlos como tumor benigno o
maligno, que pueda ser utilizada por los médicos y que facilite o mejore su ejercicio
profesional con un alto grado de confiabilidad.
5

1.3 Estructura de la Tesis

A continuación se hace una breve descripción del contenido de los capítulos y apéndices
contenidos en esta tesis. El trabajo presentado en este documento se ha estructurado en 5
capítulos, incluido éste. El contenido de los 4 capítulos restantes se resume a continuación.

 Capítulo 2: Marco Teórico.


Se exponen los conceptos y fundamentos del área médica, que sirvieron de base y apoyo
para desarrollar las técnicas y algoritmos implementados en esta investigación. Se
abordan diversos temas como qué es el cáncer de mama, la mamografía, Sistemas CAD,
Capítulo 3: Procedimiento Experimental.
Aquí se muestra el trabajo práctico de la tesis conjuntamente con el marco teórico del
procesamiento de imágenes, en donde se hace una descripción de las técnicas de
segmentación, extracción de características y clasificación empleadas en mamografía
digital, y en donde se arrojan y explican ciertos resultados preliminares obtenidos en el
estudio.
 Capítulo 4: Resultados y Discusión.
Se exponen los resultados obtenidos, y se detallan y discuten los experimentos
realizados.
 Capítulo 5: Conclusiones y Recomendaciones.
Se recogen las conclusiones finales de todo el trabajo realizado y se exponen las líneas
de trabajo que quedan abiertas a futuras investigaciones.

Adicionalmente, se ha incluido un apéndice, en el que se trata lo siguiente:

• Apéndice A: Programas.
Se muestran los programas desarrollados en Lenguaje de Programación C++ mediante
el software Visual Studio 2005.
6

CAPÍTULO 2

MARCO TEÓRICO

2.1 Cáncer de Mama

El cáncer por definición consiste en la transformación de células benignas en células malignas


que crecen en forma autónoma y desordenada, ocasionada por una mutación o alteración de un
gen. Las células alteradas proliferan hasta conformar el tumor, en forma de nódulo o masa, el
cual, en el caso de la mama, puede ser palpable mediante el autoexamen o por parte del médico,
o tan pequeño que requiera medios especiales de diagnóstico como la mamografía. El cáncer del
seno o de la mama, puede derivarse de los diferentes tejidos o elementos que constituyen la
anatomía de la glándula mamaria (mama o seno), cuya función fundamental es la producción de
leche en los primeros meses de la crianza del bebé [4][5].

Las células bajo condiciones normales, crecen de manera ordenada, bajo la coordinación de
sustancias reguladoras llamadas factores de crecimiento. En algunas oportunidades, las células
desobedecen a los factores de crecimiento y su crecimiento desordenado genera la formación de
tumores, que pueden ser benignos o malignos, dependiendo de ciertas características, como: el
daño que le produzcan a otros tejidos y la capacidad de hacer metástasis, o sea, de sembrarse en
lugares lejanos al tumor de origen. A los tumores malignos se les llama tumores cancerosos, o
cáncer[4].

El cáncer es una enfermedad de los genes, sean las mutaciones (cambios genéticos) heredadas
y transmitidas de padre/madre a hijo, o adquiridas, como resultado de la acción de agentes
ambientales, tóxicos o nocivos, que lesionan los genes, como el cigarrillo. En muchos casos
todavía se desconoce la causa[4] .

Cada seno está conformado por numerosos bulbos que producen leche, conocidos como
lóbulos, que están conectados por unos conductos al pezón; el resto de la glándula está
conformado en su mayoría por grasa, que es la que determina el tamaño del busto, ya que las
estructuras productoras de leche son más o menos las mismas en todas las mujeres.
7

A través de ese tejido graso también transcurren otros conductos: los conductos linfáticos.
Estos drenan linfa o líquido de los tejidos, el cual es retirado del seno y va hacia los ganglios
linfáticos y de allí a la circulación sanguínea. Los conductos linfáticos confluyen en ganglios
linfáticos, pequeñas estructuras con forma de fríjol, que se agrupan y se localizan en varias partes
del cuerpo, como en axilas, cuello, tórax e ingle, entre otros lugares. Dentro de la mama no hay
músculos, están por debajo, separándola de las costillas. Una muestra de la anatomía de la
glándula mamaria se puede apreciar en la Figura 2.2[4].

Figura 2.1 Anatomía básica de la glándula mamaria [4]

La cercanía y relación estrecha entre los lóbulos y los conductos lácteos y los conductos
linfáticos, determina que con frecuencia el tumor originado en las células de las estructuras
lácteas o glándula mamaria propiamente, invada o se extienda a los ganglios linfáticos de la
región, que tienen entonces importancia en el diagnóstico de la extensión de la enfermedad. El
crecimiento y extensión del cáncer de mama depende del tipo de células malignas que lo
compongan. También hay una gran variación en la tendencia a ramificarse que tiene este tumor
[4].

Por otro lado, considerando las estadísticas nacionales, el cáncer de mama es el segundo más
frecuente en Venezuela después del de Cuello uterino (20,55%). En la Tabla 2.1 se muestran los
tipos de cáncer y el porcentaje de incidencia en Venezuela para la población femenina [2].
8

Tabla 2.1 Incidencia del Cáncer en Mujeres en Venezuela

Para el caso del cáncer de mama, en el año 2005 fallecieron 1425 mujeres en Venezuela a
causa de este mal, que representó el 15.75% del total de fallecimientos por cáncer de la
población femenina en Venezuela [2] como se muestra en la Tabla 2.2.
Tabla 2.2 Mortalidad del Cáncer en Mujeres en Venezuela
9

Las probabilidades de curación no son tan altas en etapas avanzadas de la enfermedad; aun así,
con los tratamientos actuales, existen buenas posibilidades de supervivencia. Esta enfermedad es
fatal si no se trata a tiempo. Es extremadamente importante que se realice un diagnóstico
temprano. En ausencia de una efectiva prevención, el diagnóstico precoz es un importante medio
para reducir la mortalidad [4][5].

2.2 Terminología del Cáncer de Mama

Ya que puede ser difícil entender algunas de las palabras que los médicos utilizan para hablar
sobre esta enfermedad, a continuación se presentan los términos claves utilizados para describir
el cáncer de seno [5].

Carcinoma: este término se usa para describir un cáncer que ha comenzado en la capa de
revestimiento de órganos como el seno. Casi todos los cánceres del seno son carcinomas
(carcinomas ductales o carcinomas lobulillares).

Adenocarcinoma: éste es un tipo de cáncer que comienza en el tejido glandular (tejido que
produce y segrega una sustancia). Los conductos y los lobulillos del seno son tejidos glandulares
(producen leche), por lo que a los cánceres que comienzan en estas áreas algunas veces se les
llama adenocarcinomas.

Carcinoma “in situ”: este término se utiliza para la etapa temprana del cáncer, cuando sólo
sigue en la capa de las células donde se originó. Cuando se refiere al cáncer de seno, in situ
significa que las células cancerosas están solamente en los conductos (carcinoma ductal in situ) o
en los lobulillos (carcinoma lobulillar “in situ”). No se ha propagado al tejido más profundo en el
seno ni a otros órganos del cuerpo. Algunas veces se les conoce como cánceres no invasivos del
seno.

Carcinoma invasivo (infiltrante): un cáncer invasivo ya ha alcanzado más allá de la capa de


células donde se originó (contrario al carcinoma in situ). La mayoría de los cánceres del seno son
carcinomas invasivos (carcinoma ductal invasivo o carcinoma lobulillar invasivo).

Sarcoma: éstos son cánceres que comienzan en los tejidos conectivos, tal como el tejido
muscular, el tejido adiposo o los vasos sanguíneos. Los sarcomas del seno ocurren muy pocas
veces.
10

2.3 Tipos de Cáncer de Mama

Existen muchos tipos del cáncer de seno, aunque algunos de ellos ocurren en muy pocas
ocasiones. Algunas veces un tumor del seno puede ser una mezcla de estos tipos o ser una
combinación de los tipos “in situ” e invasivo [5]. En la Figura 2.3 [4], se pueden observar los
diferentes tipos de cáncer de mama determinados por el tejido donde se forman.

Carcinoma ductal “in situ” (DCIS): éste es el tipo más común de cáncer no invasivo del
seno. DCIS significa que el cáncer está solamente en los conductos y no se ha propagado a través
de las paredes de los conductos al tejido del seno. Casi todas las mujeres que tienen cáncer en
esta etapa logran una cura completa. A menudo, la mejor manera de detectar el carcinoma ductal
in situ a tiempo es con un mamograma.

Carcinoma lobulillar “in situ” (LCIS): esta condición se origina en las glándulas mamarias
(productoras de leche) y no atraviesa la pared de los lobulillos. Aunque no es un verdadero
cáncer, el carcinoma lobulillar “in situ” aumenta el riesgo de que una mujer desarrolle cáncer de
seno más adelante. Por este motivo, es importante que las mujeres con LCIS no dejen de
someterse a sus mamogramas periódicos.

Carcinoma ductal invasivo (infiltrante) (IDC): este es el cáncer de seno más común.
Comienza en un canal o conducto lácteo, penetra la pared del conducto e invade el tejido del
seno. Desde ese lugar es posible que pueda propagarse a otras partes del cuerpo. Es responsable
de aproximadamente ocho de diez de todos los casos de cáncer invasivo del seno.

Carcinoma lobulillar invasivo (infiltrante) (ILC): este cáncer comienza en las glándulas
mamarias o lobulillos. Puede propagarse a otras partes del cuerpo. Aproximadamente uno de
cada diez de los cánceres invasivos del seno son de este tipo.

Cáncer inflamatorio del seno (IBC): Este tipo de cáncer invasivo del seno no es
común. Representa aproximadamente del 1 al 3% de todos los cánceres del seno. Por lo general,
no se presenta una sola protuberancia o tumor, sino que el IBC hace que la piel del seno luzca
rojiza y se sienta acalorada. También causa un aspecto grueso en la piel con hoyuelos similar a la
cáscara de una naranja. El seno afectado puede volverse más grande, firme, sensible, o puede
presentar picazón. En sus etapas iniciales, este tipo del cáncer de seno a menudo se confunde con
una infección.
11

Debido a que no hay una masa definida, es posible que no aparezca en un mamograma, lo que
hace que sea aún más difícil detectarla temprano. Éste cáncer presenta usualmente una mayor
probabilidad de propagación y un peor pronóstico que el cáncer ductal invasivo o lobulillar
invasivo.

Figura 2.2 Tipos de Cáncer de Mama determinados


por el tejido donde se forman

2.4 Causas

Se desconoce la causa precisa. Pero se conocen los siguientes factores de riesgo [6]:

 Edad mayor de 45 años.


 Género, mayor incidencia en mujeres que en hombres
 Menarquía temprana antes de los 11 años y menopausia tardía.
 Nuliparidad [Mujeres que no tuvieron hijos]; o quienes tuvieron el primero después de
los 30 años.
 Factores genéticos y antecedentes familiares de cáncer de mama, (madre, hermanas o
primas).
 Administración prolongada de terapia de reemplazo hormonal.
 Radiaciones.
12

 Tabaquismo.
 Obesidad.
 Ingestión inmoderada de alcohol.
 Raza blanca.

A pesar de lo que mucha gente piensa, el cáncer de mama no tiene relación con amamantar,
golpes, moretones o la actividad sexual.

2.5 Signos y Síntomas

Los principales signos y síntomas son [6]:

 Cambio en la forma o contorno de la mama, con apariencia de "de piel de naranja"


 Bulto en la mama
 Secreción anormal del pezón o Sangrado
 Hundimiento o aplastamiento de la piel.
 Retracción o descamación del pezón.
 Cambios en el color o sensación de la piel de la mama, del pezón o de la areola, con
orificios, fruncido o escamoso, retracción, enrojecimiento, venas acentuadas en la
superficie de la mama.
 Masas mamarias identificadas generalmente durante un autoexamen de mama, las
cuales suelen ser indoloras, de firmes a duras y, por lo general, con bordes irregulares
 Puede haber dolor, aumento de tamaño o molestia sólo de un lado.
 Protuberancias o masas en la axila.
 Cualquier protuberancia, dolor, sensibilidad u otro cambio en las mamas de un hombre.
 Los síntomas de enfermedad avanzada son dolor óseo, pérdida de peso, inflamación de
un brazo y ulceración cutánea

2.6 Diagnóstico
La prevención más eficaz del cáncer de mama es la detección precoz y por ello la
autoexploración de mamas, de forma periódica, es fundamental. Además a partir de los 50 años y
antes si existen factores pre disponentes familiares, se deben realizar de forma periódica (cada
año) una exploración llamada mamografía. Esta exploración detecta pequeños tumores que
pueden pasar desapercibidos en la autoexploración [6].
13

La aparición de algún nódulo sospechoso indica la realización de una biopsia del mismo, esto
supone tomar un pequeño trozo del nódulo y analizarlo al microscopio para determinar la
presencia de células cancerosas. Normalmente la toma de la muestra se realiza mediante una
aguja que se introduce en el tejido mamario y por aspiración se recoge parte del tejido
sospechoso. La aspiración con aguja o biopsia con aguja de las masas de la mama pueden
mostrar si están llenas de líquido y proveer material para enviar al laboratorio para su análisis.
En el caso de anomalías muy pequeñas, visibles sólo en la mamografía, son necesarias técnicas
especiales [6].

Si el análisis detecta células cancerosas se realizarán otros estudios para ver la sensibilidad de
estas células con las hormonas femeninas (estrógenos y progestágenos). Según la sensibilidad a
estas hormonas se pueden sacar conclusiones sobre el tratamiento más correcto, ya que las
hormonas del crecimiento se utilizarán de forma diferente según la respuesta a las hormonas
femeninas de cada cáncer, y la probabilidad de recidivar será diferente en unos casos y en
otros[7].

Si se diagnostica un cáncer de mama, deben practicarse otros exámenes, incluyendo


radiografías de tórax y exámenes de sangre. Luego puede indicarse cirugía, radiación,
quimioterapia o una combinación de éstas, no sólo para el tratamiento, sino para ayudar a
determinar la etapa en que está la enfermedad. El estado es importante para orientar tanto el
tratamiento como el seguimiento y para tener una idea acerca de lo que se debe esperar en el
futuro[6][7].

La curación del cáncer de mama dependerá del estadio de extensión en el momento del
diagnóstico así como de la salud general de la persona afectada [6].

2.7 Etapas de Extensión


- Cáncer de mama etapa 0 (“in situ”).
Las células cancerosas solo se extienden por parte del tejido ductal o lobular de la mama. El
lobular “in situ” aunque no es un verdadero cáncer supone una predisposición a desarrollarlo,
el ductal in situ si o es.
- Etapa I
El tamaño del nódulo canceroso es menos de 2 centímetros y sin extensión a otros tejidos.
14

- Etapa II

Si el tamaño del cáncer es menor de 2 cm y se ha extendido a los ganglios de la axila, o cuando


el nódulo canceroso es mayor de 2 cm y menor de 5 cm con o sin diseminación a los
ganglios de la axila.

- Etapa III

• La etapa III A
El nódulo canceroso es menor de 5 cm pero se ha extendido a los ganglios de la
axila que se encuentran abigarrados y pegados entre sí o a otras estructuras. O bien
si es mayor de 5 cm con diseminación axilar.
• La etapa III B
El nódulo canceroso se extiende por los tejidos cercanos a la mama, la piel, las
costillas, los músculos del tórax o a los ganglios linfáticos de la pared torácica.

- Etapa IV

Cuando las células cancerosas se han diseminado a otros tejidos del cuerpo (huesos, pulmones,
hígado o cerebro), también localmente a la piel y a los ganglios linfáticos del cuello y clavícula.

- Cáncer inflamatorio de la mama


Es un tipo concreto y raro de cáncer de mama, la mama tiene aspecto inflamado con rubor y
calor con modificaciones de la superficie de la piel. Es muy agresivo y se disemina rápidamente.
-Recurrente
Cuando el cáncer se ha tratado y vuelven a aparecer células cancerosas en la mama, la pared
torácica o en otras partes del cuerpo [5][6].
Expectativas (pronóstico)
La etapa clínica del cáncer de mama es el mejor indicativo para el pronóstico (resultado
probable), además de algunos otros factores. Las tasas de supervivencia a cinco años para los
individuos con cáncer mamario que reciben el tratamiento apropiado son aproximadamente[6] :

 95% para la etapa 0


 88% para la etapa I
 66% para la etapa II
 36% para la etapa III
 7% para la etapa IV
15

2.8 Prevención
 Muchos de los factores de riesgo no se pueden controlar, pero es posible reducir los
riesgos a través de cambios en la dieta y en el estilo de vida.
 El autoexamen de mamas, el examen clínico de las mamas por parte de un profesional
entrenado y la mamografía son las tres herramientas para la detección temprana.
 La mayoría recomienda auto-exámenes de mama mensuales, la semana siguiente al
período menstrual si la persona tiene 20 años o más [6].

Consideraciones

 El cáncer de mama no puede prevenirse, pero es curable si se detecta a tiempo.


 Realizarse por primera vez una mamografía entre los 35 y 39 años para tener una
referencia de cuál es el estado de las glándulas mamarias.
 A partir de los 40 años de edad, las mujeres deben hacerse un examen clínico regular
con un profesional de la salud 1 vez al año.
 Realizarse una mamografía cada dos años entre los 40 y 50 años.
 Realizarse una mamografía todos los años después de los 50 años.[6]

2.9 Tratamiento del Cáncer de Mama

En el tratamiento del cáncer de mama se utilizan cuatro tipos de tratamientos [1,2,4]:

• Cirugía
• Radioterapia
• Quimioterapia
• Terapia hormonal

Se están realizando estudios clínicos con terapia biológica y con el trasplante de medula ósea.

En primer lugar se utiliza la cirugía para extraer el nódulo canceroso de la mama, también se
extraen los ganglios linfáticos axilares para su análisis en el cancerosas analizadas tienen
receptores para estrógenos o progesterona.
16

2.10 Tipos de Cirugías para el Cáncer de Mama


Los tipos de cirugía usados contra el cáncer de mama se muestran a continuación [6]:

• Cirugía conservadora
 Lumpectomía, que consiste en la extracción del tumor canceroso y una zona de
seguridad a su alrededor y en ocasiones algún ganglio axilar. Se asocia
posteriormente con la radioterapia. Ver Figura 2.4.
 Mastectomía parcial, en ella se extrae el cáncer con parte del tejido de alrededor del
mismo y el recubrimiento de los músculos del tórax debajo del tumor, con los
ganglios linfáticos axilares. También se aplica posteriormente la radioterapia. Ver
Figura 2.
• Cirugía agresiva o radical
 Mastectomía radical, es la extracción de toda la mama y recubrimiento de los
músculos del tórax y de la pared torácica situados debajo del tumor, incluidos los
ganglios linfáticos axilares. En la mastectomía parcial modificada parte de los
músculos de la pared del tórax se conservan. Ver Figura 2.5.

La radioterapia puede ser externa o a través de radioisótopos aplicados localmente (radioterapia


interna), la quimioterapia se aplica de forma intravenosa, y finalmente, la terapia hormonal se
aplica si las células cancerosas analizadas tienes receptores para estrógenos o progesterona[6].

Figura 2.3 Lumpectomía Figura 2.3 Mastectomía Figura 2.5 Masctetomía


Parcial Radical
17

2.11 Mamografía
La mamografía es un método para examinar los senos o mamas que utiliza pequeñas dosis de
radiación mediante el uso de una unidad de mamografía digital como la mostrada en la Figura
2.6 y en la Figura 2., para reproducir una radiografía llamada mamograma. Este simple
procedimiento sirve para detectar tumores y quistes muy pequeños, imposibles de descubrir con
un examen manual [8].

Figura 2.6 Unidad de Mamografía Figura 2.7 Mujer a la que se le está


Digital tomando una mamografía
Existen dos tipos de mamografías [1][4][7]: de control (procedimiento de rutina) o de
diagnóstico (para examinar áreas específicas en las que se ha palpado un bulto). En mujeres
jóvenes, embarazadas o que estén amamantando las mamas son más densas y la interpretación de
la mamografía suele ser más complicada que en mujeres mayores cuyas mamas tienen alta
proporción de grasa. Se recurre a las ecografías para distinguir entre masas sólidas, que podrían
ser cancerosas, de quistes (bolsas que contienen líquido) que son usualmente no cancerosos y así
reducir el número de biopsias innecesarias. La resonancia magnética puede identificar ciertos
tumores raros de detectar en mamografías. Para confirmar un diagnóstico de cáncer de mama se
realiza una biopsia. En la actualidad, las 4 técnicas más recientes que se han desarrollado en el
área de las mamografías son [6][7]: la mamografía de alta resolución, la magnificación, la
mamografía digital o digitalizada y la Estereotaxia.
18

La mamografía de alta resolución mediante foco fino de 0,3 y 0,1 mm., permite determinar
lesiones del orden de fracciones de milímetros con gran sensibilidad y contraste.
La magnificación, es una técnica que permite aumentar el tamaño de la imagen, pudiéndose
estudiar convenientemente la morfología de la misma, con más elementos de juicio a la hora de
determinar diagnósticos más precoces.
La Estereotaxia es una técnica radiológica que permite dirigir una aguja mediante un
microcomputador a un sector de la mama, pudiéndose efectuar su punción para extracción de
material celular, evitando así biopsias innecesarias y lesiones.
La mamografía digitalizada es una técnica de estudio de la imagen radiológica de alta
definición, que permite descomponer la imagen en diferentes densidades, pudiéndose estudiar
estas imágenes en diferentes escalas de colores, imperceptibles al ojo humano y extraer
información de alta calidad de zonas que inicialmente pueden ser dudosas, para su correcta
catalogación y estudio.
La mamografía de las dos mamas dura como máximo unos 15 a 20 minutos, a no ser que las
imágenes obtenidas, a juicio del radiólogo, no sean de buena calidad, en cuyo caso el proceso
debe repetirse.

2.11.1 Proyecciones en Mamografías

La mamografía no es un examen difícil de realizar, sin embargo, requiere de cierta experticia


por parte del especialista. Es necesario que el técnico reciba una formación específica para poder
realizar una buena exploración. La mama ha de colocarse de tal forma que se incluya la mayor
parte de la porción yuxtatorácica (cerca del tórax), debiendo relajar el hombro y los músculos
pectorales de la paciente. Si se realiza una compresión con el pie mediante un dispositivo de
control remoto, incluido en la mayoría de los mamógrafos, se pueden utilizar ambas manos para
colocar la mama. Hay que tener en cuenta que la pared torácica es curva y, en cambio, la tabla de
exploración y la película radiográfica presentan un borde recto, por lo que parte de la porción
posterior de la mama no se ve en la mamografía. Para minimizar este hecho se realizan un
mínimo de dos proyecciones por mama, considerándose proyecciones estándar la oblicua u
medio-lateral-oblicua (MLO) y la cráneo-caudal (CC) [9].
19

Medio-Lateral-Oblicua (MLO): Es la proyección que por sí sola que muestra más cantidad
de tejido mamario. En la Figura 2. podemos ver la técnica empleada y en la Figura 2.10 podemos
ver una muestra de un mamograma bajo este tipo de proyección.

Cráneo-caudal (CC): Esta proyección nos proporciona una visión axial de tejido mamario de
forma complementaria a la MLO, permitiéndonos ver la parte medial (yuxtatorácica), que tiende
a no salir en la MLO. Análogamente, podemos ver en la Figura 2. la técnica empleada y en
Figura 2.11 una muestra de un mamograma bajo este tipo de proyección..

Figura 2.8 Proyección Medio Figura 2.9 Proyección Cranio


Lateral Oblicua (MLO) Caudal (CC)

Figura 2.10 Mamografías en MLO Figura 2.11 Mamografías en CC


20

2.11.2 Características de las anomalías encontradas en mamografía

Masas Mamarias

Uno de los objetivos primordiales de esta tesis es la detección del contorno de una masa o
nódulo mamario en mamografía digital.

Una vez obtenidas las mamografías digitalizadas, se elabora un método de segmentación, cuyo
fin es detectar los contornos de las masas presentes en la imagen radiológica digitalizada.

La detección de masas en las mamografías es una tarea compleja, debido a que el volumen de
niveles de grises que contienen puede ser muy elevado y a que los bordes de las masas no están
claramente definidos dentro de la imagen.

Para detectarlas, se parte del hecho de que las masas suelen ser más claras que el resto de la
imagen, tienen un tamaño considerablemente mayor que las microcalcificaciones y que las
pequeñas zonas claras son producidas a veces por el ruido [10].

Para la descripción de las masas contenidas en una mamografía emplearemos el sistema BI-
RADS (Breast Imaging Reporting and Data System) [13]. Es decir, la terminología estándar
desarrollada por el Colegio Americano de Radiología (ACR), donde una masa se define como
una lesión ocupante de espacio visible en al menos dos proyecciones; si sólo se identifica en una
proyección la teórica masa se denomina densidad, denominándose pseudomasa a la creada por la
superposición de tejidos (Ver Figura 2.6 y Figura 2.5).

Figura 2.5 Imagen Sospechosa ded constituir Figura 2.4 Desaparición de la masa
una masa (flecha) sospechosa tras compresión selectiva de la
zona. Se trataba de superposición de tejidos
21

Los hallazgos mamográficos de una masa real incluyen su forma, márgenes, densidad, tamaño,
localización y cualquier otro hallazgo asociado como calcificaciones, retracción de la piel etc.

Los márgenes de una masa, generalmente reconocido como el hallazgo más determinante para
el diagnóstico de malignidad [14], se describen como: circunscritos, microlobulados, oscurecidos
por tejido adyacente de densidad similar, mal definidos o indistinguibles y por último
espiculados. (Figura 2.7).

A B

Glándula
mamaria

C D
Figura 2.6 Tipos de Márgenes en una masa. ACircunscrito, B
Microlobulado, C Oscuricido o mal definido, D Espiculado

La forma de una masa puede ser: redonda, oval, lobular o irregular (Figura 2.8)

A B

C C D
Figura 2.7 Tipos de Forma en una Masa. A Redonda, B ovalada, C Lobular, D irregular.
22

2.11.3 CLASIFICACIÓN BIRADS

2.11.3.1 Clasificación para lesiones mamairas

Las características de forma y márgenes expuestas anteriormente, definen una clasificación por
categoría basada en la terminología del BIRADS [13] que se muestra a continuación.

Evaluación Incompleta

Categoría 0: Se requiere evaluación por imágenes (magnificación, focalización,


ultrasonido, etc.)

Evaluación Completa-Categorías finales

• Categoría 1: Negativa, mama normal


• Categoría 2: Hallazgo benigno (fiboadenomas, lesiones grasas, linfonodos
intramamarios, etc.).
• Categoría 3: Hallazgo probablemente benigno. Sugiere intervalo corto de seguimiento.
• Categoría 4: Anomalías sospechosas. Debe considerarse biopsia debido a riesgo de
cáncer.
o Categoría 4A: Lesiones de baja probabilidad de ser malignas, las cuales sin
embargo van a biopsia.
o Categoría 4B: Lesiones de sospecha intermedia de malignidad. La conducta
dependerá de la correlación radiohistológica.
o Categoría 4C: Lesiones de sospecha intermedia de malignidad. La conducta
dependerá de la correlación radiohistológica.
• Categoría 5: Altamente sugerente de malignidad.
• Categoría 6: Se denominan a los cánceres ya confirmados con biopsia, antes de su
tratamiento definido (cirugía, radioterapia, quimioterapia, hormonoterapia).
23

En la Figura 2.16 se pueden apreciar diversos tipos de lesiones clasificadas por su categoría
según la terminología utilizada en el BIRADS.

(Categoría 1) (Categoría 2) (Categoría 3)

(Categoría 4) (Categoría 5)

Figura 2.16 Cinco tipos de lesiones mamarias clasificadas según la categoría del BIRADS.
24

2.11.3.2 Categorías de Composición (estructura) de la glándula mamaria

En relación al tipo de tejido preponderante en la estructura de la glándula mamaria encontrado


por el radiólogo durante la mamografía, se reporta la siguiente clasificación Ver Figura 2.17 :

• 1: Predominantemente Adiposas (Grasa en su mayor totalidad).


• 2: Fibroglandulares.(Densidades fibroganglionares esporádicas)
• 3: Heterogéneamente densas.
• 4: Extremadamente densas.

(1) (2) (3) (4)


Predominantemente Fibroglandular Heterogéneamente Densa Extremadamente Densa
Adiposa

Figura 2.18 Muestras de mamogramas clasificados según la estructura de la glándula mamaria


25

2.11.4 Diagnóstico Asistido por Computadoras (CADs)

Muchos diagnósticos erróneos pueden atribuirse a factores humanos. A pesar de que un mayor
tiempo dedicado al estudio de la mamografía o la doble lectura de la misma pueden mejorar los
resultados, no eliminan completamente los errores, el radiólogo no detecta la totalidad de los
carcinomas visibles en análisis retrospectivos de las imágenes, estos fallos son frecuentemente
secundarios a la sutileza de los cambios radiológicos representativos del carcinoma y su no
detección contribuye a elevar el número de carcinomas no identificados [10] .

El diagnóstico asistido por computadoras (CADs) del carcinoma mamario, es la aplicación de


técnicas computacionales al problema de la interpretación de las imágenes mamográficas[11].
Existen dos puntos principales en los sistemas de ayuda por computadora en relación con el
carcinoma mamario: Detección de signos mamográficos de carcinoma y diagnóstico de
carcinoma a partir de una lesión previamente identificada. En la tarea de la detección lo
importante es ayudar al radiólogo en la identificación y localización mamográfica de regiones
con lesiones, en la tarea diagnóstica, el objetivo es ayudar al radiólogo a determinar si una lesión
mamaria identificada es o no cáncer

La mayoría de las biopsias mamarias se realizan sobre lesiones que se manifiestan


mamográficamente bien como masas o como grupos de microcalcificaciones [10]. Los CADs
para la detección de anomalías, generalmente tienen mejores resultados con las
microcalcificaciones que con las masas[10].

El estudio de la mamografía es básicamente un ejercicio de señal-ruido y se presta al estudio


mediante computadoras, más que otras especialidades diagnósticas en radiología. La dificultad
radica en que hemos de identificar lesiones que varían desde alteraciones en partes blandas, de
distintas formas y márgenes, hasta calcificaciones de diferente morfología, tamaño y distribución
que pueden ser representativas de malignidad. Muy a menudo estos hallazgos están muy
próximos al ruido de base en que están incluidos, haciendo su identificación muy difícil o incluso
imposible, si a esto, le añadimos: la naturaleza del cribado ( control-screening), realizado a
mujeres sanas anualmente desde la edad de 40 años, la relativa baja incidencia de detección de
cáncer en ellas, de tres a seis por 1000 mujeres en función de la edad y de los factores de riesgo,
vemos que no son raros los fallos en el diagnóstico del carcinoma mamario. Por lo que, no es
sorprendente el que los Sistemas de Ayuda a la Detección y Diagnóstico por Computadoras
26

(CADs), se hayan abierto camino en la valoración clínica-mamográfica diaria [10][11].

Estos sistemas han sido diseñados para ayudar al radiólogo en la detección de masas y
microcalcificaciones sospechosas. La sensibilidad en la detección del carcinoma mamario,
aumenta significativamente cuando un radiólogo utiliza un sistema computarizado de ayuda a la
detección y diagnóstico Otros trabajos han demostrado la capacidad de los CADs en la detección
de aproximadamente la mitad de los carcinomas que han pasado inadvertidos[10]10][11][12].

Diferentes estudios [10] han encontrado que del 10 al 30% de los carcinomas mamarios,
visibles mamográficamente en lecturas retrospectivas, no han sido identificados en las lecturas
originales por diferentes razones.

Un método bien documentado de reducción de falsos negativos, es la utilización de la doble


lectura independiente, pero esto es ineficiente y costoso. Así pues, vemos que existe un interés
creciente en el desarrollo de estos sistemas, que pueden ser utilizados como una valiosa “segunda
opinión”, para mejorar la precisión y eficiencia en el diagnóstico del carcinoma mamario en sus
estadios más tempranos[10][11].

Para terminar este capítulo se puede indicar que la detección del cáncer de mama en etapas
tempranas es muy importante, pues de esto depende en gran medida la vida de la persona que
tenga este padecimiento. Un método muy común para examinar los senos es la mamografía, la
cual permite detectar tumores o quistes muy pequeños. El cáncer de mama es uno de las causas
de muerte más importantes en la población femenina de nuestro país, incluso existen muchas
campaña a nivel nacional para generar conciencia de lo importante que es este mal. En este
capítulo se hizo una breve descripción de este cáncer, de sus tipos, y de los tratamientos más
comunes que existen.
27

CAPÍTULO 3
2. PROCEDIMIENTO EXPERIMENTAL

3 Construcción de un sistema CAD automático para detectar y clasificar tumores


mamarios presentes en Mamogramas Digitales

3.1 Características de las imágenes mamográficas utilizadas como objetos de estudio

Todos los mamogramas utilizados en el presente estudio fueron imágenes tomadas a través del
equipo médico, Mamógrafo Toshiba MGV-100 con tubo de doble foco (0,1 y 0,3 mm de
diámetro) en el Hospital Central de Nagaoka, Niigata-Japón. Las condiciones asumidas para la
toma fueron de incidencia Medio Lateral Oblicuo (MLO), con resolución de 80 píxeles/cm, con 8
bits por píxel (256 niveles de gris de profundidad). El tamaño de las imágenes es de 4040x5420
píxeles y estaban almacenadas en formato tipo DICOM (Digital Imaging and Communication in
Medicine). Para facilitar el procesamiento,se redujeron a 404x542 píxeles y se transformaron a
formato RAW sin perder información relevante. Por otra parte, todas las imágenes manipuladas
fueron debidamente analizadas a través de la interpretación médica de mamogramas por parte de
radiólogos, usando el diagnóstico de clasificación por categoría basado en el BIRADS [13] del
ACR. El número y tipo de imágenes utilizadas para la construcción del CAD se muestran a
continuación en la Tabla 3.1 y ejemplos de las imágenes clasificadas según el tipo de estructura
de la glándula mamaria (densidad mamaria) se muestran en la Figura 3.1, así como ejemplos de
imágenes clasificadas que presentan algún tipo de tumor se muestran en la Figura 3.2.

Tabla 3.1 Cantidad y tipo de imágenes utilizadas para el estudio del sistema CAD automático
para detectar y clasificar tumores mamarios presentes en Mamogramas Digitales

Mamas Mamas Mamas Mamas


Predominantemente Fibroglandulares Heterogéneamente Altamente
adiposas Densas Densas
Sin
2 9 3 2
anormalidades
Con Tumores 1 18 12 0
28

(1) (2) (3) (4)


Predominantemente Fibroglandular Heterogéneamente Densa Extremadamente Densa
Adiposa

Figura 3.1 Muestras de mamogramas clasificados según la estructura de la glándula mamaria


utilizados como objetos de estudio en la construcción del presente CAD
Imágenes utilizadas para diferenciar los mamogramas según su tipo de tejido predominante. En esta tesis
fueron usadas exclusivamente imágenes con incidencia MLO.

(1) Predominantemente Adiposa (2) Fibroglandular

Figura 3.2 Muestras de mamogramas utilizados como objetos de estudio para


el sistema de detección automática de tumores mamarios.
Se evidencia un tumor en el área enmarcada por la circunferencia.
29

3.2 Diagrama de flujo del Sistema CAD de detección automática de tumores y


clasificación en mamografía digital

La organización del Sistema CAD desarrollado se presenta a continuación en la Figura 2.3. El


área mamaria y su fondo (mamografías) son divididos primero a través de un método de
umbralización. Luego, el músculo pectoral y la mama son segmentados. Se extraen las
características de forma y textura de la mama para seguidamente proceder a clasificar la
estructura de la glándula mamaria en estudio. Por último, se procede a detectar y clasificar
automáticamente los tumores en benigno o maligno.
IMAGEN DE ENTRADA

PROCESAMIENTO BINARIO DE IMAGEN


EXTRACCIÓN DEL ÁREA MAMARIA
LABELING (ETIQUETADO DE LA IMAGEN)

CORTE DEL MÚSCULO PECTORAL


MÉTODO APROX. DE MIN. CUADRADOS

CARACTERÍSTICAS DE FORMA
CÁLCULO DE CARACTERÍSTICAS ○
1
CARACTERÍSTICAS DE TEXTURA

CLASIFICACIÓN ESTRUCTURA DISTANCIA DE MAHALANOBIS


GLÁNDULA MAMARIA

ADIPOSAS-FIBROGLANDULARES HETEROGÉNEAMENTE EXTREMADAMENTE


DENSAS DENSAS

DETERMINAR
LOCACIÓN DEL TUMOR VECTOR GRADIENTE DE DENSIDAD

SNAKES
EXTRACCIÓN DEL ÁREA TUMORAL
INTERPOLACIÓN LINEAL

CARACTERÍSTICAS DE FORMA
CÁLCULO DE CARACTERÍSTICAS ○
2
CARACTERÍSTICAS DE TEXTURA

DISTINCIÓN ENTRE BENIGNO Y DISTANCIA DE MAHALANOBIS


MALIGNO

LESIÓN FINAL RESULTANTE


DETECTADA Y CLASIFICADA

Figura 3.3 Diagrama de flujo del sistema de clasificación de la estructura de la glándula mamaria
y del sistema de detección automática de tumores para mamas Adiposas y Fibroglandulares.
30

3.3 Método de Clasificación de la estructura de glándula mamaria.

Cuando los médicos radiólogos proceden a clasificar la estructura de la glándula mamaria,


toman en cuenta la normalidad del tejido de la glándula mamaria dentro del área del seno, su
distribución y densidad. En este sentido, el procedimiento llevado a cabo en este estudio, se basó
en subdividir el mamograma en análisis, en su background (fondo), el área del seno y el área del
músculo pectoral. Luego de segmentar dichas áreas, se extrajeron 6 características de forma y
textura a partir del histograma de la imagen en estudio, para finalmente proceder a clasificar el
mamograma según la estructura de la glándula mamaria.

3.3.1 Extracción del área del seno mediante método de umbralización

Los contrastes que se presentan en los valores de densidad dentro de una imagen mamográfica,
se deben a que la permeabilidad de los rayos X es diferente en el área del seno y su respectivo
fondo (background). Sin embargo, la alta densidad que se presenta en el músculo pectoral, en
tumores y en la composición de la glándula mamaria son producto de la baja permeabilidad de
los rayos X, y la baja densidad que se presenta en el tejido adiposo es producto, en cambio, de la
alta permeabilidad de los rayos X[14][14] . En este sentido, debido a que el borde entre el fondo
y en tejido graso (silueta del seno) no es nítido cómo se visualiza en la imagen de la Figura 3.4.1,
se procedió a detectar dicho borde mediante el método de umbralización binario fijo basado en el
histograma de densidad de la imagen. En el histograma de densidad, el valor de densidad del área
del fondo es más bajo que el de tejido graso, así como el número de píxeles de dicho fondo es
mucho mayor al de tejido graso. Por lo tanto, la diferencia entre la cantidad de píxeles de la
densidad adjunta y el valor de la baja densidad del fondo se consideró como valor de umbral para
separar de forma binaria las áreas de interés. El proceso de convertir en binario es una técnica
general utilizada para diferenciar áreas de interés en una imagen, sustituyendo por 1 los píxeles
mayores que el punto de umbral y por 0 aquellos que son menores. La imagen procesada de
forma binaria mediante este método, se muestra en la Figura 3. 3.2.
31

Método de
transformación a
binario

(1) Imagen Original (2) Imagen resultante luego de la


transformación a binario

Figura 3.4 Imagen original e imagen resultante tras convertirla a binario


La densidad del background fue suprimida a través del histograma de densidad

Por otro lado, los caracteres correspondientes a los datos del paciente e imagen, fueron extraídas
de la imagen original ya que no formaban parte del área mamaria a ser procesada. Luego, se
aplicó una técnica de Etiquetado (Labeling) a la imagen binaria, y el área donde el número de
píxeles(de cierta densidad) era máximo se asumió como la región del seno. “Labeling” es un
procedimiento que permite asignar un mismo número a un conjunto de elementos en común, para
poder conectarlos entre sí, a partir de los píxeles extraídos. Ejemplo de este proceso se muestra en
la Figura 3.5.

Procesamiento
mediante
Labeling

(1) Forma del Labeling (2) Imagen resultante tras Labeling


Figura 3.5 Área mamaria extraída mediante proceso de Labeling
El ruido fue removido tras extraer la etiqueta donde el área era máxima en el Labeling
32

3.3.2 Extracción del músculo pectoral mediante el método de Aprox. de Mín. Cuadrados

Cuando los radiólogos pretenden clasificar la estructura de la glándula mamaria, toman en


cuenta la proporción que ocupa la composición de la glándula mamaria y el tejido adiposo dentro
del área del seno existente, y así proceden a determinar el tipo de estructura. El músculo pectoral
no se incluye en esta observación. Por lo tanto, resulta necesario remover el área del músculo
pectoral para proceder a realizar un diagnóstico adecuado [14] [15] [16].
En la parte superior izquierda predominantemente en blanco de la Figura 3.6, se puede apreciar
de forma ampliada el músculo pectoral de un mamograma digital genérico. El área del músculo
pectoral se puede apreciar con una densidad más alta comparada con el resto del área mamaria,
así como el gradiente de concentración del borde tiende a crecer comparado con otros gradientes.
Por lo tanto, asumiendo la esquina superior izquierda como la coordenada XY (0,0), así como a x
como el punto donde el gradiente de concentración es máximo dentro del área del seno en la
dirección axial X, se procedió a calcular dichos valores. Los puntos extraídos fueron sustituidos
por el tipo de aproximación de mínimos cuadrados, debido a que el borde que delimita el área del
músculo pectoral, se puede asimilar bastante a una curva de segundo orden, por consiguiente, la
curva de aproximación del músculo pectoral fue calculada. La expresión de la aproximación de
mínimos cuadrados utilizada, se muestra en la ecuación (2.1), así como el método gráfico en la
Figura 3.7.
y = f(x) = a2x2 + a1x + a0 (3.1)
0 X 0 xmax X

Área del
Dir. músculo pectoral

F(x)

ymax

Y
Y
Figura 3.7 Área del músculo pectoral Figura 3.6 Método de aprox. de Mín. Cuadrados
El gradiente de concentración del músculo El límite entre el músculo pectoral y la glándula
pectoral y de la glándula mamaria es alto mamaria se puede aproximar a una curva de 2do orden
33

El área comprendida entre 0≦ y ≦ ymax y 0≦ x ≦ xmax fue asumida como el área del músculo
pectoral a partir del cálculo de la curva de aproximación de 2do orden para luego ser eliminada. El
resultado de la eliminación del músculo pectoral de la Figura 3.8 se muestra en la Figura 3.9.

Figura 3.8 Área del seno previamente Figura 3.9 Área del seno donde ha sido
extraída eliminada el área del músculo pectoral
El área del músculo pectoral todavía no El área del músculo pectoral fue removida
ha sido removida. mediante el método dinámico apropiado.

3.3.3 Cálculo de las características de la estructura de la glándula mamaria

Dado que el presente trabajo de investigación tenía como uno de sus objetivos clasificar la
estructura de la glándula mamaria, se procedió a determinar las características que permiten
diferenciar las imágenes del tipo predominantemente adiposo, fibroglandulares,
heterogéneamente densas y altamente densas, a través del cálculo de las características basadas
en la textura y forma, que muestran la distribución de densidad de la imagen, el promedio de
concentración del área del músculo pectoral y las características del histograma de densidad del
área de la glándula mamaria. En este apartado se van a describir las técnicas más empleadas para
conseguir que dada una imagen, o una región dentro de una imagen, logremos extraer las
características más relevantes, que posteriormente serán utilizadas para clasificar la imagen en
una de las clases previamente definidas.
34

3.3.3.1 Suma de características de forma de la estructura de la glándula mamaria

Las mamas del tipo predominantemente adiposas, fibroglandulares, heterogéneamente densas y


altamente densas, se pueden diferenciar a través de la distribución del tejido de la glándula
mamaria y del tejido graso del seno. Los métodos estadísticos aportan información relaciones con
los niveles de gris de la imagen. En especial, el Momento Central fue usado como un tipo de
características de forma que permite apreciar esta diferencia.

El momento refiere a la aspereza (textura) de un contorno, y se incrementa a medida que la


irregularidad de la forma aumenta. Provee información acerca de la aspereza de la forma y es
usado para distinguir las diferentes categorías de forma de calcificaciones [14].

Dado que la geometría de una región plana se basa en el tamaño, la posición, la orientación y la
forma, todas estas medidas están relacionadas con los parámetros denominados momentos. Los
momentos son cantidades escalares que proveen de excelentes medidas para análisis de patrones
con propósitos de reconocimiento de objetos. Los momentos generales se pueden hacer
invariantes a traslaciones en el plano solo con calcularlos respecto del centro de gravedad de la
figura, obteniéndose los llamados momentos centrales. Puesto que el centro de gravedad ocupa
siempre la misma posición relativa respecto a todos los puntos del objeto, los momentos centrales
así calculados son invariantes a las traslaciones de los objeto.

Los parámetros calculados en este trabajo, son invariantes a la rotación, escala, translación y
reflexión de las imágenes. Para una imagen digital 2-D, f (x, y), el momento central alrededor del
centro de gravedad de la imagen de orden (p + q) está definido en la ecuación (3.2):

µ pq = ∑∑ (x − x ) p ( y − y )q f (x, y ) (3.2)
x y

Donde, x y y son las coordenadas del centro de gravedad, dado por las ecuaciones (3.3 a),
(3.3 b):
m10 m01
x= y=
m00 m00 (3.3 a) y (3.3 b)

Y donde el momento general m pq está definido por la expresión (3.4):


m pq = ∑∑ x p y q f ( x, y )
x y (3.4)
35

3.3.3.2 Suma de características del histograma de niveles de gris de la glándula mamaria

Los mamogramas pueden dividirse mediante la clasificación de la estructura de la glándula


mamaria. Para ello en primer lugar se calcula su histograma, el cual da una representación gráfica
del número de píxeles que aparecen en la imagen para cada uno de los 256 niveles de gris
posibles (8 bits) que existen en las imágenes de muestras que se han utilizado en esta
investigación.

El histograma de niveles de gris para cada tipo de densidades (tejido predominante de la mama)
se muestra en la Figura 3.10. El histograma, es un tipo de característica de la textura de la
imagen, representando un método estadístico de la distribución de los píxeles de la imagen. El
histograma permite determinar el valor de intensidad (brillo) concerniente a la zona donde se
busca conocer las características de la textura.

Para evitar que los valores del histograma sean muy dispares, se procedió a normalizarlos. Al
normalizar un histograma podemos manejar las características de la textura como una cantidad no
dependiente del tamaño de la imagen. De esta manera, se entiende que hay una característica
peculiar del histograma clasificado acorde a la estructura de la glándula mamaria. Los
histogramas de las mamas adiposas, fibroglandulares y altamente densas presentaron 2 puntos
máximos mientras que las mamas heterogéneamente densas presentaron un sólo punto máximo.
El punto máximo en las mamas de baja densidad muestra la composición adiposa de la mama,
mientras que el punto máximo en mamas densas muestra la estructura de glándula mamaria. Por
consiguiente, la forma de los histogramas tiende a ser similar para mamas adiposas y
fibroglandulares, inclinándose hacia donde la presencia de tejido adiposo es alta.

Por otra parte, la densidad de la glándula mamaria existe porque la estructura de la glándula
mamaria está concentrada en una parte limitada. En mamas heterogéneamente densas, la
densidad de la glándula mamaria tiende a ser bastante uniforme, por lo que se presenta un sólo
punto máximo cercano a la región que contiene tejido adiposo. En mamas altamente densas, la
forma del histograma tiende a concentrarse hacia la parte donde existe una mayor intensidad
(brillo).
36
2000
・ Puntos máx= 2

Cantidad de
・ Forma punteada

píxeles
・ Posición del pto máx
→Baja densidad
0
0 Densidad (Escala de grises) 255
(1) Histograma de Densidad del área mamaria en mamas
predominantemente adiposas

2000
・ Puntos máx= 2
Cantidad de
píxeles

・ Forma punteada
・ Posición del pto máx
→Baja densidad
0
0 Densidad (Escala de grises) 255
(2) Histograma de Densidad del área mamaria en
mamas fibroglandulares

2000
・ Un solo punto máximo
Cantidad de
píxeles

0
0 Densidad (Escala de grises) 255
(3) Histograma de Densidad del área mamaria en mamas
heterogéneamente densas

2000
・ Puntos máx= 2
Cantidad de
píxeles

・ Forma gradual
・ Posición del pto máx
→Alta densidad
0
0 Densidad (Escala de grises) 255
(4) Histograma de Densidad del área mamaria en mamas
altamente densas

Figura 3.10 Histogramas de Densidad del cada una de las estructuras de glándulas
mamarias y sus características
Características peculiares asociadas a cada tipo de estructura se pueden observar en las gráficas.
37

Las áreas de donde se extrajeron las características a partir del histograma, fueron determinadas
como se muestra en la Figura 3.11. Primero, se seleccionó un área de estudio ○
1 , que abarcaba la

mayor concentración de píxeles en los alrededores de los puntos máximos, tomando como
referencia los mínimos locales P y Q del histograma. Segundo, se consideró el área ○
2 , formada
entre el punto Q y el valor límite de la escala de grises del histograma (255), dado que la suma de
píxeles de dicha área era mayor a la suma de píxeles del punto Q. Luego, se procedió a calcular
dos cuantificadores estadísticos para cada área, como lo fueron el momento central de tercer
orden, conocido como Asimetría o Sesgo (Skewness: SKW), y el momento central de cuarto
orden, conocido, como Curtosis (Kurtosis: KRT), utilizados como características para la
clasificación de la textura. Las expresiones de estos parámetros se pueden ver en las Ecuaciones
3.5-3.8 mostradas a continuación.

Sea P (i) la suma de píxeles, para el valor de nivel de gris i, en el histograma de densidad
normalizado para (i = 0,1 ,・ ・ ・ ・ , n-1 ), las ecuaciones de Skewness y Kurtosis son:

∑ (i − MEN ) P
1 3
SKW1 = 3 2 1 (i ) (3.5)
VAR1 i=P

∑ (i − MEN )
1 4
KRT1 = 2 1 P(i ) (3.6)
VAR1 i=P

Q Q
Donde MEN1 = ∑ iP(i ) es la Media1 y VAR1 = ∑ (i − MEN1 )2 P(i ) es la Varianza1
i=P i=P

n −1

∑ (i − MEN )
1 3
SKW2= 3 2 2 P( i ) (3.7)
VAR2 i =Q

n −1

∑ (i − MEN )
1 4
KRT2= 2 2 P( i ) (3.8)
VAR2 i =Q

Q Q
Donde MEN2 = ∑ iP(i ) es la Media2 y VAR2 = ∑ (i − MEN 2 )2 P(i ) es la Varianza2
i=P i=P
38
2000
Área de estudio ○
1 Área de estudio ○
2

píxeles
Cantidad de

0
P Q
0 Densidad (Escala de grises) 255

Figura 3.8 Determinación de las áreas de estudios


El Histograma fue divido en 3 regiones, donde se aprecia el área del contenido adiposo, la estructura de
la glándula mamaria y el tumor respectivamente, para mamas adiposas y fibroglandulares

3.3.3.3 Densidad promedio del área del músculo pectoral

Cuando se procede a realizar una mamografía, el técnico radiólogo opera el valor α y β como
fácilmente viendo la imagen enteramente. Debido a que la cantidad de rayos X cambia con cada
toma, el valor de radiación proyectada en el tejido por el especialista es diferente, incluso
tomando una nueva imagen sobre una misma mama. Por consiguiente, el histograma de densidad
cambiará también. Sin embargo, el radio de permeabilidad de los rayos X para cada tejido no
cambia. Por lo tanto, el promedio de densidad del área del músculo pectoral fue tomado en cuenta
como un peso a la cantidad de características del histograma de densidad de la glándula mamaria.

3.3.4 Clasificación de la estructura de la glándula mamaria mediante la Distancia


Mahalanobis

En esta tesis se procedió a clasificar la estructura de la glándula mamaria basado en el esquema


propuesto en la Figura 3.12. La primera clasificación divide los mamogramas en 2 grupos de
densidades, un grupo correspondiente a las mamas predominantemente adiposas y
fibroglandulares, y otro grupo correspondiente a las mamas heterogéneamente densas y altamente
densas. Luego, la segunda clasificación procede a dividir el segundo grupo de densidades en
mamas heterogéneamente densas y altamente densas. El análisis discriminatorio se llevó a cabo a
través de la técnica estadística conocida como la Distancia de Mahalanobis.
39

Se basa en correlaciones entre variables entre las cuales diferentes patrones pueden ser
identificados y analizados. Es una forma útil de determinar similitudes de un conjunto de
muestras desconocido a uno conocido. La Distancia Mahalanobis selecciona los datos de acuerdo
a la varianza y covarianza de las variables explicativas en el modelo. Es robusta a la
multicolinearidad y su interpretación estadística es simple.

Región Mamaria

Extraída
1era Clasificación

Mamas Adiposas Mamas heterogéneamente densas

Mamas Fibroglandulares Mamas altamente densas

2da Clasificación
Mamas Mamas altamente
heterogéneamente densas densas

Figura 3.9 Flujograma del método de clasificación de la estructura de la glándula mamaria


Debido a que el grado de dificultad de detección de tumores en mamas adiposas y fibroglandulares es
el mismo, la discriminación para estás dos clases no fue realizada
Para obtener la Distancia de Mahalanobis, fue necesario calcular las matrices de varianza-
covarianza de las características usadas para diferenciar las clases de estudio. Por otra parte, se
procedió a calcular el estadístico U del método no-paramétrico Mann-Whitney, con el fin de
demostrar que las muestras son independientes y provienen de la misma distribución, para
posteriormente efectuar la clasificación.

Se utilizaron como parámetros de estudio, las características de forma de la distribución de


densidad de la imagen, el histograma de densidad de la imagen, la densidad promedio del área del
músculo pectoral y el histograma de densidad de la estructura de la glándula mamaria para cada
grupo. La diferencia significativa de la suma de las características fue confirmada por el nivel de
significancia estadística menor al 5% para la primera y segunda clasificación, condición necesaria
para seleccionar las características a evaluar.
40

3.4 Método de extracción del área tumoral

La locación del tumor fue determinada mediante la aplicación del método vector gradiente de
densidad. Luego, el área del tumor fue extraída usando el modelo de extracción de contornos
activos, conocido como SNAKES basado en la locación específica del tumor.

3.4.1 Determinación de la Región de Interés ( Region Of Interest: ROI)

Dos puntos máximos existen en el histograma de densidad del seno, uno correspondiente a la
distribución del tejido adiposo, y otro a la composición de la glándula mamaria. La región con un
valor de densidad mayor al de la composición de la glándula mamaria es considerada como un
tumor. En este sentido, los píxeles cuyos valores eran mayores al valor de densidad del punto Q,
fueron asumidos como la región de interés (Region of Interest: ROI) para la detección del área
tumoral. La Figura 3.14 muestra el resultado de la extracción de la ROI a partir del área del seno.

2000
Tejido Composición de la Tumor
glándula mamaria
Cantidad de

adiposos
píxeles

0
P Q
0 Densidad (Escala de grises) 255

Figura 3.10 Regiones de Interés del Histograma de Densidad


Es posible aplicar un Filtro Iris (Iris Filter) a la región de concentración del tumor

(1) Imagen con tumor (2) Imagen tras determinar

Figura 3.11 Determinación Región de Interés (Region of


La Región de Interés que incluye el tumor fue posible de detectar
41

3.4.2 Extracción de la locación del tumor mediante el Vector Gradiente y Iris Filter

Se parte de la premisa de que la apariencia de un tumor en un mamograma consiste en una


región más o menos circular con brillo relativamente alto. En estas condiciones, si se obtiene un
mapa de gradientes de la mamografía, un tumor aparecerá como una región circular con muchos
gradientes apuntando hacia el centro. Una manera de evaluar el grado de convergencia del vector
gradiente en la vecindad de un pixel de interés es mediante el “Iris Filter” (Filtro de Iris)[17][18].

El Iris Filter fue diseñado para detectar regiones en un mamograma donde un tumor podría estar
presente. El algoritmo se basa en el análisis del promedio de orientación de los gradiente en un
región de interés (previamente identificada) conteniendo en su centro, el pixel cuyo valor va a ser
modificado. Este es un algoritmo eficiente para cuantificar estructuras de dos dimensiones como
las lesiones en un mamograma [16][17]. El grado de convergencia está relacionado con la
distribución de la orientación de los vectores gradientes. La región de soporte del Iris Filter está
controlada, es decir, que el grado de convergencia de los vectores gradiente en él se conviertan en
máximos. Esto significa que el tamaño y la forma de la región de soporte cambian
adaptativamente de acuerdo a la distribución de patrones de los vectores gradientes alrededor del
píxel de interés.

El Iris Filter asigna un nuevo valor a cada píxel de acuerdo al siguiente procedimiento. De
acuerdo a la Figura 3.15, una región circular de radio r, es definida alrededor del píxel de interés
cuyo valor va a modificarse. El píxel de interés se denota como el punto P(i,j), y M líneas de
longitud r radiadas desde P(i,j) son elegidas. Cada línea se denota como Li, i=0,1…, (M-1) y el
ángulo formado por dos líneas consecutivas es el mismo. En cuanto al píxel de interés, se procede
a calcular el vector gradiente g de un píxel P’(i,j), en donde θ es el ángulo formado por el vector
gradiente g en dicho punto y el vector unitario que apunta hacia P(i,j), donde r es la distancia
que conecta ambos puntos. Por otro lado, el ángulo φ, es aquel formado desde el origen del píxel
de interés hasta el pixel P’(i,j), como se muestra en la figura 3.15.

En este filtro, como se muestra en Figura 3.15 el punto P'(i,j) que dista una longitud r en la
dirección del ángulo φ con respecto al punto de interés P(i,j), se puede expresar como la
ecuación 3.9 [17][18].

P’(i’,j’) = P’(i + rcosφ,j + rsinφ) (3.9)


42

El ángulo θ’ del vector gradiente del punto P'(i,j) se calcula mediante la expresión 3.10 que
utiliza la máscara del vector gradiente mostrado en la Figura 3.15.

 ( f 3 + f 4 + f 5 + f 6 + f 7 ) − ( f11 + f12 + f13 + f14 + f15 )  (3.10)


θ ' = Tan −1  
 ( f1 + f 2 + f 3 + f 4 + f 5 ) − ( f 7 + f 8 + f 9 + f10 + f11 ) 

El ángulo θ formado por el segmento de línea que une P(i,j) con P’(i,j) y el vector gradiente está
definido por la ecuación 3.11.

θ= φ+θ
’ (3.11)

En cuanto a la estimación del Iris Filter, si P’(i,j) se refiere al valor un píxel arbitrario en la
media línea Li de longitud 1, se define el grado de convergencia c i, j del vector gradiente g i,j en
P’(i,j) hacia P(i,j) por medio de la expresión 3.12

cos θ ij g ≠0
ci , j = (3.12)
0 g =0

La salida C del Iris Filter, en relación al pixel de interés de cada media línea, recorre el máximo
en cada media línea dentro de un rango de longitud 1, y está dada por la expresión 3.13,
obteniéndose el valor promedio del máximo grado de convergencia de cada media línea.

1 M 1 N 
C= ∑  max
 N ≤l N ∑c i, j


(3.13)
M i =0  i i j =1 

La salida del Iris Filter varía entre -1 y +1. Un valor cercano a 1 indica que el píxel yace cerca del
centro de una característica (pixel de interés), teniendo valores de luminancia mayores que los de
sus alrededores. Es de esperarse a partir de la ecuación 3.13, que el Iris Filter asignará valores
cercanos a 1 a los píxeles que se encuentran en el centro de una característica ya que la mayoría
de los vectores gradientes apuntan hacia ellos.
43

Debido a que la salida de un píxel dado depende sólo del promedio de orientación del campo
gradiente en la región de soporte alrededor de él, y no de las magnitudes de sus gradientes, el
valor asignado será alto sin importar el contraste de una característica. Ésta es la particularidad
del Iris Filter, que cuenta con la capacidad de detectar características de bajo contraste, tales
como las lesiones incipientes en una mamografía [17]. Recurriendo a esta propiedad del Iris Filter,
se desarrolló un algoritmo que hace visible características de bajo contraste junto con
características de alto contraste.

Li
F7 F6 F5 F4 F3
L1
g
F8 F2 θ L0
1
φ
F9 F1 l L M-1
P
F10 F16

F11 F12 F13 F14 F15

Máscara usada para calcular el


vector gradiente

Figura 3.12 Diagrama del Iris Filter. Región circular. El píxel P en el centro de la región circular,
cuyos valores serán cambiados, se muestra junto con las medias líneas radiadas desde él.
Se fijaron medias líneas separadas por un ángulo constante y se calculó el grado de convergencia
o intensidad de la región

El Iris Filter, establece medias líneas radiadas del centro del píxel de interés, separadas por un
ángulo constante. Se procedió a calcular el mayor grado de concentración, y se asumió como
salida los valores de los máximos grados de intensidad. Se notó con esta técnica, que el grado de
convergencia crece en la región tumoral y en la frontera del área mamaria con su background
(fondo). Se fijó el número de medias líneas radiadas M=15, y se calcularon los puntos donde el
grado de convergencia era máximo. Un ejemplo de la imagen resultante, se muestra a
continuación en la Figura 3.16.
44

(1) Extracción de la ROI de la imagen (2) Resultado tras aplicar Iris Filter

Figura 3.13 Imagen resultante tras aplicar Iris Filter


El punto de concentración máximo se ubicó en el centro del tumor.

3.4.3 Extracción del tumor mediante modelos de contornos activos (SNAKES)

El método utilizado se en basa en la técnica de segmentación (extracción) conocida como


“contornos activos o modelos deformables (“SNAKES”) [19], que a partir de un contorno
cerrado inicial se va adaptando a los posibles objetos que se encuentra en una imagen. Es este
proceso de adaptación se va “deformando” o ajustando al contorno del objeto que se desea
extraer y que en este caso es un tumor. En [20] se define a los contornos activos como curvas
definidas dentro del dominio de una imagen que puede moverse bajo la influencia de fuerzas
internas provenientes desde el interior de la curva en sí, y bajo fuerzas externas calculadas desde
la data de la imagen. Las fuerzas internas y externas son definidas de tal forma que el Snake se
aproxime al borde de un objeto o a alguna otra característica dentro de una imagen.

Un esquema de segmentación basado en contornos activos tiene varias ventajas con respecto a
los esquemas de segmentación tradicionales. En un modelo geométrico continuo el contorno de
un objeto se considera como un todo y se usa como conocimiento a priori sobre la forma del
objeto a segmentar para limitar la búsqueda del objeto en la imagen. Además las propiedades de
continuidad y suavidad de los contornos activos pueden compensar las irregularidades que tienen
los métodos de segmentación tradicionales y que están presentes con mucha frecuencia en las
mamografías debido al ruido[20][21][21].
45

Otra ventaja importante es que la representación paramétrica de los modelos deformables


constituye una descripción analítica y compacta para los objetos a segmentar en la imagen. El
concepto de modelo deformable se genera a partir de la idea de adaptar dinámicamente contornos
o superficies siguiendo propiedades físicas como la elasticidad, suavidad, dureza y otras.

Como se muestra en la Figura 3.17, un Snake se define como una curva cerrada
X(s)= [x(s)’,y(s)’], donde s ∈ [0,1], que se mueve a través del dominio espacial de una imagen
para minimizar su energía funcional, guiada por fuerzas internas y externas provenientes de la
imagen, expresada en las ecuaciones . Aquí α , β y γ son parámetros de peso de cada punto de
control s, que controlan la tensión y rigidez de la Snake y donde X’(s) y X’’(S) denotan la
primera y segunda derivada de X(s) respecto a s [20][21].

E snakes = ∫ {αEint ernal ( x (s )) + βEimage (x (s )) + γE control x (s )}ds


1   
(3.14)
0

 1 
{ 
Eint ernal ( x (s )) = α x (s )' + β x (s )"
2
2 2
} (3.15)

 
Eimage = ( x (s )) = − I ( x (s ))
2
(3.16)

Primeramente, se define el punto de control S formando una curva cerrada alrededor del objeto
(tumor). Luego el Snake varía su posición buscando un estado energético menor, de tal forma de
disminuir la Esnakes definida en la ecuación 3.14. Luego se transforma la curva cerrada, de tal
manera de hacer la longitud de la circunferencia S pequeña, suave y convergente a las vecindades
del borde del dominio del objeto (tumor) como se muestra en la Figuras 3.17 y 3.18.
s

O
Objeto

O: Centro

Curva cerrada X(s)


Curva cerrada X(s)

Figura 3.15 Modelo Snakes Figura 3.14Técnica de Snakes


La Energía converge hacia el borde del objeto Se puede evitar ruido como el seno y los vasos sanguíneos
46

Sin embargo, existen ciertos problemas al utilizar el algoritmo de Snakes mediante la definición
original de Energía de Snakes descrita anteriormente. Esto se debe a que en los alrededores de un
tumor existen vasos sanguíneos y tejido mamario que representan un ruido en la imagen, lo que
impide extraer la forma cóncava del tumor. Para poder resolver esta dificultad, se estableció una
curva cerrada en el interior del tumor con un poco de ruido. Se asumió como centro del tumor O
para este método, el valor máximo arrojado por la salida del Iris Filter en la etapa anterior.
Además, se definió una nueva función de energía para el Snake para poder extraer el borde
cóncavo del tumor. Esta expresión se muestra en la ecuación 3.17

E control = X 2 +Y 2 (3.17)

La función de Control de Energía “Econtrol” se expande desde el centro de tumor radialmente y se


aproxima al borde cóncavo del tumor. Una muestra de una imagen donde se estableció el punto
de control O de la curva s, junto con la curva resultante que converge al borde del tumor, se
muestra a continuación en la Figura 3.19.

(1) Imagen donde se fijó el punto de (2) Imagen resultante tras aplicar
Control “O” Snakes, donde se observa la curva que
converge al borde cóncavo del tumor

Figura 3.16 Extracción del domino de un tumor mediante el modelo de Snakes


Se puede extraer complicadas formas sin importa el tamaño del tumor
47

3.4.4 Extracción (corte) del tumor

Como se puede observar en la figura 3.20, se fijó el punto “O” como el centro del tumor, y los
puntos Si y Si+1 como el punto de control y el punto de control siguiente del borde
respectivamente. De esta manera se forma un triángulo uniendo estos tres puntos de interés. Por
consiguiente, rodeando los segmentos de líneas que forman cada triángulo, se procedió a extraer
(cortar específicamente) el contorno del tumor, como se puede visualizar en la Figura 3.21

Si
Si+1

Figura 3.20 Esquema del método empleado donde se nota el centro O


y puntos de control Si, S i+1 y la curva que converge al borde del tumor
Se considera la unión del centro con los puntos de control como un triángulo

(1

(1) Puntos de control que convergen con el (2) Corte final del tumor
contorno del tumor
Figura 3.17 Corte del tumor mediante esta técnica
Se pudieron extraer exitosamente formas complicadas de tumores
48

3.5 Diferenciación entre tumores benignos y tumores malignos


Tomando como región de análisis el área extraída mediante el modelo de Snakes, se procedió a
calcular las características más apropiadas y significativas que permitieron discriminar los
tumores en benignos o malignos.

3.5.1 Cálculo de las características de los tumores

3.5.1.1 Características basadas en la textura de los tumores

La textura de una imagen está determinada por la forma en que están distribuidos los niveles de
gris de los píxeles. Aunque no existe una clara definición de textura, podemos definir una imagen
por sus propiedades tales como: irregularidad, homogeneidad, concavidad, convexidad...etc.
Todas estas características que nos determinarán lo que denominamos textura están extraídas a
partir de los niveles de gris de la imagen[24] [25] [26].

Basándose en el histograma de densidad, se utilizaron métodos estadísticos para extraer las


características de forma del tumor. Dichos métodos estadísticos aportan información relativa a la
distribución de los niveles de gris de una imagen. Entre los parámetros calculados se encuentran:
la Media, el Contraste, la Varianza, la Asimetría, la Curtosis, la Energía y la Entropía.

Si la distribución del histograma se inclina hacia una zona de alta densidad, la media y el
contraste alcanzan valores grandes. Cuando existen muchos valores de brillo remotos de la Media,
el valor de la Varianza aumenta. En cuanto a la Asimetría o Sesgo (Skewness), si la forma del
histograma es más baja que la media presentando una forma alargada de poco brillo, toma un
valor negativo, mientras que si presenta una forma alargada de alto brillo, toma un valor positivo.
En relación a la Curtosis, si el valor del histograma se concentra en la Media, toma valores
grandes.

Por otro lado, si la intensidad se concentra en un punto específico del histograma, la Energía
toma valores cercanos a uno, mientras que la Entropía (mide la uniformidad del histograma),
representa un parámetro de significado opuesto a la energía, dando como consecuencias
resultados inversos a ésta. Las expresiones de estas características se pueden observar en las
ecuaciones 3.18-3.24, mostradas a continuación.
49

Basado en el histograma de densidad normalizado P(i), para (i = ,


0 1 ,・ ・ ・ ・ , n -
1 ), se
definen los siguientes parámetros estadísticos de primer orden:

n −1
Media (Mean) MEN = ∑ iP( i ) (3.18)
i =0

n −1
Contraste (Contrast) CNT = ∑ i 2 P( i ) (3.19)
i =0

n −1
VAR = ∑ (i − MEN ) P( i )
2
Varianza (Variance) (3.20)
i =0

n −1

∑ (i − MEN )
1
SKW =
3
Asimetría (Skewness) P( i ) (3.21)
VAR 3 2 i =0

n −1

∑ (i − MEN )
1
KRT =
4
Curtosis (Kurtosis) P( i ) (3.22)
VAR 2 i =0

n −1
EGY = ∑ P( i )
2
Energía (Energy) (3.23)
i =0

n −1
Entropía Entropy) EPY = − ∑ P( i ) log P( i ) (3.24)
i =0

3.5.1.2 GLRLM Gray Level Run Length Matrix (Matriz de longitud de secuencia de
niveles de gris)

Dado que las medidas de texturas basadas únicamente en histogramas (valores estadísticos de
primer orden) presentan la limitación de no contener información referente a la posición relativa
de cada pixel con respecto a los demás, se procedió a evaluar estadísticos de segundo orden que
permiten introducir esta información, es decir, añaden información sobre la posición de los
píxeles que tienen iguales o casi iguales valores de intensidad. En otras palabras, los estadísticos
de segundo orden miden las dependencias espaciales que caracterizan a una textura[23].

Una primitiva de textura (texels) es un conjunto de píxeles consecutivos en la imagen y con


igual nivel de gris, conjunto también conocido como “hilera del nivel de gris" (Grey Level Run).
La longitud (medida en número de pixeles) de estas primitivas de textura en diferentes
direcciones sirven como descriptores de textura[24][25]. Un gran número de pixeles vecinos con
igual nivel de gris caracterizan una textura abrupta, y un número pequeño con igual nivel de gris
caracteriza una textura fina.
50

Se trata de obtener una nueva matriz a partir de la imagen original, siendo esta nueva matriz la
utilizada para realizar sobre ella diversos cálculos. En este caso se denomina esta nueva matriz
como (GLRLM), Grey Level Run Length Matrix, (Matriz de Longitud de secuencias de Niveles
de Gris (MLCNG)) [24][25].

Sea I(x, z) una imagen digital de dimensiones N x N y Ng niveles de gris. Se define una matriz
(GLRLM), P θ , para cada dirección (0o; 45o; 90o; 135o). Cada elemento de la matriz (i,j)
representa el número de veces que el nivel de gris i, (i = 0,1,…,Ng-1) aparece en la imagen con
una carrera de longitud j, (j = 1,2,…,Nr), es decir, una matriz de dimensiones Ng x Nr. Nr es la
mayor carrera posible. Para que las características de textura sean independientes ante rotaciones
de las imágenes, se suman las matrices en todas las direcciones[26][27].

A continuación en la Figura 3.22 se muestra un ejemplo del método GLRLM para una imagen
de 5x5 pixeles, con cuatro niveles de gris dentro del rango de 0 a 3 y se expresan los parámetros
calculados a partir de la GLRLM en las ecuaciones 3.25-3.29 [24][27][28].

1 2 3 4 5 j

2 1 1 3 3
0 3 2 0 0 0
3 1 0 2 2 1 4 2 0 0 0
Pθ =
3 3 1 1 2 2 3 1 0 0 0

0 2 1 0 1 3 1 2 0 0 0

0 0 1 0 0 i

Figura 3.18 Muestra de Grey Level Run Length Matrix (GLRLM) para matriz 5x5
En este ejemplo se muestra la GLRLM para Ɵ=0°

En relación a las características extraídas, el Short Runs Emphasis (SRE), toma valores más
altos cuanto mayor sea el número de secuencias pequeñas, mientras que El Long Runs Emphasis
(LRE) representa el caso contrario al SER. El Grey Level Non-uniformity (GLNU) toma valores
pequeños cuando las secuencias están equitativamente distribuidas. En cuanto al Run Length
Non-uniformity (RLNU), éste arroja valores pequeños cuando las longitudes de las secuencias
están equitativamente distribuidas. Por último el Run Percentage (RP), toma valores altos cuando
todas las secuencias son pequeñas.
51

n −1 l
Pθ (i, j ) n −1 l
Short Runs Emphasis SRE = ∑∑
i =0 j =1 j2
∑∑ Pθ (i, j )
i = 0 j =1
(3.25)

n −1 l n −1 l
Long Runs Emphasis LRE = ∑∑ j 2 Pθ (i, j ) ∑∑ Pθ (i, j ) (3.26)
i =0 j =1 i =0 j =1

2
 ln −1  n −1 l
Gray Level Non-uniformity GLNU = ∑ ∑ Pθ (i, j ) ∑∑ Pθ (i, j ) (3.27)
i = 0  j =1  i = 0 j =1

2
l
 n −1  n −1 l
Run Length Non-uniformity RLNU = ∑ ∑ Pθ (i, j ) ∑∑ Pθ (i, j ) (3.28)
j =1  i = 0  i = 0 j =1

n −1 l
Run Percentage RP = ∑∑ Pθ (i, j ) A1 (donde A1= área del objeto) (3.29)
i = 0 j =1

3.5.2 Diferenciación de tumores benignos y malignos mediante la Distancia de


Mahalanobis

En esta investigación, al igual como se procedió a clasificar la estructura de la glándula


mamaria en el apartado 3.3.4, se utilizó la técnica estadística conocida como la Distancia de
Mahalanobis, para diferenciar los tumores en benignos o malignos según como muestra la Figura
3.23. A su vez, se procedió a calcular el estadístico U del método no-paramétrico Mann-Whitney,
con el fin de demostrar que las muestras son independientes y provienen de la misma distribución,
para posteriormente efectuar la clasificación. Se utilizaron como parámetros de estudio, las
características de textura expuestas anteriormente. La diferencia significativa de la suma de las
características fue confirmada por el nivel de significancia estadística menor al 1% para la
clasificación del tipo de tumor, condición necesaria para seleccionar las características a evaluar.

Tumor
extraído

Benigno Maligno

Figura3.193 Flujograma de clasificación de tumores


Se consideraron como del tipo benigno los tumores de categoría 1 y 2, y como malignos los tumores
de categoría 3, 4 y 5 según la clasificación del BIRADS
52

CAPÍTULO 4

RESULTADOS Y DISCUSIÓN

En la presente tesis, se ha desarrollado un sistema de diagnóstico por computadora, para


clasificar la estructura de la glándula mamaria, así como para la detección y discriminación de
nódulos mamarios presentes en mamogramas del tipo adiposo y fibroglandular.

Primeramente, se procedió a eliminar el fondo (background) de la imagen en análisis, para


aumentar la relación señal a ruido que permitió el realzado de la región de interés, para así después
extraer el área del seno presente en ella, mediante un método de umbralización. Para ello, se
estudiaron y aplicaron diversas técnicas complejas de procesamiento de imágenes, debido a la
gran cantidad de parámetros que hay que ajustar, hasta poder encontrar 2 valores claves que
permitieron definir un único valor de umbral, y de ésta manera dividir la imagen en dos clases.
Esta técnica se conoce como técnica de binarización [24] y resulta muy útil para imágenes en la
que existe un único objeto situados sobre un fondo homogéneo.

Debido a que el área del fondo de la imagen presenta un valor de poca intensidad (muy
obscuro) en la mayoría de los mamogramas, se pudo dividir el área del seno y su fondo
satisfactoriamente. Seguidamente, ya que el área del seno extraída está compuesta por el
músculo pectoral y la glándula mamaria en sí, se procedió a remover el área del músculo pectoral
de la imagen mediante el método de aproximación de cuadrados, ya que la frontera del músculo
pectoral y la glándula mamaria, se asemeja (en general) bastante a una curva de segundo grado.

Por otro lado, cuando un radiólogo realiza la clasificación de la estructura de la glándula


mamaria, toma en consideración la proporción que ocupa la composición del tejido mamario y
del tejido adiposo dentro del área del seno existente[11][13]. En este sentido, para conseguir una
característica que se asemeje al significado otorgado por un radiólogo en su evaluación, se
procedió a calcular los momentos centrales de las imágenes estudiadas como características
significativas de forma.
53

Asimismo, un conjunto de características inherentes a cada tipo de estructura de la glándula


mamaria, se pudieron observar en el histograma de densidad. Estas características están
determinadas por la composición de la glándula mamaria y el contenido adiposo del seno, por lo
que se decidió expresar estos rasgos, mediante el cálculo de un conjunto de características de la
textura a partir del histograma de densidad. Dentro de estas características de la textura, se
calcularon la Asimetría o Sesgo (Skewness) y la Curtosis (Kurtosis) para dos regiones de interés
del histograma de densidad de cada imagen.

Un factor preponderante que puede alterar la forma del histograma, es la manera en que el
especialista realice la toma de la mamografía. Varias tomas realizada incluso a un mismo seno,
pueden arrojar mamogramas considerablemente distintos, modificando de esta manera, la forma
del histograma de la imagen en estudio[9]. Para corregir este problema, se decidió tomar en
cuenta el promedio de densidad del área del músculo pectoral, como un valor de peso, que
permite modificar la forma del histograma.

Seguidamente, a un total de 6 características diferentes, se procedió a calcular el estadístico


“U” del método no paramétrico Mann-Whitney, con el fin de comprobar que las muestras eran
independientes y provenían de la misma distribución, para posteriormente, efectuar la
clasificación, tomando en cuenta un nivel de significancia estadística menor al 5%. Basándose en
esas conjeturas, se procedió a realizar el análisis discriminatorio de las estructuras a través de la
técnica estadística conocida como Distancia de Mahalanobis. Entre los resultados obtenidos, se
encontró que la característica de Asimetría (Skewness) SKW ○
1 , representó el parámetro más

significativo (según Mann Whitney) para la clasificación de la estructura, como


predominantemente adiposas, fibroglandulares, heterogéneamente densas y altamente densas. El
punto máximo de la característica de la textura de la estructura de la glándula mamaria SKW○
1 ,

revelaba el valor de densidad de las imágenes.

Cabe señalar, que se partió de la premisa que dentro de cada mamograma existía como máximo
una región de interés (tumor), al cual se le extrajeron determinadas características que
permitieron clasificarlo según su categoría.

Un total de 6 características diferentes se utilizaron para realizar la clasificación 1 y 2 de la


estructura de la glándula mamaria según el flujograma de la Figura 3.12.
54

Como resultado, se obtuvo que la combinación de 2 de las características más apropiadas, como
lo fueron SKW1 y el promedio de concentración del área del músculo pectoral, alcanzaron una
clasificación del 93% de acierto para las estructuras predominantemente adiposas y
fibroglandulares, y una clasificación del 100% de acierto para las mamas heterogéneamente
densas y altamente densas. Sin embargo, cabe destacar que todos los mamogramas utilizados,
fueron previamente clasificados bajo el criterio de médicos radiólogos.

Particularmente, el investigador pudo observar que las 2 imágenes fibroglandulares


equívocamente clasificadas por el método empleado, presentan una apariencia más densas en
comparación con las imágenes fibroglandulares que fueron correctamente clasificadas por el
mismo método. Sin embargo, por el investigador no ser un especialista certificado en el tema, no
se pueden arrojar resultados concluyentes para estos casos ambiguos. Es por ello que resulta
primordial, determinar información que no pueda ser percibidas ni confirmada por del ojo
humano, mediante la extracción de características adicionales, con el fin de poder establecer una
evaluación más eficiente en términos cuantitativos y cualitativos.

Luego, mediante la combinación de dos de las características más apropiadas: SKW1 y SKW2,
se produjo la segunda clasificación de la estructura de la glándula mamaria, lográndose alcanzar
un 100% de acierto para mamas de los tipos heterogéneamente densas y altamente densas.

En la tabla 4.1 se muestran los resultados obtenidos en cuanto a la clasificación de la estructura


de la glándula mamaria.
55

Tabla 4.1 Tasa de Clasificación de la estructura de la glándula mamaria


mediante la distancia de Mahalanobis

Predominantemente
Heterogéneamente Altamente %
adiposas
Densas Densas Clasificación
Y Fibroglandulares

Predominantemente
adiposas y 28 2 0 93%
Fibroglandulares

Heterogéneamente
0 15 0 100%
Densas

Altamente Densas 0 0 2 100%

Como se puede observar en la tabla expuesta, el número de imágenes clasificadas


equívocamente fue de 2 dentro de un total de 47 imágenes procesadas. En este caso, 2
mamogramas, ambos de estructura fibroglandular, fueron clasificados como de estructura
heterogéneamente densa. Las imágenes clasificadas erróneamente se muestran en la Figura 4.1,
así como el histograma correspondiente a cada una de ellas. Se puede considerar, que el
mamograma (1) de la Figura 4.1, al compararse con otro mamograma del tipo fibroglandular
correctamente clasificado, presenta una densidad mayor. Por otro lado, tomando en cuenta la
densidad del músculo pectoral de la figura 4.1 (1), ésta se visualiza con un menor contraste
comparada con las de otras estructuras de la glándula mamaria. Por consiguiente, al considerar el
promedio de densidad del músculo pectoral como un factor modificante, el histograma de
densidad de la imagen en estudio, se asemeja bastante al de un mamograma del tipo
heterogéneamente denso, como se puede observar en la Figura 4.2 (1). En cuanto a la otra imagen
equívocamente clasificada (Figura 4.1 (2)), a pesar de que presenta una apariencia y densidad
similar a la de otras imágenes del tipo fibroglandular correctamente clasificadas, el valle que se
aprecia en el histograma de la Figura 4.2 (2) afectó al proceso de discriminación.
56

(1) Mama del tipo fibroglandular ○


1 (2) Mama del tipo fibroglandular ○
2

Clasificada como fibroglandular La imagen no se ve a priori como la de


por un radiólogo especializado. una mama heterogéneamente densa.

Figura 4.1 Mamogramas clasificados equívocamente en este estudio


Fueron clasificados como heterogéneamente densos en la segunda etapa de clasificación
○2 .

800
Cantidad de
píxeles

0
1 Densidad (Escala de grises) 255
Histograma de la Figura 4.1 (1)
1200
Cantidad de
píxeles

0
1 255
Densidad (Escala de grises)
Histograma de la Figura 4.1 (2)

Figura 4.2 Imágenes fibroglandulares erróneamente clasificadas como heterogéneamente densas


El factor principal por el cual los mamogramas fibroglandulares se clasificaron como heterogéneamente densos
fue la forma resultante del histograma de densidad de las imágenes.
57

En relación a la segunda etapa de clasificación, utilizada para diferenciar los tejidos


considerados como densos, en la Figura 4.3 se puede apreciar el histograma procesado para llevar
a cabo esta fase de clasificación. Como se puede apreciar en dicha figura, las imágenes del tipo
fibroglandular clasificadas incorrectamente en la etapa anterior, presentan una distribución o
forma de histograma semejante a la de las mamas heterogéneamente densas. Sin embargo, el
punto que cabe destacar aquí, es que la densidad del área mamaria revelada mediante la
mamografía, varía dependiendo de cómo el técnico o radiólogo lleva a cabo la toma y su
interpretación [9]. En realidad, la densidad (brillo) del músculo pectoral del mamograma de la
Figura 4.1 (1), es significativamente baja (poco contrastante) en comparación con la de otras
mamogramas del tipo fibroglandular clasificados exitosamente, lo que potencialmente puede
conllevar a clasificar dicha imagen como del tipo heterogéneamente denso. En este sentido, para
obtener información que no dependa y no pueda ser descubierta a través de la vista u observación,
se espera que mediante el cálculo de un conjunto de características significativas asociadas a las
imágenes, se pueda llevar a cabo una evaluación más objetiva.

800 0,4
Heterogéneamente
densas
Cantidad de

Fibrogladular②
píxeles

Fibroglandular①

Altamente densas
0 0

1 255
Densidad (escala de grises)

Figura 4.3 Histograma de densidad de la glándula mamaria usando como parámetro SKW○
2
La forma de las mamas fibroglandulares se asemeja a la de las mamas heterogéneamente densas

Luego de haber efectuado la clasificación de las estructuras mamarias, se procedió a fijar una
región de interés para analizar las muestras de mamogramas heterogéneamente densos,
considerados muy difíciles de diagnosticar. La razón para ello, es la gran complejidad
computacional y analítica que posee el Iris Filter para detectar la locación del tumor.
58

En esa etapa, la región del histograma de densidad que contiene alto grado de concentración
(brillo) corresponde al dominio del área tumoral, que al compararlo con el dominio usado por la
característica SKW ○
1 mencionado anteriormente, presentó una densidad mucho mayor, lo que

fue tomado como la región de interés.

El Iris Filter se considera una técnica apropiada por la propiedad de su vector gradiente de
presentar una forma cónica. Al aplicar esta técnica, se pudo determinar la localización de todos
los tumores analizados. Los tumores poseen en su centro el punto de mayor densidad (intensidad)
y disminuyen su concentración a medida que se acerca al borde del mismo, lo que podría
traducirse como que el vector gradiente presentase una forma cónica. Seguidamente, se procedió
a extraer el área del tumor de interés mediante el algoritmo de Snakes, tomando como punto de
control el valor máximo del vector gradiente del Iris Filter (centro del tumor).El procesamiento
del contorno de un objeto mediante el modelo de Snakes, se acerca bastante a la forma en que la
vista puede definir el borde. Asimismo, al tumor extraído mediante Snakes, se le calcularon un
total de 27 características diferentes asociadas a la forma, al histograma de densidad, a la textura
y a la secuencia de niveles de gris de la “Gray Level Run Length Matrix” (GLRLM).

Análogamente como se realizó en la etapa de clasificación de la estructura de la glándula


mamaria, se procedió a calcular el estadístico U del Mann-Whitney para cada característica
extraída, con el fin de comprobar que las muestras eran independientes y provenían de la misma
distribución, utilizando un nivel de significancia menor al 1%.

Basados en estas conjeturas, se utilizó el método estadístico de la Distancia de Mahalanobis


para efectuar la clasificación de los tumores en benigno o maligno, encontrándose que la
combinación del RP0° (Run Porcentage) y SRE45° (Short Run Length) fueron las características
más significativas que arrojaron una tasa de acierto del 100% en la diferenciación de los tumores
según su clase.

El RP (Run Porcetage) es un valor que estima la incidencia de secuencias en el área, mientras


que el SRE (Short Run Emphasis) expresa cuantas secuencias cortas de un mismo valor de nivel
de gris existen en la imagen.

Estos resultados se pueden apreciar en la tabla 4.2 que se presenta a continuación.


59

Tabla 4.2 Tasa de Clasificación de Tumores Benignos y Malignos

Tumores Benignos Tumores Malignos % Clasificación

Tumores Benignos 11 0 100 %

Tumores Malignos 0 19 100%

Como se ha podido demostrar anteriormente, se puede señalar que el presente sistema,


constituye un instrumento muy útil para el diagnóstico automático de mamas del tipo
predominantemente adiposas y fibroglandulares. Dado que existe una diferencia inherente entre
las mamas de tejido sano y las mamas de tejido cancerígeno de las imágenes estudiadas, se
pudieron aplicar técnicas de procesamiento no muy complejas antes de alcanzar la fase de
extracción del área tumoral. Esto puede representar una importante ventaja, ya que permite
incrementar la eficiencia temporal, al momento de diagnosticar numerosos casos.

Dado la alta eficiencia alcanzada en la discriminación de tumores benignos y malignos (100%),


en la misma data de entrenamiento, el sistema CAD desarrollado en esta investigación, representa
una herramienta muy útil y confiable, que puede contribuir al diagnóstico de la patología
mamaria, y de ésta manera, aportar una segunda opinión a los médicos radiólogos para
incrementar su sensibilidad y especificidad.

Por último, cabe mencionar que el sistema creado presentó dificultades para detectar tumores en
mamas heterogéneamente densas. De hecho, de un total de 12 imágenes analizadas, sólo en 4 se
pudieron encontrar la locación del tumor (30% de aciertos). En el resto de las imágenes, no se
pudo detectar la región de interés, por lo que el sistema percibió a la imagen como la de una
mama normal sin anomalías. La posible causa de este resultado, es que las mamas
heterogéneamente densas presentan una forma, composición y densidad similar a las mamas de
tejido sano. Actualmente, debido a que el sistema desarrollado emplea un único algoritmo para
detectar anomalías, se considera necesaria la creación de nuevos métodos y técnicas de
procesamiento de imágenes para detectar tumores de una manera alterna, especialmente, para
mamas heterogéneamente densas.
60

CAPÍTULO 5

CONCLUSIONES Y RECOMENDACIONES

Se ha diseñado un sistema CAD capaz de detectar y diagnosticar áreas sospechosas de


carcinoma en mamas predominantemente adiposas y fibroglandulares presentes en mamografías
digitales. Estas zonas son definidas por el sistema, en base a la presencia de nódulos mamarios.

Este Sistema puede ser utilizado indistintamente, bien indicando el área sospechosa para ser
evaluada por el radiólogo, o, como un sistema de ayuda al diagnóstico tras la extracción de las
características de las mismas. A su vez, puede representan una herramienta útil para el
entrenamiento de médicos radiólogo en fase de aprendizaje.

Se ha diseñado el sistema de manera modular, lo que proporciona flexibilidad, siendo posible la


modificación o sustitución de alguno de los módulos en el futuro, para mejorar el rendimiento
globalmente.

Para la detección de las zonas sospechosas, se han empleando técnicas basadas en extracción
de características de histograma y de la textura de las imágenes, junto con algoritmos de
segmentación basados en contorno activos y análisis de la señal del histograma.

Se ha logrado clasificar las glándulas mamarias en base a su estructura predominante, en


mamas adiposas, fibroglandulares, heterogéneamente densas y extremadamente densas. Se
alcanzó una tasa de acierto del 93% para discriminar las mamas adiposas y fibroglandulares, y
una tasa de acierto del 100% para mamas heterogéneamente densas y altamente densas.

En la detección y extracción de características de lesiones, los resultados obtenidos son


alentadores a pesar de contar con un banco de imágenes reducido. Las regiones de interés
(tumores) fueron detectadas para todos los casos en mamas adiposas y fibroglandulares. Luego se
utilizaron métodos estadísticos (Distancia de Mahalanobis y Mann Whitney) para discriminar los
tumores en base a su tipología benigna o maligna, alcanzándose una tasa de acierto del 100% en
esta clasificación.
61

Se desarrolló una aplicación final mediante el Software Visual Studio 2005 utilizando el
lenguaje de programación C++ basado en el diseño orientado a objetos.

El investigador pudo desarrollar destrezas, tanto a nivel de diagnóstico visual (experticia


médica) como a nivel computacional para la detección de carcinomas presentes en mamografías
digitales. Pudiéndose integrar ambas disciplinas en este modesto aporte contribuyendo de alguna
manera al avance de la Bioingeniería.

RECOMENDACIONES

Con la experiencia acumulada durante el desarrollo del proyecto, se pueden plantear las
siguientes líneas futuras:

• EL Sistema desarrollado puede ser mejorado implementado algoritmos que permitan


detectar y clasificar tumores para mamas heterogéneamente densas y altamente densas
cuyo diagnóstico resulta más complejo.
• Resulta necesario aumentar la muestra de imágenes de mamografía, con la finalidad de
comprobar la robustez y eficiencia del sistema creado. Se recomienda probar la
operatividad de este sistema ante el manejo por parte de grupo de radiólogos que
clasifiquen cierto número de mamografías con y sin marcado de regiones sospechosas, y
comprobar si realmente el marcado permite elaborar un mejor diagnóstico.
• Se propone el uso de otros métodos como Redes Neuronales y Máquinas de Vectores
de Soporte como sistema de reconocimiento que pueden generalizar aprendiendo
mediante ejemplos dentro de la etapa de clasificación del CAD, con el fin de crear un
sistema inteligente de mayor alcance y de gran capacidad analítica y computacional.
• Para mejorar la eficiencia del sistema se sugiere probar otros métodos de segmentación
y detección de patrones en imágenes de mamografía enfocados a microcalcificaciones,
para así diversificar la utilidad de este Sistema e incrementar la especificidad y
sensitividad del sistema para propósitos de uso práctico.
• Se sugiere la implementación de este CAD, como sistemas de autoevaluación y reciclaje
o como herramienta de aprendizaje para médicos en periodo de formación.
62

REFERENCIAS
[1] American Cancer Society. Breast Cancer Facts and Figures. 2008.

[2] MSDS. Registro Central de Cáncer. Venezuela 2006.

[3] P. Skaane, K. Engedal, and A. Skjennald. Variation in the interpretation of breast


imaging. Comparison of mammography, ultrasonography, and both combined in
the interpretation of palpable no calcified breast masses. Acta Radiology. Vol. 38,
pp. 497.502, July 1997.

[4] Seno Salud. El Cáncer de Mama 2009.Disponible en Internet:


http://www.senosalud.org/pacientes/articulos.asp?Titulo=%BFQu%E9%20es%20
el%20C%E1ncer?%20, consultado el 15 de Abril de 2009

[5] Organización Mundial del Cáncer. Cáncer de Seno 2008. Disponible en Internet:
http://www.cancer.org/docroot/ESP/content/ESP_4x_Cncer_del_seno_Resumen.a
sp?sit%09earea, consultado el 15 de Abril de 2009.

[6] Servicios Médicos Comnofort. Cáncer de Mama.2007 Disponible en Internet:


http://www.comonfort.mobi/index_archivos/Page2937.html, consultado el 16 de
Abril de 2009

[7] Tu otro médico. Cáncer de Mama 2008. Disponible en Internet:


http://www.tuotromedico.com/temas/cancer_de_mama.htm, consultado el 15 de
Abril de 2009

[8] Tu Salud. Mamografía 2008. Disponible en Internet:


http://www.tusalud.com.mx/130106.htm, consultados el 15 de Abril de 2009.

[9] American College of Radiology (ACR). Mammography quality control manual for
radiologists, Medical Physicist and Technologists. Reston, VA, American College
Of Radiology. 1999.

[10] A. Vilarrasa. Sistema Inteligente para la detección y diagnóstico de patología


mamaria.Tesis Doctoral. Facultad de Medicina. Universidad Complutense de
Madrid. 2006

[11] Doi k, McMahon H, Katsuragaba S, et al. Computer- aides diagnosis in radiology:


potential and pitfalls. Eur J Radiol.1999; 31: 97 – 109.

[12] Funovics M, Schamp S, Lacker B, et al. Computer aided diagnosis in


mammography, R2 image-checker-system in the detection of spiculated lesions.
Medical Wischer 1998; 148: 321 – 324.

[13] Breast Imaging Reporting and Data System BI-RADS, second edition, American
College of Radiology ACR 1995.
63

[14] 中川俊明,笠井聡,原武史 他“乳房 X 線画像における胸筋領域自動検出


法”医用画像情報学会雑誌,Vol.18,No.1,2001.( NAKAGAWA Toshiaki,
KASAI Satoshi, HARA Takeshi. Extraction of Pectoral-muscle Region on
Mammogram. University of Gifu).

[15] Gold RH, Montgomery CK, Rambo ON. Significance of margination of benign
and malignant infiltrative mammary lesions: Roentgenologic-pathologic
correlation. AJR Am J Roentgenol 1973; 118: 881 – 894.

[16] 武尾英哉,志村一男,施越 他“乳腺比率に基づく CR マンモグラフィの


自 動 分 類 法 ”MEDICAL IMAGING TECNOLOGY , Vol.23 , No.2 , 2005
(Takeshio, Kazuo Shimura, and and others. Automatic classification methods of
CR mammogram based on ratio of mammary glands. MEDICAL IMAGING
TECNOLOGY, Vol.23, and No.2,2005)

[17] H Kobatake, M. Murakadami, Adaptive filter to detect rounded convex regions:


iris filter, Pattern Recognition, 1996, Proceedings of the 13th International
Conference on Volume 2, Issue , 25-29 Aug 1996 Page(s):340 – 344.

[18] L. Guitierrez, S Alvarez, Algorithm to enhance low contrast features in digital


mammograms, Journal of X-ray Science and Technology 12 (2004) 143-150.

[19] .Kass,A.Witkin, 1988, Snakes:Active contour models, Int.J. Computer Vision,


Vol.1,No.4,321-331.

[20] Chenyang Xu, Jerry L. Prince, Snakes, Shapes, and Gradient Vector Flow, IEEE
Transsactions on image processing, Vol 7, No 3, March 1998. 359

[21] F. Lopez Valverde, Localización de vasos sanguíneos en mamografías mediante


contornos activos, RevistaeSalud.com, Vol 3, No 3 (2007)

[22] 加藤元浩,藤田広志,原武史他“マンモグラム CAD システムにおける乳房


領域自動抽出アルゴリズムの改良”医用画像情報学会雑誌,Vol.14,No.2,
1997. (Hiroshi Kato, Hiroshi Fujita, and others "Improvement of automatic breast
area extraction algorithm in mammogram CAD system" image information
society magazine for medicine, Vol.14, and No.2,1997)

[23] M.M Galloway, Texture classification using gray level run length matrix.
Computer Graphics and Image Processing, 4:172-179, 1975

[24] M. Sonka, V Hlavac y R Boyle. Image Processing, Analysis and Machine Vision.
International Thomsom Publising (ITP), 1999.

[25] Tembey, M. (2003). Computer Aided Diagnosis for mammographic


microcalcification clusters. Unpublished Masters thesis, University of South
Florida, Tampa.
64

[26] E. Caselli, M Pecelis, Jo Robles, G Iglesias and M Lester, Enhancement of Low


Contrast Features in Mamograms, in Digital Mamography, J Yaffe, ed., 5th
International Workshop on Digital Mammography, Medical Physics, Publishing,
2001, pp 554-559.

[27] H Kobatake, M. Murakadami, H. Takeo and S. Nowano, Computerized detection


of malignant tumors on digtal mammograms, IEEE Trans, on Medical Imaging 18
(1999), 369-378.

[28] R.M Haralick, K Shanmugam, y L Dinstein, IEEE Transo n Systems, Man and
Cibertenics , 3(6): 610-621, 1973.
65

APÉNDICE

APÉNDICE A

CODIGO DEL PROGRAMA ELABORADO EN VISUAL STUDIO 6.0 Y 2005 C++


// mamAmoCADsystemView.cpp : CMammoCADsystemView
#include "stdafx.h"
#include "mammoCADsystem.h"
#include <math.h>
#include <string.h>
#include <process.h>

#include "mammoCADsystemDoc.h"
#include "mammoCADsystemView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

#define Y_SIZE 540


#define X_SIZE 404
#define LOW 0
#define HIGH 255
#define PI 3.141592654

/////////////////////////////////////////////////////////////////////////////
// CMammoCADsystemView

IMPLEMENT_DYNCREATE(CMammoCADsystemView, CView)

BEGIN_MESSAGE_MAP(CMammoCADsystemView, CView)
//{{AFX_MSG_MAP(CMammoCADsystemView)
ON_COMMAND(ID_FILE_OPEN, OnFileOpen)
ON_COMMAND(ID_FILE_SAVE_AS, OnFileSaveAs)
ON_COMMAND(ID_SELECT_BREAST, OnSelectBreast)
ON_COMMAND(ID_PECTORALIS, OnPectoralis)
ON_COMMAND(ID_IRIS_FILTER, OnIrisFilter)
ON_COMMAND(ID_TUMOR_POINT, OnTumorPoint)
ON_COMMAND(ID_SNAKES, OnSnakes)
ON_COMMAND(ID_CAD, OnCad)
//}}AFX_MSG_MAP
// •W€ˆóüƒRƒ}ƒ“ƒh
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
ON_COMMAND(ID_Menu, &CMammoCADsystemView::OnShrinking)
ON_COMMAND(ID_Menu32778, &CMammoCADsystemView::ONChangesize)
66

ON_COMMAND(ID_IMAGEANALYSISOFMAM_XYCOORDINATES,
&CMammoCADsystemView::OnXY_coordinates)
ON_WM_LBUTTONDOWN()
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMammoCADsystemView
CMammoCADsystemView::CMammoCADsystemView()
{
// TODO:

CMammoCADsystemView::~CMammoCADsystemView()
{
}

BOOL CMammoCADsystemView::PreCreateWindow(CREATESTRUCT& cs)


{

return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CMammoCADsystemView
void CMammoCADsystemView::OnDraw(CDC* pDC)
{
CMammoCADsystemDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);

if (!pDoc)

return;

// TODO: Manual Detection


if(flag==1){
CString a;
CString b;
CString c;
CString d;

a = (CString)message_x;
b = (CString)message_y;

c = "coordenate x";
d = "coordenate y";

pDC->TextOut (1000,10,c);
pDC->TextOut (1000,30,d);
pDC->TextOut (1200,10,a);
pDC->TextOut (1200,30,b);

// TODO:

/////////////////////////////////////////////////////////////////////////////
67

// CMammoCADsystemView
BOOL CMammoCADsystemView::OnPreparePrinting(CPrintInfo* pInfo)
{
// return DoPreparePrinting(pInfo);
}

void CMammoCADsystemView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)


{
// TODO: ˆ

void CMammoCADsystemView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)


{
// TODO: ˆó}

/////////////////////////////////////////////////////////////////on///////////
/
// CMammoCADsystemView
#ifdef _DEBUG
void CMammoCADsystemView::AssertValid() const
{
CView::AssertValid();
}

void CMammoCADsystemView::Dump(CDumpContext& dc) const


{
CView::Dump(dc);
}

CMammoCADsystemDoc* CMammoCADsystemView::GetDocument()
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMammoCADsystemDoc)));
return (CMammoCADsystemDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMammoCADsystemView Input Images
void CMammoCADsystemView::GetInput()
{
int i,j;

for(i=0; i<Y_SIZE; i++){


for(j=0; j<X_SIZE; j++){
image_in[i][j] = image_out[i][j];
}
}
}
void CMammoCADsystemView::GetOutput() // Output
{
int i,j;

for(i=0; i<Y_SIZE; i++){


for(j=0; j<X_SIZE; j++){
image_out[i][j] = image_in[i][j];
}
}
}
void CMammoCADsystemView::OnView()
68

{
int i,j,d;

CDC* pDC;
pDC=GetDC();

for(i=0;i<Y_SIZE;i++){
for(j=0;j<X_SIZE;j++){
d=image_in[i][j];
pDC->SetPixel(10+j,10+i,RGB(d,d,d));
}
}
}

void CMammoCADsystemView::OnFileOpen()
{
// TODO: CFileFind FileFind;
CString filename;
FILE *fp;
int i,j;

CFileDialog
FileDlg(TRUE,NULL,".raw",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"rawfile(*.raw)|*.raw||",NULL);
if(FileDlg.DoModal() != IDOK) return;
path = FileDlg.GetPathName(); //
if(!FileFind.FindFile(path)) return;
fp = fopen(path,"rb"); //Open Image

for(i=0; i<Y_SIZE; i++){


for(j=0; j<X_SIZE; j++){
fread(&image_in[i][j],1,1,fp);
}
}
fclose(fp);

path = FileDlg.GetPathName(); //Search for file


filename = FileDlg.GetFileTitle(); //
m_num = atoi(filename); //

OnView();
}

void CMammoCADsystemView::OnFileSaveAs()
{
// TODO Save output image
CFileFind FileFind;
FILE *fp;
int i,j;

GetOutput();

CFileDialog FileDlg(FALSE,NULL,
".raw",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,

"raw(*.raw)|*.raw||",NULL);
69

if(FileDlg.DoModal() != IDOK) return; //‚


path = FileDlg.GetPathName(); //

fp = fopen(path, "wb");

for (i=0; i<Y_SIZE; i++){


for (j=0; j<X_SIZE; j++){
fwrite(&image_out[i][j],1,1,fp);
}
}
fclose(fp);
}
//////////GetBreast///////////////////////////////////////////////
#define L_BASE 100;
int cnt, xs, ys, label;
int a[Y_SIZE],b[Y_SIZE],f[Y_SIZE],pm_max;
unsigned char image_label[Y_SIZE][X_SIZE];
unsigned char image_breast[Y_SIZE][X_SIZE];
unsigned char image_line[Y_SIZE][X_SIZE];
//////////////////////////////////////////////////////////////////
void CMammoCADsystemView::GetBreast()
{
int i,j;

for (i=0; i<Y_SIZE;i++){


for (j=0; j<X_SIZE;j++){
image_breast[i][j] = image_in[i][j];
if (image_breast[i][j] <= 2) image_out[i][j] = LOW;
else image_out[i][j] = HIGH;
}
}

GetInput();
OnView();
}
void CMammoCADsystemView::Median() // Median FILTER

{
int md,i,j,x,y,z,a,b;
unsigned char m[25];

for (i=2; i<Y_SIZE-2;i++){


for (j=2; j<X_SIZE-2;j++){
z = 0;
for(y=-2; y<=2; y++){
for(x=-2; x<=2; x++){
m[z] = image_in[i+y][j+x];
z++;
}
}

for(a = 0; a < 24 ; a++){


for(b = 0; b < 24 ; b++){
if (m[b+1] < m[b]){
md = m[b+1];
m[b+1] = m[b];
m[b] = md;
}
70

}
}

image_out[i][j] = m[12];
}
}

GetInput();
OnView();
}
void CMammoCADsystemView::labelset() /// LABELING//
{
int i,j,cnt,im,ip,jm,jp;

image_label[ys][xs] = label;
for (;;){
cnt = 0;
for (i=0; i<Y_SIZE;i++){
for (j=0; j<X_SIZE;j++){
if(image_label[i][j] == label){
im = i-1; ip = i+1; jm= j-1; jp= j+1;
if(im < 0) im = 0; if(ip >Y_SIZE-1 ) ip =
Y_SIZE-1;
if(jm < 0) jm = 0; if (jp >X_SIZE-1 ) jp =
X_SIZE-1;
if( image_label[i ][jp] == HIGH){
image_label[i ][jp] = label;
cnt++;
}
if( image_label[im][jp] == HIGH){
image_label[im][jp] = label;
cnt++;
}
if( image_label[im][j ] == HIGH){
image_label[im][j ] = label;
cnt++;
}
if( image_label[im][jm] == HIGH){
image_label[im][jm] = label;
cnt++;
}
if( image_label[i ][jm] == HIGH){
image_label[i ][jm] = label;
cnt++;
}
if( image_label[ip][jm] == HIGH){
image_label[ip][jm] = label;
cnt++;
}
if( image_label[ip][j ] == HIGH){
image_label[ip][j ] = label;
cnt++;
}
if( image_label[ip][jp] == HIGH){
image_label[ip][jp] = label;
cnt++;
}
}
71

}
}
if (cnt == 0) break;
}
}

int CMammoCADsystemView::labeling()
{
int i,j;

cnt = 0;

for (i=0; i<Y_SIZE;i++){


for (j=0; j<X_SIZE;j++){
image_label[i][j] = image_in[i][j];
}
}

label = L_BASE;
for (i=0; i<Y_SIZE;i++){
for (j=0; j<X_SIZE;j++){
if(image_label[i][j] == HIGH){
if(label >= HIGH){
MessageBox("too
label","error",MB_ICONINFORMATION | MB_OK);
return -1;
}
xs = j; ys = i;
labelset(); label++;
}
}
}
cnt = label - L_BASE;

return 0;
}

void CMammoCADsystemView::entory()//Entropy
{
int i,j,a,size;
int lno[HIGH];

a = 0;
size = 0;

for(i=0; i<HIGH; i++) lno[i] = 0;

for(a=100; a<cnt+100; a++){


for (i=0; i<Y_SIZE;i++){
for (j=0; j<X_SIZE;j++){
if(a == image_label[i][j]){
lno[a]++;
}
}
}
}

size = 100;
72

for(a=100; a<cnt+100; a++){


if(lno[size] < lno[a+1]){
size = a+1;
}
}

for (i=0; i<Y_SIZE;i++){


for (j=0; j<X_SIZE;j++){
if(image_label[i][j] == size){
image_out[i][j] = image_breast[i][j];
}
else image_out[i][j] = LOW;
}
}

GetInput();
OnView();
}

void CMammoCADsystemView::OnSelectBreast() //Breast area///////


{
int i,j;

GetBreast();
Median();
labeling();
entory();

for (i=0; i<Y_SIZE;i++){


for (j=0; j<X_SIZE;j++){
image_bst[i][j] = image_in[i][j];
}
}
}

void CMammoCADsystemView::OnOtu()
{
int i,j,l,n,a,k,size,sum;
int hist[256];
double P[256];
double w0,w1,m0,m1,mt;

l = 0; n = 0; sum = 0; m_max=0;

for(k=LOW; k<=HIGH; k++){


hist[k] = 0;
P[k] = 0;
}

//
for(i=0; i<Y_SIZE; i++){
for(j=0; j<X_SIZE; j++){
k = image_in[i][j];
hist[k]++;
}
size = Y_SIZE * X_SIZE ;

for(k=1; k<=HIGH; k++){


73

w0 = 0.0; w1 = 0.0; m0 = 0.0; m1 = 0.0; mt = 0.0;


for(a=1; a<k; a++)
w0 += ((double)hist[a]/(double)size);
for(a=k; a<=HIGH; a++)
w1 += (double)hist[a]/(double)size;
for(a=1; a<k; a++)
m0 +=
((double)a*(double)hist[a]/(double)size)/(double)w0;
for(a=k; a<=HIGH; a++)
m1 +=
((double)a*(double)hist[a]/(double)size)/(double)w1;
for(a=1; a<=HIGH; a++)
mt += (double)a*(double)hist[a]/(double)size;

P[k] = w0*(m0-mt)*(m0-mt) + w1*(m1-mt)*(m1-mt);


if(P[k] < 0) P[k] = 0;
}

m_max=1;
for(k=2; k<=HIGH; k++){
if(P[m_max] < P[k])
m_max = k;
}

for(j=0; j<X_SIZE; j++){


if(m_max < image_in[i][j]) image_out[i][j] = HIGH;
else image_out[i][j] = LOW;
}
}

GetInput();
OnView();
}

void CMammoCADsystemView::OnSobel() /// SOBEL FILTER


{
int i,j;
int i0,i2,j0,j2;
double d1,d2,d,max,n;

n = 1.5;
max = 0;

for (i=0; i<Y_SIZE;i++){


for (j=0; j<X_SIZE;j++){
i0 = i-1; i2 = i+1; j0 = j-1; j2 = j+1;
if(i-1 < 0) i0 = i; if(i+1 == Y_SIZE) i2 = i; if(j-1 < 0)
j0 = j; if(j+1 == X_SIZE) j2 = j;

d1 = - image_in[i0][j0]*1 + image_in[i ][j0]*0 +


image_in[i2][j0]*1
- image_in[i0][j ]*n + image_in[i ][j ]*0 +
image_in[i2][j ]*n
- image_in[i0][j2]*1 + image_in[i ][j2]*0 +
image_in[i2][j2]*1;
74

d2 = - image_in[i0][j0]*1 - image_in[i ][j0]*n -


image_in[i2][j0]*1
+ image_in[i0][j ]*0 + image_in[i ][j ]*0 +
image_in[i2][j ]*0
+ image_in[i0][j2]*1 + image_in[i ][j2]*n +
image_in[i2][j2]*1;

d = (sqrt)(d1*d1 + d2*d2);
if(max < d) max = d;
}
}
for (i=0; i<Y_SIZE;i++){
for (j=0; j<X_SIZE;j++){

i0 = i-1; i2 = i+1; j0 = j-1; j2 = j+1;


if(i-1 < 0) i0 = i; if(i+1 == Y_SIZE) i2 = i; if(j-1 < 0)
j0 = j; if(j+1 == X_SIZE) j2 = j;

d1 = - image_in[i0][j0]*1 + image_in[i ][j0]*0 +


image_in[i2][j0]*1
- image_in[i0][j ]*n + image_in[i ][j ]*0 +
image_in[i2][j ]*n
- image_in[i0][j2]*1 + image_in[i ][j2]*0 +
image_in[i2][j2]*1;

d2 = - image_in[i0][j0]*1 - image_in[i ][j0]*n -


image_in[i2][j0]*1
+ image_in[i0][j ]*0 + image_in[i ][j ]*0 +
image_in[i2][j ]*0
+ image_in[i0][j2]*1 + image_in[i ][j2]*n +
image_in[i2][j2]*1;

d = (sqrt)(d1*d1 + d2*d2);
image_out[i][j] = (int)((d/max)*HIGH);
}
}

GetInput();
OnView();
}

void CMammoCADsystemView::OnMinimalSquareApproximationMethod()

// Min square Method//7


{
int i,z;
double x[Y_SIZE],s[4],t[3],u[9],x0,x1,x2 ,n,m, R;

R = 0.0;
z = 3;
n = 0.0;
x0 = 0.0;
x1 = 0.0;
x2 = 0.0;
75

m = 0.0;

for(i=0; i<4; i++) s[i]=0.0;


for(i=0; i<3; i++) t[i]=0.0;
for(i=0; i<9; i++) u[i]=0.0;
for(i=0; i<Y_SIZE; i++) f[i]=0;

for(i=z; i<Y_SIZE; i++){


if(a[i] < X_SIZE/2){
x[i] = (double)a[i];
s[0] += pow(i,2.0);
s[1] += i;
s[2] += pow(i,3.0);
s[3] += pow(i,4.0);
t[0] += x[i];
t[1] += x[i]*i;
t[2] += pow(i,2.0)*x[i];
n++;
}
}

R = s[0]*s[0]*s[0] + s[1]*s[1]*s[3] + n*s[2]*s[2] - 2.0*s[0]*s[1]*s[2] -


n*s[0]*s[3];

u[0] = (s[0]*s[0] - s[1]*s[2])/R;


u[1] = -(s[0]*s[1] - n *s[2])/R;
u[2] = (s[1]*s[1] - n *s[0])/R;
u[3] = -(s[0]*s[2] - s[1]*s[3])/R;
u[4] = (s[0]*s[0] - n *s[3])/R;
u[5] = -(s[0]*s[1] - n *s[2])/R;
u[6] = (s[2]*s[2] - s[0]*s[3])/R;
u[7] = -(s[0]*s[2] - s[1]*s[3])/R;
u[8] = (s[0]*s[0] - s[1]*s[2])/R;

x2 = (t[0]*u[0] + t[1]*u[1] + t[2]*u[2]);


x1 = (t[0]*u[3] + t[1]*u[4] + t[2]*u[5]);
x0 = (t[0]*u[6] + t[1]*u[7] + t[2]*u[8]);

for(i=0; i<Y_SIZE; i++){


m = x2*(double)i*(double)i + x1*(double)i + x0;
f[i] = (int)m;

if(f[i] < 0 || f[i-1] < f[i]) break;


}
}

void CMammoCADsystemView::SnKs() /// Features extraction///


{
int i,j,k,low,median,high,max_h,max_l,Pl_limit,pls1,pls2,plscnt,mini;
double P[256],Q[256],sk[256],skewness,kurtosis, size, mean,
variance,zero,sksize; //skewness = ˜c“x@Akurtosis = ë“x;
double Pl,Ph,skewness2,kurtosis2, mean2, variance2;

low = 0; median = 0; max_h = 0; max_l = 0; Pl_limit = 0; high =


255; mini = 0;
skewness = 0.0; kurtosis = 0.0; size = 0.0; mean = 0.0; variance =
0.0; sksize = 0.0;
skewness2 = 0.0; kurtosis2 = 0.0; mean2 = 0.0; variance2 = 0.0;
76

for(k=LOW; k<=HIGH; k++){


P[k] = 0.0;
Q[k] = 0.0;
sk[k] = 0.0;
histgram[k] = 0.0;
}

// -------------

for(i=0; i<Y_SIZE; i++){


for(j=0; j<X_SIZE; j++){
if(image_in[i][j] == LOW) low++;
else {
k = image_in[i][j];
Q[k]++;
}
}
}

//
for(k=1; k<HIGH; k++)
if(Q[k] == 0) Q[k] = (Q[k+1] + Q[k-1])/2;

//
for(i=0; i<250; i++) P[i] = (Q[i] + Q[i+1] + Q[i+2] + Q[i+3] + Q[i+4]
+Q[i+5] +Q[i+6]) / 7.0;

// --------------------------------------------------
Pl = 0;
for(k=0; k<HIGH; k++) if(Pl < P[k]) Pl = P[k]; //

Ph = Pl/10.0;
Pl = Pl/2.0;
for(i=0; i<5; i++){
j = 1;
plscnt = 1;
for(k=0; k<HIGH; k++) Q[k] = 0; //
for(k=0; k<HIGH; k++){
if(Pl < P[k]) Q[k]=plscnt;
if(Q[k] == j){
if(j == 1) j = 0;
if(j == 0 && Pl > P[k]) plscnt = 2;
}
}
for(k=0; k<HIGH; k++) if(Q[k] == 2) plscnt = 0;
if(plscnt == 0) break;
Pl = Pl - Ph;
}

Pl = 0; pls1 = 0;
for(k=0; k<HIGH; k++){
if(Q[k] == 1 && Pl < P[k]){
Pl = P[k];
pls1 = k;
}
}
//
Pl = 0; pls2 = 0;
77

for(k=0; k<HIGH; k++){


if(Q[k] == 2 && Pl < P[k]){
Pl = P[k];
pls2 = k;
}
}
//------------------------------------------------------------------------
Pl = P[pls1];
for(k=pls1; k<pls2; k++){
if(Pl > P[k]){
Pl = P[k];
m_max = k;
}
}
//HISTOGRAM -----------------------------------------------------------------
zero = P[m_max];
// zero = 0;
size = Y_SIZE * X_SIZE - low;

for(k=0; k<HIGH; k++)


histgram[k] = P[k]*10000/size;

for(i=m_max; i<=HIGH; i++){


sk[i] = (P[i] - zero) / size;
if(sk[i] < 0.0){
sk[i] = 0.0;
high = i;
break;
}
}
//2 Pl = 0;
for(k=m_max; k<high; k++){
if(Pl < P[k]){
Pl = P[k];
median = k;
}
}

calor = high; //

void CMammoCADsystemView::OnPectoralis()
{
// TODO: ‚Pectoral Muscle

int i, j,x,limit,size,horizon,cnt;
double muscle,a1,a2,ans;

OnSelectBreast();
OnOtu();
Median();
OnSobel();

limit = 0;
size = 0;
pm_max = 0; //‹
horizon = X_SIZE/2; // OJooo
muscle = 0.0; //
cnt = 0;
78

ans = 0;

for(i=0; i<Y_SIZE; i++) a[i] = X_SIZE;

for (i=0; i<Y_SIZE; i++){


for (j=5; j<horizon; j++) {
if(image_in[i][j] == HIGH){ ·
a[i] = j;
size = a[i-1] - a[i];
if(i >=10 && size < 0){
horizon = j;
a[i] = X_SIZE;
}
pm_max = i;
break;
}
}
}

OnMinimalSquareApproximationMethod();

//‹ o

for (i=0; i<Y_SIZE; i++){//


for(x=0; x < f[i]; x++){
image_line[i][x] = HIGH;
muscle += image_bst[i][x]; // base X
cnt++;
if(image_bst[i][j] == LOW) cnt--;
}
for(x=f[i]; x < X_SIZE; x++) image_line[i][x] = LOW;
}

muscle = muscle/cnt; // ³
m_muscle = muscle;

//////////////////////////Pectoral////////////////////////////////////////////
////////////////////
a1 = (muscle - 128.0)/((255.0 - muscle)*muscle);
a2 = 1.0 - 255.0*a1;

for (i=0; i<Y_SIZE; i++)


for (j=0; j<X_SIZE; j++) {
if(image_line[i][j] == HIGH) image_out[i][j] = LOW;
else {
ans =
a1*(double)image_bst[i][j]*(double)image_bst[i][j] +
a2*(double)image_bst[i][j];
image_out[i][j] = image_bst[i][j];
}
}

GetInput();
OnView();
SnKs();
}

void CMammoCADsystemView::OnHistgramTransrarion()
79

{
int i,j;
double max;

max = 0;

for (i=0; i<Y_SIZE; i++){


for (j=0; j<X_SIZE; j++) {
if(max < image_out[i][j]){
max = image_out[i][j];
maxy = i;
maxx = j;
}
}
}

for (i=0; i<Y_SIZE; i++){


for (j=0; j<X_SIZE; j++) {
image_out[i][j]= (unsigned
char)((255.0/max)*image_out[i][j]);
}
}
}

void CMammoCADsystemView::OnIrisFilter()
{
// TODO:

int ring;
int i,j,k,n,m,f[17],f1,f2,f3,f4,d,r,R,M,rcos,rsin,icolor[100];
//icolor[]‚ÍR‚ƈꏏ
double sita,fai,rf,ci_max,ci,rf_rad,Cmax,Cmin,IC;
double CN[100][100],C; //

r = 18; //
R = 25; //
d = R-r; //•
M = 32; //
fai = 360.0/(double)M; //
Cmax = -1.0;
Cmin = 1.0;
///////////////////////////////////////////////////////////
for (i=0; i<60; i++)
for (j=0; j<60; j++)
CN[i][j] = 0;

for (i=0; i<Y_SIZE; i++)


for (j=0; j<X_SIZE; j++)
image_out[i][j] = LOW;

for (i=R+2; i<=Y_SIZE-R-2; i++){


for (j=R+2; j<=X_SIZE-R-2; j++) {
if(image_in[i][j] > calor){
for (n=-R; n<=R; n++){ //‰~“à‚ÌŒvŽZ
for (m=-R; m<=R; m++) {

f[1] = image_in[i+n][j+m+2];
80

f[2] = image_in[i+n-1][j+m+2];
f[3] = image_in[i+n-2][j+m+2];
f[4] = image_in[i+n-2][j+m+1];
f[5] = image_in[i+n-2][j+m];
f[6] = image_in[i+n-2][j+m-1];
f[7] = image_in[i+n-2][j+m-2];
f[8] = image_in[i+n-1][j+m-2];
f[9] = image_in[i+n][j+m-2];
f[10] = image_in[i+n+1][j+m-2];
f[11] = image_in[i+n+2][j+m-2];
f[12] = image_in[i+n+2][j+m-1];
f[13] = image_in[i+n+2][j+m];
f[14] = image_in[i+n+2][j+m+1];
f[15] = image_in[i+n+2][j+m+2];
f[16] = image_in[i+n+1][j+m+2];

f1 = f[3]+f[4]+f[5]+f[6]+f[7];
f2 = f[11]+f[12]+f[13]+f[14]+f[15];
f3 = f[1]+f[2]+f[3]+f[15]+f[16];
f4 = f[7]+f[8]+f[9]+f[10]+f[11];
// MasK“

sita = (double)(f1-f2) /(double)(f3-f4);

if((f1-f2) == 0 && (f3-f4) == 0) CN[n+R][m+R]


= 1000.0; //
else if((f1-f2) == 0 && (f3-f4) > 0)
CN[n+R][m+R] = PI; //0‹
else if((f1-f2) == 0 && (f3-f4) < 0)
CN[n+R][m+R] = 0.0; //180‹
else if((f1-f2) > 0 && (f3-f4) == 0)
CN[n+R][m+R] = 1.5*PI; //90‹
else if((f1-f2) < 0 && (f3-f4) == 0)
CN[n+R][m+R] = 0.5*PI; //270‹
else if(f1>f2 && f3>f4) CN[n+R][m+R] =
atan(sita) + PI; //ƒxƒNƒgƒ‹Œù”z‚ÌŒü‚«,’PˆÊ‚Írad
else if(f1>f2 && f3<f4) CN[n+R][m+R] =
atan(sita) + 2.0*PI;
else if(f1<f2 && f3<f4) CN[n+R][m+R] =
atan(sita);
else if(f1<f2 && f3>f4) CN[n+R][m+R] =
atan(sita) + PI;

}
}

k = 0; //
rf = 0.0;
ci_max = -1.0;
C = 0.0;
IC = 0.0;
for(n=0; n<R; n++) icolor[n] = 0;

for(m=0; m<M; m++){ //


for(k=0; k<R; k++){ //•
rf_rad = rf*(2.0*PI/360.0); //Šp“x‚©‚çrad‚É•ÏŠ·
rcos = (int)(k *cos(rf_rad));
81

rsin = (int)(k *sin(rf_rad));


icolor[k] += image_in[i+rsin][j+rcos];
if(r<=k){
if(CN[R+rsin][R+rcos] == 1000.0) ci =
0.0;
else ci =
cos(rf_rad+CN[R+rsin][R+rcos]);
if(ci_max < ci){
ci_max = ci;
n = k;
}
}
}
for(k=1; k<=n; k++) IC += icolor[k]/(double)n;
for(n=0; n<=R; n++) icolor[n] = 0;
rf += fai;
C +=ci_max/(double)(M);
ci_max = -1.0;
}
if(Cmax <= C) Cmax = C;
if(Cmin >= C) Cmin = C;

ring = (int)(C * (IC/(double)M));

if(C>0.0) image_out[i][j] = ring;


else image_out[i][j] = LOW;
C = 0;
IC = 0;

}
else image_out[i][j] = LOW;
}
}

OnHistgramTransrarion();
GetInput();
OnView();
}

//////////////////////////////SNAKEϐ”/////////////////////////////////////
int vx0=0,vy0=0,vxb,vyb,vxn,vyn,lx,ly,mx,my;
int min_vx0=0,min_vy0=0,min_vxb,min_vyb,min_vxn,min_vyn;
double d1,d2,d3,d4,Esnake,Eint,Eimg,Elng1,Elng2;
int Sx[200],Sy[200];
//////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////Zaguyo//////////////////////////////////////////
//
int Vxb(int n, int k, int m, int vx0) //lx‚ÌXÀ•W‚ÌŒvŽZ
{
int lx,k0;

if(k == 0) k0 = n-1;
else k0 = k-1;

vxb = Sx[k0] + m;
82

lx = vx0 - vxb ;

return lx;
}
int Vyb(int n, int k, int l, int vy0) //lx‚ÌYÀ•W‚ÌŒvŽZ
{
int ly,k0;

if(k == 0) k0 = n-1;
else k0 = k-1;

vyb = Sy[k0] + l;

ly = vy0 - vyb;

return ly;
}
int Vxn(int n, int k, int w, int vx0) //mx‚ÌXÀ•W‚ÌŒvŽZ
{
int mx,k0,n0;

n0 = n-1;

if(k == n0) k0 = 0;
else k0 = k+1;

vxn = Sx[k0] + w;

mx = vx0 - vxn;

return mx;
}
int Vyn(int n, int k, int z, int vy0) //mx‚ÌYÀ•W‚ÌŒvŽZ
{
int my,k0,n0;

n0 = n-1;

if(k == n0) k0 = 0;
else k0 = k+1;

vyn = Sy[k0] + z;

my = vy0 - vyn;

return my;
}
double energy(int ly,int lx,int my,int mx,double W1,double W2)
//Œ`óƒGƒlƒ‹ƒM[‚ÌŒvŽZ
{
double Eint,d1,d2,d3,d4;

d1 = sqrt(double(lx * lx + ly * ly)); //ˆêŽŸ”÷•ª


d2 = sqrt(double(mx * mx + my * my));
d3 = sqrt(double((-(lx + mx)) * (-(lx + mx)))); //ERROR
d4 = sqrt(double((-(ly + my)) * (-(ly + my))));

Eint = W1*(d1 + d2) + W2*(d3 + d4); ` [


83

return Eint;
}
double snakeiris(int vy0, int vx0,int x, int y,unsigned char
image_in[5000][5000]) //Iris value, center
{
int f[17],f1,f2,f3,f4;
double sita,fai;

f[ 1] = image_in[ vy0 ][vx0+2];


f[ 2] = image_in[vy0-1][vx0+2];
f[ 3] = image_in[vy0-2][vx0+2];
f[ 4] = image_in[vy0-2][vx0+1];
f[ 5] = image_in[vy0-2][ vx0 ];
f[ 6] = image_in[vy0-2][vx0-1];
f[ 7] = image_in[vy0-2][vx0-2];
f[ 8] = image_in[vy0-1][vx0-2];
f[ 9] = image_in[ vy0 ][vx0-2];
f[10] = image_in[vy0+1][vx0-2];
f[11] = image_in[vy0+2][vx0-2];
f[12] = image_in[vy0+2][vx0-1];
f[13] = image_in[vy0+2][ vx0 ];
f[14] = image_in[vy0+2][vx0+1];
f[15] = image_in[vy0+2][vx0+2];
f[16] = image_in[vy0+1][vx0+2];

f1 = f[3]+f[4]+f[5]+f[6]+f[7];
f2 = f[11]+f[12]+f[13]+f[14]+f[15];
f3 = f[1]+f[2]+f[3]+f[15]+f[16];
f4 = f[7]+f[8]+f[9]+f[10]+f[11];

//sita‚Ì’PˆÊ‚̓‰ƒWƒAƒ“
sita = (double)(f1-f2) /(double)(f3-f4);

if((f1-f2) == 0 && (f3-f4) == 0) sita = 1000.0; //Œ”z‚È‚µ


else if((f1-f2) == 0 && (f3-f4) > 0) sita = PI; //0‹
else if((f1-f2) == 0 && (f3-f4) < 0) sita = 0.0; //180‹
else if((f1-f2) > 0 && (f3-f4) == 0) sita = 1.5*PI; //90‹
else if((f1-f2) < 0 && (f3-f4) == 0) sita = 0.5*PI; //270‹
else if(f1>f2 && f3>f4) sita = atan(sita) + PI; //ƒz‚ÌŒ‚«,’PˆÊ‚
else if(f1>f2 && f3<f4) sita = atan(sita) + 2.0*PI;
else if(f1<f2 && f3<f4) sita = atan(sita);
else if(f1<f2 && f3>f4) sita = atan(sita) + PI;

//’
fai = (double)y/(double)x;
fai = atan(fai);
fai = fai*(2.0*PI/360.0); //Area Circle·

if(sita == 1000.0) Elng2 = 0.0;


else Elng2 = cos(fai+sita);

return Elng2;
}

///////Coordinate Center ‹`//////////////////


84

int central_x;
int central_y;
///////////////////////////////////////////////////////////
double areavariance(unsigned char image_in[5000][5000]) //–ʐς̕ªŽU
{
int i,j,max_x,max_y,min_x,min_y,area,vx[10],vy[10],h,hist[256];
double mean,variance1,variance2,variance;

////////////‚Ú///////////////////////////////////////////////////
area = 0;
mean = 0;
for(h=0; h<=HIGH; h++) hist[h] = 0;

//Si = (central_x,central_y) S(i+1) = (vxn,vyn)


vx[0] = central_x; vx[1] = vx0; vx[2] = vxn;
vy[0] = central_y; vy[1] = vy0; vy[2] = vyn;

max_x = vx[0]; max_y = vy[0]; min_x = vx[0]; min_y = vy[0];

for(h=1; h<3; h++){


if(max_x < vx[h]) max_x = vx[h];
if(max_y < vy[h]) max_y = vy[h];
if(min_x > vx[h]) min_x = vx[h];
if(min_y > vy[h]) min_y = vy[h];
}
//¬‚³‚¢’l‚Ívx[3],vy[3]‚Ö,‘å‚«‚¢’l‚Ívx[4]vy[4]‚Ö
if(vx[1] < vx[2]){vx[3] = vx[1]; vx[4] = vx[2];}
else {vx[3] = vx[2]; vx[4] = vx[1];}
if(vy[1] < vy[2]){vy[3] = vy[1]; vy[4] = vy[2];}
else {vy[3] = vy[2]; vy[4] = vy[1];}
//¬‚³‚¢’l‚Ívx[5],vy[5]‚Ö,‘å‚«‚¢’l‚Ívx[6]vy[6]‚Ö
if(vx[2] < vx[0]){vx[5] = vx[2]; vx[6] = vx[0];}
else {vx[5] = vx[0]; vx[6] = vx[2];}
if(vy[2] < vy[0]){vy[5] = vy[2]; vy[6] = vy[0];}
else {vy[5] = vy[0]; vy[6] = vy[2];}
//¬‚³‚¢’l‚Ívx[7],vy[7]‚Ö,‘å‚«‚¢’l‚Ívx[8]vy[8]‚Ö
if(vx[1] < vx[0]){vx[7] = vx[1]; vx[8] = vx[0];}
else {vx[7] = vx[0]; vx[8] = vx[1];}
if(vy[1] < vy[0]){vy[7] = vy[1]; vy[8] = vy[0];}
else {vy[7] = vy[0]; vy[8] = vy[1];}

//’†S“_,S(i-1),(vx0,vy0)‚ÌŽOŠpŒ`‚̖ʐÏ
for(i=min_y; i<=max_y; i++){
for(j=min_x; j<=min_x; j++){
if(vy[3]<=i && i<=vy[4] || vx[3]<=j && j <=vx[4])
if(vy[5]<=i && i<=vy[6] || vx[5]<=j && j <=vx[6])
if(vy[7]<=i && i<=vy[8] || vx[7]<=j && j
<=vx[8]){
area++;
h = image_in[i][j];
hist[h]++;
mean += image_in[i][j];
}
}
}
//•ªŽU
mean = mean/(double)area;
for(h=0; h<HIGH; h++){
85

variance1 = sqrt(((hist[h] - mean)*(hist[h] - mean))/(area-1));


}
/////////////////2‰ñ–Ú//////////////////////////////////////////////////////
area = 0;
mean = 0;
for(h=0; h<=HIGH; h++) hist[h] = 0;

//S(i-1) = (vxb,vyb) Si = (central_x,central_y)


vx[0] = central_x; vx[1] = vx0; vx[2] = vxb;
vy[0] = central_y; vy[1] = vy0; vy[2] = vyb;

max_x = vx[0]; max_y = vy[0]; min_x = vx[0]; min_y = vy[0];

for(h=1; h<3; h++){


if(max_x < vx[h]) max_x = vx[h];
if(max_y < vy[h]) max_y = vy[h];
if(min_x > vx[h]) min_x = vx[h];
if(min_y > vy[h]) min_y = vy[h];
}
//¬‚³‚¢’l‚Ívx[3],vy[3]‚Ö,‘å‚«‚¢’l‚Ívx[4]vy[4]‚Ö
if(vx[1] < vx[2]){vx[3] = vx[1]; vx[4] = vx[2];}
else {vx[3] = vx[2]; vx[4] = vx[1];}
if(vy[1] < vy[2]){vy[3] = vy[1]; vy[4] = vy[2];}
else {vy[3] = vy[2]; vy[4] = vy[1];}
//¬‚³‚¢’l‚Ívx[5],vy[5]‚Ö,‘å‚«‚¢’l‚Ívx[6]vy[6]‚Ö
if(vx[2] < vx[0]){vx[5] = vx[2]; vx[6] = vx[0];}
else {vx[5] = vx[0]; vx[6] = vx[2];}
if(vy[2] < vy[0]){vy[5] = vy[2]; vy[6] = vy[0];}
else {vy[5] = vy[0]; vy[6] = vy[2];}
//¬‚³‚¢’l‚Ívx[7],vy[7]‚Ö,‘å‚«‚¢’l‚Ívx[8]vy[8]‚Ö
if(vx[1] < vx[0]){vx[7] = vx[1]; vx[8] = vx[0];}
else {vx[7] = vx[0]; vx[8] = vx[1];}
if(vy[1] < vy[0]){vy[7] = vy[1]; vy[8] = vy[0];}
else {vy[7] = vy[0]; vy[8] = vy[1];}

//’†S“_,S(i-1),(vx0,vy0)‚ÌŽOŠpŒ`‚̖ʐÏ
for(i=min_y; i<=max_y; i++){
for(j=min_x; j<=max_x; j++){
if(vy[3]<=i && i<=vy[4] || vx[3]<=j && j <=vx[4])
if(vy[5]<=i && i<=vy[6] || vx[5]<=j && j <=vx[6])
if(vy[7]<=i && i<=vy[8] || vx[7]<=j && j
<=vx[8]){
area++;
h = image_in[i][j];
hist[h]++;
mean += image_in[i][j];
}
}
}
//•ªŽU
mean = mean/(double)area;
for(h=0; h<HIGH; h++){
variance2 = sqrt(((hist[h] - mean)*(hist[h] - mean))/(area-1));
}
/////////////////////////////////////////////////////////
variance = variance1 + variance2;

return variance;
86

void interval(int n,int k,int i,int j,int i0, int j0,double W1,double
W2,double W3,double W4,double W5, unsigned char image_in[5000][5000]) //ŒvŽZ
{
int f,g,m,l,w,z,x,y;
double Emin;
int prueba,prueba2;

Esnake = 100000; //‰Šú‰»


min_vy0=i;
min_vx0=j;

prueba=vx0;
prueba2=vy0;

for (f=-1;f<=1; f++)


for(g=-1; g<=1; g++)
for(m=-1; m<=1; m++)
for(l=-1; l<=1; l++)
for(w=-1; w<=1; w++)
for(z=-1; z<=1; z++){
vy0 = (i + f);
vx0 = (j + g);
ly = Vyb(n,k,m,vy0); // (lx ,
ly) = (vx0 - vxb , vy0 - vyb)
lx = Vxb(n,k,l,vx0);
my = Vyn(n,k,w,vy0); // (mx ,
my) = (vx0 - vxn , vy0 - vyn)
mx = Vxn(n,k,z,vx0);
if(i == 0 || j == 0 || i == Y_SIZE*5
|| j == X_SIZE*5) break;

//Œ`óƒGƒlƒ‹ƒM[‚ÌŒvŽZ
Eint = energy(ly,lx,my,mx,W1,W2);
//”Z“xƒGƒlƒ‹ƒM[‚ÌŒvŽZ
prueba=vy0;
prueba2=vx0;
Eimg = -(W3
*image_in[vy0][vx0]);

x = i0 - vy0;
y = j0 - vx0;
Elng1 = -W4 * (sqrt((double)(x*x +
y*y)));

Elng2 = 0;//W5 *
areavariance(image_in);//snakeiris(vy0,vx0,x,y,image_in);

//‘SƒGƒlƒ‹ƒM[‚ÌŒvŽZ
Emin = Eint + Eimg + Elng1 + Elng2;

if(Emin < Esnake){


Esnake = Emin;
min_vy0 = vy0;
min_vx0 = vx0;
min_vyb = vyb;
87

min_vxb = vxb;
min_vyn = vyn;
min_vxn = vxn;
}
}
}

int protchange(int n) //


int l,m,p_num,r; //
double R;

r = 15;

p_num = n-1;

for(l=1; l<p_num; l++){


R = sqrt((double)((Sx[l] - Sx[l-1])*(Sx[l] - Sx[l-1]) +
(Sy[l] - Sy[l-1])*(Sy[l] - Sy[l-1])));
if(r < R){//
for(m=p_num; m>=l; m--){
Sx[m+1] = Sx[m];
Sy[m+1] = Sy[m];
}
if(Sx[l] > Sx[l-1]) Sx[l] = (int)(0.5*(Sx[l] - Sx[l-1]) +
Sx[l-1]);
else Sx[l] = int(0.5*(Sx[l-1] - Sx[l]) + Sx[l]);
if(Sy[l] > Sy[l-1]) Sy[l] = (int)(0.5*(Sy[l] - Sy[l-1]) +
Sy[l-1]);
else Sy[l] = int(0.5*(Sy[l-1] - Sy[l]) + Sy[l]);

n++;
p_num = n-1;
}
else if (0.5*r > R
for(m=l; m<=p_num; m++){
Sx[m] = Sx[m+1];
Sy[m] = Sy[m+1];
}
n--;
p_num = n-1;
}
else ;
}
/
R = sqrt((double)((Sx[0] - Sx[p_num])*(Sx[0] - Sx[p_num]) + (Sy[0] -
Sy[p_num])*(Sy[0] - Sy[p_num])));
if(r < R){
Sx[p_num+1] = Sx[p_num];
Sy[p_num+1] = Sy[p_num];
if(Sx[p_num] > Sx[0]) Sx[p_num] = (int)(0.5*(Sx[p_num] - Sx[0]) +
Sx[0]);
else Sx[p_num] = int(0.5*(Sx[0] - Sx[p_num]) + Sx[p_num]);
if(Sy[p_num] > Sy[0]) Sy[p_num] = (int)(0.5*(Sy[p_num] - Sy[0]) +
Sy[0]);
else Sy[p_num] = int(0.5*(Sy[0] - Sy[p_num]) + Sy[p_num]);

n++;
p_num = n-1;
88

}
else if(0.25*r > R){//
n--;
p_num = n-1;
}
else ;

return n;
}

void prot(unsigned char image_in[5000][5000],unsigned char


image_out[5000][5000],int N,int n)
{

int i,j;

for (i=0; i<(int)Y_SIZE*5; i++)


for (j=0; j<(int)X_SIZE*5; j++)
image_out[i][j] = image_in[i][j];
}

void CMammoCADsystemView::OnSnakes()
{
// TODO: SNAKES EXTRACTION

int rcos,rsin,i0,j0,i,j,n,k,N;
double rf,rf_rad,W1,W2,W3,W4,W5,Esnake0;

//‰Šú‰»
d1 = d2 = d3 = d4 = Eint = Eimg = Esnake0 = N = 0;
W1 = 10; //d‚ÝŒW” 10 —ד¯Žm‚Ì‹——£
W2 = 20; //d‚ÝŒW” 300
W3 = 19; //d‚ÝŒW” 15 ”Z“x(ƒGƒbƒW‚Å‚Í‚È‚¢)
W4 = 200; //d‚ÝŒW” 300 ’†S‚©‚ç‚Ì‹——£
W5 = 20; //d‚ÝŒW”@5 3“_‚ÅŒ‹‚Ԗʐϒ†‚Ì”Z“x•ªŽU~‚Q
i0 = maxy; //175; //§Œä“_‚̏‰ŠúˆÊ’u‚Ì’†S
j0 = maxx; //175;
rf = 0; //Šp“x
n = 32; //§Œä“_‚̐”@32‚͏‰Šú‚̐”
central_x = maxx;
central_y = maxy;

//§Œä“_‚̏‰ŠúÝ’è
for (k=0;k<n; k++){
rf_rad = rf * (2.0*PI/360.0);
rcos = (int)(50.0 * cos(rf_rad));
rsin = (int)(50.0 * sin(rf_rad));
Sy[k] = i0 + rsin;
Sx[k] = j0 + rcos;
rf = rf + 11.25;
}

//SNAKE
while(1){
for (k=0;k<n; k++){
i = Sy[k];
j = Sx[k];
89

//‹——£‚ÌŒvŽZ
interval(n,k,i,j,i0,j0,W1,W2,W3,W4,W5,image_in);
//ƒGƒlƒ‹ƒM[‚ªÅ¬‚̍À•Wmin_i,min_j‚ªŽZo‚³‚ê‚é

//§Œä“_‚̈ړ®
Sy[k] = min_vy0;
Sx[k] = min_vx0;
}
//§Œä“_‚̒ljÁEíœ
n = protchange(n);
//‰æ‘œ‚ɐ§Œä“_‚ðƒvƒƒbƒg‚·‚é

if(Esnake0 == Esnake){
prot(image_in,image_out,N,n);

break;
}
else {
Esnake0 = Esnake;
N++;
}
}
m_N = n;

for (i=0; i<(int)Y_SIZE*5; i++){


for (j=0; j<(int)X_SIZE*5; j++){
image_in[i][j] = image_out[i][j];
}
}
}

void CMammoCADsystemView::CutOfTumor()
{
int
i,j,x,y,k,h,h1,h2,m,h0,m0,max_x,max_y,min_x,min_y,vx[10],vy[10],X[50],Y[50];
double a,b;

///////////‰ŠúÝ’è///////////////////////////////////////////////////
for(i=0; i<Y_SIZE*5; i++){
for(j=0; j<X_SIZE*5; j++){
image_bst[i][j] = LOW;
image_out[i][j] = LOW;
}
}

max_x = 0; max_y = 0; min_x = X_SIZE*5; min_y = Y_SIZE*5;


for(k=0; k<m_N; k++){
if(max_x < Sx[k]) max_x = Sx[k];
if(max_y < Sy[k]) max_y = Sy[k];
if(min_x > Sx[k]) min_x = Sx[k];
if(min_y > Sy[k]) min_y = Sy[k];
}

//
for(k=0; k<m_N; k++){
vx[0] = central_x; vy[0] = central_y;
if((m_N-1) == k){
90

vx[1] = Sx[m_N-1]; vx[2] = Sx[0];


vy[1] = Sy[m_N-1]; vy[2] = Sy[0];
}
else{
vx[1] = Sx[k]; vx[2] = Sx[k+1];
vy[1] = Sy[k]; vy[2] = Sy[k+1];
}

//////////§Œä“_ŠÔ‚̐ü•ª‚ÌŒvŽZ////////////////////////////////////////
// y = C ‚̏ꍇ
if(vy[1] == vy[2]){
if(vx[1] > vx[2]){ //í‚É2‚ª‘å‚«‚¢‚悤‚É‚·‚é
h = vx[1];
vx[1] = vx[2];
vx[2] = h ;
}
h = vx[2] - vx[1];
for(m=0; m<=h; m++){
X[m] = vx[1] + m;
Y[m] = vy[1];
}
}
// x = C ‚̏ꍇ
else if(vx[1] == vx[2]){
if(vy[1] > vy[2]){ //í‚É2‚ª‘å‚«‚¢‚悤‚É‚·‚é
h = vy[1];
vy[1] = vy[2];
vy[2] = h ;
}
h = vy[2] - vy[1];
for(m=0; m<=h; m++){
X[m] = vx[1];
Y[m] = vy[1] + m;
}
}
// y = ax + b;
else{
a = (double)(vy[1] - vy[2])/(double)(vx[1] - vx[2]);
b = (double)(vy[1] - (a * vx[1]));
if(vx[1] > vx[2]){ //í‚É2‚ª‘å‚«‚¢‚悤‚É‚·‚é
h1 = vx[1];
vx[1] = vx[2];
vx[2] = h1 ;
}
h1 = vx[2] - vx[1];
for(m=0; m<=h1; m++){
X[m] = vx[1] + m;
Y[m] = (int)(a * X[m] + b);
}
if(vy[1] > vy[2]){ //í‚É2‚ª‘å‚«‚¢‚悤‚É‚·‚é
h = vy[1];
vy[1] = vy[2];
vy[2] = h ;
}
h2 = vy[2] - vy[1];
h = h1 + h2;
h1++;
for(m=0; m<=h2; m++){
91

Y[h1+m] = vy[1] + m;
X[h1+m] = (int)((Y[h1+m] - b)/a);
}
}
//////////central‚©‚çX,Y‚܂ł̐ü•ª‚ðo—Í//////////////////////////////
for(m=0; m<=h; m++){
vx[0] = central_x; vy[0] = central_y;
// y = C ‚̏ꍇ
if(vy[0] == Y[m]){
if(vx[0] > X[m]){ //í‚É2‚ª‘å‚«‚¢‚悤‚É‚·‚é
h0 = vx[0];
vx[0] = X[m];
X[m] = h0 ;
}
h0 = X[m] - vx[0];
for(m0=0; m0<=h0; m0++){
x = vx[0] + m0;
y = vy[0];
image_bst[y][x] = HIGH;
}
}
// x = C ‚̏ꍇ
else if(vx[0] == X[m]){
if(vy[0] > Y[m]){ //í‚É2‚ª‘å‚«‚¢‚悤‚É‚·‚é
h0 = vy[0];
vy[0] = Y[m];
Y[m] = h0 ;
}
h0 = Y[m] - vy[0];
for(m0=0; m0<=h0; m0++){
x = vx[0];
y = vy[0] + m0;
image_bst[y][x] = HIGH;
}
}
// y = ax + b;
else{
a = (double)(vy[0] - Y[m])/(double)(vx[0] - X[m]);
b = vy[0] - (a * vx[0]);
if(vx[0] > X[m]){ é
h1 = vx[0];
vx[0] = X[m];
X[m] = h1 ;
}
h1 = X[m] - vx[0];
for(m0=0; m0<=h1; m0++){
x = vx[0] + m0;
y = (int)(a * x + b);
image_bst[y][x] = HIGH;
}
if(vy[0] > Y[m]){ //
h2 = vy[0];
vy[0] = Y[m];
Y[m] = h2 ;
}
h2 = Y[m] - vy[0];
for(m0=0; m0<=h2; m0++){
y = vy[0] + m0;
92

x = (int)((y - b)/a);
image_bst[y][x] = HIGH;
}
}
}
}
for(i=min_y; i<max_y; i++){
for(j=min_x; j<max_x; j++){
if(image_bst[i-1][j-1] == HIGH) image_out[i][j] =
image_in[i][j];
else if(image_bst[i-1][j] == HIGH) image_out[i][j] =
image_in[i][j];
else if(image_bst[i-1][j+1] == HIGH) image_out[i][j] =
image_in[i][j];
else if(image_bst[i][j-1] == HIGH) image_out[i][j] =
image_in[i][j];
else if(image_bst[i][j] == HIGH) image_out[i][j] =
image_in[i][j];
else if(image_bst[i][j+1] == HIGH) image_out[i][j] =
image_in[i][j];
else if(image_bst[i+1][j-1] == HIGH) image_out[i][j] =
image_in[i][j];
else if(image_bst[i+1][j] == HIGH) image_out[i][j] =
image_in[i][j];
else image_out[i+1][j+1] = LOW;
}
}

for(i=0; i<Y_SIZE; i++){


for(j=0; j<X_SIZE; j++){
image_in[i][j] = LOW;
}
}
for(i=min_y; i<max_y; i++){
for(j=min_x; j<max_x; j++){
image_in[i-min_y][j-min_x] = image_out[i][j];
}
}
maxy = max_y - min_y;
maxx = max_x - min_x;

CDC* pDC;
pDC=GetDC();

for(i=0;i<Y_SIZE;i++){
for(j=0;j<X_SIZE;j++){
k=image_in[i][j];
pDC->SetPixel(10+j,10+i,RGB(k,k,k));
}
}
}

void CMammoCADsystemView::OnTumorPoint()
{
//

CFileFind FileFind;
FILE *fp,*fpf;
93

int i,j;
char c_N[3];

//!!ATTENTION!!««"path"‚"maligrant folder"««
//path = "C:\Users\rigel\Desktop\Thesis\Imagenes de prueba\Original
tumor\fat_tumor\3.raw";
//C:\Users\rigel\Desktop\Thesis\Imagenes de prueba\Original
tumor\heterogeneous_tumor
path = "C:\\Users\\rigel\\Desktop\\Thesis\\Imagenes de prueba\\Original
tumor\\heterogeneous_tumor\\<num>.raw";
itoa(m_num, c_N, 10); //
path.Replace("<num>",c_N); /·
if(!FileFind.FindFile(path)) return;
fp = fopen(path,"rb");
for(i=0; i<Y_SIZE*5; i++)
for(j=0; j<X_SIZE*5; j++)
fread(&image_in[i][j],1,1,fp);
fclose(fp);

///////!!tumor point!!//////////////////

// maxx = coordenate_x-10;
// maxy = coordenate_y-10;

//maxx=location_x;
// maxy=location_y;

maxx = maxx*5;
maxy = maxy*5;
////////////////////////////////////////

OnSnakes();
CutOfTumor();

path.Replace(".raw","snake.raw"); //ƒ^ƒCƒgƒ‹–¼’uŠ·

fpf = fopen(path, "wb");

for (i=0; i<(int)Y_SIZE*5; i++)


for (j=0; j<(int)X_SIZE*5; j++) {
fwrite(&image_out[i][j],1,1,fpf);
}
fclose(fpf);
}
void RunLengthMatrix0(int max_x,int max_y,int l,unsigned char
Run_Lgh[256][1000],unsigned char image_in[5000][5000])
{
int i,j,x,y; //

for(y=0; y<256; y++)


for(x=0; x<=l; x++)
Run_Lgh[y][x] = LOW;

for(i=0; i<=max_y;i++){
x=1;
for(j=0; j<max_x; j++){
y = image_in[i][j];
if(image_in[i][j] == image_in[i][j+1]) x++;
94

else {
Run_Lgh[y][x]++;
x = 1;
}
}
}
x = 1;
}

void RunLengthMatrix90(int max_x,int max_y,int l,unsigned char


Run_Lgh[256][1000],unsigned char image_in[5000][5000])
{
int i,j,x,y; //
for(y=0; y<256; y++)
for(x=0; x<=l; x++)
Run_Lgh[y][x] = LOW;

for(j=0; j<=max_x;j++){
x=1;
for(i=0; i<max_y; i++){
y = image_in[i][j];
if(image_in[i][j] == image_in[i+1][j]) x++;
else {
Run_Lgh[y][x]++;
x = 1;
}
}
}
x = 1;
}
//
void RunLengthMatrix45(int max_x,int max_y,int l,unsigned char
Run_Lgh[256][1000],unsigned char image_in[5000][5000])
{
int i,j,x,y,xx,yy,x0,y0,n; //
for(y=0; y<256; y++)
for(x=0; x<=l; x++)
Run_Lgh[y][x] = LOW;

for(n=0; n<=max_y; n++){


y0 = max_y - n;
j = 0;
x = 1;
for(i=y0; i<max_y; i++){
y = image_in[i][j];
yy = i+1;
xx = j+1;
if(yy >=max_y || xx >= max_x){
if(i >= max_y || j >= max_x) break;
Run_Lgh[y][x]++;
x = 1;
}
else if(image_in[i][j] == image_in[yy][xx]) x++;
else {
Run_Lgh[y][x]++;
x = 1;
}
j++;
95

}
}
for(n=max_x-1; n>=0; n--){
x0 = max_x - n;
i = 0;
x = 1;
for(j=x0; j<max_x; j++){
y = image_in[i][j];
yy = i+1;
xx = j+1;
if(yy >=max_y || xx >= max_x){
if(i >= max_y || j >= max_x) break;
Run_Lgh[y][x]++;
x = 1;
}
else if(image_in[i][j] == image_in[i+1][j+1]) x++;
else {
Run_Lgh[y][x]++;
x = 1;
}
i++;
}
}
x = 1;
}
//135
void RunLengthMatrix135(int max_x,int max_y,int l,unsigned char
Run_Lgh[256][1000],unsigned char image_in[5000][5000])
{
int i,j,x,y,x0,y0,xx,n; //y‚ÍPxCx

for(y=0; y<256; y++)


for(x=0; x<=l; x++)
Run_Lgh[y][x] = LOW;

for(n=max_y; n>=1; n--){


y0 = max_y - n;
j = 0;
x = 1;
for(i=y0; i>=0; i--){
if(i < 0) break;
y = image_in[i][j];
xx = j+1;
if(i == 0 || xx >= max_x){
if(j >= max_x) break;
Run_Lgh[y][x]++;
x = 1;
}
else if(image_in[i][j] == image_in[i-1][xx]) x++;
else {
Run_Lgh[y][x]++;
x = 1;
}
j++;
}
}
for(n=max_x-1; n>=0; n--){
x0 = max_x - n;
96

i = max_y-1;
x = 1;
for(j=x0; j<max_x; j++){
if(i < 0) break;
y = image_in[i][j];
xx = j+1;
if(i == 0 || xx >= max_x){
if(j >= max_x) break;
Run_Lgh[y][x]++;
x = 1;
}
else if(image_in[i][j] == image_in[i-1][xx]) x++;
else {
Run_Lgh[y][x]++;
x = 1;
}
i--;
}
}
x = 1;
}

double rlgbase(int l,unsigned char Run_Lgh[256][1000]){

int i,j;
double rlg0;

rlg0 = 0.0;

for(i=1; i<256; i++)


for(j=1; j<l; j++)
rlg0 += Run_Lgh[i][j];

return rlg0;
}
/
double Sre(int l,double rlg0,unsigned char Run_Lgh[256][1000]){
int i,j;
double rlg;

rlg = 0.0;

for(i=1; i<256; i++)


for(j=1; j<l; j++)
rlg += Run_Lgh[i][j]/(double)(j*j);

return rlg / rlg0;


}
//ƒ
double Lre(int l,double rlg0,unsigned char Run_Lgh[256][1000]){
int i,j;
double rlg;

rlg = 0.0;

for(i=1; i<256; i++)


for(j=1; j<l; j++)
rlg += (double)(j*j) * Run_Lgh[i][j];
97

return rlg / rlg0;


}
//
double Gln(int l,double rlg0,unsigned char Run_Lgh[256][1000]){
int i,j;
double rlg;

rlg = 0.0;

for(i=1; i<256; i++)


for(j=1; j<l; j++)
rlg += Run_Lgh[i][j] * Run_Lgh[i][j];

return rlg / rlg0;


}
//ƒ‰ƒ“ƒŒƒ“ƒOƒXs—ñ‚Ì“Á’¥—ÊRLN‚̍쐬
double Rln(int l,double rlg0,unsigned char Run_Lgh[256][1000]){
int i,j;
double rlg;

rlg = 0.0;

for(j=1; j<l; j++)


for(i=1; i<256; i++)
rlg += Run_Lgh[i][j] * Run_Lgh[i][j];

return rlg / rlg0;


}

void CMammoCADsystemView::OnFeature()
{
unsigned char Run_Lgh[256][1000]; //[‹P“x][‰æ‘œ‚Ì’·‚³]
int i,j,k,l;
FILE *fp;
double h[256],MEN,log_h,CNT,VAR,SKW,KRT,EGY,EPY; //features extraction
double SRE[4],LRE[4],GLN[4],RLN[4],RPC[4],rlg0,area; //RUN LENGTH MATRIX

MEN=0.0; CNT=0.0; VAR


=0.0; SKW=0.0; KRT=0.0; EGY=0.0; EPY=0.0; rlg0=0.0;

for(k=0; k<256; k++) h[k] = 0.0;


for(k=0; k<4; k++){ SRE[k] = 0; LRE[k] = 0; GLN[k] = 0; RLN[k] = 0;
RPC[k] = 0;}

//title
if(title_lock < 0){
path = "C:\mammographyimage.csv";
fp = fopen(path,"a"); //path Ok

fprintf(fp,"%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,
%s,%s,%s,%s,%s,%s,%s,\n",
"MEN","CNT","VAR","SKW","KRT","EGY","EPY",
"SRE0","LRE0","GLN0","RLN0","RPC0",
"SRE45","LRE45","GLN45","RLN45","RPC45",
"SRE90","LRE90","GLN90","RLN90","RPC90",
"SRE135","LRE135","GLN135","RLN135","RPC135");
fclose(fp);
98

title_lock = 1;
}

//maxx and mayy


for(i=0; i<maxy; i++){
for(j=0; j<maxx; j++){
k = image_in[i][j];
h[k]++;
}
}
area = (maxx * maxy) - h[0];
for(k=0; k<256; k++) h[k] = h[k]/(double)(maxx * maxy);

//////”///////////////////////////////////////////////
//•½‹Ï
for(k=1; k<256; k++) MEN += k * h[k];
//ƒRƒ“ƒgƒ‰ƒXƒg
for(k=1; k<256; k++) CNT += k * k * h[k];
//•ªŽU
for(k=1; k<256; k++) VAR += pow((k - MEN),2.0) * h[k];
//˜c“x
for(k=1; k<256; k++) SKW += (1.0/(pow(VAR,1.5))) * pow((k - MEN),3.0) *
h[k];
//ë“x
for(k=1; k<256; k++) KRT += (1.0/(pow(VAR,2.0))) * pow((k - MEN),4.0) *
h[k];
//ƒGƒlƒ‹ƒM[
for(k=1; k<256; k++) EGY += pow(h[k],2);
//ƒGƒ“ƒgƒƒs[
for(k=1; k<256; k++){
if(h[k] == 0) log_h = 0.0;
else log_h = log(h[k]);
EPY += -(h[k] * log_h);
}
///////////////////////////////////////////////////////
if(maxx < maxy) l = maxy;
else l = maxx;
RunLengthMatrix0(maxx,maxy,l,Run_Lgh,image_in);
//
rlg0 = rlgbase(l,Run_Lgh);
SRE[0] = Sre(l,rlg0,Run_Lgh);
LRE[0] = Lre(l,rlg0,Run_Lgh);
GLN[0] = Gln(l,rlg0,Run_Lgh);
RLN[0] = Rln(l,rlg0,Run_Lgh);
RPC[0] = rlg0 / area;

//Valures for 45
RunLengthMatrix45(maxx,maxy,l,Run_Lgh,image_in);
//“Á’¥—Ê‚ÌŽZo
rlg0 = rlgbase(l,Run_Lgh);
SRE[1] = Sre(l,rlg0,Run_Lgh);
LRE[1] = Lre(l,rlg0,Run_Lgh);
GLN[1] = Gln(l,rlg0,Run_Lgh);
RLN[1] = Rln(l,rlg0,Run_Lgh);
RPC[1] = rlg0 / area;
99

//ƒValues for 90
RunLengthMatrix90(maxx,maxy,l,Run_Lgh,image_in);

rlg0 = rlgbase(l,Run_Lgh);
SRE[2] = Sre(l,rlg0,Run_Lgh);
LRE[2] = Lre(l,rlg0,Run_Lgh);
GLN[2] = Gln(l,rlg0,Run_Lgh);
RLN[2] = Rln(l,rlg0,Run_Lgh);
RPC[2] = rlg0 / area;

//Values for 135


RunLengthMatrix135(maxx,maxy,l,Run_Lgh,image_in);

rlg0 = rlgbase(l,Run_Lgh);
SRE[3] = Sre(l,rlg0,Run_Lgh);
LRE[3] = Lre(l,rlg0,Run_Lgh);
GLN[3] = Gln(l,rlg0,Run_Lgh);
RLN[3] = Rln(l,rlg0,Run_Lgh);
RPC[3] = rlg0 / area;

//
//!!ATTENTION
path = "C:\\Users\\rigel\\Desktop\\mammographyimage.csv";
fp = fopen(path,"a"); //‡Œv27ŒÂ
fprintf(fp,"%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,
%f,%f,%f,%f,%f,%f,%f,\n",
MEN,CNT,VAR,SKW,KRT,EGY,EPY,
SRE[0],LRE[0],GLN[0],RLN[0],RPC[0],
SRE[1],LRE[1],GLN[1],RLN[1],RPC[1],
SRE[2],LRE[2],GLN[2],RLN[2],RPC[2],
SRE[3],LRE[3],GLN[3],RLN[3],RPC[3]);
fclose(fp);
}

void CMammoCADsystemView::OnCad()
{
//
OnPectoralis(); //Pectoral cut
OnIrisFilter(); //Filter
SnKs(); //Skewness
OnTumorPoint(); //coordenates
OnFeature(); //values
}
void CMammoCADsystemView::OnShrinking()
{
int i,j,m,n;

int xs= X_SIZE/2;


int ys= Y_SIZE/2;

double zx,zy; // shrinking scale

zx=0.5;
zy=0.5;

for (i=-ys;i<ys;i++){
100

for (j=-xs;j<xs;j++){

if (i>0) m=(int)(i/zy + 0.5);

else m=(int)(i/zy+0.5);

if (j>0)n=(int)(j/zx + 0.5);

else n=(int)(j/zx+0.5);

if ((m>=-ys)&&(m<ys)&&(n>=-xs)&&(n<xs))

image_out[i+ys][j+xs]=image_in[m+ys][n+xs];

else image_out[i+ys][j+xs]=0;

}
}
GetInput();
OnView();

void CMammoCADsystemView::ONChangesize()
{

int i,j;

for(i=0; i<Y_SIZE; i++){


for(j=0; j<X_SIZE; j++){
image_out[i][j] = image_in[i][X_SIZE-j];
}
}
GetInput();

OnView();

void CMammoCADsystemView::OnXY_coordinates()
{

void CMammoCADsystemView::OnLButtonDown(UINT nFlags, CPoint point)


{

//int coordenate_x, coordenate_y; //

flag = 1;
coordenate_x=point.x; // save in coordenates variable the value of point.x
and ponint.y
coordenate_y=point.y;
101

int location_x; // variable for exchange data from int to char


int location_y;
//char message_x[33];// only data for text out
//char message_y[33];

location_x=coordenate_x; // change of number;


location_y=coordenate_y;

itoa(location_x,message_x,10);// transform int type to string type


itoa (location_y,message_y,10);

CView::OnLButtonDown(nFlags, point);
Invalidate();
}

Anda mungkin juga menyukai