我是靠谱客的博主 要减肥河马,这篇文章主要介绍如何用OpenCV读取和展示视频?完整过程,现在分享给大家,希望可以做个参考。

读取视频

用OpenCV读取图像主要用到的是cv.VideoCapture()函数,该函数的参数可以是整数,用来直接用摄像头读取视频(比如0表示默认的摄像头),也可以是视频文件的路径,该函数返回值可以认为就是能供我们接下来操作处理的视频。

复制代码
1
2
3
4
5
6
import cv2 as cv capture = cv.VideoCapture('d:/OpenCV/videos/cat.mp4') # 这里我读取的是已有的视频 # 返回值赋值给capture,之后操作capture即可

展示视频

我们将用一个while循环来一帧一帧地展示视频。在循环里,首先用read函数读取每一帧,这个函数无参数,返回值有两个,第一个为是否读取成功,第二个为读取的相应的一帧:

复制代码
1
2
3
4
# 接上一段代码 while True: isTrue, frame = capture.read()

当isTrue为假时,表示读取失败,我们用break结束循环;否则表示读取成功,接下来用cv.imshow()把这一帧展示出来,注意每次展示的时候还要给一定的延迟:

复制代码
1
2
3
4
5
6
7
8
9
# 接上一段代码 if isTrue: cv.imshow('My Video',frame) if cv.waitKey(20) & 0xFF == ord('d'): # 这里有一个20毫秒的延迟,后一部分照抄就行(其实作者也不懂) break else: break

最后的release()destroyAllWindows()分别用来释放内存和关闭窗口:

复制代码
1
2
3
4
# 接上一段代码 capture.release() cv.destroyAllWindows()

完整过程

整个读取、展示过程的完整代码如下:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import cv2 as cv capture = cv.VideoCapture('d:/OpenCV/videos/cat.mp4') while True: isTrue, frame = capture.read() if isTrue: cv.imshow('My Video',frame) if cv.waitKey(20) & 0xFF == ord('d'): break else: break capture.release() cv.destroyAllWindows()

欢迎大家评论,如果有错误欢迎指正。
如果你觉得这篇文章有用的话,麻烦给我点个赞哦????

最后

以上就是要减肥河马最近收集整理的关于如何用OpenCV读取和展示视频?完整过程的全部内容,更多相关如何用OpenCV读取和展示视频内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(80)

评论列表共有 0 条评论

立即
投稿
返回
顶部