2013-03-25 99 views
2

我正在一個Qt項目,需要我來使用Matlab C++共享庫。我基本上正在使用我獲得的圖像,並且我需要稍後對它們進行進一步的處理。從C++調用Matlab與刷新輸入

我在C平臺上獲取圖像對我來說絕對有必要,然後在需要時調用Matlab進行處理。我的圖像以高速進入:大約每秒100幀。

問題是,只要我在一個循環中調用Matlab,我就能夠處理獲取的圖像,但不是實時的。在Matlab中隨後的調用之間需要一到兩秒的時間。我假設它正在清除其他圖像並只繪製一些圖像。

你能否給我一個建議,讓我可以調用一次Matlab函數,並且實時改變我的輸入。我不打算使用Matlab引擎,因爲那需要我在每臺計算機上安裝Matlab,我的項目運行。

+0

你的意思是說你使用matlab到C接口從matlab代碼建立一個共享庫。並調用共享庫來處理您的圖像? – 2013-03-25 07:49:30

+0

@Min Lin ..是的,這正是我的項目的全部內容。圖像以每秒100幀的速度來到我身邊,我需要能夠在Qt中使用SDK進行參數化以及使用構建的matlab庫進行的所有處理。 – Alok 2013-03-25 08:16:14

+0

我不太明白這一點「我只能調用Matlab函數一次,而且我的輸入每次都會改變。」你的問題是如何以每秒100幀的速度實現? – 2013-03-25 08:41:38

回答

1

您是否正在使用MATLAB編譯器創建一個MATLAB代碼庫,期望能夠每秒調用它100次?

這不會發生 - 調用庫的開銷太高。這聽起來像你的圖書館也可能正在做一些陰謀,這可能也需要很長時間。

你也許可以看看使用MATLAB編碼器將你的MATLAB圖像處理算法轉換爲C代碼,然後將C代碼直接整合到你的主代碼中。 MATLAB編碼器支持大部分圖像處理工具箱,計算機視覺系統工具箱和大部分與信號處理相關的工具箱都支持該工具箱。

+0

我同意@Sam Roberts。我沒有得到它在每秒100幀。但是我意識到加載數據需要更長的時間。此外,Calling Plot函數也很耗時。我在代碼上工作,通過引用傳遞數據,加載數據的次數最少,並在必要時調用繪圖函數,我可以快速獲得它看起來像一個實時視頻。最初,我的一個數據每次都從一個mat文件中加載。這花了很多時間。 是的,我打算用C++數學/計算機視覺/圖形庫來替換圖書館。 感謝您的意見。 – Alok 2013-03-26 07:20:29