0
通過「列表
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;」以「Vector objKeypoints;」一般來說,我不知道如何在本機投射jobject到Vector –
UniQ
@Uniq如果你可以改變界面,你根本不需要做任何投射。事實上,在JNI中沒有這樣的事情。您只需查找您想要從其聲明的類中調用的方法,然後調用它們即可。如果該對象不屬於該類,則會發生異常。 – EJP