批量截取视频帧并将截取的帧存成多个文件

该博客介绍如何使用Python的cv2库批量截取视频帧,并将这些帧保存为多个文件。通过os模块遍历指定目录下的文件,打开文件并进行处理,打印文件名并关闭文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import cv2
import time
import os

os.listdir(r’D:\recolasmall\sp’)
i=0
for info in os.listdir(r’D:\recolasmall\sp’):
lis=[‘16’,‘17’,‘19’,‘21’,‘23’,‘25’,‘26’,‘28’,‘30’,‘34’,‘37’,‘39’,‘41’,‘42’,‘43’,‘45’,‘46’,‘48’,‘56’,‘58’,‘62’,‘64’,‘65’]
domain = os.path.abspath(r’D:\recolasmall\sp’) #获取文件夹的路径,此处其实没必要这么写,目的是为了熟悉os的文件夹操作
info = os.path.join(domain,info) #将路径与文件名结合起来就是每个文件的完整路径
info = open(info,‘r’) #读取文件内容

targetPath = r'D:\recolasmall' + os.path.sep + 'p' + lis[i]
i=i+1
print(targetPath)
if not os.path.exists(targetPath):
    os.makedirs(targetPath)
else:
    print('路径已经存在!')

vct = cv2.VideoCapture(info.name)  # 读取每个videocaputer
c = 1
if vct.isOpened():  # 判断是否正常打开
    rval, frame = vct.read()
else:
    rval = False
timeF = 1  # 视频帧计数间隔频率

while rval:  # 循环读取视频帧
    rval, frame = vct.read()
    if (c % timeF == 0):  # 每隔timeF帧进行存储操作
        # os.makedirs(outputpath[i]),创建文件路径
        cv2.imencode('.jpg', frame)[1].tofile(targetPath + os.path.sep+str(c) + '.jpg')  # 存储为图像
    c = c + 1
    cv2.waitKey(1)
vct.release()

print("*******"+info.name) #使用readline函数得到一条一条的信息,如果使用read获取全部信息亦可;

info.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值