所以我有一个包含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)
对不起,不是专家编码员。谢谢!
edit2:如果我使用this suggestion,
要求(成像仪)
closed_images <-lapply(closed_im_list,readImage)
closed_im_matrix = do.call('cbind',lapply(closed_images,as.numeric))
然后我需要一个循环,将图像堆栈矩阵的每个元素另存为自己的单独图像。
答案 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
>