0
の "List
List<KeyPoint> objectKeypoints
をネイティブコードに渡します。しかし、どのようにすれば、ネイティブ側のこのジョブを
Vector<Keypoint> objectKeypoints
に変換して後で処理することができますか?
Exaample: Javaのサイド私の呼び出し方法:
List<KeyPoint> objKeypoints;
Mat mGrayMat = ;// is not empty;
FeatureDetector featureDetector = FeatureDetector.create(FeatureDetector.SURF);
featureDetector.detect(obj_keypoints, mGrayMat);
FindObject(objKeypoints,mGrayMat);
ネイティブ側C++のコード。
JNIEXPORT void JNICALL Java_my_app_AndroidAppView_FindObject(JNIEnv* env, jobject obj, jobject obj_keypoints, jlong matAddrObjGray){
// How to convert obj_keypoints to Vector<KeyPoint>?
Vector<KeyPoint> objectKeypoints = ....;
Next Step is calculating the descriptors for the Keypoints.
}
お返事ありがとうございます。 Java側では、私は最初の行を変更することができます: "リスト objKeypoints;" 「ベクトル objKeypoints;」に一般的に、ネイティブ側のjobjectをVectorにキャストする方法はわかりません。 –
UniQ
@ Unniインターフェイスを変更できる場合は、キャストする必要はありません。実際、JNIにはキャストのようなものはありません。宣言されているクラスから呼び出したいメソッドを検索して呼び出すだけです。オブジェクトがそのクラスでない場合、例外が発生します。 – EJP