文档章节

Pythone OpenCV学习笔记之:视频文件读取与保存

IOTService
 IOTService
发布于 2016/12/05 21:56
字数 166
阅读 41
收藏 1
# -*- coding: utf-8 -*-
# 读取和保存视频

import cv2 as cv
import numpy as np

def decode_fourcc(v):
    v = int(v)
    return "".join([chr((v >> 8 * i) & 0xFF) for i in range(4)])

videoCapture = cv.VideoCapture('../../datas/videos/video.avi')

#获取码率及尺寸
fs = videoCapture.get(cv.CAP_PROP_FPS)
fourccD = decode_fourcc(videoCapture.get(cv.CAP_PROP_FOURCC))
fourcc = videoCapture.get(cv.CAP_PROP_FOURCC)
size = (int(videoCapture.get(cv.CAP_PROP_FRAME_WIDTH)),
        int(videoCapture.get(cv.CAP_PROP_FRAME_HEIGHT)))
print('fs = ',fs)
print('size = ',size)
print('fourccD = ',fourccD)
print('fourcc = ',fourcc)
fourcc = cv.VideoWriter_fourcc(*'XVID')
# I420-avi, MJPG-mp4
videoWriter = cv.VideoWriter(filename='../../datas/videos/video-out.avi',
                             fourcc=fourcc,
                             fps=int(fs), frameSize=size)
img_empty = np.zeros((512,512,3),np.uint8)
while videoCapture.isOpened():
    sucess,frame = videoCapture.read()
    if sucess == True:
        gray = cv.cvtColor(frame,cv.COLOR_RGB2GRAY)
        videoWriter.write(frame)
        cv.imshow("video",frame)
        cv.imshow("video-gray",gray)
    else:
        print("read frame failed")
        cv.imshow("video",img_empty)
        #break
    key = cv.waitKey(10) & 0xFF
    if key == 27:
        break
cv.destroyAllWindows()

© 著作权归作者所有

共有 人打赏支持
IOTService
粉丝 16
博文 146
码字总数 32874
作品 0
广州
程序员
基于OpenCV和Python的文件操作——捕获摄像头的帧,在窗口显示图像,在窗口显示摄像头帧和视频文件的读/写

0 写在前面 这篇博客主要参考资料为《OpenCV 3计算机视觉Python语言实现》(Learning OpenCV 3 Computer Vison with Python)。 因为之前用Faster R-CNN做过一个红绿灯检测的小实践,但是Git...

learning_tortosie
04/12
0
0
使用OpenCV通过摄像头捕获实时视频并探测人脸

在Opencv初接触,图片的基本操作这篇手记中,我介绍了一些图片的基本操作,视频可以看作是一帧一帧的图片,因此图片操作其实是视频操作的基础,这篇手记就来讲讲OpenCV中的视频操作,并实现一...

种子_fe
08/16
0
0
Opencv级联分类器实现人脸识别

在本章中,我们将学习如何使用OpenCV使用系统相机捕获帧。org.opencv.videoio包的VideoCapture类包含使用相机捕获视频的类和方法。让我们一步一步学习如何捕捉帧 - 第1步:加载OpenCV本机库 ...

---dgw博客
08/07
0
0
【联想】使用opencv接口进行人脸识别算法优化

一、【需求描述】 目的:使用opencv接口进行人脸识别算法优化 使用场景:通过网络摄像机使用rtsp流方式读取视频流并实时监控视频中出现的人物头像进行抓取保存 1. 要求:使用C++集成opencv进...

北京知识动力信息技术有限公司
06/04
0
0
2- OpenCV+TensorFlow 入门人工智能图像处理-opencv入门

本章内容 Anaconda一站式开发环境 OPenCV基础入门(像素,图片的封装格式,编码格式) TensorFlow基础入门 本章主要内容 OpenCV初识 OpenCV文件结构 Demo1 图片读取: 图片封装格式 压缩编码 De...

天涯明月笙
04/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

70.shell的函数 数组 告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析 20.16/20.17 shell中的函数: ~1. 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段...

王鑫linux
今天
0
0
分布式框架spring-session实现session一致性使用问题

前言:项目中使用到spring-session来缓存用户信息,保证服务之间session一致性,但是获取session信息为什么不能再服务层获取? 一、spring-session实现session一致性方式 用户每一次请求都会...

WALK_MAN
今天
5
0
C++ yield()与sleep_for()

C++11 标准库提供了yield()和sleep_for()两个方法。 (1)std::this_thread::yield(): 线程调用该方法时,主动让出CPU,并且不参与CPU的本次调度,从而让其他线程有机会运行。在后续的调度周...

yepanl
今天
4
0
Java并发编程实战(chapter_3)(线程池ThreadPoolExecutor源码分析)

这个系列一直没再写,很多原因,中间经历了换工作,熟悉项目,熟悉新团队等等一系列的事情。并发课题对于Java来说是一个又重要又难的一大块,除非气定神闲、精力满满,否则我本身是不敢随便写...

心中的理想乡
今天
31
0
shell学习之获取用户的输入命令read

在运行脚本的时候,命令行参数是可以传入参数,还有就是在脚本运行过程中需要用户输入参数,比如你想要在脚本运行时问个问题,并等待运行脚本的人来回答。bash shell为此提 供了read命令。 ...

woshixin
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部