Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def csharpmod(flt, src, strength=1, prefilter=0, darkened_merge=1, brightened_merge=1, darkening_limit=None, brightening_limit=None):
- pre = flt
- if prefilter >= 0:
- pre = haf.MinBlur(pre, rad=prefilter)
- if 1 < strength < 2:
- blur = pre.std.Convolution([1]*9)
- else:
- blur = pre.rgvs.RemoveGrain(11)
- for x in range(strength-1):
- blur = blur.std.Convolution([1]*9)
- diff = core.std.MakeDiff(pre, blur)
- if darkened_merge < 1:
- if darkened_merge <= 0:
- darkening_limit = 0
- else:
- diff = core.std.Expr(diff, 'x 32768 < x {} * {} + x ?'.format(darkened_merge, 32768 * (1.0 - darkened_merge)))
- if brightened_merge < 1:
- if brightened_merge <= 0:
- brightening_limit = 0
- else:
- diff = core.std.Expr(diff, 'x 32768 > x {} * {} + x ?'.format(brightened_merge, 32768 * (1.0 - brightened_merge)))
- clamp_expr = ' x '
- if darkening_limit is not None:
- clamp_expr += ' {} max '.format(32768 - round(darkening_limit * 256))
- if brightening_limit is not None:
- clamp_expr += ' {} min '.format(32768 + round(brightening_limit * 256))
- if darkening_limit is not None or brightening_limit is not None:
- diff = core.std.Expr(diff, clamp_expr)
- sharp = core.std.MergeDiff(flt, diff)
- if isinstance(src, vs.VideoNode):
- clips = [sharp, flt, src]
- min_src, max_src = [' z '] * 2
- else:
- clips = [sharp, flt] + src
- abc= [' {} '.format(x) for x in 'zabcdefghijklmnopqrstuvw'][:len(src)]
- mi = [' min '] * ( len(src) - 1 )
- ma = [' max '] * ( len(src) - 1 )
- min_src = ''.join(abc + mi)
- max_src = ''.join(abc + ma)
- return core.std.Expr(clips, 'x y {} min max y {} max min'.format(min_src, max_src))
Add Comment
Please, Sign In to add comment