【OpenCV3】視訊讀寫cv::VideoCapture和cv::VideoWriter
OpenCV3和OpenCV2類似,視訊的讀、寫操作,分別通過cv::VideoCapture和cv::VideoWriter兩個類來實現。
1、視訊的讀取操作cv::VideoCapture
cv::VideoCapture既支援視訊檔案的讀取,也支援從攝像機中視訊的讀取。cv::VideoCapture物件的建立方式有以下三種:
第二種方式是從攝像機中讀取視訊,這種情況下,我們會給出一個識別符號,用於表示我們想要訪問的攝像機,及其與作業系統的握手方式。對於攝像機而言,這個標誌符就是一個標誌數字——如果只有1個攝像機,那麼就是0,如果系統中有多個攝像機,那麼只要將其向上增加即可。識別符號另外一部分是攝像機域(camera domain),用於表示攝像機的型別,這個域值可以是下面任一預定義常量。
以這種方式建立視訊捕獲物件時,我們所傳遞的識別符號是域索引和攝像機索引的和。例如:
這個例子中cv::VideoCapture將嘗試開啟第2個(編號從0開始)1394攝像機。多數情況下,由於我們只有一個攝像機,因此沒必要指定攝像機的域,此時使用cv::CAP_ANY是一種高效的方式(也即是0,所以不用特意指定)。
第三種方式僅僅建立一個捕獲物件,而不提供任何關於開啟的資訊。建立以後通過成員函式open()來設定開啟的資訊。open()操作也有以上兩種方式。
將視訊幀讀取到cv::Mat矩陣中,有兩種方式:一種是read()操作;另一種是 “>>”操作。
下面是讀取視訊並顯示的示例程式碼:
上面的程式碼,我們使用了cv::VideoCapture的成員函式get()並設定標識cv::CAP_PROP_FRAME_COUNT獲取了讀取視訊的幀總數。同樣,我們可以指定其他標識,來獲取讀取視訊或攝像頭的其他屬性。另外,我們也可以使用成員函式set(),設定相應屬性的值。cv::VideoCapture中提供的屬性標識如下圖所示。
2、視訊的寫操作cv::VideoWriter
cv::VideoWriter物件的建立有兩種方式,第一種是使用建構函式的形式,第二種使用open()的方式,具體如下:
同樣,向建立後的cv::VideoWriter物件寫入影像也有兩種方式,即write()操作和“<<”操作:
版權宣告:本文為博主原創文章,未經博主允許不得轉載。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
相關文章
- [QT]QSharedMemory讀寫cv::MatQT
- OpenCV(cv::Point、cv::Rect、cv::Mat)OpenCV
- cv2 影像的讀取
- 煩死人的“cv2.cv2”
- Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()PythonOpenCV
- 7.72 CV
- CNN之於CV和NLPCNN
- python使用cv2讀取影像Python
- CV待研究
- cv::fitLine用法
- OpenCV(cv::minMaxLoc())OpenCV
- OpenCV(cv::convertScaleAbs())OpenCV
- OpenCV(cv::Canny())OpenCV
- OpenCV(cv::bilateralFilter())OpenCVFilter
- OpenCV(cv::circle())OpenCV
- OpenCV(cv::NAryMatIterator)OpenCV
- OpenCv(cv::undistort())OpenCV
- OpenCV(cv::findChessboardCorners())OpenCV
- python OpenCV VideoWriter 視訊格式及大小PythonOpenCVIDE
- umich cv-1
- OpenCV(cv::bitwise_not())OpenCV
- OpenCV(cv::dnn::blobFromImage())OpenCVDNN
- OpenCV(cv::Mat::setTo())OpenCV
- cv2可刪
- umich cv-2-1
- umich cv-2-2
- 【備忘】解決錯誤:undefined reference to `cv::imread(cv::String const&, int)‘Undefined
- cv2.imread不能正常讀取gif格式圖片
- 【解決方法】vscode import cv2報錯Import "cv2" could not be resolvedPylancereportMissingImportsVSCodeImport
- 10. 邊緣保留濾波EPF-cv2.bilateralFilter()、cv2.pyrMeanShiftFiltering()Filter
- Opencv-Python 影象透視變換cv2.warpPerspectiveOpenCVPython
- 計算機視覺--CV技術指南文章彙總計算機視覺
- OpenCV計算機視覺學習(1)——影像基本操作(影像視訊讀取,ROI區域擷取,常用cv函式解釋)OpenCV計算機視覺函式
- 計算機視覺(CV)最新筆試常見題「1」計算機視覺筆試
- anaconda安裝cv2庫
- OpenCV(模板類 cv::Vec<T, cn>)OpenCV
- 影像讀取庫合集——cv2, PIL, skimage與numpy, pytorch(ToPILimage)PyTorch
- 從曠視赴港上市,看懂 CV 四小龍的生意經
- CV演算法:立體照片(Stereo)演算法