1

Mat オブジェクトを印刷する必要がありましたが、プログラムが例外をスローします...プロジェクトは本当に単純です: Mat オブジェクトを作成し、cout を使用して印刷します - OpenCV チュートリアルと同じように:

#include <core/core.hpp>
#include <highgui/highgui.hpp>

#include <iostream>

using namespace std;
using namespace cv;

int main(int argc, char *argv[])
{
    Mat O = Mat::ones(2, 2, CV_32F);
    cout << "O = " << endl << " " << O << endl << endl;

    // Point2f P(5, 1);
    // cout << "Point (2D) = " << P << endl << endl;

return 0;
}

例外は次のとおりですUnhandled exception at 0x59430671 (msvcp100d.dll) in printingTest.exe: 0xC0000005: Access violation reading location 0x00000000。コンソールショーのみ

O = [

正確には、次の「operations.hpp」で停止します。

static inline std::ostream& operator << (std::ostream& out, const Mat& mtx) { Formatter::get()->write(out, mtx); return out; }

空のように「外」に見えますが、誰かがその理由を知っていますか? チュートリアルはそれがうまくいくはずだと言っています...

私は以前に例外をスローするという同様の問題を抱えていましたが、ここで解決しました:

http://answers.opencv.org/question/5113/problem-with-reading-image-to-mat/

別の環境変数の競合がある可能性はありますか? それとも、私がVS2012を使用していて、v10専用のOpenCVがあるため、衝突が発生したのでしょうか?

コメントされているPoint2fでの物は正常に動作します。

4

1 に答える 1

1

ここでのコードはVS2010で正常に機能します。正しいライブラリをリンクしていることを確認してください(リリースとデバッグ)。これでopenCVを再インストールしたり、VS2012で独自のビルドを作成したりしても問題が解決しない場合は、ソースからcmakeを使用して準備してください。

于 2013-01-17T08:02:12.240 に答える