我想使用 OpenCV / VideoCapture 类为各种相机(IEEE 1394,Logitech Webcam)设置曝光/增益参数。此主题的大多数帖子都表明这是试错法。
有没有办法更有条理地解决这个问题?
搜索videocapture.cpp并未显示opencv-3.0-beta中的代码。没有专门用于视频捕获类的头文件;它必须隐藏在其他头文件中。
如何了解有关视频捕捉(Ubuntu和/或Windows)的工作原理的更多信息?它如何与O / S中的驱动程序通信?
答案 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等支持