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

フィールドの選択 or Mergeを自動で (その5)
function VariableMerge

汚いフィールドを捨てるよりも、少しだけブレンドしたほうが良い結果が出たので
MergeフィルタのWeightを自動で調整する関数を作りました。

…結構うまいことできたと思ったんですが、Itsで使うとグローバル変数+条件フィルタから呼び出したフレームがズレてしまう事がわかったので、自分の環境では使えませんでした。
どうすれば…



function VariableMerge (clip clip,int step,int f1,int f2,int "show") {
show=default(show,0)

global f1c= (show==2) ? clip.SelectEvery(step,f1).Subtitle("1 ",size=30,align=8) : clip.SelectEvery(step,f1)
global f2c= (show==2) ? clip.SelectEvery(step,f2).Subtitle(" 2",size=30,align=8) : clip.SelectEvery(step,f2)

global f1V=f1c.ConvertToYUY2().anticomb(checkmode=true, pass1=16).ConvertToYV12()
global f2V=f2c.ConvertToYUY2().anticomb(checkmode=true, pass1=16).ConvertToYV12()

clip= ScriptClip(f1c,"Merge(f1c,f2c,Abs(min(4,max(-4,(AverageChromaV(f1V)-AverageChromaV(f2V))))/10+0.5))")

global MV=clip.ConvertToYUY2().anticomb(checkmode=true, pass1=16).ConvertToYV12()

clip=(show==1) ? StackHorizontal(f1V,f2V).ReduceBy2.StackVertical(ReduceBy2(MV).AddBorders(clip.width/4,0,clip.width/4,0)).\
ScriptClip("""subtitle(string(AverageChromaV(f1V)-128)+" , "+string(AverageChromaV(f1V)-AverageChromaV(f2V))+" , "+string(AverageChromaV(f2V)-128),align=8)""").\
ScriptClip("""subtitle(string(AverageChromaV(MV)-128),align=8,y=30)""").\
ScriptClip("""subtitle("Merge Weight = "+string(Abs(min(4,max(-4,(AverageChromaV(f1V)-AverageChromaV(f2V))))/10+0.5)),align=8,y=60)""") : clip

return clip
}
スポンサーサイト

コメント

コメントの投稿














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


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

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