OpenCV / VideoCapture /添加摄像头,调试现有摄像头的参数

时间:2015-01-02 19:16:05

标签: windows opencv ubuntu camera drivers

我想使用 OpenCV / VideoCapture 类为各种相机(IEEE 1394,Logitech Webcam)设置曝光/增益参数。此主题的大多数帖子都表明这是试错法

有没有办法更有条理地解决这个问题?

搜索videocapture.cpp并未显示opencv-3.0-beta中的代码。没有专门用于视频捕获类的头文件;它必须隐藏在其他头文件中。

如何了解有关视频捕捉(Ubuntu和/或Windows)的工作原理的更多信息?它如何与O / S中的驱动程序通信?

1 个答案:

答案 0 :(得分:1)

查看modules / videoio / src / cap.cpp中cvCreateCameraCapture()的来源,了解为什么难以预测功能。根据您的系统,可以使用多个相机API:

// try every possibly installed camera API
    for (int i = 0; domains[i] >= 0; i++)
    {
#if defined(HAVE_MSMF)         || \
    defined(HAVE_TYZX)         || \
    defined(HAVE_VFW)          || \
    defined(HAVE_LIBV4L)       || \
    defined(HAVE_CAMV4L)       || \
    defined(HAVE_CAMV4L2)      || \
    defined(HAVE_VIDEOIO)      || \
    defined(HAVE_GSTREAMER)    || \
    defined(HAVE_DC1394_2)     || \
    defined(HAVE_DC1394)       || \
    defined(HAVE_CMU1394)      || \
    defined(HAVE_MIL)          || \
    defined(HAVE_QUICKTIME)    || \
    defined(HAVE_QTKIT)        || \
    defined(HAVE_UNICAP)       || \
    defined(HAVE_PVAPI)        || \
    defined(HAVE_OPENNI)       || \
    defined(HAVE_OPENNI2)      || \
    defined(HAVE_XIMEA)        || \
    defined(HAVE_AVFOUNDATION) || \
    defined(HAVE_ANDROID_NATIVE_CAMERA) || \
    defined(HAVE_GIGE_API) || \
    defined(HAVE_INTELPERC)    || \

在Windows中,它会通过使用VFW(cvCreateCameraCapture_VFW)来打开网络摄像头,如果你想调试它使用VFW的class CvCaptureCAM_VFW函数,则会导致capCaptureSetSetup()设置参数。在Linux中,您可能必须尝试在系统上使用CMake来查看可以链接的API,但支持GStreamer和XIMEA等支持