我尝试以这种方式更改视频分辨率(使用 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()
我做错了什么?
我试过了-
cv2.resizeWindow("ssss", 300, 300),
和
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 600)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 800)
没有效果!
最佳答案
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()
您的代码适用于网络摄像头,不适用于文件
对于视频文件,您可以调整窗口大小
cv2.resizeWindow(winname, width, height)
对于第一个用名称定义窗口并调整它的大小
示例
cv2.namedWindow("frame", 0);
cv2.resizeWindow("frame", 800,600);
关于Python OpenCV 视频分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45605242/