前提・実現したいこと
ここに質問の内容を詳しく書いてください。
顔検出のプログラムをやっています。
自分は独学で始めたばかりで指導者がおらずまだよくわかっていません。このエラーはなぜ出たのでしょうか?
エラーの意味がよくわかっていません????
もしわかる方がおりましたら教えていただけると嬉しいです
発生している問題・エラーメッセージ
OpenCV: terminate handler is called! The last OpenCV error is:
OpenCV(4.0.0-alpha) Error: Assertion failed (!empty()) in cv::CascadeClassifier::detectMultiScale, file C:\build\master_winpack-build-win64-vc14\opencv\modules\objdetect\src\cascadedetect.cpp, line 1693
エラーメッセージ
該当のソースコード
ソースコード #pragma comment(lib,"opencv_world400.lib") #include <opencv2/opencv.hpp> #include <iostream> #include <opencv2/core/core.hpp> #include <cassert> #include <opencv2/highgui/highgui.hpp> using namespace cv; using namespace std; int main(int argc, char* argv[]) { try { if (argc < 3) throw"few parameters."; UMat src, gray, equalize, dst; imread(argv[1]).copyTo(src); cvtColor(src, gray, COLOR_RGB2GRAY); equalizeHist(gray, equalize); CascadeClassifier objDetector(argv[2]); vector<Rect> objs; objDetector.detectMultiScale(equalize, objs, 1.2, 2, 0, Size(30, 30)); src.copyTo(dst); vector<Rect>::const_iterator it = objs.begin(); for (; it != objs.end(); ++it) { rectangle(dst, Point(it->x, it->y), Point(it->x + it->width, it->y + it->height), Scalar(0, 0, 200), 2, 8); } imshow("src", src); imshow("dst", dst); waitKey(0); } catch (const char* str) { cerr << str << endl; } return 0; } ### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
argv[2] にカスケード定義ファイル (.xml) を引数で渡してると思いますが、そのファイルは実際存在していますか?
回答ありがとうございます!そのxmlファイルをビルドが終わったあとの実行プログラムが存在するx64Releaseのフォルダに置いて同じソリューション内でアクセスできるようにしています。(もしかしてこれがいけないのでしょうか。。。)
すいません、xmlをつけ忘れていたみたいでつけたらnew test1.jpg haarcascade_mcs_mouth.xml OpenCV: terminate handler is called! The last OpenCV error is: OpenCV(4.0.0-alpha) Error: Unknown error code -220 (OpenCL error CL_OUT_OF_RESOURCES (-5) during call: clEnqueueReadBuffer(q, handle=000001BF3C416040, CL_TRUE, 0, sz=120004, data=000001BF3CE870C0, 0, 0, 0)) in cv::ocl::OpenCLAllocator::map, file C:\build\master_winpack-build-win64-vc14\opencv\modules\core\src\ocl.cpp, line 5007と少し進み?ました