【发布时间】:2017-05-19 03:26:31
【问题描述】:
我在 android 中使用 opencv 开发 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 端我该怎么做我搜索了很多但没有找到一个好的解决方案,有没有人可以帮助我问题????
【问题讨论】:
-
我认为没有必要返回
Mats,因为您通过地址传递它们。您在本机代码中对Mats 所做的任何更改都应反映在 Java 端(只要您在修改之前不复制)。
标签: java opencv android-ndk java-native-interface