我正在使用USB网络摄像头和Pygame在我的Raspberry Pi上拍照。这些图像将用于跟踪物体的移动,然后旋转电机。因此,恒定的帧速率会很好。 不幸的是,拍摄暗物体的照片似乎占用的时间几乎是明亮物体的4倍。我怀疑这是曝光时间较长的结果。
如果这确实是问题,有没有办法将曝光时间设置为固定数字?如果没有,我还能做什么?
以下代码的结果:
黑暗:(针对黑墙)
- 时长: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 :(得分:1)
只要您所需的帧速率足够低以适应最慢曝光,您就可以在处理每个帧之后进入睡眠状态,直到获得新帧为止。你已经有了开始第一帧的时间。完成第一帧后,添加所需的间隔以获得下一次开始,并计算到下一帧的睡眠时间。