opencv学习笔记——视频分解图像并保存

在利用深度学习进行图像分类时,往往因为图像数据难以获取而令人头疼。如果一张张的收集,耗时又耗力。而利用opencv提供把视屏中的每一帧图像分解出来的方法可以很有效的缓解这个问题。
读取文件夹下所有视频并分解成图像的具体步骤如下:

  1. 导入cv2
  2. 逐个打开文件夹下的视频
  3. 判断视频是否成功被打开,如果成功,读取视频的一帧图像;否则,不执行后续操作
  4. 判断图像是否读取成功,成功则保存图像
  5. 继续读取下一帧图像,直至当前视频读取完毕
import cv2
import os

video_path = './video'  # 视频所在路径
image_path = './image'  # 保存图像的路径
i = 1  # 图片标号
for filename in os.listdir(video_path):  # 读取视频文件
    video = cv2.VideoCapture(path + '/' + filename)  # 打开视频
    is_opened = video.isOpened()  # 视频是否成功打开
    if is_opened:
        flag, frame = video.read()  # 如何视频成功打开,读取一帧图像
        if flag:  # 读取成功,则保存图像
            image_name = 'image' + str(i) + '.jpg'
            if not os.path.exists(image_path):  # 如果文件夹不存在,则创建一个文件夹
                os.mkdir(image_path)
            cv2.imwrite(os.path.join(image_path, image_name) , frame)  # 写入图片
    else:
        flag = False
    while(flag):
        i += 1
        flag, frame = video.read()  # 读取下一帧图像
        if flag:  # 读取成功则保存
            image_name = 'image' + str(i) + '.jpg'
            cv2.imwrite(os.path.join(image_path, image_name) , frame)   # 写入图片
        else:  # 否则标志该视频读取完毕,结束该视频的操作
            flag = False
print('end!')  # 打印结束标志
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值