opencv--视频读取

目录

1.先将视频文件读取下来

2.判断一下视频文件是否能正确打开

3.对每一帧图像进行处理,转为灰度图像

4.对每一帧图像进行处理

5.将图像展示出来

6.设置每帧图像之间展示的时间间隔

7.最后将视频文件的窗口关闭并释放占用的资源

完整代码展示


首先简单说明一下opencv

OpenCV(Open Source Computer Vision Library)是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,OpenCV的设计目标是执行速度尽可能的快和构建一个简单易用的计算机视觉框架。它主要用于实时视觉应用。

下面来介绍怎样读取视频

1.先将视频文件读取下来

vc = cv2.VideoCapture(r'./视频.mp4')

2.判断一下视频文件是否能正确打开

# 判断vc视频是否正确打开
if vc.isOpened():  
# 读取每一帧视频。返回值1为读取是否有内容,Fasle表示读取结束。返回值2为这一帧的图片内容
    open_vd, frame = vc.read()  
else:
    open_vd = False

如果读取的有内容,open_vd返回True,否则返回False

frame即为图像的内容

3.对每一帧图像进行处理

这里要用到一个while循环

while open_vd:
    open_vd, frame = vc.read()
    if frame is None:  # 读取完毕之后,frame的值为None
        break

当图像读取完之后,frame就没有内容了,然后跳出循环即可

4.对每一帧图像进行处理,转为灰度图

gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

将每一帧图像转换为灰度图像

5.将图像展示出来

cv2.imshow('gray', gray)

参数要输入两个值

第一个即为自定义的图像的名称

第二个为要展示的图像数据

6.设置每帧图像之间展示的时间间隔

    if cv2.waitKey(10) == 27:  # cv2.waitKey获取键盘符号的ASCII码
        break

可以加个判断条件,esc的ASCII码即为27,也就是说在图像展示的过程中,我们点击左上角esc键,就可以手动关闭图像(这里点X是关不掉的)

注意:一定要设置每一帧图像之间的等待间隔,不然太快图像展示不出来

7.最后将视频文件的窗口关闭并释放占用的资源

vc.release()  # 是cv2.VideoCapture对象的一个方法,用于释放视频捕获器的资源。
# 关闭所有窗口
cv2.destroyAllWindows()

完整代码展示

'''--------------------读取视频--------------------'''
vc = cv2.VideoCapture(r'.视频.mp4')
if vc.isOpened():  # 判断vc视频是否正确打开
    open_vd, frame = vc.read()  # 读取每一帧视频。返回值1为读取是否有内容,Fasle表示读取结束。返回值2为这一帧的图片内容
else:
    open_vd = False
while open_vd:
    open_vd, frame = vc.read()
    if frame is None:  # 读取完毕之后,frame的值为None
        break
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)  # 将图像从一种颜色空间转换为另一种颜色空间
    cv2.imshow('gray', gray)
    if cv2.waitKey(10) == 27:  # cv2.waitKey获取键盘符号的ASCII码
        break

vc.release()  # 是cv2.VideoCapture对象的一个方法,用于释放视频捕获器的资源。
cv2.destroyAllWindows()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值