Processamento de imagens na prática

Tutorial ImageJ: Macros

Já em duas ocasiões prometi um tutorial sobre como fazer Macros no ImageJ. Aí está! Uma Macro é uma forma de automatizar uma sequência de operações, para repeti-la quantas vezes quiser.

Imagem original: sementes.

Imagem original: sementes.

Imagine que você tem uma série de imagens adquiridas na mesma forma (por exemplo, amostras do mesmo material adquiridas em um microscópio com as mesmas condições de iluminação). Neste caso, será necessário repetir para todas as imagens o mesmo conjunto de operações, na mesma ordem, para obter o resultado desejado.

Assumindo que no seu roteiro não haja operações manuais, como seleções ou medições de distância, você pode automatizar o seu protocolo, e executar em todas as imagens ao mesmo tempo, ou em uma de cada vez, usando teclas de atalho.

Há duas maneiras de fazer uma macro: gravando ou editando. Vamos começar gravando uma macro que segmenta uma imagem do meu photostream, como exemplo.

Gravando…

O gravador de macros fica no menu Plugins –> Macros –> Record… Quando a janela abrir, a gravação começa, por isso tenha a(s) imagem(ns) com que você vai trabalhar já aberta(s) na área de trabalho, a não ser que você queira incluir a operação de abrir a imagem na sua macro.

Janela do gravador de macro, após a gravação do exemplo.

Janela do gravador de macro, após a gravação do exemplo.

Crie um nome para a sua macro (é importante que o nome tenha pelo menos um caractere de underline ‘_’).

Execute todos os passos que sua macro vai fazer, em ordem. Quando terminar clique em Create: a sua macro vai abrir na janela de edição de macros, onde você pode editá-la (se quiser) ou salvar.

Repare que os comandos têm o mesmo nome das funções que você acessou pelo menu, e incluem os parâmetros que você usou na gravação. Assim fica simples de editar para fazer pequenas modificações.

Passo a passo das operações que gravai na macro.

Passo a passo das operações que gravai na macro.

No meu exemplo eu dupliquei a imagem:
run("Duplicate...", "title=sementes01-1.tif");
para poder utilizar a modificada e a original em uma operação de adição:
imageCalculator("Add create", "sementes01.tif","sementes01-1.tif");
Foi assim que obtive a sexta imagem: as bordas sobre as sementes originais.

Isso tem um preço: fiquei com nomes de arquivos dentro da macro, o que pode restringir o uso futuro. Se a macro for usada em um conjunto pequeno de imagens e logo descartada, posso renomear cada imagem após abri-la, ou editar a macro com o nome de uma nova imagem cada vez que usá-la. Mas esta solução fácil fica improdutiva se eu estiver desenvolvendo um protocolo para uso contínuo pelos funcionários de uma laboratório.

É aí que entra a edição.

Editor de Macros

O editor de macros é o mesmo dos plugins. Fica no menu Plugins –> New…, ou Edit… se você for editar uma macro já existente.

A linguagem de macro do ImageJ é muito próxima do Java. A maioria das operações (+, ++, /, %, &, entre outras) funciona da mesma forma. Os loops, blocos e operações de decisão (if/else)  também. A maior diferença está nas variáveis, que não são tipadas, ou seja, não precisam ser declaradas, e podem armazenar qualquer valor (números ou texto).

Para melhorar o exemplo anterior, uma solução mais profissional seria pedir ao usuário que digitasse o nome da imagem original. Para isso, adicione uma primeira linha à macro:
img = getString("Digite o nome da imagem: ", img);
e edite a linha da operação de adição para que fique assim:
imageCalculator("Add create", img,"sementes01-1.tif");
A variável img contém o nome do arquivo que o usuário escolher na caixa de diálogo exibida pela funçao getString. Outras funções como esta podem ser encontradas no link acima.

Para incluir sua macro no menu

As macros que são salvas dentro do diretório plugins (ou um subdiretório) do ImageJ e tiverem pelo menos um caractere underscore no nome são incluídas no menu Plugins. Note que macros são sempre arquivos ‘.txt’, e depois de salvas só aparecem no menu quando o ImageJ for reiniciado.

É possível atribuir uma tecla de atalho à sua macro no ítem de menu Plugins –> Shortcuts –> Create Shortcuts…

Este tutorial ajudou? De onde veio este tem sempre mais. Assine o RSS feed e receba todos eles em casa.

4 Comentários para Tutorial ImageJ: Macros

  1. arley carvalho's Gravatar arley carvalho - 21 de maio de 2009 at 14:56 | Permalink

    Há algum tutorial para medir ângulos no ImageJ. Faço pesquisas científicas e preciso realizar essas medidas.
    De já agradeço!

  2. chayanne nicacio's Gravatar chayanne nicacio - 18 de junho de 2010 at 15:32 | Permalink

    olá…gostaria de usar o imageJ no meu projeto de tcc..minha pesquisa é para avaliar a forma de andar de pacientes vítimas de acidente vascular encefalico..portanto gostaria muito de saber se existe um protocolo para essa análise, com a marcação dos pontos anatômicos, etc.
    muito obrigada…chay

Trackbacks/Pingbacks

           
  1. [...] Tutorial ImageJ: Macros [...]

  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>