openCV 视频分解及合成
1. 视频分解
import cv2
# **************************
# 分解视频
cap=cv2.VideoCapture('1.mp4')#获取一个视频cap
isOpen=cap.isOpened()#判断是否打开
fps=cap.get(cv2.CAP_PROP_FPS)#频率,一秒多少张图片
width=int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))#宽
height=int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))#高
count=cap.get(cv2.CAP_PROP_FRAME_COUNT)
print('height,width,count',height,width,count)
i=0
while(isOpen):
if i==10:
break
else:
i+=1
(flag,frame)=cap.read()#读取每一张图片 flag:是否读取成功 frame:读取的照片
fileName='image'+str(i)+'.jpg'
if flag:
cv2.imwrite('./img/'+fileName,frame)
print('end!')
2. 打开摄像头获取图片
# 打开摄像头
cap=cv2.VideoCapture(0) #值为0 打开摄像头
isOpen=cap.isOpened()
i=1
while isOpen:
i+=1
(flag,frame)=cap.read()##读取每一张图片 flag:是否读取成功 frame:读取的照片
cv2.imshow(str(i),frame)
if flag:
cv2.imwrite('./img/'+str(i)+'.jpg',frame)
# 释放对象
if i == 20:
break
cap.release()
3. 图片合成视频
import cv2 fps = 24
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
videoWriter = cv2.VideoWriter('test.avi', fourcc, fps, (1080,1920))
for i in range(1,1000):
p2=i
img12 = cv2.imread('./img/image1.jpg')
# cv2.imshow('img', img12)
# cv2.waitKey(1000/int(fps))
print(str(p2))
videoWriter.write(img12)
videoWriter.release()
openCV 视频分解及合成的更多相关文章
- opencv学习之路(3)、批量读取图片、视频分解、视频合成
一.批量有序读取图片 #include<opencv2/opencv.hpp> using namespace cv; void main() { //批量读取图片(有序) ]; ]; M ...
- IOS 视频分解图片、图片合成视频
在IOS视频处理中,视频分解图片和图片合成视频是IOS视频处理中经常遇到的问题,这篇博客就这两个部分对IOS视频图像的相互转换做一下分析. (1)视频分解图片 这里视频分解图片使用的是AVAssetI ...
- OpenCV 视频与图片序列相互转换
我们在计算机视觉相关的实验中都需要视频与图片序列之间相互转换,在平时的实验中,经常需要将视频保存为一帧一帧的图片,以获取实验结果:另一方面,很多标准的算法测试数据库都是图片序列(文件名以帧号+图片扩展 ...
- 小波分解和合成的simulink仿真
采用5-3提升小波的方法 小波分解 数据拆分 预测 更新 数据输出使能电路 电路共有两个输入三个输出,in1是数据输入,in2是输入数据有效信号,out1是更新后的低频信号,out2是预测的高频信号, ...
- OpenCV视频读取播放,视频转换为图片
转载请注明出处!!! http://blog.csdn.net/zhonghuan1992 OpenCV视频读取播放,视频转换为图片 介绍几个有关视频读取的函数: VideoCapture::Vide ...
- opencv 视频处理相关
包含视频格式知识(编解码和封装格式):如何获取视频信息及视频编解码格式:opencv读取及保存视频,及opencv fourcc编码格式 一.基础知识 视频的编解码格式和封装格式 参考如山似水 视频编 ...
- opencv 将视频分解成图片和使用本地图片合成视频
代码如下: // cvTest.cpp : Defines the entry point for the console application. #include "stdafx.h&q ...
- 基于opencv+Dlib的面部合成(Face Morph)
引自:http://blog.csdn.net/wangxing233/article/details/51549880 零.前言 前段时间看到文章[1]和[2],大概了解了面部合成的基本原理.这两天 ...
- 庞锋 OpenCV 视频 学习进度备忘
书签:另外跳过的内容有待跟进 学习资源: opencv视频教程目录(初级) 主讲:庞锋,毕业于电子科技大学 知识基础支持: 线性代数 应用数学 跳过的内容: 1.第1~6集跳过,简单.(2014- ...
随机推荐
- Python:高效计算大文件中的最长行的长度
在操作某个很多进程都要频繁用到的大文件的时候,应该尽早释放文件资源(f.close()) 前2种方法主要用到了列表解析,性能稍差,而最后一种使用的时候生成器表达式,相比列表解析,更省内存 列表解析和生 ...
- keytool和openssl生成的证书转换
keytool和openssl生成的证书转换 keytool生成证书示例 生成私钥+证书: keytool -genkey -alias client -keysize 2048 -validity ...
- Vue.js之组件(component)
从结构上看,组件之于实例,就好比轮子之于汽车.从属性和方法来看,组件有实例的大部分方法,如果Vue实例是孙悟空,组件就好比实例的一个毫毛,变化多端却为Vue实例所用. 目录: 组件的注册 is的作用 ...
- Disruptor入门
一.什么是 Disruptor Disruptor是一个高性能的异步处理框架,或者可以认为是最快的消息框架(轻量的JMS),也可以认为是一个观察者模式实现,或者事件-监听模式的实现,直接称disrup ...
- j2ee高级开发技术课程第七周
来源:https://baike.baidu.com/item/JSON/2462549?fr=aladdin JSON(JavaScript Object Notation, JS 对象标记) 是一 ...
- 第四章 使用Servlet处理HTTP请求
回顾上一章的知识: 请求网络资源HTTP会发出多个请求并得到响应 设置响应状态行关键是设置状态码 在向客户端输出内容之前要设置状态码和响应头 设置响应头让Servlet发挥最大功能 消息体可以用文 ...
- 程序员必知的8大排序(三)-------冒泡排序,快速排序(java实现)
程序员必知的8大排序(一)-------直接插入排序,希尔排序(java实现) 程序员必知的8大排序(二)-------简单选择排序,堆排序(java实现) 程序员必知的8大排序(三)-------冒 ...
- superset--presto sql
1.hive的partition的相关查询,由于presto不支持vachar和int的自动转换,所以使用where的时候需要手动转换一下. #select count(*) from userlog ...
- JS pop push unshift shift的作用与区别
白话JS中数组方法pop push unshift shift的作用与区别,通过本文,你大概能知道这四种数组方法的基本使用与大致区别. 首先,这四种方法会直接修改数组,请先记住这一点. 我们先把pop ...
- webpack4+react多页面架构
webpack在单页面打包上应用广泛,以create-react-app为首的脚手架众多,单页面打包通常是将业务js,css打包到同一个html文件中,整个项目只有一个html文件入口,但也有许多业务 ...