zoukankan      html  css  js  c++  java
  • 录制的视频,使用python opencv去截取帧数(一帧一帧截取)同时可裁剪图像尺寸

    coding: utf-8

    import cv2 as cv

    import os

    filepath = './Input_video' # 需要读取的视频的路径

    pathDir = os.listdir(filepath) # 获取文件夹中文件名称

    for allDir in pathDir: # 逐个读取视频文件

    a = 1  # 图片计数-不改
    c = 1  # 帧数计数-不改
    
    videopath = r'./Input_video/'+allDir  # 视频文件路径	
    
    vc = cv.VideoCapture(videopath) # 读入视频文件
    # 存储视频的子目录
    
    path = './Video_Result(All)Frame/'#+allDir.split('.')[0]       # 文件夹名称 + 以什么符号分割,此处选择直接放进一个文件夹中
    if not os.path.exists(path):    # 如果不存在就创建文件夹
    	os.mkdir(path)
    
    if vc.isOpened(): # 判断载入的视频是否能够打开
    	rval , frame = vc.read()
    else:
    	rval = False
    
    timeF = 1                      # 帧数间隔
    while rval:
    	rval,frame = vc.read()      # 分帧读取视频
    	if rval==False:
    		break
    
    	if(c%timeF==0):
    		#frame = frame[0:1070,200:1640]  # img.shape 查看像素分布---按照像素裁剪照片[0:1080;代表y值 从上到下。150:1600;代表x值 从左到右]
    		#cv.imwrite(path+'/'+allDir[:-4]+ '__' +str(a)+'__.jpg',frame)    # 保存路径
    
    		cv.imencode('.jpg',frame)[1].tofile(path +'/' + str(a) +'-'+ allDir[:-4] + '.jpg')    # 保存路径
    				#     (文件格式,图片数据),tofile(),括号中为保存图片路径及图片名,可以包含中文。
    		print('正在截取第' + str(a) + "帧,请稍后……")
    		a += 1
    

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

  • 相关阅读:
    linux进程管理类
    linux关机重启指令
    linux分区及磁盘挂载
    linux的运行级别
    property
    访问限制机制
    类的组合与封装
    继承与派生
    logging模块
    re模块
  • 原文地址:https://www.cnblogs.com/Tdazheng/p/13608737.html
Copyright © 2011-2022 走看看