mask_pixels: Creates a mask over the background or foreground (Cria uma...

View source: R/mask_pixels.R

mask_pixelsR Documentation

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


ExpImage documentation built on May 29, 2024, 11:10 a.m.