detectMutliScale opencv错误

时间:2018-04-25 17:39:24

标签: opencv

我在此代码中遇到haarcascade frontalface检测面的问题。当我编译时,有像这样的

未处理的异常

Exception-1

Exception-2

Exception-3

代码detectMultiScale出错。以下是C ++中代码的片段:

#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <vector>
#include <iostream>
#include <stdio.h>

using namespace std;
using namespace cv;


int main(int argc, const char** argv)
{
    CascadeClassifier face_cascade;
    face_cascade.load("haarcascade_frontalface_default.xml");

    VideoCapture captureDevice;
    captureDevice.open(0);

    Mat captureFrame;
    Mat grayscaleFrame;

    namedWindow("Result Capture", 1);
    while (true)
    {
        captureDevice>>captureFrame;

        cvtColor(captureFrame, grayscaleFrame, CV_BGR2GRAY);
        equalizeHist(grayscaleFrame, grayscaleFrame);

        std::vector<Rect> faces;

        CascadeClassifier::CascadeClassifier("haarcascade_frontalface_default.xml").detectMultiScale(grayscaleFrame, faces, 1.1, 2, 0, Size(30, 30), Size(130, 130));

        for (int i = 0; i < faces.size(); i++)
        {
            Point pt1(faces[i].x + faces[i].width, faces[i].y + faces[i].height);
            Point pt2(faces[i].x, faces[i].y);

            rectangle(captureFrame, pt1, pt2, cvScalar(0, 255, 0, 0), 1, 8, 0);
        }


        imshow("Resutl Capture", captureFrame);

        waitKey(33);
    }
}

0 个答案:

没有答案