2012-12-11 57 views
1

我正在使用opencv示例中給出的facedetect.cpp代碼。 但後建設和運行錯誤出現,因爲cascade.load(cascadeName)給出一個錯誤,即返回零。 它在幾天前工作。突然之間,這個錯誤開始出現。 我也是XML文件的完整路徑,但它不起作用! 這個命令是用來運行代碼的可執行文件:使用cascade.load()加載Opencv中的級聯分類器時出錯!

`objectDetect --cascade="Full path to haarcascade_frontalface_alt.xml" --scale=1.3 %1` 

的XML文件的路徑是正確的! Kindly check this snap shot

#include <opencv2\objdetect\objdetect.hpp> 
#include <opencv2\highgui\highgui.hpp> 
#include <opencv2\imgproc\imgproc.hpp> 
#include <cv.h> 
#include <highgui.h> 
#include <iostream> 

using namespace std; 
using namespace cv; 

int main(int argc, char* argv[]) { 
string xmlArray[] = { 
"D:/Visual Studio 2010/Projects/loadClassifierTest/haarcascades/haarcascade_eye.xml", 
"D:/Visual Studio 2010/Projects/loadClassifierTest/haarcascades/haarcascade_eye_tree_eyeglasses.xml", 
"D:/Visual Studio 2010/Projects/loadClassifierTest/haarcascades/haarcascade_frontalface_alt.xml", 
"D:/Visual Studio 2010/Projects/loadClassifierTest/haarcascades/haarcascade_frontalface_alt2.xml", 
"D:/Visual Studio 2010/Projects/loadClassifierTest/haarcascades/haarcascade_frontalface_alt_tree.xml", 
"D:/Visual Studio 2010/Projects/loadClassifierTest/haarcascades/haarcascade_frontalface_default.xml", 
"D:/Visual Studio 2010/Projects/loadClassifierTest/haarcascades/haarcascade_fullbody.xml" 
}; 
CascadeClassifier cascade; 
for (int i = 0; i < 6; ++i) { 
    if (!cascade.load(xmlArray[i])) 
     cerr << "Could not load " << xmlArray[i] << " !" << endl; 
    else 
     cout << xmlArray[i] << " has been loaded!" << endl; 
} 
return 0; 
} 

所有的XML文件都在同一個文件夾....甚至給人的完整路徑之後....他們沒有加載...!我不認爲有任何許可問題...

請幫助!

回答

1

你試過路過絕對路徑是這樣的:

String xmlFilePath = "c:/.../haarcascade_frontalface_alt.xml"; 

是有讀權限的文件夾中的文件?

它應該工作,否則問題是在你的代碼的另一個地方..

+0

XML文件是在C:\用戶\\文檔\ Visual Studio 2010的\項目\ objectDetect \調試\ haarcascade_frontalface_alt.xml –

相關問題