Package 'ExpImage'

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

Help Index


ExpImage: Experimental Image Analysis Tools

Description

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).

Author(s)

Alcinei Mistico Azevedo <[email protected]>

References

<https://www.youtube.com/playlist?list=PLvth1ZcREyK4wSzwg-IxvrzaNzSLLrXEB>

See Also

crop_image, edit_image, example_image,extract_pixels, gray_scale, join_image, mask_pixels


Transform matrix into image (Transformar matriz em imagem).

Description

This function transform matrix into image (Esta funcao transforma matriz em imagem).

Usage

as_image(img)

Arguments

img

:Object image (Objeto com uma imagem).

Value

Returns an object of type image (Retorna um objeto do tipo imagem).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

info_image , read_image

Examples

m=matrix(sort(runif(10000)),ncol=100,nrow=100)
m
info_image(m)
im=as_image(m)
im
info_image(im)
plot_image(m)

Function to create a color palette for image color calibration (Funcao para criar uma paleta de cores para calibracao das cores de imagens).

Description

This function creates a palette for color calibration of images.(Esta funcao cria uma paleta para calibracao das cores de imagens).

Usage

calibration_palette(n=4,px=500,file=NULL,plot=TRUE)

Arguments

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).

Value

Returns an image with a color palette (Retorna um imagem com uma paleta de cores).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

info_image , read_image

Examples

im=calibration_palette(n=4,px = 500)
im=calibration_palette(n=3,px = 100)

Filter values in an array or image (Filtrar valores em uma matriz ou imagem).

Description

Function to filter values in an array or image (Funcao para filtrar valores em uma matriz ou imagem).

Usage

classify_image(img,filter)

Arguments

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).

Value

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)

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)


Image segmentation by clustering using the Kmeans method (Segmentacao de imagens pela clusterização pelo metodo Kmeans).

Description

This function segments images through clustering by the Kmeans method (Esta funcao segmenta imagens por meio da clusterização pelo metodo Kmeans).

Usage

clustering_Kmeans(im,bands="all",ncluster=2,iter.max=10,
          nstart=1,mask=NULL,col="rand",raster=FALSE,seed=NULL,norma=1,plot=TRUE)

Arguments

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).

Value

Returns the segmented image (Retorna a imagem segmentada).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

segmentation , segmentation_logit

Examples

#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).

Description

Creates a color palette from an image (Criar uma paleta de cores a partir de uma imagem)

Usage

color_pallete(im,number=8,mask=NULL,proportional=FALSE,plot=TRUE)

Arguments

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).

Value

Returns the segmented image (Retorna a imagem segmentada).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

segmentation , calibration_palette

Examples

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)

Function to compare image sizes (Funcao para comparar os tamanhos das imagens).

Description

This function compares the size of images (Esta funcao compara o tamanho das imagens).

Usage

compare_image(imgs=NULL,filesnames=NULL,path = NULL)

Arguments

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).

Value

Return images size (Retorna o tamanho das imagens).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

info_image , read_image

Examples

#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))

Contorno da imagem segmentada (Outline of the segmented image.)

Description

Esta funcao retorna o contorno da imagem segmentada (This function returns the outline of the segmented image).

Usage

contour_image(img,plot=TRUE)

Arguments

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)).

Value

Retorna o contorno de objetos em uma imagem binaria (Returns the outline of objects in a binary image ).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

edit_image , edit_imageGUI

Examples

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)

Convert colors (Converter cores).

Description

This function converts RGB colors to LAB, HEX and XYZ (Esta funcao converte cores RGB para LAB, HEX e XYZ).

Usage

convert_color(color)

Arguments

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)).

Value

Displays colors in RGB for LAB, HEX and XYZ (Apresenta as cores em RGB para LAB, HEX e XYZ)

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

pick_color

Examples

#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)

Description

Create a png image with a transparent background (Criar uma imagem png com o fundo transparente)

Usage

create_png(im,segmentation,file=NULL,crop=FALSE)

Arguments

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).

Value

: returns an image of type '.png' (retorna uma imagem do tipo '.png').

See Also

segmentation , crop_image

Examples

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 corta a imagem retirando as laterais nao desejadas. (This function removes unwanted sides from the images.)

Description

Esta funcao permite cortar a imagem (This function allows you to crop the image).

Usage

crop_image(im,w=NULL,h=NULL,segmentation=NULL,plot=TRUE,
   extent=NULL,verbose=FALSE)

Arguments

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).

Value

Retorna uma imagem cortada, apresentando apenas os pixels selecionados (Returns a cropped image showing only selected pixels).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

edit_image , edit_imageGUI

Examples

#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)

Funcao para acrescentar bordas nos objetos.

Description

Esta funcao permite acrescentar as bordas em objetos nas imagens.

Usage

dilate_image(im,n=1,plot=TRUE)

Arguments

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.

Value

Retorna uma imagem acrescentando-se bordas.

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

edit_image , erode_image

Examples

#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).

Description

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).

Usage

edit_image(im,brightness=0,contrast=1,gamma =1,plot=TRUE)

Arguments

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).

Value

Returns a cropped image with selected pixels(Retorna uma imagem cortada, apresentando apenas os pixels selecionados).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

edit_imageGUI

Examples

#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).

Description

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).

Usage

edit_imageGUI(im,Verbose=TRUE)

Arguments

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).

Value

Returns a edited image (Retorna uma imagem editada).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

edit_image

Examples

## 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)

Funcao para eliminar as bordas dos objetos.

Description

Esta funcao permite excluir as bordas de objetos nas imagens.

Usage

erode_image(im,n=1,plot=TRUE)

Arguments

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.

Value

Retorna uma imagem excluindo-se suas bordas.

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

edit_image , dilate_image

Examples

#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)

Images used as an example (Banco de imagens utilizadas como exemplo).

Description

Show the path of images used in the example file (Apresenta endereco de imagens utilizadas no arquivo de exemplo).

Usage

example_image(ex)

Arguments

ex

:example number (numero do exemplo). The numbers corresponding to each example are(Os numeros correspondentes a cada exemplo sao):

  • 1 = Imagem com sementes de feijao fava ("Feijao.jpg")

  • 2 = Imagem com ovos sobre folha de fumo ("Ovos1.jpg")

  • 3 = Imagem com folhas de acereola ("imagem.jpg")

  • 4 = Imagem com a paleta de cores do background da imagem com folhas de acerola ("fundo.jpg")

  • 5 = Imagem com a paleta de cores das folhas de acerola ("folhas.jpg")

  • 6 = Imagem com a paleta de cores do obejeto de referencia da imagem com folhas de acerola ("Referencia.jpg")

  • 7 = Imagem com folha de tomate com doenca ("FolhaTomate.jpg")

  • 8 = Imagem com paleta de cores das partes sadias da folha de tomateiro ("TomateFolha.jpg")

  • 9 = Imagem com a paleta de cores das partes doentes da folha de tomateiro ("TomateDoenca.jpg")

  • 10 = Imagem de uma plantula ("Plantula.jpg")

  • 11 = Imagem aerea de um rebanho (https://www.istockphoto.com/) ("gado.jpg")

  • 12 = Imagem aerea com plantio de alface ("alface.jpg")

  • 13 = Imagem de sementes de Amburana tratadas com tetrazolio ("Tetrazolio.jpg")

  • 14 = Imagem de satelite - Banda de azul ("satelite1_Blue.tif")

  • 15 = Imagem de satelite - Banda de verde ("satelite2_Green.tif")

  • 16 = Imagem de satelite - Banda de vermelho ("satelite3_Red.tif")

  • 17 = Imagem de satelite - Banda de IR("satelite4_NIR.tif")

  • 18 = Imagem de satelite - Banda de SWIR("satelite5_SWIR.tif")

  • 19 = Imagem de uma placa de petri("PlacaPetri.jpg")

Value

Returns the address of the example images (Retorna o endereco das imagens de exemplo).

Examples

example_image(1)
example_image(2)

Exlude objects in an image by encircling them or using a mask (Excluir objetos em uma imagem circundado-os ou usando uma mascara).

Description

The function excludes objects by encircling them or using a mask. (A funcao exclui objetos circundando-os ou usando uma mascara).

Usage

exclude_object(im,mask=NULL,valueTarget = 0,color=c(r=1,g=1,b=1),plot=TRUE)

Arguments

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).

Value

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).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

segmentation , segmentation_logit, segmentation_logitGUI

Examples

# 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 (Funcao para excluir em uma imagem os pixels correspondente ao background ou foreground)

Description

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).

Usage

extract_pixels(im,target,valueTarget=TRUE,
 valueSelect=c(r=1,g=1,b=1),plot=FALSE)

Arguments

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).

Value

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).

See Also

segmentation_logit

Examples

###########################################################################
#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))

Obter o diretorio onde esta o script. (Get the script directory.)

Description

Esta funcao retorna o edereco da pasta onde esta o scritp atual (This function returns the directory of current script ).

Usage

getwd_script()

Value

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 (Funcao para a obtencao de uma imagem em escala de cinza a partir de uma imagem colorida)

Description

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).

Usage

gray_scale(im,method="r",normalize=TRUE,plot=FALSE)

Arguments

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).:
"r" = extrair a banda de vermelho
"g" = extrair a banda de verde
"b" = extrair a banda de azul
"rg" = considera a media da banda de vermelho e verde: (r+g)/2
"rb" = considera a media da banda de vermelho e azul: (r+b)/2
"gb" = considera a media da banda de verde e azul: (g+b)/2
"rgb" = considera a media das 3 bandas: (r+g+b)/3
"r/g"=r/g
"r/b"=r/b
"g/r"=g/r
"g/b"=g/b
"b/r"=b/r
"b/g"=b/g
"S"=((R+G+B)-3*B)/(R+G+B) "BI"=sqrt((r^2+g^2+b^2)/3)
"BIM"=sqrt((2r+2g+2b)/3)
"SCI"=(r-g)/(r+g)
"GLI"=(2g-r-b)/(2g+r+b)
"HI"=(2r-g-b)/(g-b)
"NGRDI"=(g-r)/(g+r)
"SI"=(r-b)/(r+b)
"VARI"=(g-r)/(g+r-b)
"HUE"=atan(2(b-g-r)/30.5(g-r))
"MGVRI"=(g^2-r^2)/(g^2+r^2)
"GLI"=(2g-r-b)/(2g+r+b)
"MPRI"=(g-r)/(g+r)
"RGVBI"=(g-(br))/(g^2(br))
"ExG"=(2*g-r-b)
"VEG"=(g/(g^0.66667*b^0.66667))

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).

Value

Returns an image with text over each object in the image (Retorna uma imagem com um texto sobreposto a cada objeto na imagem)

See Also

segmentation_logit

Examples

#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)

Create a histogram from image bands (Criar um histrograma a partir das bandas das imagens)

Description

This function allows you to create histograms from the bands of the images (Esta funcao permite criar histogramas a partir das bandas das imagens).

Usage

histogram_image(im,layout=2,lim=1000,BandNames=NULL)

Arguments

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)

Value

Retorna histogramas a partir das bandas (Return histograms from the bands of the images).

See Also

segmentation_logit

Examples

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)

Estimation of vegetation indices (Estimacao de indices de vegetacao).

Description

This function create vegetation indices (Esta funcao cria indices de vegetacao).

Usage

index_bands(index="NDVI",red=NULL,green=NULL,blue=NULL,nir=NULL,
      swir=NULL,normalize=FALSE)

Arguments

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).

Value

Return images size (Retorna o tamanho das imagens).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

gray_scale , read_image

Examples

## 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)

Image information (Informacoes sobre as imagens).

Description

This function returns information about the image (Esta funcao retorna informacoes sobre a imagem).

Usage

info_image(im)

Arguments

im

:Object containing an image (Objeto contendo a uma imagem).

Value

Importa uma imagem.

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

crop_image , edit_image

Examples

#Carregar imagem de exemplo
im=read_image(example_image(1),plot=TRUE)
info_image(im)

Function to compare image sizes (Funcao para comparar os tamanhos das imagens).

Description

This function compares the size of images (Esta funcao compara o tamanho das imagens).

Usage

join_bands(imgs=NULL,filesnames=NULL,path = NULL)

Arguments

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).

Value

Return images size (Retorna o tamanho das imagens).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

info_image , read_image

Examples

###############################################
#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)

Join images(Juntar imagens)

Description

This function joins images by placing them side by side (Esta funcao junta imagens colocando uma do lado da outra).

Usage

join_image(im1=NULL,im2=NULL,im3=NULL,im4=NULL,im5=NULL,bk=c(1,1,1),
ncol=NULL,normalize=FALSE,plot=TRUE)

Arguments

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).

Value

Return multiple images joined (Retorna a uniao de varias imagens).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

crop_image, edit_image

Examples

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)

Image linearization (Linearizacao da imagem).

Description

This function linearize matrix image (Esta funcao lineariza a imagem).

Usage

linearize_image(im,exclude=FALSE)

Arguments

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).

Value

Return images size (Retorna o tamanho das imagens).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

gray_scale , read_image

Examples

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)

Creates a mask over the background or foreground (Cria uma mascara sobre o background ou foreground)

Description

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)

Usage

mask_pixels(im,TargetPixels,TargetPixels2=NULL,col.TargetPixels="rand",
Contour=FALSE, r = 1, g = 2, b = 3, norma = 1,plot=FALSE)

Arguments

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.

Value

Retorna uma imagem com uma mascara sobre os pixels selecionados. @seealso segmentation_logit

Examples

###########################################################################
#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))

Creates a mask over the background or foreground in a raster image (Cria uma mascara sobre o background ou foreground em uma imagem no formato raster)

Description

Function to create a mask above the background or foreground. (Funcao para criar uma mascara sobre o background ou foreground).

Usage

mask_raster(Class,legend,col,main,plot=TRUE)

Arguments

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)

Value

Returns an array (retorna uma matriz).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)


Function to obtain measurements associated with objects in binary images (Funcao para obter medidas associadas aos objetos em imagens binarias).

Description

Esta funcao possibilita a obtencao de medidas associadas aos objetos em imagens binarias.

Usage

measure_image(img,noise=0,id=NULL,length= NULL,width =NULL, splitConnected=FALSE,
tolerance = 1, ext = 1,imOut=FALSE,  plot= TRUE)

Arguments

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)

Value

Returns the coordinates of each object, its area, perimeter, ...(Retorna as cordendas de cada objeto, sua area, perimetro, ...)

See Also

segmentation_logit , segmentation

Examples

############################################################################
#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)

Create a histogram from image bands (Criar um histrograma a partir das bandas das imagens)

Description

This function allows you to create histograms from the bands of the images (Esta funcao permite criar histogramas a partir das bandas das imagens).

Usage

normalize_image(im,inf=0,max=1)

Arguments

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).

Value

Retorna histogramas a partir das bandas (Return histograms from the bands of the images).

See Also

segmentation_logit

Examples

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)

Normatiza a matriz para que os valores variem entre valores pre-estabelecidos.

Description

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".

Usage

Normatiza(DadosEntrada, DadosBase=NULL, LimiteInferior=0, LimiteSuperior=1,Metodo=1)

Arguments

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:

  • 1 = A normatizacao sera feita considerando os dados de cada coluna individualmente.

  • 2 = A normatizacao sera feita considerando os dados de toda a matriz simultaneamente.

Value

Retorna a matriz normatizada.

References

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)

See Also

gray_scale

Examples

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)

Segmentation with the shape of a circle by clicking on the image (Segmentacao com o formato de um circulo clicando em na imagem)

Description

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).

Usage

pick_circle(im,num.points=NULL, col="red")

Arguments

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)

Value

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).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

segmentation , segmentation_logit, segmentation_logitGUI

Examples

## 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)

Selecionar os valores de RGB em pixels (Selecting RGB values in pixels).

Description

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 ).

Usage

pick_color(im, matrix = NULL)

Arguments

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).

Value

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 ).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

segmentation_logit

Examples

## 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 (Contar objetos).

Description

Count objects by clicking on the image (Contar objetos clicando na imagem)

Usage

pick_count(im,cex=1,col="red")

Arguments

im

:Image in ExpImage format (Imagem no formato do ExpImage).

cex

:Font size (Tamanho da fonte)

col

: Font color (Cor da fonte).

Value

Returns the number of objects in an image (Retorna o numero de objetos em uma imagem).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

pick_length , pick_resolution

Examples

## 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).

Description

Measure objects in the image on click (Medir objetos na imagem ao clicar).

Usage

pick_length(im,dpi=NULL,NumPoints=2,col="red")

Arguments

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).

Value

Returns the length of a segment in an image on click (Retorna o comprimento de um segmento em uma imagem ao clicar).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

pick_color , pick_resolution

Examples

## 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)

Obter uma paleta de cores com cliques (Get a color palette with clicks ).

Description

Esta funcao retorna uma paleta de cores com os pixels selecionados. (This function returns a color palette with selected pixels).

Usage

pick_palette(im,palette.previous=NULL,percent.pick=0.01)

Arguments

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).

Value

Esta funcao retorna uma paleta de cores com os pixels selecionados. (This function returns a color palette with selected pixels).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

segmentation_logit, pick_color

Examples

## 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)

Get the dpi resolution on an image (Obter a resolução em dpi em uma imagem).

Description

Obter o numero de pixels por centimetros ou polegadas em uma imagem (Get the number of pixels per centimeters or inches in an image).

Usage

pick_resolution(im,inches=NULL,centimeters=NULL,several=TRUE,col="red")

Arguments

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).

Value

Returns the resolution in DPI of an image. (Retorna a resolução em uma imagem).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

pick_color , pick_length

Examples

## 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)

Segmenting objects manually (Segmentação de objetos manualmente)

Description

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).

Usage

pick_segmentation(im,num.points=NULL, col="red")

Arguments

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)

Value

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).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

segmentation , segmentation_logit, segmentation_logitGUI

Examples

## 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 plota imagens. (This function plot the images.)

Description

Esta funcao permite plotar a imagem (This function allows you to view the image).

Usage

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)

Arguments

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).

Value

Apresenta a imagem contida no objeto im.

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

read_image

Examples

#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)

Description

Function to plot multiple indices (funcao para plotar varios indices).

Usage

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")

Arguments

im

:

indexes

:indices que se deseja testar (indexes you want to test):
"r" = extrair a banda de vermelho
"g" = extrair a banda de verde
"b" = extrair a banda de azul
"rg" = considera a media da banda de vermelho e verde: (r+g)/2
"rb" = considera a media da banda de vermelho e azul: (r+b)/2
"gb" = considera a media da banda de verde e azul: (g+b)/2
"rgb" = considera a media das 3 bandas: (r+g+b)/3
"r/g"=r/g
"r/b"=r/b
"g/r"=g/r
"g/b"=g/b
"b/r"=b/r
"b/g"=b/g
"S"=((R+G+B)-3*B)/(R+G+B) "BI"=sqrt((r^2+g^2+b^2)/3)
"BIM"=sqrt((2r+2g+2b)/3)
"SCI"=(r-g)/(r+g)
"GLI"=(2g-r-b)/(2g+r+b)
"HI"=(2r-g-b)/(g-b)
"NGRDI"=(g-r)/(g+r)
"SI"=(r-b)/(r+b)
"VARI"=(g-r)/(g+r-b)
"HUE"=atan(2(b-g-r)/30.5(g-r))
"MGVRI"=(g^2-r^2)/(g^2+r^2)
"GLI"=(2g-r-b)/(2g+r+b)
"MPRI"=(g-r)/(g+r)
"RGVBI"=(g-(br))/(g^2(br))
"ExG"=(2*g-r-b)
"VEG"=(g/(g^0.66667*b^0.66667))

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).

Value

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).

See Also

gray_scale

Examples

## 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)

Funcao para sobrepor informacoes sobre os objetos da imagem

Description

Esta funcao possibilita sobrepor informacoes sobre os objetos da imagem

Usage

plot_meansures(img,coordx=NULL,coordy=NULL,text=NULL,measurements=NULL,
variable=NULL,pch=NULL,col="red",cex=1,pathSave="none",plot=FALSE)

Arguments

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':

  • "id" = Identificacao dos objetos.

  • "area" = Area dos objetos.

  • "perimeter" = Perimetro dos objetos.

  • "radius.mean" = Raio medio.

  • "radius.sd" = Desvio padrao dos objetos.

  • "radius.min" = Raio minimo dos objetos.

  • "radius.max" = Raio maximo dos objetos.

  • "major.axis" = Maior eixo dos objetos.

  • "eccentricity" = Excentrecidade dos objetos.

  • "theta" = Angulo theta dos objetos.

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.

Value

Retorna uma imagem com um texto sobreposto a cada objeto na imagem

See Also

segmentation_logit

Examples

####################################################################################
#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")

Segmentacao a partir de modelo logit (Segmentation from the logit model)

Description

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).

Usage

predict_logit(im,modelo,fillHull=TRUE,
TargetPixels="all",
plot=TRUE)

Arguments

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.

Value

Apresenta a imagem contida no objeto im.

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

segmentation_logit

Examples

#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)

Pixel classification by Random Forest methodology (Classificacao de pixels pela metodologia Random Forest)

Description

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).

Usage

predict_RF(im,model,col="rand",plot=TRUE)

Arguments

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).

Value

Returns the segmented image (Retorna a imagem segmentada).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

segmentation_RF , segmentation_logit

Examples

#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)

Convert a image in raster format to ExpImage format (Converte uma imagem no formato raster para o formato ExpImage)

Description

This function converts a image in raster format to ExpImage format (Esta funcao converte uma imagem no formato raster para o formato ExpImage)

Usage

raster2image(im,Bands=NULL,norma=1)

Arguments

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 )

Value

Returns an raster image in ExpImage format (Retorna um imagem no formato do ExpImage).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

info_image , read_image


Function to import an image (Funcao para importa uma imagem).

Description

Esta funcao importa uma imagem.

Usage

read_image(file,plot=FALSE,norm=1)

Arguments

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.

Value

Importa uma imagem.

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

crop_image , edit_image

Examples

#Carregar imagem de exemplo
End=example_image(1)
im=read_image(End,plot=TRUE)

Function to change image size (Funcao para mudar o tamanho da imagem)

Description

Esta funcao permite mudar o tamanho de uma imagem, modificando o peso ocupado na memoria e em sua resolucao.

Usage

resize_image(im, w=NULL, h=NULL,percentage=NULL,plot=FALSE)

Arguments

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

Value

Retorna uma imagem com o tamanho desejado.

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

crop_image , edit_image

Examples

#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 rotaciona a imagem. (This function rotates the image .)

Description

Esta funcao permite rotacionar a imagem (This function allows rotate the image).

Usage

rotate_image(im,angle=NULL,BGcolor=c(0,0,0),plot=TRUE)

Arguments

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)).

Value

Retorna uma imagem rotacionada (Returns a rotated image).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

edit_image

Examples

#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)

Image segmentation function (Funcao para a segmentacao de imagens).

Description

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.

Usage

segmentation(img.band,threshold="otsu",selectHigher=TRUE,
  fillHull=FALSE,fillBack=FALSE,TargetPixels="all",plot=FALSE,treshold=NULL)

Arguments

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.

Value

Imagem segmentada

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

segmentation_logit

Examples

############################################################################
#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)

Funcao para a segmentacao de imagens.

Description

Esta funcao possibilita a segmentacao de imagens por meio de do ajuste de um modelo linear generalizado com a funcao logit de ligacao.

Usage

segmentation_logit(im,foreground,background,return="image",
   sample=2000, fillHull=TRUE,TargetPixels="all",plot=TRUE)

Arguments

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:
"image" = sera exportada uma matriz referente a imagem segmentada.
"model" = Sera exportado o modelo para a predicao.

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.

Value

Imagem segmentada

Author(s)

Alcinei Mistico Azevedo (Instituto de Ciencias Agrarias da UFMG)

See Also

glm ,segmentation

Examples

#################################################################
#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)

Funcao para a segmentacao de imagens.

Description

Esta funcao possibilita a segmentacao de imagens por meio de do ajuste de um modelo linear generalizado com a funcao logit de ligacao.

Usage

segmentation_logitGUI(im,return="image",sample=2000,
 fillHull=FALSE,TargetPixels="all")

Arguments

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:
"image" = sera exportada uma matriz referente a imagem segmentada.
"model" = Sera exportado o modelo para a predicao.

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.

Value

Imagem segmentada

Author(s)

Alcinei Mistico Azevedo (Instituto de Ciencias Agrarias da UFMG)

See Also

glm ,segmentation

Examples

## 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)

Image segmentation by Random Forest (Segmentacao de imagens por Random Forest).

Description

This function fits a Random Forest model for image segmentation (Esta funcao ajusta um modelo Random Forest para a segmentacao de imagens).

Usage

segmentation_RF(im=NULL,palette,return="model",NumMax=1000,
                      col="rand",seed=NULL,norma=1,plot=TRUE)

Arguments

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).

Value

Returns the segmented image (Retorna a imagem segmentada).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

predict_RF , segmentation_logit

Examples

#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)

Image segmentation function (Funcao para a segmentacao de imagens).

Description

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.

Usage

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)

Arguments

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:
"r" = extrair a banda de vermelho
"g" = extrair a banda de verde
"b" = extrair a banda de azul
"rg" = considera a media da banda de vermelho e verde: (r+g)/2
"rb" = considera a media da banda de vermelho e azul: (r+b)/2
"gb" = considera a media da banda de verde e azul: (g+b)/2
"rgb" = considera a media das 3 bandas: (r+g+b)/3
"BI"=sqrt((r^2+g^2+b^2)/3)
"BIM"=sqrt((2r+2g+2b)/3)
"SCI"=(r-g)/(r+g)
"GLI"=(2g-r-b)/(2g+r+b)
"HI"=(2r-g-b)/(g-b)
"NGRDI"=(g-r)/(g+r)
"SI"=(r-b)/(r+b)
"VARI"=(g-r)/(g+r-b)
"HUE"=atan(2(b-g-r)/30.5(g-r))
"MGVRI"=(g^2-r^2)/(g^2+r^2)
"GLI"=(2g-r-b)/(2g+r+b)
"MPRI"=(g-r)/(g+r)
"RGVBI"=(g-(br))/(g^2(br))
"ExG"=(2*g-r-b)
"VEG"=(g/(g^0.66667*b^0.66667))

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.

Value

Imagem segmentada

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

segmentation_logit

Examples

############################################################################
#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)

Definir o diretório do script working directory (Set the script Directory as working directory).

Description

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).

Usage

setwd_script()

Value

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).


Excluir as bordas do objetos/parcelas do shapefile

Description

Esta funcao exclui as bordas (bordadura) dos objetos/parcelas selecionadas pela funcao shape_file.create.

Usage

shape_file.BorderExtract(im, ShapeFile,p.rows=0.5,p.cols=0.5,col1="red",col2="white")

Arguments

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".

Value

Obtem as coordenadas na imagem dispensando a area da bordadura (Obtains the coordinates in the image excluding the border area).

See Also

shape_file.create, shape_file.split

Examples

## 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)

Funcao para criar as coordenadas dos objetos/parcelas na imagem

Description

Esta funcao cria um arquivo com as coordenadas dos vertices de cada objeto/parcela de interesse na imagem.

Usage

shape_file.create(im,
                         rows=10,
                         cols=6,
                         rectangular=TRUE,
                         colLines="white",
                         ColPlot="red",
                         ColNumber="red",
                         SelectSeveral=FALSE,
                         Matrix=NULL)

Arguments

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.

Value

Apresenta as coordenadas delimitando as areas de interesse (It presents the coordinates delineating the areas of interest).

See Also

shape_file.BorderExtract, shape_file.split

Examples

## 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)

Plotar os objetos/parcelas do shapefile na imagem

Description

Esta funcao desenha as linhas dos objetos/parcelas selecionadas pela funcao shape_file.create.

Usage

shape_file.plot(im,ShapeFile,colorLines="red",colorNames="red")

Arguments

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".

Value

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).

See Also

shape_file.create, shape_file.split

Examples

## 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)

Divide a imagem em objetos/parcelas de acordo com o shapefile

Description

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.

Usage

shape_file.split(im,shapefile,namesFile="test",path=getwd(),type="jpg")

Arguments

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.

Value

Divide a imagem em varias outras considerando o shapefile (It divides the image into several others considering the shapefile).

See Also

shape_file.create, shape_file.split

Examples

## 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)

Function for skeletonization in images (Esta funcao faz a skeletonizacao em imagens).

Description

Esta funcao permite fazer a skeletonizacao em imagens.

Usage

skeletonize_image(x,plot=FALSE)

Arguments

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)

Value

Retorna uma imagem com os objetos skeletonizados.

See Also

thinning_image

Examples

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)

This function splits the image into several others (Esta funcao divide a imagem em varias outras de acordo com os objetos que contem)

Description

Esta funcao permite dividir a imagem e obter medidas dos objetos

Usage

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")

Arguments

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

Value

Retorna a medida em pixels dos objetos contidos na imagem e varias fotos havendo em cada uma um objeto.

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

segmentation_logit

Examples

#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)

Transform the square image (Transforme a imagem quadrada).

Description

Transforms the image square by placing borders at the edges (Transforma a imagem quadrada colocando bordas nas margens).

Usage

square_image(im,r=1,g=1,b=1,plot=FALSE)

Arguments

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).

Value

Returns the resolution in DPI of an image. (Retorna a resolução em uma imagem).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

pick_color , pick_length

Examples

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).

Description

Summarize the colors present in the segmented area of an image (Sumarizar as cores presentes na area segmentada de uma imagem).

Usage

summary_color(im,
                     segmentation,
                     return=c("image","summary","histogram1","histogram2","histogram3"))

Arguments

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).

Value

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).

See Also

segmentation , histogram_image

Examples

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")

This function makes the thinning images(Esta funcao faz o thinning em imagens).

Description

Esta funcao permite fazer o thinning em imagens.

Usage

thinning_image(x,plot=FALSE)

Arguments

x

:Este objeto deve conter uma imagem em uma matriz binaria.

plot

:Se forigual a TRUE a imagem sera plotada.

Value

Retorna uma imagem com o thinning dos objetos.

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

thinning_image

Examples

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)

Image information in tif format (Informacoes das imagens no formato tif).

Description

Function to get information from images in tif format (Funcao para obter informacoes das imagens no formato tif).

Usage

tif_info(img=NULL,file=NULL)

Arguments

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).

Value

Function to get information from images in tif format (Funcao para obter informacoes das imagens no formato tif).

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

crop_image , edit_image

Examples

## 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)

Function to save an image (Funcao para salvar uma imagem).

Description

Esta funcao salva uma imagem.A funcao e uma adaptacao do 'writeImage' do pacote 'EBImage'

Usage

write_image(x, files, type, quality = 100, bits.per.sample, compression = "none")

Arguments

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.

Value

Salva uma imagem.

Author(s)

Alcinei Mistico Azevedo (Instituto de ciencias agrarias da UFMG)

See Also

read_image

Examples

## 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)