2011-03-21 32 views
0

我正在嘗試開發一些基於圖像處理的非常複雜的應用程序。我廣泛使用openCV。但是隨着我的程序的複雜性越來越高,我發現調試我的程序非常困難。只是爲了調試,我必須在Matlab中開發相同的算法。這樣做的主要原因是,即使在代碼中有任何錯誤,即使代碼停止運行或崩潰時,變量的值也會保留。既然值在那裏,我可以使用不同的可視化工具來分析它;像繪製它;將其顯示爲圖像。有沒有什麼方法或功能可以用C來實現,以便我們可以採取同樣的行爲。如何編程使調試變得容易?

+0

你不使用GDB嗎? – 2011-03-21 18:22:46

+0

即使不是這樣,帶日誌語句的通用try/catch塊也可以採用LONG方式。 – 2011-03-21 18:24:31

+0

@Matt我對此一無所知......你能告訴我它是什麼嗎?我使用Visual Studio作爲我的編輯器。有沒有我不知道的功能? – bubble 2011-03-21 18:32:13

回答

1

要調試視覺算法,我強烈建議將算法分爲不同的視覺步驟。通過將您的c程序構建爲plugin,將每個步驟作爲函數接口到像matlab這樣的視覺環境。然後將控制器部分編程爲matlab腳本而不是c。這使您可以將每個視覺步驟視爲圖像。

編輯:您似乎無法使用我發佈的插件方法附加visual studio插件,請參閱評論。

+0

聽起來像一個很好的答案,但我不知道1)如何將用C寫成的代碼附加到matlab。 2)如何將VS調試器附加到matlab。你能告訴我該怎麼做,或者你能指導我一個適當的鏈接? – bubble 2011-03-21 19:24:40

+0

對不起,我的無知......我點擊插件,並得到它正確的1) – bubble 2011-03-21 19:34:31

+0

沒問題。順便說一句,看來你不能使用我發佈的方法附加visual studio調試器。隨着程序使用matlab編譯器進行編譯。但是,您可以使用loadlibrary並直接從dll調用本地函數。這種方法的缺點是你不能傳遞指針。 – gopice 2011-03-21 19:58:52