Python OpenCV 视频分辨率

标签 python opencv video resolution

我尝试以这种方式更改视频分辨率(使用 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);

for Detail resize window

关于Python OpenCV 视频分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45605242/

相关文章:

python - Pyqt - QProcess/readAllStandardOutput() - 编码?

python - 将单独列表中的字符串转换为 unicode - python

python - 更改同一轴上的子图的大小

opencv - 使用opencv将一个形状放在另一个形状内

c++ - 给定大小为 26 * 7 的图像是否有可能在 Mat 的每一行中包含 78 个单独的颜色值,而另一个可以包含 77 个?

javascript - WebRTC:在 SDP 中将视频添加到没有 BUNDLE 行的音频调用

c# - 如何从 H.264 视频流中提取图像?

html - 在 HTML5 视频中获得 >24 fps 的帧率?

python - 使用 selenium 2(Python 绑定(bind))在 Web 浏览器中的任意位置单击

c++ - 如何处理霍夫变换中的负 rho 值?