R - 读取 jpeg 时下标越界

R - Subscript out of bounds when reading jpeg

我正在尝试从文件夹中读取所有 jpg 文件并将其存储在矢量中。

为简单起见,我尝试只读取两张图片作为开始。

首先,我创建了一个列表,它为我提供了 1:2.

的字符向量
original_files <- list.files("D:/User/Documents/Folder", pattern="*jpg$", full.name=F)

这导致:

[1] "File1.jpg" "File2.jpg"

然后我创建一个空列表和一个 for 循环来读取它们并存储它们:

empty_list=list()
    for (i in original_files) 
    {
      img <- readJPEG(original_files[[i]])
      empty_list[[i]] <- img
  }

它执行返回以下错误的函数:

Error in gabor_ori_files[[i]] : subscript out of bounds

我不太明白为什么会收到此消息或如何解决它。我试过使用 lapply 而不是 for 循环,但它也不起作用。

如有任何帮助,我们将不胜感激。在此先感谢您的时间。

错误来自于您定义 for 参数的方式。

for (i in original_files)

表示我应该取 original_files 中的值,意思是 "File1.jpg" "File2.jpg"。在第一个循环中,你要求

img <- readJPEG(original_files[["File1.jpg"]])

但是,向量中的 none 个元素具有 name "File1.jpg",它们具有 value 共 "File1.jpg"

避免这种混淆的最好方法是始终遍历位置而不是名称。换句话说,使用

for (i in 1:length(original_files))

那应该可以了