渦巻き、波紋、放射ウエーブフィルタ



これらフィルタを使用するには下図のようにメニュのフィルタの「変形フィルタ」の中で選択します。またフィルタ選択ウインドウのメニュの中からも同様に選択できます。

まず下図の画像を使って説明します。

渦巻きフィルタを選択すると下図のようなウインドウが表示されます。設定項目は「回転角度」のスクロールバーと「右廻り」「左廻り」のラジオボタンだけです。

例えば回転角度を300度に設定して右廻りで実行すると下図のようになります。

渦巻きの周辺部の回転の調整ができます数値が小さいと周辺部の回転が少なくなり数値が大きいと回転が大きくなります。

波紋フィルタを選択すると下図のようなウインドウが表示されます。オプションはそのままで

実行すると下図のようになります。

「波紋の長さ」とは下図のように波紋模様の長さつまり波長を表し、波紋の強さとは波紋の振幅を表します。下図を見れば分かります。始まりの位置は波の始まる位相の位置を表しますが理解できる人だけ使ってください。

「始まりの位置」を使うと下図のような画像を作成することが可能です。

放射ウエーブを選択すると下図のようなウインドウが表示されます。

そしてオプションはのままで実行すると下図のようになります。

オプションの「放射の長さ」とは放射ウエーブの波長を表します。放射の強さとは下図のように放射ウエーブの振幅を表します。



これらフィルタはマスクやグラデーションに対応しています。但しマスクやグラデーションは変形フィルタの場合例えばマスクの真っ黒の所は実行されず、真っ白の所は100%実行されるのは変わりませんが中間の明るさ例えば128の明るさ(0は真っ黒255は真っ白)の場合は白のマスクで10ピクセル移動する場合には128の中間の明るさでは5ピクセル移動するようになります。
そのため下図のように右に行くほど強く働くようにグラデーションがなっていると

下図のようになります。

波紋フィルタでは

放射ウエーブでは下図のようになります。

またこれらフィルタではキャンバス上に矩形を作図する時の要領で範囲を指定してから実行すると下図のように指定した範囲のみにフィルタを実行することができます。

渦巻きと波紋フィルタはフリーソフトではJtrimにあるが他のソフトでは知らない。JTrimの波紋はよく観察するとあれっと思う所があるが速度的にはJTrimのほうがずっと高速です。但しJTrimは変形の補完をしていないようでHyper-Paintでは現在の私の技術で可能な範囲で補間はしております。他のフィルタは割りと高速に補間処理をしていますがこれらフィルタでは補間処理のため幾らか遅くなっています。ただ処理により画質が落ちるよりは多少時間が掛かるが画質が落ちないほうを選択しました。仕上がりの画質が悪いと使えないと思うので一秒や二秒遅くとも画質の方を取りました。いつになるか分かりませんがそのうち技術が上がったら画質よく高速処理できるようにしたいと思っています。

最近渦巻きと波紋フィルタの補間処理の改良をしました。結果ここに掲載されている写真よりだいぶ綺麗になりました。ネットで調べてみると意外や意外photoshopの補間品質でそれほど良くないようです。
下は最近の版の渦巻きフィルタの4倍拡大図。

最近気がついたことですがHyper-Paintの渦巻きが幾らか以上大きい画面では処理後の補完が汚くなることを発見した。ソースをくまなく調べてもどこも原因らしき部分が無いので困っていたのだけれど二、三日の試行錯誤ののちある関数を呼び出しでいたのに気がつきその関数のソースを調べてみたらそこではある部分の式で計算時に変数の上限を超えてしまうためかなり強引な方法を使い回避している部分がありその部分を削除して上限を超える式 z1:=((((j*2-_jj)*(j*2-_jj)*_ii*2/_jj)+((i*2-_ii)*(i*2-_ii)*_jj*2/_ii))/ppp); をcpu が計算する順番を変えるようにして上限を超えないように配慮して z1:=(((((j*2-_jj)*(j*2-_jj)/(ppp*_jj))*_ii*2)+(((i*2-_ii)*(i*2-_ii)/(ppp*_ii))*_jj*2))); に変えてみましたそうしたらなんと考えどおりに動作してくれて 画質が画面の大きさにかかわらず格段と向上しました。
式を見ただけでは分かりにくいと思いますが要は掛け算を先にするのではなく割り算を先にして後から掛け算をして途中経過時にも変数の上限を超えないようにするということ。





               Home         Back


inserted by FC2 system