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();


相关文章
|
7月前
|
机器学习/深度学习 算法 数据可视化
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)-2
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)
|
2月前
|
计算机视觉
Opencv学习笔记(八):如何通过cv2读取视频和摄像头来进行人脸检测(jetson nano)
如何使用OpenCV库通过cv2模块读取视频和摄像头进行人脸检测,并提供了相应的代码示例。
120 1
|
7月前
|
计算机视觉 Python
OpenCV获取视频文件的属性并动态显示实战(附Python源码)
OpenCV获取视频文件的属性并动态显示实战(附Python源码)
115 0
|
2月前
|
编解码 关系型数据库 计算机视觉
Opencv学习笔记(十一):opencv通过mp4保存为H.264视频
本文介绍了如何在OpenCV中通过使用cisco开源的openh264库来解决不支持H.264编码的问题,并提供了完整的代码示例。
146 0
Opencv学习笔记(十一):opencv通过mp4保存为H.264视频
|
4月前
|
计算机视觉 索引
OpenCV读取视频失败<无可用信息,未为 opencv_world453.dll 加载任何符号> cv::VideoCapture
本文介绍了解决OpenCV读取视频失败的错误,指出问题通常由视频路径错误或摄像头索引错误导致,并提供了相应的解决方法。
OpenCV读取视频失败<无可用信息,未为 opencv_world453.dll 加载任何符号> cv::VideoCapture
|
7月前
|
机器学习/深度学习 Ubuntu Linux
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)-1
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)
|
7月前
|
计算机视觉 Python 索引
【Python Opencv】图片与视频的操作
【Python Opencv】图片与视频的操作
199 0
【Python Opencv】图片与视频的操作
|
7月前
|
存储 监控 开发工具
Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现相机图像转换为AVI视频格式(C++)
Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现相机图像转换为AVI视频格式(C++)
79 0
|
5月前
|
机器学习/深度学习 XML 计算机视觉
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,它提供了大量的函数和工具,用于处理图像和视频数据。
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,它提供了大量的函数和工具,用于处理图像和视频数据。
|
6月前
|
Java 开发工具 计算机视觉
Java使用OpenCV3.2实现视频读取与播放
Java使用OpenCV3.2实现视频读取与播放
79 0