Python OpenCV进行视频分帧

原创 2018年04月17日 09:40:33
# coding=utf-8

import os
import cv2

videos_src_path = "/home/wgp/视频/"
video_formats = [".MP4", ".MOV"]
frames_save_path = "/home/wgp/视频/"
width = 320
height = 240
time_interval = 50


def video2frame(video_src_path, formats, frame_save_path, frame_width, frame_height, interval):
    """
    将视频按固定间隔读取写入图片
    :param video_src_path: 视频存放路径
    :param formats: 包含的所有视频格式
    :param frame_save_path: 保存路径
    :param frame_width: 保存帧宽
    :param frame_height: 保存帧高
    :param interval: 保存帧间隔
    :return: 帧图片
    """
    videos = os.listdir(video_src_path)

    def filter_format(x, all_formats):
        if x[-4:] in all_formats:
            return True
        else:
            return False

    videos = filter(lambda x: filter_format(x, formats), videos)

    for each_video in videos:
        print "正在读取视频:", each_video

        each_video_name = each_video[:-4]
        os.mkdir(frame_save_path + each_video_name)
        each_video_save_full_path = os.path.join(frame_save_path, each_video_name) + "/"

        each_video_full_path = os.path.join(video_src_path, each_video)

        cap = cv2.VideoCapture(each_video_full_path)
        frame_index = 0
        frame_count = 0
        if cap.isOpened():
            success = True
        else:
            success = False
            print("读取失败!")

        while(success):
            success, frame = cap.read()
            print "---> 正在读取第%d帧:" % frame_index, success

            if frame_index % interval == 0:
                resize_frame = cv2.resize(frame, (frame_width, frame_height), interpolation=cv2.INTER_AREA)
                # cv2.imwrite(each_video_save_full_path + each_video_name + "_%d.jpg" % frame_index, resize_frame)
                cv2.imwrite(each_video_save_full_path + "%d.jpg" % frame_count, resize_frame)
                frame_count += 1

            frame_index += 1

    cap.release()


if __name__ == '__main__':
    video2frame(videos_src_path, video_formats, frames_save_path, width, height, time_interval)
版权声明:本文为博主原创文章,转载注明出处即可。 https://blog.csdn.net/bskfnvjtlyzmv867/article/details/79970146

视频分帧程序

  • 2011年12月12日 18:31
  • 2KB
  • 下载

python编程:使用opencv按一定间隔截取视频帧

前言 关于opencv OpenCV 是 Intel 开源计算机视觉库 (Computer Version) 。它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法...
  • xinxing__8185
  • xinxing__8185
  • 2015-09-14 16:04:04
  • 12057

将视频分割成帧

  • 2014年04月21日 19:44
  • 44.8MB
  • 下载

python实现拍照,录像,剪辑,分帧等操作

在图像处理中,我们经常需要通过设备对场景进行录像,拍照,以及视频处理等工作,本文将具体介绍一下利用python 实现一下这些功能。 配置环境 首先安装python-opencv ,在前面的文章我已...
  • xiao__run
  • xiao__run
  • 2017-08-18 09:53:12
  • 775

opencv学习 视频帧截取

做视频检测的时候经常需要对视频进行图像截取,可以利用opencv进行简单的截图操作,但截取速率比较慢,适用于几千张左右的截图,熟悉matlab的请无视= =代码如下:#include #incl...
  • evilhunter222
  • evilhunter222
  • 2017-03-24 10:08:58
  • 1569

opencv实现视频的读取并且一帧一帧的显示出来

在进行视频的读取的时候视频的额来源可以是现有的视频文件,还可以是直接在设备上进行读取文件 当让cap=cv2.VideoCapture(0),的时候就是默认使用电脑上自带的设备即笔记本的摄像头**#...
  • andrewgithub
  • andrewgithub
  • 2017-03-06 12:25:04
  • 3295

OpenCV之视频读取与帧的提取、显示及保存

OpenCV支持从摄像头或视频文件(AVI)中抓取图像并保存为另一视频文件.  一、 从摄像头获取初始化: CvCapture* capture = cvCaptureFromCAM(0);...
  • u014365862
  • u014365862
  • 2016-03-29 15:15:06
  • 7192

OpenCV-Python视频解帧代码

  • 2015年08月17日 21:36
  • 844B
  • 下载

将视频分解成帧保存

// opencv_1.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include using namespace std; ...
  • xiaozz_m608c
  • xiaozz_m608c
  • 2013-10-31 10:54:43
  • 2644

python-视频分帧函数

import cv2 vidcap = cv2.VideoCapture('005.avi') success,image = vidcap.read() count = 0 success = Tr...
  • william_hehe
  • william_hehe
  • 2018-03-16 17:05:13
  • 52
收藏助手
不良信息举报
您举报文章:Python OpenCV进行视频分帧
举报原因:
原因补充:

(最多只允许输入30个字)