Segmentando pílulas do plano de fundo

9

Recentemente, comecei com o processamento de imagens e fiz um curso relacionado a ele na pós-graduação. Mas eu já tenho um projeto para ficar sem muita informação sobre o assunto, mas fiz alguns progressos constantes. Estou tentando segmentar as pílulas de seus respectivos contextos. Para imagens com fundos contrastantes, consegui segmentar as pílulas usando o método de Otsu. Com relação a imagens com fundos semelhantes, o método de Otsu não funciona completamente. Eu tenho lido muitos artigos com relação à segmentação, mas a maioria dos artigos que li usa um valor de limiar manual, dependendo do tipo de imagem. É possível detectar o valor correto de limiar e limiar automaticamente uma imagem e usar técnicas como cultivo de sementes ou agrupamento para segmentar a imagem?

O espaço de cores que eu estou usando é L a b *, então eu apreciaria se você pudesse recomendar o espaço de cores apropriado que eu deveria usar também.

As imagens em questão:

original 1

insira a descrição da imagem aqui

resultado 1

insira a descrição da imagem aqui

original 2

insira a descrição da imagem aqui

resultado 2

insira a descrição da imagem aqui

original 3

insira a descrição da imagem aqui

resultado 3

insira a descrição da imagem aqui

GamingX
fonte
7
Você poderia enviar uma imagem, por favor? E quanto ao limiar adaptativo?
Quentin Geissmann
3
E os métodos de definição de nível e contornos ativos? Você pode segmentar as pílulas do plano de fundo, não apenas pelo valor da intensidade (limite), mas com base na textura do objeto. O espaço de cores usado é apenas um sistema de coordenadas para as cores - use o que melhor distingue as cores da imagem para fins de segmentação. Por exemplo, se as imagens estiverem em tons de roxo, você poderá usar a conversão em escala de cinza com mais peso no componente vermelho e azul.
Libor
Quentin: Não tenho reputação suficiente para carregar as fotos.
GamingX 5/09/12
@Syed Carregue-os em algum lugar público e adicione os links à pergunta, se desejar.
Maurits

Respostas:

2

Se você deseja usar a abordagem de limiar, deve usar um método de limiar adaptável se houver grandes variações de iluminação, como na terceira imagem de exemplo ( questão dsp aqui ).

Além disso, você deve experimentar espaços de cores, é fácil: o script para decompor a imagem em diferentes espaços de cores não deve ter mais do que algumas linhas e muitos visualizadores de imagens têm essa opção disponível. O melhor deve ser fácil de determinar apenas visualmente. Se você quiser ler sobre os espaços de cores, há outra pergunta boa sobre dsp aqui .

Finalmente, você pode tentar uma abordagem diferente. Uma idéia seria fazer uma segmentação não perfeita, depois uma detecção de arestas e, finalmente, usar algo como a transformação de Hough para círculos, que também funciona bem em arcos de círculo (incompletos). (é claro que essa ideia é aplicável apenas a comprimidos redondos)

Penélope
fonte
Qual seria uma boa ideia para uma segmentação não perfeita?
GamingX 15/09/12
@Syed Parece que o OpenCV Canny (detecção de borda) e até o Hough trabalham em imagens cinzas (sem necessidade de limiar), para que você possa pular a etapa do limiar completamente. A segmentação - limiar depende muito das imagens. Mas, uma resposta direta seria: desculpe, não sei. Penso que um método não adaptativo seria suficiente, mas não pude sugerir um método específico, pois não fazia isso por um tempo. Basta fazer uma pequena pesquisa sobre simples métodos de segmentação;)
penelope
2

As transformações em círculo da biblioteca OpenCV são adequadas para este aplicativo. Você terá que executar vários raios, mas a melhor resposta de hough lhe dará os limites e os centros das pílulas. Observe que você teria que usar transformações generalizadas de hough para encontrar pílulas não circulares. Funcionará mesmo se os comprimidos tiverem obstruído ou faltando pontos de extremidade.

O limiar pode ser uma solução ruim para isso, porque no campo você pode cair em situações em que nenhum limiar separa a pílula do plano de fundo, e é por isso que um algoritmo que depende de posições relativas de grupos de arestas é superior.

entenda
fonte
1

Para resolver esse problema, é necessário separar o plano de fundo e o primeiro plano. Esta é a solução, proponho-lhe:

1) converta a imagem de Rgb em escala de cinza; Você obterá uma imagem que chamamos I1;

2) aplique um filtro morfológico, erosão usando um raio grande, eventualmente várias vezes ==> você deve apagar a pílula por erosão e obter apenas o fundo; Você obterá uma nova imagem I2;

3) subtraia I2para I1, você obterá o primeiro plano, ou seja, a pílula;

4) aplique outro filtro morfológico para preencher qualquer buraco na pílula que você obteve;

5) aplique um filtro morfológico, erosão, pequeno raio para remover qualquer pixel isolado.

Este método não requer nenhum limite, detecção de forma, segmentação de cores ou qualquer outra coisa.

samir
fonte