opencv - 在 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)。
有没有一种有效的方法可以将分辨率更改为正确的而不是之前将其更改为另一个?
解决方案
CAP_PROP_FRAME_HEIGHT
或CAP_PROP_FRAME_WIDTH
用于切换相机的分辨率。如果您的相机不支持您设置的分辨率,则代码将不起作用。如果您查看Logitech C922 的规格,您会发现它不包含您想要的分辨率。
您还可以应用其他选项:
1- 您可以从主框架裁剪所需的尺寸(例如 640,360)。
2-您可以调整框架的大小,但这会使纵横比崩溃。
推荐阅读
- php - 从数组的下一个索引移动并将某些字符串附加到上一个索引
- ios - 如何在 Ubuntu 服务器中安装 AAA 证书服务根
- python - Pandas Pivot - 删除多级索引并设置为列
- amazon-ec2 - 自动将文件从 Windows 上传到 AWS Linux
- javascript - 过滤数组以显示所需值时不执行代码
- mysql - 修改数据库不需要 ALTER 权限
- javascript - 创建一个与 GPS 坐标无关的弹出窗口?
- firebase - 如何在 Getx 包的帮助下使用 Firebase 在 Flutter 中将用户 ID 作为文档 ID?
- java - 库使用尚未在 Android 中实现的方法
- flutter - 在颤动中显示来自后端的数据时获取 Null 或 Blank