2017-12-17 3 views
-1

Ich bekomme Zugriffsverletzung Schreibort in Gesichtserkennung in opencv, wenn der Code zu dieser Zeile: Modell-> Zug (Bilder, Etiketten);Zugriffsverletzung Schreibort in opencv

der Fehler: Unbehandelte Ausnahme bei 0x00007FF9B494321B (opencv_core331.dll) in WHomeCamera.exe: 0xC0000005: Zugriffsverletzung Schreibort 0x0000000100000014. aufgetreten

#include <opencv2\opencv.hpp> 
#include <opencv2\highgui.hpp> 
#include <opencv2\objdetect.hpp> 
#include <opencv2\core.hpp> 
#include <opencv2\face.hpp> 
#include <opencv2\imgcodecs.hpp> 
#include <iostream> 
#include <string> 

using namespace std; 
using namespace cv; 
using namespace face; 

int main(void) 
{ 
    vector <Mat> images; // vector of matrix for the images of the faces; 
    vector <int> labels; // vector of int's for the labes (each person get  label ex: moshe - 0); 

    try 
    { 
     images.push_back(imread("D:\imagesForProject\1.jpg", CV_LOAD_IMAGE_GRAYSCALE)); // insert the face image; 
     labels.push_back(0); // insert his label; 

     images.push_back(imread("D:\imagesForProject\2.jpg", CV_LOAD_IMAGE_GRAYSCALE)); // insert the face image; 
     labels.push_back(0); // insert his label; 

     images.push_back(imread("D:\imagesForProject\3.jpg", CV_LOAD_IMAGE_GRAYSCALE)); // insert the face image; 
     labels.push_back(0); // insert his label; 


    } 

    catch(Exception& e) 
    { 
     cerr << "can't open the images" << e.msg << endl; // if we couldn't  open the files cerr it's basic cout for errors; 
    } 

    Ptr<FaceRecognizer> model = FisherFaceRecognizer::create(); 
    model->train(images, labels); 
    return(0); 
} 
+0

Which Compiler? Build freigeben und debuggen? Woher stammen Ihre OpenCV-Binärdateien? –

+0

Sie müssen Ihren Backslashes entkommen. – molbdnilo

+0

... oder noch besser, verwenden Sie Schrägstriche. –

Antwort

0

OpenCV 3.3 gebaut von mir G++ 5.4 auf Ubuntu 16.04 verwenden.

Dieser Code funktioniert für mich. Do not ask me why, Sie should finden Sie den Unterschied .


#include <opencv2/opencv.hpp> 
#include <opencv2/highgui.hpp> 
#include <opencv2/objdetect.hpp> 
#include <opencv2/core.hpp> 
#include <opencv2/face.hpp> 
#include <opencv2/imgcodecs.hpp> 
#include <iostream> 
#include <string> 

using namespace std; 
using namespace cv; 
using namespace face; 

int main(void) 
{ 
    vector <Mat> images; // vector of matrix for the images of the faces; 
    vector <int> labels; // vector of int's for the labes (each person get  label ex: moshe - 0); 

    try{ 
     images.push_back(imread("Pictures/test0.png", CV_LOAD_IMAGE_GRAYSCALE)); // insert the face image; 
     labels.push_back(0); // insert his label; 
     images.push_back(imread("Pictures/test1.png", CV_LOAD_IMAGE_GRAYSCALE)); // insert the face image; 
     labels.push_back(1); // insert his label; 
    }catch(Exception& e){ 
     cerr << "can't open the images" << e.msg << endl; // if we couldn't  open the files cerr it's basic cout for errors; 
    } 

    Ptr<FaceRecognizer> model = FisherFaceRecognizer::create(); 
    model->train(images, labels); 
    model->save("xxx.xml"); 
    return(0); 
} 
+0

Ich habe versucht und ich weiß wirklich nicht warum, aber funktioniert immer noch nicht ... – oriro

+0

Ich kopiere genau deinen Code und es funktioniert nicht (ich habe zwei Leute eingefügt - und es gibt immer noch Fehler so vielleicht Sie liegen falsch) – oriro

Verwandte Themen