我刚开始使用RStudio,因为可用的分析图像的包是R语言编写的。我只想分析存储在一个文件夹中的50张图片。如何通过循环读取每个图像,对每张图片执行一些操作并将输出结果(我的输出结果是一个列表)保存为向量?
更新:
我刚刚编写了一段代码,如下所示:
folder <- "F:/F_diff/1_d/glass/New folder/" # path to folder that holds multiple .jpg files
file_list <- list.files(path=folder, pattern="*.jpg") # create list of all .jpg files in folder
for (i in 1:length(file_list)){
assign(file_list[i],
#read image
im2 <- readImage(paste(folder, file_list[i], sep=''))
#analyze each image
B <- matrix(im2,nrow=808,ncol=610,byrow=FALSE, dimnames=NULL)
Haarimtest <- TOS2D(B, smooth = FALSE, nsamples = 100)
summary(Haarimtest)
)}
我遇到了以下错误:
错误:在以下内容中出现意外符号: “#analyze each image B” Haarimtest <- TOS2D(B, smooth = FALSE, nsamples = 100) 错误:base::log2(x)中的非数学函数参数 summary(Haarimtest) 错误:未找到对象“Haarimtest” )} 错误:在“)”中出现意外“)” 更新2 经过一些代码调整和大量搜索,我成功运行了它。 该代码首先从文件夹导入大小为64x64像素的30张.tif图像,并对每张图像执行一些图像分析。 更新后的代码如下:
> library(tiff)
library(LS2W)
library(LS2Wstat)
> # path to folder that holds multiple .tif files
path <- "C:/Users/Metaheuristics/Documents/MATLAB/diff_64 x64/2D/"
> # create list of all .tif files in folder
files <- list.files(path=path, pattern="*.tif")
>
> #import all files
for(file in files) {
perpos <- which(strsplit(file, "")[[1]]==".")
assign(
> gsub(" ","",substr(file, 1, perpos-1)),
> B<-readTIFF(paste(path,file,sep="")))
>
#perform image analysis on individual images
Haarimtest <- TOS2D(B, smooth = FALSE, nsamples = 100)
summary(Haarimtest)
}
只有一个问题,我无法保存结果。
TOS2D()
函数需要将图像作为其中一个参数,而您提供的是矩阵B
,我建议您传递im2
作为参数,而不是B
。 - Imran Ali