Este é mais um tutorial ImageJ que fiz com ideias dos leitores. Não, não vou mudar o nome do blog para BlogdoImageJ… tenho alguns artigos teóricos sendo preparados.
A ideia do tutorial de hoje é preparar terreno e colher alguns dados para falar de reconhecimento de padrões. Vamos começar com a mesma imagem sintética da semana passada, mas desta vez o objetivo é determinar a cor de cada bolinha.
Segmentação
O 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 é suficiente para medir cor. Mesmo assim, o começamos com aquela solução:

Segmentação da imagem: para saber como fazer, siga o link acima para o post sobre segmentação com watersheds.
Agora, combinamos o resultado desta segmentação com a imagem colorida, usando um cálculo de máxima. Explico: numa imagem RGB, o preto tem valor zero nos três canais e o branco tem o valor máximo. Qualquer cor, quando comparada ao preto terá o valor maior no pixel em questão. Desta forma, o que permaneceu preto no whatershed, fica com a cor que tinha antes, e o que ficou branco (as linhas divisórias) será branco na imagem resultado. Isto cria uma imagem colorida, com a mesma segmentação da imagem binária.
Como fazer no ImageJ:

Image Calculator
- Transforme a imagem binária em RGB (porque as duas precisam ter os 3 canais para a operação que se segue). Com a imagem binária em foco, vá em Image –> Type –> RGB Color.
- Com a imagem que você acabou de converter e a imagem colorida abertas, chame o Image Calculator: Process –> Image Calculator…
- Complete como na imagem ao lado, com as duas imagens (não importa a ordem) e a operação de máxima (Max). Clique OK.

As duas imagens e o resultado do cálculo de máxima.
Agora temos os objetos separados, exceto por aquele caso em que dois círculos estão muito sobrepostos.
Medir cor
No computador, cores são representadas por números, por isso podem ser medidas como qualquer outra grandeza. Neste exemplo, estamos medindo objetos em uma imagem RGB, e cada cor é representada por 3 números, um em cada canal de cor (vermelho, verde e azul).
Para selecionar o que o ImageJ deve medir, use o diálogo Set Measurements, do menu Analyse. Selecione Mean Gray Value e Modal Gray Value.
Agora feche todas as imagens, menos a imagem que resultou do cálculo de máxima (é importante para o próximo passo).
O Analisador de partículas não mede imagens RGB, por isso não vai ser possível medir a imagem diretamente. Mas podemos repartir a informação de cor em seus três canais, gerando 3 imagens em tons de cinza. Use Image –> Color –> Split channels… para obter os canais, e Image –> Stacks –> Images to Stack para unir as 3 imagens em uma pilha.
Agora é preciso indicar ao programa, qual parte das nossas imagens é o fundo, e quais são os objetos. Use o Threshold (Image –> Adjust –> Threshold…). Apenas escolha um nível de threshold que deixe o branco de fora (mínimo 0 e máximo 254). Não aplique, nem clique OK. Apenas deixe o diálogo aí.
Agora abra o analisador de partículas (Analyse –> Analyse Particles…). Marque Display results e Show Outlines. No OK, aparecerá um aviso sobre analisar toda a pilha (clique OK) – verá os seguintes resultados:

Os autlines dos três canais analisados (em ordem: vermelho, verde e azul).

Parte da tabela de resultados da análise.
E agora?
Bom, antes de mais nada, salve os resultados em um formato mais amigável. Infelizmente, o único disponível é o .xls. Salve assim mesmo – vai funcionar no Excel e no BrOffice, certamente.
Semana que vem vamos olhar estes dados de perto e ver o que podemos fazer com eles. Assine o feed, para ser avisado assim que sair.
Para seguir adiante:
- Classificação de objetos por centro de classe – parte I
- Classificação de objetos por centro de classe – parte II
E até mais!


Isto poderia ser utilizado para grãos de várias espécies ?
OI, Wagner! O mais legal de usar imagens é que esta e outras técnicas podem ser usadas para o que você imaginar. O que fiz neste artigo pode ser usado para identificar qualquer coisa que se diferencie por cor, o que acontece com alguns tipos de sementes, sim. Outros são diferenciados pelo tamanho e forma, o que exige o uso de outras características, mas o método de classificação fica bem parecido.
Eu estou trabalhando na minha dissertação com sementes de mamona, porém a fotografia tirada no laboratório LAQA da UFPB não foi preparada devidamente. Alguns problemas como a aproximadade, brilho intenso do flash da camera entre outros. A idéia é através das cores calcular a porcentagem de grãos das cultavares selecionadas para a pesquisa. O aplicativo ImageJ é muito bom para o processamento entretanto eu estou usando o MatLab aí a coisa muda um pouco de figura e estou com problemas para segmentar a imagem.
Oi Gabriela, achei teu blog bem legal! Mas estou precisando de um help… Preciso medir a intensidade luminosa de imagens de neurônios… imagino que deve ser da mesma maneira de como medir a cor dos objetos, mas não estou conseguindo reproduzir.
Olá Jaqueline!
Obrigada. Quanto à tua pergunta, não tenho a menor ideia, porque nunca vi uma destas imagens. Que tal enviar uma para o meu email?
(gabriela@imagesurvey.com.br)
Olá Gabriela, estou tentando aplicar o imageJ em fotos tiradas pela técnica da imunohistoquímica, onde eu verifico a marcação de anticorpos específicos no tecido hepático. A marcação é bem difusa, e fica marrom. O núcleo dos hepatócitos fica na cor violeta e a marcação específica fica em marrom geralmente no citoplasma da célula. Teria como eu quantificar essas marcações através desse software? fico no aguardo! grata.
Oi Wanessa,
Fiz uns testes com a imagem que você enviou, mas não consegui nada definitivo. Os limites não são claros, e além disso, a amplitude do histograma é baixa – o que faz com que nem os métodos de segmentação por cor ajudem. Tentei algumas operações de histograma (brilho, contraste) para ver se melhorava – pode ser que o caminho seja por aí…
Bom, respondendo… acho que dá, mas não é nada trivial, vais ter que pesquisar métodos mais específicos. Talvez encontre alguma publicação da sua área que mostre uma técnica adequada para este caso.
Até mais!