【计算机视觉】HDR之tone mapping简介

179 篇文章 40 订阅 ¥39.90 ¥99.00

tone Mapping原是摄影学中的一个术语,因为打印相片所能表现的亮度范围不足以表现现实世界中的亮度域,而如果简单的将真实世界的整个亮度域线性压缩到照片所能表现的亮度域内,则会在明暗两端同时丢失很多细节,这显然不是所希望的效果,Tone Mapping就是为了克服这一情况而存在的,既然相片所能呈现的亮度域有限则我们可以根据所拍摄场景内的整体亮度通过光圈与曝光时间的长短来控制一个合适的亮度域,这样既保证细节不丢失,也可以不使照片失真。人的眼睛也是相同的原理,这就是为什么当我们从一个明亮的环境突然到一个黑暗的环境时,可以从什么都看不见到慢慢可以适应周围的亮度,所不同的是人眼是通过瞳孔来调节亮度域的。


而这个问题同样存在在计算机图形上,为了让图像更真实的显示在显示器上,同样需要Tone Mapping来辅助。
整个Tone Mapping的过程就是首先要根据当前的场景推算出场景的平均亮度,再根据这个平均亮度选取一个合适的亮度域,再将整个场景映射到这个亮度域得到正确的结果。其中最重要的几个参数:
Middle grey:整个场景的平均灰度,关系到场景所应处在亮度域。
Key:场景的Key将决定整个场景的亮度倾向,倾向偏亮亦或是偏暗。
首先我们需要做的是计算出整个场景的平均亮度,有很多种计算平均亮度的方法,目前常用的的是使用log-average亮度来作为场景的平均亮度,通过下面的公式可以计算得到:

其中Lw(x,y)是像素点x,y的亮度,N是场景内的像素数,δ是一个很小的数用来应对像素点纯黑的情况。

上面的公式用来映射亮度域,α即是前面所讲的Key值,用来控制场景的亮度倾向,一般来说,会使用几个特定的值,0.18是一个适中的Key,0.36或者0.72相对偏亮,0.09甚至0.045则是偏暗。完成映射的场景为了满足计算机能显示的范围还要将亮度范围再映射到[0,1]区间,可以通过下面的公式简单的得到[0,1]区间的亮度。

 

附上效果图:

 

不过这样得到的结果并不总是令人满意的,所以一般扩展为如下面的公式,公式中的参数Lwhite用来控制场景中的曝光,凡是亮度超过Lwhite的像素都会被置为纯白。如果Lwhite的值非常大,则这个参数在公式中将不起任何作用,如果非常小则场景将变为几乎全白。Ld即为我们所要的映射后的x,y像素点的亮度值。

Tone Mapping一般作为HDR算法中的一部分存在,在使用中会灵活很多,但基本的原理都是相同的。


  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Tonemapping是数字图像处理领域中的一项技术,旨在将高动态范围(HDR)图像转换为低动态范围(LDR)图像,以便在标准显示设备上显示。HDR图像具有比标准LDR图像更大的亮度范围和更高的对比度,因此需要进行转换才能在设备上适当地呈现。Tonemapping技术可以将HDR图像的亮度范围压缩到与LDR图像相同的范围内,同时保留图像的细节和视觉效果。 Tonemapping算法有很多种,包括基于本地操作和全局操作。本地操作中,根据像素的局部特性选择不同的曲线扭曲函数,以改变局部亮度差异,使图像看起来更加自然。全局操作则是通过在整个图像上应用同一曲线来调整整个图像的亮度和对比度。基于本地操作的算法包括Reinhard等人提出的常用代表KIM图像和Durand等人提出的Bilateral Tone Mapping算法。基于全局操作的算法包括Xu等人提出的Modified Local Low Dynamic Range Tone Mapping算法,以及Fattal等人提出的基于峰值调制的Tone Mapping算法等。 Tonemapping技术在视觉效果、图像细节等方面有显著的改进。它在各种应用中都得到广泛的应用,包括电影、摄影和计算机游戏。然而,Tonemapping仍然存在一些挑战,例如折衷处理时需要平衡亮度和对比度,以及如何处理镜头光晕和色差等问题。因此,未来的研究方向将专注于解决这些问题和提高Tonemapping算法的效率和质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值