2009年9月28日月曜日

ResizeIntr改訂版

ResizeIntrは過去の手法になりました。上位互換のDestripeを推奨中。

お詫び

一箇所数字が間違っていました。

使っている人はほとんどいないと思うけれど、ミラクルトレイン番宣では不都合があるので久しぶりに改訂版。

フィールドの縦位置の微調整を設定するsft1, sft2は最大でrtで指定した数値までしか指定できなかったのを、rtの2倍まで指定できるように修正。

function ResizeIntr(clip clip, int "hh", int "rt", int "sft1", int "sft2") {
hh = default(hh, 360)
rt = default(rt, 6)
sft1 = default(sft1, 2)
sft2 = default(sft2, 3)
w = clip.width()

c = clip.Separatefields().BicubicResize(w, hh * rt)
ve = c.SelectEven().AddBorders(0, sft1, 0, rt + rt - sft1)
vo = c.SelectOdd().AddBorders(0, sft2, 0, rt + rt - sft2)
return Interleave(ve, vo).PointResize(w, hh + 2).Crop(0, 1, w, hh).Weave()
}



ここでチェックしたフレームを
ResizeIntr(243, 7, 10, 6)

で縞解消した時の分布。

旧版では3番目の引数10を指定するとエラーになってしまうので、それを回避したのが今回の修正。