版面规则
提问时请注意:尽量详细描述操作过程、AVS脚本内容等,最好能写出片名,只贴图有时无法看出问题原因。
提示:发布原创内容请尽量使用附件上传。使用网盘会出现过期失效的问题,请注意。
头像
yabbay
帖子: 62
注册时间: 2012-05-31 10:39
来自: Tokyo

Re: 【教程】 MaskTools入門教程

{:cat_4} 偶错了 承认看完一遍后自己看的有点混淆
顺便问一下有没有利用mask来很好地选光选出halo区域对其进行dehalo的依据
一直用dehalo_alpha感觉有点地图炮
          .∧__,,∧
         ( ´・ω・`) ブルブル
          (つまくら) アリと明日(ant and tomorrow)
          `u―u´ レッツ・エッグ・ペイン(Let`s egg pain)
头像
06_taro
核心会员
核心会员
帖子: 998
注册时间: 2010-09-22 18:32
来自: United Kingdom
联系: 网站

Re: 【教程】 MaskTools入門教程

mt_lutxy( mt_expand, mt_inpand, "x y - 1.4 ^" ) 之類的,方法很多…
つまんねー事聞くなよ!

I, personally, for me, believe (obviously sometimes) that my OS choice is right. That's me. I'm not telling you that you should believe it. Learn the facts, and the origins behind the facts, and make up your own damn mind. That's why you have one. (source)

Follow me: @06_taro

304——
为纪念伟大的宇宙史上最强压制304先生,联合国教科文组织决定,将每年的第304天,即平年的10月31日或者闰年的10月30日,定为世界304日。
头像
zhongpang
帖子: 93
注册时间: 2011-10-23 20:45

Re: 【教程】 MaskTools入門教程

想用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
核心会员
核心会员
帖子: 670
注册时间: 2011-07-24 20:33

Re: 【教程】 MaskTools入門教程

zhongpang 写了:想用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_inpand
头像
zhongpang
帖子: 93
注册时间: 2011-10-23 20:45

Re: 【教程】 MaskTools入門教程

mawen1250 写了:
zhongpang 写了:想用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_inpand
感谢指点,请问有什么方法能设置范围吗?
扩大范围只有多次使用mt_inpand?
头像
06_taro
核心会员
核心会员
帖子: 998
注册时间: 2010-09-22 18:32
来自: United Kingdom
联系: 网站

Re: 【教程】 MaskTools入門教程

mawen1250 写了:上面的教程里不是都说到了?
mt_inpand(mode=mt_square(radius))
也可以是mt_circle之類的…
根據“一定範圍”的定義使用
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]
つまんねー事聞くなよ!

I, personally, for me, believe (obviously sometimes) that my OS choice is right. That's me. I'm not telling you that you should believe it. Learn the facts, and the origins behind the facts, and make up your own damn mind. That's why you have one. (source)

Follow me: @06_taro

304——
为纪念伟大的宇宙史上最强压制304先生,联合国教科文组织决定,将每年的第304天,即平年的10月31日或者闰年的10月30日,定为世界304日。
头像
Holy
核心会员
核心会员
帖子: 235
注册时间: 2010-09-24 9:28

Re: 【教程】 MaskTools入門教程

碼字+貼圖辛苦了 m(_ _)m
图片
头像
zhongpang
帖子: 93
注册时间: 2011-10-23 20:45

Re: 【教程】 MaskTools入門教程

06_taro 写了:
mawen1250 写了:上面的教程里不是都说到了?
mt_inpand(mode=mt_square(radius))
也可以是mt_circle之類的…
根據“一定範圍”的定義使用
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]
感谢指点,请问有没有在16bit下做差的工具呢?
目前只有对msb和lsb分别做差再相加

代码: 全选

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)
但是这样差值的范围好像不容易控制的样子
上次由 zhongpang 在 2012-06-25 12:55,总共编辑 1 次。
头像
yabbay
帖子: 62
注册时间: 2012-05-31 10:39
来自: Tokyo

Re: 【教程】 MaskTools入門教程

刚开始读第二遍 又有一个小白问题
当原文中
mt_merge(dfttest,g_mask,luma=true)
这样调用merge的时候貌似只写了2个clip,
函数怎么自动判断哪个是clip a 哪个是clip b 哪个是clip mask? {:cat_13}
          .∧__,,∧
         ( ´・ω・`) ブルブル
          (つまくら) アリと明日(ant and tomorrow)
          `u―u´ レッツ・エッグ・ペイン(Let`s egg pain)

回到 “AviSynth”