0

OpenCV でビデオを表示するために、以下のコードを記述しました。私はそれをうまくコンパイルしましたが、実行すると、ビデオを表示するはずのウィンドウが開きますが、ビデオが再生されているかどうかを実際に確認するには小さすぎます。他のすべては正常に機能しているようです。フレームの幅、高さ、および数は、コード化されたとおりにコマンド ラインに出力されます。誰が問題が何であるか知っていますか?見てみな。

void info()
{
   cout << "This program will accept input video with fixed lengths and produce video textures" << endl;
}

int main(int argc, char *argv[])
{
  info();
  if(argc != 2)
  {
    cout << "Please enter more parameters" << endl;
    return -1;

  }

const string source = argv[1];

VideoCapture input_vid(source);
if(! input_vid.isOpened())
{
    cout << "Error: Could not find input video file" << source << endl;
    return -1;
}


Size S = Size((int) input_vid.get(CV_CAP_PROP_FRAME_WIDTH),    //Acquire size of input video
              (int) input_vid.get(CV_CAP_PROP_FRAME_HEIGHT));

cout << "Width: = " << S.width << " Height: = " << S.height << " Number of frames: " << input_vid.get(CV_CAP_PROP_FRAME_COUNT)<<endl;

const char* PLAY = "Video player";

namedWindow(PLAY, CV_WINDOW_AUTOSIZE);
//imshow(PLAY,100);
char c;
c = (char)cvWaitKey(27);
//if ( c == 27)break;
return 0;
}
4

2 に答える 2

0

ビデオがウェブカメラからのものであると仮定します:

capture = CaptureFromCAM( 0 );
SetCaptureProperty(capture,CV_CAP_PROP_FRAME_HEIGHT, 640);
SetCaptureProperty(capture,CV_CAP_PROP_FRAME_WIDTH, 480);

これで問題が解決します

于 2013-02-17T17:27:38.253 に答える
0

別の簡単な微調整は、CV_WINDOW_AUTOSIZE の代わりに CV_WINDOW_NORMAL を使用することです。

namedWindow(PLAY, CV_WINDOW_AUTOSIZE);

これにより、ウィンドウのサイズを手動で変更できます

于 2013-02-17T18:17:28.083 に答える