无法在R中获取PNG图像的文件大小
我试图建立一个CNN模型,用于R中的图像分类,但由于我的列车数据非常庞大(1.7GB),我试图读取所有文件,并在数据帧中获取它们的文件大小信息,以便我可以从代码中的列车数据集中删除重图像。下面是示例代码的片段:无法在R中获取PNG图像的文件大小,r,image,R,Image,我试图建立一个CNN模型,用于R中的图像分类,但由于我的列车数据非常庞大(1.7GB),我试图读取所有文件,并在数据帧中获取它们的文件大小信息,以便我可以从代码中的列车数据集中删除重图像。下面是示例代码的片段: #Block 1 : creating a data frame of all the subfolder and image file in them df_trainfiles <- data.frame(ID=numeric(),foldername
#Block 1 : creating a data frame of all the subfolder and image file in them
df_trainfiles <- data.frame(ID=numeric(),foldername=character(),filename=character(),filesize=numeric(),stringsAsFactors = F)
df_testfiles<-data.frame(ID=numeric(),foldername=character(),filename=character(),filesize=numeric(),stringsAsFactors = F)
df_train<-data.frame(info=character(),stringsAsFactors = F)
df_test<-data.frame(info=character(),stringsAsFactors = F)
trainDataPath<-"C:/Users/chiragrawal/Desktop/Learning/1. Kaggle/0.2 Plant Seedlings Classification/train/train"
lsSubfolder<-list.files(path = trainDataPath,pattern = )
for (intX in 1:length(lsSubfolder)){
lsfiles<-list.files(path = paste0(trainDataPath,"/",lsSubfolder[intX]))
for(intY in 1:length(lsfiles)){
df_trainfiles[nrow(df_trainfiles)+1,]<-list(nrow(df_trainfiles)+1, lsSubfolder[intX],lsfiles[intY],file.size(paste0(trainDataPath,"/", df_trainfiles[i,2],"/", df_trainfiles[i,3],sep="")))
}
}
#块1:创建其中所有子文件夹和图像文件的数据帧
df_trainfiles我的建议是不要使用for
循环,因为有更可靠的方法来列出文件并读取它们的特性
这里有一个命题:
trainDataPath <- "C:/Users/chiragrawal/Desktop/Learning/1. Kaggle/0.2 Plant Seedlings Classification/train/train"
f <- list.files(path = trainDataPath, pattern = "png", recursive = TRUE, full.names=TRUE)
filename <- list.files(path = trainDataPath, pattern = "png", recursive = TRUE)
foldername <- sapply(strsplit(filename, "/"), "[", 1)
filesize <- file.size(f)
df_trainfiles <- data.frame(foldername, filename, filesize, stringsAsFactors = F)
trainDataPathfile.size
如果您提供的路径与现有文件不匹配,将返回NA
。您是否检查了使用paste0构建的路径是否正确?是的,我检查并粘贴了0结果是否正确,事实上,当我尝试读取图像时,我能够执行readImage(paste0(trainDataPath,“/”,df_trainfiles[I,2],“/”,df_trainfiles[I,3],sep=”“)
,但只有file.size返回“N/a”我在从下载的文件上应用了file.size
,没有丢失任何值。我的命令是file.size(dir(“Nonsegmented”,recursive=TRUE,full.names=TRUE))
。您是否尝试过使用file.info
并查看其他字段是否存在类似问题?我尝试过使用与您相同的命令,得到的结果是“numeric(0)”。我对文件夹名称有点着迷,但现在它已经修好了。这很好地工作了,而且,我还学会了一种不用回路的方法。非常感谢,先生!