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

フィールドの選択 or Mergeを自動で (その8)
ノイズのマスクをMasktoolsのCombMaskに変更しました。
回りくどい処理がシンプルになったので、多少軽くなったかもしれません。

CombMask.dllを使おうかと思いましたがAvisynth2.6用のフィルタだったので保留。


function FlexibleMerge (clip clip1,clip clip2,int "level",int "level2",int "mode",int "x",int "y",int "thr",int "show") {
function Combcheck (clip clip) {clip.ConvertToYUY2().anticomb(checkmode=true, pass1=16).ConvertToYV12()}
thr=default(thr,10)
level=default(level,128)
level2=default(level2,230)
mode=default(mode,0)
cx=default(x,0)
cy=default(y,0)
show=default(show,0)
clip2=(mode==0) ? clip2 : Overlay(clip1,clip2,x=cx,y=cy)

Mask1=CombMask(clip1, thY1 = thr, thY2 = thr)
Mask2=CombMask(clip2, thY1 = thr, thY2 = thr)
mask3=invert(mask2).Grayscale().ConvertToRGB32()#2がきれい
mask4=Logic(mask2,mask1,mode="andn").Grayscale().ConvertToRGB32()#1にノイズ、2はきれい

CleanMask=Mask(clip2.ConvertToRGB32("Rec709"),Mask3)
NoiseMask=Mask(clip2.ConvertToRGB32("Rec709"),Mask4)
clip=layer(clip1.ConvertToRGB32("Rec709"),CleanMask,op="add",level=level)
clip=layer(clip,NoiseMask,op="add",level=level2)
clip=(show==0) ? clip.ConvertToYV12(matrix="Rec709") :
\(show==1) ? Combcheck(clip) : StackHorizontal(Combcheck(clip1),Combcheck(clip2)).ReduceBy2.StackVertical(ReduceBy2(Combcheck(clip)).AddBorders(clip.width/4,0,clip.width/4,0))
return clip
}
スポンサーサイト

コメント

コメントの投稿














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


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

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