我想使用 OpenCV / VideoCapture 类为各种摄像机(IEEE 1394,Logitech Webcam)设置曝光/增益参数。关于该主题的大多数帖子都表明这是反复试验。

难道没有办法更系统地解决这个问题吗?

搜索videocapture.cpp不会在opencv-3.0-beta中显示代码。没有专门用于videocapture类的头文件;它必须埋在其他头文件中。

如何了解有关视频捕获(Ubuntu和/或Windows)如何工作的更多信息?它如何与操作系统中的驱动程序通信?

最佳答案

在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)打开网络摄像头,如果要调试,将导致class CvCaptureCAM_VFW,它使用VFW的capCaptureSetSetup()函数(用于设置参数)。在Linux中,您可能必须尝试在系统上使用CMake来查看可以链接的API,但是支持GStreamer和XIMEA等

关于windows - OpenCV/VideoCapture/添加摄像机,调试现有摄像机的参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27747350/

10-12 22:16