Área foliar calculada com funções do pacote EBImage. Photo by Walmes Zeviani

Área foliar calculada com funções do pacote EBImage. Photo by Walmes Zeviani

Sinceramente, eu vi no r-bloggers e não acreditei. É possível calcular área de figuras geométricas no R. Bem isso sempre foi possível, basta ter as coordenadas do polígono. Mas não estou falando de áreas geográficas das quais possuímos os mapas. Estou falando de áreas de figuras digitalizadas, como por exemplo a folha de uma planta, as asas de uma borboleta, um torrão de solo, uma pedra, a seção de de um tronco, uma semente. Enfim, as possibilidades são infinitas.

Em agronomia, a análise de imagens é algo que vem se tornando mais comum. Determinações de volume/comprimento/diâmetro de raízes, dimensão de agregados do solo (diâmetros, rendondezas, perimentros), porcentagem de área ocupada por doença ou atacada por inseto são alguns exemplos de aplicação. Alguns aplicativos para essas tarefas são disponíveis. Alguns deles são pagos. E todos eles não permitem automatizar o trabalho, pois requerem em alguma altura do processo, intervenção do usuário via mouse. Imagine ter que calcular a área de 3000 folhas fazendo o trabalho uma a uma? Não dá né?

Nessa matéria eu calculo área de algumas folhas que encontrei no chão, embaixo de algumas árvores. Para ter a medidas das folhas em cm² eu coloquei um quadrado de papel de área conhecida como referência. Nos vamos usar funções disponíveis no pacote EBImage. O meu tutorial não é muito diferente do original que me motivou (leaf area measuring — R package “EBImage”). O fato é que não me contentei em apenas ler mencionada matéria, tive que ver com meus próprios olhos, e já que foi assim, está qui o código que produzi. Até a próxima ridícula.

#—————————————————————————–
# página de desenvolvimento do pacote
# http://www.bioconductor.org/packages/devel/bioc/html/EBImage.html

# instalação no linux, no terminal do linux, fazer
# sudo apt-get install libmagickcore-dev libmagickwand-dev

# instalando do bioconductor
source(“http://bioconductor.org/biocLite.R”)
biocLite(“EBImage”) # pacote EBImage, permite determinar área foliar

# instalando do tar.gz, pegar o link da página e rodar no terminal
# R CMD INSTALL EBImage_xxxxx.tar.gz # xxx representa a versão

#—————————————————————————–
# carrega o pacote

require(EBImage)

#—————————————————————————–
# lendo o arquivo

# lê imagem com folhas digitalizadas
fol str(fol)

display(fol) # vê a imagem
hist(fol) # histograma dos componentes verde, vermelho e azul
# picos de azul estão mais afastados, separam melhor

#—————————————————————————–
# tratamento

fol2 fol2 hist(fol2) # histigrama dos tons de cinza

display(fol2) # escala cinza com claro sendo a folha

#—————————————————————————–
# dicotomiza para branco e preto

fol2[fol2<0.5] =0.5] display(fol2) #----------------------------------------------------------------------------- # calcula atributos de cada região fol3 kern fol3 display(fol3) forma area area # áreas foliares areacm #----------------------------------------------------------------------------- # prepara para exportação fol4 display(fol4) xy font fol5 font=font, col="white") display(fol5) writeImage(fol5, "f038.jpg") #----------------------------------------------------------------------------- Original Text: Walmes Zeviani, Ridiculas Blog