お知らせ: にーやんのブログ 2 に移転しました。こちらのブログは、2009 年末までに削除します。

スポンサード リンク

実写を絵画/鉛筆画調に変換する MSU Cartoonizer プラグインを試してみた。

MSU Cartoonizer は、実写の映像を絵画調や鉛筆画調に変換する VirtualDub プラグインです。v2.0 から AviSynth に対するサポートが追加された(LoadVirtualDubPlugin 経由で利用可能)ということで、さっそく試してみました。

実写のサンプルがなかったので、OpenSpace のフリー映像素材(DVサイズ (720x480) )を、映像ソースとして使わせていただきました。また、QuickTime ファイルの入力には、QTInput フィルタ(QTSource プラグインに収録)を使用しました。

とりあえず、使用したスクリプト(関連部分のみ)と VirtualDubMod でのプレビュー画像のみ紹介しておきます。

ソース

ソース
ソース(オリジナルサイズ)

使用例1: 絵画調

スクリプト
# QTSource プラグインの読み込み
LoadPlugin("C:\avs\plugins\QTSource.dll")
# LoadVirtualDubPlugin で MSU_Cartoonizer.vdf を読み込む
LoadVirtualDubPlugin("C:\vdub\plugins\MSU_Cartoonizer.vdf", "MSU_Cartoonizer", 0)
# mov ファイルを開く by QTSource
QTInput("D:\Source\video\sample.mov")
#
# その他のフィルタ
#
# RGB32 に変換
ConvertToRGB32() # VirtualDub プラグインは RGB32 のみ対応
# MSU_Cartoonizer 
MSU_Cartoonizer(0, 5, 5, 5, 5, 1, 40, 1, 1, 1) # 第 1 引数 = 0 で Painting モード
# 
# その他のフィルタ
#
サンプル画像

絵画調
絵画調(オリジナルサイズ)

使用例2: 鉛筆画調

スクリプト
# QTSource プラグインの読み込み
LoadPlugin("C:\avs\plugins\QTSource.dll")
# LoadVirtualDubPlugin で MSU_Cartoonizer.vdf を読み込む
LoadVirtualDubPlugin("C:\vdub\plugins\MSU_Cartoonizer.vdf", "MSU_Cartoonizer", 0)
# mov ファイルを開く by QTSource
QTInput("D:\Source\video\sample.mov")
#
# その他のフィルタ
#
# RGB32 に変換
ConvertToRGB32() # VirtualDub プラグインは RGB32 のみ対応
# MSU_Cartoonizer 
MSU_Cartoonizer(1, 1, 10, 5, 1, 1, 1, 0, 0, 0) # 第 1 引数 = 1 で Drawing モード
#
# その他のフィルタ
#
サンプル画像

鉛筆画調
鉛筆画調(オリジナルサイズ)

ReplaceFramesSimple(by stickboy)

ReplaceFramesSimpleは、指定されたフレーム(または範囲)を、baseClipからsourceClipに置き換えるフィルタです。RemapFrameプラグインに収録されています。

RemapFrameプラグインは、以下のサイトから入手することができます。

stickboy's AviSynth Stuff
http://www.avisynth.org/stickboy/

察するに、FilterRangeExプラグインや拙作のFilterRangePlus関数的な使い方ができるフィルタではないかと思われます(「思われます」というのは、試してないからです・・・)。

以下、説明書の一部を、ざっくりと訳してみました。試したい人は、参考にしてください。

パラメータ


baseClip
sourceClip baseClipのフレームは、sourceClipのフレームに置き換えられる。
"filename" 置き換えるフレームを指定したテキストファイルの名前。
"mappings" 置換対象フレームは、直接、文字列(string)で与えることも可能。

使用法


音声トラックには影響を与えません。

ReplaceFramesSimpleは、フレームを置き換えるために、テキストファイル、または、シークエンスかフレーム番号の範囲から成るmappings文字列をとります。例:

# baseClipの10から20、25、30フレームの各フレームを、
# sourceClipの対応するフレームに置き換える。
ReplaceFramesSimple(baseClip, sourceClip, mappings="[10 20] 25 30")

# クリップを逆テレシネし、コーミングが残っている
# 個々のフレームを修正する。
c = src.Telecide(...).Decimate(...)
deinterlaced = c.KernelDeint(...)

# 30, 40, 50フレームをdeinterlacedのものに置き換える。
ReplaceFramesSimple(c, deinterlaced, mappings="30 40 50")

# ちなみに、FilterRangePlus関数は、処理が重くなる原因の一つとされるRecursive(再帰呼び出し)関数を使っていたり、指定の仕方がスマートでなかったりするので、他のフィルタを試すほうがいいでしょう・・・。

TIVTC v0.9.1(by tritical)

TIVTC v0.9.1
http://bengal.missouri.edu/~kes25c/TIVTCv091.zip

TDeintなどのプラグイン作者のtritical氏が、TIVTCというプラグインをリリースされました。

すでにリリース済みだったTFMに、TDecimateというフレーム間引きフィルタと、IsCombedTIVTCというコーミング検出フィルタを追加して、1つのプラグインにまとめたもののようです。

TDecimateは可変フレームレートに対応しており、mkv形式のタイムコードファイルを吐くことができるようです。

DePan

・DePan
http://bag.hotmail.ru/depan/depan.dhtml
Fizick氏作のプラグイン。

GenMotionに取って代わるものとして考えられているようです。

GenMotionが、一度、Deshakerのログを作成しなければならないのに対し、DePanはサーバーのDePanEstimateとクライアントのDePan/DePanInterleave/DePanStabilizeのセットで使用することで1Pass(1スクリプト内)で実行できます。

動き補償、画像安定化のほかに、フレームレート変換にも使用できるみたいです。

ただし、現時点(2004/4/26 AM1:08)では、ダウンロードリンクが間違っているようです。
http://bag.hotmail.ru/depan/depan01.zipからダウンロードすることができます。

[AviSynthフィルタ・プラグイン] -> [その他]に追加。

RemoveDirt 0.6.1

■RemoveDirt 0.6.1

バージョンアップしたようです。
どこが変わったのか、よくわからないのですが、soscillationとdoscillationがなくなって、pthresholdのデフォルト値が20に変わっているようです。

RemoveDirt
http://www.removedirt.de.tf/

○RemoveDirt簡易版(関数)

・soscillationとdoscillationを削除。
・pthresholdのデフォルト値を20に変更。

[書式]
SimpleRemoveDirt(dist, mthreshold, athreshold, pthreshold, tolerance, cthreshold)

[使用例]
SimpleRemoveDirt(1, 150, 50, 20, 12, 20)

[関数]
function SimpleRemoveDirt(clip clip, int "dist", int "mthreshold",
\ int "athreshold", int "pthreshold", int "tolerance", int "cthreshold")
{
#//--- デフォルト値の設定 ---//
dist = default(dist, 1)
mthreshold = default(mthreshold, 150)
athreshold = default(athreshold, 50)
pthreshold = default(pthreshold, 20)
tolerance = default(tolerance, 12)
cthreshold = default(cthreshold, pthreshold)

#//--- メイン ---//
clip = clip.RemoveDirt(dist=dist, mthreshold=mthreshold,
\ athreshold=athreshold, pthreshold=pthreshold, cthreshold=cthreshold,
\ tolerance=tolerance, mode=2, grey=false, debug=false, show=0)
return clip
}

Page 1 of 3: 1 2 3 »