質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

813閲覧

特徴点検出のコードについて

yezyez

総合スコア13

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2018/12/05 05:25

c++

1#include <opencv2/highgui/highgui.hpp> 2#include <opencv2/imgproc/imgproc.hpp> 3#include <opencv2/features2d/features2d.hpp> 4#include <opencv2/calib3d/calib3d.hpp> 5 6using namespace cv; 7using namespace std; 8 9int main(int argc,char *argv[]) 10{ 11 //画像読み込み 12 Mat src_image1 = imread("left.jpg"); 13 Mat src_image2 = imread("right.jpg"); 14 //キーポイントの検出 15 vector<KeyPoint> keypoints1,keypoints2;// 特徴点情報を格納するための変数 16 FeatureDetector detector1,detector2 ; 17 //Ptr<FeatureDetector> detector = cv::FeatureDetector::create( "SURF" ); //検出器を指定(SIFT, SURF, ORBなど) 18 detector1.detect(src_image1,keypoints1);// 特徴点の取得 19 detector2.detect(src_image2,keypoints2);// 特徴点の取得 20 //記述子を抽出する 21 DescriptorExtractor extractor; 22 Mat descriptors1,descriptors2; 23 extractor.compute(src_image1,keypoints1,descriptors1); 24 extractor.compute(src_image2,keypoints2,descriptors2); 25 //マッチングを取る 26 vector<DMatch> matches; 27 BFMatcher matche(NORM_HAMMING); 28 matche.match(descriptors1,descriptors2,matches); 29 //良好なマッチングのみを選ぶ 30 vector<DMatch> good_matches; 31 vector<KeyPoint> good_keypoints1,good_keypoints2; 32 for(unsigned int i = 0; i < matches.size();i++) 33 { 34 if(matches[i].distance < 30) 35 { 36 good_matches.push_back(matches[i]); 37 good_keypoints1.push_back(keypoints1[matches[i].queryIdx]); 38 good_keypoints2.push_back(keypoints2[matches[i].queryIdx]); 39 } 40 } 41 Mat match_image; 42 drawMatches(src_image1,keypoints1,src_image2,keypoints2,good_matches,match_image); 43 imshow("マッチング結果",match_image); 44 45 waitKey(); 46 return 0; 47 48} 49

libc++abi.dylib: terminating with uncaught exception of type cv::Exception: OpenCV(3.4.3) /tmp/opencv-20181001-41572-id0soo/opencv-3.4.3/modules/features2d/src/feature2d.cpp:154: error: (-213:The function/feature is not implemented) in function 'detectAndCompute'

Abort trap: 6

とゆうエラーが出ます。
同じファイル内にright, left.jpgのファイルはあります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

C++

1 FeatureDetector detector1,detector2 ; 2 //Ptr<FeatureDetector> detector = cv::FeatureDetector::create( "SURF" ); //検出器を指定(SIFT, SURF, ORBなど)

この部分の変更がおかしいのだと思われます(他にもあるかもしれません、むしろありそう)。
FeatureDetectorは各検出器(SURFなど)の親クラスで、それを継承して各検出器を実装していると考えられますので、そうであればFeatureDetectorでは動かないようになっていてもおかしくはありません。

何かのページやソースコードを参考にしていると思いますが、まずはそのソースコードを一切変更せずに試すことをおすすめします。

投稿2018/12/05 05:53

fiveHundred

総合スコア9796

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yezyez

2018/12/05 07:39

ありがとうございました 指摘いただいた部分を改変してみたいと思います
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問