c++ - 如何使用 OpenCV 3.4.2 将相机设置为自动曝光?

标签 c++ opencv camera exposure

我正在使用PS-Eye-3相机,libusb , PSEye driver 、Windows 10 上的 OpenCV 3.4.2 和 Visual Studio 2015/C++。

我可以使用以下代码将相机的曝光设置为任何值:

cv::VideoCapture *cap;  
...
cap = new cv::VideoCapture(0);
cap->set(CV_CAP_PROP_EXPOSURE, exposure); // exposure = [0, 255]

现在我也想切换到自动曝光。如何将相机设置为自动曝光模式?

我尝试了以下方法:

cap->set(CV_CAP_PROP_EXPOSURE, 0);       // not working
cap->set(CV_CAP_PROP_EXPOSURE, -1);      // not working
cap->set(CV_CAP_PROP_AUTO_EXPOSURE, 1);  // not working, exposure stays fixed
cap->set(CV_CAP_PROP_AUTO_EXPOSURE, 0);  // not working, exposure stays fixed
cap->set(CV_CAP_PROP_AUTO_EXPOSURE, -1); // not working, exposure stays fixed

有什么想法吗?

最佳答案

这取决于您使用的捕获 API。如果您使用 CAP_V4L2,则自动曝光设置为“开启”(值为 3)和“关闭”(值为 1)。

可以通过在终端中输入 v4l2-ctl -l 找到所有可设置的值。

我认为对于 OpenCV < 4.0,默认 api 是 CAP_GSTREAMER,自动曝光设置为“开启”,值为 0.75,“关闭”,值为 0.25。

关于c++ - 如何使用 OpenCV 3.4.2 将相机设置为自动曝光?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53545945/

相关文章:

c++ - 引用和指针有什么区别?

c++ - std::abs(0u) 格式不正确吗?

c# - 如何从 Render Texture 获取 3D 世界空间位置

c++ - 旋转 QByteArray

python-3.x - 计算旋转矩形区域中的非零像素数

ios - iPhone 4 中的 metaio

c++ - 从 Boost 1.37 降级到 1.34

c++ - 无法从 C/C++ 程序访问环境变量

opencv - Opencv编译Raspberry Pi 3 Raspbian Jessie

c++ - OpenCV warpPerspective 错误 : Bad number of channels