与 matlab 相比,为什么使用 EBImage 包在 R 中加载大图像(~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 秒,所以我回到第一方,因为我需要提取一个频道
编辑 2
我最终使用了jpeg
具有功能readJPEG
并且性能比我在那里尝试过的任何东西都更好的包。
system.time(x<-readJPEG('~/Desktop/image.jpg'))
4mb 图像大约需要 1.431 秒并返回一个n x m x 3
矩阵,矩阵的每一层都是一个颜色通道