官方网址: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文件 ! !

使用依赖:

除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] .pyd文件与dll文件是一样的吗?

----------------------------正文结束----------------------------

感谢大家能够看到这里,谢谢!

初次翻译外文内容,希望大家不要吝啬话语,能够指出我的不足之处。

联系方式:1.博客文章下方留言  2.个人邮箱:zhwm9521@qq.com

Python常用模块之VideoCapture的更多相关文章

  1. Python常用模块之sys

    Python常用模块之sys sys模块提供了一系列有关Python运行环境的变量和函数. 常见用法 sys.argv 可以用sys.argv获取当前正在执行的命令行参数的参数列表(list). 变量 ...

  2. Python常用模块中常用内置函数的具体介绍

    Python作为计算机语言中常用的语言,它具有十分强大的功能,但是你知道Python常用模块I的内置模块中常用内置函数都包括哪些具体的函数吗?以下的文章就是对Python常用模块I的内置模块的常用内置 ...

  3. python——常用模块2

    python--常用模块2 1 logging模块 1.1 函数式简单配置 import logging logging.debug("debug message") loggin ...

  4. python——常用模块

    python--常用模块 1 什么是模块: 模块就是py文件 2 import time #导入时间模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的 ...

  5. Python常用模块——目录

    Python常用模块学习 Python模块和包 Python常用模块time & datetime &random 模块 Python常用模块os & sys & sh ...

  6. python 常用模块之random,os,sys 模块

    python 常用模块random,os,sys 模块 python全栈开发OS模块,Random模块,sys模块 OS模块 os模块是与操作系统交互的一个接口,常见的函数以及用法见一下代码: #OS ...

  7. python常用模块之时间模块

    python常用模块之时间模块 python全栈开发时间模块 上次的博客link:http://futuretechx.com/python-collections/ 接着上次的继续学习: 时间模块 ...

  8. python常用模块之subprocess

    python常用模块之subprocess python2有个模块commands,执行命令的模块,在python3中已经废弃,使用subprocess模块来替代commands. 介绍一下:comm ...

  9. python常用模块之string

    python常用模块string模块,该模块可以帮我们获取字母.数字.特殊符号. import string #打印所有的小写字母 print(string.ascii_lowercase) #打印所 ...

随机推荐

  1. MySQL学习之路(一)——初涉MySQL。

    MySQL学习之路(一) 1.1MySQL的概述 MySQL由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一个开源的关系型数据库管理系统. MySQL分为社区版和企业版. 1 ...

  2. 使用img标签能使用background-size:conver一样的效果

    使用css img { object-fit: cover; object-position:left center; } 就可以达到 和 background-size:cover; 一样的效果 共 ...

  3. 搭建Jenkins自动化持续构建和部署系统

    什么是Jenkins? Jenkins是一个持续集成和持续交付的java应用程序,可以处理任何类型的构建或持续集成.集成Jenkins可以用于一些测试和部署技术.简单得说就是一款自动化构建测试和部署的 ...

  4. Windows8系统下设置Mongodb开机启动

    1. 官网下载安装 MongoDB https://www.mongodb.com/ 2. 环境变量设置 把 mongod.exe 所在路径加入到环境变量的PATH, 我这里安装的路径是 D:\db\ ...

  5. Mac配置PHP+Nginx+MySQL开发环境

    Homebrew简称brew,OSX上的软件包管理工具,在Mac终端可以通过brew安装.更新.卸载各种软件,(简直就是神器级武器). 废话不多说,没安装brew自己去百度学习安装,这里就不多说了. ...

  6. html表单相关标签及属性

    1.<form>标签 定义整体的表单区域 action属性 定义表单数据提交地址 method属性 定义表单提交的方式,一般有“get”方式和“post”方式 2.<label> ...

  7. python3 class类 练习题

    """一.定义一个学生Student类.有下面的类属性:1 姓名 name2 年龄 age3 成绩 score(语文,数学,英语) [每课成绩的类型为整数] 类方法:1 ...

  8. 20155317 《Java程序设计》实验五网络编程与安全实验报告

    20155317 <Java程序设计>实验五网络编程与安全实验报告 遇到问题 在刚开始启动客户端或者服务端时,出现了一系列的错误情况,总是提示异常信息 后来经过询问同学,反应将端口号修改一 ...

  9. 20155320 2016-2017-3 《Java程序设计》第三周学习总结

    20155320 2016-2017-3 <Java程序设计>第三周学习总结 教材学习内容总结 定义类 步骤: 在程序中定义类 使用new关键词新建一个对象 声明参考名称,并将名称参考至新 ...

  10. texterea 水平居中

    例子:<div style="width: 100%;text-align: center;"> <textarea class="xinde_msg& ...