关于 c :如何估计相机的曝光时间以从场景中拍摄出好的图像

How to estimate exposure time for camera to take a good image from a scene

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

我拥有的是一台以 RAW(拜耳原始数据)格式为我提供数据的相机,我可以控制它的曝光时间,我想控制它的曝光,这样当它捕获图像时,图像的亮度是正确的(不是太暗(曝光不足)或太亮(曝光过度)。

我想我需要一个类似这样的算法:

1
2
3
4
5
6
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.

我的问题是:

  • 如何计算图像亮度?
  • 如果我计算图像亮度,如何计算曝光?这样做的一种方法是进行搜索(例如,从非常快的曝光时间开始增加它直到您获得正确的曝光,但这是非常耗时的,有没有更好的方法来做到这一点?)

  • 为此,我可能需要校准我的相机(因为亮度和曝光时间之间的关系在不同传感器之间是不同的),我该怎么做?
  • 我正在使用 OpenCV,我可以使用 OpenCV (c) 中可用的算法


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

    enter