2013-08-07 53 views
0

我有以下算法(工作):從網絡攝像頭調試圖像處理到Qt循環

  1. 獲取圖像
  2. 過程映像
  3. 發送圖像到GUI,並顯示它

的GUI界面採用Qt編程,所有圖像採集和處理都在OpenCV中進行。涉及3個類別,稱它們爲AcquireProcessGui

Acquire(繼承自QObject)抓取圖像並調用Process(不從QObject繼承)來進行圖像處理。 Process將結果返回給Acquire,後者發出由Gui(從QObject繼承)捕獲的信號,該信號將圖像(以Mat格式)轉換爲QImage並繪製它。

我在介紹Process類的更改,我希望有一個視覺反饋。當一切都被執行到Qt的循環中時,我不能使用cv::namedWindowcv::imshow函數(不顯示任何內容)。

的問題是:有任何快速的方法,使可視化調試知道里面是什麼Process發生的事情沒有做ProcessGui朋友,或者使用信號/插槽機制或涉及重大變化成任何其他的解決辦法將它們連接起來程序結構?

+0

你的問題不清楚。你說過你可以把數據從Process發送到Gui。爲什麼不能使用這種功能發送需要顯示的調試數據? –

+0

我沒有。獲取抓取圖像,發送給Process,Process將結果返回到Acquire並獲取發出Gui捕獲的信號,Gui將處理後的圖像繪製在屏幕上。無論如何,我將編輯問題以使其更清晰 – Manuel

+0

您可以在Process中創建另一個QWidget,將其顯示在單獨的窗口中並將調試信息放入其中。您也可以將調試信息寫入文件。 –

回答

0

您可以創建另一個類並將所有調試輸出代碼放入其中。連接進程到這個類來發送調試信息。

+1

我已經創建了一個小項目來說明如何去做。也許有人會發現它很有用:https://github.com/mmartinortiz/DebugingCvWithQt – Manuel