Processamento de imagens na prática

Tutorial ImageJ – Processamento em lote.

Processar imagens em lote é útil quanto se quer obter resultados de um grupo de imagens semelhantes e já sabe qual o melhor método para conseguir isso. Assim, não é preciso se deter em cada imagem, executar o processo e ver se obteve o que desejava. Você escolhe as imagens e executa as operações de um só vez, com menos tempo e menos clicks.

Este não é um recurso muito comum em programas de edição de imagens, mas os bons programas de processamento e análise de imagens não abrem mão dele, mesmo que alguns deles o façam de forma limitada.

No ImageJ, a forma nativa de se fazer processamento em lote é usando uma Stack (pilha) para reunir as suas imagens – este é o assunto deste tutorial. Isto limita o seu lote a imagens do mesmo tipo e tamanho, em número de pixels.

Alguns plugins eliminam esta necessidade para tarefas específicas. O plugin Multiple Image Processor possibilita a execução de qualquer tarefa (desde que você escreva uma macro primeiro). Por falar nisso, macros são um bom assunto para um próximo tutorial…

Que tal assinar o nosso RSS feed para não perder?

As imagens e objetivo

Vou começar apresentando o meu conjunto de imagens original. São imagens minhas, fotografias de um punhado de sementes espalhado sobre uma folha de papel. Para deixá-las do mesmo tamanho, fui ao Gimp e usei uma máscara de tamanho fixo para cortar as quatro “amostras”.

Quatro amostras de sementes, por mim mesma.

Quatro amostras de sementes, por mim mesma.

A tarefa proposta é contar as sementes, com o método que já foi descrito num tutorial anterior.

Formando o lote

O lote de imagens será transformado numa stack. Para isso, abra todas elas e vá em Image -> Stack -> Images to Stack. Você verá uma única janela com uma imagem e uma barra de rolagem abaixo. Use as setas ou as teclas < e > para navegar entre elas.

Processando o Stack

O primeiro passo é transformar as imagens para níveis de cinza, para poder aplicar o threshold. O procedimento é o mesmo que se usa para uma imagem: Image -> Type -> 8-bit. Todas as imagens do stack estão agora em tons de cinza.

Agora é preciso segmentar. O threshold funciona perfeitamente aqui porque há um fundo mais claro e objetos mais escuros fazendo um histograma com dos picos bem distintos. Também será possível aplicar o mesmo nível de threshold em todas as imagens do lote, porque elas foram adquiridas com as mesmas condições de iluminação. Se fosse diferente, eu teria segmentar as imagens em separado.

Depois de escolher o nível de threshold com base em uma de suas imagens, aplique. O programa vai perguntar em uma caixa de diálogo, se você deseja calcular o threshold para todo o stack. Aceite, e está pronto.

Resultado da segmentação por threshold.

Resultado da segmentação por threshold.

Agora a contagem. Usando a ferramenta Analyse particles, com tamanho de partículas não menores que 20 pixels, obtive o resultado que está abaixo. Quando você clicar na opção de menu correspondente com a stack em foco, a contagem é feita em todas as imagens do stack, e os resultados para cada uma são apresentados no sumário:

Screenshot dos resultados.

Screenshot dos resultados.

Processamento em lote é uma ferramenta poderosa para economizar tempo e paciência. Além disso, entrega ao computador uma das tarefas que ele faz melhor: repetir. Eu uso muito isso para pesquisa – muitas vezes é preciso examinar resultados de um número grande de amostras para ver se a técnica é mesmo eficiente. Usar a ferramenta certa nos faz mais produtivos e favorece a qualidade de vida, já que nos libera de horas de tarefas cansativas e desestimulantes.

Alguma dúvida? Tem alguma coisa que eu deixei de falar? Deixe uma pergunta ou sugestão nos comentários, eles são para isso mesmo.

4 Comentários para Tutorial ImageJ – Processamento em lote.

  1. José Eduardo Martinelli Filho's Gravatar José Eduardo Martinelli Filho - 20 de novembro de 2009 at 11:15 | Permalink

    Olá! Estou usando o Image J para processar amostras do meu doutorado.
    Gostaria de saber se esse procedimento de trabalhar com diversas imagens ao mesmo tempo poderia me fornecer resultados de cada semente, uma linha para cada semente na planilha gerada pelo Image J.
    Outra ferramenta que seria muito útil para mim seria utilizar algum plugin que reconhecesse e diferenciasse 2 tipos de sementes por exemplo. Eu poderia ciclar nas sementes de laranja e marcar-las com um “label” ou tag e fazer o mesmo com sementes de melancia por exemplo. Dessa maneira, se o programa reconhecesse essas 2 populações diferentes e fornecesse os resultados na planilha eu economizaria um tempo precioso!
    Você conhece alguma maneira de fazer essa distinção entre 2 populações diferentes em uma imagem<<<

    Muito obrigado e parabéns pelo site!

  2. Priscila's Gravatar Priscila - 7 de maio de 2010 at 17:07 | Permalink

    Olá,

    Vi uma pesquisadora utilizando o ImageJ e ela selecionava uma ROI (add to manager), e não sei como os resultados desta mesma da ROI em outras imagens apareciam.
    Me parece que ela utilizava empilhamento, mas estou testando e não estou conseguindo.
    Você poderia me ajudar?

Trackbacks/Pingbacks

           
  1. [...] tutorial sobre processamento em lote, terminei a segmentação por threshold com um resultado que não era perfeitamente real. Explico: [...]

  2. [...] Processamento em lote [...]

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

  4.        

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>