2013-08-17 85 views
0

我熟悉編程,但不是使用python或linux。我正在使用python進行編程,嘗試創建安全攝像頭。這裏是我的代碼來測試我目前的問題:從網絡攝像頭保存圖像,後面總是兩個圖像

#!/usr/bin/python 
import pygame, sys 
from pygame.locals import * 
from datetime import datetime 
import pygame.camera 
import time 

pygame.init() 
pygame.camera.init() 

width = 640 
height = 480 

pic_root = "/root/cam/" 

cam = pygame.camera.Camera("/dev/video0",(width,height),"RGB") 

cam.start() 

while True: 
    raw_input("press enter") 
    image = cam.get_image() 
    filename = datetime.now().strftime("%Y_%m_%d_%H_%M_%S") +'.jpg' 
    filepath = pic_root+filename 
    pygame.image.save(image, filepath) 

所以,當我按下輸入,從網絡攝像頭拍攝圖像並保存。但圖像始終是背後的兩個圖像。無論保存圖像多長時間,前兩個圖像總是非常暗淡,就好像網絡攝像頭剛剛啓動一樣,其餘圖像後期總是兩個圖像。因此,如果我拍攝了5張圖像,一張用手指向上,另一張用兩根手指等,最後我會看到兩張黑色圖像,然後是前三張圖像。 1,2和3個手指。這就好像圖像存儲在某個地方,然後當我嘗試保存一幅現場圖像時,它會拉起一張舊圖像。

我在這裏錯過了什麼嗎?有什麼問題?

回答

0

首先,我不熟悉pygame的(但我做了很多快照與OpenCV的拍攝 - 這是我的一個項目:http://vmlaker.github.io/wabbit。)

我改變了你的代碼,以便在每個迭代上,你1)開始,2)拍攝快照,3)停止相機。這個效果稍好一點,因爲(而不是兩個)後面的一個圖像只有。舊的圖像如何在上一次運行時保持原樣仍然很奇怪......我還沒有弄清楚如何沖洗相機。請注意,我也改變pic_root,並且代替無限循環我使用3次迭代只:

from datetime import datetime 
import pygame 
import pygame.camera 

pygame.init() 
pygame.camera.init() 

width = 640 
height = 480 

pic_root = './' 

cam = pygame.camera.Camera("/dev/video0",(width,height),"RGB") 

#cam.start() 

for ii in range(3): 
    raw_input("press enter") 
    cam.start() 
    image = cam.get_image() 
    cam.stop() 
    filename = datetime.now().strftime("%Y_%m_%d_%H_%M_%S") +'.jpg' 
    filepath = pic_root+filename 
    pygame.image.save(image, filepath) 
+0

這是怎麼找到的代碼,但它引起的每一個圖像暗淡和/或損壞,就好像相機剛剛啓動。這對我的相機來說肯定是一個問題,這個問題在這個圖書館的工作中會變得更大。我將着手使用不同的庫。 – Stoopkid

+0

我得到了與opencv相同的問題。每次我拍攝一張圖像時,它只會打開攝像頭,一切都很暗。 – Stoopkid

+0

「暗影像」問題聽起來像是相機在啓動時進行某種硬件初始化(白平衡,曝光,對焦等)。除非可以覆蓋默認值,否則您可能必須忍受這一點, ) –

相關問題