0

我想使用 opencV android 来处理图像;我需要使用 sift,所以我写了这段代码:

FeatureDetector featureDetector = FeatureDetector.create(FeatureDetector.FAST);

但是我有这个错误:

java.lang.UnsatisfiedLinkError: Native method not found: org.opencv.features2d.FeatureDetector.create_0:(I)J

我该如何解决?

4

1 回答 1

1

如果您在 opencv 库完成加载之前调用特征检测器,则会触发此错误。

推杆

FeatureDetector featureDetector = FeatureDetector.create(FeatureDetector.FAST);

加载器回调内部将确保仅在加载 opencv 后才调用它。例如:

private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
    @Override
    public void onManagerConnected(int status) {
        switch (status) {
            case LoaderCallbackInterface.SUCCESS: //opencv is loaded!
            {
                Log.i(TAG, "OpenCV loaded successfully"); 
                mOpenCvCameraView.enableView();
                FeatureDetector featureDetector = FeatureDetector.create(FeatureDetector.FAST); //feature detector goes here!
            } break;
            default:
            {
                super.onManagerConnected(status);
            } break;
        }
    }
};
于 2015-08-14T11:58:52.740 回答