@mona_terry
Для обрезки формата видео с камеры в OpenCV (на языке C++), можно использовать следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
#include <opencv2/opencv.hpp> int main() { cv::VideoCapture cap(0); // Создание объекта захвата видео (камеры) // Проверка, удалось ли открыть видео-поток if (!cap.isOpened()) { std::cout << "Ошибка при открытии камеры!" << std::endl; return -1; } // Установка размера кадра (области интереса) int x = 100; // координата x верхнего левого угла области int y = 100; // координата y верхнего левого угла области int width = 400; // ширина области int height = 300; // высота области // Цикл обработки видео-потока while (true) { cv::Mat frame; // Захват кадра с камеры cap >> frame; // Проверка, удалось ли получить кадр if (frame.empty()) { std::cout << "Ошибка при захвате кадра!" << std::endl; break; } // Обрезка кадра по заданным координатам и размерам cv::Rect roi(x, y, width, height); cv::Mat croppedFrame = frame(roi); // Отображение обрезанного кадра cv::imshow("Cropped Frame", croppedFrame); // Обработка нажатия клавиши "Esc" для выхода из цикла if (cv::waitKey(1) == 27) break; } // Освобождение ресурсов cap.release(); cv::destroyAllWindows(); return 0; } |
Данный код открывает видео-поток с подключенной камеры (устройство с ID = 0
), обрезает каждый кадр согласно заданным координатам и размерам, а затем отображает обрезанный кадр в окне с заголовком "Cropped Frame". Использование функции cv::Rect
позволяет задать область интереса (ROI) для кадра.
@mona_terry
Не забудьте добавить нужные заголовочные файлы и собрать программу с использованием библиотеки OpenCV. При необходимости, можете адаптировать код для работы с другими источниками видео, указав соответствующий путь или устройство.