【发布时间】:2021-04-22 05:44:52
【问题描述】:
我正在尝试使用 OpenCv 在 C++ 中制作实时跟踪应用程序。我的代码到目前为止工作正常,但显示的相机分辨率太小。如果我使用 Windows 相机应用程序拍摄照片/视频,分辨率为 1280x720,我的程序中显示的分辨率为 639x479。这是我的代码:
using namespace cv;
using namespace std;
int main(int argc)
{
VideoCapture camera(0);
if (!camera.isOpened()) {
cerr << "ERROR: Could not open camera" << endl;
return 1;
}
namedWindow("Webcam");
Mat frame;
while (1) {
camera >> frame;
imshow("Webcam", frame);
if (waitKey(1) >= 0) {
break;
}
}
return 0;
}
我尝试使用 resizeWindow("Webcam", 1280, 720),但窗口自动变回 639x479。如果我把窗口全屏,相机分辨率仍然是 639x479。我认为问题是某些 VideoCapture 默认设置,但我不确定。如何将捕获和显示的分辨率设置为 1280x720?
【问题讨论】:
-
这也可能是驱动问题(见answers.opencv,问题经常出现)。你也可以想出
camera.set(CAP_PROP_FRAME_WIDTH, 1280.0)和同样的高度。也许这可以工作 -
我会写这个作为一个答案,所以每个人都可以看到这是一个解决方案。
标签: c++ opencv video-capture