0
현재 안드로이드 응용 프로그램에서 작업 중입니다. 자바 측에서는 List<KeyPoint> objectKeypoints
을 원시 코드로 전달합니다. 그러나이 처리 작업을 네이티브 측에서 Vector<Keypoint> objectKeypoints
으로 어떻게 변환 할 수 있습니까?"List <KeyPoint> objectKeypoints"jobject를 <Keypoint> 네이티브 코드로 전달
Exaample : 자바 사이드 내 호출 방법 :
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 측에서 첫 번째 라인을 변경할 수 있습니다 : "List objKeypoints;" "Vector objKeypoints;" 일반적으로 벡터 방향으로 jobject를 캐스팅하는 방법을 모른다. –
UniQ
@Uniq 인터페이스를 변경할 수 있다면 캐스팅을 전혀 할 필요가 없다. 실제로 JNI에는 캐스트와 같은 것이 없습니다. 선언 된 클래스에서 호출하려는 메서드를 찾아 호출합니다. 객체가 해당 클래스가 아닌 경우 예외가 발생합니다. – EJP