EP08_10 — 🔴 Contraste Bajo y Separación de Objetos Tópicos ( Watershed / Distancia)
8.14.10 EP08_10 🔴 Contraste Bajo y Separación de Objetos Tópicos (Watershed / Distancia)
En este ejercicio, algunos objetos geométricos están ligeramente en contacto (superpuestos en los bordes). La simple extracción de contornos trataría dos objetos como uno solo.
8.14.10.1 📋 Directrices de Implementación
Entrada: matriz \(H \times W\) en niveles de gris con objetos de intensidad \(110\dots140\) sobre fondo \(0\), con ruido y pares de objetos tangentes.
Preprocesamiento y Separación:
Aplicación de la umbralización.
Aplicación de la Transformada de Distancia (mm.dist).
Obtención de los picos de distancia para que sirvan como marcadores en la Transformada Watershed (mm.watershed), separando físicamente los objetos en contacto en la máscara. Consejo: usar mm.regmax() para obtener los máximos locales y luego etiquetar con mm.label0.
Después del watershed, aplicar nuevamente la umbralización con mm.threshold(water,0)//255.
Análisis de Componentes Conectados: medir cada región aislada después del Watershed.
Salida: imprimir los componentes ordenados por (bbox[0], bbox[1]) con sus métricas individuales de área, centroide y solidez.
Para ordenar, usar medidas.sort(key=lambda m: (m['bbox'][1], m['bbox'][0])), con medidas = mm.measure(img, precision=0.02).