王朝百科
分享
 
 
 

高动态范围成像

王朝百科·作者佚名  2010-09-22  
宽屏版  字体: |||超大  

简介高动态范围成像最初只用于纯粹由计算机生成的图像。后来,人们开发出了一些从不同曝光范围照片中生成高动态范围图像的方法。随着数码相机的日渐流行以及桌面软件变得易于使用,许多业余摄影师使用高动态范围成像的方法生成高动态范围场景的照片,但是,不要将这作为它唯一的用途,实际上高动态范围还有许多其它的应用。

当用于显示的时候,高动态范围图像经常要进行色调映射,并且要与其它几种全屏显示效果(full screen effect)一起使用。

历史在计算机图形学中开创高动态范围成像的先驱是Paul Debevec,据说Debevec是第一个使用高动态范围成像图生成计算机图像以逼真地对计算机图形物体进行照明与动画处理。人们普遍认为Gregory Ward是高动态范围成像文件格式的奠基人。

与传统数字图像的比较

高动态范围成像
高动态范围成像例子:教堂

通常保存在高动态范围图像中的信息对应于真实世界可以观察到的亮度(luminance)或者radiance值,这与传统的数字图像保存的在显示器或者打印纸上显示的颜色不同。所以,高动态范围图像格式也经常成为“与场景相关”,以区别于传统的“与设备相关”或者“与输出相关”的数字图像。另外,传统图像通常经常针对人类视觉系统进行编码(最大化保存在固定数据位中的可视信息),这些编码通常称作“伽玛编码”或者“gamma 校正”。保存在高动态范围图像中的数据经常是线性的,这就意味着它们表示亮度或者radiance的相对或者绝对值(gamma 1.0)。

高动态范围图像每个颜色通道需要比传统图像更多的数据位,这是因为它的线性编码以及需要表示从10的-4次方到10的8次方人眼可见亮度范围甚至是更大范围的数值。经常使用 16 位“half precision”或者 32 位浮点数表示高动态范围像素。但是,如果使用合适的传递函数进行变换,一些应用中的高动态范围像素可以用 10-12 位表示亮度,用 8 位表示色度,并且不会带来任何可见的量化误差。

图像来源高动态范围图像最初使用不同的渲染工具生成,其中著名的一个是Radiance。由于所使用单位都是基于如瓦/球面度/平方米这样的实际物理单位,所以这种方法可以实现更加逼真的模型场景表现。这种方法可以模拟真实场景的光照,以及利用这个结果选择照明(假设几何形状、照明以及材料都是真实场景的精确表现)。

在1997年的SIGGRAPH上,Paul Debevec提交了题为“从照片中恢复高动态范围辐射图”的论文。这篇论文描述了按照不同的曝光设置对同一个场景进行拍照,然后将这些采用不同曝光的照片组合成高动态范围图像。这种高动态范围图像可以捕捉从黑暗的阴影到亮光源或者高反光的更大动态范围的场景。

在 SIGGRAPH '98 一年之后,Debevec又提交了一篇论文“将人造物体渲染成真实场景:沟通基于图像的传统图形与全局照明以及高动态范围照片”。在这篇论文中,他使用以前的技术对光滑的铬球照相以生成他所称作的“light probe”,即本质上的高动态范围环境图。然后将这个light probe用于合成场景的渲染。与普通的环境图简单地提供反射或者折射信息不同,light probe还提供了场景中的照明,实际上,这是唯一的光源。这种方法实现了一种前所未有的真实感效果,为整体照明模型提供了真实世界的照明数据。

色调映射在查看高动态范围图像的时候经总是会遇到一个问题,CRT、LCD、打印机以及其它图像显示方法只能显示有限动态范围的图像。因此,人们开发了各种将高动态范围图像“转换”成可以查看的图像的方法,这些方法统称为“色调映射”。

早期的色调映射非常简单,这些方法设置一个动态范围窗口,按照最大值、最小值对图像进行裁剪。最近出现的方法试图显示更大的动态范围,一些更加复杂的方法已经在研究人眼及视神经感知场景的机制,并且争取在保持真实的颜色与对比度前提下显示全部的动态范围。

例子

高动态范围成像
同一幅图像的三种不同曝光效果

一些图像实例可以用来帮助说明高动态范围成像的用途。下面的实例所用的图片是用Uffizi图库中著名的 Paul Debevec光探头在Radiance中渲染生成。曝光

高动态范围成像
高动态范围成像的最终效果图

在将高动态范围图像通过色调映射生成用于显示的低动态范围图像的过程中,通过调整曝光展示了高动态范围图像。中间的曝光是所期望的曝光,也最有可能是场景正常显示的效果。左侧较暗图像使用光圈4曝光,只能显示天空较亮云彩的一些细节。右侧较亮图像使用光圈3曝光,可以显示场景中较暗的部分。模糊这里的高斯模糊展示了高动态范围图像中超出取值范围的数值也是有用的,即使它们在转换成低动态范围图像的时候通常都要被裁掉。左侧图像是原始图像首先经过色调映射成的低动态范围版本,然后在GIMP中进行模糊得到,右侧的图像是原始高动态范围图像在pgblur中进行模糊,然后经过色调映射得到。

尽管两幅图像非常相似,但是明显的区别就是光滑铬球上的高亮光部分。在原始的高动态范围图像中,这些像素都有非常大的亮度值。当图像模糊的时候,周围的像素亮度被“拉高”并且在色度映射时裁剪成最大值,当然高亮像素的亮度也会被周围像素“拉低”,但是它们的亮度非常高所以在色度映射的时候仍然要超出最大值。这样的结果就是更大的区域变成了白色。

但是对于低动态范围模糊来说,高亮区域的像素在模糊处理之前已经裁剪成了最大值,这就从总体上大幅度地降低了亮度值。因此,在模糊处理之后,光亮区域周围的像素将不再有非常高的亮度,即使是高亮区域内的像素也由于周围像素的影响而被拉低。这样高亮区域就变得比较模糊,开起来不再非常明亮。

对于常见的运动模糊也是同样的结果。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格​十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有