官方网址: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. JAVA语言编程思维入门

    Java语言是一门强数据类型语言,也就是所有的数据有自己的数据类型,不能搞混淆.比如整数int 字符串String 不能用int a="字符串123";这样写是错的,因为数据类型不 ...

  2. spring boot 配置Rabbit

    单独安装Rabbit服务并设置启动,可以通过浏览器访问,一般访问地址是http://localhost:15672/ ,用户名密码看配置文件的用户名密码 1 实例化配置类注解 import org.s ...

  3. java二维码工具类,中间带LOGO的,很强大

    jar包下载maven 配置: Xml代码 收藏代码 <dependency> <groupId>com.google.zxing</groupId> <ar ...

  4. iOS:文字相关(19-01-08更)

    0.写在前面 1.小技巧 UILabel类: 1-1-1).设置行间距富文本,有省略号要求的,需要再次设置省略(初始化时设置的会失效). UITextField类: 1-2-1).清空按钮. UITe ...

  5. 【mySQL】 - 主键

    什么是主键? 对于表中的每一行数据,都会有一个字段或一组字段,用于标识自己的唯一性,这样的一个或一组字段,就叫主键 如果没有这个主键,那么对于表中的每一行的管理,会陷入混乱,我要更新某一特定行的数值, ...

  6. angular的生命周期

    什么是生命周期 生命周期函数通俗的讲就是组件创建.组件更新.组件销毁的时候会触发的一系列的方法. 当 Angular 使用构造函数新建一个组件或指令后,就会按下面的顺序在特定时刻调用这些 生命周期钩子 ...

  7. 3.3.2Qt的按钮部件

    #include "mywidget.h" #include "ui_mywidget.h" #include <QDebug> #include& ...

  8. Python -- Effective Python:编写高质量Python代码的59个有效方法

    第 1 章 用 Pythonic 方式来思考 第 1 条:确认自己所用的 Python 版本 python --version import sys print(sys.version_info) p ...

  9. Oracle之子程序(存储过程、方法、包)

    .过程[存储过程] CREATE [OR REPLACE] PROCEDURE <procedure name> [(<parameter list>)] IS|AS < ...

  10. STM32 HAL库学习系列第2篇 GPIO配置

    GPIO 库函数 基本就是使用以下几个函数 GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); void H ...