0

以下のコードは、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);

私はそれを何度もチェックしましたが、問題の原因がわかりません。

SiftFeatureDetectorPS代わりに最初に試しましたが、ライブラリファイルでFeatureDetector::create("SIFT");見つからなかったためエラーが発生しました。SiftFeatureDetectorこのフォーラムの投稿から、両方のコードサンプルについて学びました。

ありがとうございました

4

1 に答える 1

1

これを試したかどうかはわかりませんが、現在nonfree.hライブラリにあるため、initModule_nonfree()を使用する必要があります。それは私にとって問題を解決しました。

于 2013-05-21T18:46:45.357 に答える