0

私は現在、Androidアプリケーションに取り組んでいます。Java 側では、aList<KeyPoint> objectKeypointsをネイティブ コードに渡します。しかし、ネイティブ側でこのジョブジェクトVector<Keypoint> objectKeypointsをさらに処理するために変換するにはどうすればよいですか。

例: 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.
}
4

1 に答える 1

0

それが本当にベクターでない限り、あなたはできません。インターフェイスがリストを指定するだけの場合は、リストとして処理する必要があります。ベクターが必要な場合は、インターフェースを変更してベクターを要求します。

リストから新しいベクターを作成することもできますが、それは無意味に高価なようです。

于 2012-05-08T22:57:58.187 に答える