小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

調(diào)用攝像頭攝像及保存圖片 - 代碼分享 - 開源中國社區(qū)

 ganame 2011-02-13
調(diào)用攝像頭攝像及保存圖片
龍影 發(fā)布于 2010年12月20日 19時 (1評) 6人收藏此代碼, 我要收藏(?)
標簽: Pygame , 攝像頭

代碼片段(1)

[代碼] [Python]代碼

01 #! /usr/bin/env python
02 #coding=utf-8
03 """
04 用過USB攝像頭的都知道,你需要使用鼠標來操作它,比如截個圖,錄個像什么的,要點N次鼠標,對于我們那些不喜歡多次點擊鼠標的人來說,這是一件很boring的事情,所以,本文將教你如何使用Python來操作攝像頭。
05 這里,我們需要三個Python庫: VideoCapture, PIL  和 pygame。使用這三個庫你可以非常容易的編寫一個攝像頭程序。之所以使用pygame,其目的就是因為這個庫可以處理視頻幀(fps)。
06 這段代碼中的一些要點的解釋如下:
07 •第15行的那個函數(shù)是在視頻上顯示些信息。這個例子中,顯示的是抓圖的數(shù)量以及當前的亮度和對比度。這個函數(shù)先顯示深灰色的文本,然后偏移幾個像素,再顯示淺灰色的,這樣可以有陰影的效果。
08 •第26行是在調(diào)整亮度和對比度。30-33行是在設(shè)置數(shù)字鍵1-4用于調(diào)整亮度和對比度。
09 •34 和35行是在設(shè)置 ‘q’ 和 ‘w’ 來顯示攝像頭的對話框。在那里你可以調(diào)整分辨率和暴光度等等。
10 •36行及以下的代碼,是在存一個抓圖文件。文件名中使用了當前時間。.
11 """
12 from VideoCapture import Device
13 import ImageDraw, sys, pygame, time
14 from pygame.locals import *
15 from PIL import ImageEnhance
16   
17 res = (640,480)
18 pygame.init()
19 cam = Device()
20 cam.setResolution(res[0],res[1])
21 screen = pygame.display.set_mode((640,480))
22 pygame.display.set_caption('Webcam')
23 pygame.font.init()
24 font = pygame.font.SysFont("Courier",11)
25   
26 def disp(phrase,loc):
27     s = font.render(phrase, True, (200,200,200))
28     sh = font.render(phrase, True, (50,50,50))
29     screen.blit(sh, (loc[0]+1,loc[1]+1))
30     screen.blit(s, loc)
31   
32 brightness = 1.0
33 contrast = 1.0
34 shots = 0
35   
36 while 1:
37     camshot = ImageEnhance.Brightness(cam.getImage()).enhance(brightness)
38     camshot = ImageEnhance.Contrast(camshot).enhance(contrast)
39     for event in pygame.event.get():
40         if event.type == pygame.QUIT: sys.exit()
41     keyinput = pygame.key.get_pressed()
42     if keyinput[K_1]: brightness -= .1
43     if keyinput[K_2]: brightness += .1
44     if keyinput[K_3]: contrast -= .1
45     if keyinput[K_4]: contrast += .1
46     if keyinput[K_q]: cam.displayCapturePinProperties()
47     if keyinput[K_w]: cam.displayCaptureFilterProperties()
48     #以下的代碼,是在存一個抓圖文件。文件名中使用了當前時間
49     if keyinput[K_s]:
50         filename = str(time.time()) + ".jpg"
51         cam.saveSnapshot(filename, quality=80, timestamp=0)
52         shots += 1
53     camshot = pygame.image.frombuffer(camshot.tostring(), res, "RGB")
54     screen.blit(camshot, (0,0))
55     disp("S:" + str(shots), (10,4))
56     disp("B:" + str(brightness), (10,16))
57     disp("C:" + str(contrast), (10,28))
58     pygame.display.flip()

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多