2014-03-12 51 views
0

我想使用SURF進行功能檢測found here並將其用於Java應用程序,但默認情況下,非自由模塊未包含在庫中,因爲它們已獲得專利。如何在OpenCV for Java中使用非自由模塊?

如何訪問此模塊?我已經搜索並嘗試了一些東西,但都沒有工作;很多關注Android,我不完全瞭解。

使用cmake構建庫時能添加嗎?還是有更好的意思?

回答

0

實際上,當我使用cmake時,選擇了非自由庫模塊作爲默認模塊。所以你應該在lib文件夾中建立這個模塊。非自由模塊包含一些可能在某些國家獲得專利的功能。因此,如果您正在構建商業應用程序,並且您將在其中一個國家/地區銷售該應用程序,那麼您應該小心。

要使用它,您需要將其添加到您的參考文獻幷包含標題。


編輯

我這裏檢查文檔:http://docs.opencv.org/java/似乎與非遊離名沒有模塊並沒有進行篩選或衝浪相關的類。我認爲它應該與C++庫相同,但我錯了。

另一方面,人們聲稱他們爲OpenCV4Android構建它。這意味着它可以以某種方式非官方編譯爲java,但似乎沒有人能克服這一點。喜歡這裏:http://answers.opencv.org/question/11185/how-can-i-generate-java-bindings-for-non-free/

也有在這裏關於這個問題的一個:http://code.opencv.org/issues/2825

所以目前沒有辦法解決了沒有。實現一個JNI並加載編譯後的C++非自由庫可能會解決這個問題。


還有一個編輯 :)

在教程中,有人實施了JNI來與Android使用非免費模塊。目前我還沒有足夠的知識爲java嘗試它。但是,志願者將是很好用java試試這個:

http://web.guohuiwang.com/technical-notes/opencv_nonfree_android_jni_demo

+0

謝謝,我想爲好,但沒有選擇對我來說,導入非遊離庫。我是否需要爲我的Java項目添加一個單獨的庫?另外它也是一個Uni項目,所以我不會賣它。 – user2916314

+0

檢查我的庫文件夾我有它[截圖](http://i.imgur.com/MyOrwJr.png)。但是我記得,由於你提到的專利問題,他們讀了它,所以我不確定如何訪問它。 – user2916314

+0

我錯了,我認爲它會與C++類似,但事實並非如此。檢查我編輯的答案。如果我有將來的時間,我可以給它一個機會 – yutasrobot

相關問題