Извините, если заголовок дал вам неправильную идею, я попытался сделать ее как можно более кратким. Короче говоря, то, что я пытаюсь сделать, это обнаружить лицо с алгоритмом Виола-Джонса (уже реализовано), сохранить его в отдельном изображении, преобразовать это изображение в оттенки серого, затем отбросить изображение в оттенках серого обратно в его «исходное положение», в результате чего отображение веб-камеры со всеми лицами (и любые ложные срабатывания, я полагаю), окрашенные в серый цвет и окруженные зеленым прямоугольником. Тем не менее, я получаю следующее сообщение об ошибке:OpenCV, динамическая модификация отображения веб-камеры
Необработанное исключение в 0x771115de в proba.exe: Microsoft C++ исключение: резюме :: Exception в> ячейку памяти 0x003ef2c8 ..
Это мой код (соответствующая часть), любые предложения/рекомендации будут оценены:
face_cascade.detectMultiScale(frame_gray, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, Size(30, 30));
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);
Rect myROI(pt1, pt2);
Mat croppedImage;
Mat(frame, myROI).copyTo(croppedImage);
cvtColor(croppedImage, croppedImage, CV_BGR2GRAY); //the last four lines process the image
croppedImage.copyTo(frame(Rect(pt1, croppedImage.size()))); //this should copy the image back into its' original location
rectangle(frame, pt1, pt2, cvScalar(0, 255, 0, 0), 1, 8, 0);
}
//-- Show what you got
imshow(window_name, frame);
И жаль, если мне не хватает очевидного ответа.
Понятно, что вокруг нет никакого пути. Все это не важно, я просто хотел что-то проверить. В любом случае, спасибо за ваше время. – MrLinjak
Я отредактировал свой ответ. Посмотрите, работает ли это для вас. – Alexey
Работает как шарм. Спасибо, сэр. – MrLinjak