我遇到了實現以下情形的問題。我的問題描述是這樣的:在Qt中實現線程間通信
- 我有3個線程。 ThreadCamera用於從相機中抓取幀。用於處理的ThreadProcess(使用OpenCV在圖像/框架上執行一些圖像處理)框架和主GUI用於顯示圖像的線程。
- 我不知道ThreadProcess會花費多少時間來處理圖像。所以我想將ThreadCamera中的圖像傳遞給ThreadProcess,對圖像執行一些圖像處理並將其傳遞給主GUI線程以供顯示。
- 當ThreadProcess處理圖像時,ThreadCamera應該睡眠。即它不應該從相機中抓取更多的幀。當ThreadProcess完成圖像處理任務時,它應該將圖像和一些信息傳遞給主GUI線程。在此之後,只有ThreadCamera應該醒來,並從該攝像機的runnig(ThreadCamera)線程中抓取下一幀/圖像。
感謝名單傢伙......經過一番評論把相機和圖像處理作業在一個單獨的線程我想知道另一point..which是..
- 如果不想要什麼而加工是怎麼回事睡覺相機?不要緊,對我來說,如果我失去了一些由CameraThread
(這在任何情況下,如果我睡覺還是不睡覺的相機,我失去)抓起幀我爲每個進程(Camera Process和Image Processing作業)和movetoThread命令使用QObject它運行在一個特定的線程中。
關於實施和信號/槽的設計將是有益的任何有識之士..
如果你有兩個線程不應該同時工作......你有太多的線程。僅在這兩個線程上進行操作會消除大部分問題。 – Mat
如果相機總是等待處理,爲什麼不只是使用一個線程進行相機和圖像處理?因爲您可以一氣呵成,所以可以節省您的同步問題。 – jdi
@Mat ...雅是多數民衆贊成在....但圖像處理任務密集...所以我想把它放在另一個線程... –