Exemplo: Como editar imagens

Alcinei Mistico Azevedo (ICA-UFMG)

2024-05-07

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

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

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

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

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


#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.2014256 0.2138706 0.2038370 0.2221603 0.2387216 0.2018971
#> [2,] 0.1933155 0.2282193 0.2145809 0.2212601 0.2268771 0.2077957
#> [3,] 0.1944197 0.2053880 0.2200133 0.2123912 0.2048145 0.2046473
#> [4,] 0.1955435 0.1964947 0.2135965 0.2075519 0.2012866 0.2016541
#> [5,] 0.1955435 0.1961775 0.2055566 0.1968622 0.1933271 0.2016541

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)