Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- вызов: ReplaceFramesSimple(t_checkmate(tfm(ovr="22.tfm",cthresh=2,mi=100)),mappings="[1273 1449] [1522 1836]")
- function t_checkmate( clip c, clip "cTFM", string "mappings", int "blksize", bool "showmask")
- {
- mappings=default(mappings,"")
- blksize=default(blksize,8)
- showmask=default(showmask,false)
- vCM=c.checkmate().repair(c)
- vMaskSkipCombed=c.mt_lutxy(c.daa(),"x y - abs",chroma="128").coloryuv(autogain=true,autowhite=true)
- vMaskSkipCombed=vMaskSkipCombed.mt_lutf(vMaskSkipCombed,"avg","x 16 < 255 y - y ?").mt_expand().mt_expand(chroma="128").removegrain(4)
- vMaskSkipCombed=vMaskSkipCombed.mt_logic(vMaskSkipCombed.trim(1,0),"min")
- c.mt_merge(vCM,vMaskSkipCombed.mt_lutf(vMaskSkipCombed,"min","x",offx=8,offy=3,w=c.width-16).bilinearresize(c.width,c.height,8,3,c.width-16).mt_binarize(250),true)
- cTFM=default(cTFM,c.tfm(cthresh=1,mi=100)).crop(16,16,-16,-16).addborders(16,16,16,16)
- vMA=manalyse(msuper(cTFM),blksize=blksize)
- vSC=MSCDetection(cTFM,vMA)
- vMM=cTFM.t_motionmask(2,blksize,MA=vMA)
- vMMinv=vMM.mt_invert().mt_logic(vMaskSkipCombed,"min").bilinearresize(ceil(float(c.width)/blksize/8)*4,ceil(float(c.height)/blksize/8)*4).mt_inpand().bicubicresize(c.width,c.height)
- mt_merge(mt_merge(c.checkmate(100,50,50),vMMinv,y=2,u=4,v=4),vMMinv.mt_logic(c.linemask().mt_expand().binomialblur(5,u=1,v=1),"and"),true)
- mt_merge(trim(1,0),mt_logic(vSC,vMM,"and"),true)
- mt_merge(trim(0,-1)+last,mt_logic(vSC.trim(1,0),vMM,"and"),true)
- mappings=="" ? last : c.ReplaceFramesSimple(last,mappings=mappings)
- showmask ? overlay(mt_lut(y=-255,u=0,v=0),0,0,vMMinv,0.5,mode="chroma") : last
- }
- function t_motionmask( clip c, int "tr", int "blksize", int "ml", bool "blur", clip "MA")
- {
- tr=default(tr,1)
- blksize=default(blksize,8)
- ml=default(ml,50)
- blur=default(blur,true)
- MA=default(MA,manalyse(msuper(c),blksize=blksize))
- c
- vMM=mmask(MA,ml=ml,kind=0,Ysc=255).bilinearresize(max(64,ceil(float(width)/blksize/2)*2),max(64,ceil(float(height)/blksize/2)*2)).mt_binarize(1).removegrain(4).mt_expand().mt_expand().bicubicresize(width,height)
- vMM=mt_logic(vMM,vMM.trim(1,0),"max")
- vMM=(tr>=2) ? mt_logic(mt_logic(vMM,vMM.trim(1,0),"max"),vMM.trim(0,-1)+vMM,"max") : vMM
- vMM=(tr>=3) ? mt_logic(mt_logic(vMM,vMM.trim(1,0),"max"),vMM.trim(0,-1)+vMM,"max") : vMM
- blur ? vMM.gaussianblur(blksize*2) : vMM
- }
- function linemask( clip c ) { mt_lutxy(c,c.mt_expand().mt_expand(),"x y - abs 8 - 7 <<") }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement