Python常用模块之VideoCapture
官方网址:http://videocapture.sourceforge.net/
功能介绍:
VideoCapture是Win32版Python的一个扩展,可以访问视频采集设备(如USB摄像头)。它包含一个底层本地模块(vidcap.pyd)[1]和一个仅用Python编写的高层模块(VideoCapture.py)。还包括一些工具,可以用来定期上传摄像头拍摄的图像到网络服务器,监控并通过给定的URL保存图片到本地磁盘,等等。详细细节请参阅“Tools”目录下的“README.txt”文件。
模块下载:
注意事项:PIL 1.1.2及以前版本在使用.gif字体文件时会出现内存泄漏的情况。如果你打算使用VideoCapture 0.7以前的版本,请删除你Python安装目录下的Lib目录中的helvB08.gif文件和helvetica-10.gif文件 ! !
- 【VideoCapture-0.9-5.zip】下载链接:http://videocapture.sourceforge.net/VideoCapture-0.9-5.zip
使用依赖:
除Python和VideoCapture模块本身,你还需要以下组件:
- 底层模块使用DirectShow,DirectShow已经包含在DirectX 8.0和更高版本中。如果你没有安装DirectShow,请从微软相关网站上下载DirectX并安装。Windows XP系统本身已经集成了DirectX。
- 高层模块需要使用PIL模块,从像素数据中解析出实际图片。PIL可硬从PythonWare网站上下载。
- (可选)如果你想使用“scp”作为在webcam-uploader.py中传输方法,你可以选择scp2.exe,在SSH的安装文件中可以获取,或者选择pscp.exe,可以在PuTTY中获取。
安装模块:
要想使用VideoCapture,只需将文件从“PythonXX”文件夹复制到相应的“PythonXX”安装文件夹下,其中“XX”代表安装在你的操作系统上的Python版本,例如:Python27,XX就为27。
使用示例:
from VideoCapture import Device cam = Device()
cam.saveSnapshot('image.jpg')
- “Examples”夹中包含了几个简单的例子,可以直观的感受到使用VideoCapture从视频设备中获取图片,是十分便利的。参阅“exa2_show-possibilities.py”可以了解到更多额外的可用选项的详情。
- 想了解更多详细信息,可以查看模块说明文档。
存在缺陷:
- setResolution()可能对设备分辨率属性值CaptureFilterProperties的设置不起作用。
- 一些TV-cards在电视应用后终止后丢失调谐器(频道)设置,所以VideoCapture应该提供一种方法来显示调谐器的属性页。
相关内容:
如果你想从支持Twain协议的扫描仪或数码相机中获取照片,可以使用Kevin Gill的twainmodule模块。
历史版本:
(01.03.2012) Version 0.9-5
- 添加一个新方法到vidcapmodule.cpp文件中,可以获取Windows设备友好的名称(例如:Microsoft Lifecam VX-4000)。由Jeremy Mortis提供。
(15.04.2011) Version 0.9-4
- 包含与Python 2.7 64位链接的底层模块的预编译二进制文件,由Jurriaan Schreuder提供。
(04.10.2010) Version 0.9-3
- 包含与Python 2.7链接的底层模块的预编译二进制文件,由Chris Spencer提供。
(30.11.2008) Version 0.9-2
- 包含与Python 2.6链接的底层模块的预编译二进制文件,由Jim Gasbarro提供。
(8.1.2007) Version 0.9-1
- 包含与Python 2.5链接的底层模块的预编译二进制文件。
(27.8.2005) Version 0.9
- Jonathan Viney修复了在使用没有摄像头连接的模块时可能导致崩溃的错误。
- 包含与Python 2.4链接的底层模块的预编译二进制文件。
(8.10.2003) Version 0.8
- 添加模块说明文档。
- 将工程迁移到到SourceForge.net。
- 包含与Python 2.3链接的底层模块的预编译二进制文件。
- 加入Don Garrett和Don Kimber(Tools\3rdParty)的独立网络服务器。 Don Kimber的推送器很有意思。 现在我可以在Mozilla窗口中看到25fps的电视:-)
- 添加了由Don Kimber贡献的setResolution()方法。(可能仅适用于具有CapturePinProperties中指定分辨率的设备。)
- Don Kimber修复了在displayCapturePinProperties()中一个小但严重的不一致,有时会导致段错误。
(4.3.2002) Version 0.7
- 用.png字体代替.gif字体,因为PIL版本1.1.2及更低版本在使用.gif字体时显示内存泄漏。 如果您在0.7之前使用了VideoCapture的版本,请删除Python安装的Lib文件夹中的文件'helvB08.gif'和'helvetica-10.gif'。
- 将displayPropertyPage()替换为displayCaptureFilterProperties()和displayCapturePinProperties()。这最终允许选择诸如在捕获期间为每种设备驱动程序使用的视频大小(现在也用于WDM驱动程序,以前仅适用于VfW驱动程序)。
- 由于每次捕获时启动和停止图形过滤器,因为某些设备驱动程序存在一些内存泄漏问题,因此该图形将继续运行。 除了解决内存问题,这有很大的优势,拍摄快照现在真的很快。 每秒拍摄10张以上的快照是没有问题的:-)
- scp现在也可以用pscp.exe程序,该程序可以在PuTTY发行版中找到。
- 通过释放MediaType.pbFormat来修复一个小的内存泄漏。
- 添加了DirectShow AMCAP实用程序,可用于检查捕获设备是否与VideoCapture兼容。
(20.2.2002) Version 0.6
- 包含与Python 2.2链接的底层模块的预编译二进制文件。
- 将可独立运行的图形化程序webcam-watcher放到网页上。
- 添加scp作为webcam-uploader的附加上传方法(另外是ftp)。
- “Tools”文件夹中的所有程序的其他次要功能进行增强。
- displayPropertyPage()对话框显示在所有其他窗口的顶部。
- 在调用displayPropertyPage()后,重建图形过滤器。
(08.12.2001) Version 0.5
- 将过滤器初始化更改为使用捕获引脚而不是视频设备过滤器的预览引脚。 这应该可以解决一个奇怪的超时问题,甚至允许我从我的电视卡捕获快照:-)
- 向Device类添加了一个方法displayPropertyPage(),该方法显示包含捕获设备的属性页面的对话框。这允许选择拍摄时使用的视频大小。
(10.7.2001) Version 0.4
- 添加了一个基于PyQt的程序,它定期从网络上检索图片并将其显示在GUI窗口中。
- 网络摄像头上传器的几项改进。现在,还可以将显示上传的图像并定期重新载入的HTML文件与WebServer上的图像一起放置。
(28.6.2001) Version 0.3
- 包括与Python 2.1链接的底层模块的预编译二进制文件(除了已经包含与Python 2.0链接的)。
- 添加了一个工具,通过FTP定期将WebCam映像上传到WebServer。
- 添加了一个工具来监视(并在变更的情况下保存)位于给定URL的图片。
- 同时可以打开多个设备实例。
- 时间戳在图像中的位置是可选择的。
(24.6.2001) Version 0.2
- 在每次系统调用后增加广泛的错误检查。如果出现问题,会出现异常。
- 对高层接口的一些改进,如可选择的字体风格,便于辨识的各种阴影模式。
- 可以指定应该使用的视频设备。
(18.6.2001) Version 0.1
- 初始发行版本。
注解:
----------------------------正文结束----------------------------
感谢大家能够看到这里,谢谢!
初次翻译外文内容,希望大家不要吝啬话语,能够指出我的不足之处。
联系方式:1.博客文章下方留言 2.个人邮箱:zhwm9521@qq.com
Python常用模块之VideoCapture的更多相关文章
- Python常用模块之sys
Python常用模块之sys sys模块提供了一系列有关Python运行环境的变量和函数. 常见用法 sys.argv 可以用sys.argv获取当前正在执行的命令行参数的参数列表(list). 变量 ...
- Python常用模块中常用内置函数的具体介绍
Python作为计算机语言中常用的语言,它具有十分强大的功能,但是你知道Python常用模块I的内置模块中常用内置函数都包括哪些具体的函数吗?以下的文章就是对Python常用模块I的内置模块的常用内置 ...
- python——常用模块2
python--常用模块2 1 logging模块 1.1 函数式简单配置 import logging logging.debug("debug message") loggin ...
- python——常用模块
python--常用模块 1 什么是模块: 模块就是py文件 2 import time #导入时间模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的 ...
- Python常用模块——目录
Python常用模块学习 Python模块和包 Python常用模块time & datetime &random 模块 Python常用模块os & sys & sh ...
- python 常用模块之random,os,sys 模块
python 常用模块random,os,sys 模块 python全栈开发OS模块,Random模块,sys模块 OS模块 os模块是与操作系统交互的一个接口,常见的函数以及用法见一下代码: #OS ...
- python常用模块之时间模块
python常用模块之时间模块 python全栈开发时间模块 上次的博客link:http://futuretechx.com/python-collections/ 接着上次的继续学习: 时间模块 ...
- python常用模块之subprocess
python常用模块之subprocess python2有个模块commands,执行命令的模块,在python3中已经废弃,使用subprocess模块来替代commands. 介绍一下:comm ...
- python常用模块之string
python常用模块string模块,该模块可以帮我们获取字母.数字.特殊符号. import string #打印所有的小写字母 print(string.ascii_lowercase) #打印所 ...
随机推荐
- 关于Oracle的认识
一.Oracle认识: 1.安装时的全局数据库Orcl可以使用吗?可以的 2.Oracle相关服务: 3.数据库与用户,表空间的关系“ 4.切换数据库 5.关于命令:sqlplus 6\
- 【Python】01 - 常见用法随见随梳理
1. range() 和 xrange()的区别 for x in range(5): print x for x in xrange(5): print x 这么看,range和xrange返回的值 ...
- JSON定义及应用
1 什么是JSON? JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) 是轻量级的文本数据交换格式,JSON 比 XML 更小.更快,更易解析 ...
- mysql-8.0.15允许外网访问
1.进MySQL之后, 2.输入以下语句,进入mysql库: use mysql3.更新域属性,'%'表示允许外部访问: update user set host='%' where user ='r ...
- Bootstrap源码解读之栅格化篇
本文纯属自己研究所写笔记,如果有错误还请多多指教提出 版心(container) 版心:class名为.container的容器,其版心的宽度在各个屏幕设备下是不一样的值,版心两边就是留白. 各尺寸下 ...
- SpringAOP的自定义注解实践
springaop属于spring的重要属性,在java中有相当广泛的用途,大家一般都接触过aop实现事务的管理,在xml里配好声明式事务,然后直接在service上直接加上相应注解即可, 今天我们来 ...
- Linux C 语言之 Hello World 详解
目录 Linux C 语言之 Hello World 详解 第一个 C 语言程序 程序运行原理 编译,链接 运行时 链接库 编译器优化 Hello World 打印原理 stdout, stdin 和 ...
- OpenWrt-Git依赖报错
前言 在Ubuntu中搭建openwrt编译环境时,安装完了需要的软件之后,我们执行命令检查依赖是否满足, make defconfig 有时会出现以下警告: ihid@ubuntu:~/chaos_ ...
- 解决「matplotlib 图例中文乱码」问题
在学习用 matplotlib 画图时遇到了中文显示乱码的问题,在网上找了很多需要修改配置的方法,个人还是喜欢在代码里修改. 解决方法如下: 在第2.3行代码中加上所示代码即可. import mat ...
- idea创建Scala入门HelloWorld
Scala开发环境的搭建 首先到Scala官网下载Scala网址为 https://www.scala-lang.org/download/ 找到下图所示位置:选择相对应的版本的Scala进行下载,这 ...