2017-02-16 23 views
1

解答なしで多数の関連記事を検索したところ、この問題が発生しています: VS2015のデバッグプロファイルでDBoW3デモ(demo_general)の1つをコンパイルしています。 デモでは、選択した機能(orb、surf、akaze、briskなど)といくつかの画像に基づいて基本的に単語の袋が作成されます。OPENCV3 detectAndComputeでデバッグアサーションが失敗しました

第一段階は、画像から特徴を検出し、抽出することである。ORB.cpp(ライン891)のOpenCV3実装内でコピー操作に到達したとき

fdetector=cv::ORB::create(); 
fdetector->detectAndCompute(image, cv::Mat(), keypoints, descriptors); 

最後の行は例外をスロー:

std::copy(allKeypoints.begin() + offset, allKeypoints.begin() + offset + nkeypoints, keypoints.begin()); 

例外のスクリーンショット:Debug assertion Failed

他の特徴記述子を使用するには、同様の操作で同じエラーにつながりますこれは反復子を次のように使用したものです。 allKeypoints.begin()+ offset これは改変されていないOpenCV関数です。また、最初の反復では "オフセット"がゼロで、ベクトル境界を超えないように "nkeypoints"は小さいことも確認しました。ほとんどの場合、このエラーはベクトル境界に違反しているにもかかわらず、私は実際には、指摘されているデバッグ用のライブラリのさまざまなシグネチャと関係があると考えています: https://social.msdn.microsoft.com/Forums/vstudio/en-US/99a01298-865d-4451-b8c6-3e25db5cbcee/vector-iterator-offset-out-of-range?forum=vclanguage しかし、この記事では決定的な修正はありません。

この時点では、他の情報がエラーの詳細を絞り込むのに役立つとは思いませんでした。私に必要なものを教えてください。

ありがとうございました。

答えて

0

多くの段階的なデバッグの後、マクロ_ITERATOR_DEBUG_LEVELを1に設定する必要があるようです。 これはVS2015のプロジェクトプロパティー> C/C++>プリプロセッサ>プリプロセッサ定義で行うことができます。 新しいデバッグアサーションエラーが発生しました。私は戦い続けるつもりで、後で私の答えを増強します。

関連する問題