Вы находитесь на странице: 1из 2

Лабораторная работа 4

«Работа с видео и камерой»

Примечание: для работы с видео потребуется наличие в папке с проектом


динамической библиотеки opencv_ffmpeg310.dll (совместно с библиотекой
opencv_world310.dll).

1. Загрузить с помощью объекта VideoCapture видео из файла


small.mp4 и отобразить его кадры в отдельном окне OpenCV с
помощью функции imshow.
2. Используя у VideoCapture функцию get с одним из следующих
параметров CV_CAP_PROP_FRAME_WIDTH и
CV_CAP_PROP_FRAME_HEIGHT, получить и вывести в консоль
информацию о ширине и высоте изображения видеофайла.
3. Получить данные о количестве кадров и длительности видео
(CV_CAP_PROP_POS_FRAMES, CV_CAP_PROP_POS_MSEC).
4. Запишите открытый видеофайл на диск, предварительно
переведя его кадры в оттенки серого (например, с помощью
функции cvtColor).
Для записи файла примените объект VideoWriter, который
создается с помощью конструктора вида:
VideoWriter(const String &filename, int fourcc,
double fps, Size frameSize, bool isColor =
true);
например
cv::VideoWriter rec("test.avi",
cv::VideoWriter::fourcc('M','S','V','C'), 20,
cv::Size(640, 480));
Для записи кадров видео в файл вызывайте у объекта rec метод
write, передавая в качестве аргумента изображение кадра. Перед
записью измените размер изображения до требуемого (640x480).
5. Сохраните в файл 2.mp4 только четные кадры исходного
цветного видео (frames 0, 2, 4, 6, ….).
6. Создайте программу, отображающую видео от камеры.
Обеспечьте выход их программы по нажатию заранее
назначенной клавиши (например, Esc или Space).
7. Переверните выводимое с камеры изображение сверху вниз (по
вертикали).
8. Сделайте, чтобы выводимое видео при проигрывании в окне
вращалось вокруг своего цента (примените функцию warpAffine
и матрицу поворота с разными углами в зависимости от номера
кадра).