extract_pixels: Function to exclude pixels from the background or foreground...

View source: R/extract_pixels.R

extract_pixelsR Documentation

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

ExpImage documentation built on Jan. 6, 2023, 1:24 a.m.