首先,感谢您阅读此消息,非常感谢您抽出宝贵的时间。
我的问题是我试图在 Android 的 JNI 中传递一些简单的数据,我快疯了!
这很简单,但仍然失败。
我在 JAVA 中有这段代码
public Mat process(Mat rgb) {
Mat n;
if(rgb.empty()) {
System.out.println("Empty Image");
n = null;
}
else {
System.out.println("The image is " + rgb.rows() + "x" + rgb.cols());
n = nativeSkinFilter(mNativeObj, rgb.dataAddr(), rgb.rows(), rgb.cols());
}
return n;
}
private static native Mat nativeSkinFilter(long thiz, long inputImage, int rows, int cols);
这在 C++ 中
(DetectionBasedTracker_jni.h)
JNIEXPORT jlong JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeSkinFilter (JNIEnv *, jclass, jlong, jint, jint);
(DetectionBasedTracker_jni.cpp)
JNIEXPORT jlong JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeSkinFilter (JNIEnv * jenv,jclass,jlong rgb, jint rows, jint cols)
{
LOGD("El tamaño de rgb es %i e %i", rows, cols);
return (long) 0;
}
从现在开始,我唯一想要的就是显示矩阵有多少行和多少列(稍后我会做一些其他的功能)。但令人惊讶的是,输出是下一个。
I/System.out(29458): The image is 480x800
D/FaceDetection/DetectionBasedTracker(29458): El tama�o de rgb es 1969692688 e 0
为什么它不显示 480 和 800 ?
我真的需要一些帮助,我要疯了!
非常感谢您的阅读!您的帮助将不胜感激!