2017-01-22 15 views
1

私はアンドロイドで、次のOpenCVのコードを実行している:OpenCVの3.2にDescriptorMatcherを作成できません - Androidの

FeatureDetector detector = FeatureDetector.create(FeatureDetector.ORB); 
DescriptorExtractor descriptor = DescriptorExtractor.create(DescriptorExtractor.ORB); 
DescriptorMatcher matcher = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE_HAMMING); 

それは私が次の例外を取得していますOpenCVの3.2でのOpenCV 2.4.1 で正常に動作します:

java.lang.UnsatisfiedLinkError: No implementation found for long org.opencv.features2d.DescriptorMatcher.create_1(int) (tried Java_org_opencv_features2d_DescriptorMatcher_create_11 and Java_org_opencv_features2d_DescriptorMatcher_create_11__I) 
                        at org.opencv.features2d.DescriptorMatcher.create_1(Native Method) 
                        at org.opencv.features2d.DescriptorMatcher.create(DescriptorMatcher.java:76) 

2種類のAndroid搭載端末で確認しました。何か間違っているのですか、これは新しいopenCVバージョンのバグですか?

答えて

0

現在、Google PlayのOpenCVマネージャに問題があります。私はバージョン3.2をまだサポートしていません。問題を解決するために、SDKのlibsディレクトリ(sdk \ native \ libs)を自分のアプリケーションのsrc/main/jniLibsにコピーしました。私はAndroid Studioを使用しています。 Eclipseでは、アプリケーションのルートの下にあるはずです。参照:Error while loading Native Library in Android

+0

うーん...さらに悪いことに、私はまだ3.1.0バージョンで同じ問題を抱えています – Tima

+0

をしても – Tima

1

あなたのコードは正しいです、私はOpenCV 3.1プロジェクトで試してみましたが、完璧に動作しています。 OpenCV 3.2についてはわかりませんが、同じである必要があります。マッチャーの対応するint値を入力しようとしましたか?

DescriptorMatcher matcher = DescriptorMatcher.create(4); 

ここで対応するInt値はDescriptorMatcher OpenCV 3.2です。 DescriptorMatcher.BRUTEFORCE_HAMMINGはintの長いinstedと見なされます。

+0

をはい、その新バージョンにはバグがありますが、3.1での作業が、3.2 で作業していない – DanielB

+0

値がlong int型とない私のために動作しませんでした:( – DanielB

関連する問題