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:
Após a instalação dos pacotes é necessário fazer sua ativação
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.
Vamos verificar qual é o melhor índice para fazer a segmentação.
O Índice ExG é uma ótima opção para a segmentação, pois os bovinos se destacaram bastante em relação ao solo.
Agora podemos fazer a segmentação. Para isso utilizaremos o algorítimo de otsu a fim de selecionar os pixels de menores valores (foregrounds)
max(c(im2@.Data))
#> [1] 1
im3=segmentation(im2,treshold = "otsu",selectHigher = FALSE,plot=TRUE)
#> [1] "The threshold by Otsu method is (O valor do limiar pelo metodo otsu e): 0.5605"
A partir dessa imagem segmentada podemos contar o número de objetos.
#Numero de objetos
im4$ObjectNumber
#> [1] 149
#Tamanho em pixels de cada objeto
im4$measures[,3]
#> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#> 111 6 48 113 4 3 45 194 1 206 1 1 1 193 178 123 152 186 205 148
#> 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
#> 117 373 1 66 1 1 84 1 1 171 2 1 206 187 172 161 2 166 196 152
#> 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
#> 1 140 209 137 171 137 2 208 3 2 198 174 232 139 209 2 1 1 4 4
#> 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
#> 213 157 3 231 2 8 2 3 1 1 234 102 5 196 1 128 1 2 212 184
#> 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
#> 1 6 232 1 1 193 1 211 1 175 186 1 177 1 5 160 1 1 1 4
#> 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
#> 1 191 8 139 181 203 214 1 177 135 180 167 192 167 166 163 1 1 166 187
#> 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
#> 138 3 1 173 206 30 146 193 198 5 8 2 174 162 164 163 2 4 1 152
#> 141 142 143 144 145 146 147 148 149
#> 5 176 144 163 163 170 87 2 1
Como pode-se observar, o número de objetos é muito superior ao número de animais. Isso é uma consequência do ruido. Podemos ver na terceira coluna da tabela anterior o número de pixels de cada objeto. Os menores valores de área são os ruidos. Logo, podemos selecionar um valor a partir do qua não consideraremos ruídos. Ao olhar o conjunto de dados podemos ver que um ruído de 50 pode permitir selecionar apenas os animais.
im4$measures[,1:3]
#> x y area
#> 1 131.081 11.820 111
#> 2 201.814 7.938 113
#> 3 273.619 17.974 194
#> 4 441.083 18.607 206
#> 5 565.819 24.155 193
#> 6 303.815 31.281 178
#> 7 467.073 32.065 123
#> 8 179.316 34.099 152
#> 9 373.016 32.253 186
#> 10 257.073 34.532 205
#> 11 57.426 37.966 148
#> 12 128.017 48.709 117
#> 13 233.799 55.477 373
#> 14 42.364 46.924 66
#> 15 46.131 55.726 84
#> 16 547.029 54.614 171
#> 17 484.117 84.888 206
#> 18 292.567 81.952 187
#> 19 359.209 84.483 172
#> 20 570.255 89.839 161
#> 21 100.084 101.699 166
#> 22 157.352 95.286 196
#> 23 87.987 107.250 152
#> 24 215.114 116.450 140
#> 25 413.684 110.086 209
#> 26 21.511 113.511 137
#> 27 334.649 119.211 171
#> 28 45.774 129.569 137
#> 29 563.317 133.062 208
#> 30 184.697 145.778 198
#> 31 107.661 147.391 174
#> 32 266.004 152.466 232
#> 33 383.302 156.935 139
#> 34 414.785 154.234 209
#> 35 500.432 164.329 213
#> 36 18.433 169.051 157
#> 37 478.589 167.610 231
#> 38 337.744 172.410 234
#> 39 84.814 179.637 102
#> 40 427.128 179.469 196
#> 41 293.125 194.797 128
#> 42 207.717 194.052 212
#> 43 551.386 193.783 184
#> 44 439.078 200.099 232
#> 45 494.482 201.788 193
#> 46 359.242 212.768 211
#> 47 107.086 214.594 175
#> 48 450.667 217.414 186
#> 49 47.791 218.633 177
#> 50 167.994 223.506 160
#> 51 457.105 231.785 191
#> 52 395.504 243.086 139
#> 53 40.436 243.177 181
#> 54 506.517 247.921 203
#> 55 416.607 252.121 214
#> 56 352.667 252.339 177
#> 57 470.874 260.644 135
#> 58 143.039 264.378 180
#> 59 197.527 265.275 167
#> 60 433.781 273.375 192
#> 61 76.653 271.401 167
#> 62 271.000 274.825 166
#> 63 130.730 279.037 163
#> 64 328.536 280.765 166
#> 65 411.647 285.786 187
#> 66 39.181 287.884 138
#> 67 271.029 292.231 173
#> 68 513.752 294.903 206
#> 69 160.589 295.384 146
#> 70 350.223 298.658 193
#> 71 457.722 307.803 198
#> 72 526.678 318.678 174
#> 73 600.290 317.981 162
#> 74 107.543 320.104 164
#> 75 143.117 321.896 163
#> 76 178.868 328.974 152
#> 77 504.807 331.841 176
#> 78 90.007 331.688 144
#> 79 407.025 334.644 163
#> 80 227.344 336.583 163
#> 81 468.800 339.529 170
#> 82 27.667 341.828 87
#Numero de objetos
im4$ObjectNumber
#> [1] 82
Para conferir se este número de animais está correto podemos marcar na imagem as coordenadas de cada animal, considerando só dados das duas primeiras colunas do conjunto de dados.
Como podemos ver, todos os animas foram marcados. Logo, a contagem dos animais está correta.