python-opencv:按指定帧数间隔截取视频帧,并保存图片到指定位置

环境:pycharm+Anaconda3+OpenCV3(配置过程可以自行百度)

验证:输入import cv2不报错即为成功。

1、针对单个视频截取视频帧并保存指定位置

代码:

import cv2
# 使用opencv按一定间隔截取视频帧,并保存为图片

vc = cv2.VideoCapture('E:/BandMarching/v_BandMarching_g08_c05_out.mp4') #读取视频文件
c = 1


if vc.isOpened():#判断是否正常打开

    rval,frame = vc.read()
else:
    rval = False

timeF = 10 #视频帧计数间隔频率

while rval: #循环读取视频帧
    rval,frame = vc.read()
    if (c%timeF == 0) #每隔timeF帧进行存储操作
        cv2.imwrite('E:/2'+str(c)+'.jpg',frame) # 存储为图像

    c = c + 1
    cv2.waitKey(1)
vc.release()

截取结果如下:

 

python-opencv:按指定帧数间隔截取视频帧,并保存图片到指定位置_第1张图片

2、批量读取视频,并截取视频帧,代码如下:

import cv2
import os.path
#使用opencv按一定间隔截取视频帧,并保存为图片

filepath='E:/1'#视频所在文件夹
pathDir=os.listdir(filepath)
a=1 #图片计数
for allDir in pathDir:
    videopath = r'E:/1/'+allDir
    print(videopath)

    vc = cv2.VideoCapture(videopath) # 读入视频文件

    c = 1

    if vc.isOpened(): #判断是否正常打开
        rval,frame = vc.read()

    else:
        rval = False

    timeF = 10 #视频帧计数间隔频率

    while rval: #循环读取视频帧
        rval,frame = vc.read()
        if (c%timeF == 0): #每隔timeF帧进行存储操作
            cv2.imwrite('E:/3/'+str(a)+'.jpg',frame)

            a=a+1

        c = c+1
        cv2.waitKey(1)

    vc.release()

 

 

 

 

你可能感兴趣的:(python-opencv)