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
resultado 1
original 2
resultado 2
original 3
resultado 3
fonte
Respostas:
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)
fonte
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.
fonte
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
I2
paraI1
, 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.
fonte