Python OpenCV获取视频的方法


Posted in Python onFebruary 28, 2018

之前有文章,使用Android平台的OpenCV接入了视频,控制的目标是手机的摄像头,这是OpenCV的好处,使用OpenCV可以使用跨平台的接口实现相同的功能,减少了平台间移植的困难。正如本文后面,将使用类似的接口,从笔记本的摄像头获取视频,所以,尝试本文代码需要有一台有摄像头的电脑。

不过,需要说明的的是,OpenCV的强项在于图像相关的处理,而不是视频的编解码,所以,不要使用OpenCV做多余的事情,我们使用OpenCV接入视频或者图片的目的,是为了对视频或图片进行处理。

关于Python下配置OpenCV的过程,由于不能直接使用pip进行安装,过程相对复杂一些,不过,网上文章很多,多查阅一些资料,需要注意的是,要清楚自己的Python的版本,Python2和Python3的配置方法不同。

本节实现的是使用内建摄像头捕获视频,并显示视频的每一帧以实现视频的播放。

  1. 创建摄像头对象,指向文件
  2. 逐帧显示实现视频播放

下面进入我们的主题,配置好OpenCV以后,创建一个video_capture.py文件,内容如下:

#!/usr/bin/env python3 
import cv2 
 
#创建显示视频的窗口 
cv2.namedWindow('Video') 
 
#打开摄像头 
video_capture = cv2.VideoCapture(0) 
 
#创建视频写入对象 
video_writer = cv2.VideoWriter('test.avi', 
                cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'), 
                video_capture.get(cv2.CAP_PROP_FPS), 
                (int(video_capture.get(cv2.CAP_PROP_FRAME_WIDTH)), 
                int(video_capture.get(cv2.CAP_PROP_FRAME_HEIGHT)))) 
 
#读取视频帧,对视频帧进行高斯模糊,然后写入文件并在窗口显示 
success, frame = video_capture.read() 
while success and not cv2.waitKey(1) == 27: 
  blur_frame = cv2.GaussianBlur(frame, (3, 3), 0) 
  video_writer.write(blur_frame) 
  cv2.imshow("Video", blur_frame) 
  success, frame = video_capture.read() 
 
#回收资源 
cv2.destroyWindow('Video') 
video_capture.release()

我们来仔细看一下,Python OpenCV的模块名称是cv2,所以我们导入模块cv2,接下来,准备了显示视频帧的窗口。

获取摄像头视频使用VideoCapture类,其构造参数为摄像头的index,笔记本只有一个摄像头,其index为0;将视频帧写入文件使用VideoWriter类,其构造参数分别为写入的文件路径名,编码格式,帧率以及视频尺寸,我们这里的帧率和视频尺寸使用了摄像头提供的参数,这可以通过VideoCapture获取。

万事俱备,我们可以调用VideoCapture.read()按帧读取数据,每一帧视频就是一幅图像,我们对其进行高斯模糊,然后将其写入文件,并显示在窗口上。

我们在点击Esc时会退出视频预览和录制,之后销毁窗口并释放摄像头。

可以看到,Python的OpenCV依然表现出了Python代码的简洁性,这为我们提供了一种开发思路,可以在研究阶段使用Python,实现中使用C++实现。当然,如果对Python足够信任,完全可以直接使用Python,Python的OpenCV只是一套接口,真正的OpenCV代码是用C++实现的,其性能足够好,Python调用C/C++代码的效率也是不错的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 控制语句
Nov 03 Python
python使用循环实现批量创建文件夹示例
Mar 25 Python
部署Python的框架下的web app的详细教程
Apr 30 Python
用pickle存储Python的原生对象方法
Apr 28 Python
Python系统监控模块psutil功能与经典用法分析
May 24 Python
Python爬虫框架Scrapy基本用法入门教程
Jul 26 Python
用python脚本24小时刷浏览器的访问量方法
Dec 07 Python
python面试题之列表声明实例分析
Jul 08 Python
pyhton中__pycache__文件夹的产生与作用详解
Nov 24 Python
python实现梯度法 python最速下降法
Mar 24 Python
python根据完整路径获得盘名/路径名/文件名/文件扩展名的方法
Apr 22 Python
Python实现一个论文下载器的过程
Jan 18 Python
python实现多线程行情抓取工具的方法
Feb 28 #Python
Python 记录日志的灵活性和可配置性介绍
Feb 27 #Python
python定向爬取淘宝商品价格
Feb 27 #Python
python抓取文件夹的所有文件
Feb 27 #Python
python数据分析数据标准化及离散化详解
Feb 26 #Python
批量将ppt转换为pdf的Python代码 只要27行!
Feb 26 #Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
Feb 26 #Python
You might like
一些 PHP 管理系统程序中的后门
2009/08/05 PHP
PHP数组操作汇总 php数组的使用技巧
2011/07/17 PHP
PHP合并discuz用户脚本的方法
2015/08/04 PHP
php实现自定义中奖项数和概率的抽奖函数示例
2017/05/26 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
laravel请求参数校验方法
2019/10/10 PHP
PHP读取文件或采集时解决中文乱码
2021/03/09 PHP
Code:findPosX 和 findPosY
2006/12/20 Javascript
Google Map API更新实现用户自定义标注坐标
2009/07/29 Javascript
一步一步教你写一个jQuery的插件教程(Plugin)
2009/09/03 Javascript
jQuery动画效果-slideUp slideDown上下滑动示例代码
2013/08/28 Javascript
jquery实现可自动判断位置的弹出层效果代码
2015/10/12 Javascript
xmlplus组件设计系列之文本框(TextBox)(3)
2017/05/03 Javascript
Angular 4环境准备与Angular cli创建项目详解
2017/05/27 Javascript
JS中使用textPath实现线条上的文字
2017/12/25 Javascript
vue.js或js实现中文A-Z排序的方法
2018/03/08 Javascript
超轻量级的js时间库miment使用解析
2019/08/02 Javascript
js实现图片实时时钟
2020/01/15 Javascript
es6中Promise 对象基本功能与用法实例分析
2020/02/23 Javascript
如何利用 JS 脚本实现网页全自动秒杀抢购功能
2020/10/12 Javascript
vue 获取url里参数的两种方法小结
2020/11/12 Javascript
python安装cx_Oracle模块常见问题与解决方法
2017/02/21 Python
python3+mysql查询数据并通过邮件群发excel附件
2018/02/24 Python
python 中的list和array的不同之处及转换问题
2018/03/13 Python
flask框架配置mysql数据库操作详解
2019/11/29 Python
解决Jupyter NoteBook输出的图表太小看不清问题
2020/04/16 Python
keras和tensorflow使用fit_generator 批次训练操作
2020/07/03 Python
jupyter使用自动补全和切换默认浏览器的方法
2020/11/18 Python
Python安装Bs4的多种方法
2020/11/28 Python
pycharm 关闭search everywhere的解决操作
2021/01/15 Python
美国性感内衣店:Yandy
2018/06/12 全球购物
Topshop美国官网:英国快速时尚品牌
2019/05/16 全球购物
英国著名的美容护肤和护发产品购物网站:Lookfantastic
2020/11/23 全球购物
名企HR怎样看待求职信
2014/02/23 职场文书
三爱活动实施方案
2014/03/19 职场文书