Exemplo: Como editar imagens

Alcinei Mistico Azevedo (ICA-UFMG)

2022-07-05

Introdução

Obrigado por utilizar o pacote ExpImage. Este pacote foi desenvolvido a fim de facilitar o uso da analise de imagens na obtenção de várias informações sobre os objetos que elas contém. Para a utilização do pacote é indispensável a instalação do pacote EBImage. Geralmente, este pacote pode ser instalado ao executar os seguintes comandos:

if (!requireNamespace("BiocManager", quietly = TRUE))

install.packages("BiocManager")

BiocManager::install("EBImage")

Porém se houver problemas na instalação sugerimos que consulte mais opções de instalação no site: https://bioconductor.org/packages/release/bioc/html/EBImage.html

Para instalar o pacote ´ExpImage´ basta utilizar o seguinte comando:

install.packages("ExpImage")

Convidamos a todos os usuários do ExpImage que venha conhecer nossos materiais didáticos sobre este e outros pacotes nos seguintes links:

https://www.youtube.com/channel/UCDGyvLCJnv9RtTY1YMBMVNQ

https://www.expstat.com/

Abrindo as imagens no R

Ativação dos pacotes

Após a instalação dos pacotes é necessário fazer sua ativação

 library(EBImage)
library(ExpImage)

Abrindo as imagens.

Para abrir as imagens pode-se inicialmente indicar a pasta de trabalho onde a imagem se encontra com a função setwd. E, posteriormente, abrir a imagem com a função read_image.

Neste caso, poderiam ser utilizados comandos como esses:

#Apagar memoria do R

remove(list=ls())

#Indicar a pasta de trabalho

setwd("D:/Backup Pendrive/")

im=read_image("Imagem.jpeg",plot=TRUE)

Neste exemplo utilizaremos uma imagem contida no banco de dados do pacote.

# Obtendo o endereço da imagem de exemplo
end=example_image(1)
im=read_image(end,plot=TRUE)

Em algumas situações, torna-se necessário efetuar a edição das imagens, cortando-as e alterando brilho, contraste, etc.

##Diminuir a resolucao (tamanho da imagem)
im2=resize_image(im,w=1000,plot=TRUE)


##Cortar Imagem
im3=crop_image(im2,w =200:650,h=100:450,plot = TRUE)


##Aumentar brilho
im4=edit_image(im3,brightness = 0.1,plot = TRUE)


#Aumentar contraste
im5=edit_image(im4,contrast = 1.2,plot = TRUE)

#Aumentar gamma
im6=edit_image(im5,gamma  = 1.1,plot = TRUE)



#Alterando brilho, contraste e gamma
imb=edit_image(im3,brightness = 0.1,contrast = 1.7,gamma  = 1.2,plot = TRUE)

imb
#> Image 
#>   colorMode    : Color 
#>   storage.mode : double 
#>   dim          : 451 351 3 
#>   frames.total : 3 
#>   frames.render: 1 
#> 
#> imageData(object)[1:5,1:6,1]
#>            [,1]       [,2]       [,3]       [,4]       [,5]       [,6]
#> [1,] 0.05788945 0.06759319 0.05976965 0.07405696 0.08697029 0.05825707
#> [2,] 0.05156572 0.07878136 0.06814704 0.07335504 0.07773475 0.06285639
#> [3,] 0.05370005 0.06226397 0.07368257 0.06773182 0.06181623 0.06040153
#> [4,] 0.05330297 0.05404464 0.06737950 0.06266630 0.05778102 0.05764809
#> [5,] 0.05330297 0.05379735 0.06111050 0.05433120 0.05157475 0.05552550

Também é possível excluir o background da imagem. Para isso, deve-se primeiro fazer uma segmentação.

#Extração da banda
r=gray_scale(imb,method = "r",plot=TRUE)


#Segmentação
seg=segmentation(r,treshold =0.2,selectHigher = TRUE,fillHull = T,plot = TRUE )


#Remoção do background
imc=extract_pixels(imb,target = seg,valueTarget = 1,valueSelect = c(0,1,0),plot = TRUE)