分页: 1 / 1

求VS下masktools用法

发表于 : 2016-04-09 11:40
lwjkk666
{:doge} 啃了VS官网介绍,有部分是有的,maskedmerge,diff,但是想做个自适应deband mask,当中AVS写法是src8.RemoveGrain(20, -1).mt_lut("x 16 - 255 * 219 /")其实是masktools教程那个范例,但是不清楚如何转换成vs版的写法,望指教指教。
还有一个问题就是那些edgemask那些在VS版本下都是可以接受16bit输入的了吗?

Re: 求VS下masktools用法

发表于 : 2016-04-09 17:48
mawen1250
src8.rgvs.RemoveGrain([20, 0]).std.Expr(["x 16 - 255 * 219 /", ""])
优化表达式
src8.rgvs.RemoveGrain([20, 0]).std.Expr(["x 16 - {} *".format(255/219), ""])

绝大部分滤镜都支持16bit、4:4:4,一部分滤镜支持32bit float。

Re: 求VS下masktools用法

发表于 : 2016-04-09 22:10
lwjkk666
谢谢mawen大~原来是用expr

AVS:
Emask = src8.mt_edge("sobel", 7, 20).mt_inflate()
Lmask = src8.RemoveGrain(20, -1).mt_lut("x 16 - 255 * 219 /")
Final_mask = mt_logic(Emask, Lmask, "max")
VS:
Emask = core.generic.Sobel(src16, min=5, max=7, planes=0)
Lmask = core.rgvs.RemoveGrain(src16,[20, 0])
Lmask= core.std.Expr(Lmask,["x 16 - 255 * 219 /", ""])
Final_mask继续肯文档 {:xiaocry}

Re: 求VS下masktools用法

发表于 : 2016-04-09 23:48
lwjkk666
啃了一会文档,终于移植过来,不知道这样写有没有写对,预览没有报错的
Emask = core.generic.Sobel(AA16, min=7, max=20, planes=0)
Lmask = core.rgvs.RemoveGrain(AA16,[20,0]).std.Expr(["x 16 - 255 * 219 /", ""])
Fmask = core.std.Expr([Emask,Lmask],['x y max'])