2

openCV2.2でsquares.cppの例を実行しようとしています。Visual Studio 2008では、コードはエラーなしでコンパイルおよびビルドされます。ただし、実行可能ファイルを実行すると(つまり、実行時に)、次のようなエラーが発生します。

Unhandled exception at 0x004ac363 in OpenCVRectangle.exe: 0xC0000005: Access violation reading location 0xcccccccc.

これは定義で発生します:
vector<vector<Point> > squares; メイン関数で

誰かが助けることができます、なぜこれが起こるのですか?値0xccccccは通常、初期化されていない変数または不正な変数であることがわかりましたが、この行でこの例外が発生する理由がわかりません。

完全なサンプルコードはhttp://pastebin.com/MTaXVcQzにあります。

4

3 に答える 3

1

namedWindowリンクしたコードには、このスコープで定義されていないように見える関数が含まれています。関数ではなく、定義されていない変数として解釈しようとしている可能性があります。おそらく、ある種のライブラリが欠落していると思いますか?それ以上の文脈なしで言うのは難しいですが、違反 であってはなりvector<vector<Point> > squares;ません。

于 2012-04-20T15:02:47.617 に答える
1

VSでCtrl+Alt + Eを押し、すべての例外チェックを有効にし、デバッグモードで実行して、例外が発生した場所を確認します。これは理解するのに十分なはずです。

于 2012-04-20T15:13:55.673 に答える
1

コードはOpenCV2.3.0を搭載したMacOSXで正常に実行されますが、OpenCVはさまざまなオペレーティングシステムでさまざまな動作を示すことが知られています。

  • まず、リリースバージョンとデバッグバージョンの両方でコードにこの問題があるかどうかを確認します。

  • WindowsでOpenCV2.3.1にアップグレードして、問題が解決するかどうかを確認します。

于 2012-04-21T14:41:51.470 に答える