我正在尝试将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);
}Java:
public static native void grabResult(long add);
grabResult(m.getNativeObjAddr());然而,它似乎没有通过Mat传递到我的Java语言,因为在Java语言中Mat的行大小是零,而在C++代码中它是一个荒谬的数字,而它不应该是一个数字。
任何帮助都是很棒的。
发布于 2014-04-01 09:47:25
什么是*snip*?本机方法可能如下所示:
JNIEXPORT void JNICALL Java_*snip*_MainActivity_grabResult(JNIEnv * env, jobject obj, jint matPtr) {}https://stackoverflow.com/questions/22769023
复制相似问题