当前位置:[北京同好会]>[数字图像]>[多曝光系列照片的合成]

 

多曝光系列照片的合成

在网上看到一种称为自适应反差控制ACC的概念,但具体实现有多种方法,且没有描述。受此启发,设计了一种算法,用于多曝光系列照片的合成,解决以前处理过程中随意性大,可重复性差的问题。

所谓自适应,实际上是模仿了人眼的视觉特征。当我们看同一幅图像的亮部和暗部时,瞳孔会自动缩小和放大,使得视场里实际进光量保持在合适的范围内,图像不同区域的视觉效果相似,故而人不会感觉到亮度差异很大。而如果用照相机以固定的光圈速度拍照,就可以明显看出差别来。

这种算法的原则是,1)压缩亮度动态范围 2)保持相对反差不变,即保留细节。

对于多种曝光时间照片的合成,核心是把原有的大动态范围映射(压缩)到较小的范围内(8或16位),从而在同一张照片上表现出亮度差异巨大的不同细节。合成照片中的每一个区域,在每一张原始图片上都有记录,只是由于曝光量的不同,有些照片上位于高噪声的暗部,有些位于接近饱和的亮部,还有些则位于最佳的中间亮度区。根据所选择的处理方法,通常会选择最合适的原始图像中的相应区域作为合成图的数据源。

如果合成图像上相邻的两个区域分别来源于两张图片,而它们在同一区域的亮度不一致,那么就会明显看出过渡痕迹。在日食合成照片上,经常可以看到日冕从内向外先变暗,再变亮而后又变暗的效果,这明显地与实际景象不符。要避免出现这样的问题,所有照片应按统一算法进行调整,使得同一区域在所有照片上亮度均相同。这种统一算法并非在PS中以同一条曲线处理所有的照片,因为各个照片的曝光量是不同的。

试以以下算法进行亮度变换(16位图像):
I= 32768 * S/ (S+offset)

S为原始亮度,I为变换后亮度,offset为偏置值。在这个变换下,对于大亮度S,变换后的亮度基本为32768 (16位范围的中点),而S趋近于0时,I亦降为0,使得变化趋势符合视觉规律。

对于不同曝光量的两个图片,S1与S2,设前者的曝光时间是后者的k倍,那么在不考虑噪声时:
S1~= k*S2

为了保证同一区域的亮度相同,必须有 I1~=I2,而:

I1= 32768 * S1/ (S1+offset)~=32768 * k*S2/ (k*S2+offset)=32768 * S2/ (S2+offset/k)

即S2做亮度变换时

I2= 32768 * S2/ (S2+offset/k)

以上运算需要基于RAW的线性数据。

在日冕照片中,提高日冕细节的反差是另一个受到关注的问题。在PS中使用曲线提升亮度时,高光部位的反差会缩小。而如果对某个区域乘以一个常数,则相对强度变化会保持不变,即反差得到保留。

所以,在上式中,将S取为图像的平均亮度(中值+高斯模糊),则32768/(S+offset)就是本区域的变换系数,再乘以原始图像I0得到的最终图像为:

I=32768 * I0/ (S+offset)

在这个变换中,平均亮度通过1/(S+offset)被压缩;由offset/k保证了不同照片处理后亮度分布的一致性;而S为位置的缓变函数,使得在小区域内 I 正比于I0,即保持了相对反差不变。

以2006年日食照片做试验处理。

4张原始日食照片,曝光量最大相差180倍,总动态范围为20位。将亮度压缩后可以看出,不同照片的信噪比不一,但图像过渡得很好,看不出“接缝”。


再经过USM等增强,得到最终的合成图像: