ここの新しいユーザーであり、OpenCV を使用したプログラミングにはかなり慣れていません。
私はVisual Studio 2012を使用しており、指示に従ってすべてのOpenCVモジュールをインストールしましたが、ビデオストリームやフィルターなどをキャプチャするコードの実行に問題はありません.
ここでスタンフォード大学によって作成されたオプティカル フローの例のコードを再現しようとしています: http://robots.stanford.edu/cs223b05/notes/CS%20223-B%20T1%20stavens_opencv_optical_flow.pdf
しかし、cvQueryFrame でアクセス違反エラーが発生しているようです。そのため、この問題をテストするための簡単な関数を作成しました。
int get_flow(){
CvCapture *input_video = cvCaptureFromFile("C:\\test.avi");
cvQueryFrame(input_video);
while(1){
if( cvWaitKey( 15 )==32 ) //wait until space key pressed
{
break;
}
}
return 0;
}
test.avi が正しい場所にあることを確認しましたが、コード (このコードまたはサンプル コード) が次のように cvQueryFrame コマンドを実行するたびに、次のエラーが発生します。
First-chance exception at 0x75E6A048 (msvcrt.dll) in Win32Project3.exe: 0xC0000005: Access violation reading location 0x011908C0.
Unhandled exception at 0x75E6A048 (msvcrt.dll) in Win32Project3.exe: 0xC0000005: Access violation reading location 0x011908C0.
私の理解では、msvcrt.dll が特定のメモリ ポイントへのアクセスに関してエラーを発行していることを意味しますが、何が問題なのかわかりません。
問題なく cvGrabFrame を単独で使用しましたが、cvGrabFrame と cvRetrieveFrame を一緒に使用したり、cvRetrieveFrame を単独で使用したりすると、msvcrt.dll アクセス エラーがスローされます。
どこでエラーを探すべきか、または問題をまとめて探すべきかがよくわかりません。これに対処するための特定の解決策は見つかりませんでした。何か案は?(PS - VS2012 をデバッグ モードで実行しており、すべての opencv ライブラリが x64 マシン上の x86 で動作しており、chrome も開いています)
ありがとう!