OpenCV中的视频显示窗口大小不适合视频



我写了下面的代码来在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;
}

假设视频来自网络摄像头:

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

这将解决您的问题

另一个简单的调整可以使用CV_WINDOW_NORMAL而不是CV_WINDOW_AUTOSIZE

namedWindow(PLAY, CV_WINDOW_AUTOSIZE);

它允许您手动调整窗口大小

相关内容

  • 没有找到相关文章

最新更新