opencv3/C++实现视频读取、视频写入

yipeiwu_com6年前Python基础

视频读取

视频读取,主要利用VideoCapture类下的方法打开视频并获取视频中的帧,具体示例如下:

#include<iostream>
#include<opencv2/opencv.hpp>
using namespace cv;

int main()
{
  VideoCapture capture;
  Mat frame;
  frame= capture.open("E:/image/a1.avi");
  if(!capture.isOpened())
  {
    printf("can not open ...\n");
    return -1;
  }
  namedWindow("output", CV_WINDOW_AUTOSIZE);

  while (capture.read(frame))
  {
    imshow("output", frame);
    waitKey(10);
  }
  capture.release();
  return 0;
}

capture.open()的参数为0时为读取摄像头:

frame= capture.open(0);

视频写入

通过摄像头获取视频,然后通过capture.get(CV_CAP_PROP_FRAME_WIDTH), capture.get(CV_CAP_PROP_FRAME_HEIGHT)获取当前帧的宽度和高度,创建一个VideoWriter类对象writer进行视频的写入。

写入前可进行视频的简单处理。

#include<iostream>
#include<opencv2/opencv.hpp>
using namespace cv;

int main()
{
  VideoCapture capture;
  capture.open(0);
  if(!capture.isOpened())
  {
    printf("can not open ...\n");
    return -1;
  }

  Size size = Size(capture.get(CV_CAP_PROP_FRAME_WIDTH), capture.get(CV_CAP_PROP_FRAME_HEIGHT));
  VideoWriter writer;
  writer.open("E:/image/a2.avi", CV_FOURCC('M', 'J', 'P', 'G'), 10, size, true);

  Mat frame, gray;
  namedWindow("output", CV_WINDOW_AUTOSIZE);

  while (capture.read(frame))
  {
    //转换为黑白图像
    cvtColor(frame, gray, COLOR_BGR2GRAY); 
    //二值化处理 
    threshold(gray, gray, 0, 255, THRESH_BINARY | THRESH_OTSU);
    cvtColor(gray, gray, COLOR_GRAY2BGR);
    imshow("output", gray);
    writer.write(gray);
    waitKey(10);
  }

  waitKey(0);
  capture.release();
  return 0;
}

以上这篇opencv3/C++实现视频读取、视频写入就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python中asyncio与aiohttp入门教程

Python中asyncio与aiohttp入门教程

很多朋友对异步编程都处于“听说很强大”的认知状态。鲜有在生产项目中使用它。而使用它的同学,则大多数都停留在知道如何使用 Tornado、Twisted、Gevent 这类异步框架上,出现...

Python生成验证码、计算具体日期是一年中的第几天实例代码详解

1、约瑟夫环问题 《幸运的基督徒》 有15个基督徒和15个非基督徒在海上遇险,为了能让一部分人活下来不得不将其中15个人扔到海里面去,有个人想了个办法就是大家围成一个圈,由某个人开始从1...

python如何基于redis实现ip代理池

这篇文章主要介绍了python如何基于redis实现ip代理池,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 使用apschedule...

python实现将excel文件转化成CSV格式

如下所示: import pandas as pd data = pd.read_excel('123.xls','Sheet1',index_col=0) data.to_csv(...

python使用递归的方式建立二叉树

python使用递归的方式建立二叉树

树和图的数据结构,就很有意思啦。 # coding = utf-8 class BinaryTree: def __init__(self, root_obj)...