2013-11-23 92 views
0

我有一個使用opencv庫開發的C++代碼來提取視覺單詞包。我的代碼是基於以下方法:使用JNI從Java程序調用C++函數

void extractTrainingVocabulary (const path& basepath)(路徑使用Boost庫)

void extractBOWDescriptor(const path& basepath, Mat& descriptors)

現在,我需要使用JNI

調用Java程序的方法,我應該如何編寫Java本地方法?它的參數是什麼?

我嘗試:

public native void extractTrainingVocabulary (String basepath)

public native void extractBOWDescriptor (String basepath , Mat descriptors)

但是當我運行JAVAH我得到一個錯誤 '類未墊發現'

+0

[將C++方法(opencv)轉換爲java方法(javacv)]的可能的重複(http://stackoverflow.com/questions/19562687/converting-ac-me-od-opencv-to-java-method-javacv) –

+0

Java中沒有'Mat'。你將不得不考慮如何構建一個等價的抽象。 –

+0

@AlanStokes yes在java中沒有'Mat',我可以在添加opencv jar和tha關聯的本機庫後使用它 – nawara

回答

0

我建議你看一看OpenCV's Java API。你可以在你的庫中使用JNI包裝器中的類型。或者,甚至用Java重寫你的庫。