Processamento de imagem - Núcleos de contagem


10

Estou tentando criar um programa que pode contar o número de núcleos em uma imagem:

insira a descrição da imagem aqui

O que eu já fiz é o seguinte, passo a passo:

  1. Aplique um filtro sequencial alternado (fechando e abrindo a imagem com elementos estruturantes gradualmente maiores)
  2. Aplicar uma transformação de distância
  3. 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):

insira a descrição da imagem aqui

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.


3
Às vezes, recebo esse tipo de perguntas no trabalho e ... não faço isso. Geralmente peço ao usuário que volte ao microscópio e adquira imagens decentes. Não sei se poderia contá-los com precisão à mão. Esta é uma opção no seu caso (refazendo a parte da imagem, quero dizer)?
19413 Jean-Yves

Idéia maluca, que pode funcionar dependendo de quantas imagens você precisa analisar e com que frequência, mas sabendo que os humanos são melhores nesse tipo de coisa: tente usar o Mechanical Turk da Amazon.
precisa saber é o seguinte

Você pode fornecer uma verdade básica para sua imagem? (delineado manualmente por você) Olhei para a imagem e, francamente, não posso dizer quais são núcleos ou quais são artefatos. Existem alguns núcleos compostos apenas por vários pixels? Os núcleos supõem ser redondos / elipse? E, finalmente, como @ Jean-Yves apontou, você pode ter uma imagem melhor? Todos nós podemos ajustar o contraste e a luminosidade, mas não podemos voltar a pintar a amostra.
visoft 29/10/2013

Respostas:


1

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.


0

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.