无法在R中获取PNG图像的文件大小

无法在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

我试图建立一个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=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)

trainDataPath
file.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)”。我对文件夹名称有点着迷,但现在它已经修好了。这很好地工作了,而且,我还学会了一种不用回路的方法。非常感谢,先生!