zoukankan      html  css  js  c++  java
  • Opencv读取并获取视频属性

    opencv中通过VideoCaptrue类对视频进行读取操作以及调用摄像头.常用的操作如下:

    1、常用构造函数

    1.VideoCapture类的构造函数:
    C++: VideoCapture::VideoCapture()
    C++: VideoCapture::VideoCapture(const string& filename)
    C++: VideoCapture::VideoCapture(int device)

    2、判断是否打开

    cap.isOpened()

    3、获取视频相关属性

    cout << "视频相关信息如下" << endl;
    cout << "宽度:" << cap.get(CV_CAP_PROP_FRAME_WIDTH) << endl;
    cout << "高度:" << cap.get(CV_CAP_PROP_FRAME_HEIGHT) << endl;

    cout << "总帧数:" << cap.get(CV_CAP_PROP_FRAME_COUNT) << endl;
    cout << "帧率(fps):" << cap.get(CV_CAP_PROP_FPS) << endl;

    4、逐帧读取

    Mat frame;

    cap >> frame;

    5、判断是否完毕

    frame.empty()

    6、显示视频

    imshow("readvideo", frame);

     1 include <opencv2opencv.hpp>
     2 #include <iostream>
     3 using namespace std;
     4 using namespace cv;
     5 int main()
     6 {
     7     cout <<CV_VERSION << endl;
     8     VideoCapture cap("c://dev//res//out.avi");
     9     if (!cap.isOpened())
    10     {
    11         cout << "视频文件打开失败" << endl;
    12     }
    13     cout << "视频相关信息如下" << endl;
    14     cout << "宽度:" << cap.get(CV_CAP_PROP_FRAME_WIDTH) << endl;
    15     cout << "高度:" << cap.get(CV_CAP_PROP_FRAME_HEIGHT) << endl;
    16     cout << "总帧数:" << cap.get(CV_CAP_PROP_FRAME_COUNT) << endl;
    17     cout << "帧率(fps):" << cap.get(CV_CAP_PROP_FPS) << endl;
    18 
    19     Mat frame;
    20     while (1)
    21     {
    22         cap >> frame;
    23         if (frame.empty())
    24         {
    25             break;
    26         }
    27         imshow("readvideo", frame);
    28         waitKey(20);//win10 vs2015返回值-1
    29     }
    30     getchar();
    31     return 0;
  • 相关阅读:
    数据类型
    泛型
    如何同步ORACLE和sqlserver的数据
    JBOss 端口没占用!
    Oracle数据库启动流程
    无法通过 128 (在表空间 TEMP 中) 扩展 temp 段
    数组的选择排序和冒泡排序
    Java条形码生成方案及二维码要点
    更改表字段的长度
    jquery 产品查看放大镜组件
  • 原文地址:https://www.cnblogs.com/newzol/p/8612464.html
Copyright © 2011-2022 走看看