Python OpenCV video resolution

Viewed 22043

I try to change video resolution (with mp4!) (to 800x600) in this way : but its doesn't work, when I use cap.get(3) and (4), its return every time defualt 1280x720!

import cv2
cap = cv2.VideoCapture('file')
while(cap.isOpened()):
    cv2.waitKey(10)

    ret, frame = cap.read()
    cap.set(3, 800)
    cap.set(4, 600)

    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2BGRA) 
    print cap.get(3) # return default 1280       

    cv2.imshow('frame',gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

What I'm doing wrong?

I tried -

cv2.resizeWindow("ssss", 300, 300), 

and

cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 600)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 800)

no effect !

3 Answers

cap.set() has no effect below resolutions of 640,480 (at least for my macbook pro) You can increase the resolution, but for example setting it to 300,300 has no effect. As for my experience you ned to call resize() on the frame after you read() it.

Related