JNI Mat to Java Mat

时间:2014-03-31 18:10:24

标签: java android opencv android-ndk mat

我正在尝试将Mat对象从我的C ++源代码返回到我的Java代码。我有以下代码:

C ++:

JNIEXPORT void JNICALL *snip*_MainActivity_grabResult
(jlong matPtr) {
    LOGD("The resultsImg has %d rows.", resultsImg.rows);
    LOGD("The sceneImg has %d rows.", sceneImg.rows);
    Mat* mat = new Mat(resultsImg.rows, resultsImg.cols, CV_8UC3);
    mat = (Mat*) matPtr;
    LOGD("Mat resultsImg is: %d", resultsImg.rows);
    LOGD("Mat* mat is %d", mat->rows);
}

爪哇:

public static native void grabResult(long add);
grabResult(m.getNativeObjAddr());

然而,它似乎没有通过Mat传递到我的Java,因为Java中的Mat的行大小为零,而在C ++代码中它是一个荒谬的数字,它不应该是一个数字。

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

什么是* snip *?本机方法可能是这样的:

JNIEXPORT void JNICALL Java_*snip*_MainActivity_grabResult(JNIEnv * env, jobject obj,  jint matPtr) {}