dasasdhba 发表于 2023-6-27 18:08:58

「新 SuperSAI」ImageResizer 修改版

Super SAI 应该是目前看来用于放大 16x 素材最接近 MF 风格的方法,然而用 ImageResizer 调用该方法得到的结果总是会产生莫名其妙的锯齿
好在这是个开源项目,于是我研究了一下 Super SAI 算法相关的源码,发现一个严重的问题:

这个算法中有一个很重要的环节,是判断某个像素点与周围的像素点是否「相似」,而判断是否相似的方法则是比较 YUV 值
然而,这样的判断方式忽略了透明度,而完全透明度的像素,其本身恰好是「黑色」,即 RGBA:(0,0,0,0)
这直接导致,算法认为:黑色像素与透明像素相似
于是,对于那些与透明区域接触的偏黑的像素,算法就出现了错误,进而产生莫名其妙的锯齿

为此,我引入了一个 alpha threshold 参数,作为判定相似的条件:
https://s1.ax1x.com/2023/06/27/pCaIXb6.png

此外,我还注意到一些明度差异不大的区域可能也会有锯齿现象,为了缓解这类现象,我也尝试调整了 luminance threshold

最后附一张修改后的 SuperSAI 效果:
https://s1.ax1x.com/2023/06/27/pCao98H.png

题外话:这个陈年项目的环境是 VS2010,为了让我的 VS2019 能顺利编译,也颇费了我一番功夫,软件开发环境这事真是折腾啊。。。

已上传至 http://dasasdhba.ysepan.com,「MF 做关常用工具」
尽管这个项目是 GPL 协议,但我懒得挂 GitHub 上了,真有人想要源码可以问我要((((
页: [1]
查看完整版本: 「新 SuperSAI」ImageResizer 修改版