深空马赛克制作和消接缝的技巧

深空马赛克制作和消接缝的技巧

这是一篇后期处理笔记,技巧的思路来源于PixInsight官方网站的处理案例: https://www.pixinsight.com/examples/NGC6914-CAHA/index.html

这个案例里的无痕马赛克我至今都没学会,但是基本思路给了我很大启发。所以我按这个案例里的思路自己改了一套无痕马赛克的方法,目前拍了几张2x1的马赛克图,效果还不错。


众所周知,马赛克拼接可以在不显著增加曝光时间的前提下疯狂扩大视野,能解决一大新手烦恼:“为什么我的视场装不下M31”。

假设,有一大一小两支镜子,200F/4配APS-C和100F/4配APS-C,传感器的像素尺寸均为3um,后者的视场面积是前者的4倍。根据常识,这两套拍摄系统的单个像素接收到的光子量相等,信噪比相等。如果第一套系统采取2x2马赛克拍摄,视场可以扩展到和100F/4一样大,但是每一格的曝光量会下降到1/4,信噪比降到1/2。但此时马赛克的全图已经有了相当于原来片子4倍的像素数量,做了bin2缩图之后,平均每个bin过的像素光子量x4,信噪比x2,信噪比又补回来了。于是200F4的这支镜子在同样的时间内,拍出了和100F4的系统同样视场同样像素数量同样信噪比的片子。当然由于拼接重叠的原因,像素数量会略少。

由于本来是200F4的大镜子拍的,基础分辨率会很高,缩图以后星点很细,这样就给星云留下了大量的空间。这样马赛克摄影的作品就拥有了更强的视觉穿透力。所以这是一种用大镜子碾压小镜子的不讲武德的高级天文摄影技巧。和那些无脑拿着大镜子曝光然后疯狂锐化拼细节的片子不一样,马赛克摄影的目标通常是内容十分丰富的星云,需要处理的信息量极大,要拍摄者兼顾色彩平衡感、饱和度平衡,亮度平衡、频率平衡等等,任何一个处理环节出瑕疵都会破坏片子的美感。所以马赛克摄影算得上是天文摄影里面最困难的一个类别。

马赛克的计划做起来并不难,在NINA里就可以很方便地规划好。值得注意的有两点:第一点是重叠区域,默认的是20%,一开始可以只用默认,后期起来比较方便,熟练了以后可以逐渐缩小重叠,如果你的极轴对的足够精准,甚至可以考虑5%重叠这种高风险做法。第二点是构图。我个人的喜好是把形态差异大的,颜色差异大的目标都尽量放到视野里来,增加画面的冲击力。另外需要注意,用于接马赛克的镜子一定要调好光轴和焦平面,因为在2x2的马赛克里,每一格的边缘就是整张图的中心。

本篇的标题提到的是“无痕马赛克”,然而真正严格的无痕马赛克不存在。由于天气、光污染和月相的变化,相邻两格的马赛克之间的信噪比不会完全相同。对一张接好马赛克的图连续做最小值运算,最终一定能看得到接缝。



接马赛克的片子,以2x1的最简单马赛克为例,在制作马赛克之前需要完成:每一格分别预处理、叠加,制作成四幅图,L1,RGB1,L2,RGB2. 紧接着给四张图分别做人工平场。制作马赛克时是L1和L2拼接,RGB1和RGB2拼接,不需要把每个通道单拿出来拼图。所以马赛克最好是线性阶段去做。马赛克单格的人工平场会比较有难度,这是因为做马赛克往往需要让一些云气跨越接缝,这些都需要自己拍摄大量的素材反复练习。

后期处理方面,PixInsight提供了不止一种工具。最原始的就是GradientMergeMosaic,这工具的缺点是对线性图做马赛克经常会在接缝处露出星点的对陈暗影,如果把两张图都拉伸至非线性拼接,GMM又会让片子出现莫名其妙的绿色。所以这个工具还是弃用了比较好。我在这里要介绍一种依靠StarAlignment和DynamicalBcakgroundExtraction组合的做法,既能拼接片子又能消除接缝。

首先准备两张精心做过人工平场的片子:

注意这两张片子要极其耐心的裁边,如果怀疑一个位置出现了假亮度变化(哪怕只有几个像素级别),要果断裁掉。

调出StarAlignment工具,以上面的一格Image20图为参考,把Image10对齐到Image20。其中的设置如图所示:

这里Generate出来的Mask以后消除接缝用得上。Frame Adaption的作用是把两张图在拼接边界上的亮度归一化。但这种归一化说的是平均亮度的对齐,但是局部亮度是不管的。换句话说,马赛克会出现接缝,是因为上下两张在做人工平场时,两张图像的公共位置的样条函数插值是不可能相同的。原始背景不同,踩点拟合出来的样条函数不同,做减法出来的结果也不尽相同。执行星点对齐之后会得到两张这样的图(记作A1和A2)和一张蒙板。先把蒙板反相(反相后,记作mask),这意味着我们最后的拼接是把 “A1裁掉接缝的部分” 替换到A2黑色的区域里。

理想状态下,假设我们根本没遇到光害,那么下一步只需要给A2图套上这张蒙板,在PixelMath里输入A1,用A1图替换调A2图上面这部分黑色的部分就完成马赛克了。而一般的马赛克教程到了这一步,大概也就会教你使用各式各样的内置工具把这两张图拼到一起了,例如GradientMergeMosaic。这样做对窄带摄影往往没什么问题,因为相当大一部分窄带片子是可以先拉伸再调色的。但是RGB/LRGB的片子不可以。RGB片子的光害比窄带大得多,在窄带片子上可行的做法,用在RGB上未必。

刚才说了,接痕的本质是重叠区域内两张图的亮度不一致。如果我们能够找出重叠区域内两张图的差异,就可以用图像的四则运算消除这些差异。在这个例子中,两张图的拼贴是A2盖住了A1。我们用图像的乘除法来重现这个区域内的差异:调出PixelMath,输入A1/(2*A2),计算结果(记作A0)如下:

我们的思路是用除法来生成两张图在接缝处的差异,然后再想办法补回这个差异。但如果考虑直接用A1/A2,图像的上半部分就是A1/0=正无穷,被PixelMath截断到1,接缝部分将会在1附近有一定的涨落,因为那是两个数值十分接近1的信号做除法,依然是有溢出最高亮度范围的风险。所以我们要考虑一个归一化因子,例如1/2,表达式变成A1/(2*A2),就可以避免溢出的风险。注意看上面这张图中,接缝部分的左边略微泛绿,右边略微泛红,这就是两张图在接缝处的微小差异。下面我们使用DBE工具对这个差异区域建模。既然这个接缝处的两图差异是分别对两张图做人工平场导致的,那么我们理所当然的需要再次搬出dbe工具。下面这一步是重中之重,对这张差异图做如下样貌的人工平场提取背景:

这里要先来重新讲解一下DynamicalBackgroundExtraction这个工具。想像一个平缓变化的二维曲面z=f(x,y),提一个问题:如果我们仅仅知道曲面上有限个点的函数值,能否推测出这个曲面最可能的原始面貌来?有办法,使用二维的样条函数插值。在不同位置选的点越多,插值的准确性就越高。所以做人工平场时,我们需要选择足够多的没有云气的点,理论上这些点构成的曲面就是光污染的函数。了解了DBE工具的工作原理,我们就可以用它来给这张差异图建模了。首先把一系列点踩在接缝处,这样接缝处两张图的差异就被抽象成了一个左边绿色右边红色的平滑曲面,tolerance设置成大于3倍sigma(图中是5),这样做可以扩大每个点内参与计算的像素的数量。但我们如果只采这些点,外面的黑色的白色会影响这个平滑曲面的准确性。DBE工具里有个Fix功能,它可以让当前选择的这个点,无论它的范围内像素亮度是多少,软件都不采纳,而是采取这个我们给输入的数值(0.5,0.5,0.5)。这样接缝处建模的图像就和外界有了比较平滑的过渡。接缝外面选点可以参考上图,只选一个象限内的点,其余的点通过对称性symmetric工具映射过去。

现在执行动态背景提取,生成一张图A3。上图做完DBE是这样的,因为做了stf显示有亿点夸张:

现在把A2套上蒙板mask,再调出pixelmath,输入A1作用上去,先看一下效果,可以看出箭头所指的地方是有接痕的。

现在我们只需要在pixelmath里输入表达式A1/(2*A3),接痕就消失了:

我们可以定性地理解一下:由于DBE是一种样条函数插值,所以可以认为DBE提取的就是某个位置附近的图像亮度。于是,在接缝附近的大尺度(低频率分量)上,A3=A1/(2*A2)。假设在接缝的某处,A1比A2亮,那么在接缝处A3的数值就会大于0.5,比如0.51。而接缝外A3的动态背景踩点值被我们强行设置成了0.5,于是这两个之间再做样条函数插值就会出现一个从0.5到0.51的渐变(总之是大于0.5的)。经过刚才的pixelmath操作,消除接痕之后的图,接缝外面位置的亮度就是A1/(2*A3)=A1/(2*(A1/(2*A2)))=A2。这相当于在低频率上用接缝内A2的亮度去代替接缝外A1的亮度,同时保证了接缝外部高频率上的信息还是A1的。

这就是某猫自己改动过的马赛克的消接缝办法了。比PixInsight官网上所写的办法容易操作得多。


Comment