私はopencvでアンドロイドでカムシフトを開発しています。私はC++コードをアンドロイドndkに実装しようとしていますが、最初は私の3つのMatオブジェクトをネイティブ側に送ります。JNIから3つのマットフレームを返す
ネイティブ側のOpencvClass.humanDetection(mRgba.getNativeObjAddr(),frame.getNativeObjAddr(),hsv.getNativeObjAddr());
私は多くのことを検索していることを私がどうなるかJava側に私の3つのフレームをバック返すようにしたい最後に、この
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
}
ように私のフレームを読みましたが、良い解決策を見つけられませんでした。この質問のために私を助けてください?
'Mat'sを返す必要はありません。あなたはby-addressを渡しているからです。ネイティブコードで 'Mat'を変更すると、Java側に反映されます(変更前のどこかにコピーを作成しない限り)。 – Michael