0

以下のコードを Visual Studio 2010 で実行すると、次のエラーが発生します。Run-Time Check Failure #2 - Stack around the variable 'keypoints' was corrupted.

#include<iostream>
#include<fstream>
#include<cv.h>
#include<highgui.h>
#include<opencv2/nonfree/features2d.hpp>
using namespace std;
using namespace cv;

int main(int argc, char *argv[])
{
    Mat image = imread("C:/IMAGE.JPG");

    SiftFeatureDetector detector;
    vector<KeyPoint> keypoints;

    detector.detect(image, keypoints);

    return 0;
}

私が間違っていることは何ですか?

4

2 に答える 2

1

このコード:

Mat image = imread("C:/IMAGE.JPG");

失敗している可能性があります。imageパラメータとして他の関数に渡す前に、 が正常にロードされたことを確認する必要があります。

if (!image.data )
{
    cout <<  "Could not load image" << endl ;
    return -1;
}

が失敗し、ファイルがその場所に存在する場合imread()は、他のスラッシュを使用してエスケープすることをお勧めします。

Mat image = imread("C:\\IMAGE.JPG");

画像が正常に読み込まれてもクラッシュが続く場合は、画像をグレースケールとして読み込んでみてください。

Mat image = imread("C:\\IMAGE.JPG", 0);
于 2012-09-14T04:04:26.467 に答える
0

プリコンパイルされたs などOpenCVにリンクするだけでなく、Visual Studio 2010 を使用してライブラリをコンパイルする必要があることがわかりました。dll今はすべて順調です。

于 2012-10-05T09:03:49.803 に答える