关于mask tools的问题
最近想直观的对比两个视频的差异,想到了用mask tools来融合两个视频。具体来说,就是融合后的视频左边半部分采用视频a,右边采用视频b。然而在vapoursynth的官网并没有找到类似的接口,只看到了几个识别线条和纹理的接口(比如TCanny和AWarpSharp2)。想请大佬指点一下应该怎么做。本帖最后由 Blue_Smith 于 2017-6-12 13:54 编辑
目前想到了一个简单的办法,就是手动制作一个左半部分是纯黑、右半部分是纯白的 mask。实现如下:def Merge(clip1, clip2):
halfWidth = clip1.width >> 1
max = (1 << clip1.format.bits_per_sample) - 1
neutral = (max >> 1) + 1;
black = #black in 8 bit yuv pc range is
white = #white in 8 bit yuv pc range is
mask = core.std.BlankClip(clip1, width=halfWidth, height=clip1.height, color=black)
mask = core.std.AddBorders(mask, left=0, right=clip1.width-halfWidth, top=0, bottom=0, color=white)
merge = core.std.MaskedMerge(clip1, clip2, mask, planes=, first_plane=True)
return core.text.Text(merge, text="svp", alignment=7).text.Text(text="repeat count", alignment=9)
只是要实现这种效果的话,简单的用StackHorizontal把两个视频裁剪后合并到一起不就完了。 cylx 发表于 2017-6-12 14:34
只是要实现这种效果的话,简单的用StackHorizontal把两个视频裁剪后合并到一起不就完了。 ...
以前没注意StackHorizontal接口{:4_696:} cylx 发表于 2017-6-12 14:34
只是要实现这种效果的话,简单的用StackHorizontal把两个视频裁剪后合并到一起不就完了。 ...
而且实际上是想对中间部分做些简单的平滑过渡。直接暴力拼接的时候,如果生成帧和原帧不一样的话,中间会有一条线。
页:
[1]