`
jy00509336
  • 浏览: 242670 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

如何使用Python操作摄像头

阅读更多

原帖:http://coolshell.cn/?p=1928

用过USB摄像头的都知道,你需要使用鼠标来操作它,比如截个图,录个像什么的,要点N次鼠标,对于我们那些不喜欢多次点击鼠标的人来说,这是一件很boring的事情,所以,本文将教你如何使用Python来操作摄像头。

这里,我们需要三个Python库: VideoCapture, PIL  和 pygame。使用这三个库你可以非常容易的编写一个摄像头程序。之所以使用pygame,其目的就是因为这个库可以处理视频帧(fps)。下面是代码:

from VideoCapture import Device
import ImageDraw, sys, pygame, time
from pygame.locals import *
from PIL import ImageEnhance

res = (640,480)
pygame.init()
cam = Device()
cam.setResolution(res[0],res[1])
screen = pygame.display.set_mode((640,480))
pygame.display.set_caption('Webcam')
pygame.font.init()
font = pygame.font.SysFont("Courier",11)

def disp(phrase,loc):
    s = font.render(phrase, True, (200,200,200))
    sh = font.render(phrase, True, (50,50,50))
    screen.blit(sh, (loc[0]+1,loc[1]+1))
    screen.blit(s, loc)

brightness = 1.0
contrast = 1.0
shots = 0

while 1:
    camshot = ImageEnhance.Brightness(cam.getImage()).enhance(brightness)
    camshot = ImageEnhance.Contrast(camshot).enhance(contrast)
    for event in pygame.event.get():
        if event.type == pygame.QUIT: sys.exit()
    keyinput = pygame.key.get_pressed()
    if keyinput[K_1]: brightness -= .1
    if keyinput[K_2]: brightness += .1
    if keyinput[K_3]: contrast -= .1
    if keyinput[K_4]: contrast += .1
    if keyinput[K_q]: cam.displayCapturePinProperties()
    if keyinput[K_w]: cam.displayCaptureFilterProperties()
    if keyinput[K_s]:
        filename = str(time.time()) + ".jpg"
        cam.saveSnapshot(filename, quality=80, timestamp=0)
        shots += 1
    camshot = pygame.image.frombuffer(camshot.tostring(), res, "RGB")
    screen.blit(camshot, (0,0))
    disp("S:" + str(shots), (10,4))
    disp("B:" + str(brightness), (10,16))
    disp("C:" + str(contrast), (10,28))
    pygame.display.flip()
 

这段代码中的一些要点的解释如下:

 

  • 第15行的那个函数是在视频上显示些信息。这个例子中,显示的是抓图的数量以及当前的亮度和对比度。这个函数先显示深灰色的文本,然后偏移几个像素,再显示浅灰色的,这样可以有阴影的效果。
  • 第26行是在调整亮度和对比度。30-33行是在设置数字键1-4用于调整亮度和对比度。
  • 34 和35行是在设置 ‘q’ 和 ‘w’ 来显示摄像头的对话框。在那里你可以调整分辨率和暴光度等等。
  • 36行及以下的代码,是在存一个抓图文件。文件名中使用了当前时间。.

希望这个小程序能给你开启一个如何写摄像头的程序。

分享到:
评论

相关推荐

    使用Python操作摄像头[Windows]

    一个简单的使用Python操作摄像头的程序。 该程序只能在Windows平台运行,运行之前需要先安装以下程序: Python 2.x PyGTK PIL VideoCapture

    python双目摄像头调用

    在IT领域,特别是计算机视觉和图像处理中,"python双目摄像头调用"是一个关键的操作。双目摄像头,也称为立体摄像头,通过捕捉左右两幅图像来获取深度信息,从而实现三维空间的理解。这种技术广泛应用于自动驾驶、...

    python 远程访问摄像头

    在Python中,可以使用`opencv-python`库来访问和操作摄像头。OpenCV是一个强大的计算机视觉库,它提供了获取、处理、分析和显示视频流的功能。 4. **网络通信**: 为了实现实时传输图像,项目可能使用了Python的...

    python 调用海康SDK 控制摄像头云台代码

    本话题将详细介绍如何使用Python调用海康SDK来实现对摄像头云台的控制。 首先,我们需要理解“云台”是摄像头的一部分,它允许摄像头进行水平和垂直移动,从而扩大监控范围。通过SDK,我们可以精确控制摄像头的方向...

    python 控制摄像头需要的库

    标题提到的“python 控制摄像头需要的库”是指Python中用于操作摄像头的几个关键库,包括PIL(Python Imaging Library)、Pygame以及VideoCapture。下面我们将详细探讨这些库的功能和用法。 1. PIL (Python Imaging...

    Python中gstreamer操作摄像头

    展示了在python语言中用gstreamer打开摄像头示例,示例用一个单独线程操作

    python摄像头视频显示到TK窗口

    使用python读取摄像头视频,并将信息显示到TK窗口,在窗口可编辑性上有很大的提高

    Python代码源码-实操案例-框架案例-使用Python控制摄像头拍照.zip

    总结一下,使用Python控制摄像头拍照涉及的关键知识点有: 1. OpenCV库的使用:包括初始化摄像头、读取帧、保存图像等。 2. 图像处理基础:如numpy的运用,以及OpenCV中的图像变换操作。 3. 硬件交互:通过Python与...

    Python OpenCV模块通过调用摄像头并截图保存功能的实现代码

    虽然题目主要涉及摄像头操作,但这里也简单提一下Python如何进行麦克风录音和屏幕截图。 对于麦克风录音,可以使用`pyaudio`库。以下是一个简单的录音示例: ```python import pyaudio import wave p = pyaudio....

    qt-python视频摄像头运维管理系统的设计与实现

    本文将深入探讨如何使用Qt和Python这两种强大的技术来设计并实现一个针对视频摄像头的运维管理系统。Qt是一个跨平台的C++图形用户界面应用程序开发框架,而Python则以其易读性和丰富的库支持成为编程界的热门选择。...

    新建文件夹_python间隔拍照_调用电脑摄像头_

    1. **Python的摄像头库**:Python中有多种库可以用来操作摄像头,最常用的是`OpenCV`(开源计算机视觉库)。OpenCV库不仅支持图像处理和计算机视觉算法,还提供了访问摄像头的功能。 2. **OpenCV的基本用法**:首先...

    python opencv设置摄像头分辨率以及各个参数的方法

    以下是如何使用OpenCV来操作摄像头的关键知识点: 1. **初始化摄像头**: 要开始从摄像头捕获视频,首先需要创建一个`VideoCapture`对象。通常,设备索引0表示默认摄像头,如内置摄像头。例如: ```python ...

    python操作ffmpeg对摄像头rtsp流进行自动转码-.pdf

    Python 操作 FFmpeg 对摄像头 RTSP 流进行自动转码 本文档旨在解决公司项目中遇到的问题,即将几个...本文档介绍了使用 Python 操作 FFmpeg 对摄像头 RTSP 流进行自动转码的解决方案,解决了公司项目中遇到的问题。

    Python-camerahook摄像头钩子程序自动打开目标主机摄像头并回传信息

    Python-camerahook是一个用于控制远程主机摄像头的工具,它能自动开启目标计算机的摄像头,并将捕获到的视频信息回传。这个程序的核心在于它能够利用Python的强大功能,跨越不同平台实现IO多路复用,确保高效稳定的...

    基于Python的摄像头云台舵机控制

    舵机可以用软件比较精细的控制旋转的角度,一般用PWM信号来控制舵机的动作。如果要控制舵机旋转的位置,需要对其发送特定占空比的脉冲信号。...本代码基于Python,以SG90舵机为操作对象,在树莓派上调试成功。

    Python显示多路USB摄像头.zip

    为了解决这个问题,我们可以使用Python的`threading`库创建多个子线程,每个子线程负责处理一个摄像头的视频流。这样,主线程可以专注于GUI的更新,而不会被视频处理过程阻塞。 具体实现步骤如下: 1. 导入必要的库...

    Python基于监控摄像头实现制作延时拍摄视频源码,Python使用摄像头制作延时拍摄视频源码

    本文将详细介绍如何使用Python结合监控摄像头制作延时拍摄视频。 首先,我们需要了解Python中的几个关键库,它们是实现这个项目的核心工具: 1. OpenCV (Open Source Computer Vision Library):这是一个开源的...

    海康摄像头:python +SDK+tkinter实现摄像头预览,拍照截图到指定文件夹,关闭提示框后进入保存图片的文件夹的功能

    参考海康SDK的python演示版本,用tkinter框架设计了简单的图形界面,frame用来展现摄像头预览流,左下角拍照并保持button加入响应事件程序实现拍照,以时间戳为名存图到指定目录并打开目录的操作,右下角关闭整个...

    python opencv 调用手机网络摄像头拍照,可以设置拍照时间和保存文件路径,有使用文档

    在这个项目中,我们看到一个利用Python和OpenCV调用手机网络摄像头进行拍照的功能,并且允许用户自定义拍照时间和指定保存图片的路径。下面将详细介绍这个过程中的关键知识点。 1. **Python**: Python是一种高级...

    python+openCV利用摄像头实现人员活动检测

    本文通过具体的代码实例介绍了如何使用 Python 结合 OpenCV 实现基于摄像头的人员活动检测功能。通过上述步骤,我们可以实时捕捉到摄像头画面中的运动物体,这对于开发安全监控系统、人机交互应用等具有重要意义。...

Global site tag (gtag.js) - Google Analytics