Ich habe es mit dem Parameter zu tun, der zwischen einer Android-Anwendung mit OpenCV und dem JNI übergeben wird. Mit den OpenCV-Bibliotheken in Java habe ich so etwas im Android-App-Code.Parameter übergeben zwischen Android und JNI
Android OpenCV Java-Code:
Mat mat; //Mat object with data
Rect rect; //Rect object with data
//call to the native function
int resProc = Native.processImages_native(rect, mat);
C-Code:
JNIEXPORT jint JNICALL Java_com_test_Native_processImages_1native
(JNIEnv*, jclass, CvRect, Mat);
...
jint Java_com_test_Native_processImages_1native
(JNIEnv* env, jclass jc, CvRect rect, Mat mat){
int res = processImages(rect, mat);
return (jint)res;
}
...
int processImages(CvRect rect, Mat mat)
{
IplImage *ipl_Img = &mat.operator IplImage(); // here FAILS
CvRect rect_value = rect;
}
Aber wenn ich versuche de Umwandlung von (Mat) bis (IplImage *) zu machen, in Der C-Code meiner App schlägt fehl. Meine Frage ist also, wie man ein CvRect- und ein Mat-Objekt von meinem Android-Java-Code an das JNI übergibt. Gibt es einen besseren Weg, dies zu tun?
Vielen Dank.
Scheint zu funktionieren, vielen Dank! – brachialste