玩蛇网提供最新Python编程技术信息以及Python资源下载!

Python调用摄像头摄像并保存图片的方法源码

python 培训

python语言来调用摄像头,并自动拍摄图片并保存到指定位置的方法源码是怎么样的呢?

操作USB摄像头一定需要用到鼠标来操作。像是截图、录像都可以完成。如今学习了python计算机编程语言那就要动手来完成一件有成就感的事情吧,就像本文中教的那样,看看是如何使用Python来操作摄像头。

首先完成这件事情,需要用到Python库,有这三个: VideoCapture、PIL 和 pygame。

pygame,这个库可以处理视频帧(fps)。

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

#! /usr/bin/env python
#coding=utf-8

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)

#www.iplaypython.com

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()

玩蛇网原创,转载请注明文章出处和来源网址:http://www.iplaypython.com/code/graphics/gr2561.html



微信公众号搜索"玩蛇网Python之家"加关注,每日最新的Python资讯、图文视频教程可以让你一手全掌握。强烈推荐关注!

微信扫描下图可直接关注

玩蛇网Python新手QQ群,欢迎加入: ① 240764603 玩蛇网Python新手群
文章发布日期:2016-03-22 09:01 玩蛇网 www.iplaypython.com

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
相关文章推荐
别人正在看
特别推荐
去顶部去底部