-2

オフラインオブジェクト検出用に、単純なaviファイル表示ビデオを実装しました。しかし、私の問題は、エラーが発生しないことですが、デバッグすると表示されません。案内してください。

 int main( int argc, char** argv ) 
  {
 cvNamedWindow( "Example2", CV_WINDOW_AUTOSIZE );
 CvCapture* capture = cvCreateFileCapture("S:\MOVIES\English movies\\TANGLED.avi" );
  IplImage* frame;

 while(1) {
 frame = cvQueryFrame( capture );
 if( !frame ) break;
 cvShowImage( "Example2", frame );
 char c = cvWaitKey(33);
 if( c == 27 ) break;
 }
 cvReleaseCapture( &capture );
 cvDestroyWindow( "Example2" );
 }

また、ビデオファイルのサイズ制限はありますか、それともopencvのバージョンによって異なりますか?私のビデオは人間を動かすためのものです。私はビジュアルスタジオC++2008でopencv2.3を使用しています。

ありがとう。

4

2 に答える 2

1

AVI ファイルは実際には単なるコンテナ仕様であり、受け入れられる膨大な数のメディア フォーマットに関してかなり乱雑です。ただし、再生ホストにはすべてのメディア コンポーネントのデコーダが必要です。または、再生アプリケーションによっては、ビデオファイルを開いたり再生したりできません。これを修正するには、いくつかの方法があります。

  • OS+bittedness再生対象に既製のバイナリコーデックをインストールし、
  • 必要な/必要なコーデックをコンパイルし、OS の通常の方法でグローバルに追加します。
  • 大部分のメディア プレーヤーでデフォルトでサポートされているコーデックの組み合わせを使用して、新しいバージョンを検索、取得、および/または再作成します。
  • 近所のハッカーに電話して、別の形式に変換するよう依頼する
  • メディア コンポーネントの AVI ファイルのフォーマットを標準化するための十字軍を踏みにじる
  • 代わりに、MKV コンテナーまたはオーサリング DVD ディスクを使用してください。AVI ファイルは回転メディアと同じくらい時代遅れです。
  • 仮想ゲスト ファーミングを取り上げる... 4 つの SM15000 ラック クラスターを購入し、10000 台の VM を作成し、サポート インフラストラクチャを構成し、それらを使用して世界を支配し、統合を要求し、デザートのプリンを作ります。

詳細はこちら: http://en.wikipedia.org/wiki/Audio_Video_Interleave

于 2013-02-09T09:50:19.637 に答える