如何用OpenCV读取和展示视频?

读取视频

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

import cv2 as cv

capture = cv.VideoCapture('d:/OpenCV/videos/cat.mp4')
# 这里我读取的是已有的视频
# 返回值赋值给capture,之后操作capture即可

展示视频

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

# 接上一段代码
while True:
	isTrue, frame = capture.read()

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

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

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

# 接上一段代码
capture.release()
cv.destroyAllWindows()

完整过程

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

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,计算机视觉,python)