CPP175 ゴブリンキャンバス gcan のコンセプトと主な内容
CPP175 Concept & Main Contents of Goblin Canvas gcan
黒月解析研究所 (KULOTSUKI ANALYSIS INSTITUTION) http://www.treeman9621.com/
CPP175 ゴブリンキャンバス gcan のコンセプトと主な内容

ゴブリンキャンバスgcanのコンセプトは、これまで取り扱ってきた画像サイズを上回るものを処理しようということです。これまでの黒月解析研究所の画像解析ソフトは、コンピュータのディスプレイサイズに応じたものでした。最初のソフトであるoz906oz401, oz402では、標準サイズから、縦横に、少しずつ画面を拡大できるようにしていましたが、go55以降のソフトでは、画像サイズを960×672 [pixel] に固定しました。様々な機能を組み込むにあたって、ここのところの問題をシンプルにしておくことで、新しい機能の導入に専念できたというわけです。

ところで、このたびゴブリントランスファーという画像解析ソフトをまとめ、ベクターで市販し始めましたが、これは、どちらかというと、科学研究のためのものではなく、一般の画像デザインのために利用してもらうものです。科学分野での画像解析を目的として開発してきたゴブリンアイ(と、これを繰り返し行うゴブリンブリンク)の技術を応用すれば、これまでめんどうに思われてきた、合成画像の切り抜き処理が、パッパッとかんたんに行えるかもしれないというアイディアがひらめいたので、やってみることにしたわけです。


1 ゴブリンキャンバスgcansnowwoman8_130.bmpを取り込む
画像が原寸のピクセルサイズで表示される(通常モード)

実際に組み上げてゆくと、パッパッとできるためには、型紙画像を準備する必要がありますし、これを制作するためにも、マウスによる手動の切り抜き作業に代わる、もっとスピーディでスマートな方法を生み出す必要がありました。これに対しては、多様な色条件で境界域値を設定する方法を充実するほか、画像に自動で輪郭線を描けるようにしました。これらにより、外部ファイルとして保存したあと、ペイントソフトなどを利用し、目的の対象部分にペンキを垂らして、型紙画像をつくることができます。さらに、アルゴリズムを工夫し、この輪郭線を自動でトレースして画像を切り取ることができる機能を開発しました。他にも色々な工夫がありますが、これらの機能によって、これまで力技で行っていた作業を、手順はいささか複雑ながら、パッパッのパッパッというイメージで、楽しく行うことができるようになりました。

このようになると、このゴブリントランスファーの、とりあえずは気にしないでおこうとしていた限界のことが、なんとなく気になります。つまり、処理できる画像のサイズが960×672 [pixel] 以内に限定されるということです。そこで、初心に戻って、ほとんど何もしないプログラムからスタートし、もっと大きな画像を取り込んで、これを表示できるものを組み上げることにしました。そして、さまざまな機能を加えてゆきました。

 図1は、完成したゴブリンキャンバスgcanに、1266×633 [pixel] のサイズの画像を取り込んだところです。これは「空を飛びたくなったゆきだるま」という絵本の8ページ目のイラストです。snowwoman8_130.bmpと名づけてあります。この「ゆきだるま」は「ゆき」という名の女性という設定なので、snowmanではなくsnowwomanということになります。130は、もとの画像の130%という意味です。ここで貼り込んだ画像サイズは、実際のコンピュータソフトのディスプレイ上のサイズです。

 ゴブリンキャンバスgcanにおけるディスプレイ画面のサイズは960×640 [pixel] です。これは変更がききません。上にあるメニューバーや、左にあるスイッチゾーン、そして、下にはコメントのためのスペースが、これに合わせて設けてあります。ただし、これらの奥にあるキャンバスのサイズは、960×640 [pixel] 1680×1120 [pixel] まで、4種類で設定することができます。外部ファイルの大きさは、このキャンバスのサイズとなります。

 ゴブリンキャンバスgcanにおけるディスプレイ画面のサイズが960×640 [pixel] で、このsnowwoman8_130.bmpのサイズが1266×633 [pixel] ですから、縦はおさまっているとして、横は1266960=360 [pixel] がはみ出てしまいます。これまでのソフトだと、この部分は切り捨てられていました。しかし、ゴブリンキャンバスgcanは、奥にあるキャンバスに、この画像を貼りつけてキープしています。このときの「画布サイズ」はデフォルト値の1440×960 [pixel] ですから、十分余地があります。この様子については、「全体視(鳥瞰)」の下にある[キャンバス]をクリックすると見ることができます。次の図2です。


2  [キャンバス]をオンにしたところ(キャンバス全体視モード)
キャンバス面(1440×960)gcanのディスプレイ画面(960×640)に表示される

 このときの画像の縮小は、C言語に備え付けられているStretchBlt( )関数というものでおこなっています。この関数は、どのようなサイズの画像でも、拡大や縮小をしてくれるので便利です。そのかわり、半端な値の処理のため、ときとして、画像にしわや染みのようなものが現れることがあります。このモードによる画像は、全体像を確認するためのものと考えてください。

 「全体視(鳥瞰)」の下にある[イメージ]をオンにすると、取り込んだ画像を、このgcanのディスプレイいっぱいに描きます。次の図3です。このときは、画像のサイズのほうが、gcanディスプレイより大きいので縮小画像となりますが、もともとgcanディスプレイより小さな画像では、この[イメージ]スイッチで、ディスプレイに収まる大きさに拡大されることになります。ただし、このときの拡大画像は、デジタルモザイク画像のままです。このgcanでは、拡大なめらか補間 (クッキリン) 処理は行いません。この処理は、小さな画像を拡大して、自然なパターンへと変換するためのものです。一方、ここでのゴブリンキャンバスgcanは、主に、もともと大きな画像について取り扱うことを目的としています。何もかも装備したソフトを作ろうとすると、それなりに価格も高くなってしまい、売れにくくなってしまいます。そこで、目的を細分化して、その目的に見合った機能を専門的に発達させるという戦略が、この世界でのニッチを得る一つの方法だと考えられるわけです。


3  [イメージ]をオンにしたところ(イメージ全体視モード)
画像(1266×633)gcanのディスプレイ画面(960×640)内に表示される

 ここで、ゴブリンキャンバスgcanの主な内容を、ソフト画面の上にあるメニューバーで、数字がついてあるページについてまとめておきます。次の表にあるコメント文は、上の図3にも描かれているように、画像の下のところに表示されるもののうち、各ページについて説明したものです。箇条書きに、そして、操作的に説明しました。一部、思考言語コアの記号を用いています。慣れれば、論理や操作の流れや関係が、これによって、つかみやすくなります。

[<>] は文章における等号のようなものです。日本語では「は」と読みかえてください。A[]B は「AならばB」のような意味です。「Aを操作すると、次はB」という意味のときもあります。(+) は、「同時に」という意味です。[色の交換] などの表示は、スイッチを表しています。これらの具体的な内容については、それぞれのマニュアルを参照してください。

 全体視(鳥瞰)のスイッチは「トップ」と「ゴブリンアイ」と「出現」のページにあります。ただし、「出現」のページでは、背景画像と転送画像の二つの画像を読み込みますから、どちらのサイズについて拡大縮小するかということを考えると、うまく整理がつかないので、「キャンバス全体視モード」だけにしてあります。

 このあと、図4から図9で、出現ページにおける画像処理の例を示します。もともと、絵本のためのイラストを使っていますので、新たな絵本のためのシーンのようなものになっています。商業的な、さまざまな目的に対応させるためには、フィルターから色変換までの加工ページを利用しつつ、型紙化と転送のページで、意図に沿った転送画像を作っておく必要があるでしょう。また、これらはビットマップ画像として、どの段階ででも外部保存できますので、これを、ペイントソフトやフォトショップなどで加工または利用して、使い道の幅を広げることができます。ゴブリンキャンバスgcanで取り扱われている画像は、ぎっしり色情報が詰まったビットマップ画像です。外部ファイルとしてから、他のソフトで2倍程度に拡大しても、それほど画質は低下しないと考えられます。

 (2010.02.13 Written by Kinohito KULOTSUKI )


4  背景画像として玄武洞(兵庫県)の画像を読み込む


5  転送画像として「空を飛びたくなったゆきだるま8」を取り込む


6  転送画像の透過窓を設定して実体化させる


7  透過窓の設定を変え、マウスで画像をドラッグして転送画像を移動させる


8  標準モードでの初期表示位置画像


9  標準モードで水平に移動したところ