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 <opencv2\opencv.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;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM