capture如何设置摄像头分辨率?

在代码层面,调用摄像头后可以直接使用set函数进行修改,例如通过capture.set(CAP_PROP_FRAME_WIDTH, 720)和对应的高度参数来指定,注意OpenCV默认是640*480。

评论 (2)

确实是这样,直接set最方便。不过提醒一下,不同相机支持的分辨率不一样,如果设了不支持的数值,OpenCV可能会静默失败回退到默认值或者根本无效。建议设完后用get函数读取一下实际生效的宽和高来验证,别闷头跑代码最后发现还是640x480。

确实是这样,不过实际调试时很容易遇到驱动不支持指定分辨率的情况。如果 set 返回 False,建议直接用 VideoCapture(cap_id) 后通过 get 检查一下当前实际支持的格式列表,或者直接换用更高版本的 OpenCV 尝试自动协商机制。