私はiosを初めて使用しています。現在、私はopencvのfacetrackerを使用するアプリケーションに取り組んでいます。 したがって、Objective-CではC++を使用しています。私の問題は、facetracking部分を扱うC++クラスのコンストラクタが、カスケードファイルのファイルの場所を必要とすることです。コンストラクタは、次のようになります。ios opencvカスケードファイルのファイルパス
VideoFaceDetector(const std::string cascadeFilePath);
は残念ながら次のコードは動作しません(ファイルパスは、匿名性の理由から変更):
const cv::String CASCADE_FILE("/../../../../haarcascade_frontalface_default.xml");
haarcascade_frontalface_default.xmlファイルをXcodeプロジェクト内ではあるが、それはできませんロードされる。 カスケードファイルのファイルパスをC++コード内で取得する方法はありますか?私はユーザーからのアプローチを試みた:r4ghu
NSString *faceCascadePath = [[NSBundle mainBundle]
pathForResource:@"<your_cascade_name>"
ofType:@"xml"];
const CFIndex CASCADE_NAME_LEN = 2048;
char *CASCADE_NAME = (char *) malloc(CASCADE_NAME_LEN);
CFStringGetFileSystemRepresentation((CFStringRef)faceCascadePath,
CASCADE_NAME,
CASCADE_NAME_LEN);
if(!face_cascade.load(CASCADE_NAME)) {
cout << "Unable to load the face detector!!!!" << endl;
exit(-1);
}
それは私のために働かなかった。 他の方法はありますか?
thx