2013-11-23 57 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重写你的库。