查看: 954|回复: 1

[资源] 「新 SuperSAI」ImageResizer 修改版

[复制链接]

40

主题

817

回帖

14

精华

版主

经验
8436
硬币
1413 枚

赞助用户永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第五届MW杯亚军对不起,小姐盲猜大王数字君X68数字君X68数字君X78

发表于 2023-6-27 18:08:58 | 显示全部楼层 |阅读模式
Super SAI 应该是目前看来用于放大 16x 素材最接近 MF 风格的方法,然而用 ImageResizer 调用该方法得到的结果总是会产生莫名其妙的锯齿
好在这是个开源项目,于是我研究了一下 Super SAI 算法相关的源码,发现一个严重的问题:

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

为此,我引入了一个 alpha threshold 参数,作为判定相似的条件:

                               
登录/注册后可看大图


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

最后附一张修改后的 SuperSAI 效果:

                               
登录/注册后可看大图


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

已上传至 http://dasasdhba.ysepan.com,「MF 做关常用工具」
尽管这个项目是 GPL 协议,但我懒得挂 GitHub 上了,真有人想要源码可以问我要((((

评分

参与人数 2经验 +6 硬币 +4 收起 理由
绿色的糖果 + 3 + 2 终于有人修了这个bug(
囿里有条小咸鱼 + 3 + 2 不错

查看全部评分

Moonstruck Blossom
个人网站:dasasdhba.github.io

40

主题

817

回帖

14

精华

版主

经验
8436
硬币
1413 枚

赞助用户永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第五届MW杯亚军对不起,小姐盲猜大王数字君X68数字君X68数字君X78

 楼主| 发表于 前天 12:14 | 显示全部楼层
Update: 现将上述内部参数作为可调项放出

                               
登录/注册后可看大图

所有参数取值范围均为 0-255,Alpha 参数是我新增的(原因见一楼),若想得到与原版完全一致的行为,置 Alpha 参数为 255 即可。
Moonstruck Blossom
个人网站:dasasdhba.github.io
您需要登录后才可以回帖 登录 | 创建账户

本版积分规则