2
我有两个摄像头,这是非常重要的在同一时间读取与OpenCV帧,我想像Lock
像但我不知道我可以实现这一点,我需要一些触发推,使线程读取帧,然后等待下一个触发命中,类似如下:同步线程在同一时间读取不同的资源
def get_frame(queue, cap):
while running:
if(read_frame):
queue.put(cap.read());
else:
# without this sleep this function just consumes unnecessary CPU time
time.sleep(some_time);
q = Queue.Queue()
# for every camera
for u in xrange(2):
t = threading.Thread(target=get_frame, args = (q, caps[u]))
t.daemon = True
t.start()
上述实施的问题是:
- 我需要因为我不知道ev之间的延迟,所以要定义睡眠时间红框读取(即可能长或短,取决于计算)
- 这使我无法读取每次触发命中一次。
所以这种方法不起作用,有什么建议吗?
因为,我现在没有2台摄像机,请您评论一下同步的工作情况。 – saurabheights
@saurabheights当然,我正在处理它,我提到一个问题[这里](http://stackoverflow.com/questions/40060515/how-to-capture-video-from-webcam-in-mjpg-opencv) ;如果我能解决它,那么下一个阶段就是同步。但你的建议的基本和天真的执行似乎目前工作正常。 – dariush