2017-09-20 8 views
0

Ich frage mich, was ist hier falsch?0xC0000005: Zugriffsverletzungsleseposition 0xFFFFFFFFFFFFFFFF. bei der Verwendung von glob von opencv

String path = "Z:\\Cs585\\HW2\\draft\\hw2-kim\\hw2-kim\\assets\\*.jpg"; 
//String path = "assets\\*.jpg"; 
vector<String> fn; 
glob(path, fn, false); 
vector<Mat> handTemplates; 
for (auto filename : fn){ 
    Mat temp_hand = imread(filename); 
    handTemplates.push_back(temp_hand); 
} 

Es stürzt ab und gibt eine Zugriffsverletzung bei vector<Mat> handTemplates; Zeile.

im Grunde, main.cpp ist in Z:\Cs585\HW2\draft\hw2-kim\hw2-kim Verzeichnis und Bilder, die ich mit imread in Batch-Mode öffnen möchten, sind in dem Ordner darin assets benannt.

Irgendwelche Gedanken? enter image description here

enter image description here

Update: jedoch den Zugriff auf Bilder eins nach dem anderen Werke:

vector<Mat> handTemplates; 

Mat fist_hand = imread("assets\\fist.jpg"); 
handTemplates.push_back(fist_hand); 

Mat full_hand = imread("assets\\full_hand.jpg"); 
handTemplates.push_back(full_hand); 

Mat thumbs_up_hand = imread("assets\\thumbs_up.jpg"); 
handTemplates.push_back(thumbs_up_hand); 

Mat victory_hand = imread("assets\\victory.jpg"); 
handTemplates.push_back(victory_hand); 
+1

Verwenden Sie Windows? Wenn das der Fall ist, nehme ich an, dass Sie eine ATL/MFC-String-Klasse anstelle von [std :: string] (https://stackoverflow.com/a/26536198/501196) oder [cv :: String] (http: // /docs.opencv.org/trunk/d1/d8f/classcv_1_1String.html) – yms

+0

also, was macht es richtig? Kannst du es in einer Zeile korrigieren? –

+3

Ist 'Pfad' richtig? Sie haben nur einen Backslash vor dem Dateinamen-Platzhalter. – 1201ProgramAlarm

Antwort

0

Ihr Code funktioniert für mich völlig in Ordnung! Ist das genau eine Kopie Ihres Codes? Weil hier \ fehlt assets\*.jpg.

+0

oh nein, das war ein Fehler. Ich habe \\ und habe immer noch den gleichen Fehler! Ich werde die Frage aktualisieren –

Verwandte Themen