2010-10-17 36 views
3

我正在開發一個項目用於做基於內容的圖像檢索前端將在java中。通過獨立應用程序處理圖像

主要問題是關於選擇用於執行圖像處理的工具。由於Matlab提供了許多用於執行CBIR的功能。但是關於使用Matlab的主要問題是你需要在每臺使用該應用程序的計算機上安裝Matlab。

是否有任何其他方式可以在其中執行我的項目(使用其他工具或驅動程序),以便我的應用程序無需使用任何其他工具即可運行?

還是我可以在Matlab中開發整個應用程序,並將其作爲獨立應用程序部署? 謝謝..

回答

6

有很多圖像處理庫,例如Java:ImageJ,還有一個是Apache Commons項目。例如,如果您需要更高級別的計算機視覺庫,則C++的OpenCV也具有Java綁定。

您也可以在Matlab中開發整個應用程序,但要部署獨立應用程序,則需要此許可證才能獲得Mathworks Builder NE的許可證(這可能很昂貴)。 Matlab非常適合研究和原型設計。

還有其他一些可以快速構建原型的替代方案,例如Python和PIL。

我認爲底線是有很多選擇。

2

Matlab是一個很好的原型工具,正如已經指出的carlosdc。 Matlab提供有限的UI編程選項。 GUIDE對於小型項目來說是可以的,但是對於大型項目來說阻礙更大。

With MATLAB Builder JA您可以將Matlab代碼編譯爲Java類。

關於實時繪製時間序列,像JFreeChart這樣的圖書館要慢得多。

6

Java image utilities library:用於加載,編輯,分析和保存像素圖像文件的Java庫。

它支持各種文件格式。

爲命令行提供演示應用程序。它也有AWT GUI工具包。

2

我認爲OpenCV是圖像處理最好的圖書館之一,但Java Advanced Imaging也相當不錯,但沒有太多的功能和示例。顏色相似性在JAI中很簡單,但形狀可能會涉及更多的代碼。

如果您選擇使用OpenCV,我認爲您至少有兩種可能的Java綁定實現。我的團隊使用的是這個one。它有一些處理依賴關係。

無論你選擇什麼樣的圖書館,都會爲一些挫折做好準備。 Matlab用戶習慣了它提供的所有漂亮功能,以及何時必須將代碼移植到其他語言,最終不得不編寫更多代碼。

+0

thanx的其他工具還審查。 – 2010-10-17 15:25:31

+0

但有一個問題.. 如果我使用Matlab進行特徵提取,那麼我可以用類對象的形式包裝這些表示... 那麼我將如何編寫更多的代碼? 和它會罰款使用Matlab和Java連接? 我還沒有爲Matlab + Java連接編寫任何代碼.. 它會被我們罰款... – 2010-10-17 15:26:56

+0

如果你將.m文件編譯成jar文件,你可以在你自己的java中使用這些jar文件應用程序,而無需在Java中編寫特徵提取代碼。我提到寫了更多的代碼,以防你使用一些提到的框架而不是使用Matlab。例如矩陣操作的代碼(或者爲此目的使用一些Java庫)。 – jassuncao 2010-10-17 21:20:32

2

好了,經過長時間的搜尋後,終於我找到了與Java太獨立的應用程序一起部署Matlab代碼的方式..

步驟很簡單:: - 1.去拿Javabuilder。位於位置::

Matlab的\工具箱\ javabuilder \罐子\ javabuilder.jar

下一頁類型部署工具在Matlabs命令行的jar文件...

deploytool窗口現在會打開一個新的java項目。 選擇您想要使用的Matlab文件。

的部署工具現在的.M文件轉換爲的.jar文件

現在同時使用上面提到的jar文件和發展你的Java兼容MATLAB代碼

並且那你可以創建MATLAB的獨立應用程序的方式..

+0

雖然需要一些編輯! – ivorykoder 2010-10-17 16:55:25

+3

我不確定這一點,但可能你還必須將MATLAB Compiler Runtime(MCR)與你的jar捆綁在一起,以便能夠在沒有Matlab的情況下在一臺機器上運行它。 – jassuncao 2010-10-17 21:06:11