巡星客
古法马赛克——当脚本做完依旧一坨的最后方案
图像后期精选2026年4月1日

古法马赛克——当脚本做完依旧一坨的最后方案

马赛克作为画幅不够大的解决方案,被广泛运用,从科研到创作都有涉及。

在Pi中,默认的马赛克Process并不能满足绝大多数马赛克的需求,非常容易出现星点不自然(黑坑)衔接明度梯度等问题。由于算法的劣势,又有很多新的算法被开发,其中最好用、广泛的就是Photometricmosaic的script。这个script能解决大多数马赛克的问题,但是,有些特殊的情况下,这种方案会完全没办法正常运行

1、衔接区域有高光

这会导致背景计算的参数出现较大偏差,从而出现明显梯度

2、两个区域为角对角式的马赛克

这会导致马赛克的区域overlap计算出错,从而截去需要的信号

看下这个素材

在Solve好坐标后,用Mosaic by coordinates 创建的两张registered过的图像,如下所示

Image05.jpg

如果直接用Pmm的话,效果如下

Image18.jpg

无论怎么调参数,因为核心在overlap,明度总是不对的

难道这个素材就这么丢了吗?

no,我为这个素材开发了一个新的方法,只要几个简单步骤,就能让这个素材死而复生——古法拼接

1、打开rangemask,在最后一个小数点把0换成1,生成一张区域蒙版如下

Image19.jpgImage22.jpg

然后用max函数生成一张重叠图

函数如下max(a,b)

a、b为rangemask

Image25.jpg

在这张图上进行裁切去黑边,然后将裁切的process应用于两张原始图和mask图

之后,再用pixelmath的min函数,生成一张重叠区域的rangemask

函数为min(a,b)

然后看下重叠部分的尺寸,这边的素材是从3600到4000左右,也就是400pixel的大小

之后打开convolution

因为convolution的算法,其他默认,只改变StdDev的话,convolution的范围是从边界向上2倍到3倍左右的范围被影响,向下3到4倍被影响,所以400pixel的话,100pixel就足够了,这个Stddev可以按照Overlap的大小来调整

Image27.jpg

之后打开Histogram Transformation,或者用Pixelmath 的truncate的函数,这里就用HT来演示

将Shadows设置为0.5,这个就是原来边界的值,这样可以防止边界干扰下方图片形成线条状的Error

然后看Overlap的最高点的值,这个值输入Highlights,保证原有的图不被拼的图干扰

Highlight也可以图方便多截取一点,只是可能会稍不自然一些

Image29.jpg

这里Highlight没必要裁切,因为接壤处mask的值已经是1了,就不管了

之后给图像应用蒙版并反相,如图

Image30.jpg

之后,可以用上一期Ha同步R的方法同步明度信号,但我更推荐用DNA linearfit做匹配,在匹配前一定要把两边都做好DBE,防止出现拼接的地方的不自然

然后就要请出DNA linearfit这个插件来同步两个通道的明度了

Image32.jpg

然后就是拿出Pixelmath,输入下方要拼接的文件名,相当于做一个带蒙版的图像替换

在图像替换的过程中,还要加入一个系数,因为DNA linearfit没法完全完美的匹配,我这个里面的系数是x-0.00005左右,x是要拼的图,我没微调,反正能看不出接缝即可

最终效果如下

Image48.jpg

相比较之下,手搓简直完美

还有就是RGB要注意要在MBC之前先去边,然后MBC之后再次去边才行,否则容易出现断口

然后这个也同样适用于对角线马赛克或者多素材马赛克,只要能造出mask,想怎么搓都行

评论 (0)

暂无评论
古法马赛克——当脚本做完依旧一坨的最后方案 | iStarShooter 巡星客