首页 > 解决方案 > 在 OpenCV 中切换 640x480 和 640x360 分辨率

问题描述

我使用 OpenCV 4.3 和 c++ 和 VideoCapture 从 Logitech C922 Pro 网络摄像头获取视频流。

我用改变分辨率

cap.set(CAP_PROP_FRAME_HEIGHT,height)
cap.set(CAP_PROP_FRAME_WIDTH,width)

这工作正常,直到我使用 640x480 或 640x360 的分辨率。在这种情况下,OpenCV 保持之前的纵横比(启动时为 640x480)。

有没有一种有效的方法可以将分辨率更改为正确的而不是之前将其更改为另一个?

标签: opencvwebcam

解决方案


CAP_PROP_FRAME_HEIGHTCAP_PROP_FRAME_WIDTH用于切换相机的分辨率。如果您的相机不支持您设置的分辨率,则代码将不起作用。如果您查看Logitech C922 的规格,您会发现它不包含您想要的分辨率。

您还可以应用其他选项:

1- 您可以从主框架裁剪所需的尺寸(例如 640,360)。

2-您可以调整框架的大小,但这会使纵横比崩溃。


推荐阅读