knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
Obrigado por utilizar o pacote ExpImage
. Este pacote foi desenvolvido a fim de facilitar o uso da análise de imagens na obtenção de várias informações sobre os objetos que elas contém. Para a utilização do pacote é indispensável a instalação do pacote EBImage
. Geralmente, este pacote pode ser instalado ao executar os seguintes comandos:
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("EBImage")
Porém se houver problemas na instalação sugerimos que consulte mais opções de instalação no site: https://bioconductor.org/packages/release/bioc/html/EBImage.html
Para instalar o pacote ´ExpImage´ basta utilizar o seguinte comando:
install.packages("ExpImage")
Convidamos a todos os usuários do ExpImage que venha conhecer nossos materiais didáticos sobre este e outros pacotes nos seguintes links:
https://www.youtube.com/channel/UCDGyvLCJnv9RtTY1YMBMVNQ
https://www.expstat.com/
Após a instalação dos pacotes é necessário fazer sua ativação
library(EBImage) library(ExpImage)
Para abrir as imagens pode-se inicialmente indicar a pasta de trabalho onde a imagem se encontra com a função setwd
. E, posteriormente, abrir a imagem com a função read_image
.
Neste caso, poderiam ser utilizados comandos como esses:
#Apagar memoria do R
remove(list=ls())
#Indicar a pasta de trabalho
setwd("D:/Backup Pendrive/")
im=read_image("Imagem.jpeg",plot=TRUE)
Neste exemplo utilizaremos imagens contidas no banco de dados do pacote. Vamos utilizar neste exemplo 4 imagens. Uma da imagem a ser avaliada e 3 de paletas de cores a serem utilizadas na segmentação.
####################################################### #Abrir imagem das folhas end1=example_image(3) im=read_image(end1,plot=TRUE) #Abrir paleta de cores do fundo end2=example_image(4) fundo=read_image(end2,plot=TRUE) #Abrir paleta de cores das folhas end3=example_image(5) folhas=read_image(end3,plot=TRUE) #Abrir paleta de cores referência end4=example_image(6) ref=read_image(end4,plot=TRUE)
Para resolver este problema nós vamos fazer duas segmentações. A primeira para obter os pixels referente apenas às folhas. A segunda segmentação será feita para obter os pixels correspondente apenas ao objeto de referência.
################################################################# #Segmentacao para separar as folhas do restante folhas.seg=segmentation_logit(im,foreground=folhas,background=list(fundo,ref),sample=2000,fillHull=TRUE,plot=TRUE) #Segmentacao para separar o objeto de referencia do restante ref.seg=segmentation_logit(im,foreground=ref,background=list(fundo,folhas),sample=2000,fillHull=TRUE,plot=TRUE)
Agora que temos os pixels referentes apenas às folhas podemos estimar várias medidas com a função measure_image
medidas=measure_image(folhas.seg,noise = 1000) #numero de objetos e medias medidas
Com o comando acima temos várias medidas de áreas em pixels. Logo, é legal converter essa medida para cm² a partir do objeto de referência. Sabendo a área do objeto de referência podemos fazer a conversão com da seguinte forma:
#Convertendo a area dos objetos para cm2 #Identificando a area do objeto de referência (maior area) # A area conhecida do objeto de referência tem 8.5 x 5.5 cm #e sua areasegmentada esta no objeto ref.seg medidasref=measure_image(img = folhas.seg,noise =1000,id=ref.seg,length =8.5,width =5.5,plot = FALSE ) #numero de objetos e medias medidasref
Para a melhor visualização dos resultados, podemos sobrepor a área das folhas sobre a imagem com o seguinte comando:
#Plotar resultados das areas em pixel e salvar em imagem jpg plot_meansures(im,medidasref$measures[,1],coordy=medidasref$measures[,2],text=round(medidasref$measures[,3],1),col="red", cex = 0.9 ,plot=TRUE)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.