The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
Obrigado por utilizar o pacote ExpImage
. Este pacote foi
desenvolvido a fim de facilitar o uso da análise 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
library(EBImage)
library(ExpImage)
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 imagens contidas no banco de dados do pacote. Vamos utilizar neste exemplo 4 imagens. Uma da imagem a ser avaliada e 3 de paletas de cores a serem utilizadas na segmentação.
#######################################################
#Abrir imagem das folhas
=example_image(3)
end1=read_image(end1,plot=TRUE) im
#Abrir paleta de cores do fundo
=example_image(4)
end2=read_image(end2,plot=TRUE) fundo
#Abrir paleta de cores das folhas
=example_image(5)
end3=read_image(end3,plot=TRUE) folhas
#Abrir paleta de cores referência
=example_image(6)
end4=read_image(end4,plot=TRUE) ref
Para resolver este problema nós vamos fazer duas segmentações. A primeira para obter os pixels referente apenas às folhas. A segunda segmentação será feita para obter os pixels correspondente apenas ao objeto de referência.
#################################################################
#Segmentacao para separar as folhas do restante
=segmentation_logit(im,foreground=folhas,background=list(fundo,ref),sample=2000,fillHull=TRUE,plot=TRUE) folhas.seg
#Segmentacao para separar o objeto de referencia do restante
=segmentation_logit(im,foreground=ref,background=list(fundo,folhas),sample=2000,fillHull=TRUE,plot=TRUE) ref.seg
Agora que temos os pixels referentes apenas às folhas podemos estimar várias medidas com a função measure_image
=measure_image(folhas.seg,noise = 1000) medidas
#numero de objetos e medias
medidas#> $ObjectNumber
#> [1] 29
#>
#> $measures
#> x y area perimeter radius.mean radius.sd radius.min radius.max
#> 1 251.935 88.356 4585 254 39.796 10.674 25.199 62.363
#> 2 64.936 79.766 3570 216 34.812 7.488 25.347 50.583
#> 3 408.175 89.955 4439 234 38.232 8.114 26.535 55.161
#> 4 179.859 86.146 3704 216 34.973 7.633 25.321 50.960
#> 5 332.603 91.847 4574 240 39.031 7.624 29.693 57.364
#> 6 498.520 102.619 5621 262 43.209 8.304 33.336 60.914
#> 7 120.907 85.163 1993 184 27.623 9.029 14.703 45.862
#> 8 430.247 221.532 4518 256 39.989 10.653 26.737 62.426
#> 9 122.456 219.494 3815 217 35.202 6.107 25.352 48.175
#> 10 207.372 227.941 4291 243 38.532 9.147 27.003 57.659
#> 11 508.695 223.640 3448 203 33.485 6.314 24.936 47.652
#> 12 353.056 213.249 2245 160 26.689 4.052 21.120 36.315
#> 13 283.712 222.959 2490 182 28.878 6.959 19.050 43.273
#> 14 511.968 330.877 3493 205 33.836 6.583 25.490 50.371
#> 15 364.445 339.596 4716 254 40.212 9.848 27.814 60.063
#> 16 129.296 341.431 4686 235 38.907 6.599 29.599 55.056
#> 17 434.539 340.207 3117 214 33.028 8.865 21.319 51.383
#> 18 292.677 338.505 2985 202 31.855 7.539 20.896 47.007
#> 19 223.372 354.283 4518 237 38.679 7.370 29.927 55.505
#> 20 498.564 470.491 5197 255 41.329 8.335 29.596 60.887
#> 21 308.946 487.006 4568 236 38.493 6.592 30.469 54.063
#> 22 84.144 480.331 2306 192 29.231 8.959 17.372 47.872
#> 23 226.510 486.956 3146 194 31.882 5.647 24.378 45.427
#> 24 371.566 483.601 2735 206 31.615 9.005 19.381 50.534
#> 25 148.370 483.270 2954 199 31.447 6.572 22.041 45.454
#> 26 434.005 481.215 2398 171 27.862 5.286 20.898 39.483
#> 27 509.508 597.362 4130 227 37.324 8.402 25.701 55.824
#> 28 436.677 608.850 4405 249 39.355 9.578 27.451 60.991
#> 29 351.735 607.202 4485 237 38.558 8.020 27.254 56.272
#> majoraxis eccentricity theta
#> 1 109.803 0.872 -1.476
#> 2 88.458 0.810 1.433
#> 3 100.155 0.823 -1.495
#> 4 92.161 0.829 -1.544
#> 5 98.421 0.794 1.396
#> 6 108.316 0.789 1.488
#> 7 76.482 0.894 -1.434
#> 8 107.543 0.864 1.568
#> 9 87.435 0.767 1.408
#> 10 100.482 0.838 -1.373
#> 11 85.255 0.793 1.526
#> 12 65.442 0.743 1.366
#> 13 78.009 0.851 1.430
#> 14 86.469 0.799 -1.423
#> 15 106.888 0.848 1.460
#> 16 97.029 0.770 1.324
#> 17 90.800 0.874 1.525
#> 18 83.451 0.833 1.415
#> 19 97.138 0.789 -1.540
#> 20 107.033 0.813 1.560
#> 21 95.610 0.765 1.529
#> 22 79.761 0.880 1.511
#> 23 80.331 0.781 1.387
#> 24 82.860 0.852 -1.566
#> 25 79.967 0.805 1.305
#> 26 70.706 0.788 -1.550
#> 27 97.685 0.831 1.323
#> 28 102.599 0.841 1.502
#> 29 99.173 0.810 1.351
#>
#> attr(,"class")
#> [1] "measurements"
Com o comando acima temos várias medidas de áreas em pixels. Logo, é legal converter essa medida para cm² a partir do objeto de referência. Sabendo a área do objeto de referência podemos fazer a conversão com da seguinte forma:
#Convertendo a area dos objetos para cm2
#Identificando a area do objeto de referência (maior area)
# A area conhecida do objeto de referência tem 8.5 x 5.5 cm
#e sua areasegmentada esta no objeto ref.seg
=measure_image(img = folhas.seg,noise =1000,id=ref.seg,length =8.5,width =5.5,plot = FALSE )
medidasref#numero de objetos e medias
medidasref#> $ObjectNumber
#> [1] 29
#>
#> $measures
#> x y area perimeter radius.mean radius.sd radius.min
#> 1 251.935 88.356 6.265126 357.6456 56.03490 15.029565 35.48155
#> 2 64.936 79.766 4.878190 304.1396 49.01717 10.543506 35.68994
#> 3 408.175 89.955 6.065626 329.4846 53.83271 11.424948 37.36270
#> 4 179.859 86.146 5.061292 304.1396 49.24386 10.747674 35.65333
#> 5 332.603 91.847 6.250095 337.9329 54.95774 10.735001 41.80934
#> 6 498.520 102.619 7.680757 368.9101 60.84059 11.692478 46.93888
#> 7 120.907 85.163 2.723314 259.0819 38.89467 12.713317 20.70261
#> 8 430.247 221.532 6.173574 360.4617 56.30666 14.999996 37.64713
#> 9 122.456 219.494 5.212967 305.5477 49.56631 8.598984 35.69698
#> 10 207.372 227.941 5.863393 342.1570 54.25512 12.879467 38.02167
#> 11 508.695 223.640 4.711484 285.8349 47.14868 8.890451 35.11123
#> 12 353.056 213.249 3.067657 225.2886 37.57955 5.705434 29.73809
#> 13 283.712 222.959 3.402435 256.2658 40.66177 9.798646 26.82342
#> 14 511.968 330.877 4.772974 288.6510 47.64290 9.269217 35.89129
#> 15 364.445 339.596 6.444129 357.6456 56.62066 13.866513 39.16361
#> 16 129.296 341.431 6.403136 330.8926 54.78315 9.291746 41.67698
#> 17 434.539 340.207 4.259192 301.3235 46.50520 12.482396 30.01830
#> 18 292.677 338.505 4.078822 284.4268 44.85355 10.615317 29.42269
#> 19 223.372 354.283 6.173574 333.7087 54.46211 10.377356 42.13882
#> 20 498.564 470.491 7.101387 359.0537 58.19345 11.736128 41.67276
#> 21 308.946 487.006 6.241896 332.3007 54.20021 9.281890 42.90199
#> 22 84.144 480.331 3.151010 270.3463 41.15882 12.614753 24.46071
#> 23 226.510 486.956 4.298819 273.1624 44.89157 7.951279 34.32553
#> 24 371.566 483.601 3.737212 290.0591 44.51562 12.679524 27.28949
#> 25 148.370 483.270 4.036463 280.2027 44.27906 9.253729 31.03491
#> 26 434.005 481.215 3.276722 240.7772 39.23119 7.442972 29.42551
#> 27 509.508 597.362 5.643396 319.6282 52.55420 11.830467 36.18839
#> 28 436.677 608.850 6.019167 350.6054 55.41395 13.486338 38.65248
#> 29 351.735 607.202 6.128482 333.7087 54.29173 11.292591 38.37510
#> radius.max majoraxis eccentricity theta
#> 1 87.81045 154.60852 0.872 -1.476
#> 2 71.22358 124.55361 0.810 1.433
#> 3 77.66965 141.02362 0.823 -1.495
#> 4 71.75442 129.76764 0.829 -1.544
#> 5 80.77159 138.58205 0.794 1.396
#> 6 85.77018 152.51474 0.789 1.488
#> 7 64.57616 107.69076 0.894 -1.434
#> 8 87.89916 151.42632 0.864 1.568
#> 9 67.83299 123.11317 0.767 1.408
#> 10 81.18697 141.48405 0.838 -1.373
#> 11 67.09657 120.04362 0.793 1.526
#> 12 51.13347 92.14585 0.743 1.366
#> 13 60.93071 109.84086 0.851 1.430
#> 14 70.92507 121.75299 0.799 -1.423
#> 15 84.57193 150.50404 0.848 1.460
#> 16 77.52180 136.62204 0.770 1.324
#> 17 72.35002 127.85128 0.874 1.525
#> 18 66.18838 117.50349 0.833 1.415
#> 19 78.15402 136.77552 0.789 -1.540
#> 20 85.73217 150.70821 0.813 1.560
#> 21 76.12361 134.62401 0.765 1.529
#> 22 67.40635 112.30777 0.880 1.511
#> 23 63.96366 113.11036 0.781 1.387
#> 24 71.15459 116.67133 0.852 -1.566
#> 25 64.00167 112.59783 0.805 1.305
#> 26 55.59418 99.55784 0.788 -1.550
#> 27 78.60319 137.54573 0.831 1.323
#> 28 85.87860 144.46490 0.841 1.502
#> 29 79.23400 139.64091 0.810 1.351
#>
#> attr(,"class")
#> [1] "measurements"
Para a melhor visualização dos resultados, podemos sobrepor a área das folhas sobre a imagem com o seguinte comando:
#Plotar resultados das areas em pixel e salvar em imagem jpg
plot_meansures(im,medidasref$measures[,1],coordy=medidasref$measures[,2],text=round(medidasref$measures[,3],1),col="red",
cex = 0.9 ,plot=TRUE)
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.