2016-05-03 10 views
0

Ich versuche, alle JPG-Dateien aus einem Ordner zu lesen und in einem Vektor zu speichern.R - Index außerhalb der Grenzen beim Lesen von JPEG

Um es einfach zu machen, versuche ich nur zwei Bilder als Start zu lesen.

Zuerst erstelle ich eine Liste, die mir einen Zeichenvektor von 1: 2 gibt.

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

was zur Folge hat:

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

Dann erstelle ich eine leere Liste und eine for-Schleife, sie alle und speichern sie zu lesen:

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

Es führt die Funktion Zurückführen der folgenden Fehler:

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

Ich verstehe nicht wirklich, warum ich diese Nachricht bekomme oder wie ich sie lösen kann. Ich habe versucht, statt einer for-Schleife lapply zu verwenden, und es funktioniert auch nicht.

Jede Hilfe wäre sehr willkommen. Vielen Dank im Voraus für Ihre Zeit.

Antwort

0

Der Fehler kommt von der Art, wie Sie Ihr Argument definieren.

bedeutet, dass ich die Werte in original_files nehmen sollte, was "File1.jpg" "File2.jpg" bedeutet. Dabei auf der ersten Schleife für Sie

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

fordern jedoch keines der Elemente in Ihrem Vektor hat den Namen „File1.jpg“ haben sie den Wert von „File1.jpg“

Der beste Weg, um diese Art von Verwirrung zu vermeiden, besteht darin, immer die Positionen anstelle von Namen zu durchlaufen. Mit anderen Worten, sollte

for (i in 1:length(original_files)) 

Es verwendet arbeiten dann

Verwandte Themen