如何估计相机从场景拍摄好照片的曝光时间

man*_*ans 5 c++ algorithm camera opencv image-processing

我正在尝试编写代码来计算相机以正确亮度捕获图像的正确曝光时间.

我所拥有的是一个以RAW(拜耳原始数据)提供数据的相机,我可以控制其曝光时间,我想控制其曝光,因此当它捕获图像时,图像的亮度正确(不太暗)暴露在外)或太亮(暴露在外).

我想我需要一个与此类似的算法:

1-capture a sample image
2-calculate image brightness.
3-calculate correct exposure.
4-capture a new image,
5-check that the image brightness is correct if not go to step 3.
6- capture final image.
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 如何计算图像亮度?
  2. 如果我计算图像亮度,我该如何计算曝光?这样做的一种方法是进行搜索(例如从非常快的曝光时间开始增加它直到你得到正确的曝光,但这是非常耗时的,有没有更好的方法这样做?)
    1. 为此,我可能需要校准我的相机(因为不同传感器之间亮度和曝光时间之间的关系不同),我该怎么做?

我正在使用OpenCV,我可以使用OpenCV中提供的算法(c ++)

Pho*_*ton 2

有多种方法可以测量图像的“正确”亮度。常见的方法是计算强度直方图并确保值覆盖整个值范围,并且没有太多的截止。我不确定对于任何可能的场景是否有一个“万能”的方法。

在此输入图像描述

比线性增加曝光更快的方法是进行二分搜索,先测量低曝光和高曝光,然后测量中间,然后继续分割中间的子范围,直到找到最佳值。