我有以下算法(工作):從網絡攝像頭調試圖像處理到Qt循環
- 獲取圖像
- 過程映像
- 發送圖像到GUI,並顯示它
的GUI界面採用Qt編程,所有圖像採集和處理都在OpenCV中進行。涉及3個類別,稱它們爲Acquire
,Process
和Gui
。
Acquire
(繼承自QObject)抓取圖像並調用Process
(不從QObject繼承)來進行圖像處理。 Process
將結果返回給Acquire
,後者發出由Gui
(從QObject繼承)捕獲的信號,該信號將圖像(以Mat格式)轉換爲QImage並繪製它。
我在介紹Process
類的更改,我希望有一個視覺反饋。當一切都被執行到Qt的循環中時,我不能使用cv::namedWindow
和cv::imshow
函數(不顯示任何內容)。
的問題是:有任何快速的方法,使可視化調試知道里面是什麼Process
發生的事情沒有做Process
和Gui
朋友,或者使用信號/插槽機制或涉及重大變化成任何其他的解決辦法將它們連接起來程序結構?
你的問題不清楚。你說過你可以把數據從Process發送到Gui。爲什麼不能使用這種功能發送需要顯示的調試數據? –
我沒有。獲取抓取圖像,發送給Process,Process將結果返回到Acquire並獲取發出Gui捕獲的信號,Gui將處理後的圖像繪製在屏幕上。無論如何,我將編輯問題以使其更清晰 – Manuel
您可以在Process中創建另一個QWidget,將其顯示在單獨的窗口中並將調試信息放入其中。您也可以將調試信息寫入文件。 –