从JNI

时间:2017-05-19 03:26:31

标签: java opencv android-ndk java-native-interface

我使用opencv在android中开发Cam-shift我有c ++代码想要在android ndk中实现它但是我已经做了很多,首先我将我的三个Mat对象发送到这样的本地方

OpencvClass.humanDetection(mRgba.getNativeObjAddr(),frame.getNativeObjAddr(),hsv.getNativeObjAddr());

在Native方面我已经阅读了这样的框架

JNIEXPORT void JNICALL Java_com_example_abr_mypl5_OpencvClass_humanDetection
  (JNIEnv *, jclass, jlong addrRgba,addrFrame,addrHsv){
   Mat& rgba = *(Mat*)addrRgba;
   Mat& frame = *(Mat*)addrFrame;
   Mat& HSV = *(Mat*)addrHsv;


    // here i have implement my code 

    //now i want to return  back this three frames in java side 


  }

最后我想把我的三个框架还给java方面我该怎么做我已经搜索了很多但没有找到一个好的解决方案,有没有人可以帮我这个问题????

1 个答案:

答案 0 :(得分:1)

如果将对象作为指针传递,则无需返回它以进行更改。在这种情况下,您可以直接访问内存中的对象位置,并且每个更改都将立即应用。

请查看有关您问题的additional information