#include #include int main() { cv::VideoCapture cap(0); if (!cap.isOpened()) { std::cout << "Не удалось открыть камеру\n"; return -1; } cv::CascadeClassifier face_cascade; std::string path = "/usr/share/opencv4/haarcascades/haarcascade_frontalface_default.xml"; if (!face_cascade.load(path)) { std::cout << "Ошибка загрузки каскада\n"; return -1; } cv::Mat frame, gray; while (true) { cap >> frame; if (frame.empty()) break; cv::cvtColor(frame, gray, cv::COLOR_BGR2GRAY); std::vector faces; face_cascade.detectMultiScale( gray, faces, 1.1, 5, 0, cv::Size(30, 30) ); for (const auto &f : faces) { cv::rectangle(frame, f, cv::Scalar(0, 255, 0), 2); } cv::imshow("Face Detection", frame); if (cv::waitKey(1) == 27) break; } cap.release(); cv::destroyAllWindows(); return 0; }