0

まず、このメッセージをお読みいただきありがとうございます。お時間をいただき、誠にありがとうございます。

私の問題は、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 が表示されないのはなぜですか??

私はここで本当に助けが必要です、私は気が狂います!

読んでいただきありがとうございます!あなたの助けは本当に本当に感謝しています!

4

0 に答える 0