---
title: "Exemplo: Como editar imagens"
author: "Alcinei Mistico Azevedo (ICA-UFMG)"
date: "`r Sys.Date()`"
output: rmarkdown::html_vignette
fig_caption: yes
vignette: >
  %\VignetteIndexEntry{Exemplo: Como editar imagens}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
```

# 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

```{r}
 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.


```{r}
# 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.

```{r}
##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
```

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

```{r}
#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)
```
