OpenCV 从文件中读取视频并播放
生活随笔
收集整理的這篇文章主要介紹了
OpenCV 从文件中读取视频并播放
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在OpenCV中要獲取一個(gè)視頻,需要?jiǎng)?chuàng)建一個(gè)VideoCapture對(duì)象,指定要讀取的視頻文件:
1.創(chuàng)建讀取視頻的對(duì)象
cap = cv.VideoCapture(filepath)參數(shù):
- filepath: 視頻文件路徑
2.視頻的屬性信息
2.1 獲取視頻的某些屬性,
retval = cap.get(propId)參數(shù):
-
propId: 從0到18的數(shù)字,每個(gè)數(shù)字表示視頻的屬性
常用屬性有:
| 0 | cv2.CAP_PROP_POS_MSEC | 視頻文件的當(dāng)前位置(ms) |
| 1 | cv.CAP_PROP_POS_FRAMES | 從0開(kāi)始索引幀,幀位置 |
| 2 | cv.CAP_PROP_POS_AVI_RATIO | 視頻文件的相對(duì)位置(0表示開(kāi)始 1表示結(jié)束) |
| 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)參數(shù):
- proid: 屬性的索引,與上面的表格相對(duì)應(yīng)
- value: 修改后的屬性值
3.判斷圖像是否讀取成功
isornot = cap.isOpened()-
若讀取成功則返回true,否則返回False
ret, frame = cap.read()
4.獲取視頻的一幀圖像
ret, frame = cap.read()參數(shù):
- ret: 若獲取成功返回True,獲取失敗,返回False
- Frame: 獲取到的某一幀的圖像
5.調(diào)用cv.imshow()顯示圖像
在顯示圖像時(shí)使用cv.waitkey()設(shè)置適當(dāng)?shù)某掷m(xù)時(shí)間,如果太低視頻會(huì)播放的非???#xff0c;如果太高就會(huì)播放的非常慢,通常情況下我們?cè)O(shè)置25ms就可以了。
6.調(diào)用cap.realease()函數(shù)
cap.realease()函數(shù)可以將視頻釋放掉。
import cv2 as cv# 1.獲取視頻對(duì)象 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.釋放視頻對(duì)象 cap.release() cv.destroyAllWindows()總結(jié)
以上是生活随笔為你收集整理的OpenCV 从文件中读取视频并播放的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: OpenCV BRIEF角点检测
- 下一篇: OpenCV meanshift目标追踪