【AviUtl】ラベリング処理をする『限定表示』と『着色』の2スクリプトを配布!【Script】
ラベリング処理の『限定表示』と『着色』の2スクリプトは閾値によって映像を繋がっている塊ごとに区分けし、ラベル(番号)をつけて管理(表示したり着色したり)するスクリプト。
基本的には画像オブジェクト(着色)やテキストオブジェクト(限定表示、着色)用といった感じ。特にテキストオブジェクトでは、1つの文字でもくっついていない部分が別個のものとして扱われるので、上手く使えば面白いことができるかも……。
ちなみに動画オブジェクトの場合は、映像がフレームごとに刻々と切り替わるために常にラベル番号も切り替わってしまうので不向き。キラキラした動画になってしまうつもり使うのであれば、それはそれでありだとは思うけれど……。
また、ラベリング番号の補正やソートが上手く行ってない場合もありそうなので、その辺は大目に見てやってください。それからobj.putpixel()を使っているので、処理する画像が大きくなればなるほど重くなる、低スペPCに厳しいスクリプトです……。(´;ω;`)
Sample
『り』や『ら』、『た』のように同じ文字でも、画像として分離している部分には別の色が着く。ただし、透明度がごくごく小さい値で設定されていると、同じもの(繋がっているもの)と判定されることがあるので、その辺は透明度の閾値を変更して調整してやる必要あり。
元は『新しい朝が来たり、』という意味不明なテキストに限定表示スクリプトを使ったもの。『新しい月が来たり、』や『新しい朝がきたノ』(外人さんかな?)という感じに。透明度の閾値を変えてやると、『が』の濁点(低透明度のピクセルで繋がっている部分)なども別個のものとして認識するようになる。
ちなみにラベリング処理を上手くやれば、単独文字毎に『個別オブジェクト』っぽく動かせそうだけど……個別のそれらを適当に動かすことはできても、意図した動きをさせるためにどうしたらいいのか今は全く構想にないので、今後に期待(今回の配布には含まれず)。
……というか何時か使い物になりそうなコードが書けたら良いなレベルなので、本当に、何時かそんなスクリプトが配布されたらいいな、と淡い期待にしておいてください。
ラベリング処理について
![]() | ![]() |
こんな感じに文字毎に色が変わっていても、『文字毎に個別オブジェクト』ではない。右の画像は赤字の数字を加えて、ラベルの割り振りを表したもの。左上から右方向(最後まで行ったら左に戻って一段下がる)に処理が進むので、基本的にはこんな感じ(※ 画像のある部分の形状=つまりフォントによって異なる)のラベリングがされる。
なので、このスクリプトの設定内の独立数(塊の数)の項目を使うときに入力する独立数としては 7 となる。内訳は『a』と『v』で1個ずつ、『i』で2個、『u』と『t』と『l』で1個ずつの計7個。
Frameの項目の値を変化させてやると、それぞれの色が変化。ランダムの場合はランダムに色が変わるし、若い番号から順番にHSVのHで変換している場合にはFrameの値の分だけHがずれる。
また、指定番号のラベルだけ着色することも可能。
項目解説(ラベリング着色のほう)
- G閾値:グレースケールを基準にした判定。
- A閾値:透明度を基準にした判定。
- Frame:割り振られたラベリング番号をずらす。
- 明度:着色された色の明度を補正。
- アルファチャンネル処理:処理画像によってチェックを入れたり外したり。
- 精度係数:ルックアップテーブルの処理回数の係数。基本的に弄る必要なし。
- 領域色並び:ランダムな着色にするか、左上からHSVのH通りの順番に色を割り振るか。
- 限定表示:表示番号で指定した番号のラベルのみに着色するか否か。
- 独立数:識別された塊の総数。実写などには不向き。テキストオブジェクト等の数えやすいもので使用すると吉。※
(初期設定ではaviutlという小文字の英字に対応した7が入力されている) - 変化速度:限定表示で表示される番号の切り替わる速度。
- 表示番号:限定表示にチェックが入っていると、ここに入力されたラベル番号の塊が着色される。初期設定では、aviutlという小文字の英字が順番に切り替わる仕様になっている。
- SEED:乱数を取得するための値。
※ 塊の数については、上記のラベリング処理についての項目を参照。
DL
『スクリプトの保存→導入までの流れ』
- リンク先のTXTが文字化けしている場合は、ブラウザの文字エンコーディングをSJISに変更する。
- FC2 のファイル保存形式上の都合でtxtファイルで保存されているので、上記のリンクの上で右クリックして『リンク先のファイルを保存する』を選択してファイルを保存するか、リンク先のページに飛んで『Ctrl + A』で全てを選択し、メモ帳等にコピペ&S-JISで保存する。
- 保存(作成された)ファイルの拡張子をtxt → anmに変更する。
- AviUtlのScriptフォルダにコピペする。
拡張子の変更例:@ラベリング処理.txt → @ラベリング処理.anm
- 関連記事
-
-
【AviUtl】TA重なり合って振動を配布【拡張編集】 2015/09/13
-
【AviUtl】スクリプト制御 第3回【拡張編集】 2014/06/14
-
【AviUtl】動体検知スクリプトを改良。また、YCbCrで動体を検知するVerとターゲット追従を追加!【拡張編集】 2016/06/18
-
【AviUtl】TA円形アルファを配布!【Script】 2018/07/08
-
【AviUtl】ぷるるんっ……という感じのスクリプト【拡張編集】 2014/11/09
-