📜  如何更改 opencv 捕获分辨率 - Python (1)

📅  最后修改于: 2023-12-03 15:09:10.044000             🧑  作者: Mango

如何更改 OpenCV 捕获分辨率 - Python

在 OpenCV 中,我们可以使用 VideoCapture 对象捕获视频或摄像头的实时流。然而,有时我们可能需要更改捕获的分辨率以适应我们的需求。本文将介绍如何在 Python 中更改 OpenCV 的捕获分辨率。

代码实现
import cv2

cap = cv2.VideoCapture(0)

# 获取当前捕获的分辨率
width = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
print('当前分辨率:', width, 'x', height)

# 设置新的分辨率
new_width, new_height = 640, 480
cap.set(cv2.CAP_PROP_FRAME_WIDTH, new_width)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, new_height)

# 获取新的分辨率
width = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
print('新的分辨率:', width, 'x', height)

# 读取并显示实时流
while True:
    ret, frame = cap.read()
    cv2.imshow('frame', frame)

    if cv2.waitKey(1) == ord('q'):
        break

# 释放资源
cap.release()
cv2.destroyAllWindows()

上述代码中,我们首先获取当前捕获的分辨率,然后使用 set() 方法设置新的分辨率。最后,我们展示实时流,并等待用户按下 'q' 结束程序。在结束程序之前,我们需要使用 release() 方法释放资源,关闭窗口并清除缓存。

总结

本文介绍了如何使用 Python 更改 OpenCV 捕获的分辨率。我们使用 CAP_PROP_FRAME_WIDTH 和 CAP_PROP_FRAME_HEIGHT 属性来访问和设置分辨率值。为了在 OpenCV 中捕获视频流,我们使用了 VideoCapture 对象,并使用 read() 方法从摄像头获取帧。