
先放图镇楼。昨天拍的上海浦东天际线日转夜合成照片。
一般提到延时,大家想到的就是延时视频。不过我一直有一个想法,做一个表现日转夜过程的单张照片。
其实你以前可能也见过这个思路的作品,从网上找了几个例子:
这张图是三张照片融合起来的。
这张图是纵向切割了16条拼起来的。
这些照片看着也不错,但是我早就想做一个更绝的:每一条都只有1个像素宽,弄几千条,搞一个无缝过渡的日转夜照片。
这就是你在本文开头看到的作品了。
下面讲讲这张图的拍摄和后期过程。
我趁出差上海的机会,连续两天傍晚一共拍了两次,使用的设备是索尼A7M3转接佳能24-70 F2.8(其实我也有带A7R3出门,但是A7R3像素数太高,后期处理的计算压力会比较大;而且相应的,象元面积比较小,噪声比较大,拍夜景不占便宜,所以决定使用A7M3拍)。
这是第一天拍的:
拍摄使用的是A档、自动ISO(100-6400),光圈开满2.8,使用机内自带的延时摄影功能,2s一张、拍了3600张(因为500张的地方误触了一下,只使用了后面的3100张)。
使用A档的原因是光圈如果变化,各帧暗角的程度不一,后期闪烁严重无法修正。
使用自动ISO并且最高ISO允许开到6400的原因是,怕晚上黑下来以后,低ISO对应的曝光时间太长,冲破延时2s间隔,导致时间采样不均匀。不过后来发现其实在城市夜景前是不需要担心的,灯光很亮,最后相机在-1.7的曝光补偿下,自动采用了ISO6400、1/200s的曝光,所以即使使用很低的ISO,曝光时间也不会冲破拍摄间隔。
这张照片在处理时,我狂拉去朦胧。Lightroom的去朦胧功能对于单张照片有很好的色彩和细节强化效果,但是由于去朦胧的最终结果依赖于一张照片上光强、色彩的分布,在延时序列中会导致亮度和色彩出现严重的闪烁。所以你看到我的输出结果中,天光颜色从绿到紫闪来闪去,非常恶心。
使用的处理脚本是我快速写的一个简单脚本,就是直接把每一张照片的一列扔到最终结果里,所以序列中的闪烁没有得到任何纠正:
最后呈现的就是这样一版非常粗糙的结果。
根据第一天的经验教训,我第二天做了相应的改进:
还是用A档,还是自动ISO,但是ISO允许变化的范围我限制在100-200之间,曝光补偿提升一档到-0.7,这样仍能保证黑下来后,曝光时间最长也只有1/3秒。
另外因为有人看到第一次尝试照片说天黑的速度很快,我第二次尝试时,把拍摄间隔缩短50%到1秒1张,这样可以把变黑过程刻画的更细腻。
A7M3的长边像素数是6000,为了好算,我计划拍摄4000张照片、覆盖4000s(1小时6.6分钟)。按照一列像素对应一张照片,4000帧素材将允许我生成长边4000像素的照片,够用了。
参考第一天的结果,我选取了最值得拍的一段时间:太阳地平高度在+5度到-10度之间(当天17:24-18:30)。拍摄时江边风大,我找了附近一个地方躲了起来,没想到没一会儿就有附近玩耍的小屁孩过来碰我相机,吓得我大喝一声“别动!”,之后一直站在旁边看着,就怕再被碰了。
这一次我在后期处理时,刻意避开使用去朦胧功能,延时序列的亮度和颜色变得稳定多了。还是使用不带平滑的原始代码,得到下图:
可以看到已经没有剧烈的颜色闪烁了,但是亮度闪烁还有一些。
这时一个显而易见的解决方式就是平滑。
我尝试了100张和180张移动平均两种方式,对比如下:
可以看出,180张移动平均出来的更加顺滑,100张的稍微差点意思。所以最后就选用180张版本了。
其实中间还想过一个更复杂的处理:因为第一次尝试中,江面上船只太多,显得很凌乱,我想用sigma_clipping把那些船(河面上亮度较低或较高的像素)给排除掉,以获取更加丝般顺滑的河面。但是试了一下,sigma_clipping处理后的船有瑕疵:
而单纯使用平均的版本中,船已经被平均的不太碍事了,所以就没必要再用sigma_clipping浪费计算时间了。
中间还有一个小问题值得讨论:为了最优结果,应该输出什么格式的文件?
我一开始是从Lightroom中导出tiff,然后在python中合成输出jpg。这样搞有两个问题:
1、tiff太大了,4000个tiff占了200多个G,硬盘要爆炸;
2、上百张平均得到的是非常细腻的图像,用jpg记录最终结果,会损失很多信息,还会由于取整误差出现色带。
所以这样是搞反了。正确的是Lightroom里先输出jpg,一共只有不到30G,合成后用tiff记录多张平均得到的细腻结果。
最终结果就是这样啦,一张图上、以像素级精度,完整展现从黄昏到接近航海昏影终的天色变化。
希望今天的分享对你有帮助!各位有什么建议更欢迎不吝赐教。
想看更多天文、天文摄影相关的内容,欢迎关注我~
根据网友建议,把建筑稍微拉直了一点。没有完全拉直,因为那样下部江面需要裁掉过大比例。
