2011-04-15 62 views
0

我需要從兩臺攝像機捕獲圖像並將它們組合在一起。同步兩臺攝像機的C#線程

的流動是這樣的:

  • 兩個線程,一個用於每個攝像機,採樣相機的幀。
  • 每個人都將幀發送給第三個線程,即消費者。
  • 只有當消費者有兩個框架他處理它們, 和
  • 釋放捕獲線程,以便他們可以獲得下一幀。

有人可以概述我需要做什麼嗎? 我使用C#.Net 4.0

+1

你確實需要兩個線程每個相機?難道你不能只從你的消費者那裏拍攝照片嗎? – 2011-04-15 20:51:07

+0

@sachar:沒有必要在SO上簽名。它是自動完成的。在帖子中也不需要HTML標籤。有一個處理文本的降價引擎。請參閱常見問題了解更多信息。 – 2011-04-15 20:53:07

+0

我嘗試了同步,它太慢了。 – 2011-04-15 20:56:00

回答

0

我會使用任何靜態變量或數據庫來存儲單個相機的採樣活動的進度。當兩臺攝像機將其各自的標記標記爲已完成時,讀取器標記將消耗所有幀,重置這些標記。 Uplon重置其自己的單獨標誌,工作線程開始捕捉下一幀。您也可以使用委託模式(prescriber-subscriber)通過事件相互通知。

0

我想給每個捕獲工人2個的AutoResetEvent對象......在拍攝完成(A)一個信號,另一個等待許可,開始下一個捕獲(B)...

工人例程將是以下循環:

捕捉到本地緩存
信號A
等待對於B

消費者循環:

等待既是
副本兩個緩衝區
信號兩個B
緩衝的過程copys