Форум программистов, компьютерный форум, киберфорум
Наши страницы
Dmitriy_M
Войти
Регистрация
Восстановить пароль
Рейтинг: 2.50. Голосов: 2.

Создаем видео посредством OpenCV, QImage->cv::Mat

Запись от Dmitriy_M размещена 19.02.2013 в 22:09

OpenCV предоставляет API, для создания простого видео.
Почему простой? Потому что нет поддержки звуковой дорожки и субтитров.
Основной класс, для создания видео является cv::VideoWriter.

Рассмотрим конструктор
C++ (Qt)
1
VideoWriter::VideoWriter(const string& filename, int fourcc, double fps, Size frameSize, bool isColor=true)
filename это имя выходного файла;
fps кадров в секунду;
fourcc 4 символа обозначающий кодек;
frameSize размер кадра(ширина, высота);
isColor флаг цветности.
Поподробнее о кодеках и fourcc. Гарантируется следующие кодеки:
  • CV_FOURCC('P','I','M','1') = MPEG-1 codec
  • CV_FOURCC('M','J','P','G') = motion-jpeg codec (does not work well)
  • CV_FOURCC('M','P','4','2') = MPEG-4.2 codec
  • CV_FOURCC('D','I','V','3') = MPEG-4.3 codec
  • CV_FOURCC('D','I','V','X') = MPEG-4 codec
  • CV_FOURCC('U','2','6','3') = H263 codec
  • CV_FOURCC('I','2','6','3') = H263I codec
  • CV_FOURCC('F','L','V','1') = FLV1 codec
Исключительно для Windows:
-1 создает окно выбора кодека во время выполнения;
0 создает не сжатый AVI.

Сама запись производится оператором <<, который принимает на вход Mat.
Пример захвата видео с камеры и записи видео средствами OpenCV.
Иногда в видео требуется что-то впечатать, или использовать имеющиеся изображения в другом формате, и тут привожу пример конвертации QImage в cv::Mat
C++ (Qt)
1
2
3
4
5
6
7
8
cv::Mat qimage2mat(const QImage& qimage)
{
      cv::Mat mat = cv::Mat(qimage.height(), qimage.width(), CV_8UC4, (uchar*)qimage.bits(), qimage.bytesPerLine());
      cv::Mat mat2 = cv::Mat(mat.rows, mat.cols, CV_8UC3 );
      int from_to[] = { 0,0,  1,1,  2,2 };
      cv::mixChannels( &mat, 1, &mat2, 1, from_to, 3 );
      return mat2;
}
Размещено в Без категории
Просмотров 2345 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru