Keypoint vom nativen Code zurückholen
Ich benutze OpenCV-SDK-Android. Ich möchte, dass mein nativer Code einen Schlüsselpunktvektor zurückgibt. Ist es richtig, Code wie diesen zu verwenden?
Vector<KeyPoint> keypoint = FindFeatures(Gray1.getNativeObjAddr(),descriptor.getNativeObjAddr());
und
public native Vector<KeyPoint> FindFeatures(long matAddrGr1, long matAddrGr2);
Mein Natice Code ist
extern "C" {
JNIEXPORT Vector<KeyPoint> JNICALL Java_com_example_xyz_MainActivity_FindFeatures(JNIEnv*, jobject, jlong addrGray1, jlong addrdescrptor);
JNIEXPORT Vector<KeyPoint> JNICALL Java_com_example_xyz_MainActivity_FindFeatures(JNIEnv*, jobject, jlong addrGray1, jlong addrdescrptor)
{
Mat& mGr1 = *(Mat*)addrGray1;
Mat& descriptors_1 = *(Mat*)addrdescrptor;
vector<KeyPoint> keypoint_1;
//Do some processing here..
return keypoint_1;
}
}
Wenn nicht, schlagen Sie mir bitte einen alternativen Weg vor, um dies zu erreichen. bin neu in opencv.