0

openCV 2.3 があり、Visual Studio 2010 を使用しています。

    ...
VideoCapture cap;
cap.open("Video.avi");
if( !cap.isOpened() )
{

    puts("***Could not initialize capturing...***\n");
    system("Pause");
    return 0;
} ...

これは、while プログラムのコード スニペットです。出力ウィンドウを保持するために、システム コマンドを追加しました。プロジェクトのビルド中にエラーは発生しませんでしたが、デバッグを開始すると、出力ウィンドウに次の出力が表示されました。

warning: Error opening file (../../modules/highgui/src/cap_ffmpeg_impl.hpp:477)
***Could not initialize capturing...***

Press any key to continue . . .

このディレクトリを確認しました。ファイルは利用可能ですが、開かないのはなぜですか? bin フォルダーに opencv_ffmpeg.dll があり、そのパスがシステム パスに追加されています。それでも、この同じエラーが発生します....Google検索の最初の3ページを確認しましたが、答えが見つかりませんでした。だから助けてください!


私が言及したエラーは、.avi ファイルを開くときにエラーが発生したためです...これは cap_ffmpeg_impl.hpp のコードの一部です -

int err = av_open_input_file(&ic, _filename, NULL, 0, NULL);
if (err < 0) {
    CV_WARN("Error opening file"); //Error part
    goto exit_func;
}

このファイルは、D:\OpenCV2.3\opencv\modules\highgui\src にあります。このファイルに変更を加えても、出力ウィンドウに反映されず、このファイルを削除してもエラーは発生しませんでした!:O私は何が起こっているのか理解できません..??

4

1 に答える 1

0

エラー メッセージは、おそらく少しわかりにくいものです。次のように読む必要があります。

<severity>: <message> (<where the message originated from>)

このメッセージは、プログラムがヘッダー ファイルを開くことができないことを示すのではなく、メッセージがそのヘッダー ファイルで作成されたことを通知するだけです。

あなたが正しく観察したように、問題はあなたのプログラムが .avi ファイルを見つけられないことです。そのビデオ ファイルへの絶対パスを指定してみてください。

cap.open("C:/absolute/path/to/Video.avi");
于 2012-08-31T05:36:07.633 に答える