1

opencv サンプルにある facedetect.cpp コードを使用しています。しかし、ビルドして実行した後、エラーが発生するとエラーが発生しcascade.load(cascadeName)ます。つまり、ゼロが返されます。それは数日前に働いていました。突然、このエラーが発生し始めました。XML ファイルのフル パスも指定しましたが、うまくいきませんでした。このコマンドは、コードの実行可能ファイルを実行するために使用されました。

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

XMLファイルのパスは正しいです!! このスナップショットを確認してください

#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ファイルは同じフォルダーにあります....フルパスを指定した後でも....ロードされていません...! 許可の問題はないと思います...

助けてください!

4

1 に答える 1

1

この方法で絶対パスを渡してみましたか?

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

ファイルは読み取り許可のあるフォルダーにありますか?

動作するはずです。そうでない場合、問題はコードの別の場所にあります。

于 2012-12-11T16:55:27.690 に答える