簡體   English   中英

OpenCV多線程調用

[英]OpenCV Multi-thread call

我制作了一個具有兩個線程的程序,即將變為三個線程,該程序試圖同時從兩個線程的網絡攝像頭獲取圖像。 有沒有辦法做到這一點,還是有更好的辦法做到這一點? (使用openCV 1.1)

可能我建議只讓您的一個線程(我們稱其為主要線程)與相機對話,獲取圖像並將其全部設置好。 一旦將其設置並放置在內存中的某個位置,就可以通知第二個線程該位置(在此位置使用互斥鎖),然后兩個線程都可以退出並進行處理。 一旦兩個線程都完成了該映像(也可以在此處使用互斥鎖),則可以讓主線程獲取另一個映像並重新開始該過程。

如果您的相機正在生成大量圖像,並且您想在兩個線程都結束之前開始處理它們,則可能需要轉到三個線程...一個僅用於獲取圖像,而另外兩個僅用於獲取圖像。兩種類型的處理。 這將變得更加復雜,因為您將需要多個緩沖區。 您可能還需要多個互斥對象,也可能需要幾個隊列,盡管它們都是可行的:-)

如果您希望兩個線程都能使用該圖像,則應編寫一個為您提供當前圖像的方法。 您可以在第一次調用該方法時從cam獲取圖像,然后阻止調用直到加載圖像。 然后,您可以返回緩沖的圖像,直到要獲取下一個圖像為止。 這樣,兩個線程都通向凸輪的路徑相同,並且OpenCV不必嘗試打開與相機的連接,並且如果僅在未加載圖像時阻塞,則多個線程可以在將圖像保存到后獲取圖像數據。同一時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM