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