How to set cv2.VideoCapture() image size in Python
UseĀ cv2.CAP_PROP_FRAME_WIDTH
and cv2.CAP_PROP_FRAME_HEIGHT
in order to tell OpenCV which image size you would like.
import cv2
video_capture = cv2.VideoCapture(0)
# Check success
if not video_capture.isOpened():
raise Exception("Could not open video device")
# Set properties. Each returns === True on success (i.e. correct resolution)
video_capture.set(cv2.CAP_PROP_FRAME_WIDTH, 160)
video_capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 120)
# Read picture. ret === True on success
ret, frame = video_capture.read()
# Close device
video_capture.release()
Note that most video capture devices (like webcams) only support specific sets of widths & heights. UseĀ uvcdynctrl -f
to find out which resolutions are supported:
$ 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