Estou tentando criar um programa que pode contar o número de núcleos em uma imagem:
O que eu já fiz é o seguinte, passo a passo:
- Aplique um filtro sequencial alternado (fechando e abrindo a imagem com elementos estruturantes gradualmente maiores)
- Aplicar uma transformação de distância
- Aplique a segmentação de bacias hidrográficas usando a imagem transformada à distância para detectar mínimos
Que produz o seguinte resultado (em que cada cor representa um novo núcleo contado):
Como podemos ver, existem muitas imperfeições, especificamente, núcleos supercontados. Eu diria que a razão para esse problema é a maneira como impus mínimos para a Watershed Transform (usando a transformação de distância), mas realmente não tenho outras idéias para impor mínimos nesse caso.
Como a transformação de distância gera mínimos com base na redondeza dos objetos, eu gostaria de saber uma alternativa melhor para arredondar os núcleos do que o filtro sequencial alternado (olhando a imagem acima, podemos inferir que a maioria das "sobrecontas" veio de núcleos menos arredondados). Eu também gostaria de conhecer maneiras melhores de impor mínimos para a Watershed Transform.
fonte
Respostas:
Existem inúmeros artigos sobre como lidar com o problema de super-segmentação de bacias hidrográficas, mas acho que você deve ler Métodos de segmentação de imagens de células robustas (artigo científico de 2004 por Bengtsson et al).
Ele abrange vários métodos para segmentar imagens de células e inclui exemplos do mundo real que mostram como lidar com a segmentação excessiva de bacias hidrográficas em imagens de microscopia de fluorescência semelhantes às suas (também possui exemplos de imagens de campo claro e imagens de microscopia confocal). Ele usa sementes da transformação à distância, semelhante à sua abordagem, e mescla regiões com bordas fracas. O artigo lê bem e os conceitos são bastante simples de implementar no Matlab.
Para uma abordagem ainda mais atual, você pode ler Um Esquema de Decomposição para Objetos Difusos 3D com base em informações de distância difusa de Svensson. Ele usa um método semelhante ao de Bengtsson et al., Mas trabalha na transformação de distância nebulosa que fornece uma melhor representação de densidade para os objetos usados no artigo.
fonte
Você pode tentar "máxima transformação estendida", que é um método de reconstrução morfológica. Ele detecta o máximo de pontos com um critério de contraste que você pode inverter e impor. É implementado no Matlab.
fonte