录制的视频,使用python opencv去截取帧数(自定义间隔帧截取)同时可裁剪图像尺寸 coding: utf-8 2.读取视频文件夹 3.截视频帧数 功能2-3:需要进行视频的裁剪 功能4:需要进行视频的裁剪 功能5:可进行中文读取操作

录制的视频,使用python opencv去截取帧数(自定义间隔帧截取)同时可裁剪图像尺寸
coding: utf-8
2.读取视频文件夹
3.截视频帧数
功能2-3:需要进行视频的裁剪
功能4:需要进行视频的裁剪
功能5:可进行中文读取操作

import cv2 as cv
import os

2.读取视频文件夹

filepath = './Input_video' # 需要读取的视频的路径
pathDir = os.listdir(filepath) # 获取文件夹中文件名称

3.截视频帧数

for allDir in pathDir: # 逐个读取视频文件
a = 1 # 图片计数-不改
c = 1 # 帧数计数-不改
videopath = r'./Input_video/'+allDir # 视频文件路径
vc = cv.VideoCapture(videopath) # 读入视频文件
# 存储视频的子目录
path = './Video_Result(Interval)Frame/'#+allDir.split('.')[0] # 文件夹名称 + 以什么符号分割,此处选择直接放进一个文件夹中
if not os.path.exists(path): # 如果不存在就创建文件夹
os.mkdir(path)

if vc.isOpened(): # 判断载入的视频是否能够打开
	rval , frame = vc.read()
else:
	rval = False

功能2-3:需要进行视频的裁剪

timeF = 20                       # 帧数间隔
while rval:
	rval,frame = vc.read()      # 分帧读取视频
	if rval==False:
		break

功能4:需要进行视频的裁剪

	if(c%timeF==0):
		frame = frame[130:940,360:1420]

		#frame = frame[0:1070,200:1640]  # img.shape 查看像素分布---按照像素裁剪照片[0:1080;代表y值 从上到下。150:1600;代表x值 从左到右]
		#cv.imwrite(path+'/'+allDir[:-4]+ '__' +str(a)+'__.jpg',frame)    # 保存路径

功能5:可进行中文读取操作

		cv.imencode('.jpg',frame)[1].tofile(path +'/' + str(a) +'-'+ allDir[:-4] + '.jpg')    # 保存路径
				#     (文件格式,图片数据),tofile(),括号中为保存图片路径及图片名,可以包含中文。
		print('正在截取第' + str(a) + "帧,请稍后……")
	a += 1
	c += 1
	cv.waitKey(1)
vc.release()

print(' ','处理完成,请移步------→ :Video_Result(Interval)Frame查看结果')