Processamento de imagens na prática

Tutorial: Diâmetro de esferas, com ImageJ

Este é mais um tutorial que fiz em resposta a comentários de leitores. É possível medir o diâmetro de círculos e esferas, mesmo que elas tenham alguma sobreposição na imagem.

Desta vez vou partir de uma imagem sintética – um desenho que fiz no Gimp – que simula esferas captadas com microscópio em boas condições de iluminação.

Se precisar de uma introdução ao ImageJ leia Como usar o ImageJ, neste blog.

Segmentação

Antes de pensar em medir, é preciso segmentar. Para isso vamos usar uma combinação de threshold e watershed, como no artigo Watershed em imagens binárias.

Segmentação da imagem: para saber como fazer, siga o link acima para o post sobre segmentação com watersheds.

Segmentação da imagem: para saber como fazer, siga o link acima para o post sobre segmentação com watersheds.

Repare que em houve um caso em que o watershed não foi capaz de de separar duas esferas. Este método tem seus limites, sim. Para círculos ele geralmente não segmenta a partir de 50% de sobreposição. Solução? Bom, se puder, descarte estes casos. Se não puder talvez tenha que tratá-los à mão.

Medição

Dois passos são necessários antes de medir algo com o ImageJ: informar a escala e escolher o que você vai medir. Se você sabe a escala, simplesmente vá em Analyse –> Set Scale, e digite a sua escala. Se não sabe, veja neste post, como determinar a sua escala. Como meu exemplo é uma imagem sintética, vou manter a escala vazia e medir em número de pixels.

Agora informe ao programa o que vai medir: Analyse –> Set Measurements. Para medir diâmetro, selecione apenas Ferret’s Diameter.

Tudo pronto, vá em Analyse –> Analyse particles. Descrevi este diálogo em detalhes no tutorial Como contar objetos – Parte II. Para o exemplo de hoje é importante marcar a opção Display Results. Eu selecinei também o Show Outlines, para poder relacionar os resultados com as partículas da imagem.

Resultado:

Outlines das minhas esferas.

Outlines das minhas esferas.

Tabela de resultados

Tabela de resultados

Na tabela de resultados apareceram três colunas (além do número correspondente ao outline e o nome da imagem):
Ferret: Distância máxima entre dois pontos pertencentes à partícula. Ou seja: para elipses, o diâmetro maior; para círculos o diâmetro.
FerretAngle: O ângulo da linha do ferret (de 0 a 180 graus).
NinFerret: O diâmetro mínimo.

Dicas

A macro Ferret’s Diameter desenha o diâmetro de ferret sobre a sua imagem.

Se precisar fazer isso com várias imagens, corte-as no mesmo tamanho e use processamento em lote.

Este tutorial foi escrito a partir de uma pergunta que um leitor deixou nos comentário. Você pode perguntar também: use este espaço, comente!

3 Comentários para Tutorial: Diâmetro de esferas, com ImageJ

  1. loganfisio's Gravatar loganfisio - 9 de junho de 2009 at 9:07 | Permalink

    Gabriela Bauermann estou com uma dúvida estou querendo mensurar o diametro, area e perimetro de trabéculas ósseas ou seja me interessa a parte ossea descartando a parte interna como faço pro IMageJ ão selecionar a parte interna.

  2. loganfisio's Gravatar loganfisio - 9 de junho de 2009 at 11:31 | Permalink

    Acabei de enviar o exemplo mais acho que vou te enviar a imagem real do que estou tentando te explicar num novo mail.
    Mandei minhas outras dúvidas no mail .
    obrigado.

Trackbacks/Pingbacks

           
  1. [...] primeiro passo, o com acontece quase sempre, é a segmentação.  A combinação de threshold com watershed funcionou bem para esta imagem, mas chega ao final com uma imagem binária, o que não é [...]

  2.        

Comente

Você pode usar estas tags e atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>