栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何用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()

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/744148.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号