Photo Gallery

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
通常、地上デジタル放送や BS デジタル放送などの録画データには、左右に小さなクロップ領域(黒帯)が存在します。

放送局によってはクロップ領域が大きい場合もありますし、同じ局でも実は時々によって領域面積が微妙に違う場合があります。
※関西地方の MBS は右側のクロップ領域が若干大きい


ユリ熊嵐 BS11 #02
ep02c.png

ユリ熊嵐 BS11 #03
ep03c.png


この領域の幅が大きいと本来映るべき映像が削られるので、小さい事に越したことはありません。
そこで、余分に黒帯がある場合、別の映像ソースからその部分だけ持ってきて、くっ付けてしまおうというのが今回ご紹介する関数です。



function RepairRight(clip mainClip, clip rightClip, int "px", bool "debug") {
px=default(px,8)
debug=default(debug,false)
rightClip=rightClip.Crop(mainClip.width-px,0,0,0).AddBorders(0,0,mainClip.width-px,0)
rightClip=debug?rightClip.ColorYUV(gain_v=192):rightClip
return StackHorizontal(mainClip.Crop(0,0,-px,0),rightClip).Crop(0,0,mainClip.width,0)
}



■ 関数使用後


code.gif

ep02-03c.png

3 話の映像ソースをベースとして、右側の領域だけ 2 話で補うことができました。




■ 領域幅の確認と調整


code2.gif

ep02-03c2.png

領域幅の調整は px 引数で出来ます。
領域のプレビューは debug=true にしてください。



(C)2015 イク二ゴマモナカ/ユリクマ二クル


スポンサーサイト
1621.jpg


並べて表示する関数の汎用版です。
2 ~ 6 本のクリップまで対応します。
オマケのオプションでリサイズと枠線付加があります。

それだけ…

function ShowVersions(clip a, clip b, clip "c", clip "d", clip "e", clip "f", bool "border", bool "resize") {
a=default(a, BlankClip(a, length=-1))
b=default(b, BlankClip(a, length=-1))
c=default(c, BlankClip(a, length=-1))
d=default(d, BlankClip(a, length=-1))
e=default(e, BlankClip(a, length=-1))
f=default(f, BlankClip(a, length=-1))
resize=default(resize, false)
border=default(border, true)
a=border?a.Crop(2,2,-2,-2).AddBorders(2,2,2,2):a
b=border?b.Crop(2,2,-2,-2).AddBorders(2,2,2,2):b
c=border?c.Crop(2,2,-2,-2).AddBorders(2,2,2,2):c
d=border?d.Crop(2,2,-2,-2).AddBorders(2,2,2,2):d
e=border?e.Crop(2,2,-2,-2).AddBorders(2,2,2,2):e
f=border?f.Crop(2,2,-2,-2).AddBorders(2,2,2,2):f
view= \
f.FrameCount==-1? \
e.FrameCount==-1? \
d.FrameCount==-1? \
c.FrameCount==-1? \
StackHorizontal(a,b): \
StackHorizontal(a,c).StackVertical(b.AddBorders(b.width/2,0,b.width/2,0,$828282)): \
StackHorizontal(a,c).StackVertical(StackHorizontal(b,d)): \
ShowFiveVersions(a,b,c,d,e): \
StackHorizontal(a,c).StackHorizontal(e.AddBorders(0,0,b.width,0,$828282)).StackVertical(StackHorizontal(b,d).StackHorizontal(f.AddBorders(0,0,f.width,0,$828282))).Crop(0,0,-a.width,0)
return resize?view.Spline36Resize(a.width,a.height):view
}


ShowVersions(a,b)
view_2.jpg


ShowVersions(a,b,c)
view_3.jpg


ShowVersions(a,b,c,d)
view_4.jpg


ShowVersions(a,b,c,d,e)
view_5.jpg


ShowVersions(a,b,c,d,e,f)
view_6.jpg





©「SHIROBAKO」製作委員会

Tag:AviSynth



WHAT'S NEW?

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