The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
Obrigado por utilizar o pacote ExpImage
. Este pacote foi
desenvolvido a fim de facilitar o uso da analise 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:
Após a instalação dos pacotes é necessário fazer sua ativação:
library(EBImage)
library(ExpImage)
#> Loading required package: raster
#> Loading required package: sp
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 uma imagem contida no banco de dados do pacote.
=example_image(10)
end1=read_image(end1,plot=TRUE) im
Para resolver este problema nós vamos fazer duas segmentações. A primeira para obter os pixeis referente apenas à parte aérea. A segunda segmentação será feita para obter os pixeis correspondente apenas à parte radicular.
Para isso, vamos primeiramente escolher a melhor banda para trabalharmos:
#Selecionando o melhor indice para a segmentacao
=gray_scale(im,method = "r",plot=T) r
=gray_scale(im,method = "g",plot=T) g
=gray_scale(im,method = "b",plot=T) b
Como foi possível observar, a banda de azul possibilita um bom contraste da plântula do fundo. Logo, vamos escolher um valor de limiar pela tentativa e erro.
Outra opção de explorar outros possíveis índices é por meio do seguinte comando:
plot_indexes(im,NumberCores=2)
plot_image(b,col = 3)
=segmentation(b,treshold = 0.65,selectHigher = TRUE,fillHull = TRUE,plot = TRUE) Seg
Quando se utiliza um limiar de 0.65 torna-se possivel separar apenas os pixels correspondentes às raízes.
A partir dessa imagem segmentada pode-se obter o comprimento da radícula a partir da contagem de pixels após o thinning:
=thinning_image(Seg,plot = TRUE)
radicula#> [1] "a"
#> Warning in class(x) <- "matrix": Setting class(x) to "matrix" sets attribute to
#> NULL; result will no longer be an S4 object
#> [1] "b"
#Obtenção do comprimento da raiz em pixels
sum(radicula)
#> [1] 847
Para a melhor visualização do eixo obtido pelo thinning podemos apresenta-lo sobre a imagem:
=mask_pixels(im,TargetPixels=radicula==1,col.TargetPixels = "red",plot=F)
im2=join_image(im,im2,plot=T) im3
Vamos escolher um novo limiar para conseguir separar o que é parte aérea.
plot_image(b,col = 3)
=segmentation(b,treshold = 0.5,selectHigher = FALSE,fillHull = TRUE,plot=TRUE) Seg2
É possível observar muito ruído. Este problema pode ser amenizado utilizando a função erode do EBImage:
=EBImage::erode(Seg2)
Seg2b::display(Seg2b) EBImage
Agora é possível fazer o thinning considerando os pixels correspondentes à parte aérea:
=thinning_image(Seg2b,plot = TRUE)
PA#> [1] "a"
#> Warning in class(x) <- "matrix": Setting class(x) to "matrix" sets attribute to
#> NULL; result will no longer be an S4 object
#> [1] "b"
#Obtenção do comprimento da raiz em pixels
sum(PA)
#> [1] 683
Para a melhor visualização podemos destacar em azul o eixo correspondente ao thinning:
=mask_pixels(im,TargetPixels=PA==1,plot=F,)
im4=join_image(im,im4,plot=T) im4
A unidade de medidas dos comprimentos está em pixels, mas podem ser convertido para cm quando se tem um objeto de referencia na imagem ou se sabe a área da imagem escaneada.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.