C++ OpenCV中的视频显示窗口大小与视频不匹配
我编写了下面的代码来在OpenCV中显示视频。我编译得很好,但是当我运行它时,应该显示视频的窗口打开了,但是它太小了,无法实际查看视频是否正在播放。其他一切似乎都很好。宽度、高度和帧数按编码打印在命令行上。有人知道问题出在哪里吗?看看吧C++ OpenCV中的视频显示窗口大小与视频不匹配,c++,opencv,codeblocks,C++,Opencv,Codeblocks,我编写了下面的代码来在OpenCV中显示视频。我编译得很好,但是当我运行它时,应该显示视频的窗口打开了,但是它太小了,无法实际查看视频是否正在播放。其他一切似乎都很好。宽度、高度和帧数按编码打印在命令行上。有人知道问题出在哪里吗?看看吧 void info() { cout << "This program will accept input video with fixed lengths and produce video textures" << endl;
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;
}
void info()
{
cout假设视频来自网络摄像头:
capture = CaptureFromCAM( 0 );
SetCaptureProperty(capture,CV_CAP_PROP_FRAME_HEIGHT, 640);
SetCaptureProperty(capture,CV_CAP_PROP_FRAME_WIDTH, 480);
这将解决您的问题另一个简单的调整可能是使用CV\u WINDOW\u NORMAL而不是CV\u WINDOW\u AUTOSIZE
namedWindow(PLAY, CV_WINDOW_AUTOSIZE);
它可以让你手动调整窗口大小CaptureFromAvi我想是吗?是的,我写了我假设捕获来自cam。如果AVI使用CaptureFromAvi,我不太确定这个功能。上面的代码的最后两行是必需的。如果你面临其他问题,请告诉我。这是唯一的解决方法。根据需要更改尺寸,这是不可能的工作:(当程序运行时,我的鼠标处于非活动状态,因此无法设置视频大小以实际查看视频