(57)【要約】【課題】ユーザ操作によって表示された画像を、ユーザ操作に応じて処理する際、新たな演出効果を加えて当該画像を処理する画像処理プログラムおよび画像処理装置を提供する。【解決手段】画像生成手段は、ポインティングデバイスの出力に基づいて、入力画像を生成する。画像表示制御手段は、画像生成手段が生成した入力画像を表示手段に表示する。画像変更制御手段は、画像生成手段が生成した入力画像を複数の部分画像に分解し、当該部分画像ごとに、表示位置および表示態様の少なくとも一方を変更する処理を実行する。【選択図】図５
2010061472.tif 000002
【特許請求の範囲】
【請求項１】
ポインティングデバイスからの出力に応じて生成された画像に所定の処理を施す装置のコンピュータで実行される画像処理プログラムであって、
前記コンピュータを、
前記ポインティングデバイスの出力に基づいて、入力画像を生成する画像生成手段と、
前記画像生成手段が生成した入力画像を表示手段に表示する画像表示制御手段と、
前記画像生成手段が生成した入力画像を複数の部分画像に分解し、当該部分画像ごとに、表示位置および表示態様の少なくとも一方を変更する処理を実行する画像変更制御手段として機能させる、画像処理プログラム。
【請求項２】
前記画像変更制御手段は、ユーザによって消去操作が実行された場合、当該消去操作の対象となった部分画像を対象として前記変更する処理を行って、変更後の画像を前記表示手段に表示し、当該表示後に当該対象となった部分画像を表示画面から消去する、請求項１に記載の画像処理プログラム。
【請求項３】
前記画像変更制御手段は、前記入力画像の表示領域を複数画素で構成されるブロックに分割し、当該ブロックを単位として、前記入力画像を複数の部分画像に分解する、請求項１または２に記載の画像処理プログラム。
【請求項４】
前記コンピュータを、前記入力画像について、連続している部分を判定する連続判定手段として、さらに機能させ、
前記画像変更制御手段は、前記連続判定手段による判定に基づいて、連続している部分が同じ部分画像に属するように、前記入力画像を複数の部分画像に分解する、請求項１または２に記載の画像処理プログラム。
【請求項５】
前記画像変更制御手段は、前記入力画像の表示領域を複数画素で構成されるブロックに分割し、当該ブロックを単位として、前記入力画像を複数の部分画像に分解し、
前記連続判定手段は、前記入力画像がまたがるブロックを連続していると判定し、
前記画像変更制御手段は、さらに、前記連続判定手段による判定に基づいて、連続しているブロックが同じ部分画像に属するように、前記入力画像を複数の部分画像に分解する、請求項４に記載の画像処理プログラム。
【請求項６】
前記連続判定手段は、隣接する２つの前記ブロックのいずれか一方の隣接領域に前記入力画像が含まれている場合、当該２つのブロックが連続していると判定する、請求項５に記載の画像処理プログラム。
【請求項７】
前記連続判定手段は、隣接する２つの前記ブロックの両方の隣接領域に前記入力画像が含まれている場合、当該２つのブロックが連続していると判定する、請求項５に記載の画像処理プログラム。
【請求項８】
前記連続判定手段は、前記２つのブロックの一方ブロックの隣接領域に含まれる前記入力画像と、他方ブロックの隣接領域に含まれる前記入力画像が連続していることをさらに判定し、連続している場合に、当該２つのブロックが連続していると判定する、請求項７に記載の画像処理プログラム。
【請求項９】
前記連続判定手段は、或るブロックに連続していると判定した隣接ブロックにおいて、当該隣接ブロックと、当該隣接ブロックにさらに隣接する他のブロックが連続しているか否かを判定し、連続している場合に、当該或るブロックと当該隣接ブロックと当該他のブロックとが連続していると判定する、請求項５に記載の画像処理プログラム。
【請求項１０】
前記画像変更制御手段は、前記部分画像を構成する要素画像に対してそれぞれ同じ移動方向に同じ移動速度を与えることによって、前記部分画像ごとに表示位置を変更する、請求項１に記載の画像処理プログラム。
【請求項１１】
前記画像変更制御手段は、前記連続判定手段によって、連続していると判定された各ブロックに対して、それぞれ同じ移動方向に同じ移動速度を与えることによって、前記部分画像ごとに表示位置を変更する、請求項５に記載の画像処理プログラム。
【請求項１２】
前記装置は、当該装置周辺を撮像する撮像手段を備え、
前記画像表示制御手段は、前記撮像手段で撮像された撮像画像をリアルタイムで前記表示手段に表示して、前記画像生成手段が生成した入力画像を当該撮像画像に重畳して前記表示手段に表示する、請求項１または２に記載の画像処理プログラム。
【請求項１３】
前記画像生成手段は、前記ポインティングデバイスの出力に基づく手書き画像を生成する、請求項１または２に記載の画像処理プログラム。
【請求項１４】
前記画像生成手段は、前記ポインティングデバイスの出力に基づく位置に表示される所定の合成用画像を生成する、請求項１または２に記載の画像処理プログラム。
【請求項１５】
前記画像生成手段は、第１の前記入力画像が生成された後、前記ポインティングデバイスの出力に基づいて、第２の前記入力画像を生成し、
前記画像表示制御手段は、前記第１の入力画像と前記第２の入力画像を合成して表示し、
前記画像変更制御手段は、前記第１の入力画像および前記第２の入力画像を合成した画像をを１つの画像として当該画像を分解する、請求項１または２に記載の画像処理プログラム。
【請求項１６】
前記画像変更制御手段は、ユーザによって全てを消去する消去操作が実行された場合、前記入力画像の全体を複数の部分画像に分解し、当該複数の部分画像の全てについて、表示位置および表示態様の少なくとも一方を変更する処理をそれぞれ行って前記表示手段に表示し、当該表示後に当該部分画像を全て表示画面から消去する、請求項２に記載の画像処理プログラム。
【請求項１７】
前記画像変更制御手段は、前記部分画像ごとに異なる表示位置に移動させて前記表示手段に表示させる、請求項２に記載の画像処理プログラム。
【請求項１８】
前記画像変更制御手段は、前記部分画像ごとに前記表示画面外まで移動させることによって、当該画像を当該表示画面から消去する、請求項１７に記載の画像処理プログラム。
【請求項１９】
前記画像変更制御手段は、前記部分画像ごとに異なる方向の初速度を与えた後、前記複数の部分画像に共通の特定方向の加速度を与えることによって、当該画像を当該表示画面から消去する、請求項１７に記載の画像処理プログラム。
【請求項２０】
前記ポインティングデバイスは、前記表示手段の表示画面を覆うタッチパネルである、請求項１または２に記載の画像処理プログラム。
【請求項２１】
前記画像変更制御手段は、前記画像生成手段が生成した入力画像を、それぞれ画像の色毎に分解する、請求項１または２に記載の画像処理プログラム。
【請求項２２】
前記ポインティングデバイスから出力される入力位置の履歴をメモリに記憶する入力位置履歴記憶制御手段として、さらに前記コンピュータを機能させ、
前記画像変更制御手段は、前記入力位置の履歴に基づいて、前記画像生成手段が入力画像の生成に用いた入力位置のうち、当該入力位置の出力が途切れずに連続した入力位置群から生成された入力画像毎に、前記画像生成手段が生成した入力画像を分解する、請求項１または２に記載の画像処理プログラム。
【請求項２３】
前記画像変更制御手段は、前記画像生成手段が生成した入力画像を、予め設定された網の目状に分解する、請求項１または２に記載の画像処理プログラム。
【請求項２４】
前記画像変更制御手段は、前記分解した部分画像ごとにそれぞれ回転させて前記表示手段に表示させる、請求項１に記載の画像処理プログラム。
【請求項２５】
前記画像変更制御手段は、前記分解した部分画像ごとにそれぞれ拡大または縮小して前記表示手段に表示させる、請求項１に記載の画像処理プログラム。
【請求項２６】
前記画像変更制御手段は、前記分解した部分画像ごとにそれぞれ画像色を変更して前記表示手段に表示させる、請求項１に記載の画像処理プログラム。
【請求項２７】
前記画像変更制御手段は、前記分解した部分画像ごとにそれぞれ点滅させて前記表示手段に表示させる、請求項１に記載の画像処理プログラム。
【請求項２８】
ポインティングデバイスからの出力に応じて生成された画像に所定の処理を施す画像処理装置であって、
前記ポインティングデバイスの出力に基づいて、入力画像を生成する画像生成手段と、
前記画像生成手段が生成した入力画像を表示手段に表示する画像表示制御手段と、
前記画像生成手段が生成した入力画像を複数の部分画像に分解し、当該部分画像ごとに、表示位置および表示態様の少なくとも一方を変更する処理を実行する画像変更制御手段とを備える、画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理プログラムおよび画像処理装置に関し、より特定的には、表示された画像を消去する画像処理プログラムおよび画像処理装置に関する。
【背景技術】
【０００２】
従来、ユーザ操作に応じて、表示された画像を消去する装置が各種開発されている（例えば、特許文献１参照）。上記特許文献１で開示されたゲーム装置は、プレイヤの手書き入力に応じた手書き画像が表示される。そして、当該ゲーム装置は、プレイヤが所定の消去操作を行うことによって、表示された手書き画像が消去される。例えば、プレイヤが全消去ボタンを操作した場合、それまで表示されていた手書き画像の線種別が波線となり、描画色が変更（例えば、淡色に変更）されて表示される。
【特許文献１】特開２００６−１６７１９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記特許文献１で開示されたゲーム装置は、手書き画像全体の線種別および描画色を変更することによって消去しているだけであるので、ユーザが消去操作したとしてもその操作に対する演出効果もなく、操作に対するイベント性が薄い。したがって、ユーザは、消去操作自体に面白みを感じないため、手書き画像を消去する消去操作自体が単なる画一的な操作として取り扱われてしまう。つまり、上記特許文献１で開示されたゲーム装置は、ユーザ操作（消去操作）に応じて、手書き画像全体に対する処理が行われるため、当該手書き画像に対して新規な演出効果を得ることが難しいものであった。
【０００４】
それ故に、本発明の目的は、ユーザ操作によって表示された画像を、ユーザ操作に応じて処理する際、新たな演出効果を加えて当該画像を処理する画像処理プログラムおよび画像処理装置を提供することである。
【課題を解決するための手段】
【０００５】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、本欄における括弧内の参照符号、ステップ番号、および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００６】
第１の発明は、ポインティングデバイス（１３）からの出力に応じて生成された画像（Ｉｈｗ、Ｉｓｔ）に所定の処理を施す装置のコンピュータ（３１）で実行される画像処理プログラムである。画像処理プログラムは、画像生成手段（ステップ５４を実行するＣＰＵ３１；以下、ステップ番号のみを記載する）、画像表示制御手段（Ｓ５４）、および画像変更制御手段（Ｓ５６、Ｓ５７）として、コンピュータを機能させる。画像生成手段は、ポインティングデバイスの出力に基づいて、入力画像（Ｉｈｗ、Ｉｓｔ）を生成する。画像表示制御手段は、画像生成手段が生成した入力画像を表示手段（１２）に表示する。画像変更制御手段は、画像生成手段が生成した入力画像を複数の部分画像（Ｉｈｗ１〜Ｉｈｗ５、Ｉｓｔｎ）に分解し、当該部分画像ごとに、表示位置および表示態様の少なくとも一方を変更する処理を実行する。なお、ポインティングデバイスは、画面上での入力位置や座標を指定する入力装置であり、例えば、タッチパネル、マウス、トラックパッド、トラックボール、ペンタブレット、ジョイスティック、ゲームコントローラのハウジングで指し示された画面位置を検出するシステム等で実現される。また、表示位置または表示態様を変更する処理は、分解された画像毎に移動させる処理、分解された画像毎に形状（拡大、縮小等）を変化させる処理、分解された画像毎に表示方向を変化（回転）させる処理、分解された画像毎に色を変化させる処理、分解された画像毎に点滅させる処理、分解された画像毎に透明度を変化させる処理等を含んでいる。なお、表示位置または表示態様を変更する処理は、入力画像の全体ではなく、入力画像の一部を対象としてもよい。
【０００７】
第２の発明は、上記第１の発明において、画像変更制御手段は、ユーザによって消去操作が実行された場合、当該消去操作の対象となった部分画像を対象として変更する処理を行って、変更後の画像を表示手段に表示し、当該表示後に当該対象となった部分画像を表示画面から消去する。なお、消去操作の対象となる部分画像は、入力画像の全てであってもいいし、入力画像の一部であってもよい。
【０００８】
第３の発明は、上記第１または第２の発明において、画像変更制御手段は、入力画像の表示領域を複数画素で構成されるブロックに分割し（Ｓ７１）、当該ブロックを単位として、入力画像を複数の部分画像に分解する。
【０００９】
第４の発明は、上記第１または第２の発明において、連続判定手段（Ｓ７６、Ｓ９４、Ｓ１１４、Ｓ１３４、Ｓ１５３）として、さらに機能させる。連続判定手段は、入力画像について、連続している部分を判定する。画像変更制御手段は、連続判定手段による判定に基づいて、連続している部分が同じ部分画像に属するように、入力画像を複数の部分画像に分解する。
【００１０】
第５の発明は、上記第４の発明において、画像変更制御手段は、入力画像の表示領域を複数画素で構成されるブロックに分割し、当該ブロックを単位として、入力画像を複数の部分画像に分解する。連続判定手段は、入力画像がまたがるブロックを連続していると判定する。画像変更制御手段は、さらに、連続判定手段による判定に基づいて、連続しているブロックが同じ部分画像に属するように、入力画像を複数の部分画像に分解する。
【００１１】
第６の発明は、上記第５の発明において、連続判定手段は、隣接する２つのブロックのいずれか一方の隣接領域に入力画像が含まれている場合、当該２つのブロックが連続していると判定する（図２０判断基準Ａ）。
【００１２】
第７の発明は、上記第５の発明において、連続判定手段は、隣接する２つのブロックの両方の隣接領域に入力画像が含まれている場合、当該２つのブロックが連続していると判定する（図２０判断基準Ｂ）。
【００１３】
第８の発明は、上記第７の発明において、連続判定手段は、２つのブロックの一方ブロックの隣接領域に含まれる入力画像と、他方ブロックの隣接領域に含まれる入力画像が連続していることをさらに判定し、連続している場合に、当該２つのブロックが連続していると判定する（図２０判断基準Ｃ）。
【００１４】
第９の発明は、上記第５の発明において、連続判定手段は、或るブロックに連続していると判定した隣接ブロックにおいて、当該隣接ブロックと、当該隣接ブロックにさらに隣接する他のブロックが連続しているか否かを判定し、連続している場合に、当該或るブロックと当該隣接ブロックと当該他のブロックとが連続していると判定する（図１２〜図１６）。
【００１５】
第１０の発明は、上記第１の発明において、画像変更制御手段は、部分画像を構成する要素画像に対してそれぞれ同じ移動方向に同じ移動速度を与えることによって、部分画像ごとに表示位置を変更する。
【００１６】
第１１の発明は、上記第５の発明において、画像変更制御手段は、連続判定手段によって、連続していると判定された各ブロックに対して、それぞれ同じ移動方向に同じ移動速度を与えることによって、部分画像ごとに表示位置を変更する（図２３Ａ）。
【００１７】
第１２の発明は、上記第１または第２の発明において、装置は、当該装置周辺を撮像する撮像手段（２３、２５）を備える。画像表示制御手段は、撮像手段で撮像された撮像画像をリアルタイムで表示手段に表示して、画像生成手段が生成した入力画像を当該撮像画像に重畳して表示手段に表示する。
【００１８】
第１３の発明は、上記第１または第２の発明において、画像生成手段は、ポインティングデバイスの出力に基づく手書き画像（Ｉｈｗ）を生成する。
【００１９】
第１４の発明は、上記第１または第２の発明において、ポインティングデバイスの出力に基づく位置に表示される所定の合成用画像（Ｉｓｔ）を生成する。
【００２０】
第１５の発明は、上記第１または第２の発明において、画像生成手段は、第１の入力画像が生成された後、ポインティングデバイスの出力に基づいて、第２の入力画像を生成する。画像表示制御手段は、第１の入力画像と第２の入力画像を合成して表示する。画像変更制御手段は、第１の入力画像および第２の入力画像を合成した画像をを１つの画像として当該画像を分解する。
【００２１】
第１６の発明は、上記第２の発明において、画像変更制御手段は、ユーザによって全てを消去する消去操作が実行された場合、入力画像の全体を複数の部分画像に分解し、当該複数の部分画像の全てについて、表示位置および表示態様の少なくとも一方を変更する処理をそれぞれ行って表示手段に表示し、当該表示後に当該部分画像を全て表示画面から消去する。
【００２２】
第１７の発明は、上記第２の発明において、画像変更制御手段は、部分画像ごとに異なる表示位置に移動させて表示手段に表示させる。
【００２３】
第１８の発明は、上記第１７の発明において、画像変更制御手段は、部分画像ごとに表示画面外まで移動させることによって、当該画像を当該表示画面から消去する。
【００２４】
第１９の発明は、上記第１７の発明において、画像変更制御手段は、部分画像ごとに異なる方向の初速度を与えた後、複数の部分画像に共通の特定方向の加速度を与えることによって、当該画像を当該表示画面から消去する。
【００２５】
第２０の発明は、上記第１または第２の発明において、ポインティングデバイスは、表示手段の表示画面を覆うタッチパネルである。
【００２６】
第２１の発明は、上記第１または第２の発明において、画像変更制御手段は、画像生成手段が生成した入力画像を、それぞれ画像の色毎に分解する。
【００２７】
第２２の発明は、上記第１または第２の発明において、入力位置履歴記憶制御手段として、さらにコンピュータを機能させる。入力位置履歴記憶制御手段は、ポインティングデバイスから出力される入力位置の履歴をメモリ（３２）に記憶する。画像変更制御手段は、入力位置の履歴に基づいて、画像生成手段が入力画像の生成に用いた入力位置のうち、当該入力位置の出力が途切れずに連続した入力位置群から生成された入力画像毎に、画像生成手段が生成した入力画像を分解する。
【００２８】
第２３の発明は、上記第１または第２の発明において、画像変更制御手段は、画像生成手段が生成した入力画像を、予め設定された網の目状に分解する。
【００２９】
第２４の発明は、上記第１の発明において、画像変更制御手段は、分解した部分画像ごとにそれぞれ回転させて表示手段に表示させる。
【００３０】
第２５の発明は、上記第１の発明において、画像変更制御手段は、分解した部分画像ごとにそれぞれ拡大または縮小して表示手段に表示させる。
【００３１】
第２６の発明は、上記第１の発明において、分解した部分画像ごとにそれぞれ画像色を変更して表示手段に表示させる。
【００３２】
第２７の発明は、上記第１の発明において、画像変更制御手段は、分解した部分画像ごとにそれぞれ点滅させて表示手段に表示させる。
【００３３】
第２８の発明は、ポインティングデバイスからの出力に応じて生成された画像に所定の処理を施す画像処理装置である。画像処理装置は、画像生成手段、画像表示制御手段、および画像変更制御手段を備える。画像生成手段は、ポインティングデバイスの出力に基づいて、入力画像を生成する。画像表示制御手段は、画像生成手段が生成した入力画像を表示手段に表示する。画像変更制御手段は、画像生成手段が生成した入力画像を複数の部分画像に分解し、当該部分画像ごとに、表示位置および表示態様の少なくとも一方を変更する処理を実行する。
【発明の効果】
【００３４】
上記第１の発明によれば、ユーザ操作によって表示された入力画像が分解された部分画像毎に表示位置および表示態様の少なくとも一方が変更されるため、当該入力画像に新たな演出効果を加えて当該入力画像を処理することができる。
【００３５】
上記第２の発明によれば、ユーザ操作によって表示された入力画像をユーザ部分消去や全消去操作に応じて部分消去や全消去処理する際、部分画像毎に表示位置および表示態様の少なくとも一方が変更されて消去されるため、当該入力画像に新たな演出効果を加えて当該入力画像を消去することができる。
【００３６】
上記第３の発明によれば、画像分解単位を画素単位でなく、それよりも大きいブロック単位とすることによって、画像を分解する処理の処理負荷を軽減することができる。
【００３７】
上記第４の発明によれば、ユーザ操作によって表示された入力画像を処理する際、連続している部分毎に分解画像に対してそれぞれ新たな演出効果を加えることができる。
【００３８】
上記第５の発明によれば、連続している部分の判定を画素単位でなく、それよりも大きいブロック単位とすることによって、当該判定処理負荷を軽減することができる。
【００３９】
上記第６〜第８の発明によれば、隣接ブロック間の接続判定を行う際、隣接領域の画素のみを用いて、正確な接続判定が可能となる。また、上記第６〜第８の発明それぞれの判定基準を用いることによってブロック間の接続判定結果が変化するため、適切な判定基準を用いることによって処理負荷や入力画像を分解する精度等を調整することができる。
【００４０】
上記第９の発明によれば、再帰的な処理を繰り返すことによって、様々な態様で接続されたブロックのグループを正確に判定することができる。
【００４１】
上記第１０の発明によれば、要素画像で構成される部分画像毎に１つのオブジェクトとしてみなさなくても、部分画像単位で移動させることができる。
【００４２】
上記第１１の発明によれば、同じグループに属する複数のブロックを１つのオブジェクトとしてみなさなくても、グループ単位で移動させることができる。
【００４３】
上記第１２〜第１４の発明によれば、撮像画像の上にユーザの手書き線、手書き文字、手書きマーク（標号、スタンプ）群を書き加えるような処理が可能となる。
【００４４】
上記第１５の発明によれば、ユーザが生成した画像数等に影響されることなく、同様の画像分解処理や画像演出処理が可能となる。
【００４５】
上記第１６の発明によれば、ユーザの全消去操作に応じて全消去することが可能となる。
【００４６】
上記第１７〜第１９の発明によれば、部分画像毎に異なる方向へ移動させて消去するような画像演出が可能となる。
【００４７】
上記第２０の発明によれば、タッチパネルを用いて操作することによって、ユーザの直感的な操作が可能となる。
【００４８】
上記第２１〜第２３の発明によれば、ユーザ操作に応じて生成した画像を様々な単位で部分画像に分解し、当該部分画像に新たな演出効果を加えて当該画像を処理することができる。
【００４９】
上記第２４〜第２７の発明によれば、部分画像に様々な演出効果を加えて入力画像を処理することができる。
【００５０】
また、本発明の画像処理装置によれば、上述した画像処理プログラムと同様の効果を得ることができる。
【発明を実施するための最良の形態】
【００５１】
図面を参照して、本発明の一実施形態に係る画像処理プログラムを実行する画像処理装置について説明する。本発明の画像処理プログラムは、任意のコンピュータシステムで実行されることによって適用することができるが、画像処理装置の一例としてゲーム装置１を用い、ゲーム装置１で実行される画像処理プログラムを用いて説明する。なお、図１は、本発明の画像処理プログラムを実行するゲーム装置１の外観図である。ここでは、ゲーム装置１の一例として、携帯ゲーム装置を示す。なお、ゲーム装置１は、カメラを内蔵しており、当該カメラによって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりする撮像装置としても機能する。なお、本明細書においては、カメラによって画像データを取り込むことを「撮像」と記し、撮像した画像データを記憶することを「撮影」と記す。
【００５２】
図１において、ゲーム装置１は、折り畳み型の携帯ゲーム装置であり、開いた状態（開状態）のゲーム装置１を示している。ゲーム装置１は、開いた状態においてもユーザが両手または片手で把持することができるようなサイズで構成される。
【００５３】
ゲーム装置１は、下側ハウジング１１および上側ハウジング２１を有する。下側ハウジング１１と上側ハウジング２１とは、開閉可能（折り畳み可能）に連結されている。図１の例では、下側ハウジング１１および上側ハウジング２１は、それぞれ横長の長方形の板状で形成され、互いの長辺部分で回動可能に連結されている。通常、ユーザは、開状態でゲーム装置１を使用する。そして、ユーザは、ゲーム装置１を使用しない場合には閉状態としてゲーム装置１を保管する。また、図１に示した例では、ゲーム装置１は、上記閉状態および開状態のみでなく、下側ハウジング１１と上側ハウジング２１とのなす角度が閉状態と開状態との間の任意の角度において、連結部分に発生する摩擦力などによってその開閉角度を維持することができる。つまり、上側ハウジング２１を下側ハウジング１１に対して任意の角度で静止させることができる。
【００５４】
下側ハウジング１１には、下側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１２が設けられる。下側ＬＣＤ１２は横長形状であり、長辺方向が下側ハウジング１１の長辺方向に一致するように配置される。なお、本実施形態では、ゲーム装置１に内蔵されている表示装置としてＬＣＤを用いているが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置等、他の任意の表示装置を利用してもよい。また、ゲーム装置１は、任意の解像度の表示装置を利用することができる。
【００５５】
下側ハウジング１１には、入力装置として、各操作ボタン１４Ａ〜１４Ｋおよびタッチパネル１３が設けられる。図１に示されるように、各操作ボタン１４Ａ〜１４Ｋのうち、方向入力ボタン１４Ａ、操作ボタン１４Ｂ、操作ボタン１４Ｃ、操作ボタン１４Ｄ、操作ボタン１４Ｅ、電源ボタン１４Ｆ、スタートボタン１４Ｇ、およびセレクトボタン１４Ｈは、上側ハウジング２１と下側ハウジング１１とを折りたたんだときに内側となる、下側ハウジング１１の内側主面上に設けられる。方向入力ボタン１４Ａは、例えば選択操作等に用いられる。各操作ボタン１４Ｂ〜１４Ｅは、例えば決定操作やキャンセル操作等に用いられる。電源ボタン１４Ｆは、ゲーム装置１の電源をオン／オフするために用いられる。図１に示す例では、方向入力ボタン１４Ａおよび電源ボタン１４Ｆは、下側ハウジング１１の内側主面中央付近に設けられる下側ＬＣＤ１２に対して、左右一方側（図１では左側）の当該主面上に設けられる。また、操作ボタン１４Ｂ〜１４Ｅ、スタートボタン１４Ｇ、およびセレクトボタン１４Ｈは、下側ＬＣＤ１２に対して左右他方側（図１では右側）となる下側ハウジング１１の内側主面上に設けられる。方向入力ボタン１４Ａ、操作ボタン１４Ｂ〜１４Ｅ、スタートボタン１４Ｇ、およびセレクトボタン１４Ｈは、ゲーム装置１に対する各種操作を行うために用いられる。
【００５６】
なお、図１においては、操作ボタン１４Ｉ〜１４Ｋの図示を省略している。例えば、Ｌボタン１４Ｉは、下側ハウジング１１の上側面の左端部に設けられ、Ｒボタン１４Ｊは、下側ハウジング１１の上側面の右端部に設けられる。Ｌボタン１４ＩおよびＲボタン１４Ｊは、ゲーム装置１に対して、例えば撮影指示操作（シャッター操作）を行うために用いられる。さらに、音量ボタン１４Ｋは、下側ハウジング１１の左側面に設けられる。音量ボタン１４Ｋは、ゲーム装置１が備えるスピーカの音量を調整するために用いられる。
【００５７】
また、ゲーム装置１は、各操作ボタン１４Ａ〜１４Ｋとは別の入力装置として、さらにタッチパネル１３を備えている。タッチパネル１３は、下側ＬＣＤ１２の画面上を覆うように装着されている。なお、本実施形態では、タッチパネル１３は、例えば抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル１３は、抵抗膜方式に限らず、任意の押圧式のタッチパネルを用いることができる。また、本実施形態では、タッチパネル１３として、例えば下側ＬＣＤ１２の解像度と同解像度（検出精度）のものを利用する。ただし、必ずしもタッチパネル１３の解像度と下側ＬＣＤ１２の解像度とが一致している必要はない。また、下側ハウジング１１の右側面には、タッチペン２７の挿入口（図１に示す破線）が設けられている。上記挿入口は、タッチパネル１３に対する操作を行うために用いられるタッチペン２７を収納することができる。なお、タッチパネル１３に対する入力は、通常タッチペン２７を用いて行われるが、タッチペン２７に限らずユーザの指等でタッチパネル１３を操作することも可能である。
【００５８】
また、下側ハウジング１１の右側面には、メモリカード２８を収納するための挿入口（図１では、二点鎖線で示している）が設けられている。この挿入口の内側には、ゲーム装置１とメモリカード２８とを電気的に接続するためのコネクタ（図示せず）が設けられる。メモリカード２８は、例えばＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカードであり、上記コネクタに着脱自在に装着される。メモリカード２８は、例えば、ゲーム装置１によって撮像された画像を記憶（保存）したり、他の装置で生成された画像をゲーム装置１に読み込んだりするため等に用いられる。
【００５９】
さらに、下側ハウジング１１の上側面には、メモリカード２９を収納するための挿入口（図１では、一点鎖線で示している）が設けられている。この挿入口の内側にも、ゲーム装置１とメモリカード２９とを電気的に接続するためのコネクタ（図示せず）が設けられる。メモリカード２９は、画像処理プログラムやゲームプログラム等を記憶した記憶媒体であり、下側ハウジング１１に設けられた挿入口に着脱自在に装着される。
【００６０】
下側ハウジング１１と上側ハウジング２１との連結部の左側部分には、３つのＬＥＤ１５Ａ〜１５Ｃが取り付けられる。ここで、ゲーム装置１は、他の機器との間で無線通信を行うことが可能であり、第１ＬＥＤ１５Ａは、無線通信が確立している場合に点灯する。第２ＬＥＤ１５Ｂは、ゲーム装置１の充電中に点灯する。第３ＬＥＤ１５Ｃは、ゲーム装置１の電源がオンである場合に点灯する。したがって、３つのＬＥＤ１５Ａ〜１５Ｃによって、ゲーム装置１の通信確立状況、充電状況、および、電源のオン／オフ状況をユーザに通知することができる。
【００６１】
一方、上側ハウジング２１には、上側ＬＣＤ２２が設けられる。上側ＬＣＤ２２は横長形状であり、長辺方向が上側ハウジング２１の長辺方向に一致するように配置される。なお、下側ＬＣＤ１２と同様、上側ＬＣＤ２２に代えて、他の任意の方式および任意の解像度の表示装置を利用してもよい。また、上側ＬＣＤ２２上を覆うように、タッチパネルを設けてもかまわない。
【００６２】
また、上側ハウジング２１には、２つのカメラ（内側カメラ２３および外側カメラ２５）が設けられる。図１に示されるように、内側カメラ２３は、上側ハウジング２１の連結部付近の内側主面に取り付けられる。一方、外側カメラ２５は、内側カメラ２３が取り付けられる内側主面の反対側の面、すなわち、上側ハウジング２１の外側主面（ゲーム装置１が閉状態となった場合に外側となる面であり、図１に示す上側ハウジング２１の背面）に取り付けられる。なお、図１においては、外側カメラ２５を破線で示している。これによって、内側カメラ２３は、上側ハウジング２１の内側主面が向く方向を撮像することが可能であり、外側カメラ２５は、内側カメラ２３の撮像方向の逆方向、すなわち、上側ハウジング２１の外側主面が向く方向を撮像することが可能である。このように、本実施形態では、２つの内側カメラ２３および外側カメラ２５の撮像方向が互いに逆方向となるように設けられる。例えば、ユーザは、ゲーム装置１からユーザの方を見た景色を内側カメラ２３で撮像することができるとともに、ゲーム装置１からユーザの反対側の方向を見た景色を外側カメラ２５で撮像することができる。なお、下側ＬＣＤ１２および／または上側ＬＣＤ２２は、内側カメラ２３または外側カメラ２５で撮像されている画像をリアルタイムに表示するために用いられることもある。
【００６３】
なお、上記連結部付近の内側主面には、音声入力装置としてマイク（図２に示すマイク４３）が収納されている。そして、上記連結部付近の内側主面には、マイク４３がゲーム装置１外部の音を検知できるように、マイクロフォン用孔１６が形成される。マイク４３を収納する位置およびマイクロフォン用孔１６の位置は必ずしも上記連結部である必要はなく、例えば下側ハウジング１１にマイク４３を収納し、マイク４３の収納位置に対応させて下側ハウジング１１にマイクロフォン用孔１６を設けるようにしても良い。
【００６４】
また、上側ハウジング２１の外側主面には、第４ＬＥＤ２６（図１では、破線で示す）が取り付けられる。第４ＬＥＤ２６は、内側カメラ２３または外側カメラ２５によって撮像が行われている間点灯する。また、内側カメラ２３または外側カメラ２５によって動画が撮像（撮像画像を動画として記憶）される間は点滅させても良い。なお、ＬＥＤが画面に映り込むことを防ぐために、シャッターが押された瞬間から、当該シャッターが押された瞬間の撮像画像の記憶が完了するまでの間は第４ＬＥＤ２６を消灯させても良い。第４ＬＥＤ２６によって、ゲーム装置１による撮像が行われていることを撮像対象者や周囲に通知することができる。
【００６５】
また、上側ハウジング２１の内側主面中央付近に設けられる上側ＬＣＤ２２に対して、左右両側の当該主面に音抜き孔２４がそれぞれ形成される。音抜き孔２４の奥の上側ハウジング２１内には、それぞれスピーカが収納されている。音抜き孔２４は、スピーカからの音をゲーム装置１の外部に放出するための孔である。
【００６６】
以上に説明したように、上側ハウジング２１には、画像を撮像するための構成である内側カメラ２３および外側カメラ２５と、各種画像を表示するための表示手段である上側ＬＣＤ２２とが設けられる。一方、下側ハウジング１１には、ゲーム装置１に対する操作入力を行うための入力装置（タッチパネル１３および各ボタン１４Ａ〜１４Ｋ）と、各種画像を表示するための表示手段である下側ＬＣＤ１２とが設けられる。当該入力装置は、例えば、ゲーム装置１を使用する際には、下側ＬＣＤ１２や上側ＬＣＤ２２に撮像画像（カメラによって撮像された画像）を表示しながら、下側ハウジング１１をユーザが把持して入力装置に対する入力を行うような用途に用いることができる。
【００６７】
次に、図２を参照して、ゲーム装置１の内部構成を説明する。なお、図２は、ゲーム装置１の内部構成の一例を示すブロック図である。
【００６８】
図２において、ゲーム装置１は、ＣＰＵ３１と、メインメモリ３２と、メモリ制御回路３３と、保存用データメモリ３４と、プリセットデータ用メモリ３５と、メモリカードインターフェース（メモリカードＩ／Ｆ）３６および３７と、無線通信モジュール３８と、ローカル通信モジュール３９と、リアルタイムクロック（ＲＴＣ）４０と、電源回路４１と、インターフェース回路（Ｉ／Ｆ回路）４２等との電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて、下側ハウジング１１（または上側ハウジング２１でもよい）内に収納される。
【００６９】
ＣＰＵ３１は、所定のプログラムを実行するための情報処理手段である。本実施形態では、所定のプログラムがゲーム装置１内のメモリ（例えば保存用データメモリ３４）やメモリカード２８および／または２９に記憶されており、ＣＰＵ３１は、当該所定のプログラムを実行することによって、後述する画像処理を実行する。なお、ＣＰＵ３１によって実行されるプログラムは、ゲーム装置１内のメモリに予め記憶されていてもよいし、メモリカード２８および／または２９から取得されてもよいし、他の機器との通信によって他の機器から取得されてもよい。
【００７０】
ＣＰＵ３１には、メインメモリ３２、メモリ制御回路３３、およびプリセットデータ用メモリ３５が接続される。また、メモリ制御回路３３には、保存用データメモリ３４が接続される。メインメモリ３２は、ＣＰＵ３１のワーク領域やバッファ領域として用いられる記憶手段である。すなわち、メインメモリ３２は、上記情報処理に用いられる各種データを記憶したり、外部（メモリカード２８および２９や他の機器等）から取得されるプログラムを記憶したりする。本実施形態では、メインメモリ３２として、例えばＰＳＲＡＭ（Ｐｓｅｕｄｏ−ＳＲＡＭ）を用いる。保存用データメモリ３４は、ＣＰＵ３１によって実行されるプログラムや内側カメラ２３および外側カメラ２５によって撮像された画像のデータ等を記憶するための記憶手段である。保存用データメモリ３４は、不揮発性の記憶媒体によって構成されており、例えば本実施例ではＮＡＮＤ型フラッシュメモリで構成される。メモリ制御回路３３は、ＣＰＵ３１の指示に従って、保存用データメモリ３４に対するデータの読み出しおよび書き込みを制御する回路である。プリセットデータ用メモリ３５は、ゲーム装置１において予め設定される各種パラメータ等のデータ（プリセットデータ）を記憶するための記憶手段である。プリセットデータ用メモリ３５としては、ＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）バスによってＣＰＵ３１と接続されるフラッシュメモリを用いることができる。
【００７１】
メモリカードＩ／Ｆ３６および３７は、それぞれＣＰＵ３１に接続される。メモリカードＩ／Ｆ３６は、コネクタに装着されたメモリカード２８に対するデータの読み出しおよび書き込みを、ＣＰＵ３１の指示に応じて行う。また、メモリカードＩ／Ｆ３７は、コネクタに装着されたメモリカード２９に対するデータの読み出しおよび書き込みを、ＣＰＵ３１の指示に応じて行う。本実施形態では、内側カメラ２３および外側カメラ２５によって撮像された画像データや他の装置から受信された画像データがメモリカード２８に書き込まれたり、メモリカード２８に記憶された画像データがメモリカード２８から読み出されて保存用データメモリ３４に記憶されたりする。また、メモリカード２９に記憶された各種プログラムが、ＣＰＵ３１によって読み出されて実行されたりする。
【００７２】
なお、本発明の画像処理プログラムは、メモリカード２９等の外部記憶媒体を通じてコンピュータシステムに供給されるだけでなく、有線または無線の通信回線を通じてコンピュータシステムに供給されてもよい。また、画像処理プログラムは、コンピュータシステム内部の不揮発性記憶装置に予め記憶されていてもよい。なお、画像処理プログラムを記憶する情報記憶媒体としては、上記不揮発性記憶装置に限らず、ＣＤ−ＲＯＭ、ＤＶＤ、あるいはそれらに類する光学式ディスク状記憶媒体でもよい。
【００７３】
無線通信モジュール３８は、例えばＩＥＥＥ８０２．１１．ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。また、ローカル通信モジュール３９は、所定の通信方式により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール３８およびローカル通信モジュール３９は、ＣＰＵ３１に接続される。ＣＰＵ３１は、無線通信モジュール３８を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール３９を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【００７４】
また、ＣＰＵ３１には、ＲＴＣ４０および電源回路４１が接続される。ＲＴＣ４０は、時間をカウントしてＣＰＵ３１に出力する。例えば、ＣＰＵ３１は、ＲＴＣ４０によって計時された時間に基づいて、現在時刻（日付）等を計算することもできる。電源回路４１は、ゲーム装置１が有する電源（典型的には電池であり、下側ハウジング１１に収納される）から供給される電力を制御し、ゲーム装置１の各部品に電力を供給する。
【００７５】
また、ゲーム装置１は、マイク４３およびアンプ４４を備えている。マイク４３およびアンプ４４は、それぞれＩ／Ｆ回路４２に接続される。マイク４３は、ゲーム装置１に向かって発声されたユーザの音声を検知して、当該音声を示す音声信号をＩ／Ｆ回路４２に出力する。アンプ４４は、Ｉ／Ｆ回路４２から音声信号を増幅してスピーカ（図示せず）から出力させる。Ｉ／Ｆ回路４２は、ＣＰＵ３１に接続される。
【００７６】
また、タッチパネル１３は、Ｉ／Ｆ回路４２に接続される。Ｉ／Ｆ回路４２は、マイク４３およびアンプ４４（スピーカ）の制御を行う音声制御回路と、タッチパネル１３の制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するＡ／Ｄ変換およびＤ／Ａ変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル１３からの信号に基づいて所定の形式のタッチ位置データを生成してＣＰＵ３１に出力する。例えば、タッチ位置データは、タッチパネル１３の入力面に対して入力が行われた位置の座標を示すデータである。なお、タッチパネル制御回路は、タッチパネル１３からの信号の読み込み、および、タッチ位置データの生成を所定時間に１回の割合で行う。ＣＰＵ３１は、Ｉ／Ｆ回路４２を介して、タッチ位置データを取得することにより、タッチパネル１３に対して入力が行われた位置を知ることができる。
【００７７】
操作ボタン１４は、上記各操作ボタン１４Ａ〜１４Ｋから構成され、ＣＰＵ３１に接続される。操作ボタン１４からＣＰＵ３１へは、各操作ボタン１４Ａ〜１４Ｋに対する入力状況（押下されたか否か）を示す操作データが出力される。ＣＰＵ３１は、操作ボタン１４から操作データを取得することによって、操作ボタン１４に対する入力に応じた処理を実行する。
【００７８】
内側カメラ２３および外側カメラ２５は、それぞれＣＰＵ３１に接続される。内側カメラ２３および外側カメラ２５は、ＣＰＵ３１の指示に応じて画像を撮像し、撮像した画像データをＣＰＵ３１に出力する。例えば、ＣＰＵ３１は、内側カメラ２３および外側カメラ２５のいずれか一方に対して撮像指示を行い、撮像指示を受けたカメラが画像を撮像して画像データをＣＰＵ３１に送る。
【００７９】
また、下側ＬＣＤ１２および上側ＬＣＤ２２は、それぞれＣＰＵ３１に接続される。下側ＬＣＤ１２および上側ＬＣＤ２２は、それぞれＣＰＵ３１の指示に従って画像を表示する。一例として、ＣＰＵ３１は、内側カメラ２３および外側カメラ２５のいずれかから取得した画像を、下側ＬＣＤ１２および上側ＬＣＤ２２の一方に表示させ、所定の処理によって生成した操作説明画面を下側ＬＣＤ１２および上側ＬＣＤ２２の他方に表示させる。
【００８０】
次に、ゲーム装置１で実行される画像処理プログラムによる具体的な処理動作を説明する前に、図３〜図８を参照して当該処理動作によって下側ＬＣＤ１２に表示される表示形態例等について説明する。なお、図３は、下側ＬＣＤ１２に表示される手書き文字Ｉｈｗの一例を示す図である。図４は、ユーザが手書き文字Ｉｈｗを全消去する操作をした場合に下側ＬＣＤ１２で表現される演出例の第１段階を示す図である。図５は、ユーザが手書き文字Ｉｈｗを全消去する操作をした場合に下側ＬＣＤ１２で表現される演出例の第２段階を示す図である。図６は、ユーザが手書き文字Ｉｈｗを全消去する操作をした場合に下側ＬＣＤ１２で表現される演出例の第３段階を示す図である。図７は、下側ＬＣＤ１２に表示される手書きスタンプＩｓｔの一例を示す図である。図８は、ユーザが手書きスタンプＩｓｔを全消去する操作をした場合に下側ＬＣＤ１２で表現される演出例を示す図である。
【００８１】
図３において、下側ＬＣＤ１２には、ユーザがタッチペン２７を用いてタッチパネル１３をタッチ操作した軌跡に沿って、手書き文字や手書きスタンプ（標号）等を描くことができる。例えば、下側ＬＣＤ１２には手書き線描画ボタンＢｈｗ、部分消去ボタンＢｐｅ、手書きスタンプ描画ボタンＢｓｔ、および全消去ボタンＢａｅ等が表示されている。そして、ユーザが所望するボタンがタッチ操作によって選択されることによって、当該選択されたボタンに応じて全消去やタッチ操作に対する描画や部分消去が行われる。
【００８２】
図３では、ユーザが手書き線描画ボタンＢｈｗを選択しており、タッチ操作の軌跡に沿った自由線が下側ＬＣＤ１２に描画される。したがって、ユーザが所望する文字を描くようにタッチパネル１３をタッチ操作することによって、当該タッチ操作に応じた文字を下側ＬＣＤ１２に描画することができる。例えば、図３の例では、ユーザがタッチペン２７を用いてタッチパネル１３をタッチ操作した軌跡に沿って描かれる手書き文字Ｉｈｗが表示されている。具体的には、ユーザがタッチパネル１３をタッチ操作して文字「ｈｅｌｌｏ」を手書き入力している一例を示しており、最後の文字「ｏ」まで描かれた手書き文字Ｉｈｗが下側ＬＣＤ１２に表示されている。
【００８３】
図４において、手書き文字Ｉｈｗが下側ＬＣＤ１２に描画された後、ユーザが全消去ボタンＢａｅをタッチ操作する。この操作によって、タッチパネル１３を介して手書き入力された画像（図４の例では、手書き文字Ｉｈｗ）が下側ＬＣＤ１２から全て消去される。このとき、本実施例では、全消去の対象となっている手書き画像（手書き文字Ｉｈｗ）が下側ＬＣＤ１２から消去されるまでの間に、当該手書き画像が分解されて分解された画像毎に所定の演出が施される。
【００８４】
例えば、図４に示した一例では、手書き文字Ｉｈｗが５つの手書き文字Ｉｈｗ１〜Ｉｈｗ５に分解され、それぞれが異なる方向に移動したり、異なる速度で移動したりしている。図４の例では、手書き文字Ｉｈｗが１文字ずつ分解されている。具体的には、手書き文字Ｉｈｗは、１文字目の文字「ｈ」を示す手書き文字Ｉｈｗ１、２文字目の文字「ｅ」を示す手書き文字Ｉｈｗ２、３文字目の文字「ｌ」を示す手書き文字Ｉｈｗ３、４文字目の文字「ｌ」を示す手書き文字Ｉｈｗ４、および５文字目の文字「ｏ」を示す手書き文字Ｉｈｗ５にそれぞれ分解される。
【００８５】
分解された手書き文字Ｉｈｗ１〜Ｉｈｗ５は、やがて下側ＬＣＤ１２の下方に自由落下するようにそれぞれ移動する（図５）。そして、手書き文字Ｉｈｗ１〜Ｉｈｗ５は、それぞれ下側ＬＣＤ１２の表示領域外まで移動することによって下側ＬＣＤ１２から全て消去される（図６）。
【００８６】
図７では、ユーザが手書きスタンプ描画ボタンＢｓｔを選択しており、スタンプ群（標号群）がタッチ操作の軌跡に沿って下側ＬＣＤ１２に描画される。例えば、図７の例では、ユーザがタッチペン２７を用いてタッチパネル１３をタッチ操作した軌跡に沿って描かれる手書きスタンプＩｓｔが表示されている。具体的には、ユーザがタッチパネル１３をタッチ操作して２つの葉型画像を一対としたスタンプを手書き入力している一例を示している。そして、ユーザがタッチ操作した軌跡に沿った所定時間間隔毎または所定距離間隔毎に、上記一対のスタンプが下側ＬＣＤ１２に順次追加されて描画され、結果的にタッチ操作した軌跡に沿ったスタンプ群が手書きスタンプＩｓｔとして下側ＬＣＤ１２に表示される。
【００８７】
図８において、手書きスタンプＩｓｔが下側ＬＣＤ１２に描画された後、ユーザが全消去ボタンＢａｅをタッチ操作する。この操作によって、タッチパネル１３を介して手書き入力された画像（図８の例では、手書きスタンプＩｓｔ）が下側ＬＣＤ１２から全て消去される。この場合も、本実施例では、全消去の対象となっている手書き画像（手書きスタンプＩｓｔ）が下側ＬＣＤ１２から消去されるまでの間に、当該手書き画像が分解されて分解された画像毎に所定の演出が施される。
【００８８】
例えば、図８に示した一例では、手書きスタンプＩｓｔがｎ個の手書きスタンプＩｓｔｎに分解され、それぞれが異なる方向に移動したり、異なる速度で移動したりしている。図８の例では、スタンプ群として描画されていた手書きスタンプＩｓｔが、２つの葉型画像を一対としたスタンプ毎に分解されると共に、一対のスタンプもさらに葉型画像毎に分解される。
【００８９】
分解された手書きスタンプＩｓｔｎも、やがて下側ＬＣＤ１２の下方に自由落下するようにそれぞれ移動する。そして、手書きスタンプＩｓｔｎは、それぞれ下側ＬＣＤ１２の表示領域外まで移動することによって下側ＬＣＤ１２から全て消去される。
【００９０】
なお、下側ＬＣＤ１２の背景画像には、内側カメラ２３または外側カメラ２５によって撮像されたリアルタイムの画像（撮像画像）を表示してもかまわない。この場合、上述した手書き画像（手書き文字Ｉｈｗ、手書きスタンプＩｓｔ）は、上記撮像画像の上に描画されることになる。つまり、ユーザは、内側カメラ２３または外側カメラ２５によって撮像された撮像画像に、ユーザが所望する手書き画像を加えるような操作（落書き）が可能となる。
【００９１】
次に、図９〜図１６を参照して、ゲーム装置１で実行される画像処理プログラムによる具体的な処理動作について説明する。なお、図９は、画像処理プログラムを実行することに応じて、メインメモリ３２に記憶される各種データの一例を示す図である。図１０は、メインメモリ３２に記憶されるブロックデータＤｂの一例を示す図である。図１１は、当該画像処理プログラムを実行することによってゲーム装置１が画像処理を行うフローチャートである。図１２は、図１１のステップ５６で行われる画像分解処理の詳細な動作を示すサブルーチンである。図１３は、図１２のステップ８１等で行われる右側ブロック確認処理の詳細な動作を示すサブルーチンである。図１４は、図１２のステップ８２等で行われる上側ブロック確認処理の詳細な動作を示すサブルーチンである。図１５は、図１２のステップ８３等で行われる左側ブロック確認処理の詳細な動作を示すサブルーチンである。図１６は、図１２のステップ８４等で行われる下側ブロック確認処理の詳細な動作を示すサブルーチンである。なお、これらの処理を実行するためのプログラムは、ゲーム装置１に内蔵されるメモリ（例えば、保存用データメモリ３４）やメモリカード２８またはメモリカード２９に含まれており、ゲーム装置１の電源がオンになったときに、メモリカードＩ／Ｆ３６を介してメモリカード２８やメモリカード２９から、または内蔵メモリからメインメモリ３２に読み出されて、ＣＰＵ３１によって実行される。
【００９２】
図９において、メインメモリ３２には、内蔵メモリ、メモリカード２８、またはメモリカード２９から読み出されたプログラムや画像処理において生成される一時的なデータが記憶される。図９において、メインメモリ３２のデータ記憶領域には、操作データＤａ、ブロックデータＤｂ、ブロック移動データＤｃ、および画像データＤｄ等が格納される。また、メインメモリ３２のプログラム記憶領域には、画像処理プログラムを構成する各種プログラム群Ｐａが記憶される。
【００９３】
操作データＤａは、ユーザがゲーム装置１を操作しているデータが格納される。操作データＤａは、タッチパネル１３をユーザがタッチしている画面座標系のタッチ位置を示すタッチ座標のデータを含んでいる。例えば、タッチ座標は、ゲーム装置１がゲーム処理する時間単位（例えば、１／６０秒）毎に取得され、当該取得に応じて操作データＤａに格納されて更新される。
【００９４】
ブロックデータＤｂは、上述した手書き画像を表示する表示画面を複数の領域に区分したブロック毎のデータが格納される。図１０に示すように、ブロックデータＤｂは、上記ブロック毎に、ブロック番号Ｂｎ、画像有無フラグ、グループ番号Ｇｎ、および接続フラグをそれぞれ示すデータが格納される。ブロック番号Ｂｎは、上記ブロック毎にそれぞれ付番される番号である。画像有無フラグは、上記ブロック毎に手書き画像の少なくとも一部が含まれているか否かを示すデータである。グループ番号Ｇｎは、手書き画像の分割処理によって区分されるグループ毎にそれぞれ付番される番号である。接続フラグは、処理対象となっているブロックを基準として、当該ブロックと隣接するブロックとが手書き画像によって接続されているか否かを示すデータである。例えば、接続フラグは、隣接する右側のブロックと接続されているか否かを示すフラグ、隣接する上側のブロックと接続されているか否かを示すフラグ、隣接する左側のブロックと接続されているか否かを示すフラグ、および隣接する下側のブロックと接続されているか否かを示すフラグを含んでいる。
【００９５】
図９に戻り、ブロック移動データＤｃは、上記ブロック毎に設定され、当該ブロックが仮想世界を移動するためのデータ（移動方向、移動速度等）が格納される。画像データＤｄは、上述した手書き画像や操作ボタン画像等をゲーム装置１に表示するための画像データが格納される。
【００９６】
次に、図１１を参照して、ゲーム装置１の動作について説明する。まず、ゲーム装置１の電源（電源ボタン１４Ｆ）がＯＮされると、ＣＰＵ３１によってブートプログラム（図示せず）が実行され、これにより内蔵メモリまたはメモリカード２８やメモリカード２９に格納されている画像処理プログラムがメインメモリ３２にロードされる。そして、当該ロードされた画像処理プログラムがＣＰＵ３１で実行されることによって、図１１に示すステップ（図１１〜図１６では「Ｓ」と略称する）が実行される。
【００９７】
図９において、ＣＰＵ３１は、画像処理の初期設定を行って（ステップ５１）、処理を次のステップに進める。例えば、ＣＰＵ３１がステップ５１で行う初期設定として、メインメモリ３２に格納されている各パラメータを所定の数値に初期化する。例えば、ブロックデータＤｂに格納されている画像有無フラグおよび接続フラグを全てオフ（ＯＦＦ）に設定し、グループ番号Ｇｎを全て「０」に設定する。
【００９８】
次に、ＣＰＵ３１は、ユーザが操作ボタン１４やタッチパネル１３を操作することによって出力される操作データを取得して操作データＤａを更新し（ステップ５２）、処理を次のステップに進める。例えば、ＣＰＵ３１は、タッチパネル１３をタッチしている画面座標系のタッチ位置を示すタッチ座標を取得して、操作データＤａに記憶されたタッチ座標を更新する。
【００９９】
次に、ＣＰＵ３１は、上記ステップ５２で取得した操作データが、ユーザによる手書き入力を示すデータか否か（ステップ５３）、全消去を示すデータか否か（ステップ５５）をそれぞれ判断する。例えば、ＣＰＵ３１は、上記操作データが、手書き線描画ボタンＢｈｗや手書きスタンプ描画ボタンＢｓｔ（図３等参照）を選択した後のタッチ操作を示すデータである場合、手書き入力を示すデータであると判断して（ステップ５３でＹｅｓ）、次のステップ５４に処理を進める。また、ＣＰＵ３１は、上記操作データが、全消去ボタンＢａｅを選択するデータである場合、全消去を示すデータであると判断して（ステップ５５でＹｅｓ）、次のステップ５６に処理を進める。一方、ＣＰＵ３１は、上記操作データが、手書き入力や全消去を示すデータでない場合（ステップ５３およびステップ５５が何れもＮｏ）、次のステップ５９に処理を進める。
【０１００】
ステップ５４において、ＣＰＵ３１は、上記ステップ５２で取得した操作データ（タッチ座標データ）に応じて、手書き画像を生成して下側ＬＣＤ１２に描画し、次のステップ６０に処理を進める。
【０１０１】
例えば、ＣＰＵコア３１は、上記ステップ５２で取得されたタッチ座標に応じた仮想世界における位置を算出する。ここで、上記位置は、タッチ座標を仮想世界に透視変換することによって得られる。一例として、上記位置は、タッチ座標と重なって下側ＬＣＤ１２に表示される仮想世界の２次元平面上の位置を算出することによって得られる。そして、ＣＰＵ３１は、手書き線描画ボタンＢｈｗが選択され、かつ、前回の処理で上記位置が算出されている場合、前回の処理で算出された上記位置から今回の処理で算出された上記位置まで所定の太さの線で結ぶ線分を生成して下側ＬＣＤ１２に表示する。また、ＣＰＵ３１は、手書きスタンプ描画ボタンＢｓｔが選択され、かつ、前回の処理で上記位置が算出されている場合、下側ＬＣＤ１２に表示された最後のスタンプの位置から今回の処理で算出された上記位置までの仮想世界における距離が閾値に到達していれば、新たなスタンプ（例えば、２つの葉型画像を一対としたスタンプ）を今回の処理で算出された上記位置に表示する。なお、ＣＰＵ３１は、手書きスタンプ描画ボタンＢｓｔが選択され、かつ、前回の処理で上記位置が算出されている場合、最後のスタンプが下側ＬＣＤ１２に表示されてからの時間が閾値以上経過しているときに、新たなスタンプを今回の処理で算出された上記位置に表示してもかまわない。また、ＣＰＵ３１は、手書きスタンプ描画ボタンＢｓｔが選択され、かつ、前回の処理で上記位置が算出されている場合、下側ＬＣＤ１２に表示された最後のスタンプの位置から今回の処理で算出された上記位置までの仮想世界における変位量（すなわち、タッチ座標が変位した累計）の累計が閾値に到達していれば、新たなスタンプを今回の処理で算出された上記位置に表示してもかまわない。また、ＣＰＵ３１は、既に表示された自由線またはスタンプ上に新たな手書き入力が行われた場合、後からの入力に応じて生成された自由線またはスタンプを、既に表示された自由線またはスタンプに重畳して表示する。
【０１０２】
一方、全消去操作が行われた場合（ステップ５５でＹｅｓ）、ＣＰＵ３１は、画像分解処理を行って（ステップ５６）、次のステップに処理を進める。以下、図１２を参照して、画像分解処理の詳細な動作について説明する。
【０１０３】
図１２において、ＣＰＵ３１は、下側ＬＣＤ１２に表示される表示画面ＤＡを複数のブロックに分割して（ステップ７１）、ブロック毎に手書き画像が含まれているか否かを選別し（ステップ７２）、次のステップ７３に処理を進める。
【０１０４】
例えば、図１７に示すように、表示画面ＤＡは、横ｍ個×縦ｎ個のブロックで格子状に分割される。好ましくは、各ブロックの大きさは同じであり、例えばブロックがそれぞれ横８画素×縦８画素のサイズで設定される。そして、ＣＰＵ３１は、ブロック毎にブロック番号Ｂｎを付与する。図１７に示すブロック内の数値は、付与されたブロック番号Ｂｎの一例を示しており、左上のブロックから右へブロック番号Ｂｎが１、２、３…と順次付与され、右下の最終ブロックのブロック番号Ｂｎがｍ×ｎ（最大値Ｂｎｍａｘ）となる。
【０１０５】
そして、ＣＰＵ３１は、ブロック毎に手書き画像の少なくとも一部が描画されているか否かを判定し、手書き画像が描画されていると判定されたブロックに対応する画像有無フラグ（図１０参照）をそれぞれオン（ＯＮ）に設定する。例えば、ブロックに対応する横８画素×縦８画素に、上記手書き画像またはスタンプに含まれる画素が、少なくとも１つ以上存在する場合に、当該ブロックに入力画像の少なくとも一部が描画されていると判定し、ブロックに対応する画像有無フラグをオンに設定する。
【０１０６】
ステップ７３において、ＣＰＵ３１は、処理対象とするブロック番号ｉを１および処理対象とするグループ番号ｊを１にそれぞれ設定し、次のステップに処理を進める。
【０１０７】
次に、ＣＰＵ３１は、現在処理対象となっているブロック番号ｉのブロックに手書き画像が描画されているか否かを判断する（ステップ７４）。例えば、ＣＰＵ３１は、現在処理対象となっているブロック番号ｉに対応するブロックデータＤｂの画像有無フラグを参照し、当該画像有無フラグがオン（ＯＮ）である場合に手書き画像が描画されていると判断する。そして、ＣＰＵ３１は、現在処理対象となっているブロック番号ｉのブロックに手書き画像が描画されている場合、次のステップ７５に処理を進める。一方、ＣＰＵ３１は、現在処理対象となっているブロック番号ｉのブロックに手書き画像が描画されていない場合、次のステップ８６に処理を進める。
【０１０８】
ステップ７５において、ＣＰＵ３１は、現在処理対象となっているブロック番号ｉのブロックが、何れかのグループに設定されているか否かを判断する。例えば、ＣＰＵ３１は、現在処理対象となっているブロック番号ｉに対応するブロックデータＤｂのグループ番号Ｇｎを参照し、当該グループ番号に０以外の数値が設定されている場合にグループ設定済であると判断する。そして、ＣＰＵ３１は、現在処理対象となっているブロック番号ｉのブロックがグループに設定されていない場合、次のステップ７６に処理を進める。一方、ＣＰＵ３１は、現在処理対象となっているブロック番号ｉのブロックが既に何れかのグループに設定されている場合、次のステップ８６に処理を進める。
【０１０９】
ステップ７６において、ＣＰＵ３１は、現在処理対象となっているブロック番号ｉのブロックを、現在処理対象となっているグループ番号ｊのグループに属するブロックに設定して、次のステップに処理を進める。例えば、ＣＰＵ３１は、現在処理対象となっているブロック番号ｉに対応するブロックデータＤｂのグループ番号に、現在処理対象となっているグループ番号ｊを記述してブロックデータＤｂを更新する。
【０１１０】
次に、ＣＰＵ３１は、現在処理対象となっているブロック番号ｉのブロックの右端列画素に手書き画像が含まれるか否か（ステップ７７）、上端行画素に手書き画像が含まれるか否か（ステップ７８）、左端列画素に手書き画像が含まれるか否か（ステップ７９）、および下端行画素に手書き画像が含まれるか否か（ステップ８０）を、それぞれ順次判断する。
【０１１１】
例えば、図１８に示すように、ブロックＡが現在の処理対象ブロックであるとする。このとき、ブロックＡには、右側のブロック、上側のブロック、左側のブロック、および下側のブロックがそれぞれ隣接している。そして、ＣＰＵ３１は、ブロックＡが手書き画像によってこれらの隣接ブロックと接続されているか否かを判断する。例えば、手書き文字「ｈ」の一部は、ブロックＡおよびブロックＡの下側ブロックに描画されており、ブロックＡと下側ブロックとを手書き文字「ｈ」によって接続されていると判断する。一方、ブロックＡと左側ブロック、上側ブロック、および右側ブロックとは、何れも共通する手書き文字が存在しないため、ブロックＡとこれらのブロックとは、未接続であると判断する。
【０１１２】
このようなブロック間の接続関係を判断するために、本実施例では処理対象となっているブロック番号ｉのブロックの最端画素における手書き画像の有無を判断基準としている。例えば、図１９に示すように、処理対象ブロックと右側ブロックとの接続関係を考える場合、処理対象ブロックにおける最も右端となる右端列ＲＡに配置されている画素（例えば、ブロックが横８画素×縦８画素のサイズの場合、右端列の８画素）に、手書き画像が含まれるか否かを判断する。そして、右端列ＲＡの少なくとも一部に手書き画像が含まれる場合、処理対象ブロックと右側ブロックとが接続されていると判断する（判断基準Ａ）。
【０１１３】
なお、ブロック間の接続関係を判断するために、他の画素を用いてもかまわない。例えば、右側ブロックとの接続関係を判断する際、図１９に示すように右端列ＲＡの画素に加えて右側ブロックの最も左端に配置されている左端列ＬＡの画素も用いて、ブロック間の接続関係を判断してもかまわない。具体的には、処理対象ブロックと右側ブロックとの接続関係を考える場合、処理対象ブロックの右端列ＲＡに配置されている画素および右側ブロックの左端列ＬＡに配置されている画素に対して、両者共に手書き画像が含まれる場合に処理対象ブロックと右側ブロックとが接続されていると判断する（判断基準Ｂ）。さらに、処理対象ブロックの右端列ＲＡのうちの手書き画像が含まれている画素と、右側ブロックの左端列ＬＡのうちの手書き画像が含まれている画素とが隣接している場合にのみ、処理対象ブロックと右側ブロックとが接続されていると判断してもかまわない（判断基準Ｃ）。この場合、処理対象ブロックの右端列ＲＡの画素および右側ブロックの左端列ＬＡの画素の何れにも手書き画像が含まれていても、両者間で手書き画像の画素に隣接しているものがなければ、処理対象ブロックと右側ブロックとが未接続であると判断される。
【０１１４】
上述した判断基準Ａ〜Ｃによるブロック間の接続関係の判断結果をまとめると、図２０のようになる。例えば、図２０に示すように、処理対象ブロックの右端列ＲＡおよび右側ブロックの左端列ＬＡに注目して、例１〜例３を考える。図２０に示す例１のように、処理対象ブロックの右端列ＲＡにのみに手書き画像（図２０では塗りつぶし画素で示す）が含まれる場合、判断基準Ａではブロック間が接続されていると判断されるが、判断基準ＢおよびＣではブロック間が未接続であると判断される。また、図２０に示す例２のように、処理対象ブロックの右端列ＲＡおよび右側ブロックの左端列ＬＡ共に手書き画像が含まれるが、手書き画像の画素に両者間で隣接しているものがない場合、判断基準ＡおよびＢではブロック間が接続されていると判断されるが、判断基準Ｃではブロック間が未接続であると判断される。さらに、図２０に示す例３のように、処理対象ブロックの右端列ＲＡおよび右側ブロックの左端列ＬＡ共に手書き画像が含まれ、かつ、手書き画像の画素に両者間で隣接しているものを含む場合、全ての判断基準Ａ〜Ｃでブロック間が接続されていると判断される。このように、判断基準の設定によって判断結果が変化するため、処理負荷や後述する分解精度に応じて適切な判断基準を選択すればよい。本実施例においては、判断基準Ａでブロック間の接続関係を判断する例を用いて説明する。
【０１１５】
図１２に戻り、ＣＰＵ３１は、現在処理対象となっているブロック番号ｉのブロックの右端列画素に手書き画像が含まれるか否かを判断する（ステップ７７）。そして、ＣＰＵ３１は、現在処理対象となっているブロック番号ｉのブロックの右端列画素に手書き画像が含まれる場合、すなわち処理対象ブロックと右側ブロックとが接続されていると判断した場合（ステップ７７でＹｅｓ）、当該ブロック番号ｉの接続フラグ（右）（図１０参照）をオン（ＯＮ）に設定して右側ブロック確認処理を行い（ステップ８１）、次のステップ７８に処理を進める。一方、ＣＰＵ３１は、現在処理対象となっているブロック番号ｉのブロックの右端列画素に手書き画像が含まれていない場合、すなわち処理対象ブロックと右側ブロックとが接続されていないと判断した場合（ステップ７７でＮｏ）、そのまま次のステップ７８に処理を進める。なお、右側ブロック確認処理の詳細な動作については後述する。
【０１１６】
ステップ７８において、ＣＰＵ３１は、現在処理対象となっているブロック番号ｉのブロックの上端行画素に手書き画像が含まれるか否かを判断する。そして、ＣＰＵ３１は、現在処理対象となっているブロック番号ｉのブロックの上端行画素に手書き画像が含まれる場合、すなわち処理対象ブロックと上側ブロックとが接続されていると判断した場合（ステップ７８でＹｅｓ）、当該ブロック番号ｉの接続フラグ（上）をオン（ＯＮ）に設定して上側ブロック確認処理を行い（ステップ８２）、次のステップ７９に処理を進める。一方、ＣＰＵ３１は、現在処理対象となっているブロック番号ｉのブロックの上端行画素に手書き画像が含まれていない場合、すなわち処理対象ブロックと上側ブロックとが接続されていないと判断した場合（ステップ７８でＮｏ）、そのまま次のステップ７９に処理を進める。なお、上側ブロック確認処理の詳細な動作については後述する。
【０１１７】
ステップ７９において、ＣＰＵ３１は、現在処理対象となっているブロック番号ｉのブロックの左端列画素に手書き画像が含まれるか否かを判断する。そして、ＣＰＵ３１は、現在処理対象となっているブロック番号ｉのブロックの左端列画素に手書き画像が含まれる場合、すなわち処理対象ブロックと左側ブロックとが接続されていると判断した場合（ステップ７９でＹｅｓ）、当該ブロック番号ｉの接続フラグ（左）をオン（ＯＮ）に設定して左側ブロック確認処理を行い（ステップ８３）、次のステップ８０に処理を進める。一方、ＣＰＵ３１は、現在処理対象となっているブロック番号ｉのブロックの左端列画素に手書き画像が含まれていない場合、すなわち処理対象ブロックと左側ブロックとが接続されていないと判断した場合（ステップ７９でＮｏ）、そのまま次のステップ８０に処理を進める。なお、左側ブロック確認処理の詳細な動作については後述する。
【０１１８】
ステップ８０において、ＣＰＵ３１は、現在処理対象となっているブロック番号ｉのブロックの下端行画素に手書き画像が含まれるか否かを判断する。そして、ＣＰＵ３１は、現在処理対象となっているブロック番号ｉのブロックの下端行画素に手書き画像が含まれる場合、すなわち処理対象ブロックと下側ブロックとが接続されていると判断した場合（ステップ８０でＹｅｓ）、当該ブロック番号ｉの接続フラグ（下）をオン（ＯＮ）に設定して下側ブロック確認処理を行い（ステップ８４）、次のステップ８５に処理を進める。一方、ＣＰＵ３１は、現在処理対象となっているブロック番号ｉのブロックの下端行画素に手書き画像が含まれていない場合、すなわち処理対象ブロックと下側ブロックとが接続されていないと判断した場合（ステップ８０でＮｏ）、そのまま次のステップ８５に処理を進める。なお、下側ブロック確認処理の詳細な動作については後述する。
【０１１９】
ステップ８５において、ＣＰＵ３１は、現在処理対象としているグループ番号ｊに１を加算して、新たに処理対象のグループ番号ｊを設定し、次のステップ８６に処理を進める。
【０１２０】
ステップ８６において、ＣＰＵ３１は、現在処理対象としているブロック番号ｉに１を加算して、新たに処理対象のブロック番号ｉを設定し、次のステップに処理を進める。
【０１２１】
次に、ＣＰＵ３１は、現在処理対象としているブロック番号ｉがブロック番号の最大値Ｂｎｍａｘより大きいか否かを判断する（ステップ８７）。ここで、最大値Ｂｎｍａｘは、上記ステップ７１で表示画面ＤＡをブロックに分割してブロック番号を付与した際の、ブロック番号最大値である。そして、ＣＰＵ３１は、現在処理対象としているブロック番号ｉがブロック番号の最大値Ｂｎｍａｘ以下の場合、上記ステップ７４に戻って処理を繰り返す。一方、ＣＰＵ３１は、現在処理対象としているブロック番号ｉがブロック番号の最大値Ｂｎｍａｘより大きい場合、当該サブルーチンによる処理を終了して、ステップ５７（図１１）に処理を進める。
【０１２２】
以下、図１３を参照して、上記ステップ８１や後述するステップ９８、ステップ１１８、およびステップ１５８で行う右側ブロック確認処理について説明する。
【０１２３】
図１３において、ＣＰＵ３１は、現在処理対象となっているブロック（処理対象ブロック）の右側に隣接している右側ブロックを、新たな処理対象ブロックに設定し（ステップ９１）、次のステップに処理を進める。例えば、図１７に示すブロック番号ｍ＋２のブロックが処理対象ブロックとなっている場合、当該ブロックの右側に隣接しているブロック番号ｍ＋３のブロックが新たな処理対象ブロックに設定される。
【０１２４】
次に、ＣＰＵ３１は、処理対象ブロックに手書き画像が描画されているか否かを判断する（ステップ９２）。例えば、ＣＰＵ３１は、現在の処理対象ブロックに対応するブロックデータＤｂの画像有無フラグを参照し、当該画像有無フラグがオン（ＯＮ）である場合に手書き画像が描画されていると判断する。そして、ＣＰＵ３１は、処理対象ブロックに手書き画像が描画されている場合、次のステップ９３に処理を進める。一方、ＣＰＵ３１は、処理対象ブロックに手書き画像が描画されていない場合、次のステップ１０１に処理を進める。
【０１２５】
ステップ９３において、ＣＰＵ３１は、処理対象ブロックが、何れかのグループに設定されているか否かを判断する。例えば、ＣＰＵ３１は、処理対象ブロックに対応するブロックデータＤｂのグループ番号Ｇｎを参照し、当該グループ番号に０以外の数値が設定されている場合にグループ設定済であると判断する。そして、ＣＰＵ３１は、処理対象ブロックがグループに設定されていない場合、次のステップ９４に処理を進める。一方、ＣＰＵ３１は、処理対象ブロックが既に何れかのグループに設定されている場合、次のステップ１０１に処理を進める。
【０１２６】
ステップ９４において、ＣＰＵ３１は、処理対象ブロックを、現在処理対象となっているグループ番号ｊのグループに属するブロックに設定して、次のステップに処理を進める。例えば、ＣＰＵ３１は、処理対象ブロックに対応するブロックデータＤｂのグループ番号に、現在処理対象となっているグループ番号ｊを記述してブロックデータＤｂを更新する。つまり、上記ステップ９４の処理によって、処理対象ブロックは、当該右側ブロック確認処理を行う前に処理対象に設定されていたブロック（すなわち、処理対象ブロックから見て左側のブロック）と同じグループ番号のグループに属することになる。
【０１２７】
次に、ＣＰＵ３１は、処理対象ブロックの右端列画素に手書き画像が含まれるか否かを判断する（ステップ９５）。そして、ＣＰＵ３１は、処理対象ブロックの右端列画素に手書き画像が含まれる場合、すなわち処理対象ブロックと右側ブロックとが接続されていると判断した場合（ステップ９５でＹｅｓ）、当該処理対象ブロックの接続フラグ（右）をオン（ＯＮ）に設定して上記ステップ９１から右側ブロック確認処理を新たに開始し（ステップ９８）、当該右側ブロック確認処理が終わった後にステップ９６に処理を進める。一方、ＣＰＵ３１は、処理対象ブロックの右端列画素に手書き画像が含まれていない場合、すなわち処理対象ブロックと右側ブロックとが接続されていないと判断した場合（ステップ９５でＮｏ）、そのまま次のステップ９６に処理を進める。
【０１２８】
ステップ９６において、ＣＰＵ３１は、処理対象ブロックの上端行画素に手書き画像が含まれるか否かを判断する。そして、ＣＰＵ３１は、処理対象ブロックの上端行画素に手書き画像が含まれる場合、すなわち処理対象ブロックと上側ブロックとが接続されていると判断した場合（ステップ９６でＹｅｓ）、当該処理対象ブロックの接続フラグ（上）をオン（ＯＮ）に設定して上側ブロック確認処理を行い（ステップ９９）、次のステップ９７に処理を進める。一方、ＣＰＵ３１は、処理対象ブロックの上端行画素に手書き画像が含まれていない場合、すなわち処理対象ブロックと上側ブロックとが接続されていないと判断した場合（ステップ９６でＮｏ）、そのまま次のステップ９７に処理を進める。
【０１２９】
ステップ９７において、ＣＰＵ３１は、処理対象ブロックの下端行画素に手書き画像が含まれるか否かを判断する。そして、ＣＰＵ３１は、処理対象ブロックの下端行画素に手書き画像が含まれる場合、すなわち処理対象ブロックと下側ブロックとが接続されていると判断した場合（ステップ９７でＹｅｓ）、当該処理対象ブロックの接続フラグ（下）をオン（ＯＮ）に設定して下側ブロック確認処理を行い（ステップ１００）、次のステップ１０１に処理を進める。一方、ＣＰＵ３１は、処理対象ブロックの下端行画素に手書き画像が含まれていない場合、すなわち処理対象ブロックと下側ブロックとが接続されていないと判断した場合（ステップ９７でＮｏ）、そのまま次のステップ１０１に処理を進める。
【０１３０】
ステップ１０１において、ＣＰＵ３１は、処理対象ブロックの左側に隣接している左側ブロックを、新たな処理対象ブロックに設定し、当該サブルーチンによる処理を終了する。例えば、図１７に示すブロック番号ｍ＋３のブロックが処理対象ブロックとなっている場合、当該ブロックの左側に隣接しているブロック番号ｍ＋２のブロックが新たな処理対象ブロックに設定される。
【０１３１】
以下、図１４を参照して、上記ステップ８２および上記ステップ９９や後述するステップ１１９およびステップ１３８で行う上側ブロック確認処理について説明する。
【０１３２】
図１４において、ＣＰＵ３１は、現在処理対象に設定されている処理対象ブロックの上側に隣接している上側ブロックを、新たな処理対象ブロックに設定し（ステップ１１１）、次のステップに処理を進める。例えば、図１７に示すブロック番号ｍ＋２のブロックが処理対象ブロックとなっている場合、当該ブロックの上側に隣接しているブロック番号２のブロックが新たな処理対象ブロックに設定される。
【０１３３】
次に、ＣＰＵ３１は、処理対象ブロックに手書き画像が描画されているか否かを判断する（ステップ１１２）。なお、ステップ１１２の動作例は、上記ステップ９２と同様であるため、詳細な説明を省略する。そして、ＣＰＵ３１は、処理対象ブロックに手書き画像が描画されている場合、次のステップ１１３に処理を進める。一方、ＣＰＵ３１は、処理対象ブロックに手書き画像が描画されていない場合、次のステップ１２１に処理を進める。
【０１３４】
ステップ１１３において、ＣＰＵ３１は、処理対象ブロックが、何れかのグループに設定されているか否かを判断する。なお、ステップ１１３の動作例は、上記ステップ９３と同様であるため、詳細な説明を省略する。そして、ＣＰＵ３１は、処理対象ブロックがグループに設定されていない場合、次のステップ１１４に処理を進める。一方、ＣＰＵ３１は、処理対象ブロックが既に何れかのグループに設定されている場合、次のステップ１２１に処理を進める。
【０１３５】
ステップ１１４において、ＣＰＵ３１は、処理対象ブロックを、現在処理対象となっているグループ番号ｊのグループに属するブロックに設定して、次のステップに処理を進める。なお、ステップ１１４の動作例は、上記ステップ９４と同様であるため、詳細な説明を省略する。上記ステップ１１４の処理によって、処理対象ブロックは、当該上側ブロック確認処理を行う前に処理対象に設定されていたブロック（すなわち、処理対象ブロックから見て下側のブロック）と同じグループ番号のグループに属することになる。
【０１３６】
次に、ＣＰＵ３１は、処理対象ブロックの右端列画素に手書き画像が含まれるか否かを判断する（ステップ１１５）。そして、ＣＰＵ３１は、処理対象ブロックの右端列画素に手書き画像が含まれる場合、すなわち処理対象ブロックと右側ブロックとが接続されていると判断した場合（ステップ１１５でＹｅｓ）、当該処理対象ブロックの接続フラグ（右）をオン（ＯＮ）に設定して上述した右側ブロック確認処理を行い（ステップ１１８）、次のステップ１１６に処理を進める。一方、ＣＰＵ３１は、処理対象ブロックの右端列画素に手書き画像が含まれていない場合、すなわち処理対象ブロックと右側ブロックとが接続されていないと判断した場合（ステップ１１５でＮｏ）、そのまま次のステップ１１６に処理を進める。
【０１３７】
ステップ１１６において、ＣＰＵ３１は、処理対象ブロックの上端行画素に手書き画像が含まれるか否かを判断する。そして、ＣＰＵ３１は、処理対象ブロックの上端行画素に手書き画像が含まれる場合、すなわち処理対象ブロックと上側ブロックとが接続されていると判断した場合（ステップ１１６でＹｅｓ）、当該処理対象ブロックの接続フラグ（上）をオン（ＯＮ）に設定して上記ステップ１１１から上側ブロック確認処理を新たに開始し（ステップ１１９）、当該上側ブロック確認処理が終わった後にステップ１１７に処理を進める。一方、ＣＰＵ３１は、処理対象ブロックの上端行画素に手書き画像が含まれていない場合、すなわち処理対象ブロックと上側ブロックとが接続されていないと判断した場合（ステップ１１６でＮｏ）、そのまま次のステップ１１７に処理を進める。
【０１３８】
ステップ１１７において、ＣＰＵ３１は、処理対象ブロックの下端行画素に手書き画像が含まれるか否かを判断する。そして、ＣＰＵ３１は、処理対象ブロックの下端行画素に手書き画像が含まれる場合、すなわち処理対象ブロックと下側ブロックとが接続されていると判断した場合（ステップ１１７でＹｅｓ）、当該処理対象ブロックの接続フラグ（下）をオン（ＯＮ）に設定して下側ブロック確認処理を行い（ステップ１２０）、次のステップ１２１に処理を進める。一方、ＣＰＵ３１は、処理対象ブロックの下端行画素に手書き画像が含まれていない場合、すなわち処理対象ブロックと下側ブロックとが接続されていないと判断した場合（ステップ１１７でＮｏ）、そのまま次のステップ１２１に処理を進める。
【０１３９】
ステップ１２１において、ＣＰＵ３１は、処理対象ブロックの下側に隣接している下側ブロックを、新たな処理対象ブロックに設定し、当該サブルーチンによる処理を終了する。例えば、図１７に示すブロック番号２のブロックが処理対象ブロックとなっている場合、当該ブロックの下側に隣接しているブロック番号ｍ＋２のブロックが新たな処理対象ブロックに設定される。
【０１４０】
以下、図１５を参照して、上記ステップ８３および上記ステップ１２０や後述するステップ１３９およびステップ１５９で行う左側ブロック確認処理について説明する。
【０１４１】
図１５において、ＣＰＵ３１は、現在処理対象に設定されている処理対象ブロックの左側に隣接している左側ブロックを、新たな処理対象ブロックに設定し（ステップ１３１）、次のステップに処理を進める。例えば、図１７に示すブロック番号ｍ＋２のブロックが処理対象ブロックとなっている場合、当該ブロックの左側に隣接しているブロック番号ｍ＋１のブロックが新たな処理対象ブロックに設定される。
【０１４２】
次に、ＣＰＵ３１は、処理対象ブロックに手書き画像が描画されているか否かを判断する（ステップ１３２）。なお、ステップ１３２の動作例は、上記ステップ９２と同様であるため、詳細な説明を省略する。そして、ＣＰＵ３１は、処理対象ブロックに手書き画像が描画されている場合、次のステップ１３３に処理を進める。一方、ＣＰＵ３１は、処理対象ブロックに手書き画像が描画されていない場合、次のステップ１４１に処理を進める。
【０１４３】
ステップ１３３において、ＣＰＵ３１は、処理対象ブロックが、何れかのグループに設定されているか否かを判断する。なお、ステップ１３３の動作例は、上記ステップ９３と同様であるため、詳細な説明を省略する。そして、ＣＰＵ３１は、処理対象ブロックがグループに設定されていない場合、次のステップ１３４に処理を進める。一方、ＣＰＵ３１は、処理対象ブロックが既に何れかのグループに設定されている場合、次のステップ１４１に処理を進める。
【０１４４】
ステップ１３４において、ＣＰＵ３１は、処理対象ブロックを、現在処理対象となっているグループ番号ｊのグループに属するブロックに設定して、次のステップに処理を進める。なお、ステップ１３４の動作例は、上記ステップ９４と同様であるため、詳細な説明を省略する。上記ステップ１３４の処理によって、処理対象ブロックは、当該左側ブロック確認処理を行う前に処理対象に設定されていたブロック（すなわち、処理対象ブロックから見て右側のブロック）と同じグループ番号のグループに属することになる。
【０１４５】
次に、ＣＰＵ３１は、処理対象ブロックの上端行画素に手書き画像が含まれるか否かを判断する（ステップ１３５）。そして、ＣＰＵ３１は、処理対象ブロックの上端行画素に手書き画像が含まれる場合、すなわち処理対象ブロックと上側ブロックとが接続されていると判断した場合（ステップ１３５でＹｅｓ）、当該処理対象ブロックの接続フラグ（上）をオン（ＯＮ）に設定して上述した上側ブロック確認処理を行い（ステップ１３８）、次のステップ１３６に処理を進める。一方、ＣＰＵ３１は、処理対象ブロックの上端行画素に手書き画像が含まれていない場合、すなわち処理対象ブロックと上側ブロックとが接続されていないと判断した場合（ステップ１３５でＮｏ）、そのまま次のステップ１３６に処理を進める。
【０１４６】
ステップ１３６において、ＣＰＵ３１は、処理対象ブロックの左端列画素に手書き画像が含まれるか否かを判断する。そして、ＣＰＵ３１は、処理対象ブロックの左端列画素に手書き画像が含まれる場合、すなわち処理対象ブロックと左側ブロックとが接続されていると判断した場合（ステップ１３６でＹｅｓ）、当該処理対象ブロックの接続フラグ（左）をオン（ＯＮ）に設定して上記ステップ１３１から左側ブロック確認処理を新たに開始し（ステップ１３９）、当該左側ブロック確認処理が終わった後にステップ１３７に処理を進める。一方、ＣＰＵ３１は、処理対象ブロックの左端列画素に手書き画像が含まれていない場合、すなわち処理対象ブロックと左側ブロックとが接続されていないと判断した場合（ステップ１３６でＮｏ）、そのまま次のステップ１３７に処理を進める。
【０１４７】
ステップ１３７において、ＣＰＵ３１は、処理対象ブロックの下端行画素に手書き画像が含まれるか否かを判断する。そして、ＣＰＵ３１は、処理対象ブロックの下端行画素に手書き画像が含まれる場合、すなわち処理対象ブロックと下側ブロックとが接続されていると判断した場合（ステップ１３７でＹｅｓ）、当該処理対象ブロックの接続フラグ（下）をオン（ＯＮ）に設定して下側ブロック確認処理を行い（ステップ１４０）、次のステップ１４１に処理を進める。一方、ＣＰＵ３１は、処理対象ブロックの下端行画素に手書き画像が含まれていない場合、すなわち処理対象ブロックと下側ブロックとが接続されていないと判断した場合（ステップ１３７でＮｏ）、そのまま次のステップ１４１に処理を進める。
【０１４８】
ステップ１４１において、ＣＰＵ３１は、処理対象ブロックの右側に隣接している右側ブロックを、新たな処理対象ブロックに設定し、当該サブルーチンによる処理を終了する。例えば、図１７に示すブロック番号ｍ＋１のブロックが処理対象ブロックとなっている場合、当該ブロックの右側に隣接しているブロック番号ｍ＋２のブロックが新たな処理対象ブロックに設定される。
【０１４９】
以下、図１６を参照して、上記ステップ８４、上記ステップ１００、および上記ステップ１４０や後述するステップ１６０で行う下側ブロック確認処理について説明する。
【０１５０】
図１６において、ＣＰＵ３１は、現在処理対象に設定されている処理対象ブロックの下側に隣接している下側ブロックを、新たな処理対象ブロックに設定し（ステップ１５１）、次のステップに処理を進める。例えば、図１７に示すブロック番号ｍ＋２のブロックが処理対象ブロックとなっている場合、当該ブロックの下側に隣接しているブロック番号２ｍ＋２のブロックが新たな処理対象ブロックに設定される。
【０１５１】
次に、ＣＰＵ３１は、処理対象ブロックに手書き画像が描画されているか否かを判断する（ステップ１５２）。なお、ステップ１５２の動作例は、上記ステップ９２と同様であるため、詳細な説明を省略する。そして、ＣＰＵ３１は、処理対象ブロックに手書き画像が描画されている場合、次のステップ１５３に処理を進める。一方、ＣＰＵ３１は、処理対象ブロックに手書き画像が描画されていない場合、次のステップ１６１に処理を進める。
【０１５２】
ステップ１５３において、ＣＰＵ３１は、処理対象ブロックが、何れかのグループに設定されているか否かを判断する。なお、ステップ１５３の動作例は、上記ステップ９３と同様であるため、詳細な説明を省略する。そして、ＣＰＵ３１は、処理対象ブロックがグループに設定されていない場合、次のステップ１５４に処理を進める。一方、ＣＰＵ３１は、処理対象ブロックが既に何れかのグループに設定されている場合、次のステップ１６１に処理を進める。
【０１５３】
ステップ１５４において、ＣＰＵ３１は、処理対象ブロックを、現在処理対象となっているグループ番号ｊのグループに属するブロックに設定して、次のステップに処理を進める。なお、ステップ１５４の動作例は、上記ステップ９４と同様であるため、詳細な説明を省略する。上記ステップ１５４の処理によって、処理対象ブロックは、当該下側ブロック確認処理を行う前に処理対象に設定されていたブロック（すなわち、処理対象ブロックから見て上側のブロック）と同じグループ番号のグループに属することになる。
【０１５４】
次に、ＣＰＵ３１は、処理対象ブロックの右端列画素に手書き画像が含まれるか否かを判断する（ステップ１５５）。そして、ＣＰＵ３１は、処理対象ブロックの右端列画素に手書き画像が含まれる場合、すなわち処理対象ブロックと右側ブロックとが接続されていると判断した場合（ステップ１５５でＹｅｓ）、当該処理対象ブロックの接続フラグ（右）をオン（ＯＮ）に設定して上述した右側ブロック確認処理を行い（ステップ１５８）、次のステップ１５６に処理を進める。一方、ＣＰＵ３１は、処理対象ブロックの右端列画素に手書き画像が含まれていない場合、すなわち処理対象ブロックと右側ブロックとが接続されていないと判断した場合（ステップ１５５でＮｏ）、そのまま次のステップ１５６に処理を進める。
【０１５５】
ステップ１５６において、ＣＰＵ３１は、処理対象ブロックの左端列画素に手書き画像が含まれるか否かを判断する。そして、ＣＰＵ３１は、処理対象ブロックの左端列画素に手書き画像が含まれる場合、すなわち処理対象ブロックと左側ブロックとが接続されていると判断した場合（ステップ１５６でＹｅｓ）、当該処理対象ブロックの接続フラグ（左）をオン（ＯＮ）に設定して上述した左側ブロック確認処理を行い（ステップ１５９）、次のステップ１５７に処理を進める。一方、ＣＰＵ３１は、処理対象ブロックの左端列画素に手書き画像が含まれていない場合、すなわち処理対象ブロックと左側ブロックとが接続されていないと判断した場合（ステップ１５６でＮｏ）、そのまま次のステップ１５７に処理を進める。
【０１５６】
ステップ１５７において、ＣＰＵ３１は、処理対象ブロックの下端行画素に手書き画像が含まれるか否かを判断する。そして、ＣＰＵ３１は、処理対象ブロックの下端行画素に手書き画像が含まれる場合、すなわち処理対象ブロックと下側ブロックとが接続されていると判断した場合（ステップ１５７でＹｅｓ）、当該処理対象ブロックの接続フラグ（下）をオン（ＯＮ）に設定して上記ステップ１５１から下側ブロック確認処理を新たに開始し（ステップ１６０）、当該下側ブロック確認処理が終わった後にステップ１６１に処理を進める。一方、ＣＰＵ３１は、処理対象ブロックの下端行画素に手書き画像が含まれていない場合、すなわち処理対象ブロックと下側ブロックとが接続されていないと判断した場合（ステップ１５７でＮｏ）、そのまま次のステップ１６１に処理を進める。
【０１５７】
ステップ１６１において、ＣＰＵ３１は、処理対象ブロックの上側に隣接している上側ブロックを、新たな処理対象ブロックに設定し、当該サブルーチンによる処理を終了する。例えば、図１７に示すブロック番号２ｍ＋２のブロックが処理対象ブロックとなっている場合、当該ブロックの上側に隣接しているブロック番号ｍ＋２のブロックが新たな処理対象ブロックに設定される。
【０１５８】
図２１を用いて、上述した画像分解処理によって手書き画像が分解される例を説明する。なお、図２１において、Ａ〜Ｃはブロック番号を示し、矢印内の数値はブロック間の接続関係を判断した順番を示し、矢印内の記号はその判断結果を示している。
【０１５９】
図２１において、ブロック番号Ａのブロック（以下、ブロックＡと記載する）が処理対象となって、上記ステップ７４〜ステップ８７（図１２参照）の処理が行われる場合を考える。ブロックＡは、手書き文字「ｈ」の一部を含んでいるため、何れかのグループ（例えば、グループ番号１のグループ；以下グループ１と記載する）に設定される（ステップ７４〜ステップ７６）。
【０１６０】
ブロックＡに隣接する左右および上側ブロックに注目すると、これらのブロックとブロックＡとは共通する手書き画像を含んでいないため、ブロックＡと左右および上側ブロックとの間は未接続（×１〜×３）であると判断される（ステップ７７〜ステップ７９）。一方、ブロックＡに隣接する下側ブロック（ブロックＢ）に注目すると、ブロックＢはブロックＡと同じ手書き文字「ｈ」の一部を含んでいるため、ブロックＡとブロックＢとの間は接続（○４）されていると判断される（ステップ８０）。そして、ブロックＢを処理対象ブロックとした確認処理（下側ブロック確認処理；ステップ８４）が実行される。当該確認処理によって、ブロックＢは、手書き文字「ｈ」の一部を含んでいるため、ブロックＡと同じグループ１に設定される（ステップ１５１〜ステップ１５４）。
【０１６１】
次に、ブロックＢに隣接する右側ブロック（ブロックＣ）に注目すると、ブロックＣもブロックＡおよびＢと同じ手書き文字「ｈ」の一部を含んでいるため、ブロックＢとブロックＣとの間は接続（○５）されていると判断される（ステップ１５５）。そして、ブロックＣを処理対象ブロックとした確認処理（右側ブロック確認処理；ステップ１５８）が実行される。当該確認処理によって、ブロックＣは、手書き文字「ｈ」の一部を含んでいるため、ブロックＡおよびＢと同じグループ１に設定される（ステップ９１〜ステップ９４）。
【０１６２】
次に、ブロックＣに隣接する右および上下側ブロックに注目すると、これらのブロックとブロックＣとは共通する手書き画像を含んでいないため、ブロックＣと右および上下側ブロックとの間は未接続（×６〜×８）であると判断される（ステップ９５〜ステップ９７）。そして、ブロックＣを処理対象ブロックとした確認処理（右側ブロック確認処理；ステップ１５８）が終了し、ブロックＢを処理対象ブロックとした確認処理（ステップ１５６）に戻る。
【０１６３】
次に、ブロックＢに隣接する左および下側ブロックに注目すると、これらのブロックとブロックＢとは共通する手書き画像を含んでいないため、ブロックＢと左および下側ブロックとの間は未接続（×９および×１０）であると判断される（ステップ１５６およびステップ１５７）。そして、ブロックＢを処理対象ブロックとした確認処理（下側ブロック確認処理；ステップ８４）が終了し、ブロックＡを処理対象ブロックとした確認処理（ステップ８５）に戻る。
【０１６４】
このように、上述した画像分解処理では、ブロックの接続判定処理をブロック各辺に対して行い、接続判定された他のブロックにおいても同様の接続判定処理を再帰的に行うことによって、手書き画像が連続している範囲を判定している。例えば、図２１に示すように、このような接続判定処理によって、手書き文字「ｈ」が連続している範囲がブロックＡ〜ブロックＢであることが判定され、当該ブロックＡ〜ブロックＣが同じグループに設定される。そして、同様の画像分解処理を繰り返すことによって、手書き文字は、連続している部分毎で異なるグループに設定されていく。これは、手書き文字に限らず、手書きスタンプや自由線等でも同様であり、手書き画像が連続している部分毎に異なるグループに設定されていくことになる。
【０１６５】
図１１に戻り、上記ステップ５６の画像分解処理の後、ＣＰＵ３１は、演出表示処理を行い（ステップ５７）、次のステップに処理を進める。以下、図２２を参照して、上記ステップ５７で行う演出表示処理について説明する。
【０１６６】
図２２において、下側ＬＣＤ１２に表示される画面は、複数のレイヤーによって構成されている。具体的には、上記画面は、内側カメラ２３または外側カメラ２５によって撮像されたリアルタイムの画像（撮像画像）やゲーム装置１やメモリカード２８に画像データとして記憶された画像（撮影画像）等を載せて表示するライブレイヤーＬｌｉｖｅ、上述した手書き画像を載せて表示するペイントレイヤーＬｐａｉｎｔ、および画面上を移動するオブジェクト等を載せて表示する３ＤテクスチャーレイヤーＬ３Ｄ等によって構成されている。
【０１６７】
タッチパネル１３を介して、ユーザが手書き文字や手書きスタンプ等を入力した場合、当該入力に応じた手書き画像がペイントレイヤーＬｐａｉｎｔに載せられる（図２２上段図）。その後、ユーザが全消去操作を行った場合、ペイントレイヤーＬｐａｉｎｔ上の表示画像のうち、上記画像分解処理によって分類されたグループに属するブロック（具体的には、１以上のグループ番号Ｇｎが設定されたブロック）のみが３ＤテクスチャーレイヤーＬ３Ｄ上にコピーされて、ペイントレイヤーＬｐａｉｎｔに載せられた手書き画像が全て消去される（図２２下段図）。
【０１６８】
上記演出表示処理においては、３ＤテクスチャーレイヤーＬ３Ｄに載せられた各ブロックに対してそれぞれ所定の初速度が与えられ、ブロック移動データＤｃに記述される。このとき、各グループに与えられる移動速度および移動方向がランダムに決められ、同じグループ番号Ｇｎのグループに属するブロックについては、同じ移動速度および同じ移動方向の初速度がそれぞれ与えられる。
【０１６９】
例えば、図２３Ａの左図に示すように、ブロックＡ〜Ｃが同じグループに属する場合、ブロックＡ〜Ｃそれぞれの中心位置Ｐｂａ〜Ｐｂｃに対して同じ移動ベクトルＶｂａ〜Ｖｂｃがそれぞれ与えられるため、ブロックＡ〜Ｃに対して同じ移動速度および同じ移動方向の初速度がそれぞれ与えられることになる。そして、ＣＰＵ３１は、ブロック移動データＤｃに記述された各ブロックの移動データ（移動速度、移動方向）に応じて、３ＤテクスチャーレイヤーＬ３Ｄ上で各ブロックをそれぞれに記述された手書き画像と共に移動させる。その後、各ブロックが所定方向（例えば、下側ＬＣＤ１２の下方向）に自由落下するように、処理単位時間毎に各ブロックに対して加速度が与えられて、ブロック移動データＤｃが更新されていく。
【０１７０】
このように、各ブロックに対して移動速度を与えることによって、各ブロックに記述された手書き画像を移動させて下側ＬＣＤ１２に表示することができる。ここで、同じグループに属するブロックについては、同じ移動速度および同じ移動方向が常に与えられ、異なるグループ間では異なる移動速度や異なる移動方向が与えられるため、ブロックがグループ毎に一体となって移動することになり、あたかもグループ単位に分割された手書き画像（手書き文字Ｉｈｗ１）がその分割単位で移動するように表現される（図２３Ａの右図参照）。そして、各ブロックには所定方向の加速度が作用しているため、各ブロックは、やがて下側ＬＣＤ１２の表示範囲外まで移動し、各ブロックに記述された手書き画像が下側ＬＣＤ１２から消去されることになる（図３〜図６参照）。
【０１７１】
なお、上述した説明では、各ブロックが所定方向に自由落下するように、各ブロックに対して加速度が与えられる例を用いたが、当該加速度が与えられなくてもかまわない。この場合、各ブロックに与えられた初速度によって各ブロックが移動することになるため、グループ単位に分割された手書き画像が四方八方に飛び散って移動するように表現される。
【０１７２】
図１１に戻り、上記ステップ５７の演出表示処理の後、ＣＰＵ３１は、当該演出表示処理が終了したか否かを判断する（ステップ５８）。そして、ＣＰＵ３１は、上記演出表示処理が終了していない場合、上記ステップ５７の処理を継続する。一方、ＣＰＵ３１は、上記演出表示処理が終了した場合、次のステップ６０に処理を進める。
【０１７３】
一方、上記ステップ５２で取得した操作データが、手書き入力や全消去を示すデータでない場合（ステップ５３およびステップ５５が何れもＮｏ）、ＣＰＵ３１は、当該操作データに応じたその他の処理を行い（ステップ５９）、次のステップ６０に処理を進める。
【０１７４】
ステップ６０において、ＣＰＵ３１は、画像処理を終了するか否かを判断する。画像処理を終了する条件としては、例えば、画像処理が終了する条件が満たされたことや、ユーザが画像処理を終了する操作を行ったこと等がある。ＣＰＵ３１は、画像処理を終了しない場合に上記ステップ５２に戻って処理を繰り返し、画像処理を終了する場合に当該フローチャートによる処理を終了する。
【０１７５】
このように、本実施形態に係るゲーム装置１は、ユーザ操作による手書き入力によって表示された手書き画像を、ユーザ操作によって全消去する際、手書き画像が分解され、当該分解されたグループ毎に異なる移動をする。したがって、ユーザが手書き入力によって落書きしてその落書きを消すような全消去操作に対して、新たな演出効果が加えられるため、ユーザにとって面白みを感じる操作となる。
【０１７６】
なお、上述した手書き画像の分解処理は、ユーザが手書き入力した画像に対して連続している部分毎にグループに分解しているが、他の態様で画像を分解してもかまわない。例えば、全消去の対象となる画像の色毎に分解したり、全消去の対象となる画像を入力したユーザの入力ストローク（例えば、タッチパネル１３がタッチオンされてからタッチオフされるまでの間に入力された自由線）毎に分解したり、全消去の対象となる画像のエッジを抽出して当該エッジで分解したり、表示画面を予め設定された形状（例えば、所定形状の網の目状）に分割して全消去の対象となる画像を当該形状で分解したりしてもかまわない。ユーザの入力ストローク毎に分解する場合、ユーザが手書き入力した履歴（例えば、タッチパネル１３に入力したタッチ位置の履歴）を記憶しておけば、手書き画像を入力ストローク毎に分解することが可能となる。
【０１７７】
また、上述した手書き画像の分解処理は、当該手書き画像を所定の分割領域（ブロック）に分割し、当該分割領域を当該手書き画像に基づいてグループ化しているため、分解処理の処理負荷が軽減される効果がある。しかしながら、このような効果を期待しない場合、他の方式で手書き画像を分解してもかまわない。例えば、手書き画像を示す画素群に対して、互いに隣接している画素を同じグループに設定するようにそれぞれの画素をグループ化してもかまわない。
【０１７８】
また、上述した実施形態では、ユーザ操作による手書き入力によって表示された手書き文字、手書き線、手書きスタンプ等の手書き画像を全消去操作の対象としたが、他の画像を本発明の全消去操作の対象としてもかまわない。例えば、ユーザが内側カメラ２３または外側カメラ２５によって取り込んだ画像データに基づいた撮像画像や、撮像画像を所定の記憶媒体に一旦記憶した画像データに基づいた撮影画像等、ゲーム装置１の下側ＬＣＤ１２および／または上側ＬＣＤ２２に表示可能な画像を上記全消去対象としてもかまわない。具体的には、ユーザは、ゲーム装置１の操作ボタン１４Ｇまたは操作ボタン１４Ｈを押下することによって、内側カメラ２３または外側カメラ２５を用いた撮影指示を行うことができる。そして、上記撮影処理によって、内側カメラ２３または外側カメラ２５で撮像されている画像を、保存用データメモリ３４やメモリカード２８に記憶（保存）することができる。このような撮影処理によって得られた画像やリアルタイムに撮像されている画像を、ＣＰＵ３１が上記分解処理の対象画像として用いればよい。この場合、上述した色毎に対象画像を分解したり、エッジ抽出によって対象画像をエッジで分解したり、予め設定された形状で対称画像を分解したりすることによって、上記手書き画像と同様の全消去処理時の演出が可能となる。
【０１７９】
また、上述した演出表示処理では、分解された手書き画像を異なる方向へそれぞれ移動させて消去する演出例を用いたが、分解された画像単位で当該画像が移動したり表示角度が変化したり変形したりする他のアニメーション演出処理を行ってもかまわない。例えば、分解された手書き画像を、それぞれ回転移動させて消去したり、それぞれ縮小して消去したり、それぞれ拡大させながら透明度を変化させて消去したりしてもかまわない。
【０１８０】
ここで、上述した演出表示処理では、図２３Ａに示したように同じグループに属するブロックそれぞれに対して同じ移動ベクトルを与えることによって、当該グループを一体的に移動している。しかしながら、上述したように当該グループを回転させる場合は、当該グループに属するブロックそれぞれに異なる移動ベクトルを与えることになる。
【０１８１】
例えば、図２３Ｂに示すように、ブロックＡ〜Ｃが同じグループに属し、ブロックＡ〜Ｃを一体的に回転させる場合を想定する。この場合、ブロックＡ〜Ｃの重心Ｐｇ１からブロックＡ〜Ｃそれぞれの中心位置Ｐｂａ〜Ｐｂｃまでの距離に応じて、重心Ｐｇ１を中心にそれぞれのブロックＡ〜Ｃを同じ回転方向へ移動させる移動ベクトルＶｒａ〜Ｖｒｃを算出する。そして、重心Ｐｇ１を中心にブロックＡ〜Ｃがそれぞれ移動した移動角度θだけ、中心位置Ｐｂａ〜Ｐｂｃを中心にブロックＡ〜Ｃを角度θ回転させる。これによって、グループ単位に分割された手書き画像（手書き文字Ｉｈｗ１）がその分割単位で回転するように表現される（図２３Ｂの右図参照）。このような回転のための移動ベクトルＶｒａ〜Ｖｒｃに、上述した移動のための移動ベクトルＶｂａ〜Ｖｂｃを加えることによって、表示画面内を分割された手書き画像が回転しながら移動するような演出表示も可能となることは言うまでもない。
【０１８２】
また、上述した画像処理では、ユーザが全消去操作を行った場合に分割された手書き画像がそれぞれ演出表示される例を用いたが、ユーザが部分消去操作を行った場合にも同様の演出表示を行ってもかまわない。例えば、ユーザが消去する範囲を指定する操作を行った場合、当該範囲内に含まれるブロックにのみ上述した画像分解処理を行って演出表示処理を行い、当該範囲外のブロックに記述された手書き画像をペイントレイヤーＬｐａｉｎｔ（図２２参照）に載せたままに保持すれば、部分消去であっても本発明を適用することが可能となる。
【０１８３】
また、上述した演出表示処理では、ユーザが行う全消去操作に応じて、分割された手書き画像がそれぞれ下側ＬＣＤ１２の表示範囲外まで移動し、各手書き画像が下側ＬＣＤ１２から消去される例を示したが、本発明は各手書き画像の表示位置または表示態様がそれぞれ変更されれば表示画面から消去されなくても適用可能である。ここで、分解された手書き画像の表示態様を変更するとは、分解された手書き画像毎に形状（拡大、縮小等）を変化させる、分解された手書き画像毎に表示方向を変化（回転）させる、分解された手書き画像毎に色を変化させる、分解された手書き画像毎に点滅させる、分解された手書き画像毎に透明度を変化させる等の処理を含んでいる。例えば、ユーザが行う全消去操作に応じて、分割された手書き画像がそれぞれ下側ＬＣＤ１２の所定位置で重なり合って集合するように各手書き画像が移動するようにしてもかまわない。また、ユーザが行う所定操作（この場合、全消去操作でなくてもよい）に応じて、分割された手書き画像がそれぞれ下側ＬＣＤ１２内を浮遊して移動するように各手書き画像が移動するようにしてもかまわない。さらに、ユーザが行う所定操作（この場合、全消去操作でなくてもよい）に応じて、分割された手書き画像をそれぞれ異なる色に変化させたり、それぞれ異なるタイミングで点滅させたりして、下側ＬＣＤ１２に表示してもかまわない。
【０１８４】
また、図２２を用いて説明したように、ユーザが手書き文字や手書きスタンプ等を入力した場合、当該入力に応じた手書き画像がペイントレイヤーＬｐａｉｎｔに載せられる例を用いたが、手書き画像を他のレイヤーに載せて表示してもかまわない。例えば、ユーザが手書き文字や手書きスタンプ等を入力した場合、当該入力に応じた手書き画像を３ＤテクスチャーレイヤーＬ３Ｄに載せて当該手書き画像を表示してもかまわない。
【０１８５】
また、上述した実施形態では、２画面分の液晶表示部の一例として、物理的に分離された下側ＬＣＤ１２および上側ＬＣＤ２２を互いに上下に配置した場合（上下２画面の場合）を説明した。しかしながら、２画面分の表示画面の構成は、他の構成でもかまわない。例えば、下側ハウジング１１の一方主面に下側ＬＣＤ１２および上側ＬＣＤ２２を左右に配置してもかまわない。また、下側ＬＣＤ１２と横幅が同じで縦の長さが２倍のサイズからなる縦長サイズのＬＣＤ（すなわち、物理的には１つで、表示サイズが縦に２画面分あるＬＣＤ）を下側ハウジング１１の一方主面に配設して、２つの画像（例えば、撮像画像と操作説明画面を示す画像等）を上下に表示（すなわち上下の境界部分無しに隣接して表示）するように構成してもよい。また、下側ＬＣＤ１２と縦幅が同じで横の長さが２倍のサイズからなる横長サイズのＬＣＤを下側ハウジング１１の一方主面に配設して、横方向に２つの画像を左右に表示（すなわち左右の境界部分無しに隣接して表示）するように構成してもよい。すなわち、物理的に１つの画面を２つに分割して使用することにより２つの画像を表示してもかまわない。いずれの画像の形態に対しても、上述した下側ＬＣＤ１２に表示していたまた、物理的に１つの画面を２つに分割して使用することにより上記２つの画像を表示する場合、当該画面全面にタッチパネル１３を配設してもかまわない。
【０１８６】
また、上述した実施例では、ゲーム装置１にタッチパネル１３が一体的に設けられているが、ゲーム装置とタッチパネルとを別体にして構成しても、本発明を実現できることは言うまでもない。また、上側ＬＣＤ２２の上面にタッチパネル１３を設けて上側ＬＣＤ２２に上述した下側ＬＣＤ１２に表示していた表示画像を表示しても良い。さらに、上記実施例では表示画面を２つ（下側ＬＣＤ１２、上側ＬＣＤ２２）を設けたが、表示画面は１つであってもかまわない。すなわち、上記実施例において、上側ＬＣＤ２２を設けず単に下側ＬＣＤ１２のみを表示画面としてタッチパネル１３を設けるように構成してもよい。また、上記実施例において、下側ＬＣＤ１２を設けずに上側ＬＣＤ２２の上面にタッチパネル１３を設けて、上述した下側ＬＣＤ１２に表示していた表示画像を上側ＬＣＤ２２に表示しても良い。
【０１８７】
また、上記実施例では、座標入力を実現するゲーム装置１の入力手段としてタッチパネル１３を用いたが、他のポインティングデバイスを用いてもかまわない。ここで、ポインティングデバイスは、画面上での入力位置や座標を指定する入力装置であり、例えば、マウス、トラックパッド、トラックボール、ペンタブレット、ジョイスティック等を入力手段として使用し、入力手段から出力される出力値から計算された画面座標系の位置情報を用いれば、本発明を同様に実現することができる。
【０１８８】
また、ゲームコントローラをプレイヤが把持してゲームを楽しむ据置型のゲーム装置の場合、他の態様のポインティングデバイスも考えられる。例えば、ゲームコントローラのハウジングに固設されたカメラを、上記ポインティングデバイスとして利用することも可能である。この場合、ゲームコントローラのハウジングで指し示した位置の変化に応じてカメラが撮像する撮像画像が変化する。したがって、この撮像画像を解析することにより、表示画面に対して上記ハウジングで指し示した座標を算出することができる。
【０１８９】
この場合、上記ハウジングで指し示した位置を示す座標を、上述した処理におけるタッチ座標として取り扱えば本発明を実現することが可能である。ただし、タッチパネル入力におけるタッチオンまたはタッチオフ等の入力有無判定については、上記座標入力とは異なった上記ゲームコントローラからの他の入力の有無や変化によって代用する。第１の例として、上記ゲームコントローラに設けられた操作ボタンの押下（例えば、Ａボタンを押下しているときタッチオン）しているか否かによって、上記タッチオンまたはタッチオフの判定を代用する。第２の例では、上記ゲームコントローラが２つのハウジングで構成されている。そして、これら２つのハウジングは、上記カメラが搭載されている一方ハウジングと、他方のハウジングの動きに応じた信号を出力する加速度センサ等の検出部が固設された当該他方のハウジングとで構成される。この場合、他方のハウジングの動き（例えば、ハウジングを所定方向に傾けているときにタッチオン）に応じて、上記タッチオンまたはタッチオフの判定を代用する。第３の例では、上記ゲームコントローラのハウジングにマイク等の音声入力手段が設けられている。この場合、プレイヤが所定の音声を発したときにタッチオンおよびタッチオフが切り替わる判定で代用する。
【０１９０】
また、上記実施例では、携帯型のゲーム装置１や据置型のゲーム装置を用いて説明したが、一般的なパーソナルコンピュータ等の情報処理装置で本発明の画像処理プログラムを実行して、本発明を実現してもかまわない。
【０１９１】
また、上述したゲーム装置１の形状や、それに設けられている各種操作ボタン１４やタッチパネル１３の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述した画像処理で用いられる処理順序等は、単なる一例に過ぎず他の順序であっても、本発明を実現できることは言うまでもない。例えば、上述した処理順序では、ブロック間の接続関係を判定する順序が右側ブロック、上側ブロック、左側ブロック、下側ブロックの順になっているが、他の順序でブロック間の接続関係を判定してもかまわない。
【０１９２】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。
【産業上の利用可能性】
【０１９３】
本発明の画像処理プログラムおよび画像処理装置は、ユーザ操作によって表示された画像を、ユーザ操作に応じて処理する際、新たな演出効果を加えて当該画像を処理することができ、ユーザ操作に応じた手書き画像を表示する装置等に有用であり、これらの装置で実行されるプログラム等としても有用である。
【図面の簡単な説明】
【０１９４】
【図１】本発明の一実施形態に係る画像処理プログラムを実行するゲーム装置１の外観図
【図２】図１のゲーム装置１の内部構成の一例を示すブロック図
【図３】下側ＬＣＤ１２に表示される手書き文字Ｉｈｗの一例を示す図
【図４】ユーザが手書き文字Ｉｈｗを全消去する操作をした場合に下側ＬＣＤ１２で表現される演出例の第１段階を示す図
【図５】ユーザが手書き文字Ｉｈｗを全消去する操作をした場合に下側ＬＣＤ１２で表現される演出例の第２段階を示す図
【図６】ユーザが手書き文字Ｉｈｗを全消去する操作をした場合に下側ＬＣＤ１２で表現される演出例の第３段階を示す図
【図７】下側ＬＣＤ１２に表示される手書きスタンプＩｓｔの一例を示す図
【図８】ユーザが手書きスタンプＩｓｔを全消去する操作をした場合に下側ＬＣＤ１２で表現される演出例を示す図
【図９】本発明の一実施形態に係る画像処理プログラムを実行することに応じて、メインメモリ３２に記憶される各種データの一例を示す図
【図１０】メインメモリ３２に記憶されるブロックデータＤｂの一例を示す図
【図１１】本発明の一実施形態に係る画像処理プログラムを実行することによってゲーム装置１が画像処理を行うフローチャート
【図１２】図１１のステップ５６で行われる画像分解処理の詳細な動作を示すサブルーチン
【図１３】図１２のステップ８１等で行われる右側ブロック確認処理の詳細な動作を示すサブルーチン
【図１４】図１２のステップ８２等で行われる上側ブロック確認処理の詳細な動作を示すサブルーチン
【図１５】図１２のステップ８３等で行われる左側ブロック確認処理の詳細な動作を示すサブルーチン
【図１６】図１２のステップ８４等で行われる下側ブロック確認処理の詳細な動作を示すサブルーチン
【図１７】横ｍ個×縦ｎ個のブロックで格子状に分割された表示画面ＤＡの一例を示す図
【図１８】ブロックＡに隣接する右側のブロック、上側のブロック、左側のブロック、および下側のブロックを説明するための図
【図１９】処理対象ブロックと右側ブロックとの接続関係を判断するときに用いられる最端画素の一例を説明するための図
【図２０】判断基準Ａ〜Ｃによるブロック間の接続関係の判断結果例を示す図
【図２１】画像分解処理によって手書き画像が分解される例を説明するための図
【図２２】画面を構成する複数レイヤーの一例を示す図
【図２３Ａ】同じグループに属するブロックＡ〜Ｃが移動する場合にそれぞれ与えられる移動速度の一例を示す図
【図２３Ｂ】同じグループに属するブロックＡ〜Ｃが回転する場合にそれぞれ与えられる移動速度の一例を示す図
【符号の説明】
【０１９５】
１…ゲーム装置
１１…下側ハウジング
１２…下側ＬＣＤ
１３…タッチパネル
１４…操作ボタン
１５、２６…ＬＥＤ
１６…マイクロフォン用孔
２１…上側ハウジング
２２…上側ＬＣＤ
２３…内側カメラ
２４…音抜き孔
２５…外側カメラ
２７…タッチペン
２８、２９…メモリカード
３１…ＣＰＵ
３２…メインメモリ
３３…メモリ制御回路
３４…保存用データメモリ
３５…プリセットデータ用メモリ
３６、３７…メモリカードＩ／Ｆ
３８…無線通信モジュール
３９…ローカル通信モジュール
４０…ＲＴＣ
４１…電源回路
４２…Ｉ／Ｆ回路
４３…マイク
４４…アンプ
【図１】
2010061472.tif 000003
【図２】
2010061472.tif 000004
【図３】
2010061472.tif 000005
【図４】
2010061472.tif 000006
【図５】
2010061472.tif 000007
【図６】
2010061472.tif 000008
【図７】
2010061472.tif 000009
【図８】
2010061472.tif 000010
【図９】
2010061472.tif 000011
【図１０】
2010061472.tif 000012
【図１１】
2010061472.tif 000013
【図１２】
2010061472.tif 000014
【図１３】
2010061472.tif 000015
【図１４】
2010061472.tif 000016
【図１５】
2010061472.tif 000017
【図１６】
2010061472.tif 000018
【図１７】
2010061472.tif 000019
【図１８】
2010061472.tif 000020
【図１９】
2010061472.tif 000021
【図２０】
2010061472.tif 000022
【図２１】
2010061472.tif 000023
【図２２】
2010061472.tif 000024
【図２３Ａ】
2010061472.tif 000025
【図２３Ｂ】
2010061472.tif 000026