头像
Muonium
帖子: 42
注册时间: 2016-06-18 8:48

GradFun3 for VapourSynth v0.0.1

2017/4/9:
新版本不再在这里更新,而是在 muvsfunc 中。

这个移植尝试保持 Dither_tools 中的原生 GradFun3 看起来的样子,所以其中可能有不少过时的参数,如"lsb"。
实际使用中可能用 Frechdachs 的 fvsfunc 中的 GradFun3(mod) 会更加合适。

而 smode=0/3 的问题是,VS中几乎没有没有大 radius 的 box filter (据我所知,VS中只有 rgvs.RemoveGrain(20) 、手写的std.Convolution(matrix=[...]) 和 awarpsharp2 中的 aBlur())
(mdzz,我之前在想什么……现在在 radius <= 9 时可以使用 smode = 0/3,但论坛里的压缩包不再更新)。

原贴:

这是一个阉割版的GradFun3,只移植了smode=1和2,而smode=0和3由于SmoothGrad没有VS下的移植版,只好作罢。

下载地址:
GradFun3.zip
(10.38 KiB) 下载 159 次
v0.0.1 (2016/6/18)

脚本支持输入YUV、YCoCg、Gray类型的各种位深的clip,内部运算精度为16bits。
默认输出与源相同位深的clip。也可以使用"lsb=True"直接输出16bits的clip。

脚本移植自avs Dither_tools(http://avisynth.nl/index.php/Dither_tools)1.27.2 GradFun3及其附属函数。

脚本需要mvsfunc、havsfunc、Bilateral、DFTTest。
GradFun3(clip src, float thr, int radius, float elast, int mask, bool lsb, int smode, float thr_det, bint debug, float thrc, int radiusc, float elastc, int[] planes, clip ref)
参数方面基本与avs版相同,删除了"dthr", "wmin", "thr_edg", "subspl", "lsb_in"这些参数,并将"y"、"u"、"v"统一为VS下常用的"planes",如avs版的(y=3, u=3, v=3)相当于VS版的(planes=[0, 1, 2])。
smode默认为2(Bilateral)。

将脚本放在Python35\Lib\site-packages\下。
使用方法:

代码: 全选

import vapoursynth as vs
import GradFun3 as GF3

src = ...
db = GF3.GradFun3(src)

db.set_output()
由于本人水平有限,在制作过程中难免有纰漏,欢迎指教。

感谢Evalyn提供avs的mt_edge(mode="min/max")在VS下的移植。
感谢mawen1250告诉我GradFun3是一个脚本而不是一个滤镜。(我avs什么都不会真是不好意思……)
被噪点番支配的噩梦
被Waifu2x吊打的噩梦
不会写代码不会写脚本的我连咸鱼都不如了orz
eedi3好慢啊…………
为什么某SSIM的计算值大于1……
被一个月前自己写的脚本吊打,很爽
CropAbs上也能掉坑……
不要乱搞什么对数亮度作图…
魔幻炼丹主义

回到 “VapourSynth”