OpenCV 从文件中读取视频并播放
生活随笔
收集整理的這篇文章主要介紹了
OpenCV 从文件中读取视频并播放
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在OpenCV中要獲取一個視頻,需要創建一個VideoCapture對象,指定要讀取的視頻文件:
1.創建讀取視頻的對象
cap = cv.VideoCapture(filepath)參數:
- filepath: 視頻文件路徑
2.視頻的屬性信息
2.1 獲取視頻的某些屬性,
retval = cap.get(propId)參數:
-
propId: 從0到18的數字,每個數字表示視頻的屬性
常用屬性有:
| 0 | cv2.CAP_PROP_POS_MSEC | 視頻文件的當前位置(ms) |
| 1 | cv.CAP_PROP_POS_FRAMES | 從0開始索引幀,幀位置 |
| 2 | cv.CAP_PROP_POS_AVI_RATIO | 視頻文件的相對位置(0表示開始 1表示結束) |
| 3 | cv.CAP_PROP_FRAME_WIDTH | 視頻流的幀寬度 |
| 4 | cv.CAP_PROP_FRAME_HEIGHT | 視頻流的幀高度 |
| 5 | cv.CAP_PROP_FPS | 幀率 |
| 6 | cv.CAP_PROP_FOURCC | 編解碼器四字符代碼 |
| 7 | cv.CAP_PROP_FRAME_COUNT | 視頻文件的幀 |
2.2. 修改視頻的屬性信息
cap.set(propId,value)參數:
- proid: 屬性的索引,與上面的表格相對應
- value: 修改后的屬性值
3.判斷圖像是否讀取成功
isornot = cap.isOpened()-
若讀取成功則返回true,否則返回False
ret, frame = cap.read()
4.獲取視頻的一幀圖像
ret, frame = cap.read()參數:
- ret: 若獲取成功返回True,獲取失敗,返回False
- Frame: 獲取到的某一幀的圖像
5.調用cv.imshow()顯示圖像
在顯示圖像時使用cv.waitkey()設置適當的持續時間,如果太低視頻會播放的非常快,如果太高就會播放的非常慢,通常情況下我們設置25ms就可以了。
6.調用cap.realease()函數
cap.realease()函數可以將視頻釋放掉。
import cv2 as cv# 1.獲取視頻對象 cap = cv.VideoCapture('./1.wmv')# 2.判斷是否讀取成功 while(cap.isOpened()):# 3.獲取每一幀圖像ret, frame = cap.read()# 4. 獲取成功顯示圖像if ret == True:cv.imshow('frame', frame)# 5.每一幀間隔為25msif cv.waitKey(25) & 0xFF == ord('q'):break# 6.釋放視頻對象 cap.release() cv.destroyAllWindows()總結
以上是生活随笔為你收集整理的OpenCV 从文件中读取视频并播放的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenCV BRIEF角点检测
- 下一篇: OpenCV meanshift目标追踪