如何在R的文件夹中打开和存储一系列图像?

时间:2019-06-17 16:29:01

标签: r image set series

所以我有一个包含n个图像的文件夹,我想用readImage函数打开并保存。现在,一位同事写了一些类似的东西来仅打开和存储图像的名称。我想执行以下操作:

  

setwd(“〜/ ABC / One_Folder_Up”)

     

img_src <-“ FolderOfInterest”

     

image_list <-list.files(path = img_src,pattern =“ ^ closed”)

但是以实际的.tif图像命名为例如:closed100,closed101,.... closed201

上面的代码非常适合获取名称。但是,如何获得这种类型的图案,却打开并保存图像?输出是每个图像的大矩阵。

所以对于n = 1到n,我要执行以下操作:

  

closed175 <-readImage(“ closed175.tif”)

     

ave175 <-均值(closed175)

     

SD175 <-SD(closed175)

我假设第一部分中显示的图像列表可以在所需的循环中使用?

然后,在将图像另存为自己的矩阵并计算所有平均值和SD之后,我想将平均值和SD放入这样的矩阵中:

  

imavelist <-c(ave175,ave176,...... ave200)

对不起,不是专家编码员。谢谢!

编辑:maybe lapply?

edit2:如果我使用this suggestion

  

要求(成像仪)

     

closed_images <-lapply(closed_im_list,readImage)

     

closed_im_matrix = do.call('cbind',lapply(closed_images,as.numeric))

然后我需要一个循环,将图像堆栈矩阵的每个元素另存为自己的单独图像。

1 个答案:

答案 0 :(得分:2)

setwd("~/ABC/One_Folder_Up/FolderOfInterest/")
#for .tif format
image_list=list.files(path=getwd(), pattern = "*.tif")
# for other formats replace tif with appropriate format. 
f=function(x){
y=readImage(x)
mve=mean(y)
sd=sd(y)
c(mve,sd)
}

results=data.frame(t(sapply(image_list,f)))
colnames(results)=c("average","sd")

3张图片的结果:

> results
                average        sd
Untitled.tif  0.9761128 0.1451167
Untitled2.tif 0.9604224 0.1861798
Untitled3.tif 0.9782997 0.1457034
>