Tabla de contenido:

Uso de umbrales de intensidad de escala de grises variables para visualizar e identificar anomalías en imágenes de mamografías: 9 pasos
Uso de umbrales de intensidad de escala de grises variables para visualizar e identificar anomalías en imágenes de mamografías: 9 pasos

Video: Uso de umbrales de intensidad de escala de grises variables para visualizar e identificar anomalías en imágenes de mamografías: 9 pasos

Video: Uso de umbrales de intensidad de escala de grises variables para visualizar e identificar anomalías en imágenes de mamografías: 9 pasos
Video: Introducción a la Imagenología: Conceptos y Fundamentos de la imagen médica digital 2024, Noviembre
Anonim
Uso de umbrales de intensidad de escala de grises variables para visualizar e identificar anomalías en imágenes de mamografías
Uso de umbrales de intensidad de escala de grises variables para visualizar e identificar anomalías en imágenes de mamografías

El propósito de este proyecto era identificar y utilizar un parámetro para procesar imágenes de mamografías en escala de grises de varias clasificaciones de tejido de fondo: tejido graso, glandular graso y tejido denso. Esta clasificación se utiliza cuando los radiólogos analizan mamografías y deben considerar si la densidad del tejido ocultará cualquier anomalía, como lesiones o tumores. Esto se debe tanto a las estructuras fisiológicas normales como el tejido glandular y el tejido conectivo fibroso. y las morfologías anormales, como calcificaciones y tumores, aparecerán muy brillantes en la mamografía, mientras que el tejido graso menos denso aparecerá de color negro. Por lo tanto, fue apropiado programar un clasificador que pueda manipular los niveles de intensidad de píxeles para visualizar e identificar mejor las masas.

Paso 1: Organización de los datos de la mamografía

Organización de los datos de la mamografía
Organización de los datos de la mamografía

Una de las primeras cosas que me di cuenta de que necesitaba manejar fue organizar los datos de una manera muy clara, concisa y accesible. Estas son las variables que extraje de la base de datos de mamografías mini-MIAS. Creé dos matrices. Uno que contiene 4 columnas:

  1. Número de imagen:
  2. x coordenada de masa
  3. y coordenada de masa
  4. Radio de masa: (Esto definió un tamaño aproximado para la masa

La segunda matriz contenía información de clasificación:

  1. Tipo de tejido de fondo: graso (F), glandular graso (G), denso (D)
  2. Descripción de la masa: bien definida (CIRC), espiculada (SPIC), otra mal definida (MISC) Distorsión arquitectónica (ARCH), asimetría (ASYM), normal (NORM)
  3. Diagnósticos: benigno (B), maligno (M)

Dado que el objetivo de este proyecto era determinar el mejor umbral para cada tipo de tejido de fondo, no se necesitaba toda la información. Sin embargo, puede expandir su proyecto para incluir análisis de textura y probar su clasificador contra las descripciones de masas conocidas.

Nota al margen: La base de datos de la que obtuve las imágenes de mamografía diagnosticadas organizó la información sobre cada mamografía en un archivo de texto separado de las imágenes. Fue un poco difícil para mí extraer los datos de un archivo de texto y organizarlos en formas de matriz, pero el siguiente enlace fue muy útil para resolver todo eso. Alternativamente, simplemente ajuste el código que pegué arriba para sus propósitos.

Formato de archivo de mamografía: mdb001 G CIRC B 535425197

mdb002 G CIRC B 522280 69

Ayuda de TextScan: https://www.mathworks.com/help/matlab/ref/textsca… Base de datos de mammogramas:

Paso 2: procesamiento de imágenes

Procesamiento de imágenes
Procesamiento de imágenes

Bueno, lo segundo que surgió cuando estaba descubriendo cómo identificar masas fue que para muchas mamografías anormales no podía decir visualmente dónde estaba la anormalidad o qué tan grande era. Obviamente, como no soy un radiólogo experimentado, era de esperar. Sin embargo, la forma más sencilla de encontrar anomalías (según mis largas búsquedas en Google) era observar concentraciones de áreas brillantes y oscuras. Usé principalmente la función adapthisteq para mejorar el contraste de la imagen y luego imbinarizar para convertir la imagen en una imagen binaria para experimentar con diferentes niveles de umbral.

  1. adapthisteq: esta función transforma los valores de intensidad de las imágenes en escala de grises y rgb utilizando la ecualización de histograma adaptativo limitado por contraste. En otras palabras, ajusta el histograma de valores de intensidad a un tipo específico de distribución. El enlace de Mathworks para esta función se adjunta a continuación para leer más.
  2. imbinarize: crea una imagen binaria a partir de una imagen en escala de grises asignando todos los píxeles por encima de una determinada intensidad a 1 y los píxeles por debajo de ese valor un 0. Usé esta función para probar el umbral óptimo para reducir el ruido del tejido de fondo.

Paso 3: Código de umbral

Código de umbral
Código de umbral

Se utiliza un bucle for para binarizar la mamografía con distintos umbrales. Para ofrecer una imagen más amplia, el bucle for contiene el código del Paso 3 al Paso 7. Por lo tanto, cada imagen binaria se analizará en busca de anomalías. Además, este bucle for está incluido en otro bucle for que importa una nueva imagen de mamografía de la base de datos en cada iteración.

Paso 4: encontrar anomalías para cada imagen binaria

Encontrar anomalías para cada imagen binaria
Encontrar anomalías para cada imagen binaria
Encontrar anomalías para cada imagen binaria
Encontrar anomalías para cada imagen binaria

Procesé aún más las imágenes binarias usando la función strel junto con imopen para eliminar el ruido de fondo. La imagen binaria del paso anterior se invierte y se filtra utilizando la vecindad definida por SE. Luego usé bwlabel para etiquetar cualquier área que tuviera al menos 8 píxeles conectados.

La función de apoyos de la región se utilizó para encontrar el centroide y las propiedades del área de cada punto identificado por bwlabel.

Luego, todos los puntos de más de 500 píxeles se identificaron usando ismember. Los centroides para los puntos identificados se trazaron en una imagen que solo mostraba los puntos con un área mayor a 500. Área identificada = ismember (Etiquetado, indicies (sortedAreas> 500)); Manchas = Identificado> 0;

Paso 5: Trazar la ubicación masiva y el tamaño diagnosticados para la comparación visual

Trazado de la ubicación masiva y el tamaño diagnosticados para la comparación visual
Trazado de la ubicación masiva y el tamaño diagnosticados para la comparación visual
Trazado de la ubicación masiva y el tamaño diagnosticados para la comparación visual
Trazado de la ubicación masiva y el tamaño diagnosticados para la comparación visual
Trazado de la ubicación masiva y el tamaño diagnosticados para la comparación visual
Trazado de la ubicación masiva y el tamaño diagnosticados para la comparación visual

Quería ver si las manchas encontradas por bwlabel eran correctas. Hice esto de dos formas. Primero analicé la precisión de mi clasificador haciendo una comparación visual. Simplemente tracé el tamaño real y la ubicación de la anomalía (círculo rojo) y la ubicación determinada por el código (x azul) en la imagen de la mamografía preprocesada. Las seis imágenes de arriba muestran los efectos de aumentar el valor de umbral de la escala de grises.

Paso 6: Implementación del segundo método de comparación

Implementación del segundo método de comparación
Implementación del segundo método de comparación

La segunda forma en que probé el clasificador y los valores de umbral fue determinando si las ubicaciones encontradas por el clasificador estaban dentro de una cierta distancia de las coordenadas de la anomalía diagnosticada. Guardé los umbrales para los cuales al menos uno de los puntos identificados estaba dentro de 1,5 * r de la anomalía conocida en un archivo de texto separado llamado Mammogram Data. El propósito de esto era encontrar el umbral mínimo necesario para que mi clasificador identificara la anomalía.

Paso 7: análisis de los datos recopilados

Analizar los datos recopilados
Analizar los datos recopilados
Analizar los datos recopilados
Analizar los datos recopilados

Ejecuté el programa en todas las imágenes de mamografías anormales y me quedé con un archivo de texto enorme de datos. Para encontrar el mejor umbral para cada tipo de tejido, organicé los datos por tipo de tejido y tracé un histograma de los valores de umbral para cada tipo de tejido. Se decidió el valor de umbral adecuado sobre qué umbral proporcionaba los resultados más precisos para cada tipo de tejido. Guardé estos datos para subirlos a mi clasificador.

Paso 8: ¡Haga su propio clasificador

¡Haciendo su propio clasificador!
¡Haciendo su propio clasificador!
¡Haciendo su propio clasificador!
¡Haciendo su propio clasificador!
¡Haciendo su propio clasificador!
¡Haciendo su propio clasificador!
¡Haciendo su propio clasificador!
¡Haciendo su propio clasificador!

Después de encontrar los valores de umbral más apropiados para cada tipo de tejido, edité mi código original para que un usuario ingresara el número de imagen y el tipo de tejido para elegir el umbral para la imagen de la mamografía. Luego tracé la ubicación de la mamografía diagnosticada con las ubicaciones encontradas en las imágenes de la mamografía original. Quería hacer esto más divertido, así que programé una función para recortar una región circular que rodea el ROI. Se le indicará al usuario que elija un punto central y varios puntos que abarquen mejor el ROI. Adjunté ambos archivos de matlab aquí.

Paso 9: ¿Mejoras? ¿Alguna idea?

Mientras escribía este instructivo, comencé a ver muchas mejoras que podría hacer al clasificador, como encontrar formas de distinguir entre los diferentes tipos de masas identificadas en función del análisis de textura o mejorar mi sección de pruebas de precisión del SandBoxProject. expediente. Como se trataba de un proyecto con una fecha límite, tuve que detenerme en algún lugar, pero espero poder utilizar las habilidades de procesamiento de imágenes que aprendí en otras aplicaciones. Además, adjunté el archivo que se utilizó para procesar por lotes todas las imágenes de mamografías anormales.

Recomendado: