opencv detectMultiScale

我试图学习opencv和对象检测。 我在opencv样本中使用objecdetection.cpp,当我运行它时,我得到这个错误

在这里输入图像说明

级联加载完全罚款,也是相机唯一的问题是detectmultiscale,因为每当我评论它的程序不会崩溃在这里是objectdecetion2.cpp

#include "opencv2/objdetect.hpp" #include "opencv2/videoio.hpp" #include "opencv2/highgui.hpp" #include "opencv2/imgproc.hpp" #include <iostream> #include <stdio.h> using namespace std; using namespace cv; /** Function Headers */ void detectAndDisplay(Mat frame); /** Global variables */ String face_cascade_name = "..\\Debug\\haarcascade_frontalface_alt.xml"; String eyes_cascade_name = "..\\Debug\\haarcascade_eye_tree_eyeglasses.xml"; CascadeClassifier face_cascade; CascadeClassifier eyes_cascade; String window_name = "Capture - Face detection"; /** * @function main */ int main(void) { VideoCapture capture; Mat frame; //-- 1. Load the cascade if (!face_cascade.load(face_cascade_name)){ printf("--(!)Error loading face cascade\n"); return -1; }; if (!eyes_cascade.load(eyes_cascade_name)){ printf("--(!)Error loading eyes cascade\n"); return -1; }; //-- 2. Read the video stream capture.open(0); if (!capture.isOpened()) { printf("--(!)Error opening video capture\n"); return -1; } while (capture.read(frame)) { if (frame.empty()) { printf(" --(!) No captured frame -- Break!"); break; } //-- 3. Apply the classifier to the frame detectAndDisplay(frame); //-- bail out if escape was pressed int c = waitKey(10); if ((char)c == 27) { break; } } return 0; } /** * @function detectAndDisplay */ void detectAndDisplay(Mat frame) { std::vector<Rect> faces; Mat frame_gray; cvtColor(frame, frame_gray, COLOR_BGR2GRAY); equalizeHist(frame_gray, frame_gray); face_cascade.detectMultiScale(frame_gray, faces, 1.1, 2, 0, Size(80, 80)); imshow(window_name, frame); } 

Solutions Collecting From Web of "opencv detectMultiScale"

你可能会遇到一个OpenCV错误,在这里描述: http : //code.opencv.org/issues/3710

您发布的代码对我来说看起来不错,否则。

您发布的代码是正确的! 但是我怀疑你的opencv配置不正确! 如果你在Windows上工作,请检查你的.dll文件和lib文件!