Link del proyecto en mi repositorio: https://github.com/cristhianguardado/proyecto-de-vison-
Propósito:
El objetivo del siguiente trabajo es detectar círculos en una imagen de pruebas clínicas, donde se pone una muestra en un reactivo. El objetivo de reconocer los círculos en la imagen (coordenadas del centro y radio) puede ser contado, etiquetarlos o hacer un promediado de color dentro de estos.
Alcance:
Todo el procesamiento y la detección de los círculos en este trabajo esta pensado para las imágenes que se nos suministraron.
Estas imágenes siguen un patrón que comienza con una muestra en un fondo claro y luego viene una franja oscura donde no hay círculos.
Justificación:
La justificación del proyecto por sus aplicaciones en la vida real.
La aplicación más importante es o pude tener en un laboratorio clínico dando mejores resultados en el momento de un análisis clínico de frotis de sangre, ayudando al químico en este caso la persona que analiza la muestra de manera convencional la cual es observando desde un microscopio pudiendo tener un error al momento de no observar bien alguna área de la muestra o haciendo mal el conteo de dichas células en este caso los glóbulos rojos.
Esto no descarta que sea bueno que el químico que analiza la muestra no haga su trabajo checando la muestra el programa fue echo para hacer más seguro el resultado obtenido y tener una mayor confiabilidad tanto para los pacientes como para las personas que analizan estas muestras de manera manual y visual mediante el uso de un microscopio.
EL vídeo explica un poco las células que se pueden encontrar en una muestra de sangre las cuales son analizadas por una persona.
Descripción textual:
Lo que el programa realiza básicamente es que al recibir una imagen de un amuestra de sangre o alguna muestra clínica, donde al analizar la imagen dada el programa realiza una serie de procesos a la imagen antes de poder detectar las células que se encuentran en una muestra clínica.
Al realizar todos los procesos se debe calcular un valor “umbral” para cada imagen individualmente para que funcione de mejor manera y se puedan detectar las figuras con mayor certeza y facilidad, al determinar el valor umbral de cada imagen se obtienen mejores resultados al aplicar las etapas de erosión y dilatación ayudando a que la imagen resultante no presente ruido.
Al tener identificado el umbral las demás etapas de la detección de células en la imagen que se procesara pasaran por más etapas de modificación las cuales darán una imagen resultante por cada etapa del procesamiento por la que pasa la imagen.
Al finalizar el procesamiento se presenta un resultado de cuantas células se detectaron en la imagen.
Morfología Matemática:
La palabra morfología significa forma y estructura de un objeto. Para imágenes binarias se definen operaciones morfológicas. Y con estas se constituye una herramienta de extracción de componentes de imagen útiles en la representación y descripción de la forma de las regiones.
Las operaciones básicas de la morfología matemática son: dilatación se puede simplificar a decir que es agregar píxeles a un objeto, hacerlo más grande, y luego erosión es hacerlo mas chico.
Luego la combinación de estas da origen a los operadores de Apertura y Clausura. El primero consiste en aplicar una erosión seguida de una dilatación aplicando la misma forma estructurada, como resultado esta tiende a “abrir pequeños huecos”. La clausura es el la aplicación de las operaciones básicas en el sentido inverso, y resulta en “cerrar los huecos”.
Estas operaciones morfológicas son de gran importancia para lograr obtener un resultado en el análisis de dichas imágenes.
Dilatación:
Las operaciones morfológicas en el valor de cada píxel en la imagen de salida depende del valor de ese píxel en la imagen de entrada y su relación con la vecindad. El elemento estructural define el tamaño y la forma de la vecindad en la que se aplicara la operación morfológica.
Dilatación:
En la dilatación se adiciona píxeles al contorno de objetos presentes en la imagen mientras que los píxeles de salida el máximo de estos presentes en la vecindad está definida por el elemento estructural.
Erosión:
En las imágenes binarias la erosión elimina los píxeles del contorno de objetos presentes en la imagen y el píxel de salida debe ser el mínimo de los píxeles presentes en la vecindad definida por el elemento estructural
Diseño:
- Carga imagen
- Escala de grises
- Filtro
- Convolución
- Normalización
- Binarizacion
- Erosión
- Dilatación
- Detección de círculos
Librerías, lenguajes etc.:
Lenguaje de programación:
- Python
- Pil
- Numpy
Evaluación y desempeño:
Lo primero fue conseguir las imágenes de frotis sanguíneo, las cuales fueron encontradas en diferentes sitios web relacionados con imágenes histologícas, estudios clínicos y materias relacionadas con el área medica, algunas referencias son:
http://lahistoteca.blogspot.mx/2008_10_01_archive.html
http://miriamencalada.wordpress.com/2010/02/11/frotis-sanguineo/
En esos link´s se habla sobre las histologia de las células pero para este caso solo fue de interés las imágenes que se encontraban ahí, y alguna que otra referencia sobre la morfología de las células, lo cual me ayudo un poco a entender la forma que tienen. es importante que las imágenes que utilizaremos para realizar las pruebas no contengan figuras muy pequeñas si no que hayan sido tomadas con un buen aumento.
Como para cada imagen es necesario calcular un valor umbral único ya que si no se mostrarían resultados distintos o poco seguros usando un umbral estándar para todas.
Calcule el umbral para cada imagen y son los siguientes:
http://www.elrincondelamedicinainterna.com/2012/10/frotis-de-sangre-periferica-extendido.html |
http://tmumayor.com/moodle/course/info.php?id=15 |
http://mondomedico.es/2012/07/01/el-oraculo-del-microscopio/ |
Y algunos lugares de interés donde podríamos encontrar imágenes interesantes.
http://lahistoteca.blogspot.mx/2008_10_01_archive.html
http://miriamencalada.wordpress.com/2010/02/11/frotis-sanguineo/
En esos link´s se habla sobre las histologia de las células pero para este caso solo fue de interés las imágenes que se encontraban ahí, y alguna que otra referencia sobre la morfología de las células, lo cual me ayudo un poco a entender la forma que tienen. es importante que las imágenes que utilizaremos para realizar las pruebas no contengan figuras muy pequeñas si no que hayan sido tomadas con un buen aumento.
Como para cada imagen es necesario calcular un valor umbral único ya que si no se mostrarían resultados distintos o poco seguros usando un umbral estándar para todas.
Calcule el umbral para cada imagen y son los siguientes:
Umbral calculado de 100 |
Umbral calculado de 170 |
Umbral calculado de 255 |
Umbral calculado de 95 |
Al calcular esto para cada imagen el ruido se disminuye de manera considerable en las imágenes al aplicarle la binarizacion y se obtienen mejores resultados en la dilatación obteniendo las figuras totalmente cerradas.
Estas son algunas pruebas:
Imagen original |
filtro |
binarizada |
mascara |
resultado final |
Otro ejemplo:
imagen original |
escala de grises |
filtro |
erosión |
dilatación |
resultado final |
En cuanto al desempeño el programa suele ser un poco tardado en identificar todas las formas en imágenes que cuentan con demasiadas formas en ella haciendo lento el procedimiento de relleno de las formas en total.
Trabajo futuro:
Implementar directamente en el microscopio para que el sistema analice directamente los análisis clínicos e incorporar un módulo que se encargue de formatear la información obtenida por el sistema y que sea guardado en un documento pdf.
Bibliografias:
1.- Omar Sanchez (2008).Disponible en: http://www.slideshare.net/omarspp/imagen-morfologicas
(Fecha de consulta 13 de mayo de 2013)
2.- Rafael Proveda, "Filtros y operaciones en imágenes", (2011)
Disponible en: http://www.raerpo.com/2011/01/13-ejercicios-capitulo-5.html
(Fecha de consulta 13 de mayo de 2013)
Falta dar formato a la bibliografía en el reporte. Los nombres de archivos en el repositorio no son exactamente user-friendly.
ResponderEliminarFaltó especificar en el reporte de dónde sacaste las imágenes.
Ya encontré de dónde sacas esa terminología spanglish (http://www.slideshare.net/balfier/operaciones-morfologicas)
Me marca error de permisos para ver tus diapositivas en el blog.
8 pts por la presentación.
Hay detalles de ortografía en el reporte y la evaluación de desempeño no llega a discutir la complejidad computacional. Van 8 pts por el reporte.
ResponderEliminarEn el repositorio se pudieran haber mejorado los nombres de los archivos. En el readme irían los datos del autor, típicamente. El código no está comentado. 7 pts.