如何在 Python 中设置 cv2.VideoCapture() 图像大小

使用 cv2.CAP_PROP_FRAME_WIDTHcv2.CAP_PROP_FRAME_HEIGHT 来告诉 OpenCV 你想要的图像大小。

capture_resolution.py
import cv2

video_capture = cv2.VideoCapture(0)
# 检查成功
if not video_capture.isOpened():
    raise Exception("Could not open video device")
# 设置属性。每个在成功时返回 === True(即正确的分辨率)
video_capture.set(cv2.CAP_PROP_FRAME_WIDTH, 160)
video_capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 120)
# 读取图片。成功时 ret === True
ret, frame = video_capture.read()
# 关闭设备
video_capture.release()

注意大多数视频捕获设备(如网络摄像头)仅支持特定的宽度和高度集。使用 uvcdynctrl -f 查找支持的分辨率:

uvcdynctrl_list_formats.sh
$ uvcdynctrl -f
Listing available frame formats for device video0:
Pixel format: YUYV (YUYV 4:2:2; MIME type: video/x-raw-yuv)
  Frame size: 640x480
    Frame rates: 30, 20, 10
  Frame size: 352x288
    Frame rates: 30, 20, 10
  Frame size: 320x240
    Frame rates: 30, 20, 10
  Frame size: 176x144
    Frame rates: 30, 20, 10
  Frame size: 160x120
    Frame rates: 30, 20, 10

Check out similar posts by category: OpenCV, Python, Video