python cv2视频分辨率

The*_*ify 5 python video resolution cv2

我尝试以这种方式将视频分辨率(使用mp4!)(更改为800x600):但它不起作用,当我使用cap.get(3)和(4)时,每次将其解压缩为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()
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

我试过了 -

cv2.resizeWindow("ssss", 300, 300), 
Run Code Online (Sandbox Code Playgroud)

cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 600)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 800)
Run Code Online (Sandbox Code Playgroud)

没有效果 !

Kal*_*llz 6

import cv2
cap = cv2.VideoCapture(0)
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()
Run Code Online (Sandbox Code Playgroud)

这您的代码适用于网络摄像头,而不适用于文件

对于视频文件,您可以调整窗口大小

cv2.resizeWindow(winname, width, height) 
Run Code Online (Sandbox Code Playgroud)

对于第一个带有名称的定义窗口并调整其大小

  cv2.namedWindow("frame", 0);
  cv2.resizeWindow("frame", 800,600);
Run Code Online (Sandbox Code Playgroud)

用于“细节调整”窗口