OpenCV加载视频

简介: OpenCV加载视频

一、加载视频

//视频路径
  QString appPath = QCoreApplication::applicationDirPath();
  QString videoPath = appPath + "/vtest.avi";
  cv::VideoCapture capture;
  capture.open(videoPath.toStdString(),CAP_FFMPEG);
  //从摄像头读取
  //capture.open(0, CAP_DSHOW);
  cv::Mat frame;
  while (true) {
    //读帧
    bool ret = capture.read(frame);
    if (!ret)
      break;
    imshow("frame", frame);
    //添加帧处理 等待 100 毫秒,检查用户是否按下键盘上的按键
    char c = waitKey(100);
    //按下的是 ESC 键 (ASCII 值为 27),则跳出循环,停止播放视频
    if (c == 27)
      break;
  }
  waitKey(0);
  destroyAllWindows();

二、获取视频属性

//视频路径
  QString appPath = QCoreApplication::applicationDirPath();
  QString videoPath = appPath + "/vtest.avi";
  cv::VideoCapture capture;
  capture.open(videoPath.toStdString(),CAP_FFMPEG);
  qDebug() << u8"高:" << capture.get(CAP_PROP_FRAME_HEIGHT);
  qDebug() << u8"宽:" << capture.get(CAP_PROP_FRAME_WIDTH);
  qDebug() << u8"帧率FPS:" << QString::number(capture.get(CAP_PROP_FPS));
  qDebug() << u8"总帧率:" << capture.get(CAP_PROP_FRAME_COUNT);

三、保存视频

//视频路径
  QString appPath = QCoreApplication::applicationDirPath();
  QString videoPath = appPath + "/vtest.avi";
  cv::VideoCapture capture;
  capture.open(videoPath.toStdString(), CAP_FFMPEG);
  qDebug() << u8"高:" << capture.get(CAP_PROP_FRAME_HEIGHT);
  qDebug() << u8"宽:" << capture.get(CAP_PROP_FRAME_WIDTH);
  qDebug() << u8"帧率FPS:" << capture.get(CAP_PROP_FPS);
  qDebug() << u8"总帧率:" << capture.get(CAP_PROP_FRAME_COUNT);
  //保存视频路径
  QString savevideoPath = appPath + "/output.avi";
  cv::VideoWriter writer(savevideoPath.toStdString(), capture.get(CAP_PROP_FOURCC), capture.get(CAP_PROP_FPS), Size(capture.get(CAP_PROP_FRAME_WIDTH), capture.get(CAP_PROP_FRAME_HEIGHT)));
  cv::Mat frame;
  while (true) {
    //读帧
    bool ret = capture.read(frame);
    if (!ret)
      break;
    imshow("frame", frame);
    //添加帧处理 
    writer.write(frame);
    //等待 100 毫秒,检查用户是否按下键盘上的按键
    char c = waitKey(100);
    //按下的是 ESC 键 (ASCII 值为 27),则跳出循环,停止播放视频
    if (c == 27)
      break;
  }
  capture.release();
  writer.release();
  waitKey(0);
  destroyAllWindows();


相关文章
|
6月前
|
传感器 API 开发工具
OpenCV视频读写模块(videoio)
OpenCV视频读写模块(videoio)
OpenCV视频读写模块(videoio)
|
1月前
|
机器学习/深度学习 算法 数据可视化
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)-2
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)
124 0
|
1月前
|
计算机视觉 Python
OpenCV获取视频文件的属性并动态显示实战(附Python源码)
OpenCV获取视频文件的属性并动态显示实战(附Python源码)
66 0
|
1月前
|
机器学习/深度学习 Ubuntu Linux
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)-1
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)
90 1
|
1月前
|
存储 监控 开发工具
Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现相机图像转换为AVI视频格式(C++)
Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现相机图像转换为AVI视频格式(C++)
46 0
|
1月前
|
计算机视觉 Python 索引
【Python Opencv】图片与视频的操作
【Python Opencv】图片与视频的操作
119 0
【Python Opencv】图片与视频的操作
|
20天前
|
Java 开发工具 计算机视觉
Java使用OpenCV3.2实现视频读取与播放
Java使用OpenCV3.2实现视频读取与播放
13 0
|
1月前
|
存储 计算机视觉 流计算
【OpenCV】计算视频的光流并跟踪物体calcOpticalFlowPyrLK
【OpenCV】计算视频的光流并跟踪物体calcOpticalFlowPyrLK
42 0
|
1月前
|
编解码 API 计算机视觉
opencv从视频文件读取视频内容,从摄像头读取保存视频内容
opencv从视频文件读取视频内容,从摄像头读取保存视频内容
|
1月前
|
缓存 算法 计算机视觉
OpenCV图像处理-视频分割静态背景-MOG/MOG2/GMG
1.概念介绍 视频背景扣除原理:视频是一组连续的帧(一幅幅图组成),帧与帧之间关系密切(GOP/group of picture),在GOP中,背景几乎是不变的,变的永远是前景。
167 0