其实就是为了减少mask范围,尽量防止对不该做aa的部分做aa才引入低参数的tcanny/msharpen的。如果不满意这两个的效果为啥不直接mtype设为3而还死守着tcanny呢?tcanny本身计算量就大,速度就不算快,上面这连带指数运算的两次lut都写出来了,莫非是习惯了0.5fps才这样做的么?prewitt本身不慢也就罢了,配合tcanny的话有指数运算的lut我绝对不接受,直接位操作完全可以取得同等或者更好的效果,而速度会快得多。另外在aa脚本里用lut,通常是为了将原来不到255的值填满255,而不需要留着类似128这样的值在里面,因为aa时的mask应该就是起到限定范围的作用,一般来说不用靠mask来限定aa强度(merge强度)。所以通常不要随便将不是以值扩大为目的的lut用于edge detect过程的调节,又慢而且效果还不一定比得上直接一个blur(除非需要taa(src=denoise().deband())之类taa的隐藏用法)。
detect前的Gaussian blur倒确实可以修改,不过到1.0甚至0.5的也太低了,很容易导致检测结果被重噪点所影响。降到1.2左右然后对检测出来的edge mask继续blur效果会更好些。
tcanny判断其实更偏向于重噪点的片子,这种片子噪点对大部分edge detect的影响很重。如果画面上本来就一马平川,请直接用mtype=3。因为防止误判是针对所有片子的情况,所以mtype是按最aggressive的重噪点来设置的。在taa里加preset="grain"/"animation"之类的参数又过于小题大作了,与其用preset也肯定不如直接改mtype方便。或者我应该在文档里写清楚到底哪种mask应该用于哪种类型的片子?taa本身不是能靠预设参数满足大部分情况的东西,譬如轻度aliasing根本不需要preaa,重度aliasing下aatype=1效果肯定不够。taa的使用很多情况下都需要tweak参数,根据情况,改mtype和改其他参数一样必要。
顺便v1.6.2
对tcanny出来的mask做inflate(隐藏版本:v1.6.1.1),
增加一个高速的lut来进一步处理tcanny的mask,
降低默认tcanny里Gaussian blur的sigma,
增加一个"mthr"参数来控制mask阈值,
增加一个"mclip"参数来自定义edge mask。