目标
  • 学会读取视频文件,显示视频,保存视频文件
  • 学会从摄像头获取并显示视频
  • 你将会学习到这些函数:cv2.VideoCapture(),cv2.VideoWrite()
用摄像头捕获视频

  • 使用摄像头来捕获一段视频,并把它转换成灰度视频显示出来。
  • 首先应该创建一个VideoCapture 对象,参数可以是设备的索引号,或者是一个视频文件。
  • 设备索引号就是在指定要使用的摄像头。一般的笔记本电脑都有内置摄像头。所以参数就是0。你可以通过设置成1或者其他的来选择别的摄像头。
  • 之后,你就可以一帧一帧的捕获视频了。但是最后,别忘了停止捕获视频。

上代码:

 # -*- coding: utf-8 -*-

 import numpy as np
import cv2 cap = cv2.VideoCapture(0) # 创建一个VideoCapture对象
while(True): ret, frame = cap.read() # 一帧一帧读取视频
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)# 对每一帧做处理,设置为灰度图
cv2.imshow('frame',gray) # 显示结果
if cv2.waitKey(1) & 0xFF == ord('q'): # 按q停止
break cap.release() # 释放cap,销毁窗口
cv2.destroyAllWindows()
  • 运行一下可以看到摄像头打开,并且显示了灰度图,按q退出

读取视频文件:

 # -*- coding: utf-8 -*-

 import numpy as np
import cv2 cap = cv2.VideoCapture(0) # Define the codec and create VideoWriter object
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('test.avi',fourcc, 20.0, (640,480)) while(cap.isOpened()):
ret, frame = cap.read()
if ret==True:
frame = cv2.flip(frame,0) # write the flipped frame
out.write(frame) cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
# Release everything if job is finished
cap.release()
out.release()
cv2.destroyAllWindows()
  • 本例子中的演示会比较麻烦。需要安装合适版本的ffmpeg 或者gstreamer,才能正确运行改程序

python_Opencv_读取视频的更多相关文章

  1. Opencv读取视频

    CvCapture 是一个结构体,用来保存图像捕获所需要的信息. opencv提供两种方式从外部捕获图像 一种是从摄像头中, 一种是通过解码视频得到图像. 两种方式都必须从第一帧开始一帧一帧的按顺序获 ...

  2. OpenCV3读取视频或摄像头

    我们可以利用OpenCV读取视频文件或者摄像头的数据,将其保存为图像,以用于后期处理.下面的实例代码展示了简单的读取和显示操作: // This is a demo introduces you to ...

  3. python+opencv读取视频,调用摄像头

    引用 import cv2 import numpy 创建摄像头对象 cap = cv2.VideoCapture("videoTest/test1.mp4") #参数为视频文件目 ...

  4. Opecv + Anaconda 读取视频(windows)

    前言:之前一直用的是python(x,y),但是发现在使用opencv时容易出现一些pythonw.exe停止工作的问题.后来发现自己的操作系统是64位的,却安装了32位的python(x,y),虽然 ...

  5. java读取视频文件时长

    1.下载jar包:http://www.sauronsoftware.it/projects/jave/index.php 2.上代码 @RequestMapping(value = "am ...

  6. opencv学习之路(2)、读取视频,读取摄像头

    一.介绍 视频读取本质上就是读取图像,因为视频是由一帧一帧图像组成的.1秒24帧基本就能流畅的读取视频了. ①读取视频有两种方法: A. VideoCapture cap; cap.open(“1.a ...

  7. day7 opencv+python 读取视频,没有东西

    1.读取视频man.avi, 报错. 我的视频和文件在同一目录下. #coding=utf-8 import numpy as np import cv2 cap = cv2.VideoCapture ...

  8. 也谈matlab中读取视频的一个重要函数mmreader

    也谈matlab中读取视频的一个重要函数mmreader 在matlab中输入help mmreader来查阅一下该函数,有如下信息: MMREADER Create a multimedia rea ...

  9. C/C++ OpenCV读取视频与调用摄像头

    原文:http://blog.csdn.net/qq78442761/article/details/54173104 OpenCV通过VideoCapture类,来对视频进行读取,调用摄像头 读取视 ...

随机推荐

  1. Modernizr——为HTML5和CSS3而生!

    原文地址:http://www.alistapart.com/articles/taking-advantage-of-html5-and-css3-with-modernizr/ 堂主译文地址:ht ...

  2. SSIS学习计划

    百科:SSIS是Microsoft SQL Server Integration Services的简称,是生成高性能数据集成解决方案(包括数据仓库的提取.转换和加载 (ETL) 包)的平台. htt ...

  3. Android开发手记(20) 数据存储五 网络存储

    Android为数据存储提供了五种方式: 1.SharedPreferences 2.文件存储 3.SQLite数据库 4.ContentProvider 5.网络存储 安卓的网络存储比较简单,因为A ...

  4. Character Encoding tomcat.

    default character encoding of the request or response body: If a character encoding is not specified ...

  5. 【转】UITextView 修改键盘 的return按钮

    原文:http://www.apkbus.com/blog-107838-45740.html 1 #import <UIKit/UIKit.h>2 3 @interface TextVi ...

  6. centos node卸载

    1.通过包管理工具 如果是通过包管理工具安装的话,那就和包管理工具卸载 yum remove nodejs npm -y 2.手动 如果是通过手动安装:官方下载后安装 进入到安装的路径 cd /opt ...

  7. cxf客户端代码设置设置访问用户名、密码、证书域名不匹配认证通过

    最近和第三方联调,需要调用对方的wsdl,但是调用必须的设置用户名.密码验证.在soapUI里面设置用户名.密码调用通过.但是怎么转换成JAVA代码呢,搜索了好多解决方案,现将代码截图如下: 1.SO ...

  8. JSON带来编程界怎样的描述

    JSON是一套数据对象组织格式,从程序员的角度观看,他是以种非常易读易写的形式来描述一种key-value的数据组织.全名称JavaScript Object Notation,从名称上可看已经说明他 ...

  9. C# Word

    C# 操作word文档 1.c#操作word 在指定书签插入文字或者图片  1using Word = Microsoft.Office.Interop.Word; 2 3object Nothing ...

  10. UVa 129 Krypton Factor困难的串 (dfs 递归搜索)

    回溯法,只需要判断当前串的后缀,而不是所有的子串 #include<iostream> #include<cstdio> using namespace std; ]; int ...