Otaku ワールドへようこそ![81]画像をぐちゃぐちゃに変形する
── GrowHair ──

投稿:  著者:


あんまりぶっちゃけ過ぎるのも興醒めかもしれないけど、どうせ10回も続くまいと、ちゃらんぽらんな気持ちで始めたこのコラムも、気がついてみると80回も書いているわけで、ちゃらんぽらんも3年続くと、まじめなんだかちゃらんぽらんなんだか、よく分からなくなってきますね。

しかし、そうなるとどうなるかというと、慢性のネタ切れなんですね。いつも行き当たりばったりで、そのとき書けることを書くわけです。このコラムは「オタク」をテーマにして書くことにしている(大前提)、私はオタクである(小前提)、ゆえに私のことを書けばネタになる(結論)、という三段論法にしたがって、最近は、まあ、日記のようなものになっているというわけです。ネタを拾う週末と、原稿を書く週末が交互にやってくる感じです。

さて、今回書けることは、ひとつしかありません。なにしろ、最近は、グループ展に出す写真の加工にかかりきりなのです。そういうわけで、制作日記なのであります。



●考えてみるとおそろしい、写真と被写体を並べて展示

今ごろになって気がつくな、って話ですけどね。たとえば、若さはじけるピチピチギャル(←って死語か?)がビキニの水着着て立っているとしましょう。その横に、そのコの写真を展示したって、誰も見向きもしないわけですね。このモデルさんを被写体にすれば、こんなのが撮れるんですよー、と誇示できるくらいのすっげー写真でない限り。

あんまり例が多くないんじゃないですかね、写真と被写体の同時展示って。富士山の写真展を富士山の見えるギャラリーで、とか。アンドロメダ星雲の写真展をアンドロメダ星雲で、とか。バラ園にバラの写真ギャラリー併設ってのは、ありだけど。猫喫茶には猫の写真が飾ってあったっけ。

カワセミを撮ってる横で、カワセミの写真を何十枚も展示、っていうのは、見たことがありますけどね。これはなかなかいい趣向でした。うまくいくとこういうのが撮れる、だけど、そうめったに撮れるもんじゃないんだよねー、だからひたすら待つのだ、って信念ががよーく伝わってきましたからねぇ。なにしろ、写真を見てる間、当のカワセミ君は、一度も姿を現しませんでしたから。

そう言えば、原宿の通称「橋」と呼ばれる橋で、20年来女の子を撮り続けているオニイサンは、ときどきその場をギャラリーにして、写真を掲げてますね。キヤノンの純正品のサンニッパ(焦点距離300mm、開放絞りF2.8の巨大なレンズ、今の価格は69万円)を一脚で支えて撮った写真は、背景のボケ具合がよく、被写体が生き生きと浮き上がる感じで、実にかっちょいいです。

うーん、意外と例がありますね。しかし、まあ、いずれにせよ、写真の出来によっぽど自信がないとできませんね、こういうことは。さて、今回予定している展示では、人形作家3人が制作した人形の実物を置く傍ら、私が撮った人形の写真を掲げるわけです。大変です。被写体と並べても、見劣りしない写真。いや〜無理無理無理無理。って、一年以上前から話を進めていて、いまさら何をか言わんや、ですけど。

直球勝負に自信のない私は、加工でごまかそう。って、それをぶっちゃけちゃ、みもふたもないですね。えーっと、もう少し言い方にミとかフタとかを求めるとするならば、修士課程まで専攻した数学の知識を生かして、コンピュータ画像処理のプログラミングで少し変わった趣向をご覧いただきましょうか、ということです。写真撮影と数学とどっちが得意かと言われると、やっぱ数学なんで。

●画像の変形の基本は、逆変換

コンピュータで画像の拡大、縮小、回転、自由変形といった処理をする場合、中の人はどんなことをしているのかを、まず、簡単に解説しておきましょう。

たとえば、もともとの画像(原画像という)を1.5倍に拡大する場合を考えてみましょう。原画像からみて出力画像が1.5倍に拡大されているということは、逆に、出力画像から原画像を見れば1.5分の1に縮小されているわけです。これが逆変換です。右に0.2°回転、の逆変換は、左に0.2°回転です。

さて、出力画像を作成するということは、言い換えると、その画像のすべての画素の色を決定する、ということにほかなりません。だから、中の処理では、出力画像の各画素を順々になめていって、ひとつひとつ、その画素の色を決めていきます。まず、出力画像上の今みている画素の位置に対して、目的の変換の逆変換をかけて、原画像上ではどの位置に対応するのかを獲得します。

で、原画像上のその位置の色を拾ってくればいいわけなのですが、さきほどの例のように、1.5分の1、つまり3分の2に縮小するような変換の場合、結果として得られた原画像上の位置が、画素と画素との間の中途半端な位置に落ちることがあります。

その場合は、周辺の画素を眺め渡して、色を混ぜ合わせて作ります。その際、どの画素に近いかも加味して、その位置に本来あるべき色を推測するのです。この処理を補間(interpolation)といいます。補間法は、実にさまざまな方法が提案されています。画像の滑らかさが保たれるようにしたい一方、輪郭線はぼやけたりしないようシャープさが保たれるようにしたいわけで、工夫のしどころなわけです。

私の自作ソフトでは、手抜きして、バイリニア法しか組み込んでませんが。最も安直なのは、一番近い画素の色をそのままコピーしてくるだけの、ニアレスト・ネイバー法ですが、バイリニア法はそれの次に安直な方法で、周辺4画素の色を、近さに応じた重みをつけて混ぜるだけです。

手法はどうあれ、補間によって得られた色を、出力画像の、今みている画素に置きます。これを全画素に対して実行すれば、出来上がりです。例をみてみましょう。図を描いてみました。
< http://www.geocities.jp/layerphotos/FigDGCR080926/FigDGCR080926.html
>

第1図では、画像の中央部に水滴を落としたように膨らみをつける変換を例にとってみました。この変換を逆変換として使っているので、結果としては、原画像の中央付近が縮小されています。第2図は、その逆です。結果として、画像の中央がぼこっと盛り上がったように、膨らんでいます。なお、サンプル画像は京都にある隨心院です。小野小町ゆかりの寺です。遙か...、いや、まあ、気にしないでください。

以上が画像を変形する処理の概要なわけですが、感じをつかんでいただけたでしょうか。...。...。...。何の返事もありませんが。易しすぎるという方、ご安心ください、これから一気に難解になります。難しすぎるという方、ご安心ください、この先をお読みいただければ、今までのところなんかチョー簡単に見えてきます。

●数学で連想・飛躍は怪我のもと

画像を変形するソフトを自作し、山で撮った人形の写真を、原形を留めないぐらいにぐっちゃんぐっちゃんに変形させて、「さあこれが私の作品だ。ご覧あれ」とやれば、「あれこいつ写真撮るのが下手だなぁ」と言う人はいないであろう、というのが私の深遠な狙いなわけです。

問題は、ぐっちゃんぐっちゃんをどうするか、なわけですが。ぐっちゃんぐっちゃんな関数というものをひねり出さないとなりません。ある目的にかなう解を求めよ、というタイプの数学であれば、主に脳ミソの左側を使って論理的思考を働かせればよいわけですが、この場合は、何でもいいから面白い関数を作り出せ、というタイプの数学なので、右側にも出番が求められるところです。

論理的な道筋に沿って思考するのではなく、ひとつの言葉から別の言葉が思い浮かんでくるに任せる連想ゲームのように考えが進んでいきました。ぐっちゃんぐっちゃん→ぐにゃぐにゃ→蛸のよう→軟体動物→滑らか→微分可能、とこんな具合です。一方、平面から平面への変換なので、複素関数を思い浮かべていました。

複素関数で微分可能となると、その条件は、コーシー・リーマンの方程式で表されます。これは、1階の偏微分方程式2つからなるのですが、両辺をもう一回偏微分してから足し合わせることにより、ラプラス方程式が導き出されます。これは、ラプラシアンが全域でゼロ、という2階の偏微分方程式の形をしています。これを満たす関数は、調和関数と呼ばれます。

このような思考を経て、ぐっちゃんぐっちゃんの関数は、調和関数で表現できるのではないか、という着想に至りました。ラプラス方程式を満たす関数というのは、ひとつの領域の周辺の境界線上で値が決まると、内部の値は一意に決まる、という性質があります。境界値から内部の値をすべて求める問題を、ラプラス方程式のディリクレ問題といいます。

ラプラス方程式のディリクレ問題は、数値的に解く方法が確立されています。もともと連続的な領域を、領域内に均等に散りばめられた点の集まりで置き換えることにより離散化すると、微分という概念は差分という概念で代用され、結局は、ばかでかい連立一次方程式を解く問題に帰着されます。

この場合は、領域が長方形なので、細かくメッシュに分割するだけでよく、有限要素法のようなややこしい数値解法は要りません。「上下左右の4点の平均値が真ん中の点の値」という一次方程式がだーっと並んでいるだけです。

この程度ならお茶の子さいさい、屁の河童ってことで、プログラムを自作してみました。連立一次方程式を解く部分は、"LAPACK"というフリーのライブラリを呼び出す形にしました。"LA"とはロサンゼルスではなく、"Linear Algebra"線形代数のことです。このプログラムを走らせた結果が第3図です。どうもうまくありません。いや、結果は「正しい」のだとは思うのですが、見栄えが「よろし」くないのです。メッシュ分割の変換先は、なんとなくかっこよく見えるのですが、画像の変換結果は、イマイチ、イマニです。

メッシュの変換先のほとんどは、境界値の平均値に非常に近いところへどどっと固まっているので、原画像の中央付近のほんの数画素が、出力画像のほぼ全領域にどばっと拡大される結果となっています。これは、もともとイメージしていたぐっちゃんぐっちゃんとはぜんぜん違っています。

後付けの論理で考えるとあたりまえで、周辺をいくらぐにゃぐにゃさせても、内部の点はみんな安定志向なので、どいつもこいつもまわりに合わせて楽なほうへ動いていき、結果としてみんなで仲良く、平均値でほぼ真っ平らになっちゃうんですね。まるで日本人です。あ、だから調和関数なわけです。

大失敗でした。この案は、ゴミ箱行きです。だけど、めげません。人生そのものが失敗みたいなものなのだから、この程度のことは屁でもない、と思いなおして、次の策を練ります。

●うねりの表現はサインカーブがよい

画像の周辺部の変換先のうねりが、内部で急速に吸収されて平らになってしまってはいけません。内部にもうねりを引っ張り込まないと。うねりといえば波、波といえば三角関数です。サイン、コサイン、タンジェント。日本語では、正弦、余弦、正接。数式では、sin、cos、tan。真剣にこすればたんと出る。

現実世界でみられる最も単純な往復運動、たとえばバネにつるされたおもりの上下動などは、たいてい「単振動」とよばれる振動をしていて、今いる位置xは時刻tの関数として、正弦曲線(サインカーブ)で表現されます。式で書くと、x = sin(t) です。

一方、水面の波のような複雑なうねりも、実はいろいろな波長の波の重ね合わせの形に分解することができるという、フーリエ級数の理論というのがあります。こいつを借りてくることにします。数学の理論そのものは特許にはならないという決まりなので、こういうのはいくら使ってもタダです。

フーリエ級数は、本来、無限級数、つまり、A + B + C + D + ... と、ゼロに漸近していく項が際限なく足しあわされていく格好をしているのですが、今のわれわれの問題では、微振動の項は必要ないので、比較的浅いところで打ち切ります。その形を有限三角級数といいます。

適当なサンプリング点で変換先をランダムに決め、それを有限三角級数で最小二乗近似する形で、連続化しています。この問題も、結局は、大きな連立一次方程式を解く問題に帰着されます。調和関数のときに作ったプログラムの一部分が使いまわしできます。さて、その結果が第4図です。前の失敗作に比べると、ぐにゃぐにゃの具合が均等に広がっている感じで、これなら使えるのではないかと思います。

三角関数は周期関数なので、ひとまわりすると元に戻り、あとは同じパターンが延々と繰り返されるだけです。第4図で出力された画像では、どこかからでも適当な線をたどっていってみれば、右の壁から突き抜けると左の壁から続きが出てくるし、天井から突き抜けると床から続きが出てくるのが分かります。言い換えると、同じ絵をたくさんコピーして、タイル状に敷き詰めると、絵がちゃんと続いています。

同じ絵でなくても、うまく工夫すれば、ちゃんと続く絵がいくらでも大量生産できます。第5図は、その例です。どれをどこに配置しても、ちゃんと絵が続くようになっています。人形の写真を原画像にしてこれと同じ変換をかませたら、ホントに軟体動物みたいで、面白いことになっています。

当の人形を作った本人に見せたら、ふざけるな、と怒られるかと思いきや、案外面白がってくれたんで、じゃあ、展示に使っちゃおうかな〜と。紙に出力して、壁を埋め尽くしたら、面白いんじゃないかな〜、なんて。その画像は、まあ、ちょっともったいをつけて、ここには出さないでおきます。見にいらしてくださった方のお楽しみということで。

なんか、まるで、舞台の紹介をすべきところで、楽屋の様子を実況中継しちゃったような感じでしたか。面白い感性だなーと思って見ていただけたら、思わずにまにましちゃうところでしたが、実は感性のはたらく余地がほとんどゼロなのが、もろバレですね。プログラムを実行した結果として絵が出力されるので、作者といえども絵そのものには、ほとんど手出しができないのです。天然自然の産物とか、宇宙からの飛来物だと思っていただいたほうが近いかもしれません。

【GrowHair】GrowHair@yahoo.co.jp

鉄ヲタではないけれど。8月、京都から帰ってくる新幹線が熱海あたりのゲリラ豪雨にやられて遅れに遅れ、午前3時半に東京駅に着いたときは、めずらしい体験ができた上に自由席特急料金4,730円が返ってきて得した気分になったけど、9月20日(日)付のJapan Timesではとんでもない「被害」のことが報じられていた。鉄道を使って24時間で最長距離を移動するというギネスブックの記録に挑戦していた韓国在住のアメリカ人男性2人が雨で足止めを食らって、達成ならなかったという話だ。1992年以来記録が更新されていないことに目をつけた2人は、日本でこれを破ることができることを発見して、この夏に実行。夜9:30ごろ金沢を出て、青森、東京、博多を経てゴールを目指す途上にあった。ところが東海道新幹線が、浜松あたりの豪雨のため静岡県内で66分停まり、博多で乗り継げなくなったとのこと。それ聞いて、ついつい考えちゃうのは、その油揚げ横からいただき、だよね? コースまでそっくり真似っこではナンだから、九州新幹線が博多まで開通する日あたりが狙い目かな?

9月14日(日)は、東京ビッグサイトで開かれたGEISAIを見てきた。村上隆(5月にニューヨークでフィギュアが16億円で売れたという、あのお方)が主催するアートの祭典。AKB48のステージ、よかった〜。なんか、がんばってますぅ〜、って感じが伝わってきて、思わず力いっぱい応援したくなる。年齢の(親子ほど)離れた妹、って感じ。きゅんきゅんなのだ。

9月23日(火・祝)は「スピリチュアルの森」へ人形を撮りに。沢の水、増水してて、めっちゃ冷たかったー。あの撮ってる姿、ネットの掲示板の住人に撮られてたら、またバカ画像行きだわ。/新総理、ローゼンメイデンアニメ版第3期よろしくんくんっ。/ヴァニラ画廊のウェブサイトに、われわれの展示の案内が掲載されました。

■人形と写真4人展「幻妖の棲む森」
会期:10月23日(木)〜11月1日(土)
時間:平日12:00〜19:00 土日12:00〜17:00
会場:ヴァニラ画廊(東京都中央区銀座6-10-10 第2蒲田ビル4階)
< http://www.vanilla-gallery.com/gallery/doll&p/doll&p.html
>