(57)【要約】【課題】画像の拡大率または撮像対象と撮像装置との距離に応じて適切な画像の移動制御を行う画像処理プログラムおよび画像処理装置を提供する。【解決手段】所定の指示入力に基づいて表示領域に対する所定の配置位置へ画像を配置して表示する。画像の拡大率に応じて画像の拡大縮小を行い、表示領域に対して配置位置が設定可能な範囲を、拡大率に応じて変化させる。そして、取得した指示入力に基づいて、範囲内における指示入力に対応する位置を配置位置として算出し、拡大縮小した画像を配置位置に配置して、画像を表示装置に表示させる。【選択図】図１９
2012113752.tif 000002
【特許請求の範囲】
【請求項１】
画像を拡大縮小し、所定の指示入力に基づいて表示領域に対する所定の配置位置へ当該画像を配置して表示する画像処理装置のコンピュータで実行される画像処理プログラムであって、
前記コンピュータを、
前記指示入力を取得する指示入力取得手段と、
前記画像の拡大率を設定し、当該拡大率に応じて当該画像の拡大縮小を行う拡大縮小手段と、
前記表示領域に対して前記配置位置が設定可能な範囲を、前記拡大縮小手段が設定した拡大率に応じて変化させる範囲設定手段と、
前記指示入力取得手段が取得した指示入力に基づいて、前記範囲内における当該指示入力に対応する位置を前記配置位置として算出する配置位置算出手段と、
前記拡大縮小手段が拡大縮小した前記画像を前記配置位置に配置する画像配置手段と、
前記画像配置手段が配置した画像を表示装置に表示させる表示制御手段として機能させる、画像処理プログラム。
【請求項２】
前記範囲設定手段は、前記拡大縮小手段が設定した拡大率が高いほど前記範囲を大きく設定する、請求項１に記載の画像処理プログラム。
【請求項３】
前記指示入力取得手段は、所定の撮像対象を撮像する撮像装置を備えた入力装置から、前記指示入力を取得し、
前記画像処理プログラムは、前記撮像対象と前記撮像装置との距離を算出する距離算出手段として、さらに前記コンピュータを機能させ、
前記拡大縮小手段は、前記距離が短いほど前記拡大率を大きくし、
前記配置位置算出手段は、前記拡大率および前記撮像装置が撮像する撮像画像内の前記撮像対象の位置に基づいて、前記配置位置を算出する、請求項２に記載の画像処理プログラム。
【請求項４】
前記配置位置算出手段は、前記範囲設定手段が設定した前記範囲内において、前記撮像画像内の撮像対象の位置の変化に対する前記配置位置の変化の割合を、前記拡大率に基づいて変更して当該配置位置を算出する、請求項３に記載の画像処理プログラム。
【請求項５】
前記撮像対象は、複数配置されており、
前記距離算出手段は、前記撮像画像内における撮像対象の間隔に基づいて、前記撮像対象と前記撮像装置との距離を算出する、請求項３に記載の画像処理プログラム。
【請求項６】
前記撮像画像内における撮像対象間の傾きに基づいて、前記入力装置の姿勢を算出する姿勢算出手段と、
前記入力装置の姿勢に応じて、前記画像の向きを決定する画像方向決定手段として、さらに前記コンピュータを機能させ、
前記画像配置手段は、前記拡大縮小手段が拡大縮小した前記画像を前記画像方向決定手段が決定した向きに配置する、請求項５に記載の画像処理プログラム。
【請求項７】
前記範囲設定手段は、前記画像の縦横比率を用いて、前記拡大率に応じて変化させる前記範囲の縦横比率を変化させる、請求項１または２に記載の画像処理プログラム。
【請求項８】
前記指示入力に応じて、前記画像の向きを決定する画像方向決定手段として、さらに前記コンピュータを機能させ、
前記範囲設定手段は、前記画像の縦横比率および当該画像の向きを用いて、前記拡大率に応じて変化させる前記範囲の縦横比率を変化させる、請求項７に記載の画像処理プログラム。
【請求項９】
撮像対象を撮像するための撮像手段を備えた入力装置から得られる指示入力に基づいて、表示領域に対する所定の配置位置へ当該画像を配置して表示する画像処理装置のコンピュータで実行される画像処理プログラムであって、
前記コンピュータを、
前記入力装置から、前記指示入力を取得する指示入力取得手段と、
前記撮像画像内における撮像対象の位置に基づいて、前記撮像対象と前記撮像手段との距離を算出する距離算出手段と、
前記撮像画像内における撮像対象の位置の変化に対する前記配置位置の変化の割合を、前記距離に基づいて変更して当該配置位置を算出する配置位置算出手段と、
前記画像を前記配置位置に配置する画像配置手段と、
前記画像配置手段が配置した画像を表示装置に表示させる表示制御手段として機能させる、画像処理プログラム。
【請求項１０】
前記配置位置算出手段は、前記距離算出手段が算出した距離が短いほど前記配置位置の変化の割合を大きく変更して前記配置位置を算出する、請求項９に記載の画像処理プログラム。
【請求項１１】
前記表示領域に対して前記配置位置が設定可能な範囲を、前記距離算出手段が算出した距離に応じて変化させる範囲設定手段として、前記コンピュータをさらに機能させ、
前記範囲設定手段は、前記距離算出手段が算出した距離が短いほど前記範囲を大きく設定する、請求項１０に記載の画像処理プログラム。
【請求項１２】
前記撮像対象は、複数配置されており、
前記距離算出手段は、前記撮像画像内における撮像対象の間隔に基づいて、前記撮像対象と前記撮像手段との距離を算出する、請求項９または１０に記載の画像処理プログラム。
【請求項１３】
画像を拡大縮小し、所定の指示入力に基づいて表示装置の表示領域に対する所定の配置位置へ当該画像を配置して表示する画像処理装置であって、
前記指示入力を取得する指示入力取得手段と、
前記画像の拡大率を設定し、当該拡大率に応じて当該画像の拡大縮小を行う拡大縮小手段と、
前記表示領域に対して前記配置位置が設定可能な範囲を、前記拡大縮小手段が設定した拡大率に応じて変化させる範囲設定手段と、
前記指示入力取得手段が取得した指示入力に基づいて、前記範囲内における当該指示入力に対応する位置を前記配置位置として算出する配置位置算出手段と、
前記拡大縮小手段が拡大縮小した前記画像を前記配置位置に配置する画像配置手段と、
前記画像配置手段が配置した画像を表示装置に表示させる表示制御手段とを備える、画像処理装置。
【請求項１４】
前記範囲設定手段は、前記拡大縮小手段が設定した拡大率が高いほど前記範囲を大きく設定する、請求項１３に記載の画像処理装置。
【請求項１５】
前記指示入力取得手段は、所定の撮像対象を撮像する撮像装置を備えた入力装置から、前記指示入力を取得し、
前記画像処理装置は、前記撮像対象と前記撮像装置との距離を算出する距離算出手段を
、さらに備え、
前記拡大縮小手段は、前記距離が短いほど前記拡大率を大きくし、
前記配置位置算出手段は、前記拡大率および前記撮像装置が撮像する撮像画像内の前記撮像対象の位置に基づいて、前記配置位置を算出する、請求項１４に記載の画像処理装置。
【請求項１６】
撮像対象を撮像するための撮像手段を備えた入力装置から得られる指示入力に基づいて、表示装置の表示領域に対する所定の配置位置へ当該画像を配置して表示する画像処理装置であって、
前記入力装置から、前記指示入力を取得する指示入力取得手段と、
前記撮像画像内における撮像対象の位置に基づいて、前記撮像対象と前記撮像手段との距離を算出する距離算出手段と、
前記撮像画像内における撮像対象の位置の変化に対する前記配置位置の変化の割合を、前記距離に基づいて変更して当該配置位置を算出する配置位置算出手段と、
前記画像を前記配置位置に配置する画像配置手段と、
前記画像配置手段が配置した画像を表示装置に表示させる表示制御手段とを備える、画像処理装置。
【請求項１７】
前記配置位置算出手段は、前記距離算出手段が算出した距離が短いほど前記配置位置の変化の割合を大きく変更して前記配置位置を算出する、請求項１６に記載の画像処理装置。
【請求項１８】
前記表示領域に対して前記配置位置が設定可能な範囲を、前記距離算出手段が算出した距離に応じて変化させる範囲設定手段を、さらに備え、
前記範囲設定手段は、前記距離算出手段が算出した距離が短いほど前記範囲を大きく設定する、請求項１７に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理プログラムおよび画像処理装置に関し、より特定的には、指示された配置位置に画像を配置して表示する画像処理プログラムおよび画像処理装置に関する。
【背景技術】
【０００２】
従来、入力装置と撮像対象（マーカ）との距離に基づいて画像を拡大／縮小するような画像処理装置が開示されている（例えば、特許文献１参照）。上記特許文献１で開示された画像処理装置では、コントローラに撮像装置を備え、当該撮像装置で２つのマーカを撮像し、撮像画像における２つのマーカの距離に基づいて入力装置と撮像対象（マーカ）との距離を算出する。そして、当該距離に基づいて画像の拡大／縮小を行って、当該画像を２つのマーカの中点座標に対応させた位置（例えば、コントローラで指し示した位置）に配置して表示装置に表示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２３６６９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１で開示された画像処理装置では、図２０に示すように、拡大率が異なる画像に対して移動可能な範囲を一定にすると、操作性が悪くなることがある。図２０Ａにおいて、拡大率が相対的に低い画像ＩＭｓに対して、当該画像ＩＭｓの位置を示す座標Ｐｉｍｓが移動可能な範囲（移動可能範囲）が設定されている。図２０Ａの例では、移動可能範囲の最端部まで画像ＩＭｓが移動すると、当該画像ＩＭｓのほぼ全体が表示画面内に表示され、一部が表示画面外に表示されるように移動可能範囲が設定されている。
【０００５】
一方、図２０Ｂにおいても、拡大率が相対的に高い画像ＩＭｂに対して、画像ＩＭｓと同じ同様の座標Ｐｉｍｂの移動可能範囲が設定されている。この場合、移動可能範囲の最端部まで画像ＩＭｂが移動すると、当該画像ＩＭｓの約１／４が表示画面内に表示され、約３／４が表示画面外に表示されるように移動可能範囲が設定されることになる。したがって、拡大率が相対的に高い画像ＩＭｂを移動させる場合、画像ＩＭｓと比較して移動可能範囲の最端部まで画像ＩＭｂを移動させても広い範囲の当該画像ＩＭｂの領域が表示画面内に残るために、ユーザがさらに外側へ画像ＩＭｂを移動させたくなる場合があり得る。しかしながら、移動可能範囲が固定されているためにそのような願望が満たされることがないため、ユーザの操作性が悪化してしまう。
【０００６】
また、画像ＩＭｂの移動を想定して、移動可能範囲を表示領域外まで拡げた範囲に設定することを考える。この場合、表示領域外まで拡げた同じ移動可能範囲を用いて拡大率が相対的に低い画像ＩＭｓを移動させると、表示領域から画像ＩＭｓが消えることが考えられ、画像ＩＭｓが表示画面に表示されない状態となる。この場合、ユーザは画像ＩＭｓの位置がわからなくなり、操作しにくい状態となってしまう。
【０００７】
また、２つのマーカの中点座標に対応させた位置に画像を配置して表示装置に表示する場合、当該マーカとコントローラとの距離によって異なる位置が指示されることがある。具体的には、上記マーカに近づいた位置でコントローラを操作する場合と比較して、上記マーカから離れた位置でコントローラを操作すると、コントローラの撮像装置の向き（コントローラを指し示す方向）を少し変えるだけで、大きく指示位置が変化する。つまり、ユーザがコントローラを用いて同じ操作をしたとしてもマーカからの距離によって操作内容が異なってしまうことになる。
【０００８】
それ故に、本発明の目的は、上述した課題の少なくとも１つを解決するものであり、画像の拡大率または撮像対象と撮像装置との距離に応じて適切な画像の移動制御を行う画像処理プログラムおよび画像処理装置を提供することである。
【課題を解決するための手段】
【０００９】
上記の目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号、ステップ番号（ステップをＳと略称しステップ番号のみを記載する）、図面番号等は、本発明の理解を助けるために後述する最良の形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【００１０】
第１の発明は、画像（ＩＭ）を拡大縮小し、所定の指示入力（Ｄａ；（Ｌｘ，Ｌｙ）、（Ｒｘ，Ｒｙ））に基づいて表示領域に対する所定の配置位置（Ｐｉｍ）へ当該画像を配置して表示する画像処理装置（５）のコンピュータ（１０）で実行される画像処理プログラムである。画像処理プログラムは、指示入力取得手段（ステップ５０およびステップ６４を実行するＣＰＵ１０；以下、単にステップ番号のみ記載する）、拡大縮小手段（Ｓ５５、Ｓ６０）、範囲設定手段（Ｓ５７）、配置位置算出手段（Ｓ５８）、画像配置手段（Ｓ６１）、および表示制御手段（Ｓ６２）として、コンピュータを機能させる。指示入力取得手段は、指示入力を取得する。拡大縮小手段は、画像の拡大率（Ｓｘ、Ｓｙ）を設定し、当該拡大率に応じて当該画像の拡大縮小を行う。範囲設定手段は、表示領域に対して配置位置が設定可能な範囲を、拡大縮小手段が設定した拡大率（ＳｘおよびＳｙから算出されるＳＴｘ、ＳＴｙ）に応じて変化させる。配置位置算出手段は、指示入力取得手段が取得した指示入力に基づいて、範囲内における当該指示入力に対応する位置を配置位置として算出する。画像配置手段は、拡大縮小手段が拡大縮小した画像を配置位置に配置する。表示制御手段は、画像配置手段が配置した画像を表示装置（２）に表示させる。なお、配置位置が設定可能な範囲は、表示領域に対して設定されるが、当該表示領域と同じでもいいし、当該表示領域より狭くてもいいし、当該表示領域より広くてもかまわない。
【００１１】
第２の発明は、上記第１の発明において、範囲設定手段は、拡大縮小手段が設定した拡大率が高いほど範囲を大きく設定する。
【００１２】
第３の発明は、上記第２の発明において、指示入力取得手段は、所定の撮像対象（８）を撮像する撮像装置（７４）を備えた入力装置（７）から、指示入力を取得する。画像処理プログラムは、距離算出手段（Ｓ５２、Ｓ６５）として、さらにコンピュータを機能させる。距離算出手段は、撮像対象と撮像装置との距離（Ｄ）を算出する。拡大縮小手段は、距離が短いほど拡大率を大きくする。配置位置算出手段は、拡大率および撮像装置が撮像する撮像画像内の撮像対象の位置に基づいて、配置位置を算出する。
【００１３】
第４の発明は、上記第３の発明において、配置位置算出手段は、範囲設定手段が設定した範囲内において、撮像画像内の撮像対象の位置の変化に対する配置位置の変化の割合を、拡大率に基づいて変更して当該配置位置を算出する。
【００１４】
第５の発明は、上記第３の発明において、撮像対象は、複数配置されている。距離算出手段は、撮像画像内における撮像対象の間隔（ｍｉ）に基づいて、撮像対象と撮像装置との距離を算出する。
【００１５】
第６の発明は、上記第５の発明において、姿勢算出手段（Ｓ５４）および画像方向決定手段（Ｓ５９）として、さらにコンピュータを機能させる。姿勢算出手段は、撮像画像内における撮像対象間の傾き（Ｄｂ１）に基づいて、入力装置の姿勢を算出する。画像方向決定手段は、入力装置の姿勢に応じて、画像の向き（Ａｉｍ）を決定する。画像配置手段は、拡大縮小手段が拡大縮小した画像を画像方向決定手段が決定した向きに配置する。
【００１６】
第７の発明は、上記第１または第２の発明において、範囲設定手段は、画像の縦横比率を用いて、拡大率に応じて変化させる範囲の縦横比率を変化させる。
【００１７】
第８の発明は、上記第７の発明において、画像方向決定手段として、さらにコンピュータを機能させる。画像方向決定手段は、指示入力に応じて、画像の向きを決定する。範囲設定手段は、画像の縦横比率および当該画像の向きを用いて、拡大率に応じて変化させる範囲の縦横比率を変化させる。
【００１８】
第９の発明は、撮像対象を撮像するための撮像手段を備えた入力装置から得られる指示入力に基づいて、表示領域に対する所定の配置位置へ当該画像を配置して表示する画像処理装置のコンピュータで実行される画像処理プログラムである。画像処理プログラムは、指示入力取得手段、距離算出手段、配置位置算出手段、画像配置手段、および表示制御手段として、コンピュータを機能させる。指示入力取得手段は、入力装置から、指示入力を取得する。距離算出手段は、撮像画像内における撮像対象の位置に基づいて、撮像対象と撮像手段との距離を算出する。配置位置算出手段は、撮像画像内における撮像対象の位置の変化に対する配置位置の変化の割合を、距離に基づいて変更して当該配置位置を算出する。画像配置手段は、画像を配置位置に配置する。表示制御手段は、画像配置手段が配置した画像を表示装置に表示させる。
【００１９】
第１０の発明は、上記第９の発明において、配置位置算出手段は、距離算出手段が算出した距離が短いほど配置位置の変化の割合を大きく変更して配置位置を算出する。
【００２０】
第１１の発明は、上記第１０の発明において、範囲設定手段として、コンピュータをさらに機能させる。範囲設定手段は、表示領域に対して配置位置が設定可能な範囲を、距離算出手段が算出した距離に応じて変化させる。範囲設定手段は、距離算出手段が算出した距離が短いほど範囲を大きく設定する。
【００２１】
第１２の発明は、上記第９または第１０の発明において、撮像対象は、複数配置されている。距離算出手段は、撮像画像内における撮像対象の間隔に基づいて、撮像対象と撮像手段との距離を算出する。
【００２２】
第１３の発明は、画像を拡大縮小し、所定の指示入力に基づいて表示装置の表示領域に対する所定の配置位置へ当該画像を配置して表示する画像処理装置である。画像処理装置は、指示入力取得手段、拡大縮小手段、範囲設定手段、配置位置算出手段、画像配置手段、および表示制御手段を備える。指示入力取得手段は、指示入力を取得する。拡大縮小手段は、画像の拡大率を設定し、当該拡大率に応じて当該画像の拡大縮小を行う。範囲設定手段は、表示領域に対して配置位置が設定可能な範囲を、拡大縮小手段が設定した拡大率に応じて変化させる。配置位置算出手段は、指示入力取得手段が取得した指示入力に基づいて、範囲内における当該指示入力に対応する位置を配置位置として算出する。画像配置手段は、拡大縮小手段が拡大縮小した画像を配置位置に配置する。表示制御手段は、画像配置手段が配置した画像を表示装置に表示させる。
【００２３】
第１４の発明は、上記第１３の発明において、範囲設定手段は、拡大縮小手段が設定した拡大率が高いほど範囲を大きく設定する。
【００２４】
第１５の発明は、上記第１４の発明において、指示入力取得手段は、所定の撮像対象を撮像する撮像装置を備えた入力装置から、指示入力を取得する。画像処理装置は、距離算出手段を、さらに備える。距離算出手段は、撮像対象と撮像装置との距離を算出する。拡大縮小手段は、距離が短いほど拡大率を大きくする。配置位置算出手段は、拡大率および撮像装置が撮像する撮像画像内の撮像対象の位置に基づいて、配置位置を算出する。
【００２５】
第１６の発明は、撮像対象を撮像するための撮像手段を備えた入力装置から得られる指示入力に基づいて、表示装置の表示領域に対する所定の配置位置へ当該画像を配置して表示する画像処理装置である。画像処理装置は、指示入力取得手段、距離算出手段、配置位置算出手段、画像配置手段、および表示制御手段を備える。指示入力取得手段は、入力装置から、指示入力を取得する。距離算出手段は、撮像画像内における撮像対象の位置に基づいて、撮像対象と撮像手段との距離を算出する。配置位置算出手段は、撮像画像内における撮像対象の位置の変化に対する配置位置の変化の割合を、距離に基づいて変更して当該配置位置を算出する。画像配置手段は、画像を配置位置に配置する。表示制御手段は、画像配置手段が配置した画像を表示装置に表示させる。
【００２６】
第１７の発明は、上記第１６の発明において、配置位置算出手段は、距離算出手段が算出した距離が短いほど配置位置の変化の割合を大きく変更して配置位置を算出する。
【００２７】
第１８の発明は、上記第１３の発明において、範囲設定手段を、さらに備える。範囲設定手段は、表示領域に対して配置位置が設定可能な範囲を、距離算出手段が算出した距離に応じて変化させる。範囲設定手段は、距離算出手段が算出した距離が短いほど範囲を大きく設定する。
【発明の効果】
【００２８】
上記第１の発明によれば、画像の拡大率に応じて当該画像が移動可能な範囲が設定されるため、画像サイズに応じた適切な移動範囲の設定が可能となり、画像の拡大率に応じた適切な画像の移動制御が可能となる。
【００２９】
上記第２の発明によれば、拡大率が高い画像に対して移動可能範囲が不足するような操作性の悪化を防止することができる。また、拡大率が低い、すなわち縮小して表示される画像に対しては、その移動可能範囲が縮小するため、当該画像が表示領域外に消えてしまうような状態を防止することができる。
【００３０】
上記第３の発明によれば、入力装置を撮像対象に近づけると画像が拡大して表示され、その画像が移動可能な範囲も拡大する。一方、入力装置を撮像対象から離すと画像が縮小して表示され、その画像が移動可能な範囲も縮小する。したがって、入力装置と撮像対象との距離を変化させるだけで画像の拡大／縮小処理ができるため、簡単な操作で画像の拡大率を変化させて表示することができる。また、入力装置を撮像対象に対して上下左右に動かすことに応じて、表示された画像が移動して表示されるため、簡単な操作で画像を移動させて表示することができる。
【００３１】
上記第４の発明によれば、入力装置で指し示された位置に画像を表示する場合、入力装置と撮像対象とが離れた場合と比較すると、入力装置と撮像対象とが近づいたときに指示される画像の移動量が大きくなる。したがって、入力装置の指し示し位置の変化量に対して、入力装置と撮像対象との距離の違いによって生じる画像の移動量の増減を緩和することができる。すなわち、ユーザが入力装置を用いて指し示し位置を移動させる操作をすると、入力装置と撮像対象との距離が異なっていてもその操作性が大きく変化せず、違和感のない操作を行うことができる。
【００３２】
上記第５の発明によれば、入力装置が撮像した撮像画像内における少なくとも２つの撮像対象に対して、当該撮像対象の間隔を用いることによって容易に撮像対象と撮像装置との距離を算出することができる。
【００３３】
上記第６の発明によれば、ユーザが入力装置を左右にひねるような操作をしたとき、当該操作に応じて画像を回転させて表示することができる。
【００３４】
上記第７の発明によれば、画像の縦横比に応じて当該画像が移動できる範囲が設定されるため、縦長形状の画像や横長形状の画像等、画像の形状に応じて適切な移動可能範囲を設定することができる。
【００３５】
上記第８の発明によれば、画像の向きに応じて当該画像が移動できる範囲が設定されるため、縦長形状の画像や横長形状の画像の配置角度が変化する等、画像の形状および配置角度に応じて適切な移動可能範囲を設定することができる。
【００３６】
上記第９の発明によれば、入力装置の指し示し位置の変化量に対して、入力装置と撮像対象との距離の違いによって生じる画像の移動量の増減を調整することができる。例えば、入力装置で指し示された位置に画像を表示する場合、同じような指し示し位置を移動させる操作を行ったとしても、入力装置と撮像対象との距離によって、指し示し位置の移動量が変化する。したがって、当該指し示し位置の移動に応じて移動する画像の移動量も増減してしまう。しかしながら、入力装置と撮像対象との距離に応じて画像の移動量を調整することによって、ユーザが入力装置を用いて指し示し位置を移動させる操作に対する画像移動量の操作性を調整することが可能となり、違和感のない操作を行うことができる。
【００３７】
上記第１０の発明によれば、入力装置で指し示された位置に画像を表示する場合、入力装置と撮像対象とが離れた場合と比較すると、入力装置と撮像対象とが近づいたときに指示される画像の移動量が大きくなる。したがって、入力装置の指し示し位置の変化量に対して、入力装置と撮像対象との距離の違いによって生じる画像の移動量の増減を緩和することができる。すなわち、ユーザが入力装置を用いて指し示し位置を移動させる操作をすると、入力装置と撮像対象との距離が異なっていてもその操作性が大きく変化せず、違和感のない操作を行うことができる。
【００３８】
上記第１１の発明によれば、入力装置と撮像対象との距離に応じて、画像が移動可能な範囲を調整することができ、入力装置と撮像対象との距離が近いほど画像の移動可能範囲を拡大することができる。
【００３９】
上記第１２の発明によれば、入力装置が撮像した撮像画像内における少なくとも２つの撮像対象に対して、当該撮像対象の間隔を用いることによって容易に撮像対象と撮像装置との距離を算出することができる。
【００４０】
本発明の画像処理装置によれば、上述した画像処理プログラムと同様の効果を得ることができる。
【図面の簡単な説明】
【００４１】
【図１】本発明の一実施形態に係るゲームシステム１を説明するための外観図
【図２】図１のゲーム装置本体５の機能ブロック図
【図３】図１のコントローラ７の上面後方から見た斜視図
【図４】図３のコントローラ７を下面前方から見た斜視図
【図５】図３のコントローラ７の上筐体を外した状態を示す斜視図
【図６】図４のコントローラ７の下筐体を外した状態を示す斜視図
【図７】図３のコントローラ７の構成を示すブロック図
【図８】プレイヤがコントローラ７を右手で把持した状態をコントローラ７の前面側から見た一例を示す図
【図９】プレイヤがコントローラ７を右手で把持した状態をコントローラ７の左側面側から見た一例を示す図
【図１０】マーカ８Ｌおよび８Ｒと撮像情報演算部７４との視野角を説明するための図
【図１１】プレイヤＰがマーカ８Ｌおよび８Ｒに対して前後方向へ操作する一例を示す上面図
【図１２】図１１に示した操作に応じて、モニタ２に表示される画面例を示す図
【図１３】図１１に示した操作に応じて、モニタ２に表示される画面例を示す図
【図１４】プレイヤＰがモニタ２の表示画面の両端をコントローラ７で指し示す際の操作角度を示す図
【図１５】ゲーム装置本体５のメインメモリに記憶される主なデータの一例を示す図
【図１６】ゲーム装置本体５において実行される画像処理の流れを示すフローチャート
【図１７】図１６のステップ５２およびステップ６５における距離算出処理の詳細な動作を示すサブルーチン
【図１８】距離Ｄを算出する動作を説明するための図
【図１９】仮想ゲーム空間に設定される画像位置および移動可能範囲の概念図
【図２０Ａ】従来の拡大率が相対的に低い画像に対して移動可能な範囲を示す図
【図２０Ｂ】従来の拡大率が相対的に高い画像に対して移動可能な範囲を示す図
【発明を実施するための形態】
【００４２】
図１を参照して、本発明の一実施形態に係る画像処理プログラムを実行する装置について説明する。以下、説明を具体的にするために、当該装置の一例の据置型のゲーム装置本体５を含むゲームシステムについて説明する。なお、図１は据置型のゲーム装置３を含むゲームシステム１の外観図であり、図２はゲーム装置本体５のブロック図である。以下、当該ゲームシステム１について説明する。
【００４３】
図１において、ゲームシステム１は、表示手段の一例の家庭用テレビジョン受像機（以下、モニタと記載する）２と、当該モニタ２に接続コードを介して接続する据置型のゲーム装置３とから構成される。モニタ２は、ゲーム装置本体５から出力された音声信号を音声出力するためのスピーカ２ａを備える。また、ゲーム装置３は、本願発明の画像処理プログラムの一例であるゲームプログラムを記録した光ディスク４と、当該光ディスク４のゲームプログラムを実行してゲーム画面をモニタ２に表示出力させるためのコンピュータを搭載したゲーム装置本体５と、ゲーム画面に表示されたキャラクタ等を操作するゲームに必要な操作情報をゲーム装置本体５に与えるためのコントローラ７とを備えている。
【００４４】
また、ゲーム装置本体５は、無線コントローラモジュール１９（図２参照）を内蔵する。無線コントローラモジュール１９は、コントローラ７から無線送信されるデータを受信し、ゲーム装置本体５からコントローラ７へデータを送信して、コントローラ７とゲーム装置本体５とを無線通信によって接続する。さらに、ゲーム装置本体５には、当該ゲーム装置本体５に対して交換可能に用いられる情報記憶媒体の一例の光ディスク４が脱着される。
【００４５】
また、ゲーム装置本体５には、後述する各種データやゲームソフト処理におけるセーブデータ等のデータを固定的に記憶するバックアップメモリとして機能するフラッシュメモリ１７（図２参照）が搭載される。ゲーム装置本体５は、光ディスク４に記憶されたゲームプログラム等を実行することによって、その結果をゲーム画像としてモニタ２に表示する。また、ゲームプログラム等は、光ディスク４に限らず、フラッシュメモリ１７に予め記録されたものを実行するようにしてもよい。さらに、ゲーム装置本体５は、フラッシュメモリ１７に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ２に表示することもできる。そして、ゲーム装置本体５のプレイヤは、モニタ２に表示されたゲーム画像を見ながら、コントローラ７を操作することによって、ゲーム進行を楽しむことができる。
【００４６】
コントローラ７は、無線コントローラモジュール１９を内蔵するゲーム装置本体５へ、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）の技術を用いて操作情報等の送信データを無線送信する。コントローラ７は、主にモニタ２の表示画面に表示されるオブジェクト等を操作するための操作手段である。コントローラ７は、片手で把持可能な程度の大きさのハウジングと、当該ハウジングの表面に露出して設けられた複数個の操作ボタン（十字キーやスティック等を含む）とが設けられている。また、後述により明らかとなるが、コントローラ７は、当該コントローラ７から見た画像を撮像する撮像情報演算部７４を備えている。また、撮像情報演算部７４の撮像対象の一例として、モニタ２の表示画面近傍に２つのＬＥＤモジュール（以下、マーカと記載する）８Ｌおよび８Ｒが設置される。これらマーカ８Ｌおよび８Ｒは、それぞれモニタ２の前方に向かって例えば赤外光を出力する。また、コントローラ７は、ゲーム装置本体５の無線コントローラモジュール１９から無線送信された送信データを通信部７５で受信して、当該送信データに応じた音や振動を発生させることもできる。
【００４７】
次に、図２を参照して、ゲーム装置本体５の内部構成について説明する。図２は、ゲーム装置本体５の構成を示すブロック図である。ゲーム装置本体５は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、システムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）１１、外部メインメモリ１２、ＲＯＭ／ＲＴＣ（Ｒｅａｄ
Ｏｎｌｙ  Ｍｅｍｏｒｙ／Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）１３、ディスクドライブ１４、およびＡＶ−ＩＣ（Ａｕｄｉｏ  Ｖｉｄｅｏ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）１５等を有する。
【００４８】
ＣＰＵ１０は、光ディスク４に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。ＣＰＵ１０は、システムＬＳＩ１１に接続される。システムＬＳＩ１１には、ＣＰＵ１０の他、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４、およびＡＶ−ＩＣ１５が接続される。システムＬＳＩ１１は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。なお、システムＬＳＩ１１の内部構成については、後述する。揮発性の外部メインメモリ１２は、光ディスク４から読み出されたゲームプログラムや、フラッシュメモリ１７から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、ＣＰＵ１０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ１３は、ゲーム装置本体５の起動用のプログラムが組み込まれるＲＯＭ（いわゆるブートＲＯＭ）と、時間をカウントするクロック回路（ＲＴＣ）とを有する。ディスクドライブ１４は、光ディスク４からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ３５または外部メインメモリ１２に読み出したデータを書き込む。
【００４９】
また、システムＬＳＩ１１には、入出力プロセッサ３１、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）３２、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）３３、ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）３４、および内部メインメモリ３５が設けられる。図示は省略するが、これらの構成要素３１〜３５は、内部バスによって互いに接続される。
【００５０】
ＧＰＵ３２は、描画手段の一部を形成し、ＣＰＵ１０からのグラフィクスコマンド（作画命令）に従って画像を生成する。ＶＲＡＭ３４は、ＧＰＵ３２がグラフィクスコマンドを実行するために必要なデータ（ポリゴンデータやテクスチャデータ等のデータ）を記憶する。画像が生成される際には、ＧＰＵ３２は、ＶＲＡＭ３４に記憶されたデータを用いて画像データを作成する。
【００５１】
ＤＳＰ３３は、オーディオプロセッサとして機能し、内部メインメモリ３５や外部メインメモリ１２に記憶されるサウンドデータや音波形（音色）データを用いて、音声データを生成する。そして、スピーカ２ａから音を出力させる場合、ＤＳＰ３３は、上記サウンドデータを読み出し、ＡＶ−ＩＣ１５およびＡＶコネクタ１６を介して、モニタ２に備えるスピーカ２ａに出力させる。また、コントローラ７に搭載されたスピーカ７０６（図７参照）から音を出力させる場合、ＤＳＰ３３は、上記サウンドデータを読み出し、無線コントローラモジュール１９およびアンテナ２３を介して、音声データをコントローラ７に送信する。
【００５２】
上述のように生成された画像データおよび音声データは、ＡＶ−ＩＣ１５によって読み出される。ＡＶ−ＩＣ１５は、ＡＶコネクタ１６を介して、読み出した画像データをモニタ２に出力するとともに、読み出した音声データをモニタ２に内蔵されるスピーカ２ａに出力する。これによって、画像がモニタ２に表示されるとともに音がスピーカ２ａから出力される。
【００５３】
入出力プロセッサ（Ｉ／Ｏプロセッサ）３１は、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ３１は、フラッシュメモリ１７、無線通信モジュール１８、無線コントローラモジュール１９、拡張コネクタ２０、および外部メモリカード用コネクタ２１に接続される。無線通信モジュール１８にはアンテナ２２が接続され、無線コントローラモジュール１９にはアンテナ２３が接続される。
【００５４】
入出力プロセッサ３１は、無線通信モジュール１８およびアンテナ２２を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ３１は、定期的にフラッシュメモリ１７にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール１８およびアンテナ２２を介して当該データをネットワークに送信する。また、入出力プロセッサ３１は、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ２２、および無線通信モジュール１８を介して受信し、受信したデータをフラッシュメモリ１７に記憶する。ＣＰＵ１０は、ゲームプログラムを実行することにより、フラッシュメモリ１７に記憶されたデータを読み出してゲームプログラムや画像処理プログラムの実行動作で利用する。フラッシュメモリ１７には、ゲーム装置本体５と他のゲーム装置や各種サーバとの間で送受信されるデータの他、上述したようにゲーム装置本体５を利用してプレイしたゲームのセーブデータ（ゲームの結果データまたは途中データ）が記憶されてもよい。
【００５５】
また、入出力プロセッサ３１は、アンテナ２３および無線コントローラモジュール１９を介して、コントローラ７から送信される操作データ等を受信し、内部メインメモリ３５または外部メインメモリ１２のバッファ領域に記憶（一時記憶）する。なお、内部メインメモリ３５には、外部メインメモリ１２と同様に、光ディスク４から読み出されたゲームプログラムや、フラッシュメモリ１７から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりしてもよく、ＣＰＵ１０のワーク領域やバッファ領域として用いられてもかまわない。
【００５６】
さらに、入出力プロセッサ３１には、拡張コネクタ２０および外部メモリカード用コネクタ２１が接続される。拡張コネクタ２０は、ＵＳＢやＳＣＳＩのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール１８に替えてネットワークとの通信を行ったりすることができる。外部メモリカード用コネクタ２１は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ３１は、拡張コネクタ２０や外部メモリカード用コネクタ２１を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【００５７】
また、ゲーム装置本体５（例えば、前部主面）には、当該ゲーム装置本体５の電源ボタン２４、ゲーム処理のリセットボタン２５、光ディスク４を脱着する投入口、およびゲーム装置本体５の投入口から光ディスク４を取り出すイジェクトボタン２６等が設けられている。電源ボタン２４およびリセットボタン２５は、システムＬＳＩ１１に接続される。電源ボタン２４がオンされると、ゲーム装置本体５の各構成要素に対して、図示しないＡＣアダプタを経て電力が供給される。リセットボタン２５が押されると、システムＬＳＩ１１は、ゲーム装置本体５の起動プログラムを再起動する。イジェクトボタン２６は、ディスクドライブ１４に接続される。イジェクトボタン２６が押されると、ディスクドライブ１４から光ディスク４が排出される。
【００５８】
図３および図４を参照して、コントローラ７について説明する。なお、図３は、コントローラ７の上面後方から見た斜視図である。図４は、コントローラ７を下面前方から見た斜視図である。
【００５９】
図３および図４において、コントローラ７は、例えばプラスチック成型によって形成されたハウジング７１を有しており、当該ハウジング７１に複数の操作部７２が設けられている。ハウジング７１は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
【００６０】
ハウジング７１上面の中央前面側に、十字キー７２ａが設けられる。この十字キー７２ａは、十字型の４方向プッシュスイッチであり、４つの方向（前後左右）に対応する操作部分が十字の突出片にそれぞれ９０°間隔で配置される。プレイヤが十字キー７２ａのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばプレイヤが十字キー７２ａを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、複数の選択肢から選択指示したりすることができる。
【００６１】
なお、十字キー７２ａは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、十字方向に４つのプッシュスイッチを配設し、プレイヤによって押下されたプッシュスイッチに応じて操作信号を出力する操作部を設けてもかまわない。さらに、上記４つのプッシュスイッチとは別に、上記十字方向が交わる位置にセンタスイッチを配設し、４つのプッシュスイッチとセンタスイッチとを複合した操作部を設けてもかまわない。また、ハウジング７１上面から突出した傾倒可能なスティック（いわゆる、ジョイスティック）を倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー７２ａの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー７２ａの代わりに設けてもかまわない。また、タッチパッドを、上記十字キー７２ａの代わりに設けてもかまわない。
【００６２】
ハウジング７１上面の十字キー７２ａより後面側に、複数の操作ボタン７２ｂ〜７２ｇが設けられる。操作ボタン７２ｂ〜７２ｇは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン７２ｂ〜７２ｇに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン７２ｂ〜７２ｄには、１番ボタン、２番ボタン、およびＡボタン等としての機能が割り当てられる。また、操作ボタン７２ｅ〜７２ｇには、マイナスボタン、ホームボタン、およびプラスボタン等としての機能が割り当てられる。これら操作ボタン７２ａ〜７２ｇは、ゲーム装置本体５が実行するゲームプログラムに応じてそれぞれの操作機能が割り当てられる。なお、図３に示した配置例では、操作ボタン７２ｂ〜７２ｄは、ハウジング７１上面の中央前後方向に沿って並設されている。また、操作ボタン７２ｅ〜７２ｇは、ハウジング７１上面の左右方向に沿って操作ボタン７２ｂおよび７２ｄの間に並設されている。そして、操作ボタン７２ｆは、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【００６３】
また、ハウジング７１上面の十字キー７２ａより前面側に、操作ボタン７２ｈが設けられる。操作ボタン７２ｈは、遠隔からゲーム装置本体５の電源をオン／オフする電源スイッチである。この操作ボタン７２ｈも、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【００６４】
また、ハウジング７１上面の操作ボタン７２ｃより後面側に、複数のＬＥＤ７０２が設けられる。ここで、コントローラ７は、他のコントローラ７と区別するためにコントローラ種別（番号）が設けられている。例えば、ＬＥＤ７０２は、コントローラ７に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、無線コントローラモジュール１９からコントローラ７へ、複数のＬＥＤ７０２のうち、上記コントローラ種別に対応するＬＥＤを点灯させるための信号が送信される。
【００６５】
また、ハウジング７１上面には、操作ボタン７２ｂおよび操作ボタン７２ｅ〜７２ｇの間に後述するスピーカ（図５に示すスピーカ７０６）からの音を外部に放出するための音抜き孔が形成されている。
【００６６】
一方、ハウジング７１下面には、凹部が形成されている。ハウジング７１下面の凹部は、プレイヤがコントローラ７の前面をマーカ８Ｌおよび８Ｒに向けて片手で把持したときに、当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の傾斜面には、操作ボタン７２ｉが設けられる。操作ボタン７２ｉは、例えばＢボタンとして機能する操作部である。
【００６７】
また、ハウジング７１前面には、撮像情報演算部７４の一部を構成する撮像素子７４３が設けられる。ここで、撮像情報演算部７４は、コントローラ７が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大２００フレーム／秒程度のサンプリング周期であるため比較的高速なコントローラ７の動きでも追跡して解析することができる。この撮像情報演算部７４の詳細な構成については、後述する。また、ハウジング７１の後面には、コネクタ７３が設けられている。コネクタ７３は、例えばエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。
【００６８】
次に、図５および図６を参照して、コントローラ７の内部構造について説明する。なお、図５は、コントローラ７の上筐体（ハウジング７１の一部）を外した状態を後面側から見た斜視図である。図６は、コントローラ７の下筐体（ハウジング７１の一部）を外した状態を前面側から見た斜視図である。ここで、図６に示す基板７００は、図５に示す基板７００の裏面から見た斜視図となっている。
【００６９】
図５において、ハウジング７１の内部には基板７００が固設されており、当該基板７００の上主面上に操作ボタン７２ａ〜７２ｈ、加速度センサ７０１、ＬＥＤ７０２、およびアンテナ７５４等が設けられる。そして、これらは、基板７００等に形成された配線（図示せず）によってマイコン７５１等（図６、図７参照）に接続される。また、無線モジュール７５３（図７参照）およびアンテナ７５４によって、コントローラ７がワイヤレスコントローラとして機能する。なお、ハウジング７１内部には図示しない水晶振動子が設けられており、後述するマイコン７５１の基本クロックを生成する。また、基板７００の上主面上に、スピーカ７０６およびアンプ７０８が設けられる。
【００７０】
また、加速度センサ７０１は、操作ボタン７２ｄの左側の基板７００上（つまり、基板７００の中央部ではなく周辺部）に設けられる。したがって、加速度センサ７０１は、コントローラ７の長手方向を軸とした回転に応じて、重力加速度の方向変化に加え、遠心力による成分が含まれる加速度を検出することができるので、所定の演算により、検出される加速度データからコントローラ７の動きを良好な感度でゲーム装置本体５等が判定することができる。例えば、コントローラ７は、３軸の加速度センサ７０１を備えている。この３軸の加速度センサ７０１は、３方向、すなわち、上下方向、左右方向、および前後方向で直線加速度を検知する。そして、加速度センサ７０１でそれぞれ検知された加速度を示すデータは、通信部７５に出力される。
【００７１】
一方、図６において、基板７００の下主面上の前端縁に撮像情報演算部７４が設けられる。撮像情報演算部７４は、コントローラ７の前方から順に赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４によって構成されており、それぞれ基板７００の下主面に取り付けられる。また、基板７００の下主面上の後端縁にコネクタ７３が取り付けられる。さらに、基板７００の下主面上にサウンドＩＣ７０７およびマイコン７５１が設けられている。サウンドＩＣ７０７は、基板７００等に形成された配線によってマイコン７５１およびアンプ７０８と接続され、ゲーム装置本体５から送信されたサウンドデータに応じてアンプ７０８を介してスピーカ７０６に音声信号を出力する。
【００７２】
そして、基板７００の下主面上には、バイブレータ７０４が取り付けられる。バイブレータ７０４は、例えば振動モータやソレノイドである。バイブレータ７０４は、基板７００等に形成された配線によってマイコン７５１と接続され、ゲーム装置本体５から送信された振動データに応じてその作動をオン／オフする。バイブレータ７０４が作動することによってコントローラ７に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。ここで、バイブレータ７０４は、ハウジング７１のやや前方寄りに配置されるため、プレイヤが把持している状態において、ハウジング７１が大きく振動することになり、振動を感じやすくなる。
【００７３】
次に、図７を参照して、コントローラ７の内部構成について説明する。なお、図７は、コントローラ７の構成を示すブロック図である。
【００７４】
図７において、コントローラ７は、上述した操作部７２、撮像情報演算部７４、加速度センサ７０１、バイブレータ７０４、スピーカ７０６、サウンドＩＣ７０７、およびアンプ７０８の他に、その内部に通信部７５を備えている。
【００７５】
撮像情報演算部７４は、赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４を含んでいる。赤外線フィルタ７４１は、コントローラ７の前方から入射する光から赤外線のみを通過させる。レンズ７４２は、赤外線フィルタ７４１を透過した赤外線を集光して撮像素子７４３へ出射する。撮像素子７４３は、例えばＣＭＯＳセンサやあるいはＣＣＤのような固体撮像素子であり、レンズ７４２が集光した赤外線を撮像する。したがって、撮像素子７４３は、赤外線フィルタ７４１を通過した赤外線だけを撮像して画像データを生成する。撮像素子７４３で生成された画像データは、画像処理回路７４４で処理される。具体的には、画像処理回路７４４は、撮像素子７４３から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部７５へ出力する。なお、これらの撮像情報演算部７４は、コントローラ７のハウジング７１に固設されており、ハウジング７１自体の方向を変えることによってその撮像方向を変更することができる。
【００７６】
通信部７５は、マイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）７５１、メモリ７５２、無線モジュール７５３、およびアンテナ７５４を含んでいる。マイコン７５１は、処理の際にメモリ７５２を記憶領域として用いながら、送信データを無線送信する無線モジュール７５３を制御する。また、マイコン７５１は、アンテナ７５４を介して無線モジュール７５３が受信したゲーム装置本体５からのデータに応じて、サウンドＩＣ７０７およびバイブレータ７０４の動作を制御する。サウンドＩＣ７０７は、通信部７５を介してゲーム装置本体５から送信されたサウンドデータ等を処理する。また、マイコン７５１は、通信部７５を介してゲーム装置本体５から送信された振動データ（例えば、バイブレータ７０４をＯＮまたはＯＦＦする信号）等に応じて、バイブレータ７０４を作動させる。
【００７７】
コントローラ７に設けられた操作部７２からの操作信号（キーデータ）、加速度センサ７０１からの３軸方向の加速度信号（加速度データ）、および撮像情報演算部７４からの処理結果データは、マイコン７５１に出力される。マイコン７５１は、入力した各データ（キーデータ、加速度データ、処理結果データ）を無線コントローラモジュール１９へ送信する送信データとして一時的にメモリ７５２に格納する。ここで、通信部７５から無線コントローラモジュール１９への無線送信は、所定の周期毎に行われるが、ゲームの処理は１／６０秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は１６．７ｍｓ（１／６０秒）であり、ブルートゥース（登録商標）で構成される通信部７５の送信間隔は５ｍｓである。マイコン７５１は、無線コントローラモジュール１９への送信タイミングが到来すると、メモリ７５２に格納されている送信データを一連の操作情報として出力し、無線モジュール７５３へ出力する。そして、無線モジュール７５３は、例えばブルートゥース（登録商標）の技術を用いて、操作情報を示す電波信号を所定周波数の搬送波を用いてアンテナ７５４から放射する。つまり、コントローラ７に設けられた操作部７２からのキーデータ、加速度センサ７０１からの加速度データ、および撮像情報演算部７４からの処理結果データがコントローラ７から送信される。そして、ゲーム装置本体５の無線コントローラモジュール１９でその電波信号を受信し、ゲーム装置本体５で当該電波信号を復調や復号することによって、一連の操作情報（キーデータ、加速度データ、および処理結果データ）を取得する。そして、ゲーム装置本体５のＣＰＵ１０は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、ブルートゥース（登録商標）の技術を用いて通信部７５を構成する場合、通信部７５は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【００７８】
図８および図９を参照して、プレイヤがコントローラ７を一方の手で把持した状態について説明する。なお、図８は、プレイヤがコントローラ７を右手で把持した状態をコントローラ７の前面側から見た一例である。図９は、プレイヤがコントローラ７を右手で把持した状態をコントローラ７の左側面側から見た一例である。
【００７９】
図８および図９に示すように、コントローラ７は、全体として大人や子供の片手で把持可能な大きさである。そして、プレイヤの親指をコントローラ７の上面（例えば、十字キー７２ａ付近）に添え、プレイヤの人差し指をコントローラ７下面の凹部（例えば、操作ボタン７２ｉ付近）に添えたとき、コントローラ７の前面に設けられている撮像情報演算部７４の光入射口がプレイヤの前方方向に露出する。なお、このようなコントローラ７に対する把持状態は、プレイヤの左手であっても同様に行えることは言うまでもない。
【００８０】
このように、コントローラ７は、プレイヤが片手で把持した状態で十字キー７２ａや操作ボタン７２ｉ等の操作部７２を容易に操作することができる。さらに、プレイヤがコントローラ７を片手で把持したとき、当該コントローラ７の前面に設けられている撮像情報演算部７４の光入射口が露出するため、上述した２つのマーカ８Ｌおよび８Ｒからの赤外光を容易に当該光入射口から取り入れることができる。つまり、プレイヤは、コントローラ７が有する撮像情報演算部７４の機能を阻害することなくコントローラ７を片手で把持することができる。したがって、プレイヤがコントローラ７を把持した手を表示画面に対して動かすことによって、コントローラ７は、プレイヤの手の運動が表示画面に直接作用する操作入力機能をさらに備えることができる。
【００８１】
このように、ゲームシステム１でコントローラ７を用いてゲームをプレイするためには、プレイヤは、一方の手（例えば右手）でコントローラ７を把持する。そして、プレイヤは、コントローラ７の前面（撮像情報演算部７４が撮像する光の入射口側）がモニタ２に向くようにコントローラ７を把持する。一方、モニタ２の表示画面近傍には、２つのマーカ８Ｌおよび８Ｒが設置される（図１参照）。これらマーカ８Ｌおよび８Ｒは、それぞれモニタ２の前方に向かって赤外光を出力し、撮像情報演算部７４の撮像対象となる。
【００８２】
図１０に示すように、マーカ８Ｌおよび８Ｒは、それぞれ視野角θ１を有している。また、撮像素子７４３は、視野角θ２を有している。例えば、マーカ８Ｌおよび８Ｒの視野角θ１は共に３４°（半値角）であり、撮像素子７４３の視野角θ２は４１°である。そして、撮像素子７４３の視野角θ２の中にマーカ８Ｌおよび８Ｒが共に存在し、マーカ８Ｌの視野角θ１の中でかつマーカ８Ｒの視野角θ１の中に撮像素子７４３が存在するとき、ゲーム装置本体５は、２つのマーカ８Ｌおよび８Ｒによる高輝度点に関する位置データを用いてコントローラ７の位置（マーカ８Ｌおよび８Ｒからの距離を含む）を算出する。
【００８３】
プレイヤがその前面がモニタ２に向くようにコントローラ７を把持することによって、撮像情報演算部７４には２つのマーカ８Ｌおよび８Ｒが出力した赤外光が入射する。そして、赤外線フィルタ７４１およびレンズ７４２を介して、入射した赤外光を撮像素子７４３が撮像し、当該撮像画像を画像処理回路７４４が処理する。ここで、撮像情報演算部７４では、マーカ８Ｌおよび８Ｒから出力される赤外線成分を検出することで、上記撮像画像における当該マーカ８Ｌおよび８Ｒの位置情報（対象画像の位置）や面積、直径、幅等のサイズ情報を取得する。具体的には、画像処理回路７４４は、撮像素子７４３が撮像した画像データを解析して、まず面積情報からマーカ８Ｌおよび８Ｒからの赤外光ではあり得ない画像を除外し、さらに輝度が高い点をマーカ８Ｌおよび８Ｒそれぞれの位置として判別する。そして、撮像情報演算部７４は、判別されたそれらの輝点の重心位置等の位置情報を取得し、上記処理結果データとして出力する。ここで、上記処理結果データである位置情報は、撮像画像における所定の基準点（例えば、撮像画像の中央や左上隅）を原点とした座標値として出力するものでもよく、所定のタイミングにおける輝点位置を基準点として、当該基準位置からの現在の輝点位置の差をベクトルとして出力するものでもよい。つまり、上記対象画像の位置情報は、撮像素子７４３が撮像した撮像画像に対して所定の基準点を設定した場合に、当該基準点に対する差として用いられるパラメータである。このような位置情報をゲーム装置本体５へ送信することによって、ゲーム装置本体５では、基準からの上記位置情報の差に基づいて、マーカ８Ｌおよび８Ｒに対する撮像情報演算部７４、すなわちコントローラ７の動き、姿勢、位置等に応じた信号の変化量を得ることができる。具体的には、コントローラ７が動かされることによって、通信部７５から送信される画像内の高輝度点の位置が変化するため、高輝度点の位置の変化に対応させた方向入力や座標入力を行うことで、３次元空間に対してコントローラ７の移動方向に沿った方向入力や座標入力を行うことができる。なお、後述するゲーム処理動作例では、撮像情報演算部７４が撮像画像におけるマーカ８Ｌおよび８Ｒの対象画像それぞれの重心位置の座標を少なくとも取得し、上記処理結果データとして出力する例を用いる。
【００８４】
このように、コントローラ７の撮像情報演算部７４によって、固定的に設置されたマーカ（実施例では、２つのマーカ８Ｌおよび８Ｒからの赤外光）を撮像することによって、ゲーム装置本体５におけるゲーム処理において、コントローラ７から出力されるデータを処理してコントローラ７の動き、姿勢、位置等に対応した操作が可能となり、ボタンを押下するような操作ボタンや操作キーとは異なった直感的な操作入力となる。また、上述したように上記マーカは、モニタ２の表示画面近傍に設置されているため、マーカに対する位置をモニタ２の表示画面に対するコントローラ７の動き、姿勢、位置等に換算することも容易に行うことができる。つまり、コントローラ７の動き、姿勢、位置等による処理結果データは、モニタ２の表示画面に直接作用する操作入力として用いることができる。なお、ゲームシステム１では、マーカ８Ｌおよび８Ｒを撮像した撮像画像を用いて、マーカ８Ｌおよび８Ｒからコントローラ７までの距離もモニタ２の表示画面に直接作用する操作入力として用いることができるが、詳細な動作については後述する。
【００８５】
次に、図１１〜図１３を参照して、プレイヤＰの操作に応じてモニタ２に表示される画面例について説明する。なお、図１１は、プレイヤＰがマーカ８Ｌおよび８Ｒに対して前後方向へ操作する一例を示す上面図である。図１２および図１３は、図１１に示した操作に応じて、モニタ２に表示される画面例を示す図である。
【００８６】
図１１において、プレイヤＰは、コントローラ７の前面をマーカ８Ｌおよび８Ｒ（モニタ２）に向けて、当該コントローラ７を把持している。そして、マーカ８Ｌおよび８Ｒの中点からコントローラ７の前面（厳密には撮像素子７４３）までの距離を距離Ｄとする。ここで、図１１に示す状態Ａでは、プレイヤが距離Ｄｂｓ（後述する基準距離Ｄｂｓ）となる位置でコントローラ７を把持している。そして、プレイヤＰは、コントローラ７をモニタ２に向かって前後に動かすことによって、マーカ８Ｌおよび８Ｒの中点からコントローラ７の前面までの距離Ｄを変化させることができる。例えば、プレイヤＰがコントローラ７をモニタ２に向かって前に動かすことによって、距離Ｄｂｓから距離Ｄｎの位置へコントローラ７を動かしている（状態Ｂ）。また、プレイヤがコントローラ７をモニタ２に向かって後ろに動かすことによって、距離Ｄｂｓから距離Ｄｆの位置へコントローラ７を動かしている（状態Ｃ）。
【００８７】
図１２は、上記状態Ｂにおいてモニタ２に表示される画面例である。図１２において、モニタ２には、状態Ｂにおいて背景画像に重畳されて画像ＩＭｂの一部が表示されている。ここで、画像ＩＭｂは、コントローラ７で指し示された位置やコントローラ７の姿勢に応じて、モニタ２の表示領域において移動および／または回転するキャラクタ画像である。また、画像ＩＭｂは、状態Ａで表示される画像に対して拡大されてモニタ２に表示される。つまり、プレイヤＰは、コントローラ７をモニタ２に近づけることによって、モニタ２に表示されたキャラクタ画像（画像ＩＭｂ）を拡大して表示することができる。さらに、プレイヤＰは、コントローラ７をモニタ２に対して上下左右に動かしたり、コントローラ７を左右にひねったりすることよって、モニタ２に表示された画像ＩＭｂを移動および／または回転させて表示することができる。なお、図１２においては、プレイヤＰがコントローラ７で指し示した位置に応じて設定される画像ＩＭｂの位置が、画像位置Ｐｉｍｂとして記載されている。
【００８８】
図１３は、上記状態Ｃにおいてモニタ２に表示される画面例である。図１３において、モニタ２には、状態Ｃにおいて背景画像に重畳されて画像ＩＭｓが表示されている。ここで、画像ＩＭｓは、画像ＩＭｂと同様にコントローラ７で指し示された位置やコントローラ７の姿勢に応じて、モニタ２の表示領域において移動および／または回転するキャラクタ画像である。また、画像ＩＭｓは、状態Ａで表示される画像や図１２に示した画像ＩＭｂに対して縮小されてモニタ２に表示される。つまり、プレイヤＰは、コントローラ７をモニタ２から遠ざけることによって、モニタ２に表示されたキャラクタ画像（画像ＩＭｓ）を縮小して表示することができる。さらに、プレイヤＰは、画像ＩＭｂと同様に、コントローラ７をモニタ２に対して上下左右に動かしたり、コントローラ７を左右にひねったりすることよって、モニタ２に表示された画像ＩＭｓを移動および／または回転させて表示することができる。なお、図１３においては、プレイヤＰがコントローラ７で指し示した位置に応じて設定される画像ＩＭｓの位置が、画像位置Ｐｉｍｓとして記載されている。
【００８９】
また、図１２および図１３を比較して明らかなように、画像ＩＭｂおよび画像ＩＭｓが移動可能な範囲（以下、移動可能範囲と記載する）は、それぞれ異なった大きさで設定される。ここで、画像ＩＭｂおよび画像ＩＭｓの移動可能範囲は、それぞれの画像位置ＰｉｍｂおよびＰｉｍｓが配置可能な領域を示している。具体的には、拡大表示されている画像ＩＭｂに対して相対的に広い移動可能範囲が設定され、図１２に示した一例ではモニタ２の表示領域より広い範囲の移動可能範囲が設定されている。また、縮小表示されている画像ＩＭｓに対して相対的に狭い移動可能範囲が設定され、図１３に示した一例ではモニタ２の表示領域より狭い範囲の移動可能範囲が設定されている。このように、画像ＩＭの拡大率に応じた移動可能範囲を設定することによって、拡大率が相対的に高い画像ＩＭｂであっても移動可能範囲が不足したり、拡大率が相対的に低い画像ＩＭｓの移動によって当該画像ＩＭｓが表示領域外に消えてしまったりするようなことがなく、画像ＩＭに対して適切な移動制御を行うことができる。
【００９０】
さらに、プレイヤＰがコントローラ７をモニタ２に対して上下左右に動かすことによって移動する画像ＩＭの移動速度は、上記距離Ｄに応じて変化する。具体的には、上記状態Ｂ、すなわちモニタ２に近づいてコントローラ７を操作する場合、コントローラ７が指し示す位置を移動させることによって相対的に画像ＩＭの移動速度を速くする。一方、上記状態Ｃ、すなわちモニタ２から離れてコントローラ７を操作する場合、コントローラ７が指し示す位置を移動させることによって相対的に画像ＩＭの移動速度を遅くする。
【００９１】
ここで、プレイヤＰがコントローラ７を同じ角度で左右に動かしたとしても、モニタ２とコントローラ７との距離によって当該コントローラ７で指し示す位置が変化する。例えば、図１４に示すように、プレイヤＰがモニタ２に近づいて表示画面の両端をそれぞれコントローラ７Ｎで指し示すためには、コントローラ７Ｎの角度をθＮだけ動かす必要がある。一方、モニタ２から遠い位置でプレイヤＰが同じ表示画面の両端をそれぞれコントローラ７Ｆで指し示すためには、コントローラ７Ｆの角度をθＦだけ動かす必要がある。そして、この２つの状態を比較すると、図１４に示すように操作角度θＮ＞操作角度θＦとなる。つまり、プレイヤＰがモニタ２に近づいてコントローラ７で指し示す場合、モニタ２から遠い位置で操作する場合と比較するとコントローラ７の移動角度を大きくする必要がある。このような距離Ｄに応じて変化する操作性の違いを少なくするために、コントローラ７で指し示す位置に対して設定する画像位置Ｐｉｍの移動量を、距離Ｄに応じて変化させている。なお、コントローラ７で指し示す位置に対して設定される画像ＩＭの画像位置Ｐｉｍが、本発明の配置位置に相当する。
【００９２】
次に、ゲームシステム１において行われるゲーム処理の詳細を説明する。まず、図１５を参照して、ゲーム処理において用いられる主なデータについて説明する。なお、図１５は、ゲーム装置本体５の外部メインメモリ１２および／または内部メインメモリ３５（以下、２つのメインメモリを総称して、単にメインメモリと記載する）に記憶される主なデータの一例を示す図である。
【００９３】
図１５に示すように、メインメモリには、操作情報Ｄａ、操作状態情報Ｄｂ、および表示情報Ｄｃ等が記憶される。なお、メインメモリには、図１５に示す情報に含まれるデータの他、ゲーム処理に必要なデータが適宜記憶される。
【００９４】
操作情報Ｄａは、コントローラ７から送信データとして送信されてくる一連の操作情報（キーデータ、加速度データ、および処理結果データ）が格納され、最新の操作情報に更新される。操作情報Ｄａには、上述の処理結果データの位置情報に相当する第１座標データＤａ１および第２座標データＤａ２が含まれる。第１座標データＤａ１は、撮像素子７４３が撮像した撮像画像に対して、２つのマーカ８Ｌおよび８Ｒのうちの一方の画像の位置（撮像画像内における位置）を示すデータである。第２座標データＤａ２は、他方のマーカの画像の位置（撮像画像内における位置）を示すデータである。例えば、撮像画像におけるマーカの画像の位置は、撮像画像におけるｘｙ座標系によって表される。
【００９５】
また、操作情報Ｄａには、撮像画像から得られる処理結果データの一例の座標データ（第１座標データＤａ１および第２座標データＤａ２）の他、操作部７２から得られるキーデータＤａ３等が含まれる。なお、ゲーム装置本体５に備える無線コントローラモジュール１９は、コントローラ７から所定間隔例えば５ｍｓごとに送信される一連の操作情報を受信し、無線コントローラモジュール１９に備える図示しないバッファに蓄えられる。その後、上記バッファに蓄えられた最新の操作情報がゲーム処理間隔である１フレーム毎（例えば１／６０秒毎）に読み出されて、メインメモリの操作情報Ｄａが更新される。
【００９６】
操作状態情報Ｄｂは、コントローラ７の操作状態を撮像画像に基づいて判断した情報が格納される。操作状態情報Ｄｂは、撮像画像に含まれる対象画像（マーカ）の位置や向きから得られるデータが格納され、具体的には、方向データＤｂ１、中点データＤｂ２、現在距離データＤｂ３、基準距離データＤｂ４、指示座標データＤｂ５、および指示方向データＤｂ６等を含む。方向データＤｂ１は、第１座標データＤａ１が示す位置から第２座標データＤａ２が示す位置への方向を示すデータである。ここでは、方向データＤｂ１は、第１座標データＤａ１が示す位置を始点とし第２座標データＤａ２が示す位置を終点とするベクトルのデータとする。中点データＤｂ２は、第１座標データＤａ１が示す位置と第２座標データＤａ２が示す位置との中点の座標を示す。ここで、２つのマーカ（マーカ８Ｌおよび８Ｒ）の画像を１つの対象画像としてみた場合、中点データＤｂ２は、撮像画像における対象画像の位置を示すことになる。現在距離データＤｂ３は、第１座標データＤａ１および第２座標データＤａ２に基づいて算出された、マーカ８Ｌおよび８Ｒからコントローラ７までの現在の距離Ｄを示すデータである。基準距離データＤｂ４は、所定タイミング（例えば、後述する処理を開始したタイミング）におけるマーカ８Ｌおよび８Ｒからコントローラ７までの距離Ｄを基準距離Ｄｂｓとして示すデータである。指示座標データＤｂ５は、コントローラ７によって指し示された仮想ゲーム空間内の指示位置（Ｘｔ，Ｙｔ，Ｚｔ）を示すデータである。指示方向データＤｂ６は、コントローラ７の姿勢（例えば、ひねり方向の角度）によって設定される仮想ゲーム空間内の指示方向を示すデータである。
【００９７】
表示情報Ｄｃは、画像スケール値データＤｃ１、移動量スケール値データＤｃ２、移動可能範囲データＤｃ３、画像位置データＤｃ４、画像角度データＤｃ５、および画像データＤｃ６等を含んでいる。画像スケール値データＤｃ１は、距離Ｄおよび基準距離Ｄｂｓに基づいて設定される画像ＩＭのスケール値（Ｓｘ，Ｓｙ）を示すデータである。移動量スケール値データＤｃ２は、スケール値（Ｓｘ，Ｓｙ）に基づいて設定される画像ＩＭの移動量のスケール値（ＳＴｘ，ＳＴｙ）を示すデータである。移動可能範囲データＤｃ３は、画像位置Ｐｉｍを配置できる仮想ゲーム空間内の範囲を示すデータである。画像位置データＤｃ４は、仮想ゲーム空間内における画像位置Ｐｉｍの座標（Ｘａｎｓ，Ｙａｎｓ，Ｚａｎｓ）を示すデータである。画像角度データＤｃ５は、画像ＩＭを仮想ゲーム空間内に配置する際の画像角度Ａｉｍを示すデータである。画像データＤｃ６は、画像ＩＭや背景画像を表示装置（モニタ２）に表示するための画像データである。
【００９８】
次に、図１６〜図１９を参照して、ゲーム装置本体５において行われる画像処理の詳細を説明する。なお、図１６は、ゲーム装置本体５において実行される画像処理の流れを示すフローチャートである。図１７は、図１６のステップ５２およびステップ６５における距離算出処理の詳細な動作を示すサブルーチンである。図１８は、距離Ｄを算出する動作を説明するための図である。図１９は、仮想ゲーム空間に設定される画像位置および移動可能範囲の概念図である。なお、図１６および図１７に示すフローチャートにおいては、ゲーム処理のうち、主に画像ＩＭをモニタ２に表示する処理について説明し、本願発明と直接関連しない他の処理については詳細な説明を省略する。また、図１６および図１７では、ＣＰＵ１０が実行する各ステップを「Ｓ」と略称する。
【００９９】
ゲーム装置本体５の電源ボタン２４がオンされると、ゲーム装置本体５のＣＰＵ１０は、ＲＯＭ／ＲＴＣ１３に記憶されている起動用のプログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。そして、光ディスク４や他の記録媒体に記憶されたゲームプログラムがメインメモリに読み込まれ、ＣＰＵ１０によって当該ゲームプログラムの実行が可能となる状態となる。図１６に示すフローチャートは、以上の処理が完了した後に行われる画像処理を示すフローチャートである。
【０１００】
図１６において、ＣＰＵ１０は、コントローラ７から受信した操作情報を取得し（ステップ５０）、処理を次のステップに進める。そして、ＣＰＵ１０は、取得した最新の操作情報を用いて操作情報Ｄａを更新する。ここで、ステップ５０で取得される操作情報には、マーカ８Ｌおよび８Ｒの撮像画像内における位置を示す処理結果データの他、コントローラ７の操作部７２がどのように操作されたか示すキーデータが含まれている。ここでは、通信部７５は、所定の時間間隔（例えば５ｍｓ間隔）で操作情報をゲーム装置本体５へ送信する。そして、ＣＰＵ１０は、送信された最新の操作情報を１フレーム毎に利用して、第１座標データＤａ１、第２座標データＤａ２、およびキーデータＤａ３を更新する。
【０１０１】
次に、ＣＰＵ１０は、所定の画像処理を開始するか否かを判断する（ステップ５１）。例えば、ＣＰＵ１０は、キーデータＤａ３を参照し、上記画像処理の開始を示す選択肢が選択されたことや、上記画像処理の開始を示すボタンが押下されたことを検出することによって、当該画像処理の開始を判断する。そして、ＣＰＵ１０は、上記画像処理を開始する場合、処理を次のステップ５２に進める。一方、ＣＰＵ１０は、上記画像処理を開始しない場合、上記ステップ５０に戻って処理を繰り返す。
【０１０２】
ステップ５２において、ＣＰＵ１０は、距離算出処理を行い、処理を次のステップに進める。距離算出処理においては、コントローラ７から送信され記憶された第１座標データＤａ１および第２座標データＤａ２に基づいて、コントローラ７とマーカ８Ｌおよび８Ｒとの距離Ｄが算出される。以下、図１７および図１８を参照して、ステップ５２における距離算出処理の詳細な動作について説明する。
【０１０３】
図１７において、ＣＰＵ１０は、第１座標データＤａ１および第２座標データＤａ２を参照し（ステップ７１）、距離ｍｉを算出する（ステップ７２）。図１８に示すように、距離ｍｉは、コントローラ７の撮像情報演算部７４で撮像された撮像画像内での２点間の距離である。この２点は、マーカ８Ｌおよび８Ｒを撮像した画像に相当し、それぞれの座標を示すデータがそれぞれ第１座標データＤａ１および第２座標データＤａ２に格納されている。したがって、ＣＰＵ１０は、第１座標データＤａ１および第２座標データＤａ２を用いれば、距離ｍｉを算出することができる。具体的には、第１座標データＤａ１が位置座標（Ｌｘ，Ｌｙ）、第２座標データＤａ２が位置座標（Ｒｘ，Ｒｙ）であるとすると、
【数１】
2012113752.tif 000003
で算出される。
【０１０４】
次に、ＣＰＵ１０は、マーカ８Ｌおよび８Ｒの設置位置に対する撮像素子７４３の撮像可能範囲の幅ｗ（図１８参照）を算出する（ステップ７３）。ここで、幅ｗは、
ｗ＝ｗｉ×ｍ／ｍｉ
で算出される。ここで、ｍは、マーカ８Ｌおよび８Ｒの設置間隔（実際の設置間隔；例えば、２０ｃｍ）であり、固定値である。また、ｗｉは、幅ｗに対応する撮像素子７４３の撮像画像の幅ｗｉであり、固定値である。これら設置間隔ｍおよび幅ｗｉは、いずれも固定値であるため、予めゲーム装置本体５内の記憶手段に格納されている。なお、設置間隔ｍについては、プレイヤの設置環境に応じて任意の間隔でマーカ８Ｌおよび８Ｒを設置してもかまわない。この場合、マーカ８Ｌおよび８Ｒを設置した間隔を設置間隔ｍとしてプレイヤが入力するようにすれば、上記数式を同様に扱うことができる。
【０１０５】
次に、ＣＰＵ１０は、幅ｗおよび撮像素子７４３の視野角θを用いて、マーカ８Ｌおよび８Ｒと撮像素子７４３（コントローラ７）との現在の距離Ｄ（図１８参照）を算出し、現在距離データＤｂ３を更新して（ステップ７４）、当該サブルーチンによる処理を終了する。ここで、距離Ｄは、
Ｄ＝（ｗ／２）／｛ｔａｎ（θ／２）｝
の関係式から算出することができる。ここで、視野角θは固定値であるため、予めゲーム装置本体５内の記憶手段に格納されている。
【０１０６】
図１６に戻り、上記ステップ５２における距離Ｄの算出処理の後、ＣＰＵ１０は、現在距離データＤｂ３に記憶されている距離Ｄを基準距離Ｄｂｓに設定して、基準距離データＤｂ４を更新し（ステップ５３）、処理を次のステップに進める。つまり、基準距離Ｄｂｓは、処理開始時点のマーカ８Ｌおよび８Ｒとコントローラ７との距離となる。
【０１０７】
次に、ＣＰＵ１０は、指示座標および指示方向を算出し（ステップ５４）、処理を次のステップに進める。以下、指示座標および指示方向の算出例について説明する。
【０１０８】
例えば、ＣＰＵ１０は、第１座標データＤａ１が示す位置座標（Ｌｘ，Ｌｙ）から第２座標データＤａ２が示す位置座標（Ｒｘ，Ｒｙ）への方向と、位置座標（Ｌｘ，Ｌｙ）と位置座標（Ｒｘ，Ｒｙ）との中点を算出し、方向データＤｂ１および中点データＤｂ２を更新する。具体的には、ＣＰＵ１０は、第１座標データＤａ１および第２座標データＤａ２を参照して、上記中点の座標を算出し、中点データＤｂ２を更新する。ここで、上記中点は、撮像画像内における対象画像（マーカ８Ｌおよび８Ｒ）を１つの画像とみなした場合、その画像の位置を示すことになる。そして、上記中点と所定の基準位置との差によって、モニタ２に対するコントローラ７の位置の変化による画像位置の変化を算出することができる。
【０１０９】
ここで、マーカ８Ｌおよび８Ｒと、モニタ２の表示画面と、コントローラ７との位置関係について考える。例えば、モニタ２の上面に２つのマーカ８Ｌおよび８Ｒを設置し（図１参照）、上面が上方向を向いたコントローラ７を用いてプレイヤがモニタ２の表示画面の中央を指し示した場合（すなわち、撮像情報演算部７４の撮像画像の中央に表示画面中央が撮像されている状態）を考える。このとき、撮像情報演算部７４の撮像画像において、対象画像の中点（マーカ８Ｌおよび８Ｒの中点）位置と撮像画像の中央とは一致しない。具体的には、上記撮像画像における対象画像の位置は、撮像画像の中心から上方の位置となる。このような位置に対象画像が位置する場合に、表示画面中央を指し示しているという基準位置の設定を行う。一方、コントローラ７の移動に対応して、撮像画像中の対象画像の位置も移動する（移動方向は逆方向となる）ので、撮像画像中の対象画像の位置の移動に対応させて表示画面を指し示す位置を移動させる処理を行うことによって、コントローラ７で指し示された表示画面基準の位置（ｘｄ、ｙｄ）を算出することができる。ここで、基準位置の設定は、予めプレイヤが表示画面の所定位置を指し示し、そのときの対象画像の位置を当該所定位置と対応させて記憶しておくようにしてもよいし、対象画像と表示画面との位置関係が固定的であれば、予め設定されていても良い。このような表示画面に対する位置座標（ｘｄ、ｙｄ）は、上記中点からモニタ２の表示画面基準の座標を算出する関数を用いた線形変換で算出される。この関数は、ある撮像画像から算出される中点座標の値を、当該撮像画像が撮像される時のコントローラ７によって指し示される表示画面上の位置を表す座標（ｘｄ、ｙｄ）に変換するものである。この関数によって、中点座標から表示画面を基準とした指し示し位置（ｘｄ、ｙｄ）を算出することができる。なお、上面が上方向以外（例えば、右方向）を向いたコントローラ７を用いてプレイヤがモニタ２の表示画面を指し示した場合、方向データＤｂ１に格納された方向を用いて中点座標を補正して、補正された中点を用いて上述したように表示画面を基準とした指し示し位置（ｘｄ、ｙｄ）を算出する。
【０１１０】
そして、ＣＰＵ１０は、算出した表示画面を基準とした指し示し位置（ｘｄ、ｙｄ）を、対応する仮想ゲーム空間における位置にさらに変換して、指示座標（Ｘｔ，Ｙｔ，Ｚｔ）を算出して指示座標データＤｂ５を更新する。例えば、図１９に示すように、表示画面の中心を原点としたｘｙ座標系が設定されており、指し示し位置（ｘｄ、ｙｄ）に対応する指示座標（Ｘｔ，Ｙｔ，Ｚｔ）は、モニタ２の表示画面上における位置に表示される仮想ゲーム空間における位置（例えば、仮想ゲーム空間のＺ＝Ｚｔ平面（移動平面）に透視投影される位置）となる。具体的には、ＣＰＵ１０は、指示座標（Ｘｔ，Ｙｔ，Ｚｔ）を
【数２】
2012113752.tif 000004
で算出する。また、ＣＰＵ１０は、方向データＤｂ１に格納されている方向（ベクトルデータ）を対応する仮想ゲーム空間における指示方向に同様に変換して、指示方向データＤｂ６を更新する。例えば、ＣＰＵ１０は、方向データＤｂ１に格納されている方向を、仮想ゲーム空間に設定された上記移動平面に投影した指示方向に変換して、指示方向データＤｂ６を更新する。したがって、コントローラ７の姿勢に対応させて直感的に画像ＩＭの姿勢を決定することができる。
【０１１１】
次に、ＣＰＵ１０は、画像ＩＭのスケール値（Ｓｘ，Ｓｙ）を設定して画像スケール値データＤｃ１を更新し（ステップ５５）、処理を次のステップに進める。例えば、ＣＰＵ１０は、現在距離データＤｂ３に格納されている距離Ｄおよび基準距離データＤｂ４に格納されている基準距離Ｄｂｓを参照して、スケール値（Ｓｘ，Ｓｙ）を
Ｓｘ  ＝  ２．０  ＋  （Ｄｂｓ−Ｄ）／ａ１
Ｓｙ  ＝  Ｓｘ
で算出する。ここで、ａ１は定数であり、例えばａ１＝１７．５である。なお、ＣＰＵ１０は、スケール値ＳｘおよびＳｙ共に０．４以上２０．０以下の範囲の数値とする。具体的には、ＣＰＵ１０は、上記数式による算出結果でスケール値ＳｘおよびＳｙが０．４未満の値となったとき、スケール値ＳｘおよびＳｙを共に０．４に設定する。また、ＣＰＵ１０は、上記数式による算出結果でスケール値ＳｘおよびＳｙが２０．０より大きな値となったとき、スケール値ＳｘおよびＳｙを共に２０．０に設定する。ここで、上記数式から明らかなように、定数ａ１は、距離Ｄの変化に応じてスケール値（Ｓｘ，Ｓｙ）を変化させる感度を調整する値であり、後述する画像ＩＭを拡大／縮小する感度に応じて任意の値に設定すればよい。
【０１１２】
次に、ＣＰＵ１０は、移動量のスケール値（ＳＴｘ，ＳＴｙ）を設定して移動量スケール値データＤｃ２を更新し（ステップ５６）、処理を次のステップに進める。例えば、ＣＰＵ１０は、画像スケール値データＤｃ１に格納されているスケール値（Ｓｘ，Ｓｙ）を参照して、スケール値（ＳＴｘ，ＳＴｙ）を
ＳＴｘ  ＝  Ｓｘ／ａ２  ＋  ａ３
ＳＴｙ  ＝  Ｓｙ／ａ４  ＋  ａ５
で算出する。ここで、ａ２〜ａ５は定数であり、例えばａ２＝９．０、ａ３＝１．０、ａ４＝５．０、ａ５＝１．０である。ここで、定数ａ２〜ａ５は、画像ＩＭを表示画面上で違和感なく移動させるためのパラメータであり、モニタ２のアスペクト比等に応じて任意の値に設定される。
【０１１３】
次に、ＣＰＵ１０は、仮想ゲーム空間内に移動可能範囲を設定して移動可能範囲データＤｃ３を更新し（ステップ５７）、処理を次のステップに進める。例えば、ＣＰＵ１０は、移動量スケール値データＤｃ２に格納されているスケール値（ＳＴｘ，ＳＴｙ）を参照して、画像位置Ｐｉｍが配置可能な移動可能範囲を設定する。具体的には、図１９に示すように、仮想ゲーム空間には、Ｚ＝Ｚｔ平面（移動平面）上に注視点を原点としたＸＹ座標系が設定されている。そして、移動平面上に上記原点を中心として予め設定された基準の移動可能範囲に対して、当該基準の移動可能範囲におけるＸ軸方向の長さにスケール値ＳＴｘを乗算し、当該基準の移動可能範囲におけるＹ軸方向の長さにスケール値ＳＴｙを乗算して、当該基準の移動可能範囲が上記原点を中心に拡大／縮小した移動可能範囲を算出する。なお、図１９に示した一例では、上記基準の移動可能範囲がＸＹ座標の原点を中心に拡大して設定された移動可能範囲を示している。
【０１１４】
次に、ＣＰＵ１０は、画像位置Ｐｉｍを設定して画像位置データＤｃ４を更新し（ステップ５８）、処理を次のステップに進める。例えば、ＣＰＵ１０は、指示座標データＤｂ５に格納されている指示座標（Ｘｔ，Ｙｔ，Ｚｔ）および移動量スケール値データＤｃ２に格納されているスケール値（ＳＴｘ，ＳＴｙ）を参照して、画像位置Ｐｉｍの座標（Ｘａｎｓ，Ｙａｎｓ，Ｚａｎｓ）を
Ｘａｎｓ  ＝  ＳＴｘ  ＊  Ｘｔ
Ｙａｎｓ  ＝  ＳＴｙ  ＊  Ｙｔ
Ｚａｎｓ  ＝  Ｚｔ
で算出する。例えば、図１９に示すように、仮想ゲーム空間には、Ｚ＝Ｚｔ平面（移動平面）上に注視点を原点としたＸＹ座標系が設定されている。そして、コントローラ７で指し示した位置（ｘｄ，ｙｄ）に対応する上記移動平面上の指示座標（Ｘｔ，Ｙｔ，Ｚｔ）のＸ軸座標値およびＹ軸座標値を、それぞれスケール値（ＳＴｘ，ＳＴｙ）に応じて拡大／縮小した当該移動平面上の位置（Ｘａｎｓ，Ｙａｎｓ，Ｚａｎｓ）に画像位置Ｐｉｍが設定される。つまり、画像位置Ｐｉｍは、指示座標（Ｘｔ，Ｙｔ，Ｚｔ）に応じて算出されるが、指示座標（Ｘｔ，Ｙｔ，Ｚｔ）が移動平面上を移動したとき、当該移動距離にスケール値（ＳＴｘ，ＳＴｙ）で拡大／縮小した移動量で、当該移動平面上を画像位置Ｐｉｍが移動することになる。
【０１１５】
なお、上記ステップ５８の処理において、算出された画像位置Ｐｉｍが上記ステップ５７で設定された移動可能範囲外に設定された場合、ＣＰＵ１０は、画像位置Ｐｉｍを当該移動可能範囲内に再設定して画像位置データＤｃ４を更新する。一例として、ＣＰＵ１０は、画像位置Ｐｉｍが移動可能範囲外に設定された場合、設定された画像位置Ｐｉｍに最も近い移動可能範囲の境界上に画像位置Ｐｉｍを再設定する。他の例として、ＣＰＵ１０は、画像位置Ｐｉｍが移動可能範囲外に設定された場合、設定された画像位置Ｐｉｍと移動平面上のＸＹ座標の原点（すなわち、注視点）とを結ぶ線分と、移動可能範囲の境界との交点に画像位置Ｐｉｍを再設定する。この処理によって、画像位置Ｐｉｍは、必ず上記ステップ５７で設定された移動可能範囲内に配置されることになる。
【０１１６】
次に、ＣＰＵ１０は、画像角度Ａｉｍを設定して画像角度データＤｃ５を更新し（ステップ５９）、処理を次のステップに進める。例えば、ＣＰＵ１０は、指示方向データＤｂ６に格納されている指示方向に応じて、上記移動平面に沿った画像ＩＭの表示方向（例えば、画像ＩＭの上方向を示す方向）を示す画像角度Ａｉｍを算出する。
【０１１７】
次に、ＣＰＵ１０は、スケール値（Ｓｘ，Ｓｙ）に応じて画像ＩＭを拡大／縮小し（ステップ６０）、処理を次のステップに進める。例えば、ＣＰＵ１０は、画像データＤｃ６に格納された画像ＩＭを示す画像データを参照し、当該画像ＩＭの横方向を拡大率Ｓｘで拡大し、当該画像ＩＭの縦方向を拡大率Ｓｙで拡大する。ここで、上記ステップ５５の処理から明らかなように、基準距離Ｄｂｓを基準としてコントローラ７をマーカ８Ｌおよび８Ｒに近づけるとスケール値（Ｓｘ，Ｓｙ）が大きく設定される。したがって、プレイヤがコントローラ７をモニタ２に近づけると画像ＩＭが拡大され、コントローラ７をモニタ２から離すと画像ＩＭが縮小されることになる。
【０１１８】
次に、ＣＰＵ１０は、画像位置Ｐｉｍおよび画像角度Ａｉｍに応じて、画像ＩＭを仮想ゲーム空間内に配置し（ステップ６１）、処理を次のステップに進める。具体的には、ＣＰＵ１０は、上記ステップ６０で拡大／縮小された画像ＩＭを、画像角度Ａｉｍに応じた方向に画像位置Ｐｉｍに基づいて上記移動平面上に配置する。例えば、図１２および図１３に示したように、画像ＩＭは、プレイヤを模した人物像であり、当該人物像の中心（例えば、腰部付近）に画像位置Ｐｉｍが位置するように上記移動平面上に配置される。また、画像ＩＭの配置角度は、画像位置Ｐｉｍを中心として画像角度Ａｉｍに応じて回転させる。
【０１１９】
次に、ＣＰＵ１０は、所定の視点（図１９参照）から仮想ゲーム空間を見た画像をモニタ２に表示する（ステップ６２）。そして、ＣＰＵ１０は、上記ステップ５１で開始した画像処理を終了するか否かを判断する（ステップ６３）。ＣＰＵ１０は、上記画像処理を継続する場合、処理を次のステップ６４に進める。一方、ＣＰＵ１０は、上記画像処理を終了する場合、当該フローチャートによる処理を終了する。
【０１２０】
ステップ６４において、ＣＰＵ１０は、コントローラ７から受信した操作情報を取得する。そして、ＣＰＵ１０は、距離算出処理を行い（ステップ６５）、上記ステップ５４に戻って処理を繰り返す。なお、ステップ６４における動作は上述したステップ５０の動作と同様であり、ステップ６５における動作は上述したステップ５２の動作と同様であるため、詳細な説明を省略する。
【０１２１】
このように、本実施形態に係るゲーム装置本体５では、コントローラ７をモニタ２に近づけると画像ＩＭが拡大して表示され、その画像ＩＭが移動可能な範囲も拡大する。一方、コントローラ７をモニタ２から離すと画像ＩＭが縮小して表示され、その画像ＩＭが移動可能な範囲も縮小する。したがって、拡大率が高い画像ＩＭであってもその移動可能範囲が広く設定されるため、拡大率が高い画像に対して移動可能範囲が不十分になるような操作性の悪化を防止することができる。また、拡大率が低い、すなわち縮小して表示される画像ＩＭに対しては、その移動可能範囲が縮小するため、当該画像ＩＭが表示領域外に消えてしまうような状態を防止することができる。
【０１２２】
また、本実施形態に係るゲーム装置本体５では、コントローラ７とモニタ２とが離れた場合と比較すると、コントローラ７とモニタ２とが近づいたときに指示される画像位置Ｐｉｍの移動量が大きくなる。したがって、コントローラ７の指し示し位置の変化量に対して、コントローラ７とモニタ２との距離の違いによって生じる画像位置Ｐｉｍの移動量の増減を緩和することができる。すなわち、プレイヤがコントローラ７を用いて指し示し位置を移動させる操作をすると、コントローラ７とモニタ２との距離が異なっていてもその操作性が大きく変化せず、違和感のない操作を行うことができる。
【０１２３】
さらに、プレイヤは、コントローラ７とモニタ２との距離を変化させるだけで画像の拡大／縮小処理ができるため、簡単な操作で画像の拡大率を変化させて表示することができる。また、コントローラ７をモニタ２に対して上下左右に動かしたり、左右にひねったりすることに応じて、モニタ２に表示された画像ＩＭが移動したり回転したりして表示されるため、簡単な操作で画像を移動／回転させて表示することができる。
【０１２４】
なお、上述した画像処理では、画像ＩＭの拡大率に応じて移動可能範囲を設定する例を記載したが、当該拡大率に加えて画像ＩＭの形状（例えば、縦横比）や配置角度をさらに考慮して移動可能範囲を設定してもかまわない。例えば、画像ＩＭの縦横比に応じて、上記定数ａ２〜ａ５を調整してもかまわない。これによって、画像ＩＭの縦横比に応じて、移動可能範囲の縦横比を補正することが可能となる。また、画像ＩＭの縦横比に配置角度も考慮して、上記定数ａ２〜ａ５を調整してもかまわない。例えば、縦長の画像ＩＭを９０°回転させて配置すると横長の画像となる。このような配置角度によって変化する形状を考慮して、画像ＩＭの縦横比および画像角度Ａｉｍに応じて、上記定数ａ２〜ａ５を変化させて移動可能範囲の縦横比を補正してもかまわない。
【０１２５】
また、上述した画像処理では、コントローラ７とモニタ２との距離が大きい場合に画像を小さく、距離が小さい場合に画像を大きくしているが、目的によっては逆にしてもよい。すなわち、コントローラ７とモニタ２との距離が大きい場合に画像を大きく、距離が小さい場合に画像を小さくするような場合であっても、本願発明を適用することができる。その場合、具体的な一例として、上述のステップ５５において、
Ｓｘ＝１８．０＋（Ｄ−Ｄｂｓ）／ａ１
のようにすればよい。
【０１２６】
また、本願発明は、コントローラ７とモニタ２との距離によって画像の拡大率を制御するものに限らず、画像の拡大縮小と、移動とを行う画像処理に全般的に適用することが可能である。たとえば、マウスで入力された座標に画像を配置し、キー操作やその他の操作によって画像を拡大縮小するものであっても、画像の拡大率に応じてマウスの変位に対する座標移動量および移動範囲を制御することによって、本願発明の効果を得ることが可能である。
【０１２７】
また、上述した画像処理では、画像ＩＭのスケール値（Ｓｘ，Ｓｙ）と移動量のスケール値（ＳＴｘ，ＳＴｙ）とを異なるスケール値に設定している。これによって、画像ＩＭを縦横が等しい拡大率で拡大／縮小しながら、当該画像ＩＭを表示画面のアスペクト比に応じて違和感なく移動させるような、画像の拡大／縮小および移動量の制御をそれぞれ別に調整することが可能となる。しかしながら、このような効果を期待しない場合、移動量のスケール値（ＳＴｘ，ＳＴｙ）を画像ＩＭのスケール値（Ｓｘ，Ｓｙ）と同じ値に設定してもかまわない。
【０１２８】
また、上述した画像処理では３次元の仮想ゲーム空間に配置された画像ＩＭを表示する例を用いたが、他のゲーム世界に配置された画像を表示してもかまわない。例えば、２次元の仮想ゲーム世界に配置された画像ＩＭに対して、２次元の画像ＩＭの拡大／縮小および画像ＩＭの移動／回転を行う画像処理であっても、本発明を実現できることは言うまでもない。
【０１２９】
また、上述した説明では、画像処理を開始してから終了するまでの全期間に対して、コントローラ７の位置や姿勢に応じた画像の拡大、縮小、移動、回転等の処理が行われるが、コントローラ７に対して所定の操作が行われている期間のみ当該処理が行われてもかまわない。例えば、プレイヤがコントローラ７の所定ボタン（例えば、操作ボタン７２ｉ）を押下している間のみ、画像の拡大、縮小、移動、回転等の処理が行われてもかまわない。この場合、当該所定ボタンの押下が開始された時点の距離Ｄを基準距離Ｄｂｓに設定して、上記画像処理を行えばよい。
【０１３０】
また、上述した説明では、撮像素子７４３で撮像した画像データを解析することによって距離Ｄを算出したが、それ以外の手段によっても、実空間内に配置された所定の測定対象との距離Ｄを測ることができれば、上記の発明を実施することが可能である。例えば、距離Ｄを算出するための手段として、超音波センサによるものや、磁気センサを用いたものなどを用いてもよい。また、撮像素子７４３と、撮像対象との距離に関連した値を得ることができれば、実際の距離Ｄを算出しなくとも操作入力は可能であるので、直接的に距離Ｄを算出することなく、撮像画像内のマーカ８Ｌと８Ｒとの間の長さに対応させたデータを予め用意し、当該対応データを用いて画像処理を行うようにしてもよい。
【０１３１】
また、撮像素子７４３で撮像した画像データを解析してマーカ８Ｌおよび８Ｒからの赤外光の位置座標やそれらの重心座標等を取得し、それらを処理結果データとしてコントローラ７内で生成してゲーム装置本体５へ送信する態様を説明したが、他の処理段階のデータをコントローラ７からゲーム装置本体５へ送信してもかまわない。例えば、撮像素子７４３が撮像した画像データをコントローラ７からゲーム装置本体５へ送信し、ＣＰＵ１０において上記解析処理を行って処理結果データを取得してもかまわない。この場合、コントローラ７に設けられた画像処理回路７４４が不要となる。また、上記画像データの解析途中のデータをコントローラ７からゲーム装置本体５へ送信してもかまわない。例えば、画像データから得られる輝度、位置、および面積等を示すデータをコントローラ７からゲーム装置本体５へ送信し、ＣＰＵ１０において残りの解析処理を行って処理結果データを取得してもかまわない。
【０１３２】
また、上述した説明では、２つのマーカ８Ｌおよび８Ｒからの赤外光を、コントローラ７の撮像情報演算部７４の撮像対象としたが、他のものを撮像対象にしてもかまわない。例えば、１つまたは３つ以上のマーカをモニタ２の近傍に設置し、それらのマーカからの赤外光を撮像情報演算部７４の撮像対象としてもかまわない。例えば、所定の長さを有する１つのマーカをモニタ２の近傍に設置し、当該長さの両端を設置間隔ｍ（図１８参照）とすれば、本発明を同様に実現することができる。また、モニタ２の表示画面自体や他の発光体（室内灯等）を撮像情報演算部７４の撮像対象としてもかまわない。撮像対象とモニタ２の表示画面との配置関係に基づいて、当該表示画面に対するコントローラ７の位置を演算すれば、様々な発光体を撮像情報演算部７４の撮像対象として用いることができる。
【０１３３】
また、上述した説明では、コントローラ７とゲーム装置本体５とが無線通信によって接続された態様を用いたが、コントローラ７とゲーム装置本体５とがケーブルを介して電気的に接続されてもかまわない。この場合、コントローラ７に接続されたケーブルをゲーム装置本体５の接続端子に接続する。
【０１３４】
また、上述したコントローラ７の形状や、それらに設けられている操作部７２の形状、数、および設置位置等や、画像処理で用いる各数式や定数等は、単なる一例に過ぎず他の形状、数、設置位置、数式、定数であっても、本発明を実現できることは言うまでもない。また、コントローラ７における撮像情報演算部７４の位置（撮像情報演算部７４の光入射口）は、ハウジング７１の前面でなくてもよく、ハウジング７１の外部から光を取り入れることができれば他の面に設けられてもかまわない。
【０１３５】
また、上記実施例では、ゲーム装置本体５をコントローラ７で操作しているが、撮像手段を備えた入力装置で操作される一般的なパーソナルコンピュータなどの情報処理装置でもかまわない。この場合、この情報処理装置のコンピュータが実行するプログラムは、典型的にゲームに用いられるゲームプログラムに限らず、上記情報処理装置に対する画像処理に用いられる汎用的な画像処理プログラムである。
【０１３６】
また、本発明の画像処理プログラムは、光ディスク４等の外部記憶媒体を通じてゲーム装置本体５に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置本体５に供給されてもよい。また、画像処理プログラムは、ゲーム装置本体５内部の不揮発性記憶装置に予め記録されていてもよい。なお、画像処理プログラムを記憶する情報記憶媒体としては、ＣＤ−ＲＯＭ、ＤＶＤ、あるいはそれらに類する光学式ディスク状記憶媒体の他に、不揮発性半導体メモリでもよい。
【０１３７】
以上、本発明を詳細に説明してきたが、上述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。
【産業上の利用可能性】
【０１３８】
本発明に係る画像処理プログラムおよび画像処理装置は、画像の拡大率または撮像対象と撮像装置との距離に応じて適切な画像の移動制御を行うことができ、ゲーム処理等の様々な画像処理を行う装置やプログラムとして有用である。
【符号の説明】
【０１３９】
１…ゲームシステム
２…モニタ
２ａ、７０６…スピーカ
３…ゲーム装置
４…光ディスク
５…ゲーム装置本体
１０…ＣＰＵ
１１…システムＬＳＩ
１２…外部メインメモリ
１３…ＲＯＭ／ＲＴＣ
１４…ディスクドライブ
１５…ＡＶ−ＩＣ
１６…ＡＶコネクタ
１７…フラッシュメモリ
１８…無線通信モジュール
１９…無線コントローラモジュール
２０…拡張コネクタ
２１…外部メモリカード用コネクタ
２２、２３…アンテナ
２４…電源ボタン
２５…リセットボタン
２６…イジェクトボタン
３１…入出力プロセッサ
３２…ＧＰＵ
３３…ＤＳＰ
３４…ＶＲＡＭ
３５…内部メインメモリ
７…コントローラ
７１…ハウジング
７２…操作部
７３…コネクタ
７４…撮像情報演算部
７４１…赤外線フィルタ
７４２…レンズ
７４３…撮像素子
７４４…画像処理回路
７５…通信部
７５１…マイコン
７５２…メモリ
７５３…無線モジュール
７５４…アンテナ
７００…基板
７０１…加速度センサ
７０２…ＬＥＤ
７０４…バイブレータ
７０７…サウンドＩＣ
７０８…アンプ
８…マーカ
【図１】
2012113752.tif 000005
【図２】
2012113752.tif 000006
【図３】
2012113752.tif 000007
【図４】
2012113752.tif 000008
【図５】
2012113752.tif 000009
【図６】
2012113752.tif 000010
【図７】
2012113752.tif 000011
【図８】
2012113752.tif 000012
【図９】
2012113752.tif 000013
【図１０】
2012113752.tif 000014
【図１１】
2012113752.tif 000015
【図１２】
2012113752.tif 000016
【図１３】
2012113752.tif 000017
【図１４】
2012113752.tif 000018
【図１５】
2012113752.tif 000019
【図１６】
2012113752.tif 000020
【図１７】
2012113752.tif 000021
【図１８】
2012113752.tif 000022
【図１９】
2012113752.tif 000023
【図２０Ａ】
2012113752.tif 000024
【図２０Ｂ】
2012113752.tif 000025
【手続補正書】
【提出日】平成24年3月6日(2012.3.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
撮像対象を撮像するための撮像手段を備えた入力装置から得られる指示入力に基づいて、表示領域に対する所定の配置位置へ画像を配置して表示する画像処理装置のコンピュータで実行される画像処理プログラムであって、
前記コンピュータを、
前記入力装置から、前記指示入力を取得する指示入力取得手段と、
前記撮像手段が撮像する撮像画像内における撮像対象の位置に基づいて、前記撮像対象と前記撮像手段との距離を算出する距離算出手段と、
前記撮像画像内における撮像対象の位置の変化に対する前記配置位置の変化の割合を、前記距離に基づいて変更して当該配置位置を算出する配置位置算出手段と、
前記画像を前記配置位置に配置する画像配置手段と、
前記画像配置手段が配置した画像を表示装置に表示させる表示制御手段として機能させる、画像処理プログラム。
【請求項２】
前記配置位置算出手段は、前記距離算出手段が算出した距離が短いほど前記配置位置の変化の割合を大きく変更して前記配置位置を算出する、請求項１に記載の画像処理プログラム。
【請求項３】
前記表示領域に対して前記配置位置が設定可能な範囲を、前記距離算出手段が算出した距離に応じて変化させる範囲設定手段として、前記コンピュータをさらに機能させ、
前記範囲設定手段は、前記距離算出手段が算出した距離が短いほど前記範囲を大きく設定する、請求項２に記載の画像処理プログラム。
【請求項４】
前記撮像対象は、複数配置されており、
前記距離算出手段は、前記撮像画像内における撮像対象の間隔に基づいて、前記撮像対象と前記撮像手段との距離を算出する、請求項１または２に記載の画像処理プログラム。
【請求項５】
撮像対象を撮像するための撮像手段を備えた入力装置から得られる指示入力に基づいて、表示装置の表示領域に対する所定の配置位置へ画像を配置して表示する画像処理装置であって、
前記入力装置から、前記指示入力を取得する指示入力取得手段と、
前記撮像手段が撮像する撮像画像内における撮像対象の位置に基づいて、前記撮像対象と前記撮像手段との距離を算出する距離算出手段と、
前記撮像画像内における撮像対象の位置の変化に対する前記配置位置の変化の割合を、前記距離に基づいて変更して当該配置位置を算出する配置位置算出手段と、
前記画像を前記配置位置に配置する画像配置手段と、
前記画像配置手段が配置した画像を表示装置に表示させる表示制御手段とを備える、画像処理装置。
【請求項６】
前記配置位置算出手段は、前記距離算出手段が算出した距離が短いほど前記配置位置の変化の割合を大きく変更して前記配置位置を算出する、請求項５に記載の画像処理装置。
【請求項７】
前記表示領域に対して前記配置位置が設定可能な範囲を、前記距離算出手段が算出した距離に応じて変化させる範囲設定手段を、さらに備え、
前記範囲設定手段は、前記距離算出手段が算出した距離が短いほど前記範囲を大きく設定する、請求項６に記載の画像処理装置。