Есть проблема. Я хочу найти лицо на фотографии с OpenCV/с++. При использование CascadeClassifer.detectmultisacle(gray,faces) вылетает ошибка Access Reading Violation _RIGHT was 0x..... and _LEFT was 0 в std::algorithm. Отладчик Visual Studio 2017. Вот код(p.s. ето камера с задержкой):
- Код: Выделить всё
#include "opencv2/opencv.hpp"
#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
#include "windows.h"
using namespace cv;
using namespace std;
int main(int argc, char** argv) {
String face_cascade_name = "C:\\Opencv-3.4.6\\sources\\data\\haarcascades\\haarcascade_frontalface_default.xml";
CascadeClassifier face_cascade;
RNG rng(12345);
Mat image;
face_cascade.load(face_cascade_name);
if (face_cascade.empty())
{
cerr << "NOP!" << endl;
}
namedWindow("Camera", WINDOW_AUTOSIZE);
int delay;
cout << "Write the delay: ";
cin >> delay;
VideoCapture png(0);
if (!png.isOpened()) // check if we succeeded
return -1;
Sleep(delay * 1000);
png >> image;
vector<Rect> faces;
Mat gray;
cvtColor(image, gray, COLOR_BGR2GRAY);
equalizeHist(gray, gray);
//(вот тут ошибается)face_cascade.detectMultiScale(gray, faces, 1.1, 2);
for (auto&& face : faces) {
}
imshow("Camera", image);
waitKey(0);
}
Помогите и скажите как решить.
С Уважением,
samewars.