ピカるーん Ver.1.30




森川浩
必要なもの Windows95、フルカラー表示環境

連絡先 morikawa@mb.kcom.ne.jp
最新版配布場所 http://w3mb.kcom.ne.jp/~morikawa/pikaloon.html


















概 要


  このアプリケーションは画像にピカピカフィルタをかけて、強烈に光らせるソフトです。 ピカピカフィルタは40種類あり、光り具合はスライダーを操作して処理結果を見ながら 変更できます。別の画像を背景画像として合成することもできます。 Ver.1.30 では、光らせた画像を元画像にどのように適用するかを指定 できるようになりました。また、スクロールバーもサポートされました。




操作方法


  pikaloon.exe を実行し、「元画像読み込み」を左クリックして光らせたい 画像を開きます。ドラッグ&ドロップも可能です。 読み込む画像は、Windowsの bmp ファイルである必要があります。 色数の制限はありません。計算の都合上、画像は自動でリサイズされます。

  一番最初に、ピカピカフィルタの種類を決めます。 ウインドウ左下のコンボボックスを使って、40種類あるピカピカフィルタより、 お好みのピカピカフィルタを選択してください。40種のピカピカフィルタの 解説は後で行ないます。

  そして、「ピカるーん」を押すと画像が光ります。光りが強すぎる時や弱すぎる ことがありますので、「ピカるーん」を押したら最初に「明度」のスライダを 使って明るさを調整してください。「明度」のスライダでは、上がると明るく、 スライダが下がると暗くなります。

  明るさが決定したら、次に、「色」と「彩度」のスライダを使って 色と彩度を調整してください。「彩度」のスライダでは、スライダが 上がるとカラフルに、下がるとモノクロ画像になります。 「色」のスライダでは、スライダの位置によって下から順に、 青、紫、赤、黄、緑、水、の色になります。

  以上で、光る画像が作成されます。 この後、元画像を再び合成したり、他の画像を背景に合成 したりできます。

  「元絵」のスライダでは、最初に読み込んだ画像を再び適用します。 適用方法は、現在のところ加減算と乗除算があります。ウインドウ 左下の「+」を押すと加減算が使われ、「×」を押すと乗除算が 使われます。スライダが中央にある時は、加減算乗除算にかかわらず、 全く適用されません。スライダが上がると加算または乗算の適用度が たかくなり、スライダが下がると減算または除算の適用度が 高くなります。

  「背景」のスライダを使うには、その前に「背景読込」を押して 背景画像を読み込む必要があります。背景画像は現在開かれている 画像にあわせてリサイズまたはトリミングされます。背景画像の 適用のされ方は「元絵」のスライダと同じです。




その他の機能


その他の機能について説明します。

「保存」は、変換対象画像と背景画像を合成した画像を保存します。

「再読込」は、変換対象画像を読み込み時の状態に戻します

「拡大」は、見かけ上、画像を拡大します。

「縮小」は、見かけ上、画像を縮小します。

  「●」を押すと、丸が赤くなります。この状態で「A」~「F」の いずれかを押すと、その時のパラメーター設定がそのアルファベットボタンに 登録されます。「●」が押されていない状態で「A」~「F」のいずれかを 押すと、登録内容が復元されます。この復元は単にパラメーターの復元で、 画像の処理は一切行なわれません。

  画像の上で左ボタンによってドラッグすると、画像が移動します。 背景画像は移動しません。この移動は、マウスの移動と共に画像の再計算を 行ないますので、画像サイズが大きい時や、CPUが非力な時は なめらかに移動できません。

  「元画像読み込み」「保存」「拡大」「縮小」「ピカるーん」 を右クリックすると、その機能が実行される前に拡張機能を使うための ダイアログが表示されます。

  「元画像読み込み」を左クリックすると、画像が読み込まれた後、 自動でリサイズされますが、右クリックすると、リサイズ後の 画像サイズを明示的に指定できます。

  「保存」を左クリックすると、メモリ上にある処理結果の画像を そのまま保存しますが、右クリックすると、拡張ダイアログで 説明される内容に従って保存されます。   「拡大」「縮小」を左クリックすると、長さで2倍ずつ拡大あるいは縮小 されますが、右クリックすると、2のN乗の範囲内で自由に倍率を指定 できます。ついでに、縮小時に厳密計算するかどうかの指定がここで 行なえます。厳密に縮小を行なうようにすると、縮小時の画像がたいへん 奇麗ですが、1024×1024を超えるような大きな画像を厳密に縮小 すると、計算に時間がかかり、レスポンスがたいへん悪くなります。 ここで指定した厳密に縮小するしないのモードは、以後に引き継がれます

  「ピカるーん」を左クリックすると、必ず正変換(40種類の光り方そのまま)が 使われますが、右クリックすると、その都度、正変換か逆変換かを指定できます。 逆変換は、正変換した直後に限り、意味があります。これは逆変換という 変換であって、「元画像」のボタンとは意味が全く異なります。 この機能の面白い所は、ピカるーんによって光らせた画像ならば、 ファイルとして保存されHD等を経由した後でも、元に戻せるということです。 情報欠落等の事情から完全には戻りませんが、正しい知識の元に 使用するなら、かなり強力な機能として使えます。

  また、ピカるーんは輝きのぼかし処理にFFTを使っているため、 輝きは自動的に周期的境界条件を必ず満たします。これはつまり、背景画にして 全く違和感が無い画像が無条件に得られるということを指します。試しに、すぐ後で示す 40個の画像の上で「右クリック」→「壁紙に設定」等を使って壁紙に 設定してみてください。どれもこれも、切れ目無く埋まるのがわかるでしょう!




40種のピカピカフィルタの例


  この節では、各ピカピカフィルタの名称と、その使用例を載せます。 各画像には光り方調整時のパラメーターも載せました。 実際の明るさと「明度」は、各フィルタによって関係が異なりますので、 ここでは色の参考にしてください。元画像は以下のいずれかです。
 







No'1 ノーマル1

明度=630 彩度=300 色=250 元絵=000 背景=000







No'2 ノーマル2

明度=900 彩度=870 色=570 元絵=000 背景=000







No'3 星

明度=930 彩度=310 色=560 元絵=000 背景=000







No'4 ライト1

明度=760 彩度=310 色=240 元絵=000 背景=000







No'5 ライト2

明度=760 彩度=310 色=240 元絵=000 背景=000







No'6 十字1

明度=920 彩度=320 色=030 元絵=000 背景=000







No'7 十字2

明度=920 彩度=320 色=030 元絵=000 背景=000







No'8 十字3

明度=920 彩度=060 色=130 元絵=000 背景=000







No'9 十字4

明度=920 彩度=060 色=130 元絵=000 背景=000







No'10 キラキラ

明度=770 彩度=000 色=000 元絵=000 背景=000







No'11 銀河1

明度=960 彩度=580 色=590 元絵=000 背景=000







No'12 銀河2

明度=960 彩度=580 色=590 元絵=000 背景=000







No'13 ランダム1

明度=990 彩度=770 色=160 元絵=000 背景=000







No'14 ランダム2

明度=780 彩度=230 色=180 元絵=000 背景=000







No'15 ランダム3

明度=730 彩度=370 色=470 元絵=000 背景=000







No'16 霞1

明度=610 彩度=150 色=000 元絵=000 背景=000







No'17 霞2

明度=930 彩度=150 色=000 元絵=000 背景=000







No'18 横

明度=620 彩度=150 色=480 元絵=000 背景=000







No'19 縦

明度=620 彩度=150 色=480 元絵=000 背景=000







No'20 氷

明度=800 彩度=510 色=570 元絵=000 背景=000







No'21 輪郭1

明度=810 彩度=990 色=150 元絵=000 背景=000







No'22 輪郭2

明度=810 彩度=460 色=250 元絵=000 背景=000







No'23 輪郭3

明度=860 彩度=730 色=570 元絵=000 背景=000







No'24 メタリック1

明度=650 彩度=280 色=240 元絵=000 背景=000







No'25 メタリック2

明度=620 彩度=280 色=240 元絵=000 背景=000







No'26 波源1

明度=700 彩度=280 色=240 元絵=000 背景=000







No'27 波源2

明度=800 彩度=900 色=230 元絵=000 背景=000







No'28 コンパス1

明度=750 彩度=380 色=430 元絵=000 背景=000







No'29 コンパス2

明度=900 彩度=380 色=380 元絵=000 背景=000







No'30 コンパス3

明度=990 彩度=490 色=030 元絵=000 背景=000







No'31 プルルン

明度=770 彩度=360 色=480 元絵=000 背景=000







No'32 ブルルン

明度=650 彩度=360 色=480 元絵=000 背景=000







No'33 ムニュムニュ

明度=850 彩度=300 色=240 元絵=000 背景=000







No'34 メッシュ1

明度=800 彩度=700 色=440 元絵=000 背景=000







No'35 メッシュ2

明度=800 彩度=700 色=600 元絵=000 背景=000







No'36 花火

明度=620 彩度=800 色=230 元絵=000 背景=000







No'37 印鑑

明度=710 彩度=770 色=220 元絵=000 背景=000







No'38 日食

明度=720 彩度=640 色=240 元絵=000 背景=000







No'39 焼け付き

明度=750 彩度=290 色=210 元絵=000 背景=000







No'40 めらめら

明度=600 彩度=310 色=230 元絵=000 背景=000












背景合成の例


  まず、あひるのがあくんを用意します。







  次に、あひるのがあくんの目だけ、トリミングします。







  この目に対して、「No'8 十字3」のピカピカフィルタを適用し、光り具合を 明度=870 彩度=300 色=250 元絵=000 背景=000 合成方法=「+」にします。すると、 下の画像のようになります。







  次に、「背景読込」から先のがあくんの画像を読み込みます。 この時、ドラッグアンドドロップを使用しないでください。 ドラッグアンドドロップは背景画像の読み込みには使えません。 ここでドラッグアンドドロップを使うとせっかく光らせた 画像が消えてしまいます。この辺りは Ver.1.20 以前と挙動が 異なりますので、注意してください。

  そして、「背景」のスライダを徐々に上げると次第に背景画が 見えてきます。背景=070 にすると、下のようになります。










加減算と乗除算の違い


  先の「Pikaloon」の文字画像に対して「No'20 氷」のピカピカフィルタを適用し、 光り具合を適当に調節すると、下の画像のようになりますが、







  「+」を押した状態で「元絵」のスライダを上げると、黒をゼロ点として元画像が加算され、 下のようになります。







  スライダを下げると、白をゼロ点として元画像が減算され、下のようになります。







  「×」を押した状態で「元絵」のスライダを上げると、元画像が掛けられ、 下のようになります。減算と同じような結果になったのはたまたまです。







  スライダを下げると割られるので、下のようになります。







  加算は、元画像を背景画像と見なす時に有効です。背景画像は読み込むだけで メモリを消費するので、元画像を背景画像として使いたいときは加算を使うと メモリを節約できます。

  減算は、光りすぎて眩しい画像に、元画像を合成したい時に有効です。

  乗算は、「No'20 氷」の例のように、元画像の黒い部分における、 ピカピカフィルタの効果を削る時に有効です。

  除算は、減算と同じく、光りすぎて眩しい画像に、元画像を合成したい時に有効ですが、 元画像が自然画の時は、減算の処理結果とは全く異なった結果が得られます。 内部処理で0で割る箇所が出てきたら、それは無視されます。




逆変換の例


  ピカるーんは、内部計算に浮動小数点を使用しているため、 ピカピカフィルタをかけた直後なら、逆変換を使用することで、ほぼ 元の画像に戻ります。ABCDEと、5つのピカピカフィルタをかけて 何がなんだかわからなくなった画像でも、EDCBAと逆の順序で 逆変換をかけていけば、元の画像に戻ります。

  特筆すべきは、ファイルから読み込んだ直後の画像に対しても、逆変換が可能ということです。 ピカるーんの40種のフィルタどれかによって処理された画像ならば、 それが一度保存された画像であっても、同じピカピカフィルタの逆変換をかけることで、 元の画像を復元することができます。ただし、画像の光量がオーバーフローしていないこと、 マイナスのオーバーフロー領域が無いこと、 浮動小数点型データ → unsigned char 型データへの変換時( ファイルとして保存する時 ) の離散化誤差が小さいこと、などの条件が満たされている必要があります。

  例を挙げます。下のような画像を用意します。ピカるーんの性質上、 モノクロでないと意味がありません。







  この画像を「No'13 ランダム1」によってぼかします。







  「明度」を調節して、光量がオーバーフローしないようにします。 この画像を保存し、ピカるーんを一度終了させます。

再び、ピカるーんを起動し、保存した画像を開きます。

そして、「ピカるーん」を右クリックして「逆変換」をチェックし、 「No'13 ランダム1」の逆変換を実行すると、以下のようにほぼ復元されます。







ちょっと余談。

  広範囲にぼけた画像のみから本来の画像を作成するということは、 ピンボケ写真から明瞭な写真を作るようなもので、 そのようなソフトを作ればヒットするのは目に見えていますが、これは事実上ムリです。 というのは、復元はぼかしの方法( ピカるーんならどのフィルタか、ということ ) が明確にわかっていないと無理なわけで、実際のピンボケはいろいろな要素が 合わさった結果であり、ボケ方法が未知なので、そのようなソフトは作れません。 「ガウシアンで近似しちまえ」というのも無駄です。この復元作業では 行列の逆行列を求める時に起りうる誤差拡大と同じく、ちょっとの誤差が 結果に大きく表れます。ですから、「近似」はダメです。 とはいうものの、ガウシアンで近似するソフトを作ってみました。 その結果、ボケの範囲がそうとうに小さくないと実用にならないことが わかりました。しかし、ボケの範囲が狭いなら、わざわざこのような 方法で復元しなくとも、そこらへんの画像処理ソフトを使ってシャープネスを かけたほうが早いし有効です。




更新履歴等
'98 11 / 8 Ver.1.0 を公開
'98 11 / 23 Ver.1.1-Fast- を公開。処理速度を2倍、必要メモリを2/3程度にした
'98 11 / 25 Ver.1.11-Fast- を公開。ディレクトリをドラッグ&ドロップすると 落ちるバグを取った。Title.bmp が無い状態で「ピカるーん」を押 すと落ちるバグを取った。変更履歴のミスを訂正。
'98 11 / 28 Ver.1.20 を公開。フィルタを40種類に増やした。 フルセット版と Light 版にわけた。 ウインドウクラス名がプカるーんになっていたバグを取った。
'99 3/21 Ver.1.30 を公開。スクロールバーのサポートなど、インターフェースを改良した。 適用機能、逆変換機能を追加した。