Je traite le paramètre passant entre une application Android avec OpenCV et le JNI. En utilisant les bibliothèques OpenCV de Java, j'ai quelque chose comme ça dans le code de l'application Android.Paramètre passant entre Android et JNI
Android OpenCV code Java:
Mat mat; //Mat object with data
Rect rect; //Rect object with data
//call to the native function
int resProc = Native.processImages_native(rect, mat);
Code C:
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;
}
Mais lorsque je tente de faire de la conversion de (Mat) à (IplImage *) en le code C mon application échoue. Donc, ma question est sur la façon de passer un CvRect et un objet Mat de mon code Java Android au JNI. Y a-t-il une meilleure manière de faire cela?
Merci beaucoup.
Semble travail, merci beaucoup! – brachialste