首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果我将一个较小的分辨率设置为具有恒定分辨率的相机,会发生什么情况?

如果我将一个较小的分辨率设置为具有恒定分辨率的相机,会发生什么情况?
EN

Stack Overflow用户
提问于 2019-12-25 15:14:25
回答 1查看 42关注 0票数 1

我有一个USB摄像头,我知道它的分辨率是1920x1080。

当我使用opencv的VideoCapture将分辨率设置为1080x720时,方法如下

代码语言:javascript
复制
video_capture.set(cv2.CAP_PROP_FRAME_WIDTH, 1080)
video_capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)

本质上发生了什么?

它直接从相机缓冲区进行二次采样,还是读取整个图像并将大小调整为1080x720?

如果opencv子采样直接从相机缓冲区,那么应用这些设置将提高读取速度,对吗?

如果opencv读取整个图像并将大小调整为1080x720,那么应用这些设置将减少读取速度,对吗?

它应该属于什么样的情况?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-29 14:09:47

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

代码语言:javascript
复制
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()

这是我得到的结果

代码语言:javascript
复制
160 120
320 240
640 480
848 480
960 540
1280 720

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59476078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档