可靠地设置网络摄像头曝光的方法是什么?

4

我正在开发一个项目,使用网络摄像头连续拍摄不同曝光值的照片(制作HDR图像流)。我一直在使用Logitech C310相机,并通过向命令行发送以下内容来设置曝光值:

"v4l2-ctl --set-ctrl=exposure_absolute=%d --device=/dev/video1",exposureValue

这在我设置为一个曝光时间,然后另一个曝光时间时效果相当不错,但当我尝试连续拍摄3档照片时,每个档次的曝光变化不大。
我的相机的另一个问题是,在最大曝光值10000(无论这些单位是什么)下,画面曝光不如我所希望的那样暴露。
1)如果经常更改曝光值,是否存在某些根本性问题会导致它无法在大多数网络摄像头上正常工作?
2)有人能推荐一些更适合拍摄高曝光照片的网络摄像头吗?

嗨,我有一个任务。但是我正在使用opencv。但我没有找到任何解决方案来获取不同曝光的图像。你能否请分享你使用v4l API的代码。谢谢。 - Abc
1个回答

4
exposure_absolute的值范围似乎是相机和驱动程序特定的。许多相机用这个参数表示曝光时间。许多相机还提供gain参数,它控制电子放大,就像数码相机上的ISO设置一样。如果已经达到最大值,请尝试增加gain

两者都可以结合使用进行曝光控制,但在任意相机上不存在每个参数的必要性。有些相机提供两个参数中的一个或两个,有些则提供但忽略它们,因为它们只提供auto模式。

因此,最兼容的方法是检查是否存在手动模式,并设置并检查其是否被接受,应用exposure_absolute并检查其是否被接受,否则尝试使用gain或者如果exposure_absolute已经达到最大值。

录制视频时,还有一个需要注意的问题,即较大的exposure_absolute值会使曝光时间超出帧间隔,从而降低帧率。应该测试以确定何时应使用gain以保持恒定的帧速率。

还要注意,一些v4l2工具尝试自行选择像素格式或分辨率,忽略v4l2-ctl选择的参数,并且一些罕见的相机倾向于在此情况下重置其他参数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接