Recientemente comencé con el procesamiento de imágenes y tomé un curso relacionado en la escuela de posgrado. Pero ya tengo un proyecto que hacer sin demasiada información sobre el tema, sin embargo, he logrado un progreso constante. Estoy tratando de segmentar las píldoras de sus respectivos antecedentes. Para imágenes con fondos contrastantes, he podido segmentar las píldoras usando el método de Otsu. Con respecto a las imágenes con fondos similares, el método de Otsu no funciona del todo. He estado leyendo bastantes documentos con respecto a la segmentación, pero la mayoría de los documentos que he leído usan un valor de umbral manual dependiendo del tipo de imagen. ¿Es posible detectar el valor de umbral correcto y umbral automático de una imagen y utilizar técnicas como el cultivo de semillas o la agrupación para segmentar la imagen?
El espacio de color que he estado usando es L a b *, por lo que agradecería que me recomendaras el espacio de color apropiado que también debería usar.
Las imágenes en cuestión:
original 1
resultado 1
original 2
resultado 2
original 3
resultado 3
fuente
Respuestas:
Si desea utilizar el enfoque de umbral, debe utilizar un método de umbral adaptativo si hay grandes variaciones de iluminación como en la tercera imagen de ejemplo ( pregunta dsp aquí ).
Además, debe experimentar con espacios de colores, es fácil: el script para descomponer la imagen en diferentes espacios de colores no debe tener más de unas pocas líneas de largo, y muchos visores de imágenes tienen esa opción disponible. El mejor debería ser fácil de determinar solo visualmente. Si desea leer sobre espacios de colores, aquí no hay otra buena pregunta de dsp .
Finalmente, es posible que desee probar un enfoque diferente. Una idea sería hacer una segmentación no perfecta, luego una detección de bordes y finalmente usar algo como la transformación de Hough para círculos que también funciona bien en arcos de círculo (incompletos). (esta idea, por supuesto, solo es aplicable a las píldoras redondas)
fuente
Las transformaciones de círculo de la biblioteca OpenCV son adecuadas para esta aplicación. Tendrá que ejecutar varios radios, pero la mejor respuesta rápida le dará los límites y centros de las píldoras. Tenga en cuenta que tendría que usar transformaciones de tos generalizadas para encontrar píldoras no circulares. Funcionará incluso si las píldoras tienen puntos de borde ocluidos o faltantes.
El umbral puede ser una mala solución para esto porque en el campo puede caer en situaciones en las que ningún umbral separará la píldora del fondo, por lo que un algoritmo que depende de las posiciones relativas de los grupos de bordes es superior.
fuente
Para resolver este problema, debe separar el fondo y el primer plano. Esta es la solución, te propongo:
1) convertir la imagen de Rgb a escala de grises; Obtendrá una imagen que llamamos
I1
;2) aplique un filtro morfológico, erosión usando un radio grande, eventualmente varias veces ==> debe borrar la píldora por erosión y obtener solo el fondo; Obtendrá una nueva imagen
I2
;3) restar
I2
aI1
, obtendrá el primer plano, es decir, la píldora;4) aplique otro filtro morfológico para llenar cualquier agujero en la píldora que obtuvo;
5) aplique un filtro morfológico, erosión, radio pequeño para eliminar cualquier píxel aislado.
Este método no requiere ningún umbral, detección de forma, segmentación de color o cualquier otra cosa.
fuente