opencv обнаруживает проблему MultiScale, приводящую к преждевременному завершению работы программы

Я пытаюсь написать простой код обнаружения лица с использованием openCV. Программа запускается, и веб-камера загорается, как будто она собирается открыться, но примерно через 5 секунд программа закрывается до того, как откроется окно кадра.

Изображение командной строки

Сначала я подумал, что загружаю не xml-файл должным образом, но потом заметил, что это происходит только тогда, когда я включаю строку классификатора каскада:

face_cascade.detectMultiScale (frame_gray, Faces, 1.1, 3,0 | CASCADE_SCALE_IMAGE, Размер (30, 30));

Когда я закомментирую эту строку, программа, кажется, работает нормально в том смысле, что открывается окно веб-камеры. Я считаю, что я правильно заполнил параметры, поэтому я не уверен, почему у меня возникла эта проблема.

Вот мой код:

#include <iostream>
#include <string>
#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/core/core.hpp"#include "opencv2/opencv.hpp"#include "opencv2/objdetect/objdetect.hpp"
using namespace cv;
using namespace std;

//Global Variables
String face_cascade_name = "C:/Users/Administrator/Desktop/mirrorOS/External
Libraries/OpenCV/etc/haarcascades/haarcascade_frontalface_alt.xml";

CascadeClassifier face_cascade;int main() {

face_cascade.load(face_cascade_name);
if (face_cascade.load(face_cascade_name)) {

cout << "Success" << endl;
}

Mat webcam; //create a mat object stores the current frame
Mat frame_gray; //gray frameVideoCapture cap(0); //captures video from webcam
if (!cap.isOpened()) {
return -1;
}

while (cap.read(webcam)) {

cvtColor(webcam, frame_gray, COLOR_BGR2GRAY);
equalizeHist(frame_gray, frame_gray);

vector<Rect> faces;

face_cascade.detectMultiScale(frame_gray, faces, 1.1, 3,0 | CASCADE_SCALE_IMAGE, Size(30, 30));

for (size_t i = 0; i < faces.size(); i++) {Rect face_i = faces[i];
rectangle(webcam, face_i, CV_RGB(0, 255, 0), 3);

}

imshow("Webcam", webcam);
waitKey(1);
destroyAllWindows();
}

return 0;
}

Я попытался изменить значения параметров для cascadeClassifier, но, похоже, ничего не работает, поэтому я не совсем уверен, что я делаю неправильно.


Просматривая отладчик, у меня есть необработанное исключение именно в этой строке:

Необработанное исключение в 0x00007FFE3488BBF2 (opencv_world343d.dll) в faceRecognition.exe: 0xC0000005: расположение чтения нарушения доступа 0x0000022B0608F000.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]