Программа OpenCV C ++ для размытия видео

Опубликовано: 15 Июля, 2021

Ниже приводится объяснение кода C ++ для размытия видео на C ++ с помощью инструмента OpenCV.

Что нужно знать:

(1) Код будет компилироваться только в среде Linux.

(2) Для запуска в Windows используйте файл «blur_video.o» и запустите его в cmd. Однако, если он не запускается (проблема в системной архитектуре), скомпилируйте его в Windows, внося подходящие и очевидные изменения в код, например: Используйте <iostream.h> вместо <iostream>.

(3) Команда компиляции: g ++ w blur_vid.cpp o blur_vid `pkgconfig libs opencv`

(4) Запустить команду: ./blur_vid

(5) Видео Bumpy.mp4 должно находиться в том же каталоге, что и код.

Перед запуском кода убедитесь, что в вашей системе // установлен OpenCV.

Объяснение фрагментов кода:

 #include "opencv2 / highgui / highgui.hpp"
// highgui - интерфейс для захвата видео и изображений.
#include <opencv2 / imgproc / imgproc.hpp> // Для работы с изображениями
#include <iostream>
// Заголовочные файлы для выполнения ввода и вывода.

using namespace cv;
// Пространство имен, в котором находятся все функции C ++ OpenCV.

используя пространство имен std;
// Для операций ввода-вывода.

int main ()
{
    Capture VideoCapture ("Bumpy.mp4");
    // cap - объект захвата видео класса, который пытается захватить Bumpy.mp4
    if (! cap.isOpened ()) // isOpened () возвращает true, если захват был инициализирован.
    {
        cout << "Не удается открыть видеофайл.  n";
        возврат -1;
    }

    двойной fps = cap.get (CV_CAP_PROP_FPS); // получаем количество кадров в секунду видео
    // Функция get используется для получения свойства из элемента.
    // Пример:
    // CV_CAP_PROP_POS_MSEC: текущая временная метка захвата видео.
    // CV_CAP_PROP_POS_FRAMES: индекс следующего кадра.
 
    namedWindow ("A_good_name", CV_WINDOW_AUTOSIZE); // создаем окно под названием "MyVideo"
    // первый аргумент: имя окна.
    // второй аргумент: типы флагов:
    // WINDOW_NORMAL: пользователь может изменить размер окна.
    // WINDOW_AUTOSIZE: размер окна автоматически настраивается на 
    // соответствовать отображаемому изображению ()), и вы не можете изменить размер окна вручную.
    // WINDOW_OPENGL: окно будет создано с поддержкой OpenGL.

    в то время как (1)
    {
        Каркас коврика;
        // Объект Mat - это базовый контейнер изображения. рамка является объектом мат.
        if (! cap.read (frame)) // если не удалось, прервать цикл
        // read () декодирует и захватывает следующий кадр.
        {
            cout << " n Не удается прочитать видеофайл.  n";
            перерыв;
        }
    размытие (рамка, рамка, размер (10,10)); // Чтобы размыть изображение.
    imshow ("A_good_name", кадр);
    // первый аргумент: имя окна.
    // второй аргумент: изображение для показа (объект Mat).
    
    if (waitKey (30) == 27) // Ждем нажатия клавиши esc для выхода
    {
        перерыв;
    }
}
возврат 0;
}
// КОНЕЦ ПРОГРАММЫ

Об авторе:

Адитья Пракаш учится в Индийском институте. информационных технологий, Вадодара. Он в основном кодирует на C ++. Его девиз: «Пока все хорошо». Он играет в крикет, смотрит фильмы о супергероях, футбол и любит отвечать на вопросы.

Если вы также хотите продемонстрировать здесь свой блог, см. GBlog, где можно писать в гостевом блоге на GeeksforGeeks.