因为片子有挺重的halo,所以想用haf.DeHalo_alpha处理。虽然可以有效去除halo,但是直接轰似乎对整个画面的细节有很大的杀伤。于是,想用TCanny生成mask对非edge部分保护一下,但最后得到的画面中halo又回来了。。。
无mask:
使用mask:
我的vpy是这样写的:
import vapoursynth as vs
import havsfunc as haf
core = vs.get_core()
src = core.d2v.Source(r'H:\How.Mononoke.Hime.Was.Born\disc1\VTS_01_1.d2v')
src = core.tcomb.TComb(src)
src = haf.QTGMC(src,Preset='Medium',TFF=True)
src = core.std.CropRel(src,6,10,0,0)
mask = core.tcanny.TCanny(src)
edge = haf.DeHalo_alpha(src,ry=4)
final = core.std.MaskedMerge(src,edge,mask)
final.set_output()
我猜可能是TCanny生成的edge mask范围不够大,没有把halo罩住,但我不知道怎么把mask的范围弄大些。
于是只好来请教:
有没有什么办法让TCanny生成的mask能罩住halo?或者如何利用mask保护非edge部分?