版面规则
提问时请注意:尽量详细描述操作过程、AVS脚本内容等,最好能写出片名,只贴图有时无法看出问题原因。
提示:发布原创内容请尽量使用附件上传。使用网盘会出现过期失效的问题,请注意。
头像
06_taro
核心会员
核心会员
帖子: 998
注册时间: 2010-09-22 18:32
来自: United Kingdom
联系: 网站

FilterCompare v0.1 - 方便对比处理前后画面的脚本

其实两个画面对比早已有了内置的Compare、桜ノ雨大大的MoMoE之类的工具,只不过俺这种本本的小屏幕做双屏显示根本看不出东西来,而且个人如果一定要比单帧的话还是喜欢同一帧处理前和处理后的分别显示,利用人眼对动态更敏感的特点比较差别(其实一直觉得单帧比较意义不大,只不过最近比较各种debanding效果还是希望找个方便点的东西囧……

单个脚本没有其他工具要求,输入的两个视频满足avisynth的Splice处理的条件就行。

用法:
FilterCompare(clip input, clip filtered, int "frame", bool "info")

input:必须的参数,滤镜处理前的clip
filtered:必须的参数,处理后的clip
frame:指定需要对比的单帧帧号,非必须参数。如果不设置的话为按照每一帧先处理前的再处理后的交替出现的帧序输出(总帧数变成两倍),即 input_0、filtered_0、input_1、filtered_1、input_2、filtered_2、... 这样的顺序,无默认值。
info:左上方显示Info()的内容,右上、左下、右下显示Original/Filtered的字样方便知道是哪一帧。默认false即不显示。

例1:

代码: 全选

AviSource(xxx.avi)
#总帧数为100帧

FilterCompare( blur(0.5), info=true )
#显示原始画面与blur()处理画面的对比,每一帧的处理前后画面交替出现,开启info显示,总帧数为200帧
例2:

代码: 全选

AviSource(xxx.avi)
FilterCompare( blur(0.5), 50 )  #显示源与处理后的第50帧画面的对比,总帧数为2帧
其实很容易修改成多个filter画面对比的,反正Interleave的参数容量很大的= =懒得搞,需要的自己改去……

下载:
MF:FilterCompare_v0.1.avsi
115:FilterCompare_v0.1.avsi
或者直接复制脚本保存为avsi:

代码: 全选

Function FilterCompare(clip input, clip filtered, int "frame", bool "info"){

  Assert( input.width==filtered.width && input.height==filtered.height, 
        \ "FilterCompare: two clips must have same resolution!!" )
  
  info     = Default( info, false )
  w        = input.width
  h        = input.height
  
  input    = info ? input.Info()
                        \.Subtitle("Original", x=w-62, y=1)
                        \.Subtitle("Original", x=w-62, y=h-21)
                        \.Subtitle("Original", x=3, y=h-21)
           \      : input
  filtered = info ? filtered.Info()
                           \.Subtitle("Filtered", x=w-60, y=1)
                           \.Subtitle("Filtered", x=w-60, y=h-21)
                           \.Subtitle("Filtered", x=3, y=h-21)
           \      : filtered
  
  return !Defined(frame) ? Interleave(input, filtered) : 
                         \ (frame==0) ? input.Trim(0, -1)++filtered.Trim(0, -1) :
                         \ input.Trim(frame, frame)++filtered.Trim(frame, frame)
}
つまんねー事聞くなよ!

I, personally, for me, believe (obviously sometimes) that my OS choice is right. That's me. I'm not telling you that you should believe it. Learn the facts, and the origins behind the facts, and make up your own damn mind. That's why you have one. (source)

Follow me: @06_taro

304——
为纪念伟大的宇宙史上最强压制304先生,联合国教科文组织决定,将每年的第304天,即平年的10月31日或者闰年的10月30日,定为世界304日。

回到 “AviSynth”