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