关于OpenCV设置曝光的问题

因为项目需要,需要能够手动设置曝光,自动曝光会生产效率产生影响。后来在网上了解到CAP_PROP_EXPOSURE和CAP_PROP_AUTO_EXPOSURE两个属性,链接: https://blog.csdn.net/greenlight_74110/article/details/82798136

但是我想设置手动曝光始终设置失败,总是在应用程序输出里看到这一行字:VIDIOC_S_CTRL:无效的参数。

OpenCV开发库固然好,但是有一点还是不太方便的,就是无法直接获得摄像头的一些参数的上下限,包括摄像头可支持的分辨率等。都需要手动设置然后读取参数来手动判断参数的上下限。后来因为软件还有其他功能需要完善,这个问题也就先搁置了。

今天无意在网上看到这个:链接。瞬间豁然开朗,原来是 CAP_PROP_AUTO_EXPOSURE 这个参数设置的值不一定是0.25!根据里面的描述,参数应该设置为0,1,2或者3,估计是不同摄像头的参数设置不太一样。但是到底哪个是通用化的参数目前还尚不清楚。

后续查明,当 CAP_PROP_AUTO_EXPOSURE 参数设置为1时便为手动曝光,当设置为3时便为自动曝光,奥里给!而之前一直以为参数设置为1为自动曝光,设置为0.25为手动曝光。同时,参数设置的范围也不是用amcap软件测的-3到-7,而是78到1250。

至此,手动曝光终于没有任何问题了。软件的所有功能也基本完全了。

但是这个参数只是我手中的摄像机的参数,不知道换一个摄像头特别是不同牌子的摄像头,参数范围是不是又有变化,特别是 CAP_PROP_AUTO_EXPOSURE 参数。还得靠经验慢慢总结啊。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注