Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ######
- ###
- ### HQDering mod v0.3 by mawen1250
- ###
- ### Requirements: masktools v2.0a48, RemoveGrain v1.0pre, dfttest v1.9.2
- ###
- ### Applies derining by using a smart smoother near edges (where ringing occurs) only.
- ###
- ######
- Function HQDeringmod(clip input, clip "smoother", int "mthr", int "mrad", float "sigma", float "sigma2", int "sbsize", int "sosize") {
- mthr = Default(mthr, 80 ) # threshold of edge mask, lower value means more aggressive processing.
- mrad = Default(mrad, 2 ) # radius of ring mask, higher value means more aggressive processing.
- sigma = Default(sigma, 64.0 ) # dfttest: sigma.
- sigma2 = Default(sigma2, sigma/8) # dfttest: sigma2.
- sbsize = Default(sbsize, 4 ) # dfttest: length of the sides of the spatial window.
- sosize = Default(sosize, 3 ) # dfttest: spatial overlap amount.
- smoothed = Defined(smoother) ? smoother : input.dfttest(Y=true, U=false, V=false, sigma=sigma, sigma2=sigma2, sbsize=sbsize, sosize=sosize, tbsize=1, lsb_in=false, lsb=false)
- prewittm = input.mt_edge("prewitt", mthr, 255, 0, 0, V=1, U=1)
- fmask = mt_hysteresis(prewittm.RemoveGrain(4, -1), prewittm, U=1, V=1)
- omask = mrad > 1 ? fmask.mt_expand(U=1, V=1) : fmask
- omask = mrad > 2 ? omask.mt_expand(U=1, V=1) : omask
- omask = mrad > 3 ? omask.mt_expand(U=1, V=1) : omask
- omask = mrad > 4 ? omask.mt_expand(U=1, V=1) : omask
- imask = fmask.mt_inflate(U=1, V=1).mt_inpand(U=1, V=1)
- ringmask = omask.mt_lutxy(imask.mt_invert(U=1, V=1), "x y * 255 /", U=1, V=1)
- return mt_merge(input, smoothed, ringmask, luma=false, Y=3, U=2, V=2)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement