理论
今天,大多数数字图像和成像设备每通道使用8位,因此将设备的动态范围限制为两个数量级(实际上是256级),而人眼可以适应变化十个数量级的照明条件。 当我们拍摄现实世界场景的照片时,明亮区域可能会曝光过度,而暗区域可能会曝光不足,因此我们无法使用单次曝光捕获所有细节。 HDR成像适用于每通道使用8位以上(通常为32位浮点值)的图像,从而允许更宽的动态范围。
获取HDR图像的方法有很多种,但最常见的方法是使用不同曝光值拍摄的场景照片。 要结合这种曝光,了解相机的响应函数是有用的,并且有估算它的算法。 混合HDR图像后,必须将其转换回8位以在常规显示器上查看。 此过程称为色调映射。 当场景或相机的物体在镜头之间移动时会出现额外的复杂性,因为应该注册和对齐具有不同曝光的图像。
我们将展示如何从曝光序列生成和显示HDR图像。 在我们的例子中,图像已经对齐,没有移动的物体。 我们还展示了一种称为曝光融合的替代方法,可产生低动态范围图像。 HDR管道的每个步骤都可以使用不同的算法实现,因此请查看参考手册以查看所有步骤。
曝光序列
代码
#include <opencv2/photo.hpp>
#include "opencv2/imgcode