使用Python opencv实现视频与图片的相互转换

因为最近要经常转换数据集进行实验,因此记录一下。

1、视频转图片

即为将视频解析为一帧一帧的图片:

import cv2
vc=cv2.VideoCapture("/home/hqd/PycharmProjects/1/1/19.MOV")
c=1
if vc.isOpened():
  rval,frame=vc.read()
else:
  rval=False
while rval:
  rval,frame=vc.read()
  cv2.imwrite('/home/hqd/PycharmProjects/1/1/19/'+str(c)+'.jpg',frame)
  c=c+1
  cv2.waitKey(1)
vc.release()

2、图片转视频

即为将图片转为视频,这里采用的帧率为30帧/秒:

import cv2import os
fps = 30
fourcc = cv2.VideoWriter_fourcc('M', 'J', 'P', 'G')
video_writer = cv2.VideoWriter(filename='./result.avi', fourcc=fourcc, fps=fps, frameSize=(1920, 1080))
for i in range(0,6000):
  p = i
  if os.path.exists('/home/hqd/PycharmProjects/1/qqqq/'+str(p)+'.jpg'):  #判断图片是否存在
    img = cv2.imread(filename='/home/hqd/PycharmProjects/1/qqqq/'+str(p)+'.jpg')
    cv2.waitKey(100)
    video_writer.write(img)
    print(str(p) + '.jpg' + ' done!')
video_writer.release()

总结

以上所述是小编给大家介绍的使用Python opencv实现视频与图片的相互转换 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • Python+OpenCV感兴趣区域ROI提取方法

    方法一:使用轮廓 步骤1 """src为原图""" ROI = np.zeros(src.shape, np.uint8) #感兴趣区域ROI proimage = src.copy() #复制原图 """提取轮廓""" proimage=cv2.cvtColor(proimage,cv2.COLOR_BGR2GRAY) #转换成灰度图 proimage=cv2.adaptiveThre

  • python和opencv实现抠图

    本文实例为大家分享了python实现抠图的具体代码,供大家参考,具体内容如下 其中使用了opencv中的grabcut方法 直接上代码 # encoding:utf-8 # 图像提取 # create by import numpy as np import cv2 from matplotlib import pyplot as plt img = cv2.imread('1.jpg') mask = np.zeros(img.shape[:2], np.uint8) bgdModel = n

  • 利用Python和OpenCV库将URL转换为OpenCV格式的方法

    今天的博客是直接来源于我自己的个人工具函数库. 过去几个月,有些PyImageSearch读者电邮问我:"如何获取URL指向的图片并将其转换成OpenCV格式(不用将其写入磁盘再读回)".这篇文章我将展示一下怎么实现这个功能. 额外的,我们也会看到如何利用scikit-image从URL下载一幅图像.当然前行之路也会有一个常见的错误,它可能让你跌个跟头. 继续往下阅读,学习如何利用利用Python和OpenCV将URL转换为图像 方法1:OpenCV.NumPy.urllib 第一个方

  • OpenCV+python手势识别框架和实例讲解

    基于OpenCV2.4.8和 python 2.7实现简单的手势识别. 以下为基本步骤 1.去除背景,提取手的轮廓 2. RGB->YUV,同时计算直方图 3.进行形态学滤波,提取感兴趣的区域 4.找到二值化的图像轮廓 5.找到最大的手型轮廓 6.找到手型轮廓的凸包 7.标记手指和手掌 8.把提取的特征点和手势字典中的进行比对,然后判断手势和形状 提取手的轮廓 cv2.findContours() 找到最大凸包cv2.convexHull(),然后找到手掌和手指的相对位置,定位手型的轮廓和关键点

  • opencv python 傅里叶变换的使用

    理论 傅立叶变换用于分析各种滤波器的频率特性,对于图像,2D离散傅里叶变换(DFT)用于找到频域.快速傅里叶变换(FFT)的快速算法用于计算DFT. 于一个正弦信号,x(t)=Asin(2πft),我们可以说 f 是信号的频率,如果它的频率域被接受,我们可以看到 f 的峰值.如果信号被采样来形成一个离散信号,我们得到相同的频率域,但是在[−π,π] or [0,2π]范围内是周期性的 (or [0,N] for N-point DFT). 可以将图像视为在两个方向上采样的信号.因此,在X和Y方向

  • python用opencv批量截取图像指定区域的方法

    代码如下 import os import cv2 for i in range(1,201): if i==169 or i==189: i = i+1 pth = "C:\\Users\\Desktop\\asd\\"+str(i)+".bmp" image = cv2.imread(pth) //从指定路径读取图像 cropImg = image[600:1200,750:1500] //获取感兴趣区域 cv2.imwrite("C:\\Users\

  • Python OpenCV读取png图像转成jpg图像存储的方法

    如下所示: import os import cv2 import sys import numpy as np path = "F:\\ImageLib\\VRWorks_360_Video _SDK_1.1\\footage14\\" print(path) for filename in os.listdir(path): if os.path.splitext(filename)[1] == '.png': # print(filename) img = cv2.imread(

  • 使用Python opencv实现视频与图片的相互转换

    因为最近要经常转换数据集进行实验,因此记录一下. 1.视频转图片 即为将视频解析为一帧一帧的图片: import cv2 vc=cv2.VideoCapture("/home/hqd/PycharmProjects/1/1/19.MOV") c=1 if vc.isOpened(): rval,frame=vc.read() else: rval=False while rval: rval,frame=vc.read() cv2.imwrite('/home/hqd/PycharmP

  • Python OpenCV获取视频的方法

    之前有文章,使用Android平台的OpenCV接入了视频,控制的目标是手机的摄像头,这是OpenCV的好处,使用OpenCV可以使用跨平台的接口实现相同的功能,减少了平台间移植的困难.正如本文后面,将使用类似的接口,从笔记本的摄像头获取视频,所以,尝试本文代码需要有一台有摄像头的电脑. 不过,需要说明的的是,OpenCV的强项在于图像相关的处理,而不是视频的编解码,所以,不要使用OpenCV做多余的事情,我们使用OpenCV接入视频或者图片的目的,是为了对视频或图片进行处理. 关于Python

  • python+openCV对视频进行截取的实现

    使用cv2对视频进行切割 import cv2 def clip_video(source_video, target_video, start_time, end_time): cap = cv2.VideoCapture(source_video) if not cap.isOpened(): logger_warning('video is not opened') else: success, frame = cap.read() f_shape = frame.shape f_heig

  • python+opencv实现视频抽帧示例代码

    1.数据集简述: 虽然有主流庞大的COCO.VOC数据集,但是科研人员仍需要特殊领域要求的数据集,所以采用人工实地采集的方式进行收集数据集图像:通过拍照收集图像过于繁琐,所以通常是将摄像头无规则的移动旋转以及远近拉缩,进而录制视频:再通过视频抽帧的方式得到大量的图像,再将这些图像进行人工标注处理. 博主通过一个水下录制视频为例子,当这类图像在网上鲜有存在时,要求有关技术人员进行实拍采集,下图即为采集得到的视频. 为了避免不符合项目要求的数据增强,博主要求技术人员在录制视频时最大程度地让摄像头进行

  • 利用python OpenCV去除视频水印

    上面的图片展示的是视频中的某一帧,需要将图片中的,实体拓展和退出全屏以及右上角的两个圆圈按钮给删除掉. 解决思路一个很简单的想法就是,从图片上其它两块背景相同的地方,拷贝两个块替换掉按钮位置的块 用下面的代码先从视频中导出一帧图片,然后统计需要删除按钮的坐标位置 实现代码如下: import cv2 # 创建读取视频的类 capture = cv2.VideoCapture("watermark.mp4") # 得到视频的高度 height = capture.get(cv2.CAP_

  • 使用python opencv对目录下图片进行去重的方法

    版本: 平台:ubuntu 14 / I5 / 4G内存 python版本:python2.7 opencv版本:2.13.4 依赖: 如果系统没有python,则需要进行安装 sudo apt-get install python sudo apt-get install python-dev sudo apt-get install python-pip sudo pip install numpy mathplotlib sudo apt-get install libcv-dev sud

  • Python OpenCV实现视频追踪

    本文实例为大家分享了Python OpenCV实现视频追踪的具体代码,供大家参考,具体内容如下 1. MeanShift 假设有一堆点集和一个圆形的小窗口.现在需要将此窗口移动到具有最高点集密度的区域,如下图: 第一个窗口C1是蓝色圆圈的区域.蓝色环的中心用蓝色矩形标记并命名为 C1_o.窗口中所有点的点集形成的质心在蓝色圆形点C1_r.显然,质心和环的质心不重合.移动蓝色窗口,使质心与先前获得的质心重合.在新移动的圆环的区域内再次找到圆环包围的点集的质心,然后再次移动.通常,形心和质心不重合.

  • Python OpenCV读取视频报错的问题解决

    最近由于项目的需要,经常需要使用opencv读视频操作,会经常遇到一个问题,就是视频读完之后会出现报错的情况,虽然不影响代码结果,但是对于吹毛求疵的我实在忍受不了. 会报错的程序: # -*-coding:utf-8-*- """ File Name: read_video.py Program IDE: PyCharm Create File By Author: Hong """ import cv2 def read_video(video

  • Python+OpenCV读写视频的方法详解

    目录 读视频,提取帧 接口函数:cv2.VideoCapture() 获取视频信息 使用set(cv2.CAP_PROP_POS_FRAMES)读取指定帧 读取函数(重点) 将图像写为视频 示例 fourcc 读视频,提取帧 接口函数:cv2.VideoCapture() 通过video_capture = cv2.VideoCapture(video_path)可以获取读取视频的句柄.而后再通过flag, frame = video_capture.read()可以读取当前帧,flag表示读取

  • Python OpenCV实现视频分帧

    本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 # 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_inte

随机推荐