仅打开图像的一部分(JPEG/TIFF等)在R中 [英] Open only part of an image (JPEG/TIFF etc.) in R
本文介绍了仅打开图像的一部分(JPEG/TIFF等)在R中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在分析R中非常大的图像,大约是数万个像素的正方形。不幸的是,即使有64 GB的内存,这些图像有时也无法装入内存,而当它们装入内存时,我一次只能打开一个,这就排除了并行化的可能性。
我目前的策略是使用JPEG或TIFF包加载它们。例如:
image <- readJPEG('image.jpg')
推荐答案
结果是,有一个R包--RBioFormats--允许您指定要打开的图像的一部分(尽管它在CRAN上不可用)。可以从Git安装它,如下所示:
source("https://bioconductor.org/biocLite.R")
biocLite("aoles/RBioFormats") # You might need to first run `install.packages("devtools")`
library(RBioFormats)
无需打开图像即可从元数据中读取图像的尺寸:
metadata <- read.metadata('image.tiff')
xdim <- metadata@.Data[[1]]$sizeX
ydim <- metadata@.Data[[1]]$sizeY
假设我们要加载左上角的512 x 512像素,我们使用subset
函数:
image <- read.image('image.tiff', subset = list(X = 1:512, y = 1:512))
因此,编写循环来迭代处理整个大图像是微不足道的。RBioFormats是Java BioFormats库的R接口,将打开TIFF、PNG、JPEG以及许多专有的图像格式。
这篇关于仅打开图像的一部分(JPEG/TIFF等)在R中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文