如何在 Python 中设置 cv2.VideoCapture() 图像大小
使用 cv2.CAP_PROP_FRAME_WIDTH 和 cv2.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, 10If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow