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