Android 使用JNI传递并返回OpenCv Mat对象

Android 使用JNI传递并返回OpenCv Mat对象,android,opencv,java-native-interface,mat,Android,Opencv,Java Native Interface,Mat,我想用JNI编写一个函数,如下所示: JNIEXPORT jobject JNICALL Java_com_datumdroid_android_ocr_simple_HoughLine_nativeDetectLine (JNIEnv*jenv,jclass,jstringfileinput,jobject-mat) Java接口将是: nativeDetectLine( String fileInput, Mat mat); 现在我想把Mat传递给JNI并更改它的值 有人能给我一个指导吗

我想用JNI编写一个函数,如下所示:

JNIEXPORT jobject JNICALL Java_com_datumdroid_android_ocr_simple_HoughLine_nativeDetectLine
(JNIEnv*jenv,jclass,jstringfileinput,jobject-mat)

Java接口将是:

nativeDetectLine( String fileInput, Mat mat);
现在我想把Mat传递给JNI并更改它的值

有人能给我一个指导吗? 特别是如何处理作业对象。


首先将jlong转换为Mat*,然后取消引用。
JNIEXPORT void JNICALL Java_org_opencv_samples_tutorial2_Tutorial2Activity_FindFeatures(JNIEnv*, jobject, jlong  addrGray, jlong addrRgba)
{
    Mat& mGr  = *(Mat*)addrGray;
    Mat& mRgb = *(Mat*)addrRgba;
    ... do stuff with the Mat objects ...
}