我想使用 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/