偶错了 承认看完一遍后自己看的有点混淆
顺便问一下有没有利用mask来很好地选光选出halo区域对其进行dehalo的依据
一直用dehalo_alpha感觉有点地图炮
mt_inpandzhongpang 写了:想用diff做一个mask
diff = mt_makediff(b_to_16bit_lsb, d_to_16bit_lsb,u=0,v=0)
diff_mask = diff.mt_lut("x 128 - abs").mt_binarize(64,upper=true)
请问有没有办法让这个diff_mask里的(0,0,0)的点以一定范围扩散?
也就是让(0,0,0)的点周围一定范围的区域都变成(0,0,0)?
感谢指点,请问有什么方法能设置范围吗?mawen1250 写了:mt_inpandzhongpang 写了:想用diff做一个mask
diff = mt_makediff(b_to_16bit_lsb, d_to_16bit_lsb,u=0,v=0)
diff_mask = diff.mt_lut("x 128 - abs").mt_binarize(64,upper=true)
请问有没有办法让这个diff_mask里的(0,0,0)的点以一定范围扩散?
也就是让(0,0,0)的点周围一定范围的区域都变成(0,0,0)?
也可以是mt_circle之類的…mawen1250 写了:上面的教程里不是都说到了?
mt_inpand(mode=mt_square(radius))
感谢指点,请问有没有在16bit下做差的工具呢?06_taro 写了:也可以是mt_circle之類的…mawen1250 写了:上面的教程里不是都说到了?
mt_inpand(mode=mt_square(radius))
根據“一定範圍”的定義使用
見12. 輔助函數——鄰域字符串生成工具這章
補充一下,inpand之後mask裡所有暗部都是擴張的,如果您只需要值為0的點擴張,而其他情況不擴張,且使用的鄰域像素字符串為s_neighbourhood的話:
[syntax lang="avisynth"]mt_lutsx(diff_mask, diff_mask, diff_mask, mode="min", pixels=s_neighbourhood, expr="y 0 == 0 x ?")
# min(neighbourhood) == 0 ? 0 : x[/syntax]
代码: 全选
diff_lsb = mt_lutxy(dither_src_AA_16_lsb, banding_src_AA_16_lsb,u=0,v=0,"x y - abs").mt_binarize(threshold=range1,upper=false)
diff_msb = mt_lutxy(dither_src_AA_16_msb, banding_src_AA_16_msb,u=0,v=0,"x y - abs").mt_binarize(threshold=range2,upper=false)
diff_mask = mt_lutxy(diff_lsb, diff_msb,u=0,v=0,"x y +").mt_binarize(threshold=0,upper=true)
diff_mask16 = StackVertical(diff_mask, diff_mask)
这样调用merge的时候貌似只写了2个clip,mt_merge(dfttest,g_mask,luma=true)