以下のコードは、SIFTでの機能検出を確認するためのものです。問題は、実行すると壊れることです。
#include <features2d.hpp>
#include <stdafx.h>
#include <stdlib.h>
#include <cv.hpp>
#include <cxcore.hpp>
#include <highgui.h>
#include <iostream>
using namespace cv;
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
Mat img = imread("c:\\chappal.jpg", 0);
Ptr<FeatureDetector> feature_detector = FeatureDetector::create("SIFT");
vector<KeyPoint> keypoints;
feature_detector->detect(img, keypoints);
Mat output;
drawKeypoints(img, keypoints, output, Scalar(255, 0, 0));
namedWindow("meh", CV_WINDOW_AUTOSIZE);
imshow("meh", output);
waitKey(0);
return 0;
}
ステップバイステップでデバッグすると、プログラムは次の行で中断します。feature_detector->detect(img, keypoints);
私はそれを何度もチェックしましたが、問題の原因がわかりません。
SiftFeatureDetector
PS代わりに最初に試しましたが、ライブラリファイルでFeatureDetector::create("SIFT");
見つからなかったためエラーが発生しました。SiftFeatureDetector
このフォーラムの投稿から、両方のコードサンプルについて学びました。
ありがとうございました