將開發(fā)過程中經(jīng)常用的一些內(nèi)容片段做個收藏邪狞,下邊資料是關(guān)于用python控制攝像頭的片段的內(nèi)容丙挽,應(yīng)該能對大伙有幫助。
from VideoCapture import Device
import ImageDraw, sys, pygame, time
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行的那個函數(shù)是在視頻上顯示些信息朗徊。這個例子中纫谅,顯示的是抓圖的數(shù)量以及當(dāng)前的亮度和對比度。這個函數(shù)先顯示深灰色的文本再登,然后偏移幾個像素疤估,再顯示淺灰色的,這樣可以有陰影的效果霎冯。第26行是在調(diào)整亮度和對比度。30-33行是在設(shè)置數(shù)字鍵1-4用于調(diào)整亮度和對比度钞瀑。34和35行是在設(shè)置‘q’和‘w’來顯示攝像頭的對話框沈撞。在那里你可以調(diào)整分辨率和暴光度等等。36行及以下的代碼雕什,是在存一個抓圖文件缠俺。文件名中使用了當(dāng)前時間。.希望這個小程序能給你開啟一個如何寫攝像頭的程序贷岸。