OpenCV (CvHaarClassifierCascade*) cvLoad non carica , impossibile caricare il file xml

Sto cercando di rilevamento del volto di utilizzo di OpenCv 2.3 .
La mia cercando di carico “haarcascade_frontalface_alt_tree.xml” sul mio progetto , sono costantemente in grado di caricare il file xml.

    CvHaarClassifierCascade * pCascade = 0;  //the face detector   
const char* file ="C:\OpenCV2.3\opencv\data\haarcascades\haarcascade_frontalface_alt_tree.xml" ; 
pCascade = (CvHaarClassifierCascade*) cvLoad(file , NULL, NULL, NULL);
    if (!pCascade)   { 
        exit(-1);    //unable to load xml 
    }

Credo che sto expeiancing lo stesso problema come questo problema

Ho provato a caricare un’immagine prima che il cvLoad comando , ma niente da fare.

Sto utilizzando la libreria OpenCV 2.3 , fatto la mia configurazione come in questo tutorial

Sto usando le librerie ( presumo che le mie configurazioni sono corrette, il file esiste e può essere aperto utilizzando Notepad++ )

    #include <stdio.h>
#include "opencv2\opencv.hpp"
#include "cv.h"
#include "highgui.h"
//#include "cvaux.h"

using namespace cv;


#pragma comment(lib, "opencv_core230d.lib")
#pragma comment(lib, "opencv_highgui230d.lib")
//#pragma comment(lib, "opencv_contrib230d.lib")
//#pragma comment(lib, "opencv_calib3d230d.lib")
//#pragma comment(lib, "opencv_features2d230d.lib")
//#pragma comment(lib, "opencv_flann230d.lib")
//#pragma comment(lib, "opencv_gpu230d.lib")
#pragma comment(lib, "opencv_haartraining_engined.lib")
#pragma comment(lib, "opencv_imgproc230d.lib")
//#pragma comment(lib, "opencv_legacy230d.lib")
//#pragma comment(lib, "opencv_ml230d.lib")
//#pragma comment(lib, "opencv_objdetect230d.lib")
//#pragma comment(lib, "opencv_video230d.lib")
InformationsquelleAutor TripleS | 2011-08-23

 

3 Replies
  1. 3

    Per circoscrivere il problema, prima di chiamare cvLoad si dovrebbe controllare per vedere se il file esiste. Ecco un modo:

    struct stat buf;
    int statResult = stat(file,&buf);
    if (statResult || buf.st_ino < 0) {
        cout << "File not found: " << file << endl;
        exit(-2);
    }

    Avrai bisogno di #include <sys/stat.h>


    Sul mio sistema (OS X 10.6.8/OpenCV 2.3), quando tento di caricare haarcascade_frontalface_alt_tree.xml o haarcascade_frontalface_alt.xml ottengo un’eccezione:

    OpenCV Error: Unspecified error (The node does not represent a user object (unknown type?)) in cvRead, file /Users/steve/Development/opencv2/opencv/modules/core/src/persistence.cpp, line 4857

    Penso che si sta usando un vecchio OpenCV 1 tutorial che non funziona con la versione corrente di haarcascade_frontalface_alt_tree.xml. Provare questo OpenCV 2 tutorial invece. Questo codice che il tutorial funziona per me:

    CascadeClassifier face_cascade;
    if (!face_cascade.load( file) ) { 
        cout << "Couldn't load face_cascade" << endl;
        exit(-1); 
    }
    
    cout << "Loaded face_cascade" << endl;
    • Desidero che l’OP ha voluto commentare su quali soluzioni risposto alla sua domanda.
  2. 0

    Succede anche a me, ma finalmente credo di aver trovato il problema.

    OpenCV ha due librerie diverse *d.lib e *.lib d mezzi di debug.

    Il problema è che è necessario per configurare le librerie corrette per il vostro ambiente (vs nel mio caso) in modo corretto.

    d.lib quando sei in debug e .lib quando sei in rilascio.

    Anche nel mio progetto ho bisogno di eseguirlo in modalità di Rilascio per farlo funzionare 🙂

    Questa configurazione nel mio vs2009 potrebbe essere trovato in Proprietà, Linker, Ingresso, dipendenze Aggiuntive.

    Migliori saluti

    • Come hai fatto a usare la libreria? potete per favore spiegare po ‘ più ?
  3. 0

    Verificare che la stringa con il “haarcascade_frontalface_alt.xml” nome del file sia corretto.
    Io avevo questo problema e l’directory separater non veniva riconosciuto. Ho cambiato il ‘\’ carattere ‘/’ e il tutorial lavorato.
    Per tua info, io sto usando MacOS 10.8.3 l’esecuzione di Parallels con Windows 7, Visual Studio 2012 e opencv 2.44 – stavo usando la versione 2 del tutorial

Lascia un commento