OpenCV 3.1でandroid用の短い記述子を使用しようとしています。 OpenCVは_contribを使ってソースからビルドする必要があります。だから私はエラーなしでそれをコンパイルし、BRIEF.cpp.o beeingがコマンドウィンドウでビルドされているのを見ることもできます。新しいビルドでヘッダーの変更が有効にならない
だから私はそれを使用しようとすると、
OpenCV Error: Bad argument (Specified descriptor extractor type is not supported.) in static cv::javaDescriptorExtractor* cv::javaDescriptorExtractor::create(int), file /home/maksim/workspace/android-pack/opencv/modules/features2d/misc/java/src/cpp/features2d_manual.hpp, line 374
を投げ、私のAndroidアプリがクラッシュしたので、私はfeatures2d_manual.hppをチェックします。ライン374は、スイッチケースブロックのデフォルトの式である:ケースBRIEFがコメントされているので
CV_WRAP static javaDescriptorExtractor* create(int extractorType)
{
//String name;
if (extractorType > OPPONENTEXTRACTOR)
{
//name = "Opponent";
extractorType -= OPPONENTEXTRACTOR;
}
Ptr<DescriptorExtractor> de;
switch(extractorType)
{
//case SIFT:
// name = name + "SIFT";
// break;
//case SURF:
// name = name + "SURF";
// break;
case ORB:
de = ORB::create();
break;
//case BRIEF:
// name = name + "BRIEF";
// break;
case BRISK:
de = BRISK::create();
break;
//case FREAK:
// name = name + "FREAK";
// break;
case AKAZE:
de = AKAZE::create();
break;
default: //**this is line 374**
CV_Error(Error::StsBadArg, "Specified descriptor extractor type is not supported.");
break;
}
return new javaDescriptorExtractor(de);
ので誤差は明らかにアップします。だから私はそのように修正した:
#include "opencv2/xfeatures2d.hpp"
。 。
case BRIEF:
de = xfeatures2d::BriefDescriptorExtractor::create();
break;
。 。 。
default:
CV_Error(Error::StsBadArg, "---TEST--- Specified descriptor extractor type is not supported.");
break;
}
新鮮なディレクトリにrebuilingと新しいビルドを使用した後、まったく同じエラーが永続的です。メッセージには "--- TEST ---"という文字列も含まれていません。
私の変更が何の効果をもたらさないのか不思議です。
/home/maksim/workspace/android-pack/opencv/modules/features2d/misc/java/src/cpp/features2d_manual.hpp
/ホーム/マクシムは/別のエラーの多くの一部であることを、このdirctoryも私のシステム上に存在しない、それが示したグーグル:ファイルパスがある理由
また、私は疑問に思ってアンドロイドのメッセージ建物の前に
実際のパスは次のとおりです。
C:\Users\JJG-CD\Desktop\Build_Workspace\opencv-3.1.0\modules\features2d\misc\java\src\cpp\features2d_manual.hpp
私は誰かが問題が何であるかを私に説明し、最終的に私にそれを解決する方法のヒントを与えることができることを望みます。
感謝を見つけることができます。私はあなたに1upを与えたいが、私は十分な評判を持っていない(多分誰かが私のためにそれを行うことができる)。あなたのコメントは私の問題を明らかにした。私はwin7とcmake-guiでコンパイルしていますが、それでも解決できるオプションが見つかった可能性があります。いくつかのオプションを除いて、私はちょうど私がデフォルト設定(ENABLE_PRECOMPILED_HEADERS = trueのうちの1つ)でコンパイルしていたことがわかっていました。だから、私はそれを偽に設定し、もう一度試してみましょう。私はすぐに私は結果を得たとして更新されます。 –
ENABLE_PRECOMPILED_HEADERS = falseは助けにはなりませんでした。それ以外に何を変えるべきか分かりません。 1年前に既に報告されているバグのようです:[link](https://github.com/Itseez/opencv/issues/5030)。初心者のプログラマーにとって、私はこれをあきらめなければならないと思います。 –
あなたは正確なコンパイルラインを共有してみませんか?私のビルドディレクトリにsvedそれらの全体の束があるとして、あなたが作るか、cmakeの使用している場合は、私は全くわからないんだけど、関連するメイクファイル – Smeeheey