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.
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);
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
also, was macht es richtig? Kannst du es in einer Zeile korrigieren? –
Ist 'Pfad' richtig? Sie haben nur einen Backslash vor dem Dateinamen-Platzhalter. – 1201ProgramAlarm