2014-10-28 149 views
1

我正在使用usb攝像頭和Pygame在Raspberry Pi上拍照。這些圖像將用於追蹤物體的移動,然後旋轉電機。因此,一個固定的幀率會很好。 不幸的是,拍攝黑暗物體的時間幾乎是明亮物體的4倍。我懷疑這是曝光時間較長的結果。在Raspberry Pi和Python上控制USB網絡攝像頭拍照時間

如果確實是這個問題,有什麼辦法將曝光時間設置爲固定的數字?如果不是,我還能做什麼? - :

黑暗:持續時間(針對黑壁)

的下面代碼結果14213毫秒
- 最小:12毫秒
- 最大:387毫秒
- 平均:142毫秒

明亮:(針對白色的牆壁)
- 時間:3550毫秒
- 最小:12毫秒
- 最大:67毫秒
- 魅力:35毫秒

print "importing.." 

import time 
import pygame 
import pygame.camera 
from pygame.locals import * 

# INITIALIZE CAMERA 
print "\ninitializing.." 
pygame.init() 
pygame.camera.init() 
camlist = pygame.camera.list_cameras() 
cam = pygame.camera.Camera("/dev/video0", (320,240)) 
cam.start() 

time.sleep(1) 

# MEASURE TIME 
print "running.." 
begin = int(round(time.time() * 1000)) 

min = 1000 
max = 0 

for i in range(1, 100): 
     start = int(round(time.time() * 1000))  
     img = cam.get_image()   
     stop = int(round(time.time() * 1000)) - start 

     if(stop > max): 
       max = stop 
     if(stop < min): 
       min = stop 

     print "{}\t{} ms".format(i, stop) 

duration = int(round(time.time() * 1000)) - begin 

print "Duration: {} ms".format(duration) 
print "Min:\t{} ms".format(min) 
print "Max:\t{} ms".format(max) 
print "Avg:\t{} ms".format(duration/100) 
+0

這不是Raspberry Pis自己的相機嗎?根據USB攝像頭的型號,這種低級控制可能是不可能的。最好包含相機型號,並嘗試查找Linux驅動程序的具體說明。 – 2014-10-28 11:24:00

回答

1

只要你所需的幀速率足夠低,以適應最慢的曝光,可以處理每一幀,直到它的時間爲一個新的幀後睡覺。你已經有了開始第一幀的時間了。當第一幀完成後,添加所需的時間間隔以獲得下一次啓動並計算到下一幀的休眠時間。

+0

是的,謝謝你,我想到了這個方法。不幸的是,這將會太慢 – 2014-10-28 13:02:22

+0

但是因爲我不會得到任何其他答案,並且因爲這可以爲其他人提供同樣問題的解決方案,所以我會接受它。 – 2014-10-28 23:30:30

相關問題