gpt4 book ai didi

opencv - 如果我为具有恒定分辨率的相机设置了较小的分辨率会怎样?

转载 作者:行者123 更新时间:2023-12-02 16:28:41 24 4
gpt4 key购买 nike

我有一个USB相机,我知道它的分辨率恒定为1920x1080。

当我使用opencv的VideoCapture通过以下方式将分辨率设置为1080x720时

video_capture.set(cv2.CAP_PROP_FRAME_WIDTH, 1080)
video_capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)

本质上发生了什么?

它是直接从相机缓冲区进行子采样还是读取整个图像并调整为1080x720?

如果opencv子样本直接来自相机缓冲区,那么应用这些设置会提高读取速度吧?

如果opencv读取了整个图像并调整为1080x720的大小,那么应用这些设置会降低读取速度吗?

它应该属于哪种情况?

最佳答案

我尝试将分辨率设置为不同的值

import cv2

cap = cv2.VideoCapture(0)
w = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
for i in range(1, 2000):
cap.set(cv2.CAP_PROP_FRAME_WIDTH, int(i))
if w != cap.get(cv2.CAP_PROP_FRAME_WIDTH):
h = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
w = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
print(str(int(w)), str(int(h)))

cap.release()
cv2.destroyAllWindows()

这是我得到的结果
160 120
320 240
640 480
848 480
960 540
1280 720

由于我没有 1920x1080选项,因此可以得出结论,仅当相机支持所需的分辨率时,才能使用 cap.set属性。

请注意,在OpenCV中很好地实现了调整大小的操作。因此,即使对于功耗最低的计算机(例如Raspberry Pi),与其他成像操作相比,调整大小所花费的时间也是可忽略的。 (例如,与高斯模糊不同,在普通计算机中其计算时间也是可忽略的,但是在RPi中该操作需要花费很多时间。)

关于opencv - 如果我为具有恒定分辨率的相机设置了较小的分辨率会怎样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59476078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com