【问题标题】:Getting all available frame size from capture device with OpenCV使用 OpenCV 从捕获设备获取所有可用的帧大小
【发布时间】:2013-11-19 20:55:21
【问题描述】:

我将 Open CV 2.4.6 与 C++ 一起使用(有时也与 Python 一起使用,但这无关紧要)。我想知道是否有一种简单的方法可以从捕获设备中获取所有可用的帧大小?

例如,我的网络摄像头可以提供 640x480、320x240 和 160x120。假设我不知道这些帧大小先验...是否可以获得向量或迭代器,或者类似的东西可以给我这些值?

换句话说,我不想获得当前的帧大小(这很容易获得),而是我可以将设备设置为的大小。

谢谢!

【问题讨论】:

    标签: c++ python opencv video-capture image-capture


    【解决方案1】:

    当您从相机检索帧时,它是该相机可以提供的最大尺寸。如果你想要一个更小的图像,你必须在获取图像时指定它,opencv会为你调整它的大小。 普通相机有一个尺寸相同的传感器,它将一种图像发送到计算机。此后 opencv 对它的作用由您指定。

    【讨论】:

    • 你好威廉!我认为硬件本身可以设置为更小的帧大小(硬件合并或硬件抽取)以节省时间(比如提高帧速率)。那么帧率变化有什么作用呢?积分时间有什么变化?
    • 你是对的,我的立场是正确的。我不是相机方面的专家,也许不应该这么急于回复。就opencv而言,我不相信有办法获得你需要的信息。我正在使用 [here] (docs.opencv.org/opencv2refman.pdf) 找到的 opencv 参考手册,第 352 页上的 VideoCapture::get 描述没有为该信息指定任何句柄。
    • 你是对的。我现在使用 OpenCV 很长时间了,但我从来没有遇到过这个要求。所以我什么也没找到,这就是我问这个问题的原因。希望其他人有一个想法...?
    • 此外,返回的默认帧大小不一定是最大的,可能是由相机驱动程序而不是 opencv 定义的。
    • @littleimp 这可能是真的,我关于相机的 cmets 是基于有限的经验,结果证明是错误的。据我所知,openCV 更像是一个图像处理库,而不是一个相机交互程序,缺乏对白平衡、宽动态范围等的支持就证明了这一点。也许一个商业上可用的相机交互程序可能是在相机和 openCV 之间进行设置,尽管复杂性和/或速度成本可能是一个问题。还可以编写一个直接与相机驱动程序交互的 C++ 程序。
    猜你喜欢
    • 2021-11-26
    • 2017-09-25
    • 2018-08-29
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    相关资源
    最近更新 更多