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

フィールドの選択 or Mergeを自動で (その3)
※また誤記…。
v1=ConditionalFilter(clip,v1M,v1S,"AverageChromaV(v1aV)-AverageChromaV(v1bV)","<","1.0")
v2=ConditionalFilter(clip,v2M,v2S,"AverageChromaV(v2aV)-AverageChromaV(v2bV)","<","1.0")

v1=ConditionalFilter(clip,v1M,v1S,"Abs(AverageChromaV(v1aV)-AverageChromaV(v1bV))","<","1.0")
v2=ConditionalFilter(clip,v2M,v2S,"Abs(AverageChromaV(v2aV)-AverageChromaV(v2bV))","<","1.0")


やりたい事は概ね出来た感じです。
show=0,1,2
1と2でフレームの状態確認ができます。1はHistogramで強調したクリップを左右に並べる、2はどちらのフィールドを選んだか、またはブレンドしたかを表示する事ができます。

function FindField (clip clip,int F1,int F2,int S1,int S2,int "show") {
show=default(show,0)
v1a=((F2-F1)<2) ? clip.DoubleWeave().SelectEvery(5, F1) : clip.DoubleWeave().SelectEvery(10, F1,F1+5)
v1b=((F2-F1)<2) ? clip.DoubleWeave().SelectEvery(5, F2) : clip.DoubleWeave().SelectEvery(10, F1,F2)
v2a=clip.DoubleWeave().SelectEvery(5, S1)
v2b=clip.DoubleWeave().SelectEvery(5, S2)

global v1aV=v1a.ConvertToYUY2().anticomb(checkmode=true, pass1=16).ConvertToYV12()
global v1bV=v1b.ConvertToYUY2().anticomb(checkmode=true, pass1=16).ConvertToYV12()
global v2aV=v2a.ConvertToYUY2().anticomb(checkmode=true, pass1=16).ConvertToYV12()
global v2bV=v2b.ConvertToYUY2().anticomb(checkmode=true, pass1=16).ConvertToYV12()

v1a=(show==2) ? v1a.Subtitle("1 ",size=30,align=8) : v1a
v1b=(show==2) ? v1b.Subtitle(" 2",size=30,align=8) : v1b
v2a=(show==2) ? v2a.Subtitle("1 ",size=30,align=8) : v2a
v2b=(show==2) ? v2b.Subtitle(" 2",size=30,align=8) : v2b

v1M=Merge(v1a,v1b)
v2M=Merge(v2a,v2b)
v1S=ConditionalFilter(clip,v1a,v1b,"AverageChromaV(v1aV)","<","AverageChromaV(v1bV)")
v2S=ConditionalFilter(clip,v2a,v2b,"AverageChromaV(v2aV)","<","AverageChromaV(v2bV)")

v1=ConditionalFilter(clip,v1M,v1S,"Abs(AverageChromaV(v1aV)-AverageChromaV(v1bV))","<","1.0")
v2=ConditionalFilter(clip,v2M,v2S,"Abs(AverageChromaV(v2aV)-AverageChromaV(v2bV))","<","1.0")

v1=(F1==F2) ? v1a : v1
v2=(S1==S2) ? v2a : v2

v1=(show==1) ? StackHorizontal(Histogram(v1a,mode="luma"),Histogram(v1b,mode="luma")).HorizontalReduceBy2.\
ScriptClip("""subtitle(string(AverageChromaV(v1aV))+" : "+string(AverageChromaV(v1bV)),align=8)""") : v1
v2=(show==1) ? StackHorizontal(Histogram(v2a,mode="luma"),Histogram(v2b,mode="luma")).HorizontalReduceBy2.\
ScriptClip("""subtitle(string(AverageChromaV(v2aV))+" : "+string(AverageChromaV(v2bV)),align=8)""") : v2
clip=Interleave(v1,v2)
return clip
}
スポンサーサイト

コメント

コメントの投稿














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


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

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