Title: | Analysis of Images in Experiments |
---|---|
Description: | Tools created for image analysis in researches. There are functions associated with image editing, segmentation, and obtaining biometric measurements (Este pacote foi idealizado para para a analise de imagens em pesquisas. Ha funcoes associadas a edicao de imagens, segmentacao, e obtencao de medidas biometricas) <https://www.expstat.com/pacotes-do-r/expimage>. |
Authors: | Alcinei Mistico Azevedo [aut, cre] |
Maintainer: | Alcinei Mistico Azevedo <[email protected]> |
License: | GPL-3 |
Version: | 0.10.1 |
Built: | 2024-12-06 06:50:47 UTC |
Source: | CRAN |
This package was made for image analysis in researches. There are functions associated with image editing, segmentation, and obtaining biometric measurements (Este pacote foi idealizado para para a analise de imagens em pesquisas. Ha funcoes associadas a edicao de imagens, segmentacao, e obtencao de medidas biometricas).
Alcinei Mistico Azevedo <[email protected]>
<https://www.youtube.com/playlist?list=PLvth1ZcREyK4wSzwg-IxvrzaNzSLLrXEB>
crop_image
, edit_image
,
example_image
,extract_pixels
,
gray_scale
, join_image
,
mask_pixels
This function transform matrix into image (Esta funcao transforma matriz em imagem).
as_image(img)
as_image(img)
img |
:Object image (Objeto com uma imagem). |
Returns an object of type image (Retorna um objeto do tipo imagem).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
m=matrix(sort(runif(10000)),ncol=100,nrow=100) m info_image(m) im=as_image(m) im info_image(im) plot_image(m)
m=matrix(sort(runif(10000)),ncol=100,nrow=100) m info_image(m) im=as_image(m) im info_image(im) plot_image(m)
This function creates a palette for color calibration of images.(Esta funcao cria uma paleta para calibracao das cores de imagens).
calibration_palette(n=4,px=500,file=NULL,plot=TRUE)
calibration_palette(n=4,px=500,file=NULL,plot=TRUE)
n |
:Number of color tones to be created (n.n.n). Numero de tons de cores que se deseja criar (n.n.n). |
px |
:Number of rows and columns in the image (Numero de linhas e de colunas na imagem). |
file |
:Address of the file to be created (Endereco do arquivo a ser criado). |
plot |
:Plot the image (Plota a imagem). |
Returns an image with a color palette (Retorna um imagem com uma paleta de cores).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
im=calibration_palette(n=4,px = 500) im=calibration_palette(n=3,px = 100)
im=calibration_palette(n=4,px = 500) im=calibration_palette(n=3,px = 100)
Function to filter values in an array or image (Funcao para filtrar valores em uma matriz ou imagem).
classify_image(img,filter)
classify_image(img,filter)
img |
Este objeto deve conter uma imagem no formato do EBImage ou na forma de uma matriz (This object must contain an image in EBImage format or a matrix). |
filter |
Vetor com tres valores, o valor minimo, maximo e o argumento a ser substituido (Vector with three values, the minimum, maximum value and the argument to be substituted). |
Returns an array (retorna uma matriz). end=example_image(3) im=read_image(end,plot=TRUE) m=gray_scale(im,method = "r",plot=TRUE)
m2=classify_image(m,filter = c(0.5,Inf,NA)) plot_image(m2)
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
This function segments images through clustering by the Kmeans method (Esta funcao segmenta imagens por meio da clusterização pelo metodo Kmeans).
clustering_Kmeans(im,bands="all",ncluster=2,iter.max=10, nstart=1,mask=NULL,col="rand",raster=FALSE,seed=NULL,norma=1,plot=TRUE)
clustering_Kmeans(im,bands="all",ncluster=2,iter.max=10, nstart=1,mask=NULL,col="rand",raster=FALSE,seed=NULL,norma=1,plot=TRUE)
im |
:Image that will be segmented (Imagem que sera segmentada). |
bands |
:Number indicating the bands that will be used in the segmentation, default and "all" (Numero indicando as bandas que serao utilizadas na segmentacao, default e "all"). |
ncluster |
: Desired number of classes (Numero de classes desejado). |
iter.max |
: The maximum number of iterations allowed (número maximo de iteracoes permitido). |
nstart |
: If centers is a number, how many random sets should be chosen? |
mask |
: Mask obtained by the segmentation process, default=NULL (Mascara obtida pelo processo de segmentacao). |
col |
: Vector with the desired colors in the segmentation. If it's "rand" it will be random colors (Vetor com as cores desejadas na segmentacao. Se for "rand" serao cores aleatorias). |
raster |
Caso a imagem seja do tipo TIF pode-se deve-se considerar 'raster=TRUE' (If the image is of type TIF, you can consider 'raster=TRUE') |
seed |
is an integer vector, containing the random number generator (RNG) state for random number generation in R (E um vetor com numero inteiros para a geração de valores aleatorios) |
norma |
Number by which pixel values should be divided to vary between 0 and 1 (Numero pelo qual os valores dos pixels deverao ser divididos para variar entre 0 e 1) |
plot |
: Logical value, if TRUE, the image will be displayed (Valor logico, se for TRUE a imagem sera apresentada). |
Returns the segmented image (Retorna a imagem segmentada).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
segmentation
, segmentation_logit
#Carregando imagens de exemplo end=example_image(13) im=read_image(end,plot=TRUE) seg1=clustering_Kmeans(im,bands = "all",ncluster = 2,col = c("green","red")) seg2=clustering_Kmeans(im,bands = c(1,2,3),ncluster = 3,col = c("green","red","blue")) seg3=clustering_Kmeans(im,bands = c(1,2,3),ncluster = 4,col = "rand")
#Carregando imagens de exemplo end=example_image(13) im=read_image(end,plot=TRUE) seg1=clustering_Kmeans(im,bands = "all",ncluster = 2,col = c("green","red")) seg2=clustering_Kmeans(im,bands = c(1,2,3),ncluster = 3,col = c("green","red","blue")) seg3=clustering_Kmeans(im,bands = c(1,2,3),ncluster = 4,col = "rand")
Creates a color palette from an image (Criar uma paleta de cores a partir de uma imagem)
color_pallete(im,number=8,mask=NULL,proportional=FALSE,plot=TRUE)
color_pallete(im,number=8,mask=NULL,proportional=FALSE,plot=TRUE)
im |
:Image in ExpImage format (Imagem no formato do ExpImage). |
number |
:Number of color scales to be created (Numero de escalas de cores a serem criados) |
mask |
: Mask obtained by the segmentation process, default=NULL (Mascara obtida pelo processo de segmentacao). |
proportional |
:Logical variable indicating whether the pixel quantity of each color will be proportional to the original image (Variavel logica indicando se a quantidade pixel de cada cor sera proporcional à da imagem original). |
plot |
: Logical value, if TRUE, the image will be displayed (Valor logico, se for TRUE a imagem sera apresentada). |
Returns the segmented image (Retorna a imagem segmentada).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
segmentation
, calibration_palette
name=example_image(3) image=read_image(name,plot=TRUE) pallete=color_pallete(im=image,number =5,plot = TRUE) pallete=color_pallete(im=image,number =5,proportional = TRUE,plot = TRUE) name=example_image(10) image=read_image(name,plot=TRUE) pallete=color_pallete(im=image,number =5,plot = TRUE) pallete=color_pallete(im=image,number =5,proportional = TRUE,plot = TRUE) m=gray_scale(image,method = "GLI",plot=TRUE) seg=segmentation(m,treshold = 0.25,plot=TRUE) pallete1=color_pallete(im=image,number =10,mask = seg,plot = TRUE) pallete2=color_pallete(im=image,number =10,mask = seg,proportional = TRUE,plot = TRUE) name=example_image(13) image=read_image(name,plot=TRUE) pallete1=color_pallete(im=image,number =10,plot = TRUE) pallete2=color_pallete(im=image,number =10,proportional = TRUE,plot = TRUE) m=gray_scale(image,method = "r",plot=TRUE) seg=segmentation(m,treshold = "otsu",fillHull = TRUE,plot=TRUE) pallete1=color_pallete(im=image,number =10,mask = seg,plot = TRUE) pallete2=color_pallete(im=image,number =10,mask = seg,proportional = TRUE,plot = TRUE)
name=example_image(3) image=read_image(name,plot=TRUE) pallete=color_pallete(im=image,number =5,plot = TRUE) pallete=color_pallete(im=image,number =5,proportional = TRUE,plot = TRUE) name=example_image(10) image=read_image(name,plot=TRUE) pallete=color_pallete(im=image,number =5,plot = TRUE) pallete=color_pallete(im=image,number =5,proportional = TRUE,plot = TRUE) m=gray_scale(image,method = "GLI",plot=TRUE) seg=segmentation(m,treshold = 0.25,plot=TRUE) pallete1=color_pallete(im=image,number =10,mask = seg,plot = TRUE) pallete2=color_pallete(im=image,number =10,mask = seg,proportional = TRUE,plot = TRUE) name=example_image(13) image=read_image(name,plot=TRUE) pallete1=color_pallete(im=image,number =10,plot = TRUE) pallete2=color_pallete(im=image,number =10,proportional = TRUE,plot = TRUE) m=gray_scale(image,method = "r",plot=TRUE) seg=segmentation(m,treshold = "otsu",fillHull = TRUE,plot=TRUE) pallete1=color_pallete(im=image,number =10,mask = seg,plot = TRUE) pallete2=color_pallete(im=image,number =10,mask = seg,proportional = TRUE,plot = TRUE)
This function compares the size of images (Esta funcao compara o tamanho das imagens).
compare_image(imgs=NULL,filesnames=NULL,path = NULL)
compare_image(imgs=NULL,filesnames=NULL,path = NULL)
imgs |
:List object containing the images (Objeto do tipo lista contendo as imagens). |
filesnames |
:Images names (Nomes das imagens). |
path |
:Path files (Endereco das pastas). |
Return images size (Retorna o tamanho das imagens).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
#Carregando imagens de exemplo im1=read_image(example_image(1)) im2=read_image(example_image(2)) im3=read_image(example_image(3)) #Comparando o tamanho das imagens compare_image(list(im1,im2,im3))
#Carregando imagens de exemplo im1=read_image(example_image(1)) im2=read_image(example_image(2)) im3=read_image(example_image(3)) #Comparando o tamanho das imagens compare_image(list(im1,im2,im3))
Esta funcao retorna o contorno da imagem segmentada (This function returns the outline of the segmented image).
contour_image(img,plot=TRUE)
contour_image(img,plot=TRUE)
img |
Este objeto deve conter uma imagem contida em uma matriz binaria. |
plot |
Indica se sera apresentada (TRUE) ou nao (FALSE) (default) a imagem segmentada (Indicates whether the segmented image will be displayed (TRUE) or not (FALSE) (default)). |
Retorna o contorno de objetos em uma imagem binaria (Returns the outline of objects in a binary image ).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
end=example_image(3) im=read_image(end,TRUE) b=gray_scale(im = im,method = "g",plot = TRUE) m=segmentation(b,threshold = "otsu",selectHigher = FALSE,fillHull = TRUE,plot=TRUE) contour_image(m)
end=example_image(3) im=read_image(end,TRUE) b=gray_scale(im = im,method = "g",plot = TRUE) m=segmentation(b,threshold = "otsu",selectHigher = FALSE,fillHull = TRUE,plot=TRUE) contour_image(m)
This function converts RGB colors to LAB, HEX and XYZ (Esta funcao converte cores RGB para LAB, HEX e XYZ).
convert_color(color)
convert_color(color)
color |
A vector with 3 values (r, g and b) or a data.frame with 3 columns (r, g and b) (Um vetor com 3 valores(r, g e b) ou um data.frame com 3 colunas (r, g e b)). |
Displays colors in RGB for LAB, HEX and XYZ (Apresenta as cores em RGB para LAB, HEX e XYZ)
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
#Valores de RGB color=c(0.15,0.16,0.17) convert_color(color) color=data.frame(R=runif(10),G=runif(10),B=runif(10)) color convert_color(color)
#Valores de RGB color=c(0.15,0.16,0.17) convert_color(color) color=data.frame(R=runif(10),G=runif(10),B=runif(10)) color convert_color(color)
Create a png image with a transparent background (Criar uma imagem png com o fundo transparente)
create_png(im,segmentation,file=NULL,crop=FALSE)
create_png(im,segmentation,file=NULL,crop=FALSE)
im |
:This object must contain an image in EBImage format (Este objeto deve conter uma imagem no formato do EBImage). |
segmentation |
Binary matrix obtained of a segmentation(matrix binaria obtida por uma segmentacao). |
file |
Name of the file that will be saved with the '.png' extension (Nome do arquivo que sera salvo com a extensao '.png'). |
crop |
Logical variable, if it is TRUE the image will be cut considering the segmentation matrix (Variavel logica, se for TRUE a imagem sera cortada considerando a matriz segmentation). |
: returns an image of type '.png' (retorna uma imagem do tipo '.png').
end=example_image(2) im=read_image(end,plot=TRUE) m=gray_scale(im,method = "GLI",plot=TRUE) plot_image(m,col=3) seg=segmentation(m,treshold = 0.2,fillHull = TRUE,plot=TRUE) info_image(im) im2=create_png(im,seg) info_image(im2) #write_image(im2,files = "imagem.png") im2=create_png(im,seg,crop=TRUE) info_image(im2) #write_image(im2,files = "imagem.png")
end=example_image(2) im=read_image(end,plot=TRUE) m=gray_scale(im,method = "GLI",plot=TRUE) plot_image(m,col=3) seg=segmentation(m,treshold = 0.2,fillHull = TRUE,plot=TRUE) info_image(im) im2=create_png(im,seg) info_image(im2) #write_image(im2,files = "imagem.png") im2=create_png(im,seg,crop=TRUE) info_image(im2) #write_image(im2,files = "imagem.png")
Esta funcao permite cortar a imagem (This function allows you to crop the image).
crop_image(im,w=NULL,h=NULL,segmentation=NULL,plot=TRUE, extent=NULL,verbose=FALSE)
crop_image(im,w=NULL,h=NULL,segmentation=NULL,plot=TRUE, extent=NULL,verbose=FALSE)
im |
Este objeto deve conter uma imagem no formato do EBImage (This object must contain an image in EBImage format). |
w |
Deve ser um vetor contendo os numeros das colunas que permanecerao na imagem (It must be a vector containing the column numbers that will remain in the image). |
h |
Deve ser um vetor contendo os numeros das linhas que permanecerao na imagem (It must be a vector containing the numbers of the lines that will remain in the image ). |
segmentation |
matrix binaria obtida por uma segmentacao (Binary matrix obtained of a segmentation) |
plot |
Indica se sera apresentada (TRUE) ou nao (FALSE) (default) a imagem segmentada (Indicates whether the segmented image will be displayed (TRUE) or not (FALSE) (default)). |
extent |
Caso a imagem seja do tipo TIF este objeto devera ter um vetor com quatro valores de coordenadas que delimitam a area a ser cortada. Neste caso o argumento raster deve ser TRUE (If the image is of type TIF, this object must have a vector with four coordinate values that delimit the area to be cut. In this case the raster argument must be TRUE). |
verbose |
Indica se sera apresentada (TRUE) ou nao (FALSE) (default) os pontos de corte (Indicates whether the segmented image will be displayed (TRUE) or not (FALSE) (default) the points crop). |
Retorna uma imagem cortada, apresentando apenas os pixels selecionados (Returns a cropped image showing only selected pixels).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
#library(ExpImage) #Carregar imagem de exemplo im=read_image(example_image(2),plot=TRUE) ##Cortar Imagem im3=crop_image(im,w =286:421,h=242:332,plot = TRUE) #Exemplo utilizando mascara imb=read_image(example_image(2),plot=TRUE) m=gray_scale(imb,"g/rgb",plot=TRUE) mask=segmentation(m,threshold="otsu",plot=TRUE) imc=crop_image(imb,segmentation=mask,plot=TRUE) ## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). im=read_image(example_image(2),plot=TRUE) im2=crop_image(im) ## End(Not run)
#library(ExpImage) #Carregar imagem de exemplo im=read_image(example_image(2),plot=TRUE) ##Cortar Imagem im3=crop_image(im,w =286:421,h=242:332,plot = TRUE) #Exemplo utilizando mascara imb=read_image(example_image(2),plot=TRUE) m=gray_scale(imb,"g/rgb",plot=TRUE) mask=segmentation(m,threshold="otsu",plot=TRUE) imc=crop_image(imb,segmentation=mask,plot=TRUE) ## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). im=read_image(example_image(2),plot=TRUE) im2=crop_image(im) ## End(Not run)
Esta funcao permite acrescentar as bordas em objetos nas imagens.
dilate_image(im,n=1,plot=TRUE)
dilate_image(im,n=1,plot=TRUE)
im |
Este objeto deve conter uma imagem binaria em uma matriz. |
n |
Numero de vezes que deseja-se a aumentar as bordas. |
plot |
Indica se sera apresentada (TRUE) ou nao (FALSE) (default) a imagem segmentada. |
Retorna uma imagem acrescentando-se bordas.
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
#Abrindo uma imagem de exemplo im=read_image(example_image(10),plot=TRUE) b=gray_scale(im,method = "b",plot=TRUE) raiz=segmentation(b,threshold = 0.7,selectHigher = TRUE,plot=TRUE) raiz2=dilate_image(raiz,n = 4,plot = TRUE) raiz3=dilate_image(raiz,n = 8,plot = TRUE)
#Abrindo uma imagem de exemplo im=read_image(example_image(10),plot=TRUE) b=gray_scale(im,method = "b",plot=TRUE) raiz=segmentation(b,threshold = 0.7,selectHigher = TRUE,plot=TRUE) raiz2=dilate_image(raiz,n = 4,plot = TRUE) raiz3=dilate_image(raiz,n = 8,plot = TRUE)
This function changes the brightness, contrast and makes the gamma adjustment in the image (Esta funcao permite mudar o brilho, contraste e fazer um ajuste gamma na imagem).
edit_image(im,brightness=0,contrast=1,gamma =1,plot=TRUE)
edit_image(im,brightness=0,contrast=1,gamma =1,plot=TRUE)
im |
:This object must contain an image in EBImage format (Este objeto deve conter uma imagem no formato do EBImage). |
brightness |
: numerical value between -1 and 1 corresponding to the desired change in brightness (valor numerico entre -1 e 1 correspondente a alteracao desejada para o brilho). |
contrast |
: numerical value corresponding to the desired change in contrast (valor numerico correspondente a alteracao desejada para o contraste). |
gamma |
:numerical value between -1 and 1 corresponding to the desired change for the gamma adjustment (valor numerico entre -1 e 1 correspondente a alteracao desejada para o ajuste gamma). |
plot |
:Indicates whether the image will be displayed (TRUE) or not (FALSE) (default) (Indica se sera apresentada (TRUE) ou nao (FALSE) (default) a imagem editada). |
Returns a cropped image with selected pixels(Retorna uma imagem cortada, apresentando apenas os pixels selecionados).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
#Carregar imagem de exemplo im=read_image(example_image(1)) ##mostrar imagem plot_image(im) ##Diminuir a resolucao (tamanho da imagem) im2=resize_image(im,w=1000,plot=TRUE) ##Cortar Imagem im3=crop_image(im2,w =200:750,h=100:650,plot = TRUE) ##Aumentar brilho im4=edit_image(im3,brightness = 0.1) #Aumentar contraste im5=edit_image(im4,contrast = 1.2) #Aumentar gamma im6=edit_image(im5,gamma = 1.1) #Alterando brilho, contraste e gamma imb=edit_image(im3,brightness = 0.1,contrast = 1.7,gamma = 1.2) #Mostrando ambas as imagens simultaneamente. im4=join_image(im3,imb)
#Carregar imagem de exemplo im=read_image(example_image(1)) ##mostrar imagem plot_image(im) ##Diminuir a resolucao (tamanho da imagem) im2=resize_image(im,w=1000,plot=TRUE) ##Cortar Imagem im3=crop_image(im2,w =200:750,h=100:650,plot = TRUE) ##Aumentar brilho im4=edit_image(im3,brightness = 0.1) #Aumentar contraste im5=edit_image(im4,contrast = 1.2) #Aumentar gamma im6=edit_image(im5,gamma = 1.1) #Alterando brilho, contraste e gamma imb=edit_image(im3,brightness = 0.1,contrast = 1.7,gamma = 1.2) #Mostrando ambas as imagens simultaneamente. im4=join_image(im3,imb)
This function changes the brightness, contrast and makes the gamma adjustment in the image (Esta funcao permite mudar o brilho, contraste e fazer um ajuste gamma na imagem).
edit_imageGUI(im,Verbose=TRUE)
edit_imageGUI(im,Verbose=TRUE)
im |
:This object must contain an image in EBImage format (Este objeto deve conter uma imagem no formato do EBImage). |
Verbose |
:Logical value. Show the configurations (Valor logico. Mostra as configuracoes). |
Returns a edited image (Retorna uma imagem editada).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). #library(ExpImage) #Carregar imagem de exemplo im=read_image(example_image(2),plot=TRUE) ##Editar imagem im2=edit_imageGUI(im) ## End(Not run)
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). #library(ExpImage) #Carregar imagem de exemplo im=read_image(example_image(2),plot=TRUE) ##Editar imagem im2=edit_imageGUI(im) ## End(Not run)
Esta funcao permite excluir as bordas de objetos nas imagens.
erode_image(im,n=1,plot=TRUE)
erode_image(im,n=1,plot=TRUE)
im |
Este objeto deve conter uma imagem binaria em uma matriz. |
n |
Numero de vezes que deseja-se a exclusao das bordas. |
plot |
Indica se sera apresentada (TRUE) ou nao (FALSE) (default) a imagem segmentada. |
Retorna uma imagem excluindo-se suas bordas.
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
#Abrindo uma imagem de exemplo im=read_image(example_image(10),plot=TRUE) b=gray_scale(im,method = "b",plot=TRUE) raiz=segmentation(b,threshold = 0.62,selectHigher = TRUE,plot=TRUE) raiz2=erode_image(raiz,n = 1,plot = TRUE)
#Abrindo uma imagem de exemplo im=read_image(example_image(10),plot=TRUE) b=gray_scale(im,method = "b",plot=TRUE) raiz=segmentation(b,threshold = 0.62,selectHigher = TRUE,plot=TRUE) raiz2=erode_image(raiz,n = 1,plot = TRUE)
Show the path of images used in the example file (Apresenta endereco de imagens utilizadas no arquivo de exemplo).
example_image(ex)
example_image(ex)
ex |
:example number (numero do exemplo). The numbers corresponding to each example are(Os numeros correspondentes a cada exemplo sao):
|
Returns the address of the example images (Retorna o endereco das imagens de exemplo).
example_image(1) example_image(2)
example_image(1) example_image(2)
The function excludes objects by encircling them or using a mask. (A funcao exclui objetos circundando-os ou usando uma mascara).
exclude_object(im,mask=NULL,valueTarget = 0,color=c(r=1,g=1,b=1),plot=TRUE)
exclude_object(im,mask=NULL,valueTarget = 0,color=c(r=1,g=1,b=1),plot=TRUE)
im |
:This object must contain an image in EBImage format (Este objeto deve conter uma imagem no formato do EBImage). |
mask |
: Object with the masks of the object of interest, can be obtained by the segmentation function, if it is NULL the object can be circled by clicking on the plot (Objeto com as mascaras do objeto de interesse, pode ser obtido pela funcao segmentation, se for NULL o objeto podera ser circundado clicando sobre o plot). |
valueTarget |
:Value corresponding to the mask pixels corresponding to the objects of interest (Valor correspondentes aos pixels da mascara correspondentes aos objetos de interesse). |
color |
: Vector with R, G and B values that will replace object pixels (Vetor com valores de R, G e B que substituirao os pixels dos objetos). |
plot |
: Logical value, if TRUE the image will be plotted (Valor logico, se for TRUE a imagem sera plotada). |
Returns an image with pixel values equal to 1(white) for the foreground and 0 (black) for the foreground (Retorna uma imagem com valores de pixel igual a 1( branco) para o foreground e 0 (preto) para o foreground).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
segmentation
, segmentation_logit
, segmentation_logitGUI
# Abrindo a imagem im=read_image(example_image(3),plot=TRUE) #Obtendo a escalad e cinza m=gray_scale(im,method = "r/rgb",plot=TRUE) #Obtendo a mascara seg=segmentation(m,treshold = 0.50,selectHigher = TRUE,fillHull = TRUE,plot=TRUE) #Excluindo o objeto exclude_object(im,mask=seg,valueTarget = 0,color=c(r=0.95,g=0.94,b=0.94)) ## Not run: #dilatando o objeto e excluindo-o seg2=dilate_image(seg,n=5) exclude_object(im,mask=seg2,valueTarget = 0,color=c(r=0.95,g=0.94,b=0.94)) exclude_object(im,mask=seg2,valueTarget = 1,color=c(r=0.95,g=0.94,b=0.94)) # Segmentar e excluir clicando sobre a imagem. exclude_object(im,valueTarget = 1,color=c(r=0.95,g=0.94,b=0.94)) ## End(Not run)
# Abrindo a imagem im=read_image(example_image(3),plot=TRUE) #Obtendo a escalad e cinza m=gray_scale(im,method = "r/rgb",plot=TRUE) #Obtendo a mascara seg=segmentation(m,treshold = 0.50,selectHigher = TRUE,fillHull = TRUE,plot=TRUE) #Excluindo o objeto exclude_object(im,mask=seg,valueTarget = 0,color=c(r=0.95,g=0.94,b=0.94)) ## Not run: #dilatando o objeto e excluindo-o seg2=dilate_image(seg,n=5) exclude_object(im,mask=seg2,valueTarget = 0,color=c(r=0.95,g=0.94,b=0.94)) exclude_object(im,mask=seg2,valueTarget = 1,color=c(r=0.95,g=0.94,b=0.94)) # Segmentar e excluir clicando sobre a imagem. exclude_object(im,valueTarget = 1,color=c(r=0.95,g=0.94,b=0.94)) ## End(Not run)
Function to exclude pixels from the background or foreground in an image(Esta funcao permite criar uma imagem excluindo os pixels correspondente ao background ou foreground).
extract_pixels(im,target,valueTarget=TRUE, valueSelect=c(r=1,g=1,b=1),plot=FALSE)
extract_pixels(im,target,valueTarget=TRUE, valueSelect=c(r=1,g=1,b=1),plot=FALSE)
im |
:This object must contain an image in EBImage format (Este objeto deve conter uma imagem no formato do EBImage). |
target |
: This object must be a binary array, containing the values 0 (background pixels) or 1 (foreground pixels) (Este objeto deve ser obrigatoriamente uma matriz binaria, contendo os valores 0 (pixels do background) ou 1 (pixels do foreground)). |
valueTarget |
:Must receive the value 0 or 1 depending on what will be extracted from the image (background or foreground) (Deve receber o valor 0 ou 1 a depender do que sera extraido da imagem (background ou foreground)). |
valueSelect |
:It must be a vector with three values ranging from 0 to 1. These values respectively indicate the values of r, g and b that will replace the unwanted pixels in the image (Deve ser um vetor com tres valores variando entre 0 a 1. Estes valores indicam reespectivamente os valores de r, g e b que substituirao os pixels indesejados na imagem). |
plot |
:Indicates whether the image will be displayed (TRUE) or not (FALSE) (default) (Indica se sera apresentada (TRUE) ou nao (FALSE) (default) a imagem segmentada). |
Returns an image with the color indicated in the valueSelect variable over the unwanted pixels (Retorna uma imagem com a cor indicada na variavel valueSelect sobre os pixels indesejaveis).
########################################################################### #Estimar a area atacada por doenca no tomateiro ########################################################################### im=read_image(example_image(ex=7),plot=TRUE) #Selecionando o melhor indice para a segmentacao da folha r=gray_scale(im,method = "r",plot=TRUE) g=gray_scale(im,method = "g",plot=TRUE) b=gray_scale(im,method = "b",plot=TRUE) #O limiar pode ser um valor escolhido aleatoriamente MatrizSegentada=segmentation(b,threshold = 0.5,fillHull = FALSE,plot=TRUE) #O limiar tambem pode ser estabelecido pelo metodo de otsu MatrizSegentada2=segmentation(b,threshold = "otsu",fillHull = TRUE,selectHigher = FALSE,plot=TRUE) #Selecionar na imagem apenas os pixeis desejaveis (Folha) im2=extract_pixels(im,target=MatrizSegentada2,valueTarget=TRUE, valueSelect=c(r=1,g=1,b=1),plot=TRUE) ##################################################################### ##################################################################### #Selecionando o melhor indice para a segmentacao da doenca r=gray_scale(im2,method = "r",plot=TRUE) g=gray_scale(im2,method = "g",plot=TRUE) b=gray_scale(im2,method = "b",plot=TRUE) MatrizSegmentada3=segmentation(g,threshold = 0.3,selectHigher = FALSE, fillHull =TRUE,plot=TRUE) #Como pode-se obsevar, a segmentacao por limiar nao e possivel. Entao vamos #usar paletas de cores folha=read_image(example_image(ex=8)) doenca=read_image(example_image(ex=9)) DoencaSeg=segmentation_logit(im,foreground = doenca,background = folha,sample = 2000,fillHull = TRUE,TargetPixels =MatrizSegentada2==1 ,plot=TRUE) im3=mask_pixels(im=im2,TargetPixels=DoencaSeg==1,col="red",plot=TRUE) ii=join_image(im,im3,plot=TRUE) #Porcentagem da area lesionada. 100*(sum(DoencaSeg)/sum(MatrizSegentada2))
########################################################################### #Estimar a area atacada por doenca no tomateiro ########################################################################### im=read_image(example_image(ex=7),plot=TRUE) #Selecionando o melhor indice para a segmentacao da folha r=gray_scale(im,method = "r",plot=TRUE) g=gray_scale(im,method = "g",plot=TRUE) b=gray_scale(im,method = "b",plot=TRUE) #O limiar pode ser um valor escolhido aleatoriamente MatrizSegentada=segmentation(b,threshold = 0.5,fillHull = FALSE,plot=TRUE) #O limiar tambem pode ser estabelecido pelo metodo de otsu MatrizSegentada2=segmentation(b,threshold = "otsu",fillHull = TRUE,selectHigher = FALSE,plot=TRUE) #Selecionar na imagem apenas os pixeis desejaveis (Folha) im2=extract_pixels(im,target=MatrizSegentada2,valueTarget=TRUE, valueSelect=c(r=1,g=1,b=1),plot=TRUE) ##################################################################### ##################################################################### #Selecionando o melhor indice para a segmentacao da doenca r=gray_scale(im2,method = "r",plot=TRUE) g=gray_scale(im2,method = "g",plot=TRUE) b=gray_scale(im2,method = "b",plot=TRUE) MatrizSegmentada3=segmentation(g,threshold = 0.3,selectHigher = FALSE, fillHull =TRUE,plot=TRUE) #Como pode-se obsevar, a segmentacao por limiar nao e possivel. Entao vamos #usar paletas de cores folha=read_image(example_image(ex=8)) doenca=read_image(example_image(ex=9)) DoencaSeg=segmentation_logit(im,foreground = doenca,background = folha,sample = 2000,fillHull = TRUE,TargetPixels =MatrizSegentada2==1 ,plot=TRUE) im3=mask_pixels(im=im2,TargetPixels=DoencaSeg==1,col="red",plot=TRUE) ii=join_image(im,im3,plot=TRUE) #Porcentagem da area lesionada. 100*(sum(DoencaSeg)/sum(MatrizSegentada2))
Esta funcao retorna o edereco da pasta onde esta o scritp atual (This function returns the directory of current script ).
getwd_script()
getwd_script()
Esta funcao retorna o diretorio de trabalho a pasta onde o script esta salvo (This function return the working directory as the folder where the script is saved).
Function to get a grayscale image from a color image (Esta funcao permite a obtencao de uma imagem em escala de cinza a partir de uma imagem colorida).
gray_scale(im,method="r",normalize=TRUE,plot=FALSE)
gray_scale(im,method="r",normalize=TRUE,plot=FALSE)
im |
:This object must contain an image in EBImage format (Este objeto deve conter uma imagem no formato do EBImage). |
method |
: Indicates the method for obtaining the gray scale (Este
objeto indica o metodo para a obtencao da escala de cinza).: |
normalize |
Logic value, if true, the pixel values will be corrected to vary between 0 and 1 (Valor logico, se for verdadeiro os valores dos pixels sera corrigido para variar entre 0 e 1). |
plot |
:This object must contain an image in EBImage format (Indica se sera apresentada (TRUE) ou nao (FALSE) (default) a imagem segmentada). |
Returns an image with text over each object in the image (Retorna uma imagem com um texto sobreposto a cada objeto na imagem)
#Carregar imagem de exemplo im=read_image(example_image(2)) ##mostrar imagem plot_image(im) #Extraindo as camadas R, G e B r=gray_scale(im,method = "r",plot=TRUE) g=gray_scale(im,method = "g",plot=TRUE) b=gray_scale(im,method = "b",plot=TRUE)
#Carregar imagem de exemplo im=read_image(example_image(2)) ##mostrar imagem plot_image(im) #Extraindo as camadas R, G e B r=gray_scale(im,method = "r",plot=TRUE) g=gray_scale(im,method = "g",plot=TRUE) b=gray_scale(im,method = "b",plot=TRUE)
This function allows you to create histograms from the bands of the images (Esta funcao permite criar histogramas a partir das bandas das imagens).
histogram_image(im,layout=2,lim=1000,BandNames=NULL)
histogram_image(im,layout=2,lim=1000,BandNames=NULL)
im |
:Este objeto deve conter uma imagem (This object must contain an image ). |
layout |
: Valor numerico variando entre 1 e 3 para se ter diferentes layouts (Numeric value ranging between 1 and 3 to have different layouts). |
lim |
: Refere-se ao numero maximo de pixels que se deseja considerar para obter o histograma. Se for NULL todos os pixels serao considerados (refers to the maximum number of pixels considered to obtain the histogram. If NULL all pixels will be considered). |
BandNames |
:Refere-se ao nome das bandas (Refers to the bands names) |
Retorna histogramas a partir das bandas (Return histograms from the bands of the images).
end=example_image(6) im=read_image(end,plot=TRUE) histogram_image(im,layout = 1) histogram_image(im,layout = 2) histogram_image(im,layout = 3) histogram_image(im,BandNames = c("Azul","Verde", "Vermelho","IR","SWIR")) ## Not run: # Not run: Depende do upload de imagens do github #(It depends uploading images from github). #' ######################################################## ###' Abrindo o endereco de bandas de imagens de satelite ######################################################## end1=example_image(14) #Banda de azul end2=example_image(15) #Banda de verde end3=example_image(16) #Banda de vermelho end4=example_image(17) #Banda de IR end5=example_image(18) #Banda de SWIR ######################################################## ###' Abrindo bandas de imagens de satelite ######################################################## B1=read_image(end1,plot=TRUE) B2=read_image(end2,plot=TRUE) B3=read_image(end3,plot=TRUE) B4=read_image(end4,plot=TRUE) B5=read_image(end5,plot=TRUE) ######################################################## ###' Juntando as bandas em uma imagem ######################################################## im=join_bands(imgs = list(B1,B2,B3,B4,B5)) tif_info(im) histogram_image(im) ## End(Not run)
end=example_image(6) im=read_image(end,plot=TRUE) histogram_image(im,layout = 1) histogram_image(im,layout = 2) histogram_image(im,layout = 3) histogram_image(im,BandNames = c("Azul","Verde", "Vermelho","IR","SWIR")) ## Not run: # Not run: Depende do upload de imagens do github #(It depends uploading images from github). #' ######################################################## ###' Abrindo o endereco de bandas de imagens de satelite ######################################################## end1=example_image(14) #Banda de azul end2=example_image(15) #Banda de verde end3=example_image(16) #Banda de vermelho end4=example_image(17) #Banda de IR end5=example_image(18) #Banda de SWIR ######################################################## ###' Abrindo bandas de imagens de satelite ######################################################## B1=read_image(end1,plot=TRUE) B2=read_image(end2,plot=TRUE) B3=read_image(end3,plot=TRUE) B4=read_image(end4,plot=TRUE) B5=read_image(end5,plot=TRUE) ######################################################## ###' Juntando as bandas em uma imagem ######################################################## im=join_bands(imgs = list(B1,B2,B3,B4,B5)) tif_info(im) histogram_image(im) ## End(Not run)
This function create vegetation indices (Esta funcao cria indices de vegetacao).
index_bands(index="NDVI",red=NULL,green=NULL,blue=NULL,nir=NULL, swir=NULL,normalize=FALSE)
index_bands(index="NDVI",red=NULL,green=NULL,blue=NULL,nir=NULL, swir=NULL,normalize=FALSE)
index |
:Vegetation index to be estimated, default="NDVI" (Indice de vegetacao a ser estimado, default="NDVI"). |
red |
:Matrix with the red band (Matriz com a banda de vermelho). |
green |
:Matrix with the green band (Matriz com a banda de verde). |
blue |
:Matrix with the blue band (Matriz com a banda de azul). |
nir |
:Matrix with the nir band (Matriz com a banda nir). |
swir |
:Matrix with the swir band (Matriz com a banda swir). |
normalize |
:Logical value, if TRUE, the result will be normalized to vary between 0 and 1 (Valor logico, se for TRUE o resultado sera normatizado para variar entre 0 e 1). |
Return images size (Retorna o tamanho das imagens).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
## Not run: # Not run: Depende do upload de imagens do github #(It depends uploading images from github). #' ######################################################## ###' Abrindo o endereco de bandas de imagens de satelite ######################################################## end1=example_image(14) #Banda de azul end2=example_image(15) #Banda de verde end3=example_image(16) #Banda de vermelho end4=example_image(17) #Banda de IR end5=example_image(18) #Banda de SWIR ######################################################## ###' Abrindo bandas de imagens de satelite ######################################################## B1=read_image(end1,plot=TRUE) B2=read_image(end2,plot=TRUE) B3=read_image(end3,plot=TRUE) B4=read_image(end4,plot=TRUE) B5=read_image(end5,plot=TRUE) ######################################################## ###' Juntando as bandas em uma imagem ######################################################## im=join_bands(imgs = list(B1,B2,B3,B4,B5)) tif_info(im) ########################################################## #### Mostrando a imagem colorida ########################################################## plot_image(im,r=3,g=2,b=1,rasterRGB = TRUE) ######################################################## ###' Calculando o NDVI ######################################################## NDVI=index_bands(index="NDVI",red =im[[3]],nir = im[[4]]) plot_image(im=NDVI,col=8,axis=TRUE,title="NDVI") ######################################################## ###' Calculando o NDWI ######################################################## NDWI=index_bands(index="NDWI",green =im[[2]],swir = im[[5]]) plot_image(im=NDWI,col=8,axis=TRUE,title="NDWI") ## End(Not run)
## Not run: # Not run: Depende do upload de imagens do github #(It depends uploading images from github). #' ######################################################## ###' Abrindo o endereco de bandas de imagens de satelite ######################################################## end1=example_image(14) #Banda de azul end2=example_image(15) #Banda de verde end3=example_image(16) #Banda de vermelho end4=example_image(17) #Banda de IR end5=example_image(18) #Banda de SWIR ######################################################## ###' Abrindo bandas de imagens de satelite ######################################################## B1=read_image(end1,plot=TRUE) B2=read_image(end2,plot=TRUE) B3=read_image(end3,plot=TRUE) B4=read_image(end4,plot=TRUE) B5=read_image(end5,plot=TRUE) ######################################################## ###' Juntando as bandas em uma imagem ######################################################## im=join_bands(imgs = list(B1,B2,B3,B4,B5)) tif_info(im) ########################################################## #### Mostrando a imagem colorida ########################################################## plot_image(im,r=3,g=2,b=1,rasterRGB = TRUE) ######################################################## ###' Calculando o NDVI ######################################################## NDVI=index_bands(index="NDVI",red =im[[3]],nir = im[[4]]) plot_image(im=NDVI,col=8,axis=TRUE,title="NDVI") ######################################################## ###' Calculando o NDWI ######################################################## NDWI=index_bands(index="NDWI",green =im[[2]],swir = im[[5]]) plot_image(im=NDWI,col=8,axis=TRUE,title="NDWI") ## End(Not run)
This function returns information about the image (Esta funcao retorna informacoes sobre a imagem).
info_image(im)
info_image(im)
im |
:Object containing an image (Objeto contendo a uma imagem). |
Importa uma imagem.
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
#Carregar imagem de exemplo im=read_image(example_image(1),plot=TRUE) info_image(im)
#Carregar imagem de exemplo im=read_image(example_image(1),plot=TRUE) info_image(im)
This function compares the size of images (Esta funcao compara o tamanho das imagens).
join_bands(imgs=NULL,filesnames=NULL,path = NULL)
join_bands(imgs=NULL,filesnames=NULL,path = NULL)
imgs |
:List object containing the images (Objeto do tipo lista contendo as imagens). |
filesnames |
:Images names (Nomes das imagens). |
path |
:Path files (Endereco das pastas). |
Return images size (Retorna o tamanho das imagens).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
############################################### #Carregando imagens de exemplo im1=read_image(example_image(2),plot=TRUE) r=gray_scale(im = im1,method = "r",normalize=FALSE) g=gray_scale(im = im1,method = "g",normalize=FALSE) b=gray_scale(im = im1,method = "b",normalize=FALSE) im2=join_bands(imgs = list(r,g,b)) plot_image(im2) ## Not run: # Not run: Depende do upload de imagens do github #(It depends uploading images from github). ######################################################### ######################################################### #' #' ######################################################## ###' Abrindo o endereco de bandas de imagens de satelite ######################################################## end1=example_image(14) #Banda de azul end2=example_image(15) #Banda de verde end3=example_image(16) #Banda de vermelho end4=example_image(17) #Banda de IR end5=example_image(18) #Banda de SWIR ######################################################## ###' Abrindo bandas de imagens de satelite ######################################################## B1=read_image(end1,plot=TRUE) B2=read_image(end2,plot=TRUE) B3=read_image(end3,plot=TRUE) B4=read_image(end4,plot=TRUE) B5=read_image(end5,plot=TRUE) ######################################################## ###' Juntando as bandas em uma imagem ######################################################## im=join_bands(imgs = list(B1,B2,B3,B4,B5)) tif_info(im) plot_image(im,r=3,g=2,b=1,rasterRGB=TRUE) ## End(Not run)
############################################### #Carregando imagens de exemplo im1=read_image(example_image(2),plot=TRUE) r=gray_scale(im = im1,method = "r",normalize=FALSE) g=gray_scale(im = im1,method = "g",normalize=FALSE) b=gray_scale(im = im1,method = "b",normalize=FALSE) im2=join_bands(imgs = list(r,g,b)) plot_image(im2) ## Not run: # Not run: Depende do upload de imagens do github #(It depends uploading images from github). ######################################################### ######################################################### #' #' ######################################################## ###' Abrindo o endereco de bandas de imagens de satelite ######################################################## end1=example_image(14) #Banda de azul end2=example_image(15) #Banda de verde end3=example_image(16) #Banda de vermelho end4=example_image(17) #Banda de IR end5=example_image(18) #Banda de SWIR ######################################################## ###' Abrindo bandas de imagens de satelite ######################################################## B1=read_image(end1,plot=TRUE) B2=read_image(end2,plot=TRUE) B3=read_image(end3,plot=TRUE) B4=read_image(end4,plot=TRUE) B5=read_image(end5,plot=TRUE) ######################################################## ###' Juntando as bandas em uma imagem ######################################################## im=join_bands(imgs = list(B1,B2,B3,B4,B5)) tif_info(im) plot_image(im,r=3,g=2,b=1,rasterRGB=TRUE) ## End(Not run)
This function joins images by placing them side by side (Esta funcao junta imagens colocando uma do lado da outra).
join_image(im1=NULL,im2=NULL,im3=NULL,im4=NULL,im5=NULL,bk=c(1,1,1), ncol=NULL,normalize=FALSE,plot=TRUE)
join_image(im1=NULL,im2=NULL,im3=NULL,im4=NULL,im5=NULL,bk=c(1,1,1), ncol=NULL,normalize=FALSE,plot=TRUE)
im1 |
:Object containing an array, image in EBImage format or list of images (Objeto contendo um array, imagem, ou lista de imagens no formato do EBImage). |
im2 |
:Object containing an array, image in EBImage format or list of images (Objeto contendo um array, imagem, ou lista de imagens no formato do EBImage). |
im3 |
:Object containing an array, image in EBImage format or list of images (Objeto contendo um array, imagem, ou lista de imagens no formato do EBImage). |
im4 |
:Object containing an array, image in EBImage format or list of images (Objeto contendo um array, imagem, ou lista de imagens no formato do EBImage). |
im5 |
:Object containing an array, image in EBImage format or list of images (Objeto contendo um array, imagem, ou lista de imagens no formato do EBImage). |
bk |
:Vector white rgb values for background(Vetor contendo os valores de rgb que serao considerados no background) |
ncol |
:Number of columns where images will appear in the chart (Numero de colunas em que as imagens aparecerao no grafico) |
normalize |
:Logical value indicating whether the image needs to be normalized (Valor logico indicando se a imagem precisa ser nomalizada) |
plot |
:Logical value. Indicates whether the image will be displayed (TRUE) or not (FALSE) (default) (Indica se sera apresentada (TRUE) ou nao (FALSE) (default) a imagem segmentada). |
Return multiple images joined (Retorna a uniao de varias imagens).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
im1=read_image(example_image(2),plot=TRUE) ##Aumentar brilho im2=edit_image(im1,brightness = 0.1) #Aumentar contraste im3=edit_image(im1,contrast = 1.2) #Aumentar gamma im4=edit_image(im1,gamma = 1.1) #Alterando brilho, contraste e gamma im5=edit_image(im3,brightness = 0.1,contrast = 1.7,gamma = 1.2) #Juntando imagens em um objeto raster e plotando join_image(im1,im2,im3,im4,im5) #Juntando imagens em um objeto raster e plotando com uma lista List1=list(im1,im2,im3,im4,im5) join_image(List1) im1b=read_image(example_image(7),plot=TRUE) ##Aumentar brilho im2b=edit_image(im1b,brightness = 0.1) #Aumentar contraste im3b=edit_image(im1b,contrast = 1.2) #Aumentar gamma im4b=edit_image(im1b,gamma = 1.1) #Alterando brilho, contraste e gamma im5b=edit_image(im3b,brightness = 0.1,contrast = 1.7,gamma = 1.2) #Juntando imagens em um objeto raster e plotando join_image(im1b,im2b,im3b,im4b,im5b) #Juntando imagens em um objeto raster e plotando com uma lista List2=list(im1b,im2b,im3b,im4b,im5b) join_image(List2) #Juntando imagens presentes em duas listas join_image(List1,List2)
im1=read_image(example_image(2),plot=TRUE) ##Aumentar brilho im2=edit_image(im1,brightness = 0.1) #Aumentar contraste im3=edit_image(im1,contrast = 1.2) #Aumentar gamma im4=edit_image(im1,gamma = 1.1) #Alterando brilho, contraste e gamma im5=edit_image(im3,brightness = 0.1,contrast = 1.7,gamma = 1.2) #Juntando imagens em um objeto raster e plotando join_image(im1,im2,im3,im4,im5) #Juntando imagens em um objeto raster e plotando com uma lista List1=list(im1,im2,im3,im4,im5) join_image(List1) im1b=read_image(example_image(7),plot=TRUE) ##Aumentar brilho im2b=edit_image(im1b,brightness = 0.1) #Aumentar contraste im3b=edit_image(im1b,contrast = 1.2) #Aumentar gamma im4b=edit_image(im1b,gamma = 1.1) #Alterando brilho, contraste e gamma im5b=edit_image(im3b,brightness = 0.1,contrast = 1.7,gamma = 1.2) #Juntando imagens em um objeto raster e plotando join_image(im1b,im2b,im3b,im4b,im5b) #Juntando imagens em um objeto raster e plotando com uma lista List2=list(im1b,im2b,im3b,im4b,im5b) join_image(List2) #Juntando imagens presentes em duas listas join_image(List1,List2)
This function linearize matrix image (Esta funcao lineariza a imagem).
linearize_image(im,exclude=FALSE)
linearize_image(im,exclude=FALSE)
im |
:Image object (Imagem com o objeto). |
exclude |
:Logical value, if TRUE, pixels with zero will be excluded (Valor logico, se for TRUE o valor zero sera excluido da matriz). |
Return images size (Retorna o tamanho das imagens).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
im1=read_image(example_image(2),plot=TRUE) B=gray_scale(im = im1,method = "b",plot=TRUE) plot_image(B,col=3) plot_image(B,col=2,axis = TRUE) m=segmentation(B,treshold =0.38,selectHigher = FALSE,fillHull =TRUE,plot = TRUE ) Lin1=linearize_image(im =im1) head(Lin1) info_image(Lin1) Lin2=linearize_image(im=m) head(Lin2) info_image(Lin2) Lin3=linearize_image(im=m,exclude = TRUE) head(Lin3) info_image(Lin3)
im1=read_image(example_image(2),plot=TRUE) B=gray_scale(im = im1,method = "b",plot=TRUE) plot_image(B,col=3) plot_image(B,col=2,axis = TRUE) m=segmentation(B,treshold =0.38,selectHigher = FALSE,fillHull =TRUE,plot = TRUE ) Lin1=linearize_image(im =im1) head(Lin1) info_image(Lin1) Lin2=linearize_image(im=m) head(Lin2) info_image(Lin2) Lin3=linearize_image(im=m,exclude = TRUE) head(Lin3) info_image(Lin3)
This function superimposes a mask over the pixels corresponding to the background or foreground.(Esta funcao permite criar mascara sobre os pixels correspondentes ao background ou foreground)
mask_pixels(im,TargetPixels,TargetPixels2=NULL,col.TargetPixels="rand", Contour=FALSE, r = 1, g = 2, b = 3, norma = 1,plot=FALSE)
mask_pixels(im,TargetPixels,TargetPixels2=NULL,col.TargetPixels="rand", Contour=FALSE, r = 1, g = 2, b = 3, norma = 1,plot=FALSE)
im |
:This object must contain an image in EBImage format (Este objeto deve conter uma imagem no formato do EBImage). |
TargetPixels |
: (Este objeto deve ser uma matriz binaria ou uma lista com varias matrizes. Em cada matriz deve conter os valores 0 (pixels do background) ou 1 (pixels do foreground)). |
TargetPixels2 |
: Este objeto deve ser uma matriz binaria ou uma lista com varias matrizes. Em cada matriz deve conter os valores 0 (pixels do background) ou 1 (pixels do foreground)). |
col.TargetPixels |
: Se for a palavra "rand" serao valores escolhidos para cada matriz. Pode tambem ser um vetor contendo os nomes das cores. Neste caso, o tamanho de vetor deve ser igual ao numero de matrizes. |
Contour |
: Valor logico. Se for FALSE (default) sera a parte de interesse sera preenchida. Se for TRUE a area de interesse sera contornada. |
r |
: Camada correspondente a banda de vermelho. |
g |
: Camada correspondente a banda de verde |
b |
= Camada correspondente a banda de azul |
norma |
= Valor a ser dividido em cada pixel para se ter valor entre 0 e 1. |
plot |
:Indica se sera apresentada (TRUE) ou nao (FALSE) (default) a imagem segmentada. |
Retorna uma imagem com uma mascara sobre os pixels selecionados.
@seealso segmentation_logit
########################################################################### #Estimar a area atacada por doenca no tomateiro ########################################################################### im=read_image(example_image(ex=7)) plot_image(im) #Selecionando o melhor indice para a segmentacao da folha r=gray_scale(im,method = "r",plot=TRUE) g=gray_scale(im,method = "g",plot=TRUE) b=gray_scale(im,method = "b",plot=TRUE) #O limiar pode ser um valor escolhido aleatoriamente MatrizSegentada=segmentation(b,threshold = 0.5,fillHull = FALSE,plot=TRUE) #O limiar tambem pode ser estabelecido pelo metodo de otsu MatrizSegentada2=segmentation(b,threshold = "otsu",fillHull = TRUE ,selectHigher= FALSE, plot=TRUE) #Selecionar na imagem apenas os pixeis desejaveis (Folha) im2=extract_pixels(im,target=MatrizSegentada2,valueTarget=TRUE, valueSelect=c(r=1,g=1,b=1),plot=TRUE) ################################################################ #Selecionando o melhor indice para a segmentacao da doenca r=gray_scale(im2,method = "r",plot=TRUE) g=gray_scale(im2,method = "g",plot=TRUE) b=gray_scale(im2,method = "b",plot=TRUE) MatrizSegmentada3=segmentation(g,threshold = 0.3,selectHigher = FALSE, fillHull =TRUE,plot=TRUE) #Como pode-se obsevar, a segmentacao por limiar nao e possivel. Entao vamos #usar paletas de cores folha=read_image(example_image(ex=8)) doenca=read_image(example_image(ex=9)) DoencaSeg=segmentation_logit(im,foreground = doenca,background = folha,sample = 2000,fillHull = TRUE,TargetPixels =MatrizSegentada2==1 ,plot=TRUE) im3=mask_pixels(im2,TargetPixels=DoencaSeg==1) plot_image(im3) ii=join_image(im,im3,plot=TRUE) #Porcentagem da area lesionada. 100*(sum(DoencaSeg)/sum(MatrizSegentada2))
########################################################################### #Estimar a area atacada por doenca no tomateiro ########################################################################### im=read_image(example_image(ex=7)) plot_image(im) #Selecionando o melhor indice para a segmentacao da folha r=gray_scale(im,method = "r",plot=TRUE) g=gray_scale(im,method = "g",plot=TRUE) b=gray_scale(im,method = "b",plot=TRUE) #O limiar pode ser um valor escolhido aleatoriamente MatrizSegentada=segmentation(b,threshold = 0.5,fillHull = FALSE,plot=TRUE) #O limiar tambem pode ser estabelecido pelo metodo de otsu MatrizSegentada2=segmentation(b,threshold = "otsu",fillHull = TRUE ,selectHigher= FALSE, plot=TRUE) #Selecionar na imagem apenas os pixeis desejaveis (Folha) im2=extract_pixels(im,target=MatrizSegentada2,valueTarget=TRUE, valueSelect=c(r=1,g=1,b=1),plot=TRUE) ################################################################ #Selecionando o melhor indice para a segmentacao da doenca r=gray_scale(im2,method = "r",plot=TRUE) g=gray_scale(im2,method = "g",plot=TRUE) b=gray_scale(im2,method = "b",plot=TRUE) MatrizSegmentada3=segmentation(g,threshold = 0.3,selectHigher = FALSE, fillHull =TRUE,plot=TRUE) #Como pode-se obsevar, a segmentacao por limiar nao e possivel. Entao vamos #usar paletas de cores folha=read_image(example_image(ex=8)) doenca=read_image(example_image(ex=9)) DoencaSeg=segmentation_logit(im,foreground = doenca,background = folha,sample = 2000,fillHull = TRUE,TargetPixels =MatrizSegentada2==1 ,plot=TRUE) im3=mask_pixels(im2,TargetPixels=DoencaSeg==1) plot_image(im3) ii=join_image(im,im3,plot=TRUE) #Porcentagem da area lesionada. 100*(sum(DoencaSeg)/sum(MatrizSegentada2))
Function to create a mask above the background or foreground. (Funcao para criar uma mascara sobre o background ou foreground).
mask_raster(Class,legend,col,main,plot=TRUE)
mask_raster(Class,legend,col,main,plot=TRUE)
Class |
Raster object with pixels grouped into classes (Objeto do tipo raster com os pixels agrupados em classes). |
legend |
Vector with the names corresponding to each class (Vetor os nomes correspondentes a cada classe). |
col |
Vector with the color names corresponding to each class (Vetor os nomes das cores correspondentes a cada classe). |
main |
Titulo da figura (Figure title) |
plot |
Logic value, if TRUE the figure will be shown (Valor logico, se TRUE a figura sera apresentada) |
Returns an array (retorna uma matriz).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
Esta funcao possibilita a obtencao de medidas associadas aos objetos em imagens binarias.
measure_image(img,noise=0,id=NULL,length= NULL,width =NULL, splitConnected=FALSE, tolerance = 1, ext = 1,imOut=FALSE, plot= TRUE)
measure_image(img,noise=0,id=NULL,length= NULL,width =NULL, splitConnected=FALSE, tolerance = 1, ext = 1,imOut=FALSE, plot= TRUE)
img |
:Este objeto deve ser obrigatoriamente uma matriz binaria, contendo os valores 0 (pixels do background) e 1 (pixels do foreground)). |
noise |
: E o numero de pixeis a partir do qual a funcao nao considerara como ruido. |
id |
:Se igual a NULL (default) nao sera feita a conversao de pixels para centimetros. Se houver algum objeto de referencia na imagem com area conhecida, deve-se colocar o numero referente a este objeto. Se o tamanho da imagem em centimetros for conhecida, pode-se colocar para este argumento a palavra "all". |
length |
:Comprimento do objeto de referencia ou da imagem em centimetros. |
width |
:Altura do objeto de referencia ou da imagem em centimetros. |
splitConnected |
:Variavel do tipo logico. Se TRUE objetos encostados serao considerados diferentes. |
tolerance |
The minimum height of the object in the units of image intensity between its highest point (seed) and the point where it contacts another object (checked for every contact pixel). If the height is smaller than the tolerance, the object will be combined with one of its neighbors, which is the highest. Tolerance should be chosen according to the range of x. Default value is 1, which is a reasonable value if x comes from distmap. |
ext |
Radius of the neighborhood in pixels for the detection of neighboring objects. Higher value smoothes out small objects. |
imOut |
Logical variable, if TRUE, the segmentation image will be exported in the results. (Variavel logica, se for TRUE sera exportada a imagem da segmentacao nos resultados). |
plot |
Indicates whether the segmented image will be displayed (TRUE) or not (FALSE) (default) (Indica se sera apresentada (TRUE) ou nao (FALSE) (default) a imagem segmentada) |
Returns the coordinates of each object, its area, perimeter, ...(Retorna as cordendas de cada objeto, sua area, perimetro, ...)
segmentation_logit , segmentation
############################################################################ #Obtendo o numero de ovos em uma folha ############################################################################ #Carregar imagem de exemplo im=read_image(example_image(2)) ##mostrar imagem plot_image(im) #Selecionando o melhor indice para a segmentacao da folha r=gray_scale(im,method = "r",plot=TRUE) g=gray_scale(im,method = "g",plot=TRUE) b=gray_scale(im,method = "b",plot=TRUE) #O canal azul possibilita maior contraste #O limiar pode ser um valor escolhido aleatoriamente (por exemplo: 0.6) MatrizSegmentada=segmentation(b,threshold = 0.40,fillHull = TRUE, selectHigher = FALSE,plot=TRUE) im2=extract_pixels(im,target =MatrizSegmentada,valueTarget =1, valueSelect = c(0,0,0),plot=TRUE ) #Selecionando o melhor indice para a segmentacao dos ovos r=gray_scale(im2,method = "r",plot=TRUE) g=gray_scale(im2,method = "g",plot=TRUE) b=gray_scale(im2,method = "b",plot=TRUE) #O canal Azul proporciona melhor segmentacao #O limiar pode ser um valor escolhido aleatoriamente (por exemplo: 0.6) MatrizSegmentada2=segmentation(b,threshold = 0.60,fillHull = TRUE, selectHigher = TRUE,plot = TRUE) Medidas=measure_image(MatrizSegmentada2) Medidas$ObjectNumber #Ver a mascara sobre os ovos na foto im3=mask_pixels(im,MatrizSegmentada2==1,plot=TRUE) ############################################################# #Obtendo a area de folhas de acerola ############################################################## #ativar pacote library(ExpImage) #Abrir imagem im=read_image(example_image(3)) #Selecionando o melhor indice para a segmentacao r=gray_scale(im,method ="r",plot=TRUE) g=gray_scale(im,method = "g",plot=TRUE) b=gray_scale(im,method ="b",plot=TRUE) #A banda de azul foi a que melhor discriminou #O limiar pode ser um valor #escolhido aleatoriamente (por exemplo: 0.6) MatrizSegmentada=segmentation(b,threshold = 0.6,fillHull = FALSE, selectHigher =FALSE,plot=TRUE) #O limiar tambem pode ser estabelecido pelo metodo de otsu MatrizSegmentada2=segmentation(b,threshold = "otsu",fillHull = TRUE, selectHigher =FALSE,plot=TRUE) #Obter medidas de cada objeto medidas=measure_image(MatrizSegmentada2) #ver o numero de objetos e medias medidas medidas$ObjectNumber #Obter medidas de cada objeto excluindo o ruido medidas=measure_image(MatrizSegmentada2,noise = 1000) #numero de objetos medidas$ObjectNumber Estimativas=medidas$measures #Plotar resultados das areas em pixel e salvar em um arquivo chamado "teste.jpg" #plot_meansures(im,medidas$measures[,1],coordy=medidas$measures[,2], #text=round(medidas$measures[,3],1),cex= 0.9,pathSave ="teste.jpg", #col="blue" ,plot = TRUE) plot_meansures(im,medidas$measures[,1],coordy=medidas$measures[,2], text=round(medidas$measures[,3],2),cex = 0.9,col="blue" ,plot=TRUE) ############################################################################## #Convertendo a area dos objetos para cm2 #Conhecendo o identificador do objeto de referencia plot_meansures(im,medidas$measures[,1],coordy=medidas$measures[,2], text=rownames(medidas$measures),cex= 0.9, col="blue",plot=TRUE ) #como pode-se ver, o objeto de referencia e o de numero 30 # A area conhecida do objeto de referencia tem 8.5 x 5.5 cm. #Isso nos leva a 46.75 medidas2=measure_image(MatrizSegmentada2,noise = 1000,id=30, length= 8.5,width =5.5) medidas2 #Apresentando a area foliar em cm2 de sobre cada uma das folhas plot_meansures(im,medidas2$measures[,1],coordy=medidas2$measures[,2], text=round(medidas2$measures[,3],2),cex = 0.9,col="blue") ################################################################ #Obs.: O uso do objeto de referencia e util para a conversao em cm2 em #situacoes que nao se conhece a area fotografada. #Se soubermos exatamente qual e o tamanho da area escaneada (fotografada) #podemos dispensar o uso do objeto de referencia. #Convertendo a area em pixel para cm2 considerando a dimensao superficie #escaneada. # A dimensao da superficie escaneada tem 21*29.7 cm (dimensao de uma folha a4). #Isso nos leva a 623.7 cm2 medidas3=measure_image(MatrizSegmentada2,noise = 1000,id="all", length= 21,width =29.7) medidas3 #Apresentando a area foliar de sobre cada uma das folhas plot_meansures(im,medidas3$measures[,1],coordy=medidas3$measures[,2], text=round(medidas3$measures[,3],2),cex = 0.9,col="blue",plot=TRUE)
############################################################################ #Obtendo o numero de ovos em uma folha ############################################################################ #Carregar imagem de exemplo im=read_image(example_image(2)) ##mostrar imagem plot_image(im) #Selecionando o melhor indice para a segmentacao da folha r=gray_scale(im,method = "r",plot=TRUE) g=gray_scale(im,method = "g",plot=TRUE) b=gray_scale(im,method = "b",plot=TRUE) #O canal azul possibilita maior contraste #O limiar pode ser um valor escolhido aleatoriamente (por exemplo: 0.6) MatrizSegmentada=segmentation(b,threshold = 0.40,fillHull = TRUE, selectHigher = FALSE,plot=TRUE) im2=extract_pixels(im,target =MatrizSegmentada,valueTarget =1, valueSelect = c(0,0,0),plot=TRUE ) #Selecionando o melhor indice para a segmentacao dos ovos r=gray_scale(im2,method = "r",plot=TRUE) g=gray_scale(im2,method = "g",plot=TRUE) b=gray_scale(im2,method = "b",plot=TRUE) #O canal Azul proporciona melhor segmentacao #O limiar pode ser um valor escolhido aleatoriamente (por exemplo: 0.6) MatrizSegmentada2=segmentation(b,threshold = 0.60,fillHull = TRUE, selectHigher = TRUE,plot = TRUE) Medidas=measure_image(MatrizSegmentada2) Medidas$ObjectNumber #Ver a mascara sobre os ovos na foto im3=mask_pixels(im,MatrizSegmentada2==1,plot=TRUE) ############################################################# #Obtendo a area de folhas de acerola ############################################################## #ativar pacote library(ExpImage) #Abrir imagem im=read_image(example_image(3)) #Selecionando o melhor indice para a segmentacao r=gray_scale(im,method ="r",plot=TRUE) g=gray_scale(im,method = "g",plot=TRUE) b=gray_scale(im,method ="b",plot=TRUE) #A banda de azul foi a que melhor discriminou #O limiar pode ser um valor #escolhido aleatoriamente (por exemplo: 0.6) MatrizSegmentada=segmentation(b,threshold = 0.6,fillHull = FALSE, selectHigher =FALSE,plot=TRUE) #O limiar tambem pode ser estabelecido pelo metodo de otsu MatrizSegmentada2=segmentation(b,threshold = "otsu",fillHull = TRUE, selectHigher =FALSE,plot=TRUE) #Obter medidas de cada objeto medidas=measure_image(MatrizSegmentada2) #ver o numero de objetos e medias medidas medidas$ObjectNumber #Obter medidas de cada objeto excluindo o ruido medidas=measure_image(MatrizSegmentada2,noise = 1000) #numero de objetos medidas$ObjectNumber Estimativas=medidas$measures #Plotar resultados das areas em pixel e salvar em um arquivo chamado "teste.jpg" #plot_meansures(im,medidas$measures[,1],coordy=medidas$measures[,2], #text=round(medidas$measures[,3],1),cex= 0.9,pathSave ="teste.jpg", #col="blue" ,plot = TRUE) plot_meansures(im,medidas$measures[,1],coordy=medidas$measures[,2], text=round(medidas$measures[,3],2),cex = 0.9,col="blue" ,plot=TRUE) ############################################################################## #Convertendo a area dos objetos para cm2 #Conhecendo o identificador do objeto de referencia plot_meansures(im,medidas$measures[,1],coordy=medidas$measures[,2], text=rownames(medidas$measures),cex= 0.9, col="blue",plot=TRUE ) #como pode-se ver, o objeto de referencia e o de numero 30 # A area conhecida do objeto de referencia tem 8.5 x 5.5 cm. #Isso nos leva a 46.75 medidas2=measure_image(MatrizSegmentada2,noise = 1000,id=30, length= 8.5,width =5.5) medidas2 #Apresentando a area foliar em cm2 de sobre cada uma das folhas plot_meansures(im,medidas2$measures[,1],coordy=medidas2$measures[,2], text=round(medidas2$measures[,3],2),cex = 0.9,col="blue") ################################################################ #Obs.: O uso do objeto de referencia e util para a conversao em cm2 em #situacoes que nao se conhece a area fotografada. #Se soubermos exatamente qual e o tamanho da area escaneada (fotografada) #podemos dispensar o uso do objeto de referencia. #Convertendo a area em pixel para cm2 considerando a dimensao superficie #escaneada. # A dimensao da superficie escaneada tem 21*29.7 cm (dimensao de uma folha a4). #Isso nos leva a 623.7 cm2 medidas3=measure_image(MatrizSegmentada2,noise = 1000,id="all", length= 21,width =29.7) medidas3 #Apresentando a area foliar de sobre cada uma das folhas plot_meansures(im,medidas3$measures[,1],coordy=medidas3$measures[,2], text=round(medidas3$measures[,3],2),cex = 0.9,col="blue",plot=TRUE)
This function allows you to create histograms from the bands of the images (Esta funcao permite criar histogramas a partir das bandas das imagens).
normalize_image(im,inf=0,max=1)
normalize_image(im,inf=0,max=1)
im |
:Este objeto deve conter uma imagem (This object must contain an image ). |
inf |
: Numero em que o pixel de menor valor devera ter (Number in which the lowest value pixel should have). |
max |
: Numero em que o pixel de maior valor devera ter (Number in which the pixel with the highest value should have). |
Retorna histogramas a partir das bandas (Return histograms from the bands of the images).
end=example_image(6) im=read_image(end,plot=TRUE) histogram_image(im,layout = 1) histogram_image(im,layout = 2) histogram_image(im,layout = 3) im2=normalize_image(im) plot_image(im2) histogram_image(im2,layout = 3)
end=example_image(6) im=read_image(end,plot=TRUE) histogram_image(im,layout = 1) histogram_image(im,layout = 2) histogram_image(im,layout = 3) im2=normalize_image(im) plot_image(im2) histogram_image(im2,layout = 3)
Esta funcao faz a padronizacao da matriz a fim de retirar a escala. Para isso, os valores das matrizes sao calculados a fim de variar entre um "LimiteInferior" e um "LimiteSuperior".
Normatiza(DadosEntrada, DadosBase=NULL, LimiteInferior=0, LimiteSuperior=1,Metodo=1)
Normatiza(DadosEntrada, DadosBase=NULL, LimiteInferior=0, LimiteSuperior=1,Metodo=1)
DadosEntrada |
Matriz contendo os dados sendo normatizados. |
DadosBase |
Matriz contendo o conjunto de dados referencia para a normatizacao. Se for "NULL" essa matriz de referencia sera a propria matriz de entrada. |
LimiteInferior |
Numero cujo menor valor devera corresponder. |
LimiteSuperior |
Numero cujo maior valor devera corresponder. |
Metodo |
indica a forma que a normatizacao sera feita. Pode receber o valor 1 ou 2:
|
Retorna a matriz normatizada.
PlayList "Curso de Analise Multivariada": https://www.youtube.com/playlist?list=PLvth1ZcREyK72M3lFl7kBaHiVh5W53mlR
CRUZ, C.D. and CARNEIRO, P.C.S. Modelos biometricos aplicados ao melhoramento genetico. 3nd Edition. Vicosa, UFV, v.2, 2014. 668p. (ISBN: 8572691510)
FERREIRA, D.F. Estatistica Multivariada. (2018) 3ed. UFLA. 624p. (ISBN 13:978 8581270630)
HAIR, J.F. Multivariate Data Analysis. (2016) 6ed. Pearson Prentice HalL. (ISBN 13:978 0138132637)
end=example_image(2) ima=read_image(end,plot=TRUE) VARI=gray_scale(ima,method = "VARI",plot=TRUE) VARIb=VARI*2-1 min(VARIb) max(VARIb) VARI2=Normatiza(VARIb,LimiteInferior=0, LimiteSuperior=1,Metodo=2) min(VARI2) max(VARI2)
end=example_image(2) ima=read_image(end,plot=TRUE) VARI=gray_scale(ima,method = "VARI",plot=TRUE) VARIb=VARI*2-1 min(VARIb) max(VARIb) VARI2=Normatiza(VARIb,LimiteInferior=0, LimiteSuperior=1,Metodo=2) min(VARI2) max(VARI2)
With this function it is possible to make a segmentation with the shape of a circle by clicking on the image (Com essa funcao e possivel fazer uma segmentacao com o formato de um circulo clicando em na imagem).
pick_circle(im,num.points=NULL, col="red")
pick_circle(im,num.points=NULL, col="red")
im |
:This object must contain an image in EBImage format (Este objeto deve conter uma imagem no formato do EBImage). |
num.points |
:Maximum number of points to be used to delimit the object (Número maximo de pontos a ser utilizado para delimitar o objeto). |
col |
: Color of points and lines that delimit the object (Cor dos pontos e linhas que delimitarão o objeto) |
Returns an image with pixel values equal to 1(white) for the foreground and 0 (black) for the foreground (Retorna uma imagem com valores de pixel igual a 1( branco) para o foreground e 0 (preto) para o foreground).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
segmentation
, segmentation_logit
, segmentation_logitGUI
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). im=read_image("https://raw.githubusercontent.com/AlcineiAzevedo/Files_ExpImage/main/PlacaPetri.jpg", plot=TRUE) seg=pick_circle(im) im2=extract_pixels(im,target = seg,plot=TRUE) ## End(Not run)
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). im=read_image("https://raw.githubusercontent.com/AlcineiAzevedo/Files_ExpImage/main/PlacaPetri.jpg", plot=TRUE) seg=pick_circle(im) im2=extract_pixels(im,target = seg,plot=TRUE) ## End(Not run)
Esta funcao retorna o valor de R, G e B no pixel selecionado. (This function returns the value of R, G and B at the selected pixel ).
pick_color(im, matrix = NULL)
pick_color(im, matrix = NULL)
im |
Este objeto deve conter uma imagem no formato do EBImage (This object must contain an image in EBImage format ). |
matrix |
Deve ser uma matriz com 3 colunas correspondentes aos canais R, G e B. Os novos valores selecionados serao adicionados a essa matriz. (It must be a matrix with 3 columns corresponding to the R, G and B channels. The new selected values will be added to this matrix). |
Esta funcao retorna o valor de R, G e B no pixel selecionado. (This function returns the value of R, G and B at the selected pixel ).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). #library(ExpImage) #library(EBImage) #Carregar imagem de exemplo im=read_image(example_image(2),plot=TRUE) pick_color(im) ## End(Not run)
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). #library(ExpImage) #library(EBImage) #Carregar imagem de exemplo im=read_image(example_image(2),plot=TRUE) pick_color(im) ## End(Not run)
Count objects by clicking on the image (Contar objetos clicando na imagem)
pick_count(im,cex=1,col="red")
pick_count(im,cex=1,col="red")
im |
:Image in ExpImage format (Imagem no formato do ExpImage). |
cex |
:Font size (Tamanho da fonte) |
col |
: Font color (Cor da fonte). |
Returns the number of objects in an image (Retorna o numero de objetos em uma imagem).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). im=read_image(example_image(3),plot=TRUE) pick_count(im) ## End(Not run)
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). im=read_image(example_image(3),plot=TRUE) pick_count(im) ## End(Not run)
Measure objects in the image on click (Medir objetos na imagem ao clicar).
pick_length(im,dpi=NULL,NumPoints=2,col="red")
pick_length(im,dpi=NULL,NumPoints=2,col="red")
im |
:Image in ExpImage format (Imagem no formato do ExpImage). |
dpi |
:Dots Per Inch - Number of pixels per inch in the image (Numero de pixels por polegadas na imagem) |
NumPoints |
: Number of points on the segment to be measured (Numero de pontos no segmento que se deseja medir). |
col |
: Font color (Cor da fonte). |
Returns the length of a segment in an image on click (Retorna o comprimento de um segmento em uma imagem ao clicar).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). im=read_image(example_image(3),plot=TRUE) dpi=pick_resolution(im,centimeters=8.5) dpi$dpi pick_length(im,dpi = dpi$dpi) ## End(Not run)
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). im=read_image(example_image(3),plot=TRUE) dpi=pick_resolution(im,centimeters=8.5) dpi$dpi pick_length(im,dpi = dpi$dpi) ## End(Not run)
Esta funcao retorna uma paleta de cores com os pixels selecionados. (This function returns a color palette with selected pixels).
pick_palette(im,palette.previous=NULL,percent.pick=0.01)
pick_palette(im,palette.previous=NULL,percent.pick=0.01)
im |
Este objeto deve conter uma imagem no formato do EBImage (This object must contain an image in EBImage format ). |
palette.previous |
Este objeto pode conter uma imagem no formato do EBImage com parte da paleta de cores obtida previamente (This object can contain an image in EBImage format whith a color palette). |
percent.pick |
E um valor variando entre 0 e 1. Quanto menor for o valor, menor sera a area capturada com os cliques. (And a value ranging between 0 and 1. The smaller the value, the smaller the area captured with the clicks will be). |
Esta funcao retorna uma paleta de cores com os pixels selecionados. (This function returns a color palette with selected pixels).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
segmentation_logit
, pick_color
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). #library(ExpImage) #library(EBImage) #Carregar imagem de exemplo im=read_image(example_image(2),plot=TRUE) pick_palette(im) ## End(Not run)
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). #library(ExpImage) #library(EBImage) #Carregar imagem de exemplo im=read_image(example_image(2),plot=TRUE) pick_palette(im) ## End(Not run)
Obter o numero de pixels por centimetros ou polegadas em uma imagem (Get the number of pixels per centimeters or inches in an image).
pick_resolution(im,inches=NULL,centimeters=NULL,several=TRUE,col="red")
pick_resolution(im,inches=NULL,centimeters=NULL,several=TRUE,col="red")
im |
:Image in ExpImage format (Imagem no formato do ExpImage). |
inches |
:reference object size in inches (tamanho do objeto de referencia em polegadas). |
centimeters |
:reference object size in centimeters (tamanho do objeto de referencia em centimetros). |
several |
:TRUE: If you want to get the DPI from the average of several measurements (TRUE: Se deseja obter o DPI a partir da média de várias medidas ). |
col |
: Font color (Cor da fonte). |
Returns the resolution in DPI of an image. (Retorna a resolução em uma imagem).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). im=read_image(example_image(3),plot=TRUE) dpi=pick_resolution(im,centimeters=8.5) dpi$dpi pick_length(im,dpi = dpi$dpi) ## End(Not run)
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). im=read_image(example_image(3),plot=TRUE) dpi=pick_resolution(im,centimeters=8.5) dpi$dpi pick_length(im,dpi = dpi$dpi) ## End(Not run)
With this function it is possible to segment objects by clicking on their boundaries (Com essa funcao e possivel segmentar objetos clicando em suas delimitacoes).
pick_segmentation(im,num.points=NULL, col="red")
pick_segmentation(im,num.points=NULL, col="red")
im |
:This object must contain an image in EBImage format (Este objeto deve conter uma imagem no formato do EBImage). |
num.points |
:Maximum number of points to be used to delimit the object (Número maximo de pontos a ser utilizado para delimitar o objeto). |
col |
: Color of points and lines that delimit the object (Cor dos pontos e linhas que delimitarão o objeto) |
Returns an image with pixel values equal to 1(white) for the foreground and 0 (black) for the foreground (Retorna uma imagem com valores de pixel igual a 1( branco) para o foreground e 0 (preto) para o foreground).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
segmentation
, segmentation_logit
, segmentation_logitGUI
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). require(ExpImage) im=read_image(example_image(3),plot=TRUE) mask=pick_segmentation(im) im2=extract_pixels(im,mask,plot = TRUE,valueTarget = 1) crop_image(im2,segmentation = mask,plot=TRUE) im3=extract_pixels(im,mask,plot = TRUE,valueTarget = 0) ## End(Not run)
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). require(ExpImage) im=read_image(example_image(3),plot=TRUE) mask=pick_segmentation(im) im2=extract_pixels(im,mask,plot = TRUE,valueTarget = 1) crop_image(im2,segmentation = mask,plot=TRUE) im3=extract_pixels(im,mask,plot = TRUE,valueTarget = 0) ## End(Not run)
Esta funcao permite plotar a imagem (This function allows you to view the image).
plot_image(im,r=1,g=2,b=3,band=NULL,col=0,normalize=FALSE,axis=FALSE, lim=NULL,title=NULL,flip=TRUE,flop=FALSE,rotate=0,norm=1, rasterRGB=FALSE)
plot_image(im,r=1,g=2,b=3,band=NULL,col=0,normalize=FALSE,axis=FALSE, lim=NULL,title=NULL,flip=TRUE,flop=FALSE,rotate=0,norm=1, rasterRGB=FALSE)
im |
Este objeto deve conter uma imagem no formato do EBImage ou na forma de uma matriz, no caso de imagem em escala de cinza (This object must contain an image in EBImage format). |
r |
Indica o canal correspondente a cor vermelha para imagens com extensao '.tif'. O defaut e 1. (Indicates the channel corresponding to red color for images with the extension '.tif'. The default is 1.) |
g |
Indica o canal correspondente a cor verde para imagens com extensao '.tif'. O defaut e 2. (Indicates the channel corresponding to green color for images with the extension '.tif'. The default is 2.) |
b |
Indica o canal correspondente a cor azul para imagens com extensao '.tif'. O defaut e 3. (Indicates the channel corresponding to blue color for images with the extension '.tif'. The default is 3.) |
band |
Indica a banda que se deseja plotar. Neste caso nao se precisa considerar as bandas de R, G e B simultaneamente. |
col |
Pode ser um valor numerico variando entre 0 e 8 ou uma paleta de cores obtida pela funcao 'colorRampPalette'. Se for 0 sera considerada a representacao da imagem monocromatica em escala de cinza. Valores entre 1 e 6 indicam outras paletas de cores para a representacao. (It can be a numerical value ranging from 0 to 6 or a color palette 'obtained by the 'colorRampPalette' function. If it is 0, the representation of the monochromatic image in gray scale will be considered. Values between 1 and 6 indicate other color palettes for the representation. ) |
normalize |
Se for TRUE a imagem sera normalizada para que os valores dos pixels variem entre 0 e 1 (If TRUE, the image will be normalized so that the pixel values vary between 0 and 1). |
axis |
Se for FALSE nao aparecera os eixos no grafico (If it is FALSE, the axes will not appear in the graph) |
lim |
Vetor contendo quatro valores correspondentes aos limites que apareceral nos eixos do grafico (Vector containing four values corresponding to the limits that will appear on the graph axes) |
title |
Titulo do grafico (chart title). |
flip |
Inverter a imagem (invert the image) |
flop |
Inverter a imagem (invert the image) |
rotate |
Valor numerico com o angulo para a rotacao da imagem (Numeric value with angle for image rotation) |
norm |
Numero pelo qual os valores dos pixels deverao ser divididos para variar entre 0 e 1 (Number by which pixel values should be divided to vary between 0 and 1). |
rasterRGB |
Se a imagem for em TIF com uma unica banda deve ser FALSE. Se houver 3 ou mais bandas deve ser TRUE (If the image is in TIF with a single band it must be FALSE. If there are 3 or more bands it must be TRUE). |
Apresenta a imagem contida no objeto im.
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
#library(ExpImage) #library(EBImage) #Carregar imagem de exemplo im=read_image(example_image(2),plot=FALSE) im=resize_image(im,w = 300,plot = FALSE) plot_image(im) #Representado imagens em escalas de cinza im2 = gray_scale(im,"r") plot_image(im2) ## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). #Utilizando uma paleta de cores para a melhor visualizacao plot_image(im2,col=2) plot_image(im2,col=3,axis=TRUE) ######################################################### ######################################################### #' #' ######################################################## ###' Abrindo o endereco de bandas de imagens de satelite ######################################################## end1=example_image(14) #Banda de azul end2=example_image(15) #Banda de verde end3=example_image(16) #Banda de vermelho end4=example_image(17) #Banda de IR end5=example_image(18) #Banda de SWIR ######################################################## ###' Abrindo bandas de imagens de satelite ######################################################## B1=read_image(end1,plot=TRUE) B2=read_image(end2,plot=TRUE) B3=read_image(end3,plot=TRUE) B4=read_image(end4,plot=TRUE) B5=read_image(end5,plot=TRUE) ######################################################## ###' Juntando as bandas em uma imagem ######################################################## im=join_bands(imgs = list(B1,B2,B3,B4,B5)) tif_info(im) plot_image(im,r=3,g=2,b=1,rasterRGB=TRUE) ## End(Not run)
#library(ExpImage) #library(EBImage) #Carregar imagem de exemplo im=read_image(example_image(2),plot=FALSE) im=resize_image(im,w = 300,plot = FALSE) plot_image(im) #Representado imagens em escalas de cinza im2 = gray_scale(im,"r") plot_image(im2) ## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). #Utilizando uma paleta de cores para a melhor visualizacao plot_image(im2,col=2) plot_image(im2,col=3,axis=TRUE) ######################################################### ######################################################### #' #' ######################################################## ###' Abrindo o endereco de bandas de imagens de satelite ######################################################## end1=example_image(14) #Banda de azul end2=example_image(15) #Banda de verde end3=example_image(16) #Banda de vermelho end4=example_image(17) #Banda de IR end5=example_image(18) #Banda de SWIR ######################################################## ###' Abrindo bandas de imagens de satelite ######################################################## B1=read_image(end1,plot=TRUE) B2=read_image(end2,plot=TRUE) B3=read_image(end3,plot=TRUE) B4=read_image(end4,plot=TRUE) B5=read_image(end5,plot=TRUE) ######################################################## ###' Juntando as bandas em uma imagem ######################################################## im=join_bands(imgs = list(B1,B2,B3,B4,B5)) tif_info(im) plot_image(im,r=3,g=2,b=1,rasterRGB=TRUE) ## End(Not run)
Function to plot multiple indices (funcao para plotar varios indices).
plot_indexes(im,indexes=c("r","g","b","rg","rb","gb","rgb", "r/rgb","g/rgb","b/rgb", "BI","BIM","SCI","GLI","HI", "NGRDI","SI","VARI","HUE","MGVRI","GLI", "MPRI","RGVBI","ExG","VEG"), NumberCores="all")
plot_indexes(im,indexes=c("r","g","b","rg","rb","gb","rgb", "r/rgb","g/rgb","b/rgb", "BI","BIM","SCI","GLI","HI", "NGRDI","SI","VARI","HUE","MGVRI","GLI", "MPRI","RGVBI","ExG","VEG"), NumberCores="all")
im |
: |
indexes |
:indices que se deseja testar (indexes you want to test): |
NumberCores |
Indica o numero de cores a serem utilizados no processamento. Pode ser um valor numerico. Se for 'ALL' sera considerado o numero maximo de cores do PC. (Indicates the number of colors to be used in processing. It can be a numerical value. If it is 'ALL' it will be considered the maximum number of PC cores). |
Apresenta uma imagem para selecao do indice mais apropriado para a segmentacao (It presents an image for selection of the most appropriate index for segmentation).
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). #Carregar imagem de exemplo im=read_image(example_image(2),plot=TRUE) plot_indexes(im) ## End(Not run)
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). #Carregar imagem de exemplo im=read_image(example_image(2),plot=TRUE) plot_indexes(im) ## End(Not run)
Esta funcao possibilita sobrepor informacoes sobre os objetos da imagem
plot_meansures(img,coordx=NULL,coordy=NULL,text=NULL,measurements=NULL, variable=NULL,pch=NULL,col="red",cex=1,pathSave="none",plot=FALSE)
plot_meansures(img,coordx=NULL,coordy=NULL,text=NULL,measurements=NULL, variable=NULL,pch=NULL,col="red",cex=1,pathSave="none",plot=FALSE)
img |
:Este objeto deve conter uma imagem no formato do EBImage. |
coordx |
: deve ser um vetor com as coordenadas do eixo x dos objetos. |
coordy |
: deve ser um vetor com as coordenadas do eixo y dos objetos. |
text |
: deve ser um vetor com as informacoes (numeros ou texto) a serem sobrepostos em cada objeto. |
measurements |
: Objeto obtido pela funcao 'measure_image'. |
variable |
: Pode ser um nome associado a uma das variaveis estimadas pela funcao 'measure_image':
|
pch |
: Podem ser valores numericos indicando diferentes simbolos. |
col |
: E a cor do texto que pretende-se colocar sobre a imagem |
cex |
: E o tamanho do texto que pretende-se colocar sobre a imagem |
pathSave |
: Se tiver preenchido por "none" nao sera salva a imagem resultante (default). Alternativamente, basta colocar o nome de um objeto (com extensao .jpg) que a imagem sera salva na pasta de trabalho. |
plot |
:Indica se sera apresentada (TRUE) ou nao (FALSE) (default) a imagem segmentada. |
Retorna uma imagem com um texto sobreposto a cada objeto na imagem
#################################################################################### #Estimar a area foliar usando um objeto de referencia. ################################################################################### #ativar pacote #library(EBImage) #library(ExpImage) ####################################################### #Abrir imagem das folhas im=read_image(example_image(3)) plot_image(im) #Abrir paleta de cores do fundo fundo=read_image(example_image(4)) plot_image(fundo) #Abrir paleta de cores das folhas folhas=read_image(example_image(5)) plot_image(folhas) #Abrir paleta de cores referencia ref=read_image(example_image(6)) #Ver a imagem plot_image(ref) ################################################################# #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) #Identificar area de cada folha medidas=measure_image(folhas.seg,noise = 1000) #numero de objetos e medias medidas #Plotar resultados das areas em pixel e salvar em imagem jpg #plot_meansures(im,medidas$measures[,1],coordy=medidas$measures[,2], #text=round(medidas$measures[,3],1),col="blue",cex = 0.9, #pathSave ="teste.jpg" ,plot=TRUE) ############################################################################## ###################################################################### #Convertendo a area dos objetos para cm2 #Identificando a area do objeto de referencia (maior area) # A area conhecida do objeto de referencia tem 8.5 x 5.5 cm e #sua area segmentada esta no objeto ref.seg medidasref=measure_image(img = folhas.seg,noise =1000,id=ref.seg,length =8.5,width =5.5 ) #numero de objetos e medias medidasref #Apresentando a area foliar de sobre cada uma das folhas plot_meansures(im,medidasref$measures[,1],coordy=medidasref$measures[,2], text=round(medidasref$measures[,3],2),cex = 0.9,col="blue")
#################################################################################### #Estimar a area foliar usando um objeto de referencia. ################################################################################### #ativar pacote #library(EBImage) #library(ExpImage) ####################################################### #Abrir imagem das folhas im=read_image(example_image(3)) plot_image(im) #Abrir paleta de cores do fundo fundo=read_image(example_image(4)) plot_image(fundo) #Abrir paleta de cores das folhas folhas=read_image(example_image(5)) plot_image(folhas) #Abrir paleta de cores referencia ref=read_image(example_image(6)) #Ver a imagem plot_image(ref) ################################################################# #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) #Identificar area de cada folha medidas=measure_image(folhas.seg,noise = 1000) #numero de objetos e medias medidas #Plotar resultados das areas em pixel e salvar em imagem jpg #plot_meansures(im,medidas$measures[,1],coordy=medidas$measures[,2], #text=round(medidas$measures[,3],1),col="blue",cex = 0.9, #pathSave ="teste.jpg" ,plot=TRUE) ############################################################################## ###################################################################### #Convertendo a area dos objetos para cm2 #Identificando a area do objeto de referencia (maior area) # A area conhecida do objeto de referencia tem 8.5 x 5.5 cm e #sua area segmentada esta no objeto ref.seg medidasref=measure_image(img = folhas.seg,noise =1000,id=ref.seg,length =8.5,width =5.5 ) #numero de objetos e medias medidasref #Apresentando a area foliar de sobre cada uma das folhas plot_meansures(im,medidasref$measures[,1],coordy=medidasref$measures[,2], text=round(medidasref$measures[,3],2),cex = 0.9,col="blue")
Esta funcao permite a predicao para a segmentacao considerando o modelo ajustado pela funcao 'segmentation_logit' (This function allows the prediction for segmentation considering the model adjusted by the 'segmentation_logit' function).
predict_logit(im,modelo,fillHull=TRUE, TargetPixels="all", plot=TRUE)
predict_logit(im,modelo,fillHull=TRUE, TargetPixels="all", plot=TRUE)
im |
Este objeto deve conter uma imagem no formato do EBImage (This object must contain an image in EBImage format). |
modelo |
modelo exportado pela funcao 'segmentation_logit' (model exported by the 'segmentation_logit' function ). |
fillHull |
:Este argumento deve receber a palavra TRUE quando se pretende desconsiderar valores vazios dentro do foreground, caso contrario FALSE. |
TargetPixels |
:Quando se pretende segmentar todos os pixeis da imagem deve considerar a palavra "all" (Default). Se a segmentacao deva ser feita apenas para um conjunto de pixels, estes devem ser apresentados em uma matriz contendo o valor 1 para os pixels de interesse e 0 para os demais. |
plot |
:Indica se sera apresentada (TRUE) ou nao (FALSE) (default) a imagem segmentada. |
Apresenta a imagem contida no objeto im.
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
#Abrir imagem das folhas im=read_image(example_image(3),plot=TRUE) #Abrir paleta de cores do fundo fundo=read_image(example_image(4),plot=TRUE) #Abrir paleta de cores das folhas folhas=read_image(example_image(5),plot=TRUE) #Abrir paleta de cores referencia ref=read_image(example_image(6),plot=TRUE) #Gerando modelo logit ################################################################# Modelo=segmentation_logit(im,foreground=folhas, background=list(fundo,ref), return="model",plot=FALSE) summary(Modelo) ################################################################# # Predicao a partir do modelo ajustado im2=predict_logit(im,Modelo,plot=TRUE)
#Abrir imagem das folhas im=read_image(example_image(3),plot=TRUE) #Abrir paleta de cores do fundo fundo=read_image(example_image(4),plot=TRUE) #Abrir paleta de cores das folhas folhas=read_image(example_image(5),plot=TRUE) #Abrir paleta de cores referencia ref=read_image(example_image(6),plot=TRUE) #Gerando modelo logit ################################################################# Modelo=segmentation_logit(im,foreground=folhas, background=list(fundo,ref), return="model",plot=FALSE) summary(Modelo) ################################################################# # Predicao a partir do modelo ajustado im2=predict_logit(im,Modelo,plot=TRUE)
This function classifies pixels in images from a random forest model (Esta funcao classifica pixels em imagens a partir de um modelo de random forest).
predict_RF(im,model,col="rand",plot=TRUE)
predict_RF(im,model,col="rand",plot=TRUE)
im |
: Image that will be segmented (Imagem que sera segmentada). |
model |
: Model adjusted by the "segmentation RF" function (Modelo ajustado pela funcao "segmentation_RF"). |
col |
: Vector with the desired colors in the segmentation. If it's "rand" it will be random colors (Vetor com as cores desejadas na segmentacao. Se for "rand" serao cores aleatorias). |
plot |
: Logical value, if TRUE, the image will be displayed (Valor logico, se for TRUE a imagem sera apresentada). |
Returns the segmented image (Retorna a imagem segmentada).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
segmentation_RF
, segmentation_logit
#Carregando imagens de exemplo im=read_image(example_image(3)) Fundo=read_image(example_image(4)) Folha=read_image(example_image(5)) Ref=read_image(example_image(6)) paleta=list(Fundo=Fundo,Folha=Folha,Referencia=Ref) col=c("black","green","red") #### Criando imagem Image=segmentation_RF(im=im, palette=paleta, return="image", NumMax=1000, col=col, seed=NULL, norma=1, plot=TRUE) #Criando um modelo model=segmentation_RF(im=im, palette=paleta, return="model", NumMax=1000, col=col, seed=NULL, norma=1, plot=FALSE) image=predict_RF(im,model,col="rand",plot=TRUE)
#Carregando imagens de exemplo im=read_image(example_image(3)) Fundo=read_image(example_image(4)) Folha=read_image(example_image(5)) Ref=read_image(example_image(6)) paleta=list(Fundo=Fundo,Folha=Folha,Referencia=Ref) col=c("black","green","red") #### Criando imagem Image=segmentation_RF(im=im, palette=paleta, return="image", NumMax=1000, col=col, seed=NULL, norma=1, plot=TRUE) #Criando um modelo model=segmentation_RF(im=im, palette=paleta, return="model", NumMax=1000, col=col, seed=NULL, norma=1, plot=FALSE) image=predict_RF(im,model,col="rand",plot=TRUE)
This function converts a image in raster format to ExpImage format (Esta funcao converte uma imagem no formato raster para o formato ExpImage)
raster2image(im,Bands=NULL,norma=1)
raster2image(im,Bands=NULL,norma=1)
im |
: Image in a raster format (imagem do formato raster) |
Bands |
: Vector with the values of desired layers (Vetor contendo os numeros correspondentes as camadas desejadas) |
norma |
: Value used as the denominator to have values pixels whith values between 0 and 1 (Valor utilizado como divisor para ter pixels com valores entre 0 e 1 ) |
Returns an raster image in ExpImage format (Retorna um imagem no formato do ExpImage).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
Esta funcao importa uma imagem.
read_image(file,plot=FALSE,norm=1)
read_image(file,plot=FALSE,norm=1)
file |
:Nome do arquivo ou endereco da imagem. |
plot |
:Indica se sera apresentada (TRUE) ou nao (FALSE) (default) a imagem |
norm |
: Indica o valor a partir do qual a matriz sera normatizada para variar entre 0 e 1. Ex.: Se os valores das matrizes variarem entre 0 e 255, a norma seria 255. Se for TRUE o menor valor da matriz sera convertido a zero, o maior para 1 e os demais serao intermediarios. Default = 1. Este parametro e util apenas quando as imagens carregadas sao da extensao tif. |
Importa uma imagem.
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
#Carregar imagem de exemplo End=example_image(1) im=read_image(End,plot=TRUE)
#Carregar imagem de exemplo End=example_image(1) im=read_image(End,plot=TRUE)
Esta funcao permite mudar o tamanho de uma imagem, modificando o peso ocupado na memoria e em sua resolucao.
resize_image(im, w=NULL, h=NULL,percentage=NULL,plot=FALSE)
resize_image(im, w=NULL, h=NULL,percentage=NULL,plot=FALSE)
im |
:Este objeto deve conter uma imagem no formato do EBImage ou na forma de uma matriz. |
w |
: e o numero de linhas que pretende-se obter na imagem de saida. Se houver o valor de h este valor e dispensavel, caso queira manter a proporcionalidade. |
h |
: e o numero de colunas que pretende-se obter na imagem de saida.Se houver o valor de w este valor e dispensavel, caso queira manter a proporcionalidade. |
percentage |
: Desired percentage for image reduction (Porcentagem desejada para a reducao da imagem). |
plot |
:Indica se sera apresentada (TRUE) ou nao (FALSE) (default) a imagem editada |
Retorna uma imagem com o tamanho desejado.
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
#Carregar imagem de exemplo im=read_image(example_image(1)) ##mostrar imagem plot_image(im) ##Diminuir a resolucao (tamanho da imagem) im2=resize_image(im,w=1000,plot=TRUE) im2b=resize_image(im,percentage = 10,plot=TRUE) ##Cortar Imagem im3=crop_image(im2,w =200:750,h=100:650,plot = TRUE) ##Aumentar brilho im4=edit_image(im3,brightness = 0.1) #Aumentar contraste im5=edit_image(im4,contrast = 1.2) #Aumentar gamma im6=edit_image(im5,gamma = 1.1) #Alterando brilho, contraste e gamma imb=edit_image(im3,brightness = 0.1,contrast = 1.7,gamma = 1.2) #Mostrando ambas as imagens simultaneamente. join_image(im3,imb)
#Carregar imagem de exemplo im=read_image(example_image(1)) ##mostrar imagem plot_image(im) ##Diminuir a resolucao (tamanho da imagem) im2=resize_image(im,w=1000,plot=TRUE) im2b=resize_image(im,percentage = 10,plot=TRUE) ##Cortar Imagem im3=crop_image(im2,w =200:750,h=100:650,plot = TRUE) ##Aumentar brilho im4=edit_image(im3,brightness = 0.1) #Aumentar contraste im5=edit_image(im4,contrast = 1.2) #Aumentar gamma im6=edit_image(im5,gamma = 1.1) #Alterando brilho, contraste e gamma imb=edit_image(im3,brightness = 0.1,contrast = 1.7,gamma = 1.2) #Mostrando ambas as imagens simultaneamente. join_image(im3,imb)
Esta funcao permite rotacionar a imagem (This function allows rotate the image).
rotate_image(im,angle=NULL,BGcolor=c(0,0,0),plot=TRUE)
rotate_image(im,angle=NULL,BGcolor=c(0,0,0),plot=TRUE)
im |
Este objeto deve conter uma imagem no formato do EBImage (This object must contain an image in EBImage format ). |
angle |
Valor em graus (Degree value). |
BGcolor |
Vetor com os valores que preencherao o background (Vector with the values that will fill the background). |
plot |
Indica se sera apresentada (TRUE) ou nao (FALSE) (default) a imagem segmentada (Indicates whether the segmented image will be displayed (TRUE) or not (FALSE) (default)). |
Retorna uma imagem rotacionada (Returns a rotated image).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
#library(ExpImage) #Carregar imagem de exemplo im=read_image(example_image(2),plot=TRUE) ##rotacionar a imagem im2=rotate_image(im,angle=80) ## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). im2=rotate_image(im,angle=60,BGcolor=c(1,1,1)) im2=rotate_image(im) ## End(Not run)
#library(ExpImage) #Carregar imagem de exemplo im=read_image(example_image(2),plot=TRUE) ##rotacionar a imagem im2=rotate_image(im,angle=80) ## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). im2=rotate_image(im,angle=60,BGcolor=c(1,1,1)) im2=rotate_image(im) ## End(Not run)
Esta funcao possibilita a segmentacao de imagens por meio de um limiar. Para isso, pode-se escolher um valor arbtrario ou considerar o valor estabelecido pelo metodo otsu.
segmentation(img.band,threshold="otsu",selectHigher=TRUE, fillHull=FALSE,fillBack=FALSE,TargetPixels="all",plot=FALSE,treshold=NULL)
segmentation(img.band,threshold="otsu",selectHigher=TRUE, fillHull=FALSE,fillBack=FALSE,TargetPixels="all",plot=FALSE,treshold=NULL)
img.band |
:Este objeto deve ser obrigatoriamente uma matriz contendo valores entre 0 a 1 correspondente a imagem em escala de cinza). |
threshold |
: E um valor numerico entre 0 e 1 a ser considerado como limiar. O usuario pode tambem usar o argumento "ostu", caso queira considerar o limiar estabelecido por essa metodologia. |
selectHigher |
:Este argumento deve receber as palavras TRUE ou FALSE. TRUE e quando se quer selecionar pixels de valores maiores que o limiar. FALSE quando se deseja selecionar valores menores. |
fillHull |
:Este argumento deve receber a palavra TRUE quando se pretende desconsiderar valores vazios dentro do foreground, caso contrario FALSE. |
fillBack |
:Este argumento deve receber a palavra TRUE quando se pretende desconsiderar valores vazios dentro do background, caso contrario FALSE. |
TargetPixels |
:Quando se pretende segmentar todos os pixeis da imagem deve considerar a palavra "all" (Default). Se a segmentacao deva ser feita apenas para um conjunto de pixels, este deve ser apresentada em uma matriz contendo o valor 1 para os pixeis de interesse e 0 para os demais. |
plot |
:Indica se sera apresentada (TRUE) ou nao (FALSE) (default) a imagem segmentada. |
treshold |
O nome deste argumento foi corrigido para 'threshold'. Agora ele nao tem mais funcionalidade. |
Imagem segmentada
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
############################################################################ #Obtendo o numero de ovos em uma folha ############################################################################ #Carregar imagem de exemplo im=read_image(example_image(2)) ##mostrar imagem plot_image(im) #Selecionando o melhor indice para a segmentacao da folha r=gray_scale(im,method = "r",plot=TRUE) g=gray_scale(im,method = "g",plot=TRUE) b=gray_scale(im,method = "b",plot=TRUE) #O canal azul possibilita maior contraste #O limiar pode ser um valor escolhido aleatoriamente (por exemplo: 0.6) MatrizSegmentada=segmentation(b,threshold = 0.39,fillHull = TRUE, selectHigher = FALSE,plot=TRUE) im2=extract_pixels(im,target =MatrizSegmentada,valueTarget =1, valueSelect = c(0,0,0),plot=TRUE ) #Selecionando o melhor indice para a segmentacao dos ovos r=gray_scale(im2,method = "r",plot=TRUE) g=gray_scale(im2,method = "g",plot=TRUE) b=gray_scale(im2,method = "b",plot=TRUE) #O canal Azul proporciona melhor segmentacao #O limiar pode ser um valor escolhido aleatoriamente (por exemplo: 0.6) MatrizSegmentada2=segmentation(b,threshold = 0.50,fillHull = TRUE, selectHigher = TRUE,plot = TRUE) Medidas=measure_image(MatrizSegmentada2) Medidas$ObjectNumber #Ver a mascara sobre os ovos na foto im3=mask_pixels(im,MatrizSegmentada2==1,plot=TRUE)
############################################################################ #Obtendo o numero de ovos em uma folha ############################################################################ #Carregar imagem de exemplo im=read_image(example_image(2)) ##mostrar imagem plot_image(im) #Selecionando o melhor indice para a segmentacao da folha r=gray_scale(im,method = "r",plot=TRUE) g=gray_scale(im,method = "g",plot=TRUE) b=gray_scale(im,method = "b",plot=TRUE) #O canal azul possibilita maior contraste #O limiar pode ser um valor escolhido aleatoriamente (por exemplo: 0.6) MatrizSegmentada=segmentation(b,threshold = 0.39,fillHull = TRUE, selectHigher = FALSE,plot=TRUE) im2=extract_pixels(im,target =MatrizSegmentada,valueTarget =1, valueSelect = c(0,0,0),plot=TRUE ) #Selecionando o melhor indice para a segmentacao dos ovos r=gray_scale(im2,method = "r",plot=TRUE) g=gray_scale(im2,method = "g",plot=TRUE) b=gray_scale(im2,method = "b",plot=TRUE) #O canal Azul proporciona melhor segmentacao #O limiar pode ser um valor escolhido aleatoriamente (por exemplo: 0.6) MatrizSegmentada2=segmentation(b,threshold = 0.50,fillHull = TRUE, selectHigher = TRUE,plot = TRUE) Medidas=measure_image(MatrizSegmentada2) Medidas$ObjectNumber #Ver a mascara sobre os ovos na foto im3=mask_pixels(im,MatrizSegmentada2==1,plot=TRUE)
Esta funcao possibilita a segmentacao de imagens por meio de do ajuste de um modelo linear generalizado com a funcao logit de ligacao.
segmentation_logit(im,foreground,background,return="image", sample=2000, fillHull=TRUE,TargetPixels="all",plot=TRUE)
segmentation_logit(im,foreground,background,return="image", sample=2000, fillHull=TRUE,TargetPixels="all",plot=TRUE)
im |
:Este objeto deve ser obrigatoriamente uma imagem colorida (RGB) no formato do EBImage). |
foreground |
: Deve ser uma imagem correspondende a paleta de cores do objeto que se pretende segmentar. Caso haja mais de uma paleta de cores, suas reespectivas imagens devem ser colocadas dentro de um objeto do tipo list. Cada paleta de cor desve estar no formato de imagens do EBImage. |
background |
: Deve ser uma imagem correspondende a paleta de cores com os tons do fundo. Caso haja mais de uma paleta de cores, suas reespectivas imagens devem ser colocadas dentro de um objeto do tipo list. Cada paleta de cor desve estar no formato de imagens do EBImage. |
return |
Texto indicando o objeto a ser exportado pela funcao. Para
este argumento podemos considerar: |
sample |
: Deve ser um valor numerico indicando quantos pixels dos imagens do foreground e do background serao utilizados no ajuste do modelo logit. O valor a ser escolhido deve ser inferior ou igual ao numero de pixels contidos nas paletas de cores. |
fillHull |
:Este argumento deve receber a palavra TRUE quando se pretende desconsiderar valores vazios dentro do foreground, caso contrario FALSE. |
TargetPixels |
:Quando se pretende segmentar todos os pixeis da imagem deve considerar a palavra "all" (Default). Se a segmentacao deva ser feita apenas para um conjunto de pixels, estes devem ser apresentados em uma matriz contendo o valor 1 para os pixels de interesse e 0 para os demais. |
plot |
:Indica se sera apresentada (TRUE) ou nao (FALSE) (default) a imagem segmentada. |
Imagem segmentada
Alcinei Mistico Azevedo (Instituto de Ciencias Agrarias da UFMG)
################################################################# #Estimar a area foliar usando um objeto de referencia. ################################################################## #ativar pacote #library(ExpImage) ####################################################### #Abrir imagem das folhas im=read_image(example_image(3)) plot_image(im) #Abrir paleta de cores do fundo fundo=read_image(example_image(4)) plot_image(fundo) #Abrir paleta de cores das folhas folhas=read_image(example_image(5)) plot_image(folhas) #Abrir paleta de cores referencia ref=read_image(example_image(6)) #Ver a imagem plot_image(ref) ################################################################# #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) #Identificar area de cada folha medidas=measure_image(folhas.seg,noise = 1000) #numero de objetos e medias medidas #Plotar resultados das areas em pixel e salvar em imagem jpg plot_meansures(im,medidas$measures[,1],coordy=medidas$measures[,2], text=round(medidas$measures[,3],1),col="blue",cex = 0.9,pathSave ="none" ,plot=TRUE)
################################################################# #Estimar a area foliar usando um objeto de referencia. ################################################################## #ativar pacote #library(ExpImage) ####################################################### #Abrir imagem das folhas im=read_image(example_image(3)) plot_image(im) #Abrir paleta de cores do fundo fundo=read_image(example_image(4)) plot_image(fundo) #Abrir paleta de cores das folhas folhas=read_image(example_image(5)) plot_image(folhas) #Abrir paleta de cores referencia ref=read_image(example_image(6)) #Ver a imagem plot_image(ref) ################################################################# #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) #Identificar area de cada folha medidas=measure_image(folhas.seg,noise = 1000) #numero de objetos e medias medidas #Plotar resultados das areas em pixel e salvar em imagem jpg plot_meansures(im,medidas$measures[,1],coordy=medidas$measures[,2], text=round(medidas$measures[,3],1),col="blue",cex = 0.9,pathSave ="none" ,plot=TRUE)
Esta funcao possibilita a segmentacao de imagens por meio de do ajuste de um modelo linear generalizado com a funcao logit de ligacao.
segmentation_logitGUI(im,return="image",sample=2000, fillHull=FALSE,TargetPixels="all")
segmentation_logitGUI(im,return="image",sample=2000, fillHull=FALSE,TargetPixels="all")
im |
:Este objeto deve ser obrigatoriamente uma imagem colorida (RGB) no formato do EBImage). |
return |
Texto indicando o objeto a ser exportado pela funcao. Para
este argumento podemos considerar: |
sample |
: Deve ser um valor numerico indicando quantos pixels dos imagens do foreground e do background serao utilizados no ajuste do modelo logit. O valor a ser escolhido deve ser inferior ou igual ao numero de pixels contidos nas paletas de cores. |
fillHull |
:Este argumento deve receber a palavra TRUE quando se pretende desconsiderar valores vazios dentro do foreground, caso contrario FALSE. |
TargetPixels |
:Quando se pretende segmentar todos os pixeis da imagem deve considerar a palavra "all" (Default). Se a segmentacao deva ser feita apenas para um conjunto de pixels, estes devem ser apresentados em uma matriz contendo o valor 1 para os pixels de interesse e 0 para os demais. |
Imagem segmentada
Alcinei Mistico Azevedo (Instituto de Ciencias Agrarias da UFMG)
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). im=read_image(example_image(7),plot=TRUE) segmentation_logitGUI(im) ## End(Not run)
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). im=read_image(example_image(7),plot=TRUE) segmentation_logitGUI(im) ## End(Not run)
This function fits a Random Forest model for image segmentation (Esta funcao ajusta um modelo Random Forest para a segmentacao de imagens).
segmentation_RF(im=NULL,palette,return="model",NumMax=1000, col="rand",seed=NULL,norma=1,plot=TRUE)
segmentation_RF(im=NULL,palette,return="model",NumMax=1000, col="rand",seed=NULL,norma=1,plot=TRUE)
im |
:Image that will be segmented (Imagem que sera segmentada). |
palette |
:Object of type dataframe or list. If it is a dataframe, the first column must be the class and the other columns the values of the bands corresponding to each pixel. If it is list, there must be an image in each item corresponding to each of the classes. (Objeto do tipo dataframe ou list. Se for um dataframe a primeira coluna deve ser a classe e as demais colunas os valores das bandas correspondentes a cada pixel. Se for list deve ter uma imagem em cada item correspondente a cada uma das classes). |
return |
: Object indicating what will be returned by the function, if it is "image" the segmented image will be returned, if it is "model" it will be the model adjusted by the Random Forest methodology (Objeto indicando o que sera retornado pela funcao, se for "image" sera retornado a imagem segmentada, se for "model" será o modelo ajustado pela metodologia Random Forest). |
NumMax |
: Maximum number of pixels of each class to be considered when adjusting the Random Forest methodology (Número máximo de pixels de cada classe a serem considerados no ajuste da metodologia Random Forest). |
col |
: Vector with the desired colors in the segmentation. If it's "rand" it will be random colors (Vetor com as cores desejadas na segmentacao. Se for "rand" serao cores aleatorias). |
seed |
is an integer vector, containing the random number generator (RNG) state for random number generation in R (E um vetor com numero inteiros para a geração de valores aleatorios) |
norma |
Number by which pixel values should be divided to vary between 0 and 1 (Numero pelo qual os valores dos pixels deverao ser divididos para variar entre 0 e 1) |
plot |
: Logical value, if TRUE, the image will be displayed (Valor logico, se for TRUE a imagem sera apresentada). |
Returns the segmented image (Retorna a imagem segmentada).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
predict_RF
, segmentation_logit
#Carregando imagens de exemplo end=example_image(13) im=read_image(end,plot=TRUE) seg1=clustering_Kmeans(im,bands = "all",ncluster = 2,col = c("green","red")) seg2=clustering_Kmeans(im,bands = c(1,2,3),ncluster = 3,col = c("green","red","blue")) seg3=clustering_Kmeans(im,bands = c(1,2,3),ncluster = 4,col = "rand") im=read_image(example_image(3)) Fundo=read_image(example_image(4)) Folha=read_image(example_image(5)) Ref=read_image(example_image(6)) paleta=list(Fundo=Fundo,Folha=Folha,Referencia=Ref) col=c("black","green","red") #### Criando imagem Image=segmentation_RF(im=im, palette=paleta, return="image", NumMax=1000, col=col, seed=NULL, norma=1, plot=TRUE) #Criando um modelo model=segmentation_RF(im=im, palette=paleta, return="model", NumMax=1000, col=col, seed=NULL, norma=1, plot=FALSE) image=predict_RF(im,model,col="rand",plot=TRUE) # Outra forma de criar a paleta de cores pallete2=rbind( cbind(Class="Fundo",linearize_image(Fundo)[,-c(1,2)]), cbind(Class="Folha",linearize_image(Folha)[,-c(1,2)]), cbind(Class="Referencia",linearize_image(Ref)[,-c(1,2)])) Image=segmentation_RF(im=im, palette=pallete2, return="image", NumMax=1000, col="rand", seed=NULL, norma=1, plot=TRUE)
#Carregando imagens de exemplo end=example_image(13) im=read_image(end,plot=TRUE) seg1=clustering_Kmeans(im,bands = "all",ncluster = 2,col = c("green","red")) seg2=clustering_Kmeans(im,bands = c(1,2,3),ncluster = 3,col = c("green","red","blue")) seg3=clustering_Kmeans(im,bands = c(1,2,3),ncluster = 4,col = "rand") im=read_image(example_image(3)) Fundo=read_image(example_image(4)) Folha=read_image(example_image(5)) Ref=read_image(example_image(6)) paleta=list(Fundo=Fundo,Folha=Folha,Referencia=Ref) col=c("black","green","red") #### Criando imagem Image=segmentation_RF(im=im, palette=paleta, return="image", NumMax=1000, col=col, seed=NULL, norma=1, plot=TRUE) #Criando um modelo model=segmentation_RF(im=im, palette=paleta, return="model", NumMax=1000, col=col, seed=NULL, norma=1, plot=FALSE) image=predict_RF(im,model,col="rand",plot=TRUE) # Outra forma de criar a paleta de cores pallete2=rbind( cbind(Class="Fundo",linearize_image(Fundo)[,-c(1,2)]), cbind(Class="Folha",linearize_image(Folha)[,-c(1,2)]), cbind(Class="Referencia",linearize_image(Ref)[,-c(1,2)])) Image=segmentation_RF(im=im, palette=pallete2, return="image", NumMax=1000, col="rand", seed=NULL, norma=1, plot=TRUE)
Esta funcao possibilita a segmentacao de imagens por meio de um limiar. Para isso, pode-se escolher um valor arbtrario ou considerar o valor estabelecido pelo metodo otsu.
segmentation_steps(img,indexes=c("b","b"),threshold=c("otsu",0.6), selectHigher=c(TRUE,FALSE),fillHull=c(TRUE,FALSE),fillBack=c(TRUE,FALSE), thresholdFinish="otsu", selectHigherFinish=TRUE, fillHullFinish=TRUE, fillBackFinish=TRUE,plot=FALSE)
segmentation_steps(img,indexes=c("b","b"),threshold=c("otsu",0.6), selectHigher=c(TRUE,FALSE),fillHull=c(TRUE,FALSE),fillBack=c(TRUE,FALSE), thresholdFinish="otsu", selectHigherFinish=TRUE, fillHullFinish=TRUE, fillBackFinish=TRUE,plot=FALSE)
img |
:Este objeto deve ser obrigatoriamente imagem colorida do formato EBImage/ExpImage. |
indexes |
: Deve ser um vetor contendo os indices a serem utilizados em cada etapa
de segmentacao. As opcoes de indices sao: |
threshold |
: E um vetor com valores numericos entre 0 e 1 a ser considerado como limiar. O usuario pode tambem usar o argumento "ostu", caso queira considerar o limiar estabelecido por essa metodologia. |
selectHigher |
:Este argumento deve se um vetor com as palavras TRUE ou FALSE. TRUE e quando se quer selecionar pixels de valores maiores que o limiar. FALSE quando se deseja selecionar valores menores. |
fillHull |
:Este argumento deve se um vetor com as palavras TRUE quando se pretende desconsiderar valores vazios dentro do foreground, caso contrario FALSE. |
fillBack |
:Este argumento deve se um vetor com as TRUE quando se pretende desconsiderar valores vazios dentro do background, caso contrario FALSE. |
thresholdFinish |
E um valor entre 0 e 1 a ser considerado como limiar na ultima segmentacao. O usuario pode tambem usar o argumento "ostu", caso queira considerar o limiar estabelecido por essa metodologia. |
selectHigherFinish |
argumento com as palavras TRUE ou FALSE. TRUE (default) e quando se quer selecionar pixels de valores maiores que o limiar na ultima segmentacao. FALSE quando se deseja selecionar valores menores. |
fillHullFinish |
:Este argumento deve ser TRUE quando se pretende desconsiderar valores vazios dentro do foreground na ultima segmentacao, caso contrario FALSE. |
fillBackFinish |
:Este argumento deve ser TRUE quando se pretende desconsiderar valores vazios dentro do background na ultima segmentacao, caso contrario FALSE. |
plot |
:Indica se sera apresentada (TRUE) ou nao (FALSE) (default) a imagem segmentada. |
Imagem segmentada
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
############################################################################ #Obtendo o numero de ovos em uma folha ############################################################################ #Carregar imagem de exemplo im=read_image(example_image(2),plot=TRUE) ## Fazendo a segmentacao na imagem m=segmentation_steps(img=im, indexes=c("b","b"), threshold=c(0.39,0.7), selectHigher=c(FALSE,TRUE), fillHull=c(TRUE,TRUE), fillBack=c(FALSE,FALSE), thresholdFinish = 0.5, selectHigherFinish = TRUE, fillHullFinish = FALSE, plot=TRUE) measure_image(m,splitConnected = FALSE) #Ver a mascara sobre os ovos na foto im3=mask_pixels(im,m==1,plot=TRUE)
############################################################################ #Obtendo o numero de ovos em uma folha ############################################################################ #Carregar imagem de exemplo im=read_image(example_image(2),plot=TRUE) ## Fazendo a segmentacao na imagem m=segmentation_steps(img=im, indexes=c("b","b"), threshold=c(0.39,0.7), selectHigher=c(FALSE,TRUE), fillHull=c(TRUE,TRUE), fillBack=c(FALSE,FALSE), thresholdFinish = 0.5, selectHigherFinish = TRUE, fillHullFinish = FALSE, plot=TRUE) measure_image(m,splitConnected = FALSE) #Ver a mascara sobre os ovos na foto im3=mask_pixels(im,m==1,plot=TRUE)
Esta funcao define como o endereco da pasta onde esta o scritp atual como o diretorio de trabalho. (This function set the directory of current script as working directory).
setwd_script()
setwd_script()
Esta funcao indica o diretorio de trabalho a pasta onde o script esta salvo (This function indicates the working directory as the folder where the script is saved).
Esta funcao exclui as bordas (bordadura) dos objetos/parcelas selecionadas pela funcao shape_file.create.
shape_file.BorderExtract(im, ShapeFile,p.rows=0.5,p.cols=0.5,col1="red",col2="white")
shape_file.BorderExtract(im, ShapeFile,p.rows=0.5,p.cols=0.5,col1="red",col2="white")
im |
:Este objeto deve conter uma imagem no formato do EBImage/ExpImage. |
ShapeFile |
Objeto criado pela funcao shape_file.create |
p.rows |
E a porcentagem de interesse das parcela no sentido das linhas. Deve variar entre 0 e 1. |
p.cols |
E a porcentagem de interesse das parcela no sentido das colunas. Deve variar entre 0 e 1. |
col1 |
Nome da cor das linhas do grid que serao apresentadas. Default e "red". |
col2 |
Nome da cor das linhas da parcela correspondente a area de interesse. Default e "white". |
Obtem as coordenadas na imagem dispensando a area da bordadura (Obtains the coordinates in the image excluding the border area).
shape_file.create
, shape_file.split
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). end=example_image(13) im=read_image(end,plot=TRUE) A=shape_file.create(im,rows=5,cols=5,rectangular=F,Matrix=NULL,SelectSeveral = F) B=shape_file.BorderExtract(im,A,p.rows = .9,p.cols = .9) shape_file.plot(im,ShapeFile = B) shape_file.split(im =im,shapefile = B,path = getwd(),namesFile = "TEST",type = ".jpg") ## End(Not run)
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). end=example_image(13) im=read_image(end,plot=TRUE) A=shape_file.create(im,rows=5,cols=5,rectangular=F,Matrix=NULL,SelectSeveral = F) B=shape_file.BorderExtract(im,A,p.rows = .9,p.cols = .9) shape_file.plot(im,ShapeFile = B) shape_file.split(im =im,shapefile = B,path = getwd(),namesFile = "TEST",type = ".jpg") ## End(Not run)
Esta funcao cria um arquivo com as coordenadas dos vertices de cada objeto/parcela de interesse na imagem.
shape_file.create(im, rows=10, cols=6, rectangular=TRUE, colLines="white", ColPlot="red", ColNumber="red", SelectSeveral=FALSE, Matrix=NULL)
shape_file.create(im, rows=10, cols=6, rectangular=TRUE, colLines="white", ColPlot="red", ColNumber="red", SelectSeveral=FALSE, Matrix=NULL)
im |
:Este objeto deve conter uma imagem no formato do EBImage. |
rows |
Numbers of rows (Numero de linhas). |
cols |
Numbers of columns (Numero de colunas). |
rectangular |
Valor logico. Se for TRUE sera feita uma correcao para as parcelas ficarem retangulares |
colLines |
Nome da cor que as linhas tracadas serao apresentadas. Default e "white". |
ColPlot |
Nome da cor que as linhas do grid a serem apresentadas. Default e "red". |
ColNumber |
Nome da cor que de cada retangulo a serem apresentadas. Default e "red". |
SelectSeveral |
Valor logico indicando se deseja-se desenhar mais de um grid. Default e FALSE. |
Matrix |
Objeto com os grids criados anteriormente, caso exista. Default e NULL. |
Apresenta as coordenadas delimitando as areas de interesse (It presents the coordinates delineating the areas of interest).
shape_file.BorderExtract
, shape_file.split
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). end=example_image(13) im=read_image(end,plot=TRUE) A=shape_file.create(im,rows=5,cols=5,rectangular=F,Matrix=NULL,SelectSeveral = F) B=shape_file.BorderExtract(im,A,p.rows = .9,p.cols = .9) shape_file.plot(im,ShapeFile = B) shape_file.split(im =im,shapefile = B,path = getwd(),namesFile = "TEST",type = ".jpg") ## End(Not run)
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). end=example_image(13) im=read_image(end,plot=TRUE) A=shape_file.create(im,rows=5,cols=5,rectangular=F,Matrix=NULL,SelectSeveral = F) B=shape_file.BorderExtract(im,A,p.rows = .9,p.cols = .9) shape_file.plot(im,ShapeFile = B) shape_file.split(im =im,shapefile = B,path = getwd(),namesFile = "TEST",type = ".jpg") ## End(Not run)
Esta funcao desenha as linhas dos objetos/parcelas selecionadas pela funcao shape_file.create.
shape_file.plot(im,ShapeFile,colorLines="red",colorNames="red")
shape_file.plot(im,ShapeFile,colorLines="red",colorNames="red")
im |
:Este objeto deve conter uma imagem no formato do EBImage/ExpImage. |
ShapeFile |
Objeto criado pela funcao shape_file.create |
colorLines |
Nome da cor das linhas do grid que serao apresentadas. Default e "red". |
colorNames |
Nome da cor das nomes plotados sobre cada grid. Default e "red". |
Apresenta a imagem com a sobreposicao das linhas referentes ao shapefile (It presents the image with the overlay of the lines corresponding to the shapefile).
shape_file.create
, shape_file.split
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). end=example_image(13) im=read_image(end,plot=TRUE) A=shape_file.create(im,rows=5,cols=5,rectangular=F,Matrix=NULL,SelectSeveral = F) B=shape_file.BorderExtract(im,A,p.rows = .9,p.cols = .9) shape_file.plot(im,ShapeFile = B) shape_file.split(im =im,shapefile = B,path = getwd(),namesFile = "TEST",type = ".jpg") ## End(Not run)
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). end=example_image(13) im=read_image(end,plot=TRUE) A=shape_file.create(im,rows=5,cols=5,rectangular=F,Matrix=NULL,SelectSeveral = F) B=shape_file.BorderExtract(im,A,p.rows = .9,p.cols = .9) shape_file.plot(im,ShapeFile = B) shape_file.split(im =im,shapefile = B,path = getwd(),namesFile = "TEST",type = ".jpg") ## End(Not run)
Esta funcao divide a imagem em objetos/parcelas a partir do shapefile criado pela funcao shape_file.create. Dessa forma e criada uma imagem para cada objeto.
shape_file.split(im,shapefile,namesFile="test",path=getwd(),type="jpg")
shape_file.split(im,shapefile,namesFile="test",path=getwd(),type="jpg")
im |
:Este objeto deve conter uma imagem no formato do EBImage/ExpImage. |
shapefile |
Objeto criado pela funcao shape_file.create |
namesFile |
Nome do arquivo a ser salvo. |
path |
Endereco da pasta onde as imagens seram salvas. |
type |
Extensao da imagem a ser salva.EX: jpg, png, tiff. |
Divide a imagem em varias outras considerando o shapefile (It divides the image into several others considering the shapefile).
shape_file.create
, shape_file.split
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). end=example_image(13) im=read_image(end,plot=TRUE) A=shape_file.create(im,rows=5,cols=5,rectangular=F,Matrix=NULL,SelectSeveral = F) B=shape_file.BorderExtract(im,A,p.rows = .9,p.cols = .9) shape_file.plot(im,ShapeFile = B) shape_file.split(im =im,shapefile = B,path = getwd(),namesFile = "TEST",type = ".jpg") ## End(Not run)
## Not run: # Not run: Depende da interacao com uma interface grafica #(It depends on interaction with a graphical interface). end=example_image(13) im=read_image(end,plot=TRUE) A=shape_file.create(im,rows=5,cols=5,rectangular=F,Matrix=NULL,SelectSeveral = F) B=shape_file.BorderExtract(im,A,p.rows = .9,p.cols = .9) shape_file.plot(im,ShapeFile = B) shape_file.split(im =im,shapefile = B,path = getwd(),namesFile = "TEST",type = ".jpg") ## End(Not run)
Esta funcao permite fazer a skeletonizacao em imagens.
skeletonize_image(x,plot=FALSE)
skeletonize_image(x,plot=FALSE)
x |
:Este objeto deve conter uma imagem em uma matriz binaria. |
plot |
:Se forigual a TRUE a imagem sera plotada. #'@author Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG) |
Retorna uma imagem com os objetos skeletonizados.
im=read_image(example_image(10),plot=TRUE) im2=segmentation([email protected][,,1],plot = TRUE) T1=skeletonize_image(im2,plot = TRUE) T2=thinning_image(im2,plot = TRUE)
im=read_image(example_image(10),plot=TRUE) im2=segmentation(im@.Data[,,1],plot = TRUE) T1=skeletonize_image(im2,plot = TRUE) T2=thinning_image(im2,plot = TRUE)
Esta funcao permite dividir a imagem e obter medidas dos objetos
split_image(im,Seg,noise=0,CutImage=TRUE,lim=10,tolerance=1,ext=1, splitConnected=FALSE,colorBack=c(0,0,0) ,saveImage=TRUE, plot=TRUE,col="red",cex=1,fileName="test.jpg")
split_image(im,Seg,noise=0,CutImage=TRUE,lim=10,tolerance=1,ext=1, splitConnected=FALSE,colorBack=c(0,0,0) ,saveImage=TRUE, plot=TRUE,col="red",cex=1,fileName="test.jpg")
im |
Este objeto deve conter uma imagem no formato do EBImage. |
Seg |
Este objeto deve ser obrigatoriamente uma matriz binaria, contendo os valores 0 (pixels do background) ou 1 (pixels do foreground)). |
noise |
E o numero de pixeis a partir do qual a funcao nao considerara como ruido. |
CutImage |
Se TRUE a imagem ao ser dividida ser cortada, englobando apenas o objeto de interesse |
lim |
Indica numero de pixels que sera acrescentada nas bordas da imagem cortada |
tolerance |
The minimum height of the object in the units of image intensity between its highest point (seed) and the point where it contacts another object (checked for every contact pixel). If the height is smaller than the tolerance, the object will be combined with one of its neighbors, which is the highest. Tolerance should be chosen according to the range of x. Default value is 1, which is a reasonable value if x comes from distmap. |
ext |
Radius of the neighborhood in pixels for the detection of neighboring objects. Higher value smoothes out small objects. |
splitConnected |
:Variavel do tipo logico. Se TRUE objetos encostados serao considerados diferentes. |
colorBack |
Deve ser um vetor com tres valores variando entre 0 a 1. Estes valores indicam reespectivamente os valores de r, g e b que substituirao os pixels indesejados nas imagens divididas. |
saveImage |
Se for TRUE serao salvas as imagens dividas. |
plot |
Indica se sera apresentada (TRUE) ou nao (FALSE) (default) a imagem segmentada |
col |
Indica a cor do numero sobreposto sobre a imagem segmentada |
cex |
Indica o tamanho do numero sobrepsosto sobre a imagem segmentada |
fileName |
endereco e/ou nome do arquivo a ser salvo com extensao .jpg |
Retorna a medida em pixels dos objetos contidos na imagem e varias fotos havendo em cada uma um objeto.
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
#remove(list=ls()) #require(ExpImage) im=read_image(example_image(3)) ##mostrar imagem plot(im) g=gray_scale(im,"g",plot=TRUE) Seg=segmentation(img.band = g,threshold = "otsu",selectHigher = FALSE, fillHull = TRUE,plot = TRUE) split_image(im=im,Seg=Seg,noise = 200,CutImage = FALSE,tolerance = 1, saveImage = FALSE,plot = TRUE,col="blue",cex=2)
#remove(list=ls()) #require(ExpImage) im=read_image(example_image(3)) ##mostrar imagem plot(im) g=gray_scale(im,"g",plot=TRUE) Seg=segmentation(img.band = g,threshold = "otsu",selectHigher = FALSE, fillHull = TRUE,plot = TRUE) split_image(im=im,Seg=Seg,noise = 200,CutImage = FALSE,tolerance = 1, saveImage = FALSE,plot = TRUE,col="blue",cex=2)
Transforms the image square by placing borders at the edges (Transforma a imagem quadrada colocando bordas nas margens).
square_image(im,r=1,g=1,b=1,plot=FALSE)
square_image(im,r=1,g=1,b=1,plot=FALSE)
im |
:Image in ExpImage format (Imagem no formato do ExpImage). |
r |
:Value from 0 to 1 corresponding to the Red band (Valor de 0 a 1 correspondente a banda de Vermelho). |
g |
:Value from 0 to 1 corresponding to the Green band (Valor de 0 a 1 correspondente a banda de Verde). |
b |
:Value from 0 to 1 corresponding to the Blue band (Valor de 0 a 1 correspondente a banda de Azul). |
plot |
:TRUE if you want to see the image resized (TRUE se desejar ver a imagem redimensionada). |
Returns the resolution in DPI of an image. (Retorna a resolução em uma imagem).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
im=read_image(example_image(10),plot=TRUE) square_image(im,r=0,g=0,b=1,plot=TRUE)
im=read_image(example_image(10),plot=TRUE) square_image(im,r=0,g=0,b=1,plot=TRUE)
Summarize the colors present in the segmented area of an image (Sumarizar as cores presentes na area segmentada de uma imagem).
summary_color(im, segmentation, return=c("image","summary","histogram1","histogram2","histogram3"))
summary_color(im, segmentation, return=c("image","summary","histogram1","histogram2","histogram3"))
im |
:This object must contain an image in EBImage format (Este objeto deve conter uma imagem no formato do EBImage). |
segmentation |
Binary matrix obtained of a segmentation(matrix binaria obtida por uma segmentacao). |
return |
: Indicates the result you want to obtain from the segmented area in the image ("image","summary","histogram1","histogram2","histogram3") (Indica o resultado que se deseja obter a partir da area segmentada na imagem). |
Returns an image with the colors present in the segmented area, measures that summarize these colors or histograms (Retorna uma imagem com as cores presentes na área segmentada, medidas que resumem essas cores ou histogramas).
segmentation , histogram_image
im=read_image(example_image(3),plot=TRUE) r=gray_scale(im,method = "r") seg=segmentation(img.band = r,threshold = 0.3,selectHigher = FALSE,fillHull = FALSE,plot = TRUE) summary_color(im,seg,return = "image") summary_color(im,seg,return = "summary") summary_color(im,seg,return = "histogram1") summary_color(im,seg,return = "histogram2") summary_color(im,seg,return = "histogram3")
im=read_image(example_image(3),plot=TRUE) r=gray_scale(im,method = "r") seg=segmentation(img.band = r,threshold = 0.3,selectHigher = FALSE,fillHull = FALSE,plot = TRUE) summary_color(im,seg,return = "image") summary_color(im,seg,return = "summary") summary_color(im,seg,return = "histogram1") summary_color(im,seg,return = "histogram2") summary_color(im,seg,return = "histogram3")
Esta funcao permite fazer o thinning em imagens.
thinning_image(x,plot=FALSE)
thinning_image(x,plot=FALSE)
x |
:Este objeto deve conter uma imagem em uma matriz binaria. |
plot |
:Se forigual a TRUE a imagem sera plotada. |
Retorna uma imagem com o thinning dos objetos.
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
im=read_image(example_image(10),plot=TRUE) im2=segmentation([email protected][,,1],plot = TRUE) T1=skeletonize_image(im2,plot = TRUE) T2=thinning_image(im2,plot = TRUE)
im=read_image(example_image(10),plot=TRUE) im2=segmentation(im@.Data[,,1],plot = TRUE) T1=skeletonize_image(im2,plot = TRUE) T2=thinning_image(im2,plot = TRUE)
Function to get information from images in tif format (Funcao para obter informacoes das imagens no formato tif).
tif_info(img=NULL,file=NULL)
tif_info(img=NULL,file=NULL)
img |
Este objeto deve conter uma imagem no formato do EBImage ou na forma de uma matriz, no caso de imagem em escala de cinza (This object must contain an image in EBImage format). |
file |
:File name or image address (Nome do arquivo ou endereco da imagem). |
Function to get information from images in tif format (Funcao para obter informacoes das imagens no formato tif).
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
## Not run: # Not run: Depende do upload de imagens do github #(It depends uploading images from github). ######################################################## ###' Abrindo o endereco de bandas de imagens de satelite ######################################################## end1=example_image(14) #Banda de azul ######################################################## ###' Abrindo bandas de imagens de satelite B1=read_image(end1,plot=TRUE) ######################################################## ###' Informacao das bandas de imagens de satelite tif_info(B1) ## End(Not run)
## Not run: # Not run: Depende do upload de imagens do github #(It depends uploading images from github). ######################################################## ###' Abrindo o endereco de bandas de imagens de satelite ######################################################## end1=example_image(14) #Banda de azul ######################################################## ###' Abrindo bandas de imagens de satelite B1=read_image(end1,plot=TRUE) ######################################################## ###' Informacao das bandas de imagens de satelite tif_info(B1) ## End(Not run)
Esta funcao salva uma imagem.A funcao e uma adaptacao do 'writeImage' do pacote 'EBImage'
write_image(x, files, type, quality = 100, bits.per.sample, compression = "none")
write_image(x, files, type, quality = 100, bits.per.sample, compression = "none")
x |
an Image object or an array. |
files |
a character vector of file names or URLs. |
type |
image type (optional). Supported values are: jpeg, png, and tiff. If missing, file format is automatically determined by file name extension. |
quality |
a numeric ranging from 1 to 100 (default) controlling the quality of the JPEG output. |
bits.per.sample |
a numeric scalar specifying the number of bits per sample (only for tiff files). Supported values are 8 and 16. |
compression |
the desired compression algorithm (only for tiff files). For a list of supported values consult the documentation of the writeTIFF function from the tiff package. |
Salva uma imagem.
Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)
## Not run: #Carregar imagem de exemplo im=read_image(example_image(1),plot=TRUE) im2=resize_image(im,w=1000,plot=TRUE) im3=crop_image(im2,w =200:650,h=100:450,plot = TRUE) imb=edit_image(im3,brightness = 0.1,contrast = 1.7,gamma = 1.2) write_image(x = imb,files = "Test.jpg") ## End(Not run)
## Not run: #Carregar imagem de exemplo im=read_image(example_image(1),plot=TRUE) im2=resize_image(im,w=1000,plot=TRUE) im3=crop_image(im2,w =200:650,h=100:450,plot = TRUE) imb=edit_image(im3,brightness = 0.1,contrast = 1.7,gamma = 1.2) write_image(x = imb,files = "Test.jpg") ## End(Not run)