0

我目前正在开发一个android应用程序。在 java 方面,我将 a 传递List<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

你不能,除非它真的是一个向量。如果接口只指定列表,则应将其作为列表处理。如果需要 Vector,请将接口更改为需要 Vector。

你也可以从列表中构建一个新的向量,但它看起来毫无意义地昂贵。

于 2012-05-08T22:57:58.187 回答