gpt4 book ai didi

image - 使用 EBImage 缓慢加载 R 图像

转载 作者:行者123 更新时间:2023-12-02 03:43:23 24 4
gpt4 key购买 nike

与 matlab 相比,为什么在 R 中使用 EBImage 包加载大图像(~4MB)要慢得多?有没有办法解决?

注意:我很确定 EBImage 在某种程度上是 R 中 imagemagick 的包装器

在 R 中:

system.time(im <- readImage("~/Desktop/image.jpg"))
Elapsed time is 10.935 seconds.

在 Matlab 中:

tic; 
im = imread('~/Desktop/image.jpg');
toc;
Elapsed time is 0.555381 seconds.
<小时/>

使用栅格包

system.time(im <- brick('image.jpg'))

需要 0.264 秒

尝试获取值时

system.time(vals <- getValues(im))

需要 8.617 秒所以我回到了第一点,因为我需要提取一个 channel

<小时/>

编辑2

我最终使用了jpeg包,它具有readJPEG功能,并且比我在那里尝试过的任何东西都表现得更好。

 system.time(x<-readJPEG('~/Desktop/image.jpg'))

处理 4mb 图像大约需要 1.431 秒,并返回一个 n x m x 3 矩阵,矩阵的每一层都是一个颜色 channel

最佳答案

我不知道为什么它很慢,但尝试使用raster代替。您可以使用 image

绘制读取结果
require( raster )
im <- brick("~/Desktop/image.jpg")
image( im , y = 1 )

# Or for a rgb coloured image...
plotRGB( im , r=1 , g = 2 , b = 3 )

# To extract values of each layer
vals <- getValues( im )

# A quicker way to get the values would be to use the as.matrix method for rasters
vals <- as.matrix( im )

栅格可能会向您发出有关地理配准的警告,但它应该可以工作,而且速度应该非常快。

关于image - 使用 EBImage 缓慢加载 R 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15415358/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com