にわとり遊び
PC関連とエンコードの覚書き
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

フィールドの選択 or Mergeを自動で (その2)
※誤字を訂正。

前のがややこしかったので使う気が起こらず、作り直しました。
avsに貼り付けたりする部分を統合。

DoubleWeave().SelectEvery(5, 0, 2) または DoubleWeave().SelectEvery(5, 0, 3)
で間引くところを
FindField(last,0,0,2,3,false)
と記述します。
F1とF2,S1とS2がそれぞれDoubleWeave().SelectEvery(5, F, S)となり、
ノイズの量に応じてどちらかを選択し、ノイズが少ない場合はブレンドします。


function FindField (clip clip,int F1,int F2,int S1,int S2,bool "show") {
show=default(show,false)
v1f1=((F2-F1)<2) ? clip.DoubleWeave().SelectEvery(5, F1) : clip.DoubleWeave().SelectEvery(10, F1,F1+5)
v1f2=((F2-F1)<2) ? clip.DoubleWeave().SelectEvery(5, F2) : clip.DoubleWeave().SelectEvery(10, F1,F2)
v2f1=clip.DoubleWeave().SelectEvery(5, S1)
v2f2=clip.DoubleWeave().SelectEvery(5, S2)
global v1f1_combed=v1f1.ConvertToYUY2().anticomb(checkmode=true, pass1=16).ConvertToYV12()
global v1f2_combed=v1f2.ConvertToYUY2().anticomb(checkmode=true, pass1=16).ConvertToYV12()
global v2f1_combed=v2f1.ConvertToYUY2().anticomb(checkmode=true, pass1=16).ConvertToYV12()
global v2f2_combed=v2f2.ConvertToYUY2().anticomb(checkmode=true, pass1=16).ConvertToYV12()
CF1=ConditionalFilter(clip,v1f1,v1f2,"v1f1_combed.AverageChromaV()","<","v1f2_combed.AverageChromaV()",show)
CF2=ConditionalFilter(clip,v2f1,v2f2,"v2f1_combed.AverageChromaV()","<","v2f2_combed.AverageChromaV()",show)
v1Merge=(show) ? Merge(v1f1,v1f2).subtitle("Merge") : Merge(v1f1,v1f2)
v2Merge=(show) ? Merge(v2f1,v2f2).subtitle("Merge") : Merge(v2f1,v2f2)
v1=(F1==F2) ? v1f1 : ConditionalFilter(clip,CF1,v1Merge,"Abs(v1f1_combed.AverageChromaV()-v1f2_combed.AverageChromaV())",">","1.0")
v2=(S1==S2) ? v2f1 : ConditionalFilter(clip,CF2,v2Merge,"Abs(v2f1_combed.AverageChromaV()-v2f2_combed.AverageChromaV())",">","1.0")
c=Interleave(v1,v2)
return c
}
スポンサーサイト

コメント

コメントの投稿














管理者にだけ表示を許可する


トラックバック
トラックバック URL
http://sasamisi.blog24.fc2.com/tb.php/293-f23813d6
この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。