JP2012018665A - Image display program, apparatus, system and method - Google Patents

Image display program, apparatus, system and method Download PDF

Info

Publication number
JP2012018665A
JP2012018665A JP2011007848A JP2011007848A JP2012018665A JP 2012018665 A JP2012018665 A JP 2012018665A JP 2011007848 A JP2011007848 A JP 2011007848A JP 2011007848 A JP2011007848 A JP 2011007848A JP 2012018665 A JP2012018665 A JP 2012018665A
Authority
JP
Japan
Prior art keywords
camera
real
virtual camera
image
virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011007848A
Other languages
Japanese (ja)
Other versions
JP5739670B2 (en
Inventor
Yuichiro Ito
裕一朗 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2011007848A priority Critical patent/JP5739670B2/en
Publication of JP2012018665A publication Critical patent/JP2012018665A/en
Application granted granted Critical
Publication of JP5739670B2 publication Critical patent/JP5739670B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To show a virtual object combined with a real world image on a stereoscopic display device in a normal and stereoscopic manner.SOLUTION: On the basis of a relative position and a relative attitude of an outer imaging unit (left) against a marker calculated from a marker recognition result of a left real world image and a relative position and a relative attitude of an outer imaging unit (right) against the marker calculated from a marker recognition result of a right real world image, a space between a left virtual camera and a right virtual camera is determined. After the space between the left virtual camera and the right virtual camera is determined, positions and attitudes of the left virtual camera and the right virtual camera are determined on the basis of the determined space so that the position and attitude of the left virtual camera has an ideal relationship with the position and attitude of the right virtual camera.

Description

本発明は、画像表示プログラム、装置、システムおよび方法に関し、特に、立体視可能な立体表示装置の画面に、3次元の仮想オブジェクトを合成した実世界画像を立体表示するための、画像表示プログラム、装置、システムおよび方法に関する。   The present invention relates to an image display program, an apparatus, a system, and a method, and in particular, an image display program for stereoscopically displaying a real world image obtained by synthesizing a three-dimensional virtual object on the screen of a stereoscopic display device capable of stereoscopic viewing. The present invention relates to an apparatus, a system, and a method.

近年、実世界の画像に仮想オブジェクトを合成表示することによって、その仮想オブジェクトがあたかも実世界内に実在するかのように表示する、AR(Augmented Reality:
拡張現実感)技術の研究が進んでいる。
In recent years, AR (Augmented Reality) is displayed by composing and displaying a virtual object on an image of the real world, as if the virtual object actually exists in the real world.
Research into augmented reality technology is advancing.

例えば、特許文献1に開示されている立体表示装置では、ヘッドマウントディスプレイに取り付けられている右目カメラおよび左目カメラによってそれぞれ撮像された画像から、実空間に配置されたマーカーに対する右目カメラおよび左目カメラの相対位置姿勢をそれぞれ求め、その結果に基づいて、右目用の仮想オブジェクトの画像と左目用の仮想オブジェクトの画像をそれぞれ生成している。そして、右目カメラおよび左目カメラによってそれぞれ撮像された画像に対して、右目用の仮想オブジェクトの画像と左目用の仮想オブジェクトの画像をそれぞれ合成して、それらの合成画像を右目LCD(液晶画面)と左目LCDにそれぞれ表示している。   For example, in the stereoscopic display device disclosed in Patent Document 1, the right-eye camera and the left-eye camera with respect to the markers arranged in the real space from the images captured by the right-eye camera and the left-eye camera attached to the head-mounted display, respectively. Relative positions and orientations are obtained, and based on the results, a right-eye virtual object image and a left-eye virtual object image are generated. Then, the image of the right eye virtual object and the image of the left eye virtual object are respectively synthesized with the images captured by the right eye camera and the left eye camera, and these synthesized images are combined with the right eye LCD (liquid crystal screen). Each is displayed on the left-eye LCD.

また、非特許文献1には、カメラによって撮像された画像におけるマーカーの位置および姿勢に基づいて、実世界におけるマーカーとカメラとの相対位置及び相対姿勢を計算する方法が開示されている。   Non-Patent Document 1 discloses a method for calculating the relative position and relative orientation between a marker and a camera in the real world based on the position and orientation of the marker in an image captured by the camera.

特開2008−146109号公報JP 2008-146109 A

Hirokazu Kato, Mark Billinghurst, "Marker Tracking and HMD Calibration for a Video-Based Augmented Reality Conferencing System," iwar, pp.85, 2nd IEEE and ACM International Workshop on Augmented Reality, 1999Hirokazu Kato, Mark Billinghurst, "Marker Tracking and HMD Calibration for a Video-Based Augmented Reality Conferencing System," iwar, pp.85, 2nd IEEE and ACM International Workshop on Augmented Reality, 1999

しかしながら、カメラによって撮像された画像におけるマーカーの位置および姿勢に基づいて、実世界におけるマーカーとカメラとの相対位置及び相対姿勢を計算する場合、カメラによって撮像された画像がぼけている場合や、マーカー認識の精度が完璧でない場合には、計算結果に誤差が含まれてしまうことになる。したがって、特許文献1に開示されている立体表示装置において、右目カメラによって撮像された画像に基づいて計算された、マーカーに対する右目カメラの相対位置姿勢は、必ずしも正確ではなく、同様に、左目カメラによって撮像された画像に基づいて計算された、マーカーに対する左目カメラの相対位置姿勢も、必ずしも正確ではない。正確でない計算結果に基づいて生成された右目用の仮想オブジェクトの画像と左目用の仮想オブジェクトの画像は、互いに整合しない矛盾した画像となるため、ユーザは仮想オブジェクトを正常に立体視することができない。   However, when calculating the relative position and orientation between the marker and the camera in the real world based on the position and orientation of the marker in the image captured by the camera, the image captured by the camera is blurred, If the recognition accuracy is not perfect, an error is included in the calculation result. Therefore, in the stereoscopic display device disclosed in Patent Document 1, the relative position and orientation of the right eye camera with respect to the marker calculated based on the image captured by the right eye camera is not necessarily accurate. The relative position and orientation of the left-eye camera calculated with respect to the marker calculated based on the captured image is not necessarily accurate. Since the image of the virtual object for the right eye and the image of the virtual object for the left eye generated based on an inaccurate calculation result are inconsistent images that do not match each other, the user cannot normally stereoscopically view the virtual object. .

それ故、本発明の目的は、正常に立体視できるように仮想オブジェクトを表示することができる、画像表示プログラム、装置、システムおよび方法を提供することである。   Therefore, an object of the present invention is to provide an image display program, an apparatus, a system, and a method capable of displaying a virtual object so that it can be normally stereoscopically viewed.

本発明は、上記の課題を解決するために、以下の構成を採用した。   The present invention employs the following configuration in order to solve the above problems.

本発明の画像表示プログラムは、右目用の実カメラおよび左目用の実カメラからの出力を利用して、立体視可能な立体表示装置の画面に、3次元の仮想オブジェクトを合成した実世界画像を立体表示する画像表示プログラムであって、コンピュータを、第1位置姿勢算出手段、仮想カメラ設定手段、右仮想空間画像生成手段、左仮想空間画像生成手段、および、表示制御手段として機能させる。上記第1位置姿勢算出手段は、上記右目用の実カメラから出力される実世界画像データと上記左目用の実カメラから出力される実世界画像データのうち、一方の実カメラから出力される実世界画像データ内の所定の撮像対象を認識することにより、当該一方の実カメラと上記所定の撮像対象との間の相対的な位置および姿勢を示す位置姿勢情報を算出する。上記仮想カメラ設定手段は、上記第1位置姿勢算出手段によって算出された上記位置姿勢情報を用いて、所定の仮想空間における右目用の画像を生成するための右仮想カメラと左目用の画像を生成するための左仮想カメラの両方についての位置および姿勢を決定する。上記右仮想空間画像生成手段は、上記右仮想カメラから見た上記仮想空間を示す右仮想空間画像を生成する。上記左仮想空間画像生成手段は、上記左仮想カメラから見た上記仮想空間を示す左仮想空間画像を生成する。上記表示制御手段は、上記右目用の実カメラから出力される実世界画像データに上記右仮想空間画像を合成し、かつ、上記左目用の実カメラから出力される実世界画像データに上記左仮想空間画像を合成して、上記立体表示装置に立体視のための画像出力を行う。   The image display program of the present invention uses an output from a real camera for the right eye and a real camera for the left eye to display a real world image obtained by synthesizing a three-dimensional virtual object on the screen of a stereoscopic display device capable of stereoscopic viewing. An image display program for stereoscopic display, which causes a computer to function as first position and orientation calculation means, virtual camera setting means, right virtual space image generation means, left virtual space image generation means, and display control means. The first position / orientation calculation means includes real world image data output from the real camera for the right eye and real world image data output from the real camera for the left eye. By recognizing a predetermined imaging object in the world image data, position and orientation information indicating a relative position and orientation between the one real camera and the predetermined imaging object is calculated. The virtual camera setting unit generates a right virtual camera and a left eye image for generating a right eye image in a predetermined virtual space, using the position and orientation information calculated by the first position and orientation calculation unit. Determine the position and orientation for both of the left virtual cameras to do. The right virtual space image generation means generates a right virtual space image indicating the virtual space viewed from the right virtual camera. The left virtual space image generation means generates a left virtual space image indicating the virtual space viewed from the left virtual camera. The display control means combines the right virtual space image with the real world image data output from the real camera for the right eye, and the left virtual image with the real world image data output from the real camera for the left eye. The spatial images are synthesized and an image for stereoscopic viewing is output to the stereoscopic display device.

なお、上記仮想カメラ設定手段は、上記第1位置姿勢算出手段における上記一方の実カメラとは異なる他方の実カメラから出力される実世界画像データ内の上記所定の撮像対象の認識結果を用いずに、所定の仮想空間における右目用の画像を生成するための右仮想カメラと左目用の画像を生成するための左仮想カメラの両方についての位置および姿勢を決定してもよい。   The virtual camera setting unit does not use the recognition result of the predetermined imaging target in the real world image data output from the other real camera different from the one real camera in the first position and orientation calculation unit. In addition, the position and orientation of both the right virtual camera for generating an image for the right eye and the left virtual camera for generating an image for the left eye in a predetermined virtual space may be determined.

上記構成によれば、上記2つの実カメラから出力されるの2つの実世界画像データのいずれか一方においてしか上記所定の撮像対象を認識できない場合でも、上記所定の撮像対象を認識できた方の実世界画像データに基づいて算出される位置姿勢情報に基づいて、2つの仮想カメラのうちの一方の仮想カメラの位置および姿勢が決定され、こうして決定された一方の仮想カメラの位置および姿勢に基づいて、他方の仮想カメラの位置および姿勢が決定される。したがって、上記2つの実カメラのいずれか一方から出力されるの2つの実世界画像データのいずれか一方においてしか上記所定の撮像対象を認識できない場合でも、仮想オブジェクトを適切に立体表示することができる。また、上記2つの実カメラから出力されるの2つの実世界画像データの両方において上記所定の撮像対象を認識し得る場合であっても、いずれか一方の実世界画像データから上記所定の撮像対象を認識するだけで仮想オブジェクトを適切に立体表示することができるので、コンピュータの処理負担を軽減することができる。   According to the above configuration, even if the predetermined imaging target can be recognized only in one of the two real world image data output from the two real cameras, the one that can recognize the predetermined imaging target Based on the position and orientation information calculated based on the real world image data, the position and orientation of one of the two virtual cameras is determined, and based on the thus determined position and orientation of the one virtual camera. Thus, the position and posture of the other virtual camera are determined. Therefore, even when the predetermined imaging target can be recognized only in one of the two real world image data output from one of the two real cameras, the virtual object can be appropriately displayed in a stereoscopic manner. . Further, even when the predetermined imaging target can be recognized in both of the two real world image data output from the two real cameras, the predetermined imaging target is obtained from either one of the real world image data. Since the virtual object can be appropriately stereoscopically displayed simply by recognizing, the processing load on the computer can be reduced.

他の好ましい構成例として、上記仮想カメラ設定手段は、上記右仮想カメラと上記左仮想カメラとの間の相対姿勢の関係が、上記右目用の実カメラおよび上記左目用の実カメラとの間の設計上の相対姿勢の関係と同一になるように、上記右仮想カメラと上記左仮想カメラの位置および姿勢を決定してもよい。   As another preferred configuration example, the virtual camera setting means is configured so that a relative posture relationship between the right virtual camera and the left virtual camera is between the real camera for the right eye and the real camera for the left eye. You may determine the position and attitude | position of the said right virtual camera and the said left virtual camera so that it may become the same as the relationship of the design relative attitude | position.

上記構成によれば、上記所定の撮像対象の認識精度の誤差や、上記2つの実カメラの取り付け精度の誤差などの原因によって、上記2つの実カメラのいずれか一方から出力されるの実世界画像データに基づいて算出される位置姿勢情報と、いずれか他方の実カメラから出力される実世界画像データに基づいて算出される位置姿勢情報とが、上記2つの実カ
メラの相対姿勢に正確に対応していない場合であっても、上記右仮想カメラと上記左仮想カメラとの間の相対姿勢を適切に設定できるので、仮想オブジェクトを適切に立体表示することができる。
According to the above configuration, a real world image output from one of the two real cameras due to an error in recognition accuracy of the predetermined imaging target, an error in accuracy in attaching the two real cameras, or the like. The position and orientation information calculated based on the data and the position and orientation information calculated based on the real world image data output from one of the other real cameras accurately correspond to the relative postures of the two real cameras. Even if it is not, since the relative posture between the right virtual camera and the left virtual camera can be set appropriately, the virtual object can be appropriately displayed in three dimensions.

他の好ましい構成例として、上記仮想カメラ設定手段は、上記第1位置姿勢算出手段によって算出された上記位置姿勢情報を用いて、上記右仮想カメラおよび上記左仮想カメラのうち、上記第1位置姿勢算出手段における上記一方の実カメラに対応する一方の仮想カメラの姿勢を決定する第1仮想カメラ姿勢決定部と、上記第1仮想カメラ姿勢決定部によって決定された上記一方の仮想カメラの姿勢に基づいて、上記右仮想カメラと上記左仮想カメラとの間の相対姿勢の関係が、上記右目用の実カメラおよび上記左目用の実カメラとの間の設計上の相対姿勢の関係と同一になるように、他方の仮想カメラの姿勢を決定する第2カメラ姿勢決定部とを含んでもよい。   As another preferred configuration example, the virtual camera setting unit uses the position and orientation information calculated by the first position and orientation calculation unit, and uses the first position and orientation of the right virtual camera and the left virtual camera. Based on the attitude of the one virtual camera determined by the first virtual camera attitude determination unit and a first virtual camera attitude determination unit that determines the attitude of one virtual camera corresponding to the one real camera in the calculation unit Thus, the relative posture relationship between the right virtual camera and the left virtual camera is the same as the design relative posture relationship between the real camera for the right eye and the real camera for the left eye. In addition, a second camera posture determination unit that determines the posture of the other virtual camera may be included.

他の好ましい構成例として、上記画像表示プログラムは、上記コンピュータを、上記右仮想カメラと上記左仮想カメラの相対位置関係を決定する仮想カメラ相対位置関係決定手段としてさらに機能させ、上記仮想カメラ設定手段は、上記第1位置姿勢算出手段によって算出された上記位置姿勢情報を用いて、上記右仮想カメラおよび上記左仮想カメラのうち、上記第1位置姿勢算出手段における上記一方の実カメラに対応する一方の仮想カメラの位置を決定する第1仮想カメラ位置決定部と、上記第1仮想カメラ位置決定部によって決定された上記一方の仮想カメラの位置から、上記仮想カメラ相対位置関係決定手段によって決定された上記相対位置だけ離れた位置に、他方の仮想カメラの位置を決定する第2仮想カメラ位置決定部とを含んでもよい。   As another preferred configuration example, the image display program causes the computer to further function as a virtual camera relative positional relationship determining unit that determines a relative positional relationship between the right virtual camera and the left virtual camera, and the virtual camera setting unit One of the right virtual camera and the left virtual camera corresponding to the one real camera in the first position and orientation calculation means using the position and orientation information calculated by the first position and orientation calculation means Determined by the virtual camera relative positional relationship determining means from the first virtual camera position determining unit for determining the position of the virtual camera and the position of the one virtual camera determined by the first virtual camera position determining unit A second virtual camera position determining unit that determines the position of the other virtual camera at a position separated by the relative position; It may be.

なお、上記の「相対位置関係」とは、上記左仮想カメラと上記右仮想カメラの間の距離であってもよいし、一方の仮想カメラを基準とした他方の仮想カメラの相対位置であってもよい。   The “relative positional relationship” may be a distance between the left virtual camera and the right virtual camera, or a relative position of the other virtual camera based on one virtual camera. Also good.

なお、上記仮想カメラ相対位置関係決定手段は、上記2つの実カメラから出力される2つの実世界画像データ内の所定の撮像対象を認識した結果に基づいて、上記右仮想カメラと上記左仮想カメラの相対位置関係を決定してもよいし、上記右目用の実カメラおよび上記左目用の実カメラとの間の設計上の相対位置の関係に基づいて、上記右仮想カメラと上記左仮想カメラの相対位置関係を決定してもよい。   The virtual camera relative positional relationship determining means is configured to detect the right virtual camera and the left virtual camera based on a result of recognizing a predetermined imaging target in the two real world image data output from the two real cameras. Relative position relationship between the right virtual camera and the left virtual camera based on the design relative position relationship between the real camera for the right eye and the real camera for the left eye. The relative positional relationship may be determined.

上記構成によれば、上記所定の撮像対象の認識精度の誤差や、上記2つの実カメラの取り付け精度の誤差などの原因によって、上記2つの実カメラのいずれか一方から出力されるの実世界画像データに基づいて算出される位置姿勢情報と、いずれか他方の実カメラから出力される実世界画像データに基づいて算出される位置姿勢情報とが、上記2つの実カメラの相対位置関係に正確に対応していない場合であっても、上記右仮想カメラと上記左仮想カメラとの間の相対位置関係を適切に設定できるので、仮想オブジェクトを適切に立体表示することができる。   According to the above configuration, a real world image output from one of the two real cameras due to an error in recognition accuracy of the predetermined imaging target, an error in accuracy in attaching the two real cameras, or the like. The position / orientation information calculated based on the data and the position / orientation information calculated based on the real world image data output from one of the other real cameras are accurately related to the relative positional relationship between the two real cameras. Even if it is not compatible, since the relative positional relationship between the right virtual camera and the left virtual camera can be set appropriately, the virtual object can be appropriately displayed in three dimensions.

他の好ましい構成例として、上記仮想カメラ設定手段は、上記第1位置姿勢算出手段によって算出された上記位置姿勢情報を用いて、上記右仮想カメラおよび上記左仮想カメラのうち、上記第1位置姿勢算出手段における上記一方の実カメラに対応する一方の仮想カメラの位置を決定する第1仮想カメラ位置決定部と、上記第1位置姿勢算出手段によって算出された上記位置姿勢情報を用いて、上記右仮想カメラおよび上記左仮想カメラのうち、上記第1位置姿勢算出手段における上記一方の実カメラに対応する上記一方の仮想カメラの姿勢を決定する第1仮想カメラ姿勢決定部と、上記第1仮想カメラ位置決定部によって決定された上記一方の仮想カメラの位置から見て、上記第1仮想カメラ姿勢決定部によって決定された当該一方の仮想カメラの姿勢に基づく方向に、他方の仮想カメラの位置を
決定する第2仮想カメラ位置決定部とを含んでもよい。
As another preferred configuration example, the virtual camera setting unit uses the position and orientation information calculated by the first position and orientation calculation unit, and uses the first position and orientation of the right virtual camera and the left virtual camera. Using the first virtual camera position determining unit that determines the position of one virtual camera corresponding to the one real camera in the calculating unit and the position / orientation information calculated by the first position / orientation calculating unit, the right Of the virtual camera and the left virtual camera, a first virtual camera posture determining unit that determines the posture of the one virtual camera corresponding to the one real camera in the first position and posture calculation means, and the first virtual camera The one virtual camera determined by the first virtual camera posture determining unit as viewed from the position of the one virtual camera determined by the position determining unit. In a direction based on the orientation of the camera, it may include a second virtual camera position determination unit for determining the position of the other of the virtual camera.

なお、上記第2仮想カメラ位置決定部は、上記第1仮想カメラ位置決定部によって決定された上記一方の仮想カメラの位置から見て、上記第1仮想カメラ姿勢決定部によって決定された当該一方の仮想カメラの姿勢の横方向に、他方の仮想カメラの位置を決定してもよい。   In addition, the second virtual camera position determination unit is the one determined by the first virtual camera posture determination unit when viewed from the position of the one virtual camera determined by the first virtual camera position determination unit. You may determine the position of the other virtual camera in the horizontal direction of the attitude | position of a virtual camera.

他の好ましい構成例として、上記コンピュータを、上記右仮想カメラと上記左仮想カメラの間の距離を決定する仮想カメラ間距離決定手段としてさらに機能させ、上記第2カメラ位置決定部は、上記第1仮想カメラ位置決定部によって決定された上記一方の仮想カメラの位置から見て、上記第1仮想カメラ姿勢決定部によって決定された当該一方の仮想カメラの姿勢に基づく方向に、上記仮想カメラ間距離決定手段によって決定された距離だけ離れた位置に、上記他方の仮想カメラの位置を決定してもよい。   As another preferred configuration example, the computer is further caused to function as a virtual inter-camera distance determining unit that determines a distance between the right virtual camera and the left virtual camera, and the second camera position determination unit includes the first camera position determination unit. The distance between the virtual cameras is determined in a direction based on the posture of the one virtual camera determined by the first virtual camera posture determination unit as seen from the position of the one virtual camera determined by the virtual camera position determination unit. The position of the other virtual camera may be determined at a position separated by the distance determined by the means.

他の好ましい構成例として、上記仮想カメラ相対位置関係決定手段は、上記右目用の実カメラから出力される実世界画像データと上記左目用の実カメラから出力される実世界画像データの視差に基づいて上記右仮想カメラと上記左仮想カメラの相対位置関係を決定してもよい。   As another preferred configuration example, the virtual camera relative positional relationship determining means is based on a parallax between real world image data output from the real camera for the right eye and real world image data output from the real camera for the left eye. Then, the relative positional relationship between the right virtual camera and the left virtual camera may be determined.

上記構成例によれば、上記2つの実世界画像データの視差に基づいて上記右仮想カメラと上記左仮想カメラの相対位置関係が決定されるので、上記2つの実カメラの相対位置関係が既知でない場合や、上記2つの実カメラの取り付け精度の誤差によって、上記2つの実カメラの相対位置関係に誤差が含まれる場合であっても、上記右仮想カメラおよび上記左仮想カメラを適切に設定できる。   According to the above configuration example, since the relative positional relationship between the right virtual camera and the left virtual camera is determined based on the parallax between the two real world image data, the relative positional relationship between the two real cameras is not known. In some cases, the right virtual camera and the left virtual camera can be appropriately set even if the relative positional relationship between the two real cameras includes an error due to an error in the mounting accuracy of the two real cameras.

他の好ましい構成例として、上記相対位置関係決定手段によって決定される上記相対位置関係は、上記右仮想カメラと上記左仮想カメラの間隔であってもよい。   As another preferred configuration example, the relative positional relationship determined by the relative positional relationship determining means may be an interval between the right virtual camera and the left virtual camera.

他の好ましい構成例として、上記画像表示プログラムは、上記コンピュータを、上記2つの実カメラからそれぞれ出力される2つの実世界画像データのうち、上記第1位置姿勢算出手段における上記一方の実カメラとは異なる他方の実カメラから出力される実世界画像データ内の上記所定の撮像対象を認識することにより、当該他方の実カメラと上記撮像対象との間の相対的な位置および姿勢を示す位置姿勢情報を算出する第2位置姿勢算出手段としてさらに機能させ、上記仮想カメラ相対位置関係決定手段は、上記第1位置姿勢算出手段によって算出された上記一方の実カメラと上記撮像対象との間の相対的な位置の情報と、上記第2位置姿勢算出手段によって算出された上記他方の実カメラと上記撮像対象との間の相対的な位置の情報とを用いて、上記一方の実カメラと上記他方の実カメラとの間の距離を算出してもよい。   As another preferable configuration example, the image display program may include the computer, the one real camera in the first position / orientation calculation unit of the two real world image data respectively output from the two real cameras. Is a position and orientation indicating a relative position and orientation between the other real camera and the imaging target by recognizing the predetermined imaging target in real world image data output from another different real camera The virtual camera relative position relationship determining means is further operated as a second position / orientation calculating means for calculating information, and the virtual camera relative position relationship determining means is a relative position between the one real camera calculated by the first position / orientation calculating means and the imaging target. Information on the relative position between the other real camera calculated by the second position and orientation calculation means and the imaging target, Used may calculate the distance between one of the real camera and the other real camera above.

他の好ましい構成例として、上記第1位置姿勢算出手段は、上記一方の実カメラから出力される実世界画像データに基づいて、上記所定の撮像対象を原点とした座標系で表される座標値を上記一方の実カメラを原点とした第1撮像部座標系で表される座標値へと変換するための第1変換行列を生成する第1変換行列生成手段を含み、上記第2位置姿勢算出手段は、上記他方の実カメラから出力される実世界画像データに基づいて、上記所定の撮像対象を原点とした座標系で表される座標値を上記他方の実カメラを原点とした第2撮像部座標系で表される座標値へと変換するための第2変換行列を生成する第2変換行列生成手段を含んでもよい。   As another preferable configuration example, the first position / orientation calculation unit is configured to generate a coordinate value represented by a coordinate system with the predetermined imaging target as an origin based on real world image data output from the one real camera. Including first conversion matrix generation means for generating a first conversion matrix for converting into a coordinate value represented by a first imaging unit coordinate system with the one real camera as the origin. The means is configured to perform second imaging with the coordinate value represented by the coordinate system with the predetermined imaging target as the origin as the origin, with the other real camera as the origin, based on the real world image data output from the other real camera. You may include the 2nd conversion matrix production | generation means which produces | generates the 2nd conversion matrix for converting into the coordinate value represented by a partial coordinate system.

好ましい他の構成例として、上記仮想カメラ相対位置関係決定手段は、上記2つの実カメラから新たな実世界画像データが出力される度に、上記右仮想カメラと上記左仮想カメ
ラの相対位置関係を算出する処理を実行し、当該処理を複数回実行することによって得られた複数回分の相対位置関係算出結果に基づいて上記右仮想カメラと上記左仮想カメラの相対位置関係を確定してもよい。
As another preferred configuration example, the virtual camera relative positional relationship determining means determines the relative positional relationship between the right virtual camera and the left virtual camera each time new real world image data is output from the two real cameras. You may determine the relative positional relationship of the said right virtual camera and the said left virtual camera based on the relative positional relationship calculation result for multiple times obtained by performing the process to calculate and performing the said process in multiple times.

上記構成例によれば、実世界画像データにおいて上記所定の撮像対象を認識する際の認識精度の誤差の影響が軽減されるので、上記仮想カメラ相対位置関係決定手段によって決定される上記右仮想カメラと上記左仮想カメラの相対位置関係の信頼度が向上する。   According to the above configuration example, since the influence of an error in recognition accuracy when recognizing the predetermined imaging target in real world image data is reduced, the right virtual camera determined by the virtual camera relative positional relationship determining unit And the reliability of the relative positional relationship of the left virtual camera is improved.

好ましい他の構成例として、上記仮想カメラ相対位置関係決定手段は、上記複数回の相対位置関係算出結果が全て所定の範囲に収まっている場合にのみ、当該複数回の相対位置関係算出結果に基づいて上記右仮想カメラと上記左仮想カメラの相対位置関係を確定してもよい。   As another preferred configuration example, the virtual camera relative positional relationship determination means is based on the plurality of relative positional relationship calculation results only when the multiple relative positional relationship calculation results are all within a predetermined range. Then, the relative positional relationship between the right virtual camera and the left virtual camera may be determined.

上記構成例によれば、上記仮想カメラ相対位置関係決定手段によって決定される上記右仮想カメラと上記左仮想カメラの相対位置関係の信頼度が向上する。   According to the above configuration example, the reliability of the relative positional relationship between the right virtual camera and the left virtual camera determined by the virtual camera relative positional relationship determining unit is improved.

好ましい他の構成例として、上記画像表示プログラムは、上記コンピュータを、上記仮想カメラ相対位置関係決定手段によって上記右仮想カメラと上記左仮想カメラの相対位置関係が決定された後、当該相対位置関係が決定された時点から、上記2つの実カメラに対する上記所定の撮像対象の奥行距離が所定範囲を超えて変化したか否かを判定する奥行変化判定手段としてさらに機能させ、上記仮想カメラ相対位置関係決定手段は、上記奥行変化判定手段の判定結果が肯定である場合に、上記右仮想カメラと上記左仮想カメラの相対位置関係を決定し直してもよい。   As another preferred configuration example, the image display program causes the relative positional relationship to be determined after the computer determines the relative positional relationship between the right virtual camera and the left virtual camera by the virtual camera relative positional relationship determining unit. The virtual camera relative positional relationship is determined by further functioning as a depth change determination unit that determines whether or not the depth distance of the predetermined imaging target with respect to the two real cameras has changed beyond a predetermined range from the determined time point. The means may re-determine the relative positional relationship between the right virtual camera and the left virtual camera when the determination result of the depth change determination means is affirmative.

上記2つの実カメラの取り付け精度の誤差による影響の大きさは、上記2つの実カメラから上記所定の撮像対象までの奥行距離に依存して変化するが、上記構成例によれば、上記2つの実カメラの取り付け精度の誤差による影響を必要に応じて随時適切に補正することができる。   The magnitude of the influence of the error in mounting accuracy of the two actual cameras changes depending on the depth distance from the two actual cameras to the predetermined imaging target. According to the configuration example, It is possible to appropriately correct the influence due to the error of the mounting accuracy of the actual camera as needed.

好ましい他の構成例として、上記画像表示プログラムは、上記コンピュータを、上記所定の撮像対象が含まれている実世界画像データに基づいて、上記2つの実カメラに対する上記所定の撮像対象の奥行距離を算出する奥行距離算出手段としてさらに機能させ、上記奥行変化判定手段は、上記仮想カメラ相対位置関係決定手段によって上記右仮想カメラと上記左仮想カメラの相対位置関係が決定された時点において上記奥行距離算出手段によって算出された基準奥行距離と、その後に上記奥行距離算出手段によって算出された最新奥行距離とを比較することによって、上記2つの実カメラに対する上記所定の撮像対象の奥行距離が所定範囲を超えて変化したか否かを判定してもよい。   As another preferable configuration example, the image display program causes the computer to calculate a depth distance of the predetermined imaging target with respect to the two real cameras based on real world image data including the predetermined imaging target. The depth change calculating means further functions as a depth distance calculating means for calculating, and the depth change calculating means calculates the depth distance when the relative positional relation between the right virtual camera and the left virtual camera is determined by the virtual camera relative positional relation determining means. By comparing the reference depth distance calculated by the means and the latest depth distance calculated by the depth distance calculation means, the depth distance of the predetermined imaging target with respect to the two actual cameras exceeds a predetermined range. It may be determined whether or not it has changed.

好ましい他の構成例として、上記奥行距離算出手段は、上記2つの実カメラから新たな実世界画像データが出力される度に、上記2つの実カメラに対する上記所定の撮像対象の奥行距離を算出する処理を実行し、当該処理を複数回実行することによって得られた複数回分の奥行距離算出結果に基づいて上記基準奥行距離を算出してもよい。   As another preferable configuration example, the depth distance calculation unit calculates the depth distance of the predetermined imaging target with respect to the two real cameras each time new real world image data is output from the two real cameras. The reference depth distance may be calculated based on a plurality of depth distance calculation results obtained by executing the process and executing the process a plurality of times.

上記構成例によれば、実世界画像データにおいて上記所定の撮像対象を認識する際の認識精度の誤差の影響が軽減されるので、上記奥行距離算出手段によって算出される上記2つの実カメラに対する上記所定の撮像対象の奥行距離の信頼度が向上する。   According to the above configuration example, since the influence of the recognition accuracy error when recognizing the predetermined imaging target in real world image data is reduced, the two real cameras calculated by the depth distance calculating unit The reliability of the depth distance of a predetermined imaging target is improved.

好ましい他の構成例として、上記奥行距離算出手段は、上記複数回の奥行距離算出結果が全て所定の範囲に収まっている場合にのみ、当該複数回の奥行距離算出結果に基づいて上記基準奥行距離を算出してもよい。   As another preferable configuration example, the depth distance calculation unit may calculate the reference depth distance based on the plurality of depth distance calculation results only when the plurality of depth distance calculation results are all within a predetermined range. May be calculated.

上記構成例によれば、上記奥行距離算出手段によって算出される上記2つの実カメラに対する上記所定の撮像対象の奥行距離の信頼度が向上する。   According to the above configuration example, the reliability of the depth distance of the predetermined imaging target with respect to the two real cameras calculated by the depth distance calculation unit is improved.

好ましい他の構成例として、上記画像表示プログラムは、上記コンピュータを、上記2つの実カメラからそれぞれ出力される2つの実世界画像データのうち、上記第1位置姿勢算出手段における上記一方の実カメラとは異なる他方の実カメラから出力される実世界画像データ内の上記所定の撮像対象を認識することにより、当該他方の実カメラと上記所定の撮像対象との間の相対的な位置および姿勢を示す位置姿勢情報を算出する第2位置姿勢算出手段、および、上記2つの実カメラからそれぞれ出力される2つの実世界画像データの少なくとも一方における上記所定の撮像対象の位置に応じて、当該2つの実カメラのうち1つを選択する実カメラ選択手段としてさらに機能させ、上記仮想カメラ設定手段は、上記実カメラ選択手段によって選択された実カメラが上記一方の実カメラであったときには、上記第1位置姿勢算出手段によって算出された、当該一方の実カメラと上記所定の撮像対象との間の相対的な位置および姿勢を示す位置姿勢情報を用いて、上記右仮想カメラと上記左仮想カメラの位置および姿勢を決定し、上記実カメラ選択手段によって選択された実カメラが上記他方の実カメラであったときには、上記第2位置姿勢算出手段によって算出された、当該他方の実カメラと上記所定の撮像対象との間の相対的な位置および姿勢を示す位置姿勢情報を用いて、上記右仮想カメラと上記左仮想カメラの位置および姿勢を決定してもよい。   As another preferable configuration example, the image display program may include the computer and the one real camera in the first position / orientation calculation unit of the two real world image data output from the two real cameras. Shows the relative position and orientation between the other real camera and the predetermined imaging object by recognizing the predetermined imaging object in the real world image data output from another different real camera According to the position of the predetermined imaging object in at least one of the two real world image data output from the two real cameras, the second position and orientation calculation means for calculating the position and orientation information, respectively. It further functions as a real camera selection means for selecting one of the cameras, and the virtual camera setting means is controlled by the real camera selection means. When the selected real camera is the one real camera, the relative position and posture between the one real camera and the predetermined imaging target calculated by the first position / orientation calculation unit are calculated. The position and orientation information shown is used to determine the positions and orientations of the right virtual camera and the left virtual camera, and when the real camera selected by the real camera selection means is the other real camera, the second virtual camera The position of the right virtual camera and the left virtual camera is calculated using the position and orientation information indicating the relative position and orientation between the other real camera and the predetermined imaging target, calculated by the position and orientation calculation means. And the posture may be determined.

上記構成例によれば、上記所定の撮像対象が一方の実カメラの撮影範囲から外れたとしても、上記右仮想カメラおよび上記左仮想カメラを適切に設定できるので、仮想オブジェクトの立体表示を継続することができる。   According to the above configuration example, even if the predetermined imaging target is out of the shooting range of one real camera, the right virtual camera and the left virtual camera can be appropriately set, so that the stereoscopic display of the virtual object is continued. be able to.

好ましい他の構成例として、上記実カメラ選択手段は、上記2つの実カメラのうちの左目用の実カメラから出力される実世界画像データにおける上記所定の撮像対象の位置が当該実世界画像データの右端領域へ進入したことに応じて、上記左目用の実カメラから上記右目用の実カメラへと切り替え、上記右目用の実カメラから出力される実世界画像データにおける上記所定の撮像対象の位置が当該実世界画像データの左端領域へ進入したことに応じて、上記右目用の実カメラから上記左目用の実カメラへと切り替えてもよい。   As another preferable configuration example, the real camera selection unit may be configured such that the position of the predetermined imaging target in the real world image data output from the real camera for the left eye of the two real cameras is the real world image data. In response to entering the right end area, the real camera for the left eye is switched to the real camera for the right eye, and the position of the predetermined imaging target in the real world image data output from the real camera for the right eye is In response to entering the left end area of the real world image data, the real camera for the right eye may be switched to the real camera for the left eye.

好ましい他の構成例として、上記第1位置姿勢算出手段および上記表示制御手段によって利用される上記実世界画像データは、上記実カメラからリアルタイムに出力される実世界画像データであってもよい。   As another preferable configuration example, the real world image data used by the first position and orientation calculation unit and the display control unit may be real world image data output in real time from the real camera.

上記構成例によれば、立体表示装置の画面において、実世界に仮想オブジェクトがリアルタイムに実在しているように見せることができる。   According to the above configuration example, it is possible to make the virtual object appear to exist in real time in the real world on the screen of the stereoscopic display device.

好ましい他の構成例として、上記コンピュータは、上記2つの実カメラと上記立体表示装置とを備えた情報処理装置に内蔵されていてもよい。   As another preferable configuration example, the computer may be incorporated in an information processing apparatus including the two real cameras and the stereoscopic display device.

本発明の画像表示装置は、右目用の実カメラおよび左目用の実カメラからの出力を利用して、立体視可能な立体表示装置の画面に、3次元の仮想オブジェクトを合成した実世界画像を立体表示する画像表示装置であって、第1位置姿勢算出手段、仮想カメラ設定手段、右仮想空間画像生成手段、左仮想空間画像生成手段、および、表示制御手段を備える。上記第1位置姿勢算出手段は、上記右目用の実カメラから出力される実世界画像データと上記左目用の実カメラから出力される実世界画像データのうち、一方の実カメラから出力される実世界画像データ内の所定の撮像対象を認識することにより、当該一方の実カメラと上記所定の撮像対象との間の相対的な位置および姿勢を示す位置姿勢情報を算出する。
上記仮想カメラ設定手段は、上記第1位置姿勢算出手段によって算出された上記位置姿勢情報を用いて、所定の仮想空間における右目用の画像を生成するための右仮想カメラと左目用の画像を生成するための左仮想カメラの両方についての位置および姿勢を決定する。上記右仮想空間画像生成手段は、上記右仮想カメラから見た上記仮想空間を示す右仮想空間画像を生成する。上記左仮想空間画像生成手段は、上記左仮想カメラから見た上記仮想空間を示す左仮想空間画像を生成する。上記表示制御手段は、上記右目用の実カメラから出力される実世界画像データに上記右仮想空間画像を合成し、かつ、上記左目用の実カメラから出力される実世界画像データに上記左仮想空間画像を合成して、上記立体表示装置に立体視のための画像出力を行う。
The image display device of the present invention uses a real camera for a right eye and an output from a real camera for a left eye to display a real world image obtained by synthesizing a three-dimensional virtual object on the screen of a stereoscopic display device capable of stereoscopic viewing. An image display device that performs stereoscopic display, and includes first position and orientation calculation means, virtual camera setting means, right virtual space image generation means, left virtual space image generation means, and display control means. The first position / orientation calculation means includes real world image data output from the real camera for the right eye and real world image data output from the real camera for the left eye. By recognizing a predetermined imaging object in the world image data, position and orientation information indicating a relative position and orientation between the one real camera and the predetermined imaging object is calculated.
The virtual camera setting unit generates a right virtual camera and a left eye image for generating a right eye image in a predetermined virtual space, using the position and orientation information calculated by the first position and orientation calculation unit. Determine the position and orientation for both of the left virtual cameras to do. The right virtual space image generation means generates a right virtual space image indicating the virtual space viewed from the right virtual camera. The left virtual space image generation means generates a left virtual space image indicating the virtual space viewed from the left virtual camera. The display control means combines the right virtual space image with the real world image data output from the real camera for the right eye, and the left virtual image with the real world image data output from the real camera for the left eye. The spatial images are synthesized and an image for stereoscopic viewing is output to the stereoscopic display device.

本発明の画像表示システムは、右目用の実カメラおよび左目用の実カメラからの出力を利用して、立体視可能な立体表示装置の画面に、3次元の仮想オブジェクトを合成した実世界画像を立体表示する画像表示システムであって、第1位置姿勢算出手段、仮想カメラ設定手段、右仮想空間画像生成手段、左仮想空間画像生成手段、および、表示制御手段を備える。上記第1位置姿勢算出手段は、上記右目用の実カメラから出力される実世界画像データと上記左目用の実カメラから出力される実世界画像データのうち、一方の実カメラから出力される実世界画像データ内の所定の撮像対象を認識することにより、当該一方の実カメラと上記所定の撮像対象との間の相対的な位置および姿勢を示す位置姿勢情報を算出する。上記仮想カメラ設定手段は、上記第1位置姿勢算出手段によって算出された上記位置姿勢情報を用いて、所定の仮想空間における右目用の画像を生成するための右仮想カメラと左目用の画像を生成するための左仮想カメラの両方についての位置および姿勢を決定する。上記右仮想空間画像生成手段は、上記右仮想カメラから見た上記仮想空間を示す右仮想空間画像を生成する。上記左仮想空間画像生成手段は、上記左仮想カメラから見た上記仮想空間を示す左仮想空間画像を生成する。上記表示制御手段は、上記右目用の実カメラから出力される実世界画像データに上記右仮想空間画像を合成し、かつ、上記左目用の実カメラから出力される実世界画像データに上記左仮想空間画像を合成して、上記立体表示装置に立体視のための画像出力を行う。   The image display system of the present invention uses an output from a real camera for the right eye and a real camera for the left eye to display a real world image obtained by synthesizing a three-dimensional virtual object on the screen of a stereoscopic display device capable of stereoscopic viewing. An image display system that performs stereoscopic display, and includes first position and orientation calculation means, virtual camera setting means, right virtual space image generation means, left virtual space image generation means, and display control means. The first position / orientation calculation means includes real world image data output from the real camera for the right eye and real world image data output from the real camera for the left eye. By recognizing a predetermined imaging object in the world image data, position and orientation information indicating a relative position and orientation between the one real camera and the predetermined imaging object is calculated. The virtual camera setting unit generates a right virtual camera and a left eye image for generating a right eye image in a predetermined virtual space, using the position and orientation information calculated by the first position and orientation calculation unit. Determine the position and orientation for both of the left virtual cameras to do. The right virtual space image generation means generates a right virtual space image indicating the virtual space viewed from the right virtual camera. The left virtual space image generation means generates a left virtual space image indicating the virtual space viewed from the left virtual camera. The display control means combines the right virtual space image with the real world image data output from the real camera for the right eye, and the left virtual image with the real world image data output from the real camera for the left eye. The spatial images are synthesized and an image for stereoscopic viewing is output to the stereoscopic display device.

本発明の画像表示方法は、右目用の実カメラおよび左目用の実カメラからの出力を利用して、立体視可能な立体表示装置の画面に、3次元の仮想オブジェクトを合成した実世界画像を立体表示する画像表示方法であって、第1位置姿勢算出ステップ、仮想カメラ設定ステップ、右仮想空間画像生成ステップ、左仮想空間画像生成ステップ、および、表示制御ステップを備える。上記第1位置姿勢算出ステップでは、上記右目用の実カメラから出力される実世界画像データと上記左目用の実カメラから出力される実世界画像データのうち、一方の実カメラから出力される実世界画像データ内の所定の撮像対象を認識することにより、当該一方の実カメラと上記所定の撮像対象との間の相対的な位置および姿勢を示す位置姿勢情報を算出する。上記仮想カメラ設定ステップでは、上記第1位置姿勢算出ステップにおいて算出された上記位置姿勢情報を用いて、所定の仮想空間における右目用の画像を生成するための右仮想カメラと左目用の画像を生成するための左仮想カメラの両方についての位置および姿勢を決定する。上記右仮想空間画像生成ステップでは、上記右仮想カメラから見た上記仮想空間を示す右仮想空間画像を生成する。上記左仮想空間画像生成ステップでは、上記左仮想カメラから見た上記仮想空間を示す左仮想空間画像を生成する。上記表示制御ステップでは、上記右目用の実カメラから出力される実世界画像データに上記右仮想空間画像を合成し、かつ、上記左目用の実カメラから出力される実世界画像データに上記左仮想空間画像を合成して、上記立体表示装置に立体視のための画像出力を行う。   The image display method of the present invention uses an output from a real camera for the right eye and a real camera for the left eye to display a real world image obtained by synthesizing a three-dimensional virtual object on the screen of a stereoscopic display device capable of stereoscopic viewing. An image display method for stereoscopic display, comprising a first position and orientation calculation step, a virtual camera setting step, a right virtual space image generation step, a left virtual space image generation step, and a display control step. In the first position / orientation calculation step, the real world image data output from the real camera for the right eye and the real world image data output from the real camera for the left eye are output from one real camera. By recognizing a predetermined imaging object in the world image data, position and orientation information indicating a relative position and orientation between the one real camera and the predetermined imaging object is calculated. In the virtual camera setting step, a right virtual camera and a left eye image for generating a right eye image in a predetermined virtual space are generated using the position and orientation information calculated in the first position and orientation calculation step. Determine the position and orientation for both of the left virtual cameras to do. In the right virtual space image generation step, a right virtual space image indicating the virtual space viewed from the right virtual camera is generated. In the left virtual space image generation step, a left virtual space image indicating the virtual space viewed from the left virtual camera is generated. In the display control step, the right virtual space image is synthesized with the real world image data output from the right eye real camera, and the left virtual image is output to the real world image data output from the left eye real camera. The spatial images are synthesized and an image for stereoscopic viewing is output to the stereoscopic display device.

本発明によれば、正常に立体視できるように仮想オブジェクトを表示することができる。   According to the present invention, a virtual object can be displayed so that it can be normally stereoscopically viewed.

開状態におけるゲーム装置10の正面図Front view of game device 10 in the open state 開状態におけるゲーム装置10の側面図Side view of game device 10 in open state 閉状態におけるゲーム装置10の左側面図、正面図、右側面図および背面図Left side view, front view, right side view, and rear view of game device 10 in the closed state 図1に示す上側ハウジング21のA−A’線断面図A-A 'line sectional view of upper housing 21 shown in FIG. 3D調整スイッチ25のスライダ25aが最下点(第3の位置)に存在する様子を示す図The figure which shows a mode that the slider 25a of the 3D adjustment switch 25 exists in the lowest point (3rd position). 3D調整スイッチ25のスライダ25aが最下点よりも上方位置(第1の位置)に存在する様子を示す図The figure which shows a mode that the slider 25a of 3D adjustment switch 25 exists in a position (1st position) above a lowest point. 3D調整スイッチ25のスライダ25aが最上点(第2の位置)に存在する様子を示す図The figure which shows a mode that the slider 25a of the 3D adjustment switch 25 exists in the highest point (2nd position). ゲーム装置10の内部構成を示すブロック図Block diagram showing the internal configuration of the game apparatus 10 上側LCD22の画面に表示される立体画像の一例を示す図The figure which shows an example of the stereo image displayed on the screen of upper LCD22 上側LCD22の画面に表示される立体画像の他の一例を示す図The figure which shows another example of the stereo image displayed on the screen of upper LCD22. マーカー61を示す図The figure which shows the marker 61 上側LCD22の画面に表示される立体画像のさらに他の一例を示す図The figure which shows another example of the stereo image displayed on the screen of upper LCD22. ゲーム装置10のメインメモリ32のメモリマップを示す図The figure which shows the memory map of the main memory 32 of the game device 10 メインメモリ32に格納される各種変数の一例を示す図The figure which shows an example of the various variables stored in the main memory 32 マーカー処理の流れを示すフローチャートFlow chart showing the flow of marker processing メイン処理の流れを示すフローチャートFlow chart showing the flow of main processing 更新処理の詳細を示すフローチャートFlow chart showing details of update process 仮想カメラ間隔決定処理の詳細を示すフローチャートFlow chart showing details of virtual camera interval determination processing ビュー行列生成処理の詳細を示すフローチャートFlowchart showing details of view matrix generation processing メイン実世界画像設定処理の詳細を示すフローチャートFlow chart showing details of main real world image setting process 表示モード切替処理の詳細を示すフローチャートFlow chart showing details of display mode switching processing 左実世界画像および右実世界画像の一例を示す図A diagram showing an example of a left real world image and a right real world image マーカー認識処理の結果に応じて算出される左仮想カメラ63Lの位置及び姿勢を示す図The figure which shows the position and attitude | position of the left virtual camera 63L calculated according to the result of a marker recognition process マーカー認識処理の結果に応じて算出される右仮想カメラ63Rの位置及び姿勢を示す図The figure which shows the position and attitude | position of the right virtual camera 63R calculated according to the result of a marker recognition process 立体視ゼロ距離に基づく左実世界画像の切り出し範囲を示す図The figure which shows the cut-out range of the left real world image based on the stereoscopic vision zero distance 立体視ゼロ距離に基づく右実世界画像の切り出し範囲を示す図The figure which shows the cut-out range of the right real world image based on the stereoscopic zero distance 仮想オブジェクト62と左仮想カメラ63Lの位置関係を示す図The figure which shows the positional relationship of the virtual object 62 and the left virtual camera 63L. 左目用画像の生成方法を示す図The figure which shows the production | generation method of the image for left eyes 左仮想カメラ座標系で表される右仮想カメラ63Rの座標の計算方法を示す図The figure which shows the calculation method of the coordinate of the right virtual camera 63R represented by the left virtual camera coordinate system ewとedを示す図Diagram showing ew and ed マーカー座標系で表される左仮想カメラ63L及び右仮想カメラ63Rの座標の計算方法を示す図The figure which shows the calculation method of the coordinate of the left virtual camera 63L and the right virtual camera 63R represented by a marker coordinate system. 左仮想カメラ63Lの位置及び姿勢に基づいて決定される右仮想カメラ63Rの位置を示す図The figure which shows the position of the right virtual camera 63R determined based on the position and attitude | position of the left virtual camera 63L 右仮想カメラ63Rの位置及び姿勢に基づいて決定される左仮想カメラ63Lの位置を示す図The figure which shows the position of the left virtual camera 63L determined based on the position and attitude | position of the right virtual camera 63R. |V.z|を示す図| V. Figure showing z | EyeWidthを再計算する理由を説明するための図Diagram for explaining the reason for recalculating EyeWidth EyeWidthを再計算する理由を説明するための図Diagram for explaining the reason for recalculating EyeWidth EyeWidthを再計算する理由を説明するための図Diagram for explaining the reason for recalculating EyeWidth EyeWidthを再計算する理由を説明するための図Diagram for explaining the reason for recalculating EyeWidth 左射影行列について説明するための図Diagram for explaining left projection matrix 右射影行列について説明するための図Illustration for explaining the right projection matrix メイン実世界画像を左実世界画像から右実世界画像へ切り替えるか否かの判定方法を示す図The figure which shows the judgment method of whether to switch a main real world image from a left real world image to a right real world image メイン実世界画像を右実世界画像から左実世界画像へ切り替えるか否かの判定方法を示す図The figure which shows the judgment method of whether to switch a main real world image from a right real world image to a left real world image

(ゲーム装置の構成)
以下、本発明の一実施形態に係るゲーム装置について説明する。図1〜図3は、ゲーム装置10の外観を示す平面図である。ゲーム装置10は携帯型のゲーム装置であり、図1〜図3に示すように折り畳み可能に構成されている。図1および図2は、開いた状態(開状態)におけるゲーム装置10を示し、図3は、閉じた状態(閉状態)におけるゲーム装置10を示している。図1は、開状態におけるゲーム装置10の正面図であり、図2は、開状態におけるゲーム装置10の右側面図である。ゲーム装置10は、撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置10は、交換可能なメモリカード内に記憶され、または、サーバーや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像などのコンピュータグラフィックス処理により生成された画像を画面に表示したりすることができる。
(Configuration of game device)
Hereinafter, a game device according to an embodiment of the present invention will be described. 1 to 3 are plan views showing the appearance of the game apparatus 10. The game apparatus 10 is a portable game apparatus, and is configured to be foldable as shown in FIGS. 1 and 2 show the game apparatus 10 in an open state (open state), and FIG. 3 shows the game apparatus 10 in a closed state (closed state). FIG. 1 is a front view of the game apparatus 10 in the open state, and FIG. 2 is a right side view of the game apparatus 10 in the open state. The game apparatus 10 can capture an image with an imaging unit, display the captured image on a screen, and store data of the captured image. In addition, the game device 10 can be stored in a replaceable memory card or can execute a game program received from a server or another game device, and can be an image captured by a virtual camera set in a virtual space. An image generated by computer graphics processing can be displayed on the screen.

まず、図1〜図3を参照して、ゲーム装置10の外観構成について説明する。図1〜図3に示されるように、ゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に接続されている。本実施形態では、各ハウジング11および21はともに横長の長方形の板状形状であり、互いの長辺部分で回転可能に接続されている。   First, the external configuration of the game apparatus 10 will be described with reference to FIGS. As shown in FIGS. 1 to 3, the game apparatus 10 includes a lower housing 11 and an upper housing 21. The lower housing 11 and the upper housing 21 are connected so as to be openable and closable (foldable). In the present embodiment, each of the housings 11 and 21 has a horizontally long rectangular plate shape, and is connected so as to be rotatable at the long side portions of each other.

図1および図2に示されるように、下側ハウジング11の上側長辺部分には、下側ハウジング11の内側面(主面)11Bに対して垂直な方向に突起する突起部11Aが設けられる。また、上側ハウジング21の下側長辺部分には、上側ハウジング21の下側面から当該下側面に垂直な方向に突起する突起部21Aが設けられる。下側ハウジング11の突起部11Aと上側ハウジング21の突起部21Aとが連結されることにより、下側ハウジング11と上側ハウジング21とが、折り畳み可能に接続される。   As shown in FIGS. 1 and 2, the upper long side portion of the lower housing 11 is provided with a protruding portion 11 </ b> A that protrudes in a direction perpendicular to the inner surface (main surface) 11 </ b> B of the lower housing 11. . In addition, the lower long side portion of the upper housing 21 is provided with a protruding portion 21A that protrudes from the lower side surface of the upper housing 21 in a direction perpendicular to the lower side surface. By connecting the protrusion 11A of the lower housing 11 and the protrusion 21A of the upper housing 21, the lower housing 11 and the upper housing 21 are foldably connected.

(下側ハウジングの説明)
まず、下側ハウジング11の構成について説明する。図1〜図3に示すように、下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14L(図1、図3)、アナログスティック15、LED16A〜16B、挿入口17、および、マイクロフォン用孔18が設けられる。以下、これらの詳細について説明する。
(Description of lower housing)
First, the configuration of the lower housing 11 will be described. As shown in FIGS. 1 to 3, the lower housing 11 includes a lower LCD (Liquid Crystal Display) 12, a touch panel 13, operation buttons 14A to 14L (FIGS. 1 and 3), an analog stick. 15, LED16A-16B, the insertion port 17, and the hole 18 for microphones are provided. Details of these will be described below.

図1に示すように、下側LCD12は下側ハウジング11に収納される。下側LCD12は横長形状であり、長辺方向が下側ハウジング11の長辺方向に一致するように配置される。下側LCD12は下側ハウジング11の中央に配置される。下側LCD12は、下側ハウジング11の内側面(主面)に設けられ、下側ハウジング11に設けられた開口部から当該下側LCD12の画面が露出される。ゲーム装置10を使用しない場合には閉状態としておくことによって、下側LCD12の画面が汚れたり傷ついたりすることを防止することができる。下側LCD12の画素数は、例えば、256dot×192dot(横×縦)であってもよい。下側LCD12は、後述する上側LCD22とは異なり、画像を(立体視可能ではなく)平面的に表示する表示装置である。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescen
ce:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側LCD12として、任意の解像度の表示装置を利用することができる。
As shown in FIG. 1, the lower LCD 12 is housed in the lower housing 11. The lower LCD 12 has a horizontally long shape, and is arranged such that the long side direction coincides with the long side direction of the lower housing 11. The lower LCD 12 is disposed at the center of the lower housing 11. The lower LCD 12 is provided on the inner surface (main surface) of the lower housing 11, and the screen of the lower LCD 12 is exposed from an opening provided in the lower housing 11. When the game apparatus 10 is not used, it is possible to prevent the screen of the lower LCD 12 from becoming dirty or damaged by keeping the game apparatus 10 closed. The number of pixels of the lower LCD 12 may be, for example, 256 dots × 192 dots (horizontal × vertical). Unlike the upper LCD 22 described later, the lower LCD 12 is a display device that displays an image in a planar manner (not stereoscopically viewable). In this embodiment, an LCD is used as the display device. For example, an EL (Electro Luminescence) is used.
Any other display device such as a display device using ce (electroluminescence) may be used. Further, as the lower LCD 12, a display device having an arbitrary resolution can be used.

図1に示されるように、ゲーム装置10は、入力装置として、タッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上に装着されている。なお、本実施形態では、タッチパネル13は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。本実施形態では、タッチパネル13として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度が一致している必要はない。また、下側ハウジング11の上側面には挿入口17(図1および図3(d)に示す点線)が設けられている。挿入口17は、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13に対する入力は通常タッチペン28を用いて行われるが、タッチペン28に限らずユーザの指でタッチパネル13に対する入力をすることも可能である。   As shown in FIG. 1, the game apparatus 10 includes a touch panel 13 as an input device. The touch panel 13 is mounted on the screen of the lower LCD 12. In the present embodiment, the touch panel 13 is a resistive film type touch panel. However, the touch panel is not limited to the resistive film type, and any type of touch panel such as a capacitance type can be used. In the present embodiment, the touch panel 13 having the same resolution (detection accuracy) as that of the lower LCD 12 is used. However, the resolution of the touch panel 13 and the resolution of the lower LCD 12 do not necessarily match. An insertion port 17 (dotted line shown in FIGS. 1 and 3D) is provided on the upper side surface of the lower housing 11. The insertion slot 17 can accommodate a touch pen 28 used for performing an operation on the touch panel 13. In addition, although the input with respect to the touchscreen 13 is normally performed using the touch pen 28, it is also possible to input with respect to the touchscreen 13 not only with the touch pen 28 but with a user's finger | toe.

各操作ボタン14A〜14Lは、所定の入力を行うための入力装置である。図1に示されるように、下側ハウジング11の内側面(主面)には、各操作ボタン14A〜14Lのうち、十字ボタン14A(方向入力ボタン14A)、ボタン14B、ボタン14C、ボタン14D、ボタン14E、電源ボタン14F、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lが、設けられる。十字ボタン14Aは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン14B、ボタン14C、ボタン14D、ボタン14Eは、十字状に配置される。ボタン14A〜14E、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lには、ゲーム装置10が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは選択操作等に用いられ、各操作ボタン14B〜14Eは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン14Fは、ゲーム装置10の電源をオン/オフするために用いられる。   Each operation button 14A-14L is an input device for performing a predetermined input. As shown in FIG. 1, on the inner surface (main surface) of the lower housing 11, among the operation buttons 14A to 14L, a cross button 14A (direction input button 14A), a button 14B, a button 14C, a button 14D, A button 14E, a power button 14F, a select button 14J, a HOME button 14K, and a start button 14L are provided. The cross button 14 </ b> A has a cross shape, and has buttons for instructing up, down, left, and right directions. The button 14B, the button 14C, the button 14D, and the button 14E are arranged in a cross shape. Functions according to a program executed by the game apparatus 10 are appropriately assigned to the buttons 14A to 14E, the select button 14J, the HOME button 14K, and the start button 14L. For example, the cross button 14A is used for a selection operation or the like, and the operation buttons 14B to 14E are used for a determination operation or a cancel operation, for example. The power button 14F is used to turn on / off the power of the game apparatus 10.

アナログスティック15は、方向を指示するデバイスであり、下側ハウジング11の内側面の下側LCD12より左側領域の上部領域に設けられる。図1に示すように、十字ボタン14Aは下側LCD12より左側領域の下部領域に設けられるので、アナログスティック15は、十字ボタン14Aの上方に設けられる。また、アナログスティック15、および、十字ボタン14Aは、下側ハウジングを把持した左手の親指で操作可能な位置に設計される。また、アナログスティック15を上部領域に設けたことにより、下側ハウジング11を把持する左手の親指が自然と位置するところにアナログスティック15が配され、十字ボタン14Aは、左手の親指を少し下にずらした位置に配される。アナログスティック15は、そのキートップが、下側ハウジング11の内側面に平行にスライドするように構成されている。アナログスティック15は、ゲーム装置10が実行するプログラムに応じて機能する。例えば、3次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置10によって実行される場合、アナログスティック15は、当該所定のオブジェクトを3次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトはアナログスティック15のキートップがスライドした方向に移動される。なお、アナログスティック15として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いても良い。   The analog stick 15 is a device that indicates a direction, and is provided in an upper area of the left area from the lower LCD 12 of the inner surface of the lower housing 11. As shown in FIG. 1, since the cross button 14A is provided in the lower region on the left side of the lower LCD 12, the analog stick 15 is provided above the cross button 14A. In addition, the analog stick 15 and the cross button 14A are designed to be operable with the thumb of the left hand holding the lower housing. Further, by providing the analog stick 15 in the upper region, the analog stick 15 is arranged where the thumb of the left hand holding the lower housing 11 is naturally positioned, and the cross button 14A has the thumb of the left hand slightly below. Arranged at shifted positions. The analog stick 15 is configured such that its key top slides parallel to the inner surface of the lower housing 11. The analog stick 15 functions according to a program executed by the game apparatus 10. For example, when a game in which a predetermined object appears in the three-dimensional virtual space is executed by the game apparatus 10, the analog stick 15 functions as an input device for moving the predetermined object in the three-dimensional virtual space. In this case, the predetermined object is moved in the direction in which the key top of the analog stick 15 slides. In addition, as the analog stick 15, an analog stick that allows analog input by being tilted by a predetermined amount in any direction of up / down / left / right and oblique directions may be used.

十字状に配置される、ボタン14B、ボタン14C、ボタン14D、ボタン14Eの4つのボタンは、下側ハウジング11を把持する右手の親指が自然と位置するところに配置される。また、これらの4つのボタンと、アナログスティック15とは、下側LCD12を挟んで、左右対称に配置される。これにより、ゲームプログラムによっては、例えば、
左利きの人が、これらの4つのボタンを使用して方向指示入力をすることも可能である。
The four buttons 14B, 14C, 14D, and 14E arranged in a cross shape are arranged where the thumb of the right hand that holds the lower housing 11 is naturally positioned. Also, these four buttons and the analog stick 15 are arranged symmetrically with the lower LCD 12 in between. Thereby, depending on the game program, for example,
It is also possible for a left-handed person to input a direction using these four buttons.

また、下側ハウジング11の内側面には、マイクロフォン用孔18が設けられる。マイクロフォン用孔18の下部には後述する音声入力装置としてのマイク(図6参照)が設けられ、当該マイクがゲーム装置10の外部の音を検出する。   A microphone hole 18 is provided on the inner surface of the lower housing 11. A microphone (see FIG. 6), which will be described later, is provided below the microphone hole 18, and the microphone detects sound outside the game apparatus 10.

図3(a)は閉状態におけるゲーム装置10の左側面図であり、図3(b)は閉状態におけるゲーム装置10の正面図であり、図3(c)は閉状態におけるゲーム装置10の右側面図であり、図3(d)は閉状態におけるゲーム装置10の背面図である。図3(b)および(d)に示されるように、下側ハウジング11の上側面には、Lボタン14GおよびRボタン14Hが設けられている。Lボタン14Gは、下側ハウジング11の上面の左端部に設けられ、Rボタン14Hは、下側ハウジング11の上面の右端部に設けられる。Lボタン14GおよびRボタン14Hは、例えば、撮像部のシャッターボタン(撮影指示ボタン)として機能することができる。また、図3(a)に示されるように、下側ハウジング11の左側面には、音量ボタン14Iが設けられる。音量ボタン14Iは、ゲーム装置10が備えるスピーカの音量を調整するために用いられる。   3A is a left side view of the game apparatus 10 in the closed state, FIG. 3B is a front view of the game apparatus 10 in the closed state, and FIG. 3C is a view of the game apparatus 10 in the closed state. FIG. 3D is a right side view, and FIG. 3D is a rear view of the game apparatus 10 in the closed state. As shown in FIGS. 3B and 3D, an L button 14 </ b> G and an R button 14 </ b> H are provided on the upper side surface of the lower housing 11. The L button 14 </ b> G is provided at the left end portion of the upper surface of the lower housing 11, and the R button 14 </ b> H is provided at the right end portion of the upper surface of the lower housing 11. The L button 14G and the R button 14H can function as, for example, a shutter button (shooting instruction button) of the imaging unit. Further, as shown in FIG. 3A, a volume button 14 </ b> I is provided on the left side surface of the lower housing 11. The volume button 14I is used to adjust the volume of a speaker provided in the game apparatus 10.

図3(a)に示されるように、下側ハウジング11の左側面には開閉可能なカバー部11Cが設けられる。このカバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ45とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ45は、コネクタに着脱自在に装着される。データ保存用外部メモリ45は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。なお、上記コネクタおよびそのカバー部11Cは、下側ハウジング11の右側面に設けられてもよい。   As shown in FIG. 3A, an openable / closable cover portion 11 </ b> C is provided on the left side surface of the lower housing 11. A connector (not shown) for electrically connecting the game apparatus 10 and the data storage external memory 45 is provided inside the cover portion 11C. The data storage external memory 45 is detachably attached to the connector. The data storage external memory 45 is used, for example, for storing (saving) data of an image captured by the game apparatus 10. The connector and its cover portion 11 </ b> C may be provided on the right side surface of the lower housing 11.

また、図3(d)に示されるように、下側ハウジング11の上側面には、ゲーム装置10とゲームプログラムを記録した外部メモリ44を挿入するための挿入口11Dが設けられ、その挿入口11Dの内部には、外部メモリ44と電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。当該外部メモリ44がゲーム装置10に接続されることにより、所定のゲームプログラムが実行される。なお、上記コネクタおよびその挿入口11Dは、下側ハウジング11の他の側面(例えば、右側面等)に設けられてもよい。   As shown in FIG. 3D, an insertion port 11D for inserting the game apparatus 10 and an external memory 44 in which a game program is recorded is provided on the upper side surface of the lower housing 11, and the insertion port Inside the 11D, a connector (not shown) for electrically detachably connecting to the external memory 44 is provided. When the external memory 44 is connected to the game apparatus 10, a predetermined game program is executed. The connector and its insertion port 11D may be provided on the other side surface of the lower housing 11 (for example, the right side surface).

また、図1および図3(c)に示されるように、下側ハウジング11の下側面にはゲーム装置10の電源のON/OFF状況をユーザに通知する第1LED16A、下側ハウジング11の右側面にはゲーム装置10の無線通信の確立状況をユーザに通知する第2LED16Bが設けられる。ゲーム装置10は他の機器との間で無線通信を行うことが可能であり、第1LED16Bは、無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチ19が設けられる(図3(c)参照)。   Further, as shown in FIG. 1 and FIG. 3C, on the lower side surface of the lower housing 11, the first LED 16A for notifying the user of the power ON / OFF state of the game apparatus 10 and the right side surface of the lower housing 11 Is provided with a second LED 16B for notifying the user of the wireless communication establishment status of the game apparatus 10. The game apparatus 10 can perform wireless communication with other devices, and the first LED 16B lights up when wireless communication is established. The game apparatus 10 is, for example, IEEE 802.11. It has a function of connecting to a wireless LAN by a method compliant with the b / g standard. A wireless switch 19 for enabling / disabling this wireless communication function is provided on the right side surface of the lower housing 11 (see FIG. 3C).

なお、図示は省略するが、下側ハウジング11には、ゲーム装置10の電源となる充電式電池が収納され、下側ハウジング11の側面(例えば、上側面)に設けられた端子を介して当該電池を充電することができる。   Although not shown, the lower housing 11 stores a rechargeable battery that serves as a power source for the game apparatus 10, and the terminal is provided via a terminal provided on a side surface (for example, the upper side surface) of the lower housing 11. The battery can be charged.

(上側ハウジングの説明)
次に、上側ハウジング21の構成について説明する。図1〜図3に示すように、上側ハウジング21には、上側LCD(Liquid Crystal Display:液晶表示装置)22、外側撮像部23(外側撮像部(左)23aおよび外側撮像部(右)23b)、内側撮像部24、3D調整スイッチ25、および、3Dインジケータ26が設けら
れる。以下、これらの詳細について説明する。
(Description of upper housing)
Next, the configuration of the upper housing 21 will be described. As shown in FIGS. 1 to 3, the upper housing 21 includes an upper LCD (Liquid Crystal Display) 22, an outer imaging unit 23 (an outer imaging unit (left) 23a and an outer imaging unit (right) 23b). , An inner imaging unit 24, a 3D adjustment switch 25, and a 3D indicator 26 are provided. Details of these will be described below.

図1に示すように、上側LCD22は上側ハウジング21に収納される。上側LCD22は、横長形状であり、長辺方向が上側ハウジング21の長辺方向に一致するように配置される。上側LCD22は上側ハウジング21の中央に配置される。上側LCD22の画面の面積は、下側LCD12の画面の面積よりも大きく設定される。また、上側LCD22の画面は、下側LCD12の画面よりも横長に設定される。すなわち、上側LCD22の画面のアスペクト比における横幅の割合は、下側LCD12の画面のアスペクト比における横幅の割合よりも大きく設定される。   As shown in FIG. 1, the upper LCD 22 is accommodated in the upper housing 21. The upper LCD 22 has a horizontally long shape and is arranged such that the long side direction coincides with the long side direction of the upper housing 21. The upper LCD 22 is disposed in the center of the upper housing 21. The area of the screen of the upper LCD 22 is set larger than the area of the screen of the lower LCD 12. Further, the screen of the upper LCD 22 is set to be horizontally longer than the screen of the lower LCD 12. That is, the ratio of the horizontal width in the aspect ratio of the screen of the upper LCD 22 is set larger than the ratio of the horizontal width in the aspect ratio of the screen of the lower LCD 12.

上側LCD22の画面は、上側ハウジング21の内側面(主面)21Bに設けられ、上側ハウジング21に設けられた開口部から当該上側LCD22の画面が露出される。また、図2に示すように、上側ハウジング21の内側面は、透明なスクリーンカバー27によって覆われている。当該スクリーンカバー27は、上側LCD22の画面を保護するとともに、上側LCD22と上側ハウジング21の内側面と一体的にさせ、これにより統一感を持たせている。上側LCD22の画素数は、例えば、640dot×200dot(横×縦)であってもよい。なお、本実施形態では上側LCD22は液晶表示装置であるとしたが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。   The screen of the upper LCD 22 is provided on the inner surface (main surface) 21 </ b> B of the upper housing 21, and the screen of the upper LCD 22 is exposed from an opening provided in the upper housing 21. As shown in FIG. 2, the inner surface of the upper housing 21 is covered with a transparent screen cover 27. The screen cover 27 protects the screen of the upper LCD 22 and is integrated with the upper LCD 22 and the inner surface of the upper housing 21, thereby providing a sense of unity. The number of pixels of the upper LCD 22 may be, for example, 640 dots × 200 dots (horizontal × vertical). In the present embodiment, the upper LCD 22 is a liquid crystal display device. However, for example, a display device using EL (Electro Luminescence) may be used. In addition, a display device having an arbitrary resolution can be used as the upper LCD 22.

上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。また、本実施例では、実質的に同一の表示領域を用いて左目用画像と右目用画像が表示される。具体的には、左目用画像と右目用画像が所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。または、左目用画像と右目用画像とが交互に表示される方式の表示装置であってもよい。また、本実施例では、裸眼立体視可能な表示装置である。そして、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、上側LCD22はパララックスバリア方式のものとする。上側LCD22は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像(立体画像)を表示する。すなわち、上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像を視認させることにより、ユーザにとって立体感のある立体画像(立体視可能な画像)を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる(上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである)。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する3D調整スイッチ25によって行われる。   The upper LCD 22 is a display device capable of displaying a stereoscopically visible image. In the present embodiment, the left-eye image and the right-eye image are displayed using substantially the same display area. Specifically, the display device uses a method in which a left-eye image and a right-eye image are alternately displayed in a horizontal direction in a predetermined unit (for example, one column at a time). Alternatively, a display device of a type in which the left-eye image and the right-eye image are alternately displayed may be used. In this embodiment, the display device is capable of autostereoscopic viewing. A lenticular method or a parallax barrier method (parallax barrier method) is used so that the left-eye image and the right-eye image that are alternately displayed in the horizontal direction appear to be decomposed into the left eye and the right eye, respectively. In the present embodiment, the upper LCD 22 is a parallax barrier type. The upper LCD 22 uses the right-eye image and the left-eye image to display an image (stereoscopic image) that can be stereoscopically viewed with the naked eye. In other words, the upper LCD 22 displays a stereoscopic image (stereoscopically viewable) having a stereoscopic effect for the user by using the parallax barrier to make the left eye image visible to the user's left eye and the right eye image to the user's right eye. be able to. Further, the upper LCD 22 can invalidate the parallax barrier. When the parallax barrier is invalidated, the upper LCD 22 can display an image in a planar manner (in the sense opposite to the above-described stereoscopic view, the planar LCD is planar). (This is a display mode in which the same displayed image can be seen by both the right eye and the left eye). As described above, the upper LCD 22 is a display device capable of switching between a stereoscopic display mode for displaying a stereoscopically viewable image and a planar display mode for displaying an image in a planar manner (displaying a planar view image). . This display mode switching is performed by a 3D adjustment switch 25 described later.

外側撮像部23は、上側ハウジング21の外側面(上側LCD22が設けられた主面と反対側の背面)21Dに設けられた2つの撮像部(23aおよび23b)の総称である。外側撮像部(左)23aと外側撮像部(右)23bの撮像方向は、いずれも当該外側面21Dの外向きの法線方向である。また、これらの撮像部はいずれも、上側LCD22の表示面(内側面)の法線方向と180度反対の方向に設計される。すなわち、外側撮像部(左)23aの撮像方向および外側撮像部(右)23bの撮像方向は、平行である。外側撮像部(左)23aと外側撮像部(右)23bとは、ゲーム装置10が実行するプログラムによって、ステレオカメラとして使用することが可能である。また、プログラムによっては、2つの外側撮像部(23aおよび23b)のいずれか一方を単独で用いて、外側撮像
部23を非ステレオカメラとして使用することも可能である。また、プログラムによっては、2つの外側撮像部(23aおよび23b)で撮像した画像を合成してまたは補完的に使用することにより撮像範囲を広げた撮像をおこなうことも可能である。本実施形態では、外側撮像部23は、外側撮像部(左)23aおよび外側撮像部(右)23bの2つの撮像部で構成される。外側撮像部(左)23aおよび外側撮像部(右)23bは、それぞれ所定の共通の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
The outer imaging unit 23 is a general term for two imaging units (23 a and 23 b) provided on the outer surface (back surface opposite to the main surface on which the upper LCD 22 is provided) 21 D of the upper housing 21. The imaging directions of the outer imaging unit (left) 23a and the outer imaging unit (right) 23b are both normal directions of the outer surface 21D. Further, all of these imaging units are designed in a direction 180 degrees opposite to the normal direction of the display surface (inner side surface) of the upper LCD 22. That is, the imaging direction of the outer imaging unit (left) 23a and the imaging direction of the outer imaging unit (right) 23b are parallel. The outer imaging unit (left) 23a and the outer imaging unit (right) 23b can be used as a stereo camera by a program executed by the game apparatus 10. Further, depending on the program, it is possible to use one of the two outer imaging units (23a and 23b) alone and use the outer imaging unit 23 as a non-stereo camera. Further, depending on the program, it is possible to perform imaging with an expanded imaging range by combining or complementarily using images captured by the two outer imaging units (23a and 23b). In the present embodiment, the outer imaging unit 23 includes two imaging units, an outer imaging unit (left) 23a and an outer imaging unit (right) 23b. The outer imaging unit (left) 23a and the outer imaging unit (right) 23b each include an imaging element (for example, a CCD image sensor or a CMOS image sensor) having a predetermined common resolution and a lens. The lens may have a zoom mechanism.

図1の破線および図3(b)の実線で示されるように、外側撮像部23を構成する外側撮像部(左)23aおよび外側撮像部(右)23bは、上側LCD22の画面の横方向と平行に並べられて配置される。すなわち、2つの撮像部を結んだ直線が上側LCD22の画面の横方向と平行になるように、外側撮像部(左)23aおよび外側撮像部(右)23bが配置される。図1の破線で示す23aおよび23bは、上側ハウジング21の内側面とは反対側の外側面に存在する外側撮像部(左)23aおよび外側撮像部(右)23bをそれぞれ表している。図1に示すように、ユーザが上側LCD22の画面を正面から視認した場合に、外側撮像部(左)23aは左側に外側撮像部(右)23bは右側にそれぞれ位置している。外側撮像部23をステレオカメラとして機能させるプログラムが実行されている場合、外側撮像部(左)23aは、ユーザの左目で視認される左目用画像を撮像し、外側撮像部(右)23bは、ユーザの右目で視認される右目用画像を撮像する。外側撮像部(左)23aおよび外側撮像部(右)23bの間隔は、人間の両目の間隔程度に設定され、例えば、30mm〜70mmの範囲で設定されてもよい。なお、外側撮像部(左)23aおよび外側撮像部(右)23bの間隔は、この範囲に限らない。   As indicated by the broken line in FIG. 1 and the solid line in FIG. 3B, the outer imaging unit (left) 23 a and the outer imaging unit (right) 23 b that constitute the outer imaging unit 23 are arranged in the horizontal direction of the screen of the upper LCD 22. Arranged in parallel. That is, the outer imaging unit (left) 23a and the outer imaging unit (right) 23b are arranged so that a straight line connecting the two imaging units is parallel to the horizontal direction of the screen of the upper LCD 22. 1 indicate the outer imaging unit (left) 23a and the outer imaging unit (right) 23b existing on the outer surface opposite to the inner surface of the upper housing 21, respectively. As shown in FIG. 1, when the user views the screen of the upper LCD 22 from the front, the outer imaging unit (left) 23a is positioned on the left side and the outer imaging unit (right) 23b is positioned on the right side. When a program that causes the outer imaging unit 23 to function as a stereo camera is executed, the outer imaging unit (left) 23a captures an image for the left eye that is visually recognized by the user's left eye, and the outer imaging unit (right) 23b A right-eye image that is visually recognized by the user's right eye is captured. The interval between the outer imaging unit (left) 23a and the outer imaging unit (right) 23b is set to be approximately the interval between both eyes of the human, and may be set in a range of 30 mm to 70 mm, for example. In addition, the space | interval of the outer side imaging part (left) 23a and the outer side imaging part (right) 23b is not restricted to this range.

なお、本実施例においては、外側撮像部(左)23aおよび外側撮像部(右)23はハウジングに固定されており、撮像方向を変更することはできない。   In the present embodiment, the outer imaging unit (left) 23a and the outer imaging unit (right) 23 are fixed to the housing, and the imaging direction cannot be changed.

また、外側撮像部(左)23aおよび外側撮像部(右)23bは、上側LCD22(上側ハウジング21)の左右方向に関して中央から対称となる位置にそれぞれ配置される。すなわち、外側撮像部(左)23aおよび外側撮像部(右)23bは、上側LCD22を左右に2等分する線に対して対称の位置にそれぞれ配置される。また、外側撮像部(左)23aおよび外側撮像部(右)23bは、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方の位置の裏側に配置される。すなわち、外側撮像部(左)23aおよび外側撮像部(右)23bは、上側ハウジング21の外側面であって、上側LCD22を外側面に投影した場合、投影した上側LCD22の画面の上端よりも上方に配置される。   Further, the outer imaging unit (left) 23a and the outer imaging unit (right) 23b are respectively arranged at positions symmetrical from the center with respect to the left-right direction of the upper LCD 22 (upper housing 21). That is, the outer imaging unit (left) 23a and the outer imaging unit (right) 23b are respectively arranged at symmetrical positions with respect to a line dividing the upper LCD 22 into two equal parts. In addition, the outer imaging unit (left) 23a and the outer imaging unit (right) 23b are on the upper side of the upper housing 21 in a state where the upper housing 21 is opened, and on the back side of the upper side of the screen of the upper LCD 22. Placed in. That is, the outer imaging unit (left) 23a and the outer imaging unit (right) 23b are the outer surfaces of the upper housing 21, and when the upper LCD 22 is projected on the outer surface, the upper image 22 is higher than the upper end of the projected upper LCD 22 screen. Placed in.

このように、外側撮像部23の2つの撮像部(23aおよび23b)が、上側LCD22の左右方向に関して中央から対称の位置に配置されることにより、ユーザが上側LCD22を正視した場合に、外側撮像部23の撮像方向をユーザの視線方向と一致させることができる。また、外側撮像部23は、上側LCD22の画面の上端より上方の裏側の位置に配置されるため、外側撮像部23と上側LCD22とが上側ハウジング21の内部で干渉することがない。従って、外側撮像部23を上側LCD22の画面の裏側に配置する場合と比べて、上側ハウジング21を薄く構成することが可能となる。   As described above, the two image pickup units (23a and 23b) of the outer image pickup unit 23 are arranged at symmetrical positions from the center with respect to the left-right direction of the upper LCD 22, so that when the user views the upper LCD 22 from the front, the outer image pickup is performed. The imaging direction of the unit 23 can be matched with the user's line-of-sight direction. Further, since the outer imaging unit 23 is disposed at a position on the back side above the upper end of the screen of the upper LCD 22, the outer imaging unit 23 and the upper LCD 22 do not interfere inside the upper housing 21. Accordingly, it is possible to make the upper housing 21 thinner than in the case where the outer imaging unit 23 is disposed on the back side of the screen of the upper LCD 22.

内側撮像部24は、上側ハウジング21の内側面(主面)21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。   The inner imaging unit 24 is an imaging unit that is provided on the inner side surface (main surface) 21B of the upper housing 21 and has an inward normal direction of the inner side surface as an imaging direction. The inner imaging unit 24 includes an imaging element (for example, a CCD image sensor or a CMOS image sensor) having a predetermined resolution, and a lens. The lens may have a zoom mechanism.

図1に示すように、内側撮像部24は、上側ハウジング21を開いた状態において、上
側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方に配置され、上側ハウジング21の左右方向に関して中央の位置(上側ハウジング21(上側LCD22の画面)を左右に2等分する線の線上)に配置される。具体的には、図1および図3(b)に示されるように、内側撮像部24は、上側ハウジング21の内側面であって、外側撮像部23の左右の撮像部(外側撮像部(左)23aおよび外側撮像部(右)23b)の中間の裏側の位置に配置される。すなわち、上側ハウジング21の外側面に設けられた外側撮像部23の左右の撮像部を上側ハウジング21の内側面に投影した場合、当該投影した左右の撮像部の中間に、内側撮像部24が設けられる。図3(b)で示される破線24は、上側ハウジング21の内側面に存在する内側撮像部24を表している。
As shown in FIG. 1, the inner imaging unit 24 is disposed above the upper end of the upper LCD 22 and in the left-right direction of the upper housing 21 when the upper housing 21 is opened. Is arranged at the center position (on the line dividing the upper housing 21 (the screen of the upper LCD 22) into left and right halves). Specifically, as shown in FIG. 1 and FIG. 3B, the inner imaging unit 24 is an inner surface of the upper housing 21, and the left and right imaging units (outer imaging unit (left ) 23a and the outer imaging unit (right) 23b) are arranged at positions on the back side in the middle. That is, when the left and right imaging units of the outer imaging unit 23 provided on the outer surface of the upper housing 21 are projected onto the inner surface of the upper housing 21, the inner imaging unit 24 is provided in the middle of the projected left and right imaging units. It is done. A broken line 24 shown in FIG. 3B represents the inner imaging unit 24 existing on the inner surface of the upper housing 21.

このように、内側撮像部24は、外側撮像部23とは反対方向を撮像する。内側撮像部24は、上側ハウジング21の内側面であって、外側撮像部23の左右の撮像部の中間位置の裏側に設けられる。これにより、ユーザが上側LCD22を正視した際、内側撮像部24でユーザの顔を正面から撮像することができる。また、外側撮像部23の左右の撮像部と内側撮像部24とが上側ハウジング21の内部で干渉することがないため、上側ハウジング21を薄く構成することが可能となる。   Thus, the inner imaging unit 24 images in the opposite direction to the outer imaging unit 23. The inner imaging unit 24 is provided on the inner surface of the upper housing 21 and on the back side of the intermediate position between the left and right imaging units of the outer imaging unit 23. Thereby, when the user views the upper LCD 22 from the front, the inner imaging unit 24 can capture the user's face from the front. Further, since the left and right imaging units of the outer imaging unit 23 and the inner imaging unit 24 do not interfere inside the upper housing 21, the upper housing 21 can be configured to be thin.

3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。図1〜図3に示されるように、3D調整スイッチ25は、上側ハウジング21の内側面および右側面の端部に設けられ、ユーザが上側LCD22を正視した場合に、当該3D調整スイッチ25を視認できる位置に設けられる。また、3D調整スイッチ25の操作部は、内側面および右側面の両方に突出しており、どちらからも視認および操作することができる。なお、3D調整スイッチ25以外のスイッチは全て下側ハウジング11に設けられる。   The 3D adjustment switch 25 is a slide switch, and is a switch used to switch the display mode of the upper LCD 22 as described above. The 3D adjustment switch 25 is used to adjust the stereoscopic effect of a stereoscopically viewable image (stereoscopic image) displayed on the upper LCD 22. As shown in FIGS. 1 to 3, the 3D adjustment switch 25 is provided on the inner side surface and the right side end of the upper housing 21, and when the user views the upper LCD 22 from the front, the 3D adjustment switch 25 is visually recognized. It is provided at a position where it can be made. Moreover, the operation part of 3D adjustment switch 25 protrudes in both the inner surface and the right side surface, and can be visually recognized and operated from both. All switches other than the 3D adjustment switch 25 are provided in the lower housing 11.

図4は、図1に示す上側ハウジング21のA−A’線断面図である。図4に示すように、上側ハウジング21の内側面の右端部には、凹部21Cが形成され、当該凹部21Cに3D調整スイッチ25が設けられる。3D調整スイッチ25は、図1および図2に示されるように、上側ハウジング21の正面および右側面から視認可能に配置される。3D調整スイッチ25のスライダ25aは、所定方向(上下方向)の任意の位置にスライド可能であり、当該スライダ25aの位置に応じて上側LCD22の表示モードが設定される。   FIG. 4 is a cross-sectional view taken along line A-A ′ of the upper housing 21 shown in FIG. 1. As shown in FIG. 4, a recess 21C is formed at the right end of the inner surface of the upper housing 21, and a 3D adjustment switch 25 is provided in the recess 21C. As shown in FIGS. 1 and 2, the 3D adjustment switch 25 is disposed so as to be visible from the front surface and the right side surface of the upper housing 21. The slider 25a of the 3D adjustment switch 25 can be slid to an arbitrary position in a predetermined direction (vertical direction), and the display mode of the upper LCD 22 is set according to the position of the slider 25a.

図5Aから図5Cは、3D調整スイッチ25のスライダ25aがスライドする様子を示す図である。図5Aは、3D調整スイッチ25のスライダ25aが最下点(第3の位置)に存在する様子を示す図である。図5Bは、3D調整スイッチ25のスライダ25aが最下点よりも上方位置(第1の位置)に存在する様子を示す図である。図5Cは、3D調整スイッチ25のスライダ25aが最上点(第2の位置)に存在する様子を示す図である。   5A to 5C are diagrams illustrating a state in which the slider 25a of the 3D adjustment switch 25 slides. FIG. 5A is a diagram illustrating a state in which the slider 25a of the 3D adjustment switch 25 is present at the lowest point (third position). FIG. 5B is a diagram illustrating a state in which the slider 25a of the 3D adjustment switch 25 is present at a position above the lowest point (first position). FIG. 5C is a diagram illustrating a state in which the slider 25a of the 3D adjustment switch 25 exists at the uppermost point (second position).

図5Aに示すように、3D調整スイッチ25のスライダ25aが最下点位置(第3の位置)に存在する場合、上側LCD22は平面表示モードに設定され、上側LCD22の画面には平面画像が表示される(なお、上側LCD22を立体表示モードのままとして、左目用画像と右目用画像を同一の画像とすることにより平面表示してもよい)。一方、図5Bに示す位置(最下点より上側の位置(第1の位置))から図5Cに示す位置(最上点の位置(第2の位置))までの間にスライダ25aが存在する場合、上側LCD22は立体表示モードに設定される。この場合、上側LCD22の画面には立体視可能な画像が表示される。スライダ25aが第1の位置から第2の位置の間に存在する場合、スライダ25aの位置に応じて、立体画像の見え方が調整される。具体的には、スライダ25aの位置に応じて、右目用画像および左目用画像の横方向の位置のずれ量が調整される。3D調整
スイッチ25のスライダ25aは、第3の位置で固定されるように構成されており、第1の位置と第2の位置との間では上下方向に任意の位置にスライド可能に構成されている。例えば、スライダ25aは、第3の位置において、3D調整スイッチ25を形成する側面から図5Aに示す横方向に突出した凸部(図示せず)によって固定されて、所定以上の力が上方に加わらないと第3の位置よりも上方にスライドしないように構成されている。第3の位置から第1の位置にスライダ25aが存在する場合、立体画像の見え方は調整されないが、これはいわゆるあそびである。他の例においては、あそびをなくして、第3の位置と第1の位置とを同じ位置としてもよい。また、第3の位置を第1の位置と第2の位置の間としてもよい。その場合、スライダを第3の位置から第1の位置の方向に動かした場合と、第2の方向に動かした場合とで、右目用画像および左目用画像の横方向の位置のずれ量の調整する方向が逆になる。
As shown in FIG. 5A, when the slider 25a of the 3D adjustment switch 25 exists at the lowest point position (third position), the upper LCD 22 is set to the flat display mode, and a flat image is displayed on the screen of the upper LCD 22. (Alternatively, the upper LCD 22 may remain in the stereoscopic display mode, and the left-eye image and the right-eye image may be displayed as a flat image by making them the same image). On the other hand, when the slider 25a exists between the position shown in FIG. 5B (position above the lowest point (first position)) and the position shown in FIG. 5C (position of the highest point (second position)). The upper LCD 22 is set to the stereoscopic display mode. In this case, a stereoscopically viewable image is displayed on the screen of the upper LCD 22. When the slider 25a exists between the first position and the second position, the appearance of the stereoscopic image is adjusted according to the position of the slider 25a. Specifically, the shift amount of the horizontal position of the right-eye image and the left-eye image is adjusted according to the position of the slider 25a. The slider 25a of the 3D adjustment switch 25 is configured to be fixed at the third position, and is configured to be slidable to an arbitrary position in the vertical direction between the first position and the second position. Yes. For example, in the third position, the slider 25a is fixed by a convex portion (not shown) protruding laterally as shown in FIG. 5A from the side surface forming the 3D adjustment switch 25, and a predetermined force or more is applied upward. Otherwise, it is configured not to slide upward from the third position. When the slider 25a exists from the third position to the first position, the appearance of the stereoscopic image is not adjusted, but this is so-called play. In another example, play may be eliminated and the third position and the first position may be the same position. Further, the third position may be between the first position and the second position. In that case, the amount of shift in the lateral position of the right-eye image and the left-eye image is adjusted depending on whether the slider is moved from the third position to the first position or in the second direction. The direction to do is reversed.

3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。なお、3Dインジケータ26は、上側LCD22が立体表示モードになっており、かつ、立体視画像を表示するプログラム処理が実行されているとき(すなわち、3D調整スイッチが上記第1の位置から上記第2の位置にあるときに、左目用画像と右目用画像が異なるような画像処理が実行されているとき)に限り、点灯するようにしてもよい。図1に示されるように、3Dインジケータ26は、上側ハウジング21の内側面に設けられ、上側LCD22の画面近傍に設けられる。このため、ユーザが上側LCD22の画面を正視した場合、ユーザは3Dインジケータ26を視認しやすい。従って、ユーザは上側LCD22の画面を視認している状態でも、上側LCD22の表示モードを容易に認識することができる。   The 3D indicator 26 indicates whether or not the upper LCD 22 is in the stereoscopic display mode. The 3D indicator 26 is an LED, and lights up when the stereoscopic display mode of the upper LCD 22 is valid. The 3D indicator 26 is displayed when the upper LCD 22 is in the stereoscopic display mode and a program process for displaying a stereoscopic image is being executed (that is, the 3D adjustment switch is moved from the first position to the second position). (When image processing is performed such that the left-eye image and the right-eye image are different from each other), the light may be turned on. As shown in FIG. 1, the 3D indicator 26 is provided on the inner surface of the upper housing 21 and is provided near the screen of the upper LCD 22. For this reason, when the user views the screen of the upper LCD 22 from the front, the user can easily view the 3D indicator 26. Therefore, the user can easily recognize the display mode of the upper LCD 22 even when the user is viewing the screen of the upper LCD 22.

また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられる。後述するスピーカ43からの音声がこのスピーカ孔21Eから出力される。   A speaker hole 21 </ b> E is provided on the inner surface of the upper housing 21. Sound from a speaker 43 described later is output from the speaker hole 21E.

(ゲーム装置10の内部構成)
次に、図6を参照して、ゲーム装置10の内部の電気的構成について説明する。図6は、ゲーム装置10の内部構成を示すブロック図である。図6に示すように、ゲーム装置10は、上述した各部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、電源回路40、およびインターフェイス回路(I/F回路)41等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
(Internal configuration of game device 10)
Next, with reference to FIG. 6, an internal electrical configuration of the game apparatus 10 will be described. FIG. 6 is a block diagram showing an internal configuration of the game apparatus 10. As shown in FIG. 6, in addition to the above-described units, the game apparatus 10 includes an information processing unit 31, a main memory 32, an external memory interface (external memory I / F) 33, an external memory I / F 34 for data storage, data It includes electronic components such as an internal memory 35 for storage, a wireless communication module 36, a local communication module 37, a real time clock (RTC) 38, an acceleration sensor 39, a power supply circuit 40, and an interface circuit (I / F circuit) 41. These electronic components are mounted on an electronic circuit board and accommodated in the lower housing 11 (or the upper housing 21).

情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312等を含む情報処理手段である。情報処理部31のCPU311は、ゲーム装置10内のメモリ(例えば外部メモリI/F33に接続された外部メモリ44やデータ保存用内部メモリ35)に記憶されているプログラムを実行することによって、当該プログラムに応じた処理(例えば、撮影処理や、後述する画像表示処理)を実行する。なお、情報処理部31のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部31は、VRAM(Video RAM)313を含む。情報処理部31のGPU312は、情報処理部31のCPU311からの命令に応じて画像を生成し、VRAM313に描画する。そして、情報処理部31のGPU312は、VRAM313に描画された画像を上側LCD22及び/又は下側LCD12に出力し、上側LCD22及び/又は下側LCD12に
当該画像が表示される。
The information processing unit 31 is information processing means including a CPU (Central Processing Unit) 311 for executing a predetermined program, a GPU (Graphics Processing Unit) 312 for performing image processing, and the like. The CPU 311 of the information processing unit 31 executes the program stored in a memory (for example, the external memory 44 connected to the external memory I / F 33 or the data storage internal memory 35) in the game apparatus 10, thereby executing the program. Processing (for example, shooting processing or image display processing described later) according to the above is executed. Note that the program executed by the CPU 311 of the information processing unit 31 may be acquired from another device through communication with the other device. The information processing unit 31 includes a VRAM (Video RAM) 313. The GPU 312 of the information processing unit 31 generates an image in response to a command from the CPU 311 of the information processing unit 31 and draws it on the VRAM 313. Then, the GPU 312 of the information processing unit 31 outputs the image drawn in the VRAM 313 to the upper LCD 22 and / or the lower LCD 12, and the image is displayed on the upper LCD 22 and / or the lower LCD 12.

情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、および、データ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ44を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ45を着脱自在に接続するためのインターフェイスである。   A main memory 32, an external memory I / F 33, a data storage external memory I / F 34, and a data storage internal memory 35 are connected to the information processing section 31. The external memory I / F 33 is an interface for detachably connecting the external memory 44. The data storage external memory I / F 34 is an interface for detachably connecting the data storage external memory 45.

メインメモリ32は、情報処理部31(のCPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、上記プログラムに基づく処理に用いられる各種データを一時的に記憶したり、外部(外部メモリ44や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。   The main memory 32 is a volatile storage unit used as a work area or a buffer area of the information processing unit 31 (the CPU 311). That is, the main memory 32 temporarily stores various data used for the processing based on the program, or temporarily stores a program acquired from the outside (such as the external memory 44 or another device). In the present embodiment, for example, a PSRAM (Pseudo-SRAM) is used as the main memory 32.

外部メモリ44は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ44は、例えば読み取り専用の半導体メモリで構成される。外部メモリ44が外部メモリI/F33に接続されると、情報処理部31は外部メモリ44に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ45は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ45には、外側撮像部23で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ45がデータ保存用外部メモリI/F34に接続されると、情報処理部31はデータ保存用外部メモリ45に記憶された画像を読み込み、上側LCD22及び/又は下側LCD12に当該画像を表示することができる。   The external memory 44 is a nonvolatile storage unit for storing a program executed by the information processing unit 31. The external memory 44 is composed of, for example, a read-only semiconductor memory. When the external memory 44 is connected to the external memory I / F 33, the information processing section 31 can read a program stored in the external memory 44. A predetermined process is performed by executing the program read by the information processing unit 31. The data storage external memory 45 is composed of a non-volatile readable / writable memory (for example, a NAND flash memory), and is used for storing predetermined data. For example, the data storage external memory 45 stores an image captured by the outer imaging unit 23 or an image captured by another device. When the data storage external memory 45 is connected to the data storage external memory I / F 34, the information processing section 31 reads an image stored in the data storage external memory 45 and applies the image to the upper LCD 22 and / or the lower LCD 12. An image can be displayed.

データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。   The data storage internal memory 35 is configured by a readable / writable nonvolatile memory (for example, a NAND flash memory), and is used for storing predetermined data. For example, the data storage internal memory 35 stores data and programs downloaded by wireless communication via the wireless communication module 36.

無線通信モジュール36は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(例えば独自プロトコルによる通信や、赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36およびローカル通信モジュール37は情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。   The wireless communication module 36 is, for example, IEEE 802.11. It has a function of connecting to a wireless LAN by a method compliant with the b / g standard. Further, the local communication module 37 has a function of performing wireless communication with the same type of game device by a predetermined communication method (for example, communication using a unique protocol or infrared communication). The wireless communication module 36 and the local communication module 37 are connected to the information processing unit 31. The information processing unit 31 transmits / receives data to / from other devices via the Internet using the wireless communication module 36, and transmits / receives data to / from other game devices of the same type using the local communication module 37. You can do it.

また、情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。加速度センサ39は、下側ハウジング11の内部に設けられる。加速度センサ39は、図1に示すように、下側ハウジング11の長辺方向をx軸、下側ハウジング11の短辺方向をy軸、下側ハウジング11の内側面(主面)に対して垂直な方向をz軸として、各軸の直線加速度の大きさを検出する。なお、加速度センサ39は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ39は1軸又は2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受信して、ゲーム装置10の姿勢や動きを検出することができる。   An acceleration sensor 39 is connected to the information processing unit 31. The acceleration sensor 39 detects the magnitude of linear acceleration (linear acceleration) along the three-axis (xyz-axis) direction. The acceleration sensor 39 is provided inside the lower housing 11. As shown in FIG. 1, the acceleration sensor 39 is configured such that the long side direction of the lower housing 11 is the x axis, the short side direction of the lower housing 11 is the y axis, and the inner side surface (main surface) of the lower housing 11. With the vertical direction as the z axis, the magnitude of linear acceleration on each axis is detected. The acceleration sensor 39 is, for example, an electrostatic capacitance type acceleration sensor, but other types of acceleration sensors may be used. The acceleration sensor 39 may be an acceleration sensor that detects a uniaxial or biaxial direction. The information processing unit 31 can detect data indicating the acceleration detected by the acceleration sensor 39 (acceleration data) and detect the attitude and movement of the game apparatus 10.

また、情報処理部31には、RTC38および電源回路40が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路40は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。   Further, the RTC 38 and the power supply circuit 40 are connected to the information processing unit 31. The RTC 38 counts the time and outputs it to the information processing unit 31. The information processing unit 31 calculates the current time (date) based on the time counted by the RTC 38. The power supply circuit 40 controls power from a power source (the rechargeable battery housed in the lower housing 11) of the game apparatus 10 and supplies power to each component of the game apparatus 10.

また、情報処理部31には、I/F回路41が接続される。I/F回路41には、マイク42およびスピーカ43が接続される。具体的には、I/F回路41には、図示しないアンプを介してスピーカ43が接続される。マイク42は、ユーザの音声を検知して音声信号をI/F回路41に出力する。アンプは、I/F回路41からの音声信号を増幅し、音声をスピーカ43から出力させる。また、タッチパネル13はI/F回路41に接続される。I/F回路41は、マイク42およびスピーカ43(アンプ)の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部31に出力する。タッチ位置データは、タッチパネル13の入力面において入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。情報処理部31は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われた位置を知ることができる。   In addition, an I / F circuit 41 is connected to the information processing unit 31. A microphone 42 and a speaker 43 are connected to the I / F circuit 41. Specifically, a speaker 43 is connected to the I / F circuit 41 via an amplifier (not shown). The microphone 42 detects the user's voice and outputs a voice signal to the I / F circuit 41. The amplifier amplifies the audio signal from the I / F circuit 41 and outputs the audio from the speaker 43. The touch panel 13 is connected to the I / F circuit 41. The I / F circuit 41 includes a voice control circuit that controls the microphone 42 and the speaker 43 (amplifier), and a touch panel control circuit that controls the touch panel. The voice control circuit performs A / D conversion and D / A conversion on the voice signal, or converts the voice signal into voice data of a predetermined format. The touch panel control circuit generates touch position data in a predetermined format based on a signal from the touch panel 13 and outputs it to the information processing unit 31. The touch position data indicates the coordinates of the position where the input is performed on the input surface of the touch panel 13. The touch panel control circuit reads signals from the touch panel 13 and generates touch position data at a rate of once per predetermined time. The information processing unit 31 can know the position where the input is performed on the touch panel 13 by acquiring the touch position data.

操作ボタン14は、上記各操作ボタン14A〜14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に従った処理を実行する。   The operation button 14 includes the operation buttons 14 </ b> A to 14 </ b> L and is connected to the information processing unit 31. From the operation button 14 to the information processing section 31, operation data indicating the input status (whether or not the button is pressed) for each of the operation buttons 14A to 14I is output. The information processing unit 31 acquires the operation data from the operation button 14 to execute processing according to the input to the operation button 14.

下側LCD12および上側LCD22は情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(のGPU312)の指示に従って画像を表示する。本実施形態では、情報処理部31は、上側LCD22に立体画像(立体視可能な画像)を表示させる。   The lower LCD 12 and the upper LCD 22 are connected to the information processing unit 31. The lower LCD 12 and the upper LCD 22 display images according to instructions from the information processing unit 31 (the GPU 312). In the present embodiment, the information processing unit 31 causes the upper LCD 22 to display a stereoscopic image (a stereoscopically viewable image).

具体的には、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された右目用画像と左目用画像とが、上側LCD22に出力される。より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像が表示される。   Specifically, the information processing section 31 is connected to an LCD controller (not shown) of the upper LCD 22 and controls ON / OFF of the parallax barrier for the LCD controller. When the parallax barrier of the upper LCD 22 is ON, the right-eye image and the left-eye image stored in the VRAM 313 of the information processing unit 31 are output to the upper LCD 22. More specifically, the LCD controller alternately repeats the process of reading pixel data for one line in the vertical direction for the image for the right eye and the process of reading pixel data for one line in the vertical direction for the image for the left eye. Thus, the right-eye image and the left-eye image are read from the VRAM 313. As a result, the image for the right eye and the image for the left eye are divided into strip-like images in which pixels are arranged vertically for each line. The strip-like images for the right-eye image and the strip-like images for the left-eye image are alternately displayed. The image arranged on the upper LCD 22 is displayed on the screen. Then, when the user visually recognizes the image through the parallax barrier of the upper LCD 22, the right eye image is visually recognized by the user's right eye and the left eye image is visually recognized by the user's left eye. As a result, a stereoscopically viewable image is displayed on the screen of the upper LCD 22.

外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示に従って画像を撮像し、撮像した画像データを情報処理部31に出力する。   The outer imaging unit 23 and the inner imaging unit 24 are connected to the information processing unit 31. The outer imaging unit 23 and the inner imaging unit 24 capture an image in accordance with an instruction from the information processing unit 31, and output the captured image data to the information processing unit 31.

3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダ25aの位置に応じた電気信号を情報処理部31に送信する。   The 3D adjustment switch 25 is connected to the information processing unit 31. The 3D adjustment switch 25 transmits an electrical signal corresponding to the position of the slider 25 a to the information processing unit 31.

また、3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。例えば、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。以上がゲーム装置10の内部構成の説明である。   The 3D indicator 26 is connected to the information processing unit 31. The information processing unit 31 controls lighting of the 3D indicator 26. For example, the information processing section 31 turns on the 3D indicator 26 when the upper LCD 22 is in the stereoscopic display mode. The above is the description of the internal configuration of the game apparatus 10.

(ゲーム装置10の動作の概要)
以下、本実施形態におけるゲーム装置10の動作の概要について説明する。本実施形態では、画像表示プログラムに基づいて、外側撮像部23(外側撮像部(左)23a、外側撮像部(右)23b)によって現在撮像されている実世界の画像と、3次元の仮想空間に存在する仮想オブジェクトの画像とを合成した合成画像が、上側LCD22の画面に立体視可能に表示される。
(Outline of operation of game device 10)
Hereinafter, an outline of the operation of the game apparatus 10 in the present embodiment will be described. In the present embodiment, based on the image display program, a real-world image currently captured by the outer imaging unit 23 (outer imaging unit (left) 23a, outer imaging unit (right) 23b) and a three-dimensional virtual space. Is displayed on the screen of the upper LCD 22 so as to be stereoscopically viewable.

(実世界画像の立体視表示)
外側撮像部23で撮影された2つの撮影画像は所定の視差を有するように上側LCDに供給されて立体視表示される。
(Stereoscopic display of real world images)
The two captured images captured by the outer imaging unit 23 are supplied to the upper LCD so as to have a predetermined parallax and are displayed in a stereoscopic view.

図7は、外側撮像部23によって3つのボール60a〜60c(実オブジェクト)が撮像されているときに上側LCD22の画面に表示される立体画像の一例を示している。外側撮像部23によって3つのボール60a〜60cが撮像されると、上側LCD22には、これらのボール60a〜60cが立体視可能に表示される。図7に示されるように、上側LCD22の画面上では、外側撮像部23に最も近いボール60aが最も手前に位置するようにユーザに視認され、外側撮像部23から最も遠いボール60cが最も遠くに位置するようにユーザに視認される。なお、図7では、理解を容易にするために、上側LCD22の画面からボールをはみ出して図示しているが、実際にはボールは画面内に表示される。後述の図8や図10についても同様である。なお、図7では、後述するマーカー61(図8参照)が外側撮像部23によって撮像されていないため、上側LCD22の画面には仮想オブジェクトは表示されていない。また、図7、図8、図10等においては、表示対象が飛び出ているように視認される様子を図示しているが、立体視可能に表示する、と言った場合、必ずしも飛び出し方向に視認される場合のみでなく、画面より奥側に、奥行きを持って表示される場合も含む。   FIG. 7 shows an example of a stereoscopic image displayed on the screen of the upper LCD 22 when three balls 60 a to 60 c (real objects) are imaged by the outer imaging unit 23. When three balls 60a to 60c are imaged by the outer imaging unit 23, these balls 60a to 60c are displayed on the upper LCD 22 so as to be stereoscopically viewed. As shown in FIG. 7, on the screen of the upper LCD 22, the ball 60 a closest to the outer imaging unit 23 is visually recognized by the user so that the ball 60 c farthest from the outer imaging unit 23 is farthest away. It is visually recognized by the user so as to be positioned. In FIG. 7, for ease of understanding, the ball protrudes from the screen of the upper LCD 22, but the ball is actually displayed in the screen. The same applies to FIGS. 8 and 10 described later. In FIG. 7, since a marker 61 (see FIG. 8) described later is not captured by the outer imaging unit 23, no virtual object is displayed on the screen of the upper LCD 22. 7, 8, 10, and the like illustrate how the display target is visually recognized as popping out, but when it is displayed in a stereoscopic view, it is not always visible in the popping out direction. This includes not only the case where the image is displayed but also the case where the image is displayed with a depth behind the screen.

(実世界画像およびCG画像の立体視表示)
図8は、外側撮像部23によってマーカー61(実オブジェクト)が撮像されているときに上側LCD22の画面に表示される立体画像の一例を示している。図8に示すように、マーカー61には、矢印を含む正方形が描かれており、CPU311は、外側撮像部23から取得される画像に対して例えばパターンマッチング等の画像処理を行うことによって、当該画像にマーカーが含まれているか否かを判定することができる。外側撮像部23によってマーカー61が撮像されているときには、上側LCD22には、実世界画像としてマーカー61が立体視可能に表示されるとともに、マーカー61の位置に仮想オブジェクト62(例えば犬を模した仮想オブジェクト)が立体視可能に合成表示される。なお、図9に示すように、マーカー61には向き(前方向、右方向、上方向)が定義されており、マーカー61の姿勢に応じた姿勢で仮想オブジェクトを配置することができる。例えば、仮想オブジェクト62の前方向がマーカー61の前方向と一致するように、マーカー61の上に仮想オブジェクト62を配置することが可能である。
(Stereoscopic display of real world images and CG images)
FIG. 8 illustrates an example of a stereoscopic image displayed on the screen of the upper LCD 22 when the marker 61 (real object) is captured by the outer imaging unit 23. As shown in FIG. 8, a square including an arrow is drawn on the marker 61, and the CPU 311 performs, for example, image processing such as pattern matching on the image acquired from the outer imaging unit 23. It can be determined whether or not a marker is included in the image. When the marker 61 is imaged by the outer imaging unit 23, the upper LCD 22 displays the marker 61 as a real world image so as to be stereoscopically viewed, and a virtual object 62 (for example, a virtual model imitating a dog) at the position of the marker 61. Object) is displayed in a composite manner so as to be stereoscopically viewed. As shown in FIG. 9, the marker 61 has a direction (forward direction, right direction, upward direction) defined, and a virtual object can be arranged in a posture corresponding to the posture of the marker 61. For example, the virtual object 62 can be arranged on the marker 61 so that the front direction of the virtual object 62 matches the front direction of the marker 61.

図10は、外側撮像部23によってマーカー61が撮像されているときに上側LCD2
2の画面に表示される立体画像の他の一例を示している。このように、ユーザーがゲーム装置10を移動させることによって、上側LCD22の画面に表示されるマーカー61の位置および向きが変化すると、それに追従するように、仮想オブジェクト62の位置および向きが変化する。よって、ユーザーには仮想オブジェクト62があたかも実世界に本当に存在しているかのように見える。
FIG. 10 shows the upper LCD 2 when the marker 61 is imaged by the outer imaging unit 23.
7 shows another example of a stereoscopic image displayed on the second screen. As described above, when the user moves the game apparatus 10 and the position and orientation of the marker 61 displayed on the screen of the upper LCD 22 change, the position and orientation of the virtual object 62 change to follow the change. Therefore, it seems to the user that the virtual object 62 really exists in the real world.

以下、図11〜図40を参照して、ゲーム装置10において画像表示プログラムに基づいて実行される画像表示処理の詳細について説明する。   Hereinafter, with reference to FIG. 11 to FIG. 40, the details of the image display process executed in the game apparatus 10 based on the image display program will be described.

(メモリマップ)
まず、画像表示処理の際にメインメモリ32に記憶される主なデータについて説明する。図11は、ゲーム装置10のメインメモリ32のメモリマップを示す図である。図11に示されるように、メインメモリ32には、画像表示プログラム70、最新左実世界画像71L、最新右実世界画像71R、表示用左実世界画像72L、表示用右実世界画像72R、立体視ゼロ距離73、仮想オブジェクト情報74、左変換行列75L、右変換行列75R、左ビュー行列76L、右ビュー行列76R、左射影行列77L、右射影行列77R、表示モード78、マーカー認識モード79、メイン実世界画像識別情報80、各種変数81等が記憶される。
(Memory map)
First, main data stored in the main memory 32 during the image display process will be described. FIG. 11 is a diagram showing a memory map of the main memory 32 of the game apparatus 10. As shown in FIG. 11, in the main memory 32, the image display program 70, the latest left real world image 71L, the latest right real world image 71R, the display left real world image 72L, the display right real world image 72R, the stereoscopic image Visual zero distance 73, virtual object information 74, left transformation matrix 75L, right transformation matrix 75R, left view matrix 76L, right view matrix 76R, left projection matrix 77L, right projection matrix 77R, display mode 78, marker recognition mode 79, main Real world image identification information 80, various variables 81, and the like are stored.

画像表示プログラム70は、CPU311に上記画像表示処理を実行させるためのプログラムである。   The image display program 70 is a program for causing the CPU 311 to execute the image display process.

最新左実世界画像71Lは、外側撮像部(左)23aによって撮像された最新の画像である。   The latest left real world image 71L is the latest image captured by the outer imaging unit (left) 23a.

最新右実世界画像71Rは、外側撮像部(右)23bによって撮像された最新の画像である。   The latest right real world image 71R is the latest image captured by the outer imaging unit (right) 23b.

表示用左実世界画像72Lは、外側撮像部(左)23aによって撮像された画像のうち、上側LCD22に表示されることが決定された最新の画像である。   The display left real world image 72L is the latest image determined to be displayed on the upper LCD 22 among images captured by the outer imaging unit (left) 23a.

表示用右実世界画像72Rは、外側撮像部(右)23bによって撮像された画像のうち、上側LCD22に表示されることが決定された最新の画像である。   The display right real world image 72R is the latest image determined to be displayed on the upper LCD 22 among the images captured by the outer imaging unit (right) 23b.

立体視ゼロ距離73は、外側撮像部23から撮影方向にどれだけの距離だけ離れた物体が、上側LCD22の画面に立体表示されたときに上側LCD22の画面と同じ奥行き位置にあるように視認されるかを示す変数であり、例えば、センチメートルの単位で表される。本実施形態では、立体視ゼロ距離73は25cmで固定とするが、これは単なる一例に過ぎず、ユーザーの指示に応じて、またはコンピュータによって自動的に、立体視ゼロ距離73を随時変更するようにしても構わない。立体視ゼロ距離73は、マーカー61からの距離や、外側撮像部23とマーカー61の間の距離における比で指定しても構わない。また、必ずしも現実空間の距離として指定せず、仮想空間における距離で指定してもよい。マーカー61のサイズが既知のときなどには、実世界における長さの単位と仮想空間における長さの単位とを一致させることができる。このように両者の単位を一致させることができる場合には、立体視ゼロ距離73を実世界における長さの単位で設定できる。しかしながら、両者の単位を一致させることができない場合には、立体視ゼロ距離73を仮想空間における長さの単位で設定してもよい。なお、後述の通り、本実施形態においては、マーカー61のサイズを用いずに、実世界における長さの単位と仮想空間における長さの単位とを一致させることができる。   The stereoscopic zero distance 73 is visually recognized so that an object separated from the outer imaging unit 23 in the shooting direction is in the same depth position as the screen of the upper LCD 22 when stereoscopically displayed on the screen of the upper LCD 22. For example, expressed in units of centimeters. In this embodiment, the stereoscopic vision zero distance 73 is fixed at 25 cm, but this is merely an example, and the stereoscopic vision zero distance 73 is changed as needed according to a user instruction or automatically by a computer. It doesn't matter. The stereoscopic zero distance 73 may be specified by a distance from the marker 61 or a ratio in a distance between the outer imaging unit 23 and the marker 61. Further, it is not necessarily specified as the distance in the real space, but may be specified by the distance in the virtual space. When the size of the marker 61 is known, the unit of length in the real world and the unit of length in the virtual space can be matched. Thus, when both units can be made to correspond, the stereoscopic zero distance 73 can be set in the unit of length in the real world. However, if the units of both cannot be matched, the stereoscopic vision zero distance 73 may be set in units of length in the virtual space. As will be described later, in the present embodiment, the unit of length in the real world and the unit of length in the virtual space can be matched without using the size of the marker 61.

仮想オブジェクト情報74は、前述の仮想オブジェクト62に関連する情報であって、仮想オブジェクト62の形状を表す3Dモデルデータ(ポリゴンデータ)や、仮想オブジェクト62の模様を表すテクスチャデータや、仮想空間における仮想オブジェクト62の位置や姿勢の情報などを含む。   The virtual object information 74 is information related to the virtual object 62 described above, and includes 3D model data (polygon data) representing the shape of the virtual object 62, texture data representing the pattern of the virtual object 62, and virtual data in the virtual space. Information on the position and orientation of the object 62 is included.

左変換行列75Lは、左実世界画像におけるマーカー61の位置および姿勢を認識することにより計算される行列であり、マーカー61の位置および姿勢を基準として設定される座標系(マーカー座標系)で表された座標を外側撮像部(左)23aの位置および姿勢を基準として表された座標系(外側撮像部(左)座標系)に変換する座標変換行列である。左変換行列75Lは、マーカー61の位置および姿勢に対する外側撮像部(左)23aの相対的な位置および姿勢の情報を含む行列であり、より具体的には、マーカー座標系における外側撮像部(左)23aの位置および姿勢の情報を含む行列である。   The left conversion matrix 75L is a matrix calculated by recognizing the position and orientation of the marker 61 in the left real world image, and is expressed in a coordinate system (marker coordinate system) set with the position and orientation of the marker 61 as a reference. This is a coordinate transformation matrix for transforming the coordinates into a coordinate system (outer imaging unit (left) coordinate system) expressed with reference to the position and orientation of the outer imaging unit (left) 23a. The left transformation matrix 75L is a matrix including information on the relative position and orientation of the outer imaging unit (left) 23a with respect to the position and orientation of the marker 61, and more specifically, the outer imaging unit (left ) 23a is a matrix including the position and orientation information.

右変換行列75Rは、右実世界画像におけるマーカー61の位置および姿勢を認識することにより計算される行列であり、マーカー座標系で表された座標を外側撮像部(右)23bの位置および姿勢を基準として表された座標系(外側撮像部(右)座標系)に変換する座標変換行列である。右変換行列75Rは、マーカー61の位置および姿勢に対する外側撮像部(右)23bの相対的な位置および姿勢の情報を含む行列であり、より具体的には、マーカー座標系における外側撮像部(右)23bの位置および姿勢の情報を含む行列である。   The right transformation matrix 75R is a matrix calculated by recognizing the position and orientation of the marker 61 in the right real world image, and the coordinates expressed in the marker coordinate system are used as the position and orientation of the outer imaging unit (right) 23b. This is a coordinate transformation matrix for transformation into a coordinate system (outer imaging unit (right) coordinate system) represented as a reference. The right transformation matrix 75R is a matrix that includes information on the relative position and orientation of the outer imaging unit (right) 23b with respect to the position and orientation of the marker 61, and more specifically, the outer imaging unit (right ) 23b is a matrix including the position and orientation information.

なお、本明細書において、マーカー座標系から外側撮像部(左)座標系または外側撮像部(右)座標系への変換行列のことを「マーカー・カメラ変換行列」と呼ぶ。左変換行列75Lおよび右変換行列75Rは「マーカー・カメラ変換行列」である。   In this specification, a conversion matrix from the marker coordinate system to the outer imaging unit (left) coordinate system or the outer imaging unit (right) coordinate system is referred to as a “marker / camera conversion matrix”. The left conversion matrix 75L and the right conversion matrix 75R are “marker-camera conversion matrices”.

左ビュー行列76Lは、左仮想カメラから見た仮想オブジェクト62を描画する際に用いられる行列であり、仮想世界のワールド座標系で表された座標を左仮想カメラ座標系で表された座標へと変換するための座標変換行列である。左ビュー行列76Lは、仮想世界のワールド座標系における左仮想カメラの位置および姿勢の情報を含む行列である。   The left view matrix 76L is a matrix used when the virtual object 62 viewed from the left virtual camera is drawn, and the coordinates expressed in the world coordinate system of the virtual world are changed to the coordinates expressed in the left virtual camera coordinate system. It is a coordinate transformation matrix for transformation. The left view matrix 76L is a matrix including information on the position and orientation of the left virtual camera in the world coordinate system of the virtual world.

右ビュー行列76Rは、右仮想カメラから見た仮想オブジェクト62を描画する際に用いられる行列であり、仮想世界のワールド座標系で表された座標を右仮想カメラ座標系で表された座標へと変換するための座標変換行列である。右ビュー行列76Rは、仮想世界のワールド座標系における右仮想カメラの位置および姿勢の情報を含む行列である。   The right view matrix 76R is a matrix used when the virtual object 62 viewed from the right virtual camera is drawn, and the coordinates expressed in the world coordinate system of the virtual world are changed to the coordinates expressed in the right virtual camera coordinate system. It is a coordinate transformation matrix for transformation. The right view matrix 76R is a matrix including information on the position and orientation of the right virtual camera in the world coordinate system of the virtual world.

左射影行列77Lは、左仮想カメラから見た仮想世界(仮想世界に存在する仮想オブジェクト62)を描画する際に用いられる行列であり、左仮想カメラ座標系で表された座標をスクリーン座標系で表された座標へと変換するための座標変換行列である。   The left projection matrix 77L is a matrix used when drawing the virtual world viewed from the left virtual camera (the virtual object 62 existing in the virtual world), and the coordinates represented by the left virtual camera coordinate system are expressed in the screen coordinate system. It is a coordinate transformation matrix for transforming into expressed coordinates.

右射影行列77Rは、右仮想カメラから見た仮想世界(仮想世界に存在する仮想オブジェクト62)を描画する際に用いられる行列であり、右仮想カメラ座標系で表された座標をスクリーン座標系で表された座標へと変換するための座標変換行列である。   The right projection matrix 77R is a matrix used when drawing the virtual world (virtual object 62 existing in the virtual world) viewed from the right virtual camera, and the coordinates expressed in the right virtual camera coordinate system are expressed in the screen coordinate system. It is a coordinate transformation matrix for transforming into expressed coordinates.

表示モード78は、現在の処理モードを示すデータであって、より具体的には、実世界画像と仮想空間画像とを同期させて合成表示する同期表示モードか、実世界画像と仮想空間画像とを同期させずに合成表示する非同期表示モードかを示すデータである。   The display mode 78 is data indicating the current processing mode. More specifically, the display mode 78 is a synchronous display mode in which the real world image and the virtual space image are combined and displayed in synchronization, or the real world image and the virtual space image are displayed. This is data indicating whether the display mode is an asynchronous display mode in which the images are combined and displayed without being synchronized.

マーカー認識モード79は、現在の処理モードを示すデータであって、より具体的には、左実世界画像と右実世界画像のいずれか一方のみに対してマーカー認識処理を行う片画像認識モードか、左実世界画像と右実世界画像の両方に対してそれぞれマーカー認識処理
を行う両画像認識モードかを示すデータである。
The marker recognition mode 79 is data indicating the current processing mode. More specifically, the marker recognition mode 79 is a one-image recognition mode in which marker recognition processing is performed on only one of the left real world image and the right real world image. This is data indicating both image recognition modes in which marker recognition processing is performed for both the left real world image and the right real world image.

メイン実世界画像識別情報80は、左実世界画像と右実世界画像のいずれがメイン実世界画像なのかを示すデータである。上記の片画像認識モードでは、メイン実世界画像に対してのみマーカー認識処理が行われ、他方の実世界画像(以下、サブ実世界画像と称す)に対してはマーカー認識処理は行われない。   The main real world image identification information 80 is data indicating which of the left real world image and the right real world image is the main real world image. In the one-image recognition mode, the marker recognition process is performed only on the main real world image, and the marker recognition process is not performed on the other real world image (hereinafter referred to as a sub real world image).

各種変数81は、画像表示プログラム70の実行の際に用いられる変数であって、図12に示すような変数を含む。これらの変数の意味については、以下の説明において随時説明する。   Various variables 81 are variables used when the image display program 70 is executed, and include variables as shown in FIG. The meaning of these variables will be explained as needed in the following description.

ゲーム装置10の電源が投入されると、ゲーム装置10の情報処理部31(CPU311)は、図示しないROMに記憶されている起動プログラムを実行し、これによってメインメモリ32等の各ユニットが初期化される。次に、データ保存用内部メモリ35に記憶された画像表示プログラムがメインメモリ32に読み込まれ、情報処理部31のCPU311によって当該画像表示プログラムの実行が開始される。   When the power of the game apparatus 10 is turned on, the information processing section 31 (CPU 311) of the game apparatus 10 executes a startup program stored in a ROM (not shown), thereby initializing each unit such as the main memory 32. Is done. Next, the image display program stored in the internal data storage memory 35 is read into the main memory 32, and the CPU 311 of the information processing unit 31 starts executing the image display program.

以下、図13〜図19のフローチャートを参照して、画像表示プログラムに基づいて実行される処理の流れを説明する。なお、図13〜図19のフローチャートは、単なる一例に過ぎない。したがって、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数の値や、判断ステップで利用される閾値も、単なる一例に過ぎず、必要に応じて他の値を採用してもよい。また、本実施形態では、図13〜図19のフローチャートの全てのステップの処理をCPU311が実行するものとして説明するが、図13〜図19のフローチャートの一部のステップの処理を、CPU311以外のプロセッサや専用回路が実行するようにしてもよい。   Hereinafter, the flow of processing executed based on the image display program will be described with reference to the flowcharts of FIGS. Note that the flowcharts of FIGS. 13 to 19 are merely examples. Therefore, if the same result is obtained, the processing order of each step may be changed. Moreover, the value of the variable and the threshold value used in the determination step are merely examples, and other values may be adopted as necessary. In the present embodiment, the processing of all steps in the flowcharts of FIGS. 13 to 19 is described as being executed by the CPU 311. However, the processing of some steps in the flowcharts of FIGS. It may be executed by a processor or a dedicated circuit.

(マーカー処理)
図13は、画像表示プログラム70に基づいてCPU311によって実行されるマーカー処理の流れを示すフローチャートである。マーカー処理は、後述するメイン処理と並列的に実行される処理であり、本実施形態では、CPU311がアイドル状態のときに実行される。以下、マーカー処理の詳細について説明する。
(Marker processing)
FIG. 13 is a flowchart showing the flow of marker processing executed by the CPU 311 based on the image display program 70. The marker process is a process executed in parallel with a main process to be described later. In the present embodiment, the marker process is executed when the CPU 311 is in an idle state. Details of the marker process will be described below.

図13のステップS10において、CPU311は、外側撮像部23から両方の実世界画像(すなわち左実世界画像および右実世界画像)を取得したか否かを判断し、両方の実世界画像が取得されている場合には処理はステップS11に進む。外側撮像部23から取得された最新の左実世界画像は、最新左実世界画像71Lとしてメインメモリ32に格納され、最新の右実世界画像は、最新右実世界画像71Rとしてメインメモリ32に格納される。   In step S10 of FIG. 13, the CPU 311 determines whether or not both real world images (that is, the left real world image and the right real world image) have been acquired from the outer imaging unit 23, and both real world images are acquired. If yes, the process proceeds to step S11. The latest left real world image acquired from the outer imaging unit 23 is stored in the main memory 32 as the latest left real world image 71L, and the latest right real world image is stored in the main memory 32 as the latest right real world image 71R. Is done.

なお、前述のように、上側ハウジング21において、外側撮像部(左)23aと外側撮像部(右)23bは一定の間隔(例えば3.5cm、以下、撮像部間距離)だけ離れている。したがって、外側撮像部(左)23aと外側撮像部(右)23bによって同時にマーカー61を撮像した場合、図20に示すように、外側撮像部(左)23aによって撮像された左実世界画像におけるマーカー61の位置及び姿勢と、外側撮像部(右)23bによって撮像された右実世界画像におけるマーカー61の位置及び姿勢との間には、視差によるズレが生じる。   As described above, in the upper housing 21, the outer imaging unit (left) 23a and the outer imaging unit (right) 23b are separated by a certain distance (for example, 3.5 cm, hereinafter, distance between imaging units). Therefore, when the marker 61 is imaged simultaneously by the outer imaging unit (left) 23a and the outer imaging unit (right) 23b, as shown in FIG. 20, the marker in the left real world image captured by the outer imaging unit (left) 23a. There is a shift due to parallax between the position and orientation of 61 and the position and orientation of the marker 61 in the right real world image captured by the outer imaging unit (right) 23b.

ステップS11において、CPU311は、メイン実世界画像に対してマーカー認識処理を行う。より具体的には、パターンマッチング手法等によってメイン実世界画像にマーカー61が含まれているか否かを判断し、メイン実世界画像にマーカー61が含まれてい
る場合には、メイン実世界画像におけるマーカー61の位置および姿勢に基づいて、左変換行列75Lまたは右変換行列75Rを算出する(メイン実世界画像が左実世界画像である場合には、左変換行列75Lを算出し、メイン実世界画像が右実世界画像である場合には、右変換行列75Rを算出する)。
In step S11, the CPU 311 performs marker recognition processing on the main real world image. More specifically, it is determined whether or not the marker 61 is included in the main real world image by a pattern matching method or the like. If the marker 61 is included in the main real world image, Based on the position and orientation of the marker 61, the left conversion matrix 75L or the right conversion matrix 75R is calculated (if the main real world image is a left real world image, the left conversion matrix 75L is calculated and the main real world image is calculated). Is the right real world image, the right transformation matrix 75R is calculated).

なお、左変換行列75Lは、左実世界画像におけるマーカー61の位置および姿勢に基づいて計算される外側撮像部(左)23aの位置および姿勢を反映した行列である。より正確には、図21に示すように、マーカー座標系(実世界におけるマーカー61の位置を原点とし、マーカー61の縦方向、横方向、法線方向の各方向を各軸とする座標系)で表された座標を、左実世界画像におけるマーカー61の位置および姿勢に基づいて計算された外側撮像部(左)23aの位置および姿勢を基準とした外側撮像部(左)座標系で表される座標へと変換するための座標変換行列である。   The left conversion matrix 75L is a matrix reflecting the position and orientation of the outer imaging unit (left) 23a calculated based on the position and orientation of the marker 61 in the left real world image. More precisely, as shown in FIG. 21, a marker coordinate system (a coordinate system in which the position of the marker 61 in the real world is the origin and the vertical direction, the horizontal direction, and the normal direction of the marker 61 are axes) Are expressed in the outer imaging unit (left) coordinate system based on the position and orientation of the outer imaging unit (left) 23a calculated based on the position and orientation of the marker 61 in the left real world image. This is a coordinate transformation matrix for transforming into coordinates.

また、右変換行列75Rは、右実世界画像におけるマーカー61の位置および姿勢に基づいて計算される外側撮像部(右)23bの位置および姿勢を反映した行列である。より正確には、図22に示すように、マーカー座標系で表された座標を、右実世界画像におけるマーカー61の位置および姿勢に基づいて計算された外側撮像部(右)23bの位置および姿勢を基準とした外側撮像部(右)座標系で表される座標へと変換するための座標変換行列である。   The right transformation matrix 75R is a matrix reflecting the position and orientation of the outer imaging unit (right) 23b calculated based on the position and orientation of the marker 61 in the right real world image. More precisely, as shown in FIG. 22, the position and orientation of the outer imaging unit (right) 23b calculated based on the coordinates and the coordinates expressed in the marker coordinate system based on the position and orientation of the marker 61 in the right real world image. Is a coordinate transformation matrix for transforming into coordinates expressed in the outer imaging unit (right) coordinate system with reference to.

なお、マーカー認識精度に誤差が全く無く、かつゲーム装置10に対する外側撮像部(左)23aおよび外側撮像部(右)23bの取り付け精度に誤差が全く無いと仮定すると、右実世界画像のマーカー認識結果である右変換行列75Rが示す外側撮像部(右)23bの位置は、左実世界画像のマーカー認識結果である左変換行列75Lが示す外側撮像部(左)23aの位置を、外側撮像部(左)座標系のx軸方向(ゲーム装置10の横方向であり使用時の水平方向)に沿って一定距離(撮像部間距離)だけずらした位置となり、右変換行列75Rが示す外側撮像部(右)23bの姿勢と左変換行列75Lが示す外側撮像部(左)23aの姿勢はゲーム装置10における外側撮像部(左)23aと外側撮像部(右)23bの取り付け状態と同じとなる。本実施例においては、ゲーム装置10において外側撮像部(左)23aと外側撮像部(右)23bは平行に取り付けられるように設計さているので、外側撮像部(左)座標系のx軸,y軸,z軸が、外側撮像部(右)座標系のx軸,y軸,z軸とそれぞれ平行となる。しかしながら実際には、マーカー認識精度にも、ゲーム装置10に対する外側撮像部(左)23aおよび外側撮像部(右)23bの取り付け精度にも誤差があるため、左変換行列75Lが示す外側撮像部(左)23aの位置及び姿勢と、右変換行列75Rが示す外側撮像部(右)23bの位置及び姿勢は、理想的な関係にはならない。例えば、左変換行列75Lと右変換行列75Rは、外側撮像部(左)23aと外側撮像部(右)23bが近すぎたり、離れすぎたり、外側撮像部(左)23aの姿勢と外側撮像部(右)23bの姿勢が異なったりするような行列になる。また、外側撮像部(左)23aの姿勢と外側撮像部(右)23bの姿勢が平行でないような行列になる。   Assuming that there is no error in marker recognition accuracy and that there is no error in the accuracy of attaching the outer imaging unit (left) 23a and the outer imaging unit (right) 23b to the game apparatus 10, marker recognition of the right real world image is performed. The position of the outer imaging unit (right) 23b indicated by the right transformation matrix 75R as the result is the position of the outer imaging unit (left) 23a indicated by the left transformation matrix 75L as the marker recognition result of the left real world image. (Left) The outer imaging unit indicated by the right transformation matrix 75R is positioned at a certain distance (distance between imaging units) along the x-axis direction of the coordinate system (the horizontal direction of the game apparatus 10 and the horizontal direction when used). (Right) The posture of 23b and the posture of the outer imaging unit (left) 23a indicated by the left transformation matrix 75L are the same as the attached state of the outer imaging unit (left) 23a and the outer imaging unit (right) 23b in the game apparatus 10. To become. In the present embodiment, since the outer imaging unit (left) 23a and the outer imaging unit (right) 23b are designed to be mounted in parallel in the game apparatus 10, the x axis, y of the outer imaging unit (left) coordinate system is designed. The axes and the z-axis are parallel to the x-axis, y-axis, and z-axis of the outer imaging unit (right) coordinate system, respectively. However, actually, since there is an error in the marker recognition accuracy and the accuracy in attaching the outer imaging unit (left) 23a and the outer imaging unit (right) 23b to the game apparatus 10, the outer imaging unit (shown by the left conversion matrix 75L) The position and orientation of the left) 23a and the position and orientation of the outer imaging unit (right) 23b indicated by the right transformation matrix 75R are not in an ideal relationship. For example, the left transformation matrix 75L and the right transformation matrix 75R indicate that the outer imaging unit (left) 23a and the outer imaging unit (right) 23b are too close or too far apart, the attitude of the outer imaging unit (left) 23a and the outer imaging unit. (Right) The matrix is such that the posture of 23b is different. Further, the matrix is such that the attitude of the outer imaging unit (left) 23a and the attitude of the outer imaging unit (right) 23b are not parallel.

ここで、ARでは、マーカー座標系を外側撮像部(左)座標系または外側撮像部(右)座標系に変換する行列を仮想カメラのビュー行列に指定することにより、実世界画像にCG画像を合成することができるが、単に、左変換行列75Lを左ビュー行列76Lに指定し、右変換行列75Rを右ビュー行列76Rに指定して仮想空間画像を上側LCD22に立体表示する場合には、仮想オブジェクト62が正常に立体視できないことがあり得る。そこで本実施形態では、後述する説明から明らかになるように、左実世界画像および右実世界画像のいずれか一方のマーカー認識結果(マーカー・カメラ変換行列)から計算される一方の仮想カメラの位置及び姿勢(ビュー行列)に基づいて、左仮想カメラ63Lの位置及び姿勢と右仮想カメラ63Rの位置及び姿勢が理想的な関係となるように、他方の仮
想カメラの位置及び姿勢(ビュー行列)が決定される。
Here, in AR, a CG image is converted to a real world image by designating a matrix for converting the marker coordinate system to the outer imaging unit (left) coordinate system or the outer imaging unit (right) coordinate system in the view matrix of the virtual camera. However, when the left transformation matrix 75L is designated as the left view matrix 76L and the right transformation matrix 75R is designated as the right view matrix 76R and the virtual space image is stereoscopically displayed on the upper LCD 22, the virtual transformation is possible. The object 62 may not be normally stereoscopically viewed. Therefore, in the present embodiment, as will be apparent from the following description, the position of one virtual camera calculated from the marker recognition result (marker / camera conversion matrix) of one of the left real world image and the right real world image And the position and orientation (view matrix) of the other virtual camera so that the position and orientation of the left virtual camera 63L and the position and orientation of the right virtual camera 63R have an ideal relationship based on the orientation and view (view matrix). It is determined.

なお、ステップS11において、メイン実世界画像からマーカー61が認識されなかった場合には、左変換行列75Lまたは右変換行列75Rにヌル値が格納され、これによって、左実世界画像または右実世界画像におけるマーカー61の認識に失敗したことが記録される。   In step S11, if the marker 61 is not recognized from the main real world image, a null value is stored in the left conversion matrix 75L or the right conversion matrix 75R, whereby the left real world image or the right real world image is stored. It is recorded that the recognition of the marker 61 is failed.

ステップS12において、CPU311は、マーカー認識モードが片画像認識モードであるかどうかを判断する。そして、片画像認識モードである場合には、処理はステップS13に進み、そうでない場合(すなわち両画像認識モードである場合)には、処理はステップS14に進む。   In step S12, the CPU 311 determines whether or not the marker recognition mode is the one-image recognition mode. If it is the one-image recognition mode, the process proceeds to step S13. If not (that is, if it is the both-image recognition mode), the process proceeds to step S14.

ステップS13において、CPU311は、左実世界画像及び右実世界画像のうち、メイン実世界画像ではない方の実世界画像(以下、サブ実世界画像と称す)のマーカー認識結果を“失敗”とみなす。より具体的には、メイン実世界画像が左実世界画像である場合には、右変換行列75Rにヌル値を格納し、メイン実世界画像が右実世界画像である場合には、左変換行列75Lにヌル値を格納する。   In step S13, the CPU 311 regards the marker recognition result of the real world image that is not the main real world image (hereinafter referred to as the sub real world image) as the “failure” among the left real world image and the right real world image. . More specifically, if the main real world image is a left real world image, a null value is stored in the right conversion matrix 75R, and if the main real world image is a right real world image, the left conversion matrix A null value is stored in 75L.

ステップS14において、CPU311は、サブ実世界画像に対してマーカー認識処理を行う。より具体的には、パターンマッチング手法等によってサブ実世界画像にマーカー61が含まれているか否かを判断し、サブ実世界画像にマーカー61が含まれている場合には、サブ実世界画像におけるマーカー61の位置および姿勢に基づいて、左変換行列75Lまたは右変換行列75Rを算出する(サブ実世界画像が左実世界画像である場合には、左変換行列75Lを算出し、サブ実世界画像が右実世界画像である場合には、右変換行列75Rを算出する)。   In step S14, the CPU 311 performs marker recognition processing on the sub real world image. More specifically, it is determined whether or not the marker 61 is included in the sub real world image by a pattern matching method or the like, and when the marker 61 is included in the sub real world image, Based on the position and orientation of the marker 61, the left conversion matrix 75L or the right conversion matrix 75R is calculated (if the sub real world image is a left real world image, the left conversion matrix 75L is calculated and the sub real world image is calculated). Is the right real world image, the right transformation matrix 75R is calculated).

ステップS15において、CPU311は、表示モードが同期表示モードであるかどうかを判断する。そして、同期表示モードである場合には、処理はステップS17に進み、そうでない場合(すなわち非同期表示モードである場合)には、処理はステップS16に進む。   In step S15, the CPU 311 determines whether the display mode is the synchronous display mode. If the mode is the synchronous display mode, the process proceeds to step S17. If not (that is, the mode is the asynchronous display mode), the process proceeds to step S16.

ステップS16において、CPU311は、最新左実世界画像71L及び最新右実世界画像71Rを、表示用左実世界画像72L及び表示用右実世界画像72Rとしてそれぞれメインメモリ32に記憶する。そして、処理はステップS10に戻る。   In step S16, the CPU 311 stores the latest left real world image 71L and the latest right real world image 71R in the main memory 32 as a display left real world image 72L and a display right real world image 72R, respectively. Then, the process returns to step S10.

ステップS17において、CPU311は、マーカー認識モードが片画像認識モードかどうかを判断する。そして、片画像認識モードである場合には、処理はステップS18に進み、そうでない場合(すなわち両画像認識モードである場合)には、処理はステップS19に進む。   In step S17, the CPU 311 determines whether the marker recognition mode is the one-image recognition mode. If it is the single image recognition mode, the process proceeds to step S18. If not (that is, if it is the both image recognition mode), the process proceeds to step S19.

ステップS18において、CPU311は、メイン実世界画像のマーカー認識に成功したかどうかを判断する。より具体的には、CPU311は、メイン実世界画像が左実世界画像である場合には、左変換行列75Lにヌル値ではない有効な行列が格納されているかどうかを判断し、メイン実世界画像が右実世界画像である場合には、右変換行列75Rにヌル値ではない有効な行列が格納されているかどうかを判断する。そして、メイン実世界画像のマーカー認識に成功したと判断された場合には、処理はステップS16に進み、そうでない場合には、処理はステップS10に戻る。   In step S <b> 18, the CPU 311 determines whether marker recognition of the main real world image has succeeded. More specifically, when the main real world image is the left real world image, the CPU 311 determines whether a valid matrix that is not a null value is stored in the left conversion matrix 75L, and the main real world image Is a right real world image, it is determined whether or not a valid matrix that is not a null value is stored in the right transformation matrix 75R. If it is determined that marker recognition of the main real world image is successful, the process proceeds to step S16, and if not, the process returns to step S10.

ステップS19において、CPU311は、左実世界画像及び右実世界画像の少なくとも一方のマーカー認識に成功したかどうかを判断する。より具体的には、CPU311は
、左変換行列75L及び右変換行列75Rの両方に、ヌル値ではない有効な行列が格納されているかどうかを判断する。そして、左実世界画像及び右実世界画像の少なくとも一方のマーカー認識に成功したと判断された場合には、処理はステップS16に進み、そうでない場合には、処理はステップS10に戻る。
In step S19, the CPU 311 determines whether or not the marker recognition of at least one of the left real world image and the right real world image is successful. More specifically, the CPU 311 determines whether valid matrices that are not null values are stored in both the left conversion matrix 75L and the right conversion matrix 75R. If it is determined that at least one of the left real world image and the right real world image has been successfully recognized, the process proceeds to step S16. If not, the process returns to step S10.

(メイン処理)
図14は、画像表示プログラム70に基づいてCPU311によって実行されるメイン処理の流れを示すフローチャートである。メイン処理は、上述したマーカー処理と並列的に実行される処理である。以下、メイン処理の詳細について説明する。
(Main process)
FIG. 14 is a flowchart showing a flow of main processing executed by the CPU 311 based on the image display program 70. The main process is a process executed in parallel with the marker process described above. Hereinafter, details of the main process will be described.

図14のステップS20において、CPU311は、3次元の仮想空間の所定位置に仮想オブジェクト62を配置する。本実施形態では、仮想空間の原点(ワールド座標系の原点)に仮想オブジェクト62を配置する。   In step S20 of FIG. 14, the CPU 311 arranges the virtual object 62 at a predetermined position in the three-dimensional virtual space. In the present embodiment, the virtual object 62 is arranged at the origin of the virtual space (the origin of the world coordinate system).

ステップS21において、CPU311は、更新処理を実行する。この更新処理では、仮想オブジェクト62を描画するために用いられる種々の変数を更新するための処理である。更新処理の詳細については後述する。   In step S21, the CPU 311 performs an update process. This update process is a process for updating various variables used to draw the virtual object 62. Details of the update process will be described later.

ステップS22において、CPU311は、仮想オブジェクト処理を実行する。仮想オブジェクト処理とは、仮想空間に配置された仮想オブジェクト62に関する処理であり、例えば、必要に応じて、仮想オブジェクト62の大きさを変化させたり、仮想オブジェクト62に所定の動作(仮想空間内で移動する。例えば、仮想空間の原点の周りを歩くような移動をさせると、マーカー座標系の原点の周りを歩くような表示がされる)を行わせたりする。なお、仮想オブジェクト62の移動制御は、仮想空間のワールド座標系における仮想オブジェクトの位置座標を変更することにより実現される。   In step S22, the CPU 311 performs virtual object processing. The virtual object process is a process related to the virtual object 62 arranged in the virtual space. For example, the size of the virtual object 62 is changed or a predetermined action (in the virtual space is performed in the virtual object 62) as necessary. For example, if a movement is made to walk around the origin of the virtual space, a display is made to walk around the origin of the marker coordinate system). The movement control of the virtual object 62 is realized by changing the position coordinates of the virtual object in the world coordinate system of the virtual space.

ステップS23において、CPU311は、立体視ゼロ距離73に応じて左実世界画像のうちの表示に使う範囲である描画範囲を決定する。より具体的には、図23に示すように、外側撮像部23から立体視ゼロ距離73の値(例えば30cm)だけ撮影方向に離れており、かつ外側撮像部(左)23aと外側撮像部(右)23bから等距離にある点を立体視ゼロ点とし、外側撮像部(左)23aから見て当該立体視ゼロ点が中心にくるような範囲を、左実世界画像の描画範囲として決定する。当該範囲の横方向の長さは、例えば、図23に示すように、外側撮像部(左)23aの撮影方向に垂直な直線を、外側撮像部(左)23aの画角を表す直線によって切り取った線分上での比として求めることができ、当該比を実世界画像の横方向の長さに対応させることによって、実世界画像上での範囲として決定される。なお、当該範囲の縦方向の長さについては、表示画面の縦横比に合うように、横方向の長さから決定される。   In step S <b> 23, the CPU 311 determines a drawing range which is a range used for display in the left real world image according to the stereoscopic zero distance 73. More specifically, as shown in FIG. 23, the outer imaging unit 23 is separated from the outer imaging unit 23 by a value of a stereoscopic vision zero distance 73 (for example, 30 cm) in the imaging direction, and the outer imaging unit (left) 23a and the outer imaging unit ( (Right) A point equidistant from 23b is set as a stereoscopic zero point, and a range in which the stereoscopic zero point is centered when viewed from the outer imaging unit (left) 23a is determined as a drawing range of the left real world image. . For example, as shown in FIG. 23, the horizontal length of the range is obtained by cutting a straight line perpendicular to the shooting direction of the outer imaging unit (left) 23a with a straight line representing the angle of view of the outer imaging unit (left) 23a. A ratio on the line segment can be obtained, and the ratio is determined as a range on the real world image by making the ratio correspond to the horizontal length of the real world image. The vertical length of the range is determined from the horizontal length so as to match the aspect ratio of the display screen.

なお、後述するステップS27において右実世界画像の描画範囲を決定するときには、図24に示すように、外側撮像部(右)23bから見て当該立体視ゼロ点が中心にくるような範囲を、右実世界画像の描画範囲として決定する。これにより、上側LCD22に表示される左目用画像における立体視ゼロ点の位置と右目用画像における立体視ゼロ点の位置が、上側LCD22の画面上で一致することになり、ユーザーから見て画面と同じ奥行き位置に存在するように見える。   When determining the drawing range of the right real world image in step S27 described later, as shown in FIG. 24, a range in which the stereoscopic zero point is centered when viewed from the outer imaging unit (right) 23b, The drawing range of the right real world image is determined. As a result, the position of the stereoscopic zero point in the left-eye image displayed on the upper LCD 22 and the position of the stereoscopic zero point in the right-eye image match on the screen of the upper LCD 22, and the screen is viewed from the user. It seems to exist at the same depth position.

ステップS24において、CPU311は、表示用左実世界画像72Lにおける、ステップS23で決定した描画範囲を、上側LCD22へ供給すべき左目用画像を一時的に記憶するためのVRAM313内の所定の記憶領域(以下、左フレームバッファと称す)に描画する。   In step S24, the CPU 311 stores a predetermined storage area in the VRAM 313 for temporarily storing the left eye image to be supplied to the upper LCD 22 from the drawing range determined in step S23 in the display left real world image 72L. Hereinafter, drawing is performed on the left frame buffer.

ステップS25において、CPU311は、ARActive(図12参照)の値がtrueかどうかを判断する。ARActiveとは、実世界画像に仮想オブジェクトを合成表示することができる状況かどうかを示す変数(フラグ)であって、実世界画像に仮想オブジェクトを合成表示することができる状況では、その値がtrueに設定され、実世界画像に仮想オブジェクトを合成表示することができない状況(例えば、マーカー61が全く認識できていない状況など)では、その値がfalse(初期値)に設定される。ARActiveの値がtrueである場合には、処理はステップS26に進み、そうでない場合(すなわちARActiveの値がfalseである場合)には、処理はステップS27に進む。   In step S25, the CPU 311 determines whether the value of ARAActive (see FIG. 12) is true. ARAActive is a variable (flag) indicating whether or not a virtual object can be displayed in a synthesized manner on a real world image. In a situation where a virtual object can be synthesized and displayed on a real world image, its value is true. In a situation where a virtual object cannot be synthesized and displayed on the real world image (for example, a situation where the marker 61 cannot be recognized at all), the value is set to false (initial value). If the ARAactive value is true, the process proceeds to step S26; otherwise (ie, the ARAactive value is false), the process proceeds to step S27.

ステップS26において、CPU311は、例えば図23に示すように、左仮想カメラ63Lから見た仮想空間(以下、左目用の仮想空間画像と称す)を左フレームバッファに上書きする(実際には、典型的には、CPU311からの指示にしたがってGPU312によって描画される)。これにより、図26に示すように、ステップS24で左フレームバッファに描画された左実世界画像に左目用の仮想空間画像が合成される。左フレームバッファに描画された画像は、所定のタイミングで左目用画像として上側LCD22へ供給されることになる。なお、当該左目用の仮想空間画像においては、仮想空間の背景は透明であり、そのため、実世界画像に仮想空間画像を合成することで、実世界画像上に仮想オブジェクト62が存在するような画像が生成される。   In step S26, for example, as shown in FIG. 23, the CPU 311 overwrites the left frame buffer with a virtual space viewed from the left virtual camera 63L (hereinafter referred to as a left-eye virtual space image) (in practice, typical Is rendered by the GPU 312 in accordance with an instruction from the CPU 311). As a result, as shown in FIG. 26, the left-eye virtual space image is synthesized with the left real world image drawn in the left frame buffer in step S24. The image drawn in the left frame buffer is supplied to the upper LCD 22 as a left-eye image at a predetermined timing. Note that in the left-eye virtual space image, the background of the virtual space is transparent. Therefore, by combining the virtual space image with the real world image, an image in which the virtual object 62 exists on the real world image. Is generated.

ステップS27において、CPU311は、立体視ゼロ距離73に応じて右実世界画像の描画範囲を決定する。なお、描画範囲を決定するための処理の詳細は左実世界画像の描画範囲の決定の処理と同じであるため省略する。   In step S <b> 27, the CPU 311 determines the drawing range of the right real world image according to the stereoscopic vision zero distance 73. The details of the process for determining the drawing range are the same as the process for determining the drawing range of the left real world image, and are therefore omitted.

ステップS28において、CPU311は、表示用右実世界画像72Rにおける、ステップS27で決定した描画範囲を、上側LCD22へ供給すべき右目用画像を一時的に記憶するためのVRAM313内の所定の記憶領域(以下、右フレームバッファと称す)に描画する。   In step S28, the CPU 311 stores a predetermined storage area in the VRAM 313 for temporarily storing the right eye image to be supplied to the upper LCD 22 from the drawing range determined in step S27 in the display right real world image 72R. The image is drawn in the right frame buffer hereinafter.

ステップS29において、CPU311は、ARActiveの値がtrueかどうかを判断する。ARActiveの値がtrueである場合には、処理はステップS30に進み、そうでない場合(すなわちARActiveの値がfalseである場合)には、処理はステップS31に進む。   In step S29, the CPU 311 determines whether or not the value of ARAActive is true. If the value of ARAactive is true, the process proceeds to step S30, and if not (that is, if the value of ARAactive is false), the process proceeds to step S31.

ステップS30において、CPU311は、右仮想カメラ63Rから見た仮想空間(以下、右目用の仮想空間画像と称す)を右フレームバッファに上書きする(実際には、典型的には、CPU311からの指示にしたがってGPU312によって描画される)。これにより、ステップS28で右フレームバッファに描画された右実世界画像に右目用の仮想空間画像が合成される。右フレームバッファに描画された画像は、所定のタイミングで右目用画像として上側LCD22へ供給されることになる。   In step S30, the CPU 311 overwrites the right frame buffer with a virtual space viewed from the right virtual camera 63R (hereinafter, referred to as a right-eye virtual space image) (in practice, typically, an instruction from the CPU 311 is used). Therefore, it is rendered by the GPU 312). Thereby, the virtual space image for the right eye is combined with the right real world image drawn in the right frame buffer in step S28. The image drawn in the right frame buffer is supplied to the upper LCD 22 as a right eye image at a predetermined timing.

ステップS31において、CPU311は、上側LCD22からの割り込み信号(垂直同期割り込み)を待機し、当該割り込み信号が発生した場合には、処理はステップS21に戻る。これにより、ステップS21〜S31の処理が一定の周期(例えば、60分の1秒の周期)で繰り返される。   In step S31, the CPU 311 waits for an interrupt signal (vertical synchronization interrupt) from the upper LCD 22, and when the interrupt signal is generated, the process returns to step S21. Thereby, the process of step S21-S31 is repeated with a fixed period (for example, 1/60 second period).

(更新処理)
次に、メイン処理におけるステップS21の更新処理の詳細について、図15のフローチャートを参照して説明する。
(Update process)
Next, details of the update process of step S21 in the main process will be described with reference to the flowchart of FIG.

図15のステップS40において、CPU311は、前述のマーカー処理におけるマーカー認識結果(すなわち、左変換行列75L及び右変換行列75R)が更新されたかどうかを判断し、更新されている場合には処理はステップS41に進み、まだ更新されていない場合には処理はステップS44に進む。   In step S40 of FIG. 15, the CPU 311 determines whether or not the marker recognition result (that is, the left conversion matrix 75L and the right conversion matrix 75R) in the marker processing described above has been updated. The process proceeds to S41, and if it has not been updated yet, the process proceeds to step S44.

ステップS41において、CPU311は、左実世界画像及び右実世界画像の両方の実世界画像のマーカー認識に成功しているかどうかを判断する。そして、両方の実世界画像のマーカー認識に成功している場合には、処理はステップS42に進み、いずれか一方もしくは両方の実世界画像のマーカー認識に失敗している場合には、処理はステップS44に進む。   In step S <b> 41, the CPU 311 determines whether the marker recognition of both the real world images of the left real world image and the right real world image is successful. If the marker recognition of both real world images has succeeded, the process proceeds to step S42. If the marker recognition of one or both real world images has failed, the process proceeds to step S42. Proceed to S44.

ステップS42において、CPU311は、EyeWidth(図12参照)の値が0であるか、または、EyeMeasure(図12参照)の値がtrueであるかどうかを判断する。EyeWidthとは、左変換行列75Lと右変換行列75Rとを用いて算出される、外側撮像部(左)23aと外側撮像部(右)23bとの位置関係における、両撮像部間の距離を示す。なお、ここで両撮像部間の距離とは、実世界のスケールとして求める必要はなく、仮想空間での距離として求めてもよい。具体的には、左変換行列75Lが示す、マーカー61の位置と外側撮像部(左)23aの位置との関係と、右変換行列75Rが示すマーカー61の位置と外側撮像部(右)23bの位置との関係とから、マーカー61の位置を基準として、外側撮像部(左)23aの位置と外側撮像部(右)23bの位置との関係を求めた場合の距離を求めている。なお、当該距離が未確定の場合には、その値が0(初期値)に設定される。なお、本実施形態では、EyeWidthはスカラー値であるが、EyeWidthを、左変換行列75Lが示す外側撮像部(左)23aの位置と右変換行列75Rが示す外側撮像部(右)23bの位置との間を結ぶベクトルにしてもよい。また、EyeWidthを、左変換行列75Lが示す外側撮像部(左)23aの位置と右変換行列75Rが示す外側撮像部(右)23bの位置との間を結ぶベクトルの、撮影方向に直交する成分の長さにしてもよい。なお、後述の通り、EyeWidthは、仮想空間における左仮想カメラ63Lと右仮想カメラ63Rの距離(間隔)の設定に用いる。EyeMeasureとは、EyeWidthを再計算すべきか否かを示す変数(フラグ)であって、EyeWidthを再計算すべき状況では、その値がtrueに設定され、そうでない状況では、その値がfalse(初期値)に設定される。EyeWidthの値が0であるか、または、EyeMeasureの値がtrueである場合には、処理はステップS43に進み、そうでない場合(すなわちEyeWidthの値が0以外の値であり、なおかつ、EyeMeasureの値がfalseである場合)には、処理はステップS44に進む。   In step S42, the CPU 311 determines whether the value of EyeWidth (see FIG. 12) is 0 or whether the value of EyeMeasure (see FIG. 12) is true. EyeWidth indicates the distance between the imaging units in the positional relationship between the outer imaging unit (left) 23a and the outer imaging unit (right) 23b, which is calculated using the left transformation matrix 75L and the right transformation matrix 75R. . Here, the distance between the two imaging units does not need to be obtained as a real world scale, and may be obtained as a distance in a virtual space. Specifically, the relationship between the position of the marker 61 and the position of the outer imaging section (left) 23a indicated by the left conversion matrix 75L, the position of the marker 61 indicated by the right conversion matrix 75R, and the position of the outer imaging section (right) 23b. From the relationship with the position, the distance when the relationship between the position of the outer imaging unit (left) 23a and the position of the outer imaging unit (right) 23b is obtained with the position of the marker 61 as a reference. When the distance is not yet determined, the value is set to 0 (initial value). In the present embodiment, EyeWidth is a scalar value, but EyeWidth is calculated from the position of the outer imaging unit (left) 23a indicated by the left transformation matrix 75L and the position of the outer imaging unit (right) 23b indicated by the right transformation matrix 75R. You may make it the vector which connects between. Further, a component orthogonal to the shooting direction of a vector connecting EyeWidth to the position of the outer imaging section (left) 23a indicated by the left transformation matrix 75L and the position of the outer imaging section (right) 23b indicated by the right transformation matrix 75R. It may be of length. As will be described later, EyeWidth is used to set the distance (interval) between the left virtual camera 63L and the right virtual camera 63R in the virtual space. EyeMeasure is a variable (flag) indicating whether or not EyeWidth should be recalculated. In the situation where EyeWidth is to be recalculated, its value is set to true. In other cases, the value is false (initial value). Value). If the value of EyeWidth is 0 or the value of EyeMeasure is true, the process proceeds to step S43. Otherwise (ie, the value of EyeWidth is a value other than 0, and the value of EyeMeasure). Is false), the process proceeds to step S44.

ステップS43において、CPU311は、仮想カメラ間隔決定処理を実行する。仮想カメラ間隔決定処理では、左仮想カメラ63Lと右仮想カメラ63Rの間隔(すなわちEyeWidth)が適宜に決定および更新される。仮想カメラ間隔決定処理の詳細については後述する。   In step S43, the CPU 311 executes virtual camera interval determination processing. In the virtual camera interval determination process, the interval (that is, EyeWidth) between the left virtual camera 63L and the right virtual camera 63R is appropriately determined and updated. Details of the virtual camera interval determination processing will be described later.

ステップS44において、CPU311は、ビュー行列生成処理を実行する。ビュー行列生成処理では、すでに決定されている左仮想カメラ63Lと右仮想カメラ63Rの間隔(すなわちEyeWidth)に基づいて、左ビュー行列76Lと右ビュー行列76Rが計算される。ビュー行列生成処理の詳細については後述する。   In step S44, the CPU 311 executes view matrix generation processing. In the view matrix generation process, the left view matrix 76L and the right view matrix 76R are calculated based on the already determined interval between the left virtual camera 63L and the right virtual camera 63R (that is, EyeWidth). Details of the view matrix generation processing will be described later.

ステップS45において、CPU311は、メイン実世界画像設定処理を実行する。メイン実世界画像設定処理では、左実世界画像と右実世界画像の間で、メイン実世界画像が適宜に切り替えられる(これは、外側撮像部(左)23aと外側撮像部(右)との間で、メイン撮像部を切り替えることと等価である)。メイン実世界画像設定処理の詳細につい
ては後述する。
In step S45, the CPU 311 executes main real world image setting processing. In the main real world image setting process, the main real world image is appropriately switched between the left real world image and the right real world image (this is the difference between the outer imaging unit (left) 23a and the outer imaging unit (right)). It is equivalent to switching the main imaging unit between them). Details of the main real-world image setting process will be described later.

ステップS46において、CPU311は、表示モード切替処理を実行し、そして更新処理を終了する。表示モード切替処理では、同期表示モードと非同期表示モードの間で、表示モードが適宜に切り替えられる。表示モード切替処理の詳細については後述する。   In step S46, the CPU 311 executes the display mode switching process and ends the update process. In the display mode switching process, the display mode is appropriately switched between the synchronous display mode and the asynchronous display mode. Details of the display mode switching process will be described later.

(仮想カメラ間隔決定処理)
次に、更新処理(図15)におけるステップS43の仮想カメラ間隔決定処理の詳細について、図16のフローチャートを参照して説明する。ここでは、前述の通り、左変換行列75Lが示すマーカー61の位置に対する外側撮像部(左)23aの位置と右変換行列75Rが示すマーカー61の位置に対する外側撮像部(右)23bの位置との距離を求める。この距離を計算する方法はいくつかあるが、本実施例では、計算方法の一例として、以下の方法を採用する。
(Virtual camera interval determination process)
Next, details of the virtual camera interval determination process in step S43 in the update process (FIG. 15) will be described with reference to the flowchart of FIG. Here, as described above, the position of the outer imaging section (left) 23a with respect to the position of the marker 61 indicated by the left conversion matrix 75L and the position of the outer imaging section (right) 23b with respect to the position of the marker 61 indicated by the right conversion matrix 75R. Find the distance. There are several methods for calculating this distance. In this embodiment, the following method is adopted as an example of the calculation method.

図16のステップS50において、CPU311は、左変換行列75Lおよび右変換行列75Rに基づいて、座標V0を計算する。以下、図27〜図29を参照して、V0の計算方法を説明する。なお、図27〜図29においては、左実世界画像に基づいて計算される、マーカー61に対する外側撮像部(左)23aの相対位置及び相対姿勢と、右実世界画像に基づいて計算される、マーカー61に対する外側撮像部(右)23bの相対位置及び相対姿勢とが、前述したように必ずしも理想的な関係とはならないことを強調するために、外側撮像部(左)23aの撮影方向と外側撮像部(右)23bの撮影方向が互いに大きくずれているように図示している。   In step S50 of FIG. 16, the CPU 311 calculates the coordinate V0 based on the left conversion matrix 75L and the right conversion matrix 75R. Hereinafter, a method for calculating V0 will be described with reference to FIGS. 27 to 29, the calculation is based on the relative position and orientation of the outer imaging unit (left) 23a with respect to the marker 61, which is calculated based on the left real world image, and the right real world image. In order to emphasize that the relative position and relative orientation of the outer imaging unit (right) 23b with respect to the marker 61 do not necessarily have an ideal relationship as described above, the shooting direction and the outer side of the outer imaging unit (left) 23a are not limited. The imaging directions of the imaging unit (right) 23b are illustrated so as to be greatly different from each other.

まず、図27に示すように、(0,0,0)に対して、左変換行列75Lを乗算すると、外側撮像部(左)座標系で表されたマーカー座標系の原点の座標V1が求まる。座標V1は、左実世界画像に基づいて計算された、外側撮像部(左)23aに対するマーカー61の相対位置を表している。この座標V1が外側撮像部(右)座標系で表された座標であると見なすと、座標V1が示す位置は、外側撮像部(右)座標系では図28に示す位置へと移動する。この座標V1に対して、さらに右変換行列75Rの逆行列を乗算する。右変換行列75Rの逆行列を乗算することは、外側撮像部(右)座標系で表された座標をマーカー座標系で表された座標に変換することに相当する。したがって、上記逆行列の乗算は、外側撮像部(右)座標系で表された座標V1(図28)を、図29に示すように、マーカー座標系で表された座標V0へと変換することになる。このようにして計算された座標V0は、左実世界画像に基づいて計算された、外側撮像部(左)23aに対するマーカー61の相対位置(すなわち、外側撮像部(左)座標系で表されるマーカー座標系の原点の
座標)と、右実世界画像に基づいて計算された、外側撮像部(右)23bに対するマーカー61の相対位置(すなわち、外側撮像部(右)座標系で表されるマーカー座標系の原点
の座標)との差を示している。本実施形態では、このマーカー61の相対位置の差を、外側撮像部(左)23aと外側撮像部(右)23bの取り付け位置の差によって生じるものであると考えて、外側撮像部(左)23aと外側撮像部(右)23bの取り付け位置を推定している。
First, as shown in FIG. 27, when (0, 0, 0) is multiplied by the left transformation matrix 75L, the coordinate V1 of the origin of the marker coordinate system expressed in the outer imaging unit (left) coordinate system is obtained. . The coordinate V1 represents the relative position of the marker 61 with respect to the outer imaging unit (left) 23a calculated based on the left real world image. Assuming that the coordinate V1 is a coordinate expressed in the outer imaging unit (right) coordinate system, the position indicated by the coordinate V1 moves to the position shown in FIG. 28 in the outer imaging unit (right) coordinate system. The coordinate V1 is further multiplied by the inverse matrix of the right transformation matrix 75R. Multiplying the inverse matrix of the right transformation matrix 75R corresponds to transforming coordinates expressed in the outer imaging unit (right) coordinate system to coordinates expressed in the marker coordinate system. Accordingly, the multiplication of the inverse matrix converts the coordinate V1 (FIG. 28) expressed in the outer imaging unit (right) coordinate system to the coordinate V0 expressed in the marker coordinate system as shown in FIG. become. The coordinates V0 calculated in this way are expressed in the relative position of the marker 61 with respect to the outer imaging section (left) 23a calculated based on the left real world image (that is, the outer imaging section (left) coordinate system). The coordinate of the origin of the marker coordinate system) and the relative position of the marker 61 with respect to the outer imaging unit (right) 23b calculated based on the right real world image (that is, the marker represented by the outer imaging unit (right) coordinate system). The difference from the coordinate of the origin of the coordinate system is shown. In the present embodiment, the difference in the relative position of the marker 61 is considered to be caused by the difference in the attachment position of the outer imaging unit (left) 23a and the outer imaging unit (right) 23b, and the outer imaging unit (left). 23a and the outer imaging unit (right) 23b are estimated to be attached.

ステップS51において、CPU311は、左変換行列75Lに基づいて、外側撮像部(左)座標系で表されたマーカー座標系の原点の座標V1を計算する。具体的には、(0,0,0)に対して、左変換行列75Lを乗算することで、外側撮像部(左)座標系で表されたマーカー座標系の原点の座標V1が求まる。なお、ここでは、外側撮像部(左)座標系で表されたマーカー座標系の原点の座標をV1としたが、これに替えて、外側撮像部(右)座標系で表されたマーカー座標系の原点の座標をV1としてもよい。   In step S51, the CPU 311 calculates the coordinate V1 of the origin of the marker coordinate system expressed in the outer imaging unit (left) coordinate system based on the left conversion matrix 75L. Specifically, by multiplying (0, 0, 0) by the left transformation matrix 75L, the coordinate V1 of the origin of the marker coordinate system expressed in the outer imaging unit (left) coordinate system is obtained. Here, the coordinate of the origin of the marker coordinate system expressed in the outer imaging unit (left) coordinate system is V1, but instead, the marker coordinate system expressed in the outer imaging unit (right) coordinate system. The origin coordinate may be V1.

ステップS52において、CPU311は、ステップS50で求めたV0の大きさ(原
点からの距離)(図29参照)を、ew(図12参照)に格納し、ステップS51で求めたV1のz軸値の絶対値(図27参照)を、ed(図12参照)に格納する。ただし、ewの値は、マーカー座標系における長さの単位で計算されており、実世界における長さの単位と一致するものではない。そして、前述の通り、外側撮像部(左)23aと外側撮像部(右)23bの間の実距離は既知(例えば3.5cm)であるので、この実距離とewの値を用いて、実世界における長さの単位と仮想空間における長さの単位とを一致させることができる。なお、マーカー61のサイズが既知であれば、マーカー画像の認識結果に基づいて求められるマーカー61のサイズと、実世界におけるマーカー61のサイズとの対応関係から、実世界における長さの単位と仮想空間における長さの単位とを一致させることもできる。
In step S52, the CPU 311 stores the magnitude of V0 (distance from the origin) (see FIG. 29) obtained in step S50 in ew (see FIG. 12), and the z-axis value of V1 obtained in step S51. The absolute value (see FIG. 27) is stored in ed (see FIG. 12). However, the value of ew is calculated in the unit of length in the marker coordinate system, and does not coincide with the unit of length in the real world. As described above, since the actual distance between the outer imaging unit (left) 23a and the outer imaging unit (right) 23b is known (for example, 3.5 cm), the actual distance and the value of ew are used. The unit of length in the world and the unit of length in virtual space can be matched. If the size of the marker 61 is known, the unit of length in the real world and the virtual one can be calculated from the correspondence between the size of the marker 61 obtained based on the recognition result of the marker image and the size of the marker 61 in the real world. It is also possible to match the unit of length in space.

なお、ゲーム装置10に対する外側撮像部(左)23aおよび外側撮像部(右)23bの取り付け精度の誤差により、外側撮像部(左)23aの撮影方向と外側撮像部(右)23bの撮影方向が平行になっていない場合には、このようにして計算される外側撮像部(左)23aと外側撮像部(右)23bの間の距離(ew)は、外側撮像部23とマーカー61との間の撮影方向についての距離に応じて変動する。それゆえ、後述するように、外側撮像部23とマーカー61との間の撮影方向についての距離が変化したときには、外側撮像部(左)23aと外側撮像部(右)23bの間の距離(後述するEyeWidth)は、そのときのマーカー・カメラ変換行列を用いて再計算される。   Note that due to an error in the accuracy of attaching the outer imaging unit (left) 23a and the outer imaging unit (right) 23b to the game apparatus 10, the shooting direction of the outer imaging unit (left) 23a and the shooting direction of the outer imaging unit (right) 23b are different. When not parallel, the distance (ew) between the outer imaging unit (left) 23a and the outer imaging unit (right) 23b calculated in this way is between the outer imaging unit 23 and the marker 61. Fluctuates according to the distance in the shooting direction. Therefore, as described later, when the distance in the shooting direction between the outer imaging unit 23 and the marker 61 changes, the distance between the outer imaging unit (left) 23a and the outer imaging unit (right) 23b (described later). EyeWidth) is recalculated using the marker-camera conversion matrix at that time.

なお、本実施形態では、ewをV0の大きさとしたが、V0の「左変換行列75Lにより示される外側撮像部(左)23aの位置と右変換行列75Rにより示される外側撮像部(右)23bの位置を結ぶ方向」の成分としてもよい。 In this embodiment, ew is set to the magnitude of V0. However, the position of the outer imaging section (left) 23a indicated by the left transformation matrix 75L and the outer imaging section (right) 23b indicated by the right transformation matrix 75R of V0. It may be a component of “direction connecting positions of”.

このようにして計算されたewは「外側撮像部(左)23aと外側撮像部(右)23bとの間のマーカー座標系における間隔」であるが、これを左仮想カメラ63Rと右仮想カメラ63Rとの間の間隔として用いる(後述のステップS65またはS68)。   The ew calculated in this way is the “interval in the marker coordinate system between the outer imaging unit (left) 23a and the outer imaging unit (right) 23b”, which is the left virtual camera 63R and the right virtual camera 63R. Used as an interval between (step S65 or S68 described later).

なお、ewを求める方法は、上述した方法以外にもある。例えば、(0,0,0)に左変換行列75Lを乗算することによって、外側撮像部(左)座標系で表されたマーカー座標系の原点の座標Vl(すなわち、外側撮像部(左)23aに対するマーカー61の相対位置)を求めるとともに、(0,0,0)に右変換行列75Rを乗算することによって、外側撮像部(右)で表されたマーカー座標系の原点の座標Vr(すなわち、外側撮像部(右)23bに対するマーカー61の相対位置)を求め、こうして求めた座標Vlと座標Vrの間の距離を計算することによって、ewを求めても構わない。   Note that there are other methods for obtaining ew than the method described above. For example, by multiplying (0, 0, 0) by the left transformation matrix 75L, the coordinates Vl of the origin of the marker coordinate system expressed in the outer imaging unit (left) coordinate system (that is, the outer imaging unit (left) 23a). Relative position of the marker 61 with respect to (0), and by multiplying (0, 0, 0) by the right transformation matrix 75R, the coordinate Vr of the origin of the marker coordinate system represented by the outer imaging unit (right) (ie, Ew may be obtained by obtaining the relative position of the marker 61 with respect to the outer imaging section (right) 23b and calculating the distance between the coordinates Vl and the coordinates Vr thus obtained.

ステップS53において、CPU311は、LogIndex(図12参照)の値が1(初期値)より大きいかどうかを判断し、1より大きい場合には処理はステップS57に進み、そうでない場合(すなわち1である場合)には処理はステップS54に進む。LogIndexは、後述する配列(LogWidth、LogDepth)の各要素を識別するための変数である。   In step S53, the CPU 311 determines whether or not the value of LogIndex (see FIG. 12) is larger than 1 (initial value). If it is larger than 1, the process proceeds to step S57, and if not (that is, 1). In the case), the process proceeds to step S54. LogIndex is a variable for identifying each element of an array (LogWidth, LogDepth) described later.

ステップS54において、CPU311は、ステップS52で求めたewの値を配列LogWidth[LogIndex]に格納する。さらに、ステップS52で求めたedの値を配列LogDepth[LogIndex]に格納する。さらに、LogIndexの値をインクリメントする。LogWidthは、ewの値を複数保持しておくための配列変数である。LogDepthは、edの値を複数保持しておくための配列変数である。   In step S54, the CPU 311 stores the value of ew obtained in step S52 in the array LogWidth [LogIndex]. Further, the value of ed obtained in step S52 is stored in the array LogDepth [LogIndex]. Further, the value of LogIndex is incremented. LogWidth is an array variable for holding a plurality of ew values. Log Depth is an array variable for holding a plurality of ed values.

ステップS55において、CPU311は、LogIndexの値がLogMaxの値
よりも大きいかどうかを判定し、大きい場合には処理はステップS56に進み、そうでない場合(すなわちLogIndexの値がLogMaxの値以下の場合)には、仮想カメラ間隔決定処理を終了する。
In step S55, the CPU 311 determines whether or not the value of LogIndex is larger than the value of LogMax. If it is larger, the process proceeds to step S56, and if not (that is, the value of LogIndex is equal to or smaller than the value of LogMax). The virtual camera interval determination process ends.

ステップS56において、CPU311は、LogWidthの各要素の平均値を計算し、当該平均値をEyeWidthに格納する。さらに、LogDepthの各要素の平均値を計算し、当該平均値をEyeDepthに格納する。さらに、EyeMeasureの値をfalseに設定する。さらに、マーカー認識モード79を、片画像認識モードに設定する。EyeDepthとは、左変換行列75Lが示す外側撮像部(左)23aのマーカー座標系における位置を示す座標(または右変換行列75Rが示す外側撮像部(右)23bのマーカー座標系における位置を示す座標)から、マーカー座標系の原点までの奥行き距離(深さ:撮影方向についての距離)を示す変数であって、後述する図17のステップS72における判断の際の基準値として用いられる。EyeDepthの初期値は0である。ステップS56の処理が終了すると、仮想カメラ間隔決定処理は終了する。   In step S56, the CPU 311 calculates the average value of each element of LogWidth, and stores the average value in EyeWidth. Further, the average value of each element of Log Depth is calculated, and the average value is stored in Eye Depth. Further, the value of EyeMeasure is set to false. Further, the marker recognition mode 79 is set to the one-image recognition mode. Eye Depth is a coordinate indicating the position in the marker coordinate system of the outer imaging unit (left) 23a indicated by the left transformation matrix 75L (or a coordinate indicating the position in the marker coordinate system of the outer imaging unit (right) 23b indicated by the right transformation matrix 75R. ) To the origin of the marker coordinate system (depth: distance in the photographing direction), and is used as a reference value for determination in step S72 of FIG. The initial value of EyeDepth is 0. When the process of step S56 ends, the virtual camera interval determination process ends.

ステップS57において、CPU311は、ステップS52で求めたewの値とLogWidth[1]の値の差の絶対値が、LogWidth[1]の値の10%よりも小さく、かつ、ステップS52で求めたedの値とLogDepth[1]の値の差の絶対値が、LogDepth[1]の値の10%よりも小さいかどうかを判断する。そして、ステップS57の判断結果が肯定である場合には処理はステップS54に進み、ステップS57の判断結果が否定である場合には処理はステップS58に進む。   In step S57, the CPU 311 determines that the absolute value of the difference between the ew value obtained in step S52 and the LogWidth [1] value is smaller than 10% of the LogWidth [1] value, and the ed obtained in step S52. It is determined whether the absolute value of the difference between the value of LogDepth [1] and the value of LogDepth [1] is less than 10% of the value of LogDepth [1]. If the determination result in step S57 is affirmative, the process proceeds to step S54. If the determination result in step S57 is negative, the process proceeds to step S58.

ステップS58において、CPU311は、LogIndexの値を1(初期値)にリセットして、仮想カメラ間隔決定処理を終了する。   In step S58, the CPU 311 resets the value of LogIndex to 1 (initial value), and ends the virtual camera interval determination process.

以上のように、仮想カメラ間隔決定処理では、左実世界画像に含まれるマーカー61の位置及び姿勢に基づいて計算される外側撮像部(左)23aの位置と、右実世界画像に含まれるマーカー61の位置及び姿勢に基づいて計算される外側撮像部(右)23bの位置とに基づいて、ewとedが計算される。このようにして計算されたewの値とedの値が、LogWidthとLogDepthに順次格納される。このとき、新たに計算されたewの値が、LogWidthに最初に格納されたewの値(すなわちLogWidth[1]の値)を基準とした所定範囲(±10%)から外れた場合や、新たに計算されたedの値が、LogDepthに最初に格納されたedの値(すなわちLogDepth[1]の値)を基準とした所定範囲(±10%)から外れた場合には、LogWidthとLogDepthに再び最初からewの値とedの値を格納し直す。したがって、逐次計算されるewの値とedの値に大きな変動が見られない場合(すなわち、ewの値とedの値が一定期間、ある程度安定している場合)にのみ、それらのewの値の平均値とそれらのedの値の平均値が、EyeWidthおよびEyeDepthに格納される。   As described above, in the virtual camera interval determination process, the position of the outer imaging unit (left) 23a calculated based on the position and orientation of the marker 61 included in the left real world image, and the marker included in the right real world image Ew and ed are calculated based on the position of the outer imaging unit (right) 23b calculated based on the position and orientation of 61. The value of ew and the value of ed calculated in this way are sequentially stored in LogWidth and LogDepth. At this time, when the newly calculated ew value deviates from the predetermined range (± 10%) based on the ew value first stored in LogWidth (that is, the value of LogWidth [1]), If the value of ed calculated in step 1 is out of a predetermined range (± 10%) based on the value of ed initially stored in Log Depth (that is, the value of Log Depth [1]), LogWidth and LogDepth The ew value and the ed value are stored again from the beginning. Therefore, only when the ew value and the ed value calculated sequentially do not show a large variation (that is, when the ew value and the ed value are stable to some extent for a certain period of time), the values of the ew values. And the average value of those ed values are stored in EyeWidth and EyeDepth.

ところで、ユーザがゲーム装置10を移動させたり回転させたりしているときには、外側撮像部23によって撮像される左実世界画像および右実世界画像がぼけやすく、マーカー61の認識精度が著しく低下し、逐次検出されるewの値やedの値が大きく変動しやすい。そこで、このような状況で検出される信頼性の低いewの値およびedの値に基づいてEyeWidthの値およびEyeDepthの値を決定することは避けるべきである。よって、本実施形態では、逐次計算されるewの値とedの値に大きな変動が見られない場合にのみ、それらの値に基づいてEyeWidthの値およびEyeDepthの値を決定している。また、複数回計算されたewの値およびedの値の平均値をEyeWidthの値およびEyeDepthの値として用いることにより、EyeWidthの値およびEyeDepthの値の精度を高めることができる。   By the way, when the user moves or rotates the game apparatus 10, the left real world image and the right real world image captured by the outer imaging unit 23 are easily blurred, and the recognition accuracy of the marker 61 is significantly reduced. The ew value and the ed value that are sequentially detected are likely to fluctuate greatly. Therefore, it should be avoided to determine the value of EyeWidth and the value of EyeDepth based on the value of ew and the value of ed with low reliability detected in such a situation. Therefore, in the present embodiment, the EyeWidth value and the EyeDepth value are determined based on the values of ew and ed, which are sequentially calculated, only when there is no significant change. Further, by using the average value of the ew value and the ed value calculated multiple times as the EyeWidth value and the EyeDepth value, the accuracy of the EyeWidth value and the EyeDepth value can be improved.

(ビュー行列生成処理)
次に、更新処理(図15)におけるステップS44のビュー行列生成処理の詳細について、図17のフローチャートを参照して説明する。
(View matrix generation processing)
Next, details of the view matrix generation processing in step S44 in the update processing (FIG. 15) will be described with reference to the flowchart of FIG.

図17のステップS60において、CPU311は、EyeWidthが0より大きいかどうかを判断し、0より大きい場合には処理はステップS63に進み、そうでない場合(すなわち、0である場合)には処理はステップS61に進む。   In step S60 of FIG. 17, the CPU 311 determines whether EyeWidth is greater than 0. If it is greater than 0, the process proceeds to step S63. If not (ie, 0), the process proceeds to step S63. Proceed to S61.

ステップS61において、CPU311は、表示モードが同期表示モードであるかどうかを判断する。そして、同期表示モードである場合には、ビュー行列生成処理を終了し、そうでない場合(すなわち非同期表示モードである場合)には、処理はステップS62に進む。   In step S61, the CPU 311 determines whether the display mode is the synchronous display mode. If the display mode is the synchronous display mode, the view matrix generation process is terminated. If not (that is, the asynchronous display mode is selected), the process proceeds to step S62.

ステップS62において、CPU311は、ARActiveの値をfalseに設定する。そして、ビュー行列生成処理を終了する。   In step S62, the CPU 311 sets the value of ARAactive to false. Then, the view matrix generation process ends.

ステップS63において、CPU311は、左変換行列75Lを参照して、左実世界画像のマーカー認識に成功しているかどうかを判断し、左実世界画像のマーカー認識に成功している場合には処理はステップS64に進み、そうでない場合(すなわち、左変換行列75Lの値がヌル値である場合)には処理はステップS66に進む。   In step S63, the CPU 311 refers to the left transformation matrix 75L to determine whether or not marker recognition of the left real world image has succeeded. If the marker recognition of the left real world image has succeeded, the processing is performed. The process proceeds to step S64, and if not (that is, if the value of the left conversion matrix 75L is a null value), the process proceeds to step S66.

ステップS64において、CPU311は、左変換行列75Lの値を、左ビュー行列76Lに格納する。これは、左実世界画像に含まれるマーカー61の位置及び姿勢に基づいて計算されたマーカー座標系における外側撮像部(左)23aの位置及び姿勢を、左目用の仮想空間画像を生成するための左仮想カメラ63Lの位置及び姿勢としてそのまま扱うことを意味する。   In step S64, the CPU 311 stores the value of the left conversion matrix 75L in the left view matrix 76L. This is to generate a virtual space image for the left eye based on the position and orientation of the outer imaging unit (left) 23a in the marker coordinate system calculated based on the position and orientation of the marker 61 included in the left real world image. This means that the left virtual camera 63L is handled as it is as the position and orientation.

ステップS65において、CPU311は、左ビュー行列76Lの値に対して平行移動行列(−EyeWidth,0,0)を乗算した結果の値を、右ビュー行列76Rに格納する。これは、図30に示すように、前述のステップS64において設定された仮想空間のワールド座標系における左仮想カメラ63Lの位置から、左仮想カメラ座標系のx軸の正方向にEyeWidthの値だけずらした位置を、右目用の仮想空間画像を生成するための右仮想カメラ63Rの位置として扱うことを意味する。また、右仮想カメラ63Rの姿勢は、左仮想カメラ63Lの姿勢と同じとなる(すなわち、左仮想カメラ座標系のx軸,y軸,z軸が、右仮想カメラ座標系のx軸,y軸,z軸とそれぞれ平行となる)。これにより、左仮想カメラ63Lの位置及び姿勢と、右仮想カメラ63Rの位置及び姿勢との整合性が保たれるので、上側LCD22において正常に立体視できるように仮想オブジェクト62を表示することができる。   In step S65, the CPU 311 stores the value obtained by multiplying the value of the left view matrix 76L by the translation matrix (−EyeWidth, 0, 0) in the right view matrix 76R. As shown in FIG. 30, this is shifted from the position of the left virtual camera 63L in the world coordinate system of the virtual space set in step S64 described above by the value of EyeWidth in the positive direction of the x axis of the left virtual camera coordinate system. This means that the detected position is treated as the position of the right virtual camera 63R for generating the virtual space image for the right eye. Further, the posture of the right virtual camera 63R is the same as the posture of the left virtual camera 63L (that is, the x-axis, y-axis, and z-axis of the left virtual camera coordinate system are the x-axis, y-axis of the right virtual camera coordinate system). , Parallel to the z axis). Thereby, the consistency between the position and orientation of the left virtual camera 63L and the position and orientation of the right virtual camera 63R is maintained, so that the virtual object 62 can be displayed so that it can be normally stereoscopically viewed on the upper LCD 22. .

ステップS66において、CPU311は、右変換行列75Rを参照して、右実世界画像のマーカー認識に成功しているかどうかを判断し、右実世界画像のマーカー認識に成功している場合には処理はステップS67に進み、そうでない場合(すなわち、右変換行列75Rの値がヌル値である場合)にはビュー行列生成処理を終了する。   In step S66, the CPU 311 refers to the right transformation matrix 75R to determine whether the marker recognition of the right real world image is successful. The process proceeds to step S67, and if not (that is, if the value of the right transformation matrix 75R is a null value), the view matrix generation process ends.

ステップS67において、CPU311は、右変換行列75Rの値を、右ビュー行列76Rに格納する。これは、右実世界画像に含まれるマーカー61の位置及び姿勢に基づいて計算されたマーカー座標系における外側撮像部(右)23bの位置及び姿勢を、右目用の仮想空間画像を生成するための右仮想カメラ63Rの位置及び姿勢としてそのまま扱うことを意味する。   In step S67, the CPU 311 stores the value of the right transformation matrix 75R in the right view matrix 76R. This is to generate a virtual space image for the right eye based on the position and orientation of the outer imaging unit (right) 23b in the marker coordinate system calculated based on the position and orientation of the marker 61 included in the right real world image. This means that the position and orientation of the right virtual camera 63R are handled as they are.

ステップS68において、CPU311は、右ビュー行列76Rの値に対して平行移動行列(EyeWidth,0,0)を乗算した結果の値を、左ビュー行列76Lに格納する。これは、図31に示すように、前述のステップS67において設定された仮想空間のワールド座標系における右仮想カメラ63Rの位置から、右仮想カメラ座標系のx軸の負方向にEyeWidthの値だけずらした位置を、左目用の仮想空間画像を生成するための左仮想カメラ63Lの位置として扱うことを意味する。また、左仮想カメラ63Lの姿勢は、右仮想カメラ63Rの姿勢と同じとなる(すなわち、左仮想カメラ座標系のx軸,y軸,z軸が、右仮想カメラ座標系のx軸,y軸,z軸とそれぞれ平行となる)。これにより、左仮想カメラ63Lの位置及び姿勢と、右仮想カメラ63Rの位置及び姿勢との整合性が保たれるので、上側LCD22において正常に立体視できるように仮想オブジェクト62を表示することができる。   In step S68, the CPU 311 stores the value obtained by multiplying the value of the right view matrix 76R by the translation matrix (EyeWidth, 0, 0) in the left view matrix 76L. As shown in FIG. 31, this is shifted from the position of the right virtual camera 63R in the world coordinate system of the virtual space set in step S67 described above by the value of EyeWidth in the negative direction of the x axis of the right virtual camera coordinate system. This position is treated as the position of the left virtual camera 63L for generating the virtual space image for the left eye. Further, the posture of the left virtual camera 63L is the same as the posture of the right virtual camera 63R (that is, the x-axis, y-axis, and z-axis of the left virtual camera coordinate system are the x-axis, y-axis of the right virtual camera coordinate system). , Parallel to the z axis). Thereby, the consistency between the position and orientation of the left virtual camera 63L and the position and orientation of the right virtual camera 63R is maintained, so that the virtual object 62 can be displayed so that it can be normally stereoscopically viewed on the upper LCD 22. .

このように、本実施例では、一方の仮想カメラ(例えば、左仮想カメラ63L)の位置および姿勢については、一方の外側撮像部(例えば、外側撮像部(左)23a)の撮影画像から算出された「マーカー・カメラ変換行列」を用いて設定するが(より具体的には、そのまま用いる)、他方の仮想カメラ(例えば、右仮想カメラ63R)の位置および姿勢については、他方の外側撮像部(例えば、外側撮像部(右)23b)の撮影画像から算出された「マーカー・カメラ変換行列」を用いずに設定する。   Thus, in the present embodiment, the position and orientation of one virtual camera (for example, the left virtual camera 63L) is calculated from the captured image of one outer imaging unit (for example, the outer imaging unit (left) 23a). The “marker / camera conversion matrix” is set (more specifically, it is used as it is), but the position and orientation of the other virtual camera (for example, the right virtual camera 63R) are set on the other outer imaging unit ( For example, the setting is made without using the “marker / camera conversion matrix” calculated from the captured image of the outer imaging section (right) 23b).

ステレオカメラでARの立体視表示をおこなう場合においては、仮想カメラは右用と左用の2つを設定する必要があり、また、「マーカー・カメラ変換行列」は外側撮像部(左)23aによる変換行列(左変換行列25L)と外側撮像部(右)23bによる変換行列(右変換行列25R)がある。本実施形態では、各仮想カメラ63L,63Rを設定するときに、各変換行列25L,25Rを用いるのではなくて、1つの変換行列を設定して(変換行列25L,25Rの一方の変換行列をそのまま用いて、または、両方の変換行列25L,25Rから別の新たな1つの変換行列を生成して(平均位置、平均姿勢とするなど))、その1つの変換行列を用いて両方の仮想カメラ63L,63Rの位置および姿勢を設定する。これにより、AR認識における精度の問題を解消することができる。   When performing stereoscopic display of AR with a stereo camera, it is necessary to set two virtual cameras, one for the right and one for the left, and the “marker / camera conversion matrix” is converted by the outer imaging unit (left) 23a. There is a matrix (left transformation matrix 25L) and a transformation matrix (right transformation matrix 25R) by the outer imaging unit (right) 23b. In the present embodiment, when setting the virtual cameras 63L and 63R, instead of using the conversion matrices 25L and 25R, one conversion matrix is set (one conversion matrix of the conversion matrices 25L and 25R is set). Use as it is, or generate another new transformation matrix from both transformation matrices 25L and 25R (eg, average position, average orientation, etc.) and use both transformation cameras to create both virtual cameras. The positions and postures of 63L and 63R are set. Thereby, the problem of accuracy in AR recognition can be solved.

ステップS69において、CPU311は、ARActiveの値をtrueに設定する。これにより、実世界画像に対する仮想オブジェクト62の合成表示が開始または再開される。   In step S69, the CPU 311 sets the value of ARAActive to true. Thereby, the composite display of the virtual object 62 with respect to the real world image is started or restarted.

ステップS70において、CPU311は、EyeMeasureの値がtrueかどうかを判断し、trueである場合にはビュー行列生成処理を終了し、そうでない場合(すなわちfalseである場合)には処理はステップS71に進む。   In step S <b> 70, the CPU 311 determines whether the value of EyeMeasure is true. If it is true, the view matrix generation process ends. If not (i.e., if false), the process proceeds to step S <b> 71. .

ステップS71において、CPU311は、ステップS64またはステップS68で決定された左ビュー行列76Lに基づいて、左仮想カメラ座標系で表された仮想空間の原点の座標Vを計算する。具体的には、図32に示すように、(0,0,0)に対して左ビュー行列76Lを乗算することで、左仮想カメラ座標系で表された仮想空間の原点の座標Vが求まる。なお、ここでは、左仮想カメラ座標系で表された仮想空間の原点の座標をVとしたが、これに替えて、ステップS65またはステップS67で決定された右ビュー行列76Rに基づいて計算された、右仮想カメラ座標系で表された仮想空間の原点の座標をVとしてもよい。このようにして求められたVは、外側撮像部(左)座標系におけるマーカー61の位置と実質的に同一である(ただし、このVの値は、仮想空間またはマーカー座標系における長さの単位で計算されており、実世界における長さの単位と一致するものではない。)。   In step S71, the CPU 311 calculates the coordinate V of the origin of the virtual space represented by the left virtual camera coordinate system based on the left view matrix 76L determined in step S64 or step S68. Specifically, as shown in FIG. 32, the coordinate V of the origin of the virtual space represented by the left virtual camera coordinate system is obtained by multiplying (0, 0, 0) by the left view matrix 76L. . Here, the coordinate of the origin of the virtual space represented by the left virtual camera coordinate system is V, but instead of this, the calculation is performed based on the right view matrix 76R determined in step S65 or step S67. The coordinate of the origin of the virtual space represented by the right virtual camera coordinate system may be V. The V thus obtained is substantially the same as the position of the marker 61 in the outer imaging unit (left) coordinate system (however, the value of V is a unit of length in the virtual space or the marker coordinate system). And does not match the unit of length in the real world.)

ステップS72において、CPU311は、Vのz座標値の絶対値(|V.z|)とE
yeDepthの値との差の絶対値が、EyeDepthの値の20%よりも大きいかどうかを判断し、大きい場合には処理はステップS73に進み、そうでない場合にはビュー行列生成処理を終了する。|V.z|は、外側撮像部23からマーカー61までの撮影方向についての距離(深さ)と実質的に同一である。すなわち、ステップS72では、仮想カメラ間隔決定処理(図16)においてEyeWidthの値を計算したときを基準として、外側撮像部23からマーカー61までの奥行き距離(深さ)が、±20%の範囲を超えて変化したかどうかを判断している。
In step S72, the CPU 311 determines the absolute value (| V.z |) of the z coordinate value of V and E
It is determined whether or not the absolute value of the difference from the value of yesDepth is greater than 20% of the value of EyeDepth. If so, the process proceeds to step S73. If not, the view matrix generation process ends. | V. z | is substantially the same as the distance (depth) in the imaging direction from the outer imaging unit 23 to the marker 61. That is, in step S72, the depth distance (depth) from the outer imaging unit 23 to the marker 61 is within a range of ± 20% with reference to the time when the EyeWidth value is calculated in the virtual camera interval determination process (FIG. 16). Judging whether it has changed beyond that.

ステップS73において、CPU311は、EyeMeasureの値をtrueに設定し、さらに、LogIndexの値を1にリセットし、さらに、マーカー認識モード79を両画像認識モードに設定して、ビュー行列生成処理を終了する。この結果、仮想カメラ間隔決定処理によるEyeWidthの計算処理が再び開始されることになる。   In step S73, the CPU 311 sets the value of EyeMeasure to true, further resets the value of LogIndex to 1, sets the marker recognition mode 79 to both image recognition modes, and ends the view matrix generation process. . As a result, the EyeWidth calculation process by the virtual camera interval determination process is started again.

上記のように、仮想カメラ間隔決定処理において、EyeWidthの値を前回計算したときを基準として、外側撮像部23からマーカー61までの奥行き距離(深さ)が所定範囲を超えて変化したときに、EyeWidthを再計算する理由は、ゲーム装置10に対する外側撮像部(左)23aおよび外側撮像部(右)23bの取り付け精度の誤差により、外側撮像部23からマーカー61までの奥行き距離(深さ)に応じて最適な仮想カメラ間隔(EyeWidth)が変化するからである。例えば、外側撮像部(左)23aの撮影方向と外側撮像部(右)23bの撮影方向が平行になっていない状況において、図33に示すように外側撮像部23からマーカー61までの奥行距離がD1であるときに仮想カメラ間隔決定処理において計算されるEyeWidthの値をEyeWidth1とすると、仮想空間において、左仮想カメラ63Lと右仮想カメラ63Rは、図34に示すようにEyeWidth1の間隔を開けて配置されるのが適切である(そうすることによって、例えば仮想空間の原点に配置した仮想オブジェクトが、実世界画像のマーカー61上に実在するかのように、適切に立体表示されるようになる。)。そして、図35に示すように外側撮像部23からマーカー61までの奥行距離がD1よりも小さいD2に変化した場合には、仮想カメラ間隔決定処理において計算されるEyeWidthの値は、EyeWidth1よりも小さいEyeWidth2となり、仮想空間において、左仮想カメラ63Lと右仮想カメラ63Rは、図36に示すようにEyeWidth2の間隔を開けて配置されるのが適切である。   As described above, in the virtual camera interval determination process, when the depth distance (depth) from the outer imaging unit 23 to the marker 61 has changed beyond a predetermined range on the basis of the previous calculation of the value of EyeWidth, The reason for recalculating EyeWidth is the depth distance (depth) from the outer imaging unit 23 to the marker 61 due to an error in the accuracy of attaching the outer imaging unit (left) 23a and the outer imaging unit (right) 23b to the game apparatus 10. This is because the optimal virtual camera interval (EyeWidth) changes accordingly. For example, in a situation where the shooting direction of the outer imaging unit (left) 23a and the shooting direction of the outer imaging unit (right) 23b are not parallel, the depth distance from the outer imaging unit 23 to the marker 61 is as shown in FIG. Assuming that EyeWidth calculated in the virtual camera interval determination processing when D1 is EyeWidth1, in the virtual space, the left virtual camera 63L and the right virtual camera 63R are arranged with an interval of EyeWidth1 as shown in FIG. (By doing so, for example, a virtual object placed at the origin of the virtual space is appropriately displayed in a three-dimensional manner as if it existed on the marker 61 of the real world image. ). Then, when the depth distance from the outer imaging unit 23 to the marker 61 is changed to D2 smaller than D1, as shown in FIG. 35, the EyeWidth value calculated in the virtual camera interval determination process is smaller than EyeWidth1. As shown in FIG. 36, it is appropriate that the left virtual camera 63L and the right virtual camera 63R are arranged with an interval of EyeWidth 2 as shown in FIG.

(メイン実世界画像設定処理)
次に、更新処理(図15)におけるステップS45のメイン実世界画像設定処理の詳細について、図18のフローチャートを参照して説明する。
(Main real world image setting process)
Next, details of the main real world image setting process of step S45 in the update process (FIG. 15) will be described with reference to the flowchart of FIG.

図18のステップS80において、CPU311は、ARActiveの値がtrueかどうかを判断し、trueである場合には、処理はステップS81に進み、そうでない場合(すなわちARActiveの値がfalseである場合)には、メイン実世界画像設定処理を終了する。   In step S80 of FIG. 18, the CPU 311 determines whether or not the value of ARAactive is true. If true, the process proceeds to step S81, and if not (that is, if the value of ARAactive is false). Ends the main real-world image setting process.

ステップS81において、CPU311は、左射影行列77Lおよび右射影行列77Rを生成する。左射影行列77Lは、左仮想カメラ63Lから見た仮想空間の描画範囲を規定する行列であって、本実施形態では、図37に示すように、メイン処理のステップS23で決定した左実世界画像の描画範囲に対応するような左射影行列77Lが生成される。右射影行列77Rは、右仮想カメラ63Rから見た仮想空間の描画範囲を規定する行列であって、本実施形態では、図38に示すように、メイン処理のステップS27で決定した右実世界画像の描画範囲に対応するような右射影行列77Rが生成される。   In step S81, the CPU 311 generates a left projection matrix 77L and a right projection matrix 77R. The left projection matrix 77L is a matrix that defines the drawing range of the virtual space viewed from the left virtual camera 63L, and in this embodiment, as shown in FIG. 37, the left real world image determined in step S23 of the main process. A left projection matrix 77L corresponding to the drawing range is generated. The right projection matrix 77R is a matrix that defines the drawing range of the virtual space viewed from the right virtual camera 63R. In this embodiment, as shown in FIG. 38, the right real world image determined in step S27 of the main process is shown in FIG. A right projection matrix 77R corresponding to the drawing range is generated.

具体的には、左仮想カメラ63Lの射影行列は、外側撮像部(左)23aの水平方向の
画角と、当該左仮想カメラの水平方向の画角との比が、左実世界画像の横方向の長さにおける描画範囲の横方向の位置および大きさを表す比と、同じになるような画角を持つ視体積を定義する射影行列として設定される。
Specifically, the projection matrix of the left virtual camera 63L indicates that the ratio of the horizontal field angle of the outer imaging unit (left) 23a and the horizontal field angle of the left virtual camera is the horizontal direction of the left real world image. It is set as a projection matrix that defines a visual volume having a field angle that is the same as the ratio representing the horizontal position and size of the drawing range in the length of the direction.

ステップS82において、CPU311は、メイン実世界画像が左実世界画像かどうかを判断し、メイン実世界画像が左実世界画像である場合には処理はステップS83に進み、そうでない場合(すなわち、メイン実世界画像が右実世界画像である場合)には処理はステップS86に進む。   In step S82, the CPU 311 determines whether or not the main real world image is a left real world image. If the main real world image is a left real world image, the process proceeds to step S83; If the real world image is a right real world image), the process proceeds to step S86.

ステップS83において、CPU311は、(0,0,0,1)に左ビュー行列76Lおよび左射影行列77Lを乗算することによって、ベクトルVを求める。   In step S83, the CPU 311 obtains a vector V by multiplying (0, 0, 0, 1) by the left view matrix 76L and the left projection matrix 77L.

ステップS84において、CPU311は、ベクトルVの第1成分(x)を第4成分(w)で乗算した結果の値(V.x/V.w)が0.5より大きいかどうかを判断し、0.5より大きい場合には処理はステップS85に進み、そうでない場合にはメイン実世界画像設定処理を終了する。上記のV.x/V.wの値は、左目用の仮想空間画像上で、仮想空間のワールド座標系の原点が、画像の左右方向のどの位置に存在するかを示している(なお、「左目用の仮想空間画像上で、仮想空間のワールド座標系の原点が、画像の左右方向のどの位置に存在するか」は、「外側撮像部(左)23aの撮影画像上で、マーカー座標系の原点が、画像の左右方向のどの位置に存在するか」と等価である)。仮想空間のワールド座標系の原点が左目用の仮想空間画像の中央に位置するときは、V.x/V.wの値が0となり、仮想空間のワールド座標系の原点が左目用の仮想空間画像の左端に近づくほど、V.x/V.wの値が−1.0に近づき、仮想空間のワールド座標系の原点が左目用の仮想空間画像の右端に近づくほど、V.x/V.wの値が+1.0に近づく。V.x/V.wの値が0.5より大きいということは、仮想空間のワールド座標系の原点が左目用の仮想空間画像の右端領域(図39の斜線領域)に位置することを意味する。言い換えれば、外側撮像部(左)23aによって撮像された左実世界画像の右端領域にマーカー61が位置していることを意味する。   In step S84, the CPU 311 determines whether the value (V.x / V.w) obtained by multiplying the first component (x) of the vector V by the fourth component (w) is greater than 0.5. If it is greater than 0.5, the process proceeds to step S85; otherwise, the main real world image setting process is terminated. V. above. x / V. The value of w indicates the position of the origin of the world coordinate system of the virtual space in the left-right direction on the left-eye virtual space image (in the left-eye virtual space image Thus, “where the origin of the world coordinate system in the virtual space is located in the horizontal direction of the image” is “on the captured image of the outer imaging unit (left) 23a, the origin of the marker coordinate system is the left and right of the image. Is equivalent to “where in the direction”). When the origin of the virtual space world coordinate system is located at the center of the virtual space image for the left eye, x / V. As the value of w becomes 0 and the origin of the world coordinate system of the virtual space approaches the left end of the virtual space image for the left eye, V. x / V. As the value of w approaches -1.0 and the origin of the virtual space world coordinate system approaches the right end of the virtual space image for the left eye, V. x / V. The value of w approaches +1.0. V. x / V. That the value of w is larger than 0.5 means that the origin of the world coordinate system of the virtual space is located in the right end region (shaded region in FIG. 39) of the virtual space image for the left eye. In other words, it means that the marker 61 is located in the right end region of the left real world image imaged by the outer imaging unit (left) 23a.

ステップS85において、CPU311は、メイン実世界画像を左実世界画像から右実世界画像へと変更する。すなわち、左仮想カメラ63Lによる仮想空間画像上で、仮想空間の原点が、画像の中心よりも所定距離だけ(または画像の左右幅の所定割合だけ)右の位置よりも右側に存在するときに、メイン実世界画像を右実世界画像に変更する。または、外側撮像部(左)23aによる撮影画像上で、マーカー座標系の原点が、画像の中心よりも所定距離だけ(または画像の左右幅の所定割合だけ)右の位置よりも右側に存在するときに、メイン実世界画像を右実世界画像に変更する。これにより、例えば左実世界画像においてマーカー61の位置が徐々に右方向へ移動して、最終的に左実世界画像からマーカー61が消えてしまったとしても、左実世界画像からマーカー61が消えてしまう前にメイン実世界画像が右実世界画像へと変更されるので、片画像認識モードにおいて継続的にマーカー61を認識することが可能となる。ステップS85の処理が終わると、メイン実世界画像設定処理を終了する。   In step S85, the CPU 311 changes the main real world image from the left real world image to the right real world image. That is, on the virtual space image by the left virtual camera 63L, when the origin of the virtual space exists on the right side of the right position by a predetermined distance (or a predetermined ratio of the left and right width of the image) from the center of the image, Change the main real world image to the right real world image. Alternatively, the origin of the marker coordinate system exists on the right side of the right position by a predetermined distance from the center of the image (or by a predetermined ratio of the horizontal width of the image) on the image captured by the outer imaging unit (left) 23a. When changing the main real world image to the right real world image. Thereby, for example, even if the position of the marker 61 gradually moves to the right in the left real world image and the marker 61 disappears from the left real world image, the marker 61 disappears from the left real world image. Since the main real world image is changed to the right real world image before it is lost, the marker 61 can be continuously recognized in the one-image recognition mode. When the process of step S85 is completed, the main real world image setting process is terminated.

ステップS86において、CPU311は、(0,0,0,1)に右ビュー行列76Rおよび右射影行列77Rを乗算することによって、ベクトルVを求める。   In step S86, the CPU 311 obtains the vector V by multiplying (0, 0, 0, 1) by the right view matrix 76R and the right projection matrix 77R.

ステップS87において、CPU311は、ベクトルVの第1成分(x)を第4成分(w)で乗算した結果の値(V.x/V.w)が−0.5より小さいかどうかを判断し、−0.5より小さい場合には処理はステップS87に進み、そうでない場合にはメイン実世界画像設定処理を終了する。上記のV.x/V.wの値は、右目用の仮想空間画像上で、仮想空間のワールド座標系の原点が、画像の左右方向のどの位置に存在するかを示してい
る。仮想空間のワールド座標系の原点が右目用の仮想空間画像の中央に位置するときは、V.x/V.wの値が0となり、仮想空間のワールド座標系の原点が右目用の仮想空間画像の左端に近づくほど、V.x/V.wの値が−1.0に近づき、仮想空間のワールド座標系の原点が右目用の仮想空間画像の右端に近づくほど、V.x/V.wの値が+1.0に近づく。V.x/V.wの値が−0.5より小さいということは、仮想空間のワールド座標系の原点が右目用の仮想空間画像の左端領域(図40の斜線領域)に位置することを意味する。言い換えれば、外側撮像部(右)23bによって撮像された右実世界画像の左端領域にマーカー61が位置していることを意味する。
In step S87, the CPU 311 determines whether the value (V.x / V.w) obtained by multiplying the first component (x) of the vector V by the fourth component (w) is less than -0.5. If the value is smaller than -0.5, the process proceeds to step S87. If not, the main real world image setting process ends. V. above. x / V. The value of w indicates the position of the origin of the world coordinate system of the virtual space in the left-right direction on the virtual space image for the right eye. When the origin of the virtual space world coordinate system is located at the center of the virtual space image for the right eye, x / V. As the value of w becomes 0 and the origin of the world coordinate system of the virtual space approaches the left end of the virtual space image for the right eye, V. x / V. As the value of w approaches -1.0 and the origin of the virtual space world coordinate system approaches the right end of the virtual space image for the right eye, V.V. x / V. The value of w approaches +1.0. V. x / V. That the value of w is smaller than −0.5 means that the origin of the virtual space world coordinate system is located in the left end region (shaded region in FIG. 40) of the right-eye virtual space image. In other words, it means that the marker 61 is located in the left end region of the right real world image imaged by the outer imaging unit (right) 23b.

ステップS88において、CPU311は、メイン実世界画像を右実世界画像から左実世界画像へと変更する。これにより、例えば右実世界画像においてマーカー61の位置が徐々に左方向へ移動して、最終的に右実世界画像からマーカー61が消えてしまったとしても、右実世界画像からマーカー61が消えてしまう前にメイン実世界画像が左実世界画像へと変更されるので、片画像認識モードにおいて継続的にマーカー61を認識することが可能となる。ステップS88の処理が終わると、メイン実世界画像設定処理を終了する。   In step S88, the CPU 311 changes the main real world image from the right real world image to the left real world image. Thereby, for example, even if the position of the marker 61 gradually moves leftward in the right real world image, and the marker 61 disappears from the right real world image, the marker 61 disappears from the right real world image. Since the main real world image is changed to the left real world image before it is lost, the marker 61 can be continuously recognized in the one-image recognition mode. When the process of step S88 ends, the main real world image setting process ends.

(表示モード切替処理)
次に、更新処理(図15)におけるステップS46の表示モード切替処理の詳細について、図19のフローチャートを参照して説明する。
(Display mode switching process)
Next, details of the display mode switching process of step S46 in the update process (FIG. 15) will be described with reference to the flowchart of FIG.

図19のステップS90において、CPU311は、表示モードが同期表示モードかどうかを判断し、同期表示モードである場合には処理はステップS91に進み、そうでない場合(すなわち、非同期表示モードである場合)には処理はステップS96に進む。   In step S90 of FIG. 19, the CPU 311 determines whether or not the display mode is the synchronous display mode. If the display mode is the synchronous display mode, the process proceeds to step S91; otherwise (that is, the asynchronous display mode). In step S96, the process proceeds to step S96.

ステップS91において、CPU311は、EyeWidthが0より大きく、かつ、左実世界画像および右実世界画像のいずれかの実世界画像のマーカー認識に成功しているかどうかを判断する。そして、判断結果が肯定である場合には、処理はステップS92に進み、判断結果が否定である場合(すなわち、EyeWidthが0であるか、もしくは、左実世界画像および右実世界画像の両方の実世界画像のマーカー認識に失敗している場合)には、処理はステップS93に進む。   In step S <b> 91, the CPU 311 determines whether EyeWidth is greater than 0 and whether the marker recognition of either the left real world image or the right real world image is successful. If the determination result is affirmative, the process proceeds to step S92, and if the determination result is negative (that is, EyeWidth is 0, or both the left real world image and the right real world image are both). If the real world image marker recognition has failed), the process proceeds to step S93.

ステップS92において、CPU311は、SyncCount(図12参照)の値を20に設定する。SyncCountは、表示モードを同期表示モードから非同期表示モードへと切り替えるタイミングを決定するための変数である。ステップS92の処理が終わると、表示モード切替処理を終了する。   In step S92, the CPU 311 sets the value of SyncCount (see FIG. 12) to 20. SyncCount is a variable for determining the timing for switching the display mode from the synchronous display mode to the asynchronous display mode. When the process of step S92 ends, the display mode switching process ends.

ステップS93において、CPU311は、SyncCountの値をデクリメントする。   In step S93, the CPU 311 decrements the value of SyncCount.

ステップS94において、CPU311は、SyncCountの値が0より大きいかどうかを判断し、0より大きい場合には表示モード切替処理を終了、そうでない場合(すなわち、0である場合)には処理はステップS95に進む。   In step S94, the CPU 311 determines whether or not the value of SyncCount is greater than 0. If it is greater than 0, the display mode switching process is terminated. If not (ie, 0), the process proceeds to step S95. Proceed to

ステップS95において、CPU311は、LogIndexの値を1に設定し、さらにEyeWidthおよびEyeDepthの値を0に設定し、さらに表示モード78を同期表示モードから非同期表示モードへと変更し、さらにマーカー認識モード79を両画像認識モードに設定する。ステップS95の処理が終わると、表示モード切替処理を終了する。   In step S95, the CPU 311 sets the value of LogIndex to 1, further sets the values of EyeWidth and EyeDepth to 0, further changes the display mode 78 from the synchronous display mode to the asynchronous display mode, and further sets the marker recognition mode 79. Is set to both image recognition mode. When the process of step S95 ends, the display mode switching process ends.

ステップS96において、CPU311は、EyeWidthが0より大きく、かつ、左実世界画像および右実世界画像のいずれかの実世界画像のマーカー認識に成功しているかどうかを判断する。そして、判断結果が肯定である場合には、処理はステップS97に進み、判断結果が否定である場合(すなわち、EyeWidthが0であるか、もしくは、左実世界画像および右実世界画像の両方の実世界画像のマーカー認識に失敗している場合)には、表示モード切替処理を終了する。   In step S <b> 96, the CPU 311 determines whether EyeWidth is greater than 0 and whether the real world image of either the left real world image or the right real world image has been successfully recognized. If the determination result is affirmative, the process proceeds to step S97, and if the determination result is negative (that is, EyeWidth is 0, or both the left real world image and the right real world image are displayed). When the real world image marker recognition has failed), the display mode switching process is terminated.

ステップS97において、CPU311は、SyncCountの値を20に設定し、さらに表示モードを非同期表示モードから同期表示モードへと変更する。ステップS97の処理が終わると、表示モード切替処理を終了する。   In step S97, the CPU 311 sets the value of SyncCount to 20, and further changes the display mode from the asynchronous display mode to the synchronous display mode. When the process of step S97 ends, the display mode switching process ends.

上記のように、表示モード切替処理によって、同期表示モードと非同期表示モードとの間で表示モードが適宜に切り替えられる。より具体的には、画像表示プログラムの実行が開始された直後は表示モードは非同期表示モードとなり、上側LCD22には常に最新の実世界画像が表示される。その後、マーカー61が認識されて、上側LCD22に表示される実世界画像に仮想オブジェクト62を合成表示できる状態になった時点で、表示モードは非同期表示モードから同期表示モードへと変化する。同期表示モードでは、仮想オブジェクト62を実世界画像内の正しい位置に合成表示するために、最後にマーカー61を認識することができた実世界画像(必ずしも最新の実世界画像とは限らない)に仮想オブジェクト62を合成した合成画像が、上側LCD22に表示される。これにより、実世界画像に合成表示される仮想オブジェクト62の位置ズレを防止することができる。その後、マーカー61を認識することができない状態が一定時間継続した時点で、表示モードは同期表示モードから非同期表示モードへと変化し、上側LCD22には常に最新の実世界画像が表示されるようになる。これにより、マーカー61を認識することができない状態が続いたときに、上側LCD22に古い画像が表示され続けてしまうことを防止することができる。   As described above, the display mode is appropriately switched between the synchronous display mode and the asynchronous display mode by the display mode switching process. More specifically, immediately after the execution of the image display program is started, the display mode is the asynchronous display mode, and the latest real world image is always displayed on the upper LCD 22. Thereafter, when the marker 61 is recognized and the virtual object 62 can be synthesized and displayed on the real world image displayed on the upper LCD 22, the display mode changes from the asynchronous display mode to the synchronous display mode. In the synchronous display mode, in order to synthesize and display the virtual object 62 at the correct position in the real world image, the real world image (which is not necessarily the latest real world image) that can finally recognize the marker 61 is displayed. A synthesized image obtained by synthesizing the virtual object 62 is displayed on the upper LCD 22. As a result, it is possible to prevent positional deviation of the virtual object 62 that is synthesized and displayed on the real world image. Thereafter, when the state in which the marker 61 cannot be recognized continues for a certain period of time, the display mode changes from the synchronous display mode to the asynchronous display mode, and the uppermost LCD 22 always displays the latest real world image. Become. Thereby, it is possible to prevent an old image from being continuously displayed on the upper LCD 22 when a state in which the marker 61 cannot be recognized continues.

(本実施形態の効果)
以上のように、本実施形態によれば、左実世界画像および右実世界画像のいずれか一方のマーカー認識結果から計算される一方の外側撮像部(外側撮像部(左)23aまたは外側撮像部(右)23b)のマーカー座標系における位置及び姿勢に基づいて、一方の仮想カメラの位置および姿勢が決定され、さらに、左仮想カメラ63Lの位置及び姿勢と右仮想カメラ63Rの位置及び姿勢が理想的な関係となるように、他方の仮想カメラの位置及び姿勢が決定される。したがって、立体視可能な表示装置において、正常に立体視できるように仮想オブジェクト62を表示することができる。
(Effect of this embodiment)
As described above, according to the present embodiment, one outer imaging unit (the outer imaging unit (left) 23a or the outer imaging unit) calculated from the marker recognition result of one of the left real world image and the right real world image. (Right) The position and orientation of one virtual camera is determined based on the position and orientation in the marker coordinate system of 23b), and the position and orientation of the left virtual camera 63L and the position and orientation of the right virtual camera 63R are ideal. The position and orientation of the other virtual camera are determined so as to achieve a general relationship. Accordingly, the virtual object 62 can be displayed on the display device capable of stereoscopic viewing so that the stereoscopic viewing can be performed normally.

また、左実世界画像に対するマーカー認識結果に基づいて計算された外側撮像部(左)23aの位置と、右実世界画像に対するマーカー認識結果に基づいて計算された外側撮像部(右)23bの位置とに基づいて、両外側撮像部の間隔を算出し、その結果に基づいて仮想カメラ間隔(EyeWidth)を決定し、一方の仮想カメラの位置を当該仮想カメラの座標系の撮影方向に直交する方向に当該間隔だけ移動させることにより他方の仮想カメラの位置を決定する。これにより、両仮想カメラが撮影方向に直行する方向に並ぶように設定することができる。また、仮に、外側撮像部(左)23aと外側撮像部(右)23bの間隔が既知でない場合や、ゲーム装置10に対する外側撮像部(左)23aおよび外側撮像部(右)23bの取り付け精度が悪い場合であっても、左仮想カメラ63Lと右仮想カメラ63Rを理想的な間隔で配置することができる。   The position of the outer imaging unit (left) 23a calculated based on the marker recognition result for the left real world image and the position of the outer imaging unit (right) 23b calculated based on the marker recognition result for the right real world image Based on the above, the interval between the two outer imaging units is calculated, the virtual camera interval (EyeWidth) is determined based on the result, and the direction of one virtual camera is orthogonal to the imaging direction of the coordinate system of the virtual camera The position of the other virtual camera is determined by moving it by the interval. Thereby, it is possible to set so that both virtual cameras are aligned in a direction perpendicular to the shooting direction. Also, if the interval between the outer imaging unit (left) 23a and the outer imaging unit (right) 23b is not known, or the accuracy of attaching the outer imaging unit (left) 23a and the outer imaging unit (right) 23b to the game apparatus 10 is high. Even if it is bad, the left virtual camera 63L and the right virtual camera 63R can be arranged at ideal intervals.

また、仮想カメラ間隔決定処理によって仮想カメラ間隔(EyeWidth)が決定された後は、メイン実世界画像に対してのみマーカー認識処理を行えばよいため、常に左実世界画像と右実世界画像の両方に対してマーカー認識処理を行う場合と比較して、処理負
担を軽減することができる。
In addition, after the virtual camera interval (EyeWidth) is determined by the virtual camera interval determination process, it is only necessary to perform the marker recognition process on the main real world image. Compared with the case where marker recognition processing is performed on the processing load, the processing load can be reduced.

なお、外側撮像部(左)23aと外側撮像部(右)23bの間隔が既知である場合には、仮想カメラ間隔決定処理の結果に基づいて、実世界における外側撮像部(左)23aと外側撮像部(右)23bの間隔(例えば3.5cm)に対応する、マーカー座標系における外側撮像部(左)23aと外側撮像部(右)23bの間隔(EyeWidth)が判明する。したがって、例えば、身長が30cmのキャラクタ(仮想オブジェクト)を実世界画像に合成表示したり、実世界画像に合成表示されるキャラクタ(仮想オブジェクト)を秒速10cmで移動させたりというように、仮想空間において、実世界のスケールに基づいた処理を行うことが可能となる。   When the interval between the outer imaging unit (left) 23a and the outer imaging unit (right) 23b is known, the outer imaging unit (left) 23a and the outer side in the real world are determined based on the result of the virtual camera interval determination process. The interval (EyeWidth) between the outer imaging unit (left) 23a and the outer imaging unit (right) 23b in the marker coordinate system corresponding to the interval (for example, 3.5 cm) between the imaging unit (right) 23b is found. Therefore, for example, a character (virtual object) having a height of 30 cm is displayed in a synthesized manner on a real world image, or a character (virtual object) synthesized and displayed on a real world image is moved at a speed of 10 cm per second in a virtual space. It becomes possible to perform processing based on the real world scale.

(変形例)
なお、上記実施形態では、実世界画像に含まれるマーカー61の位置及び姿勢を認識して、その認識結果に応じて実世界画像に仮想オブジェクト62を合成しているが、他の実施形態では、マーカー61に限らず、任意の認識対象の位置及び/又は姿勢を認識して、その認識結果に応じて実世界画像に仮想オブジェクト62を合成してもよい。認識対象の一例として、人物の顔が挙げられる。
(Modification)
In the above embodiment, the position and orientation of the marker 61 included in the real world image are recognized, and the virtual object 62 is combined with the real world image according to the recognition result, but in other embodiments, Not only the marker 61 but also the position and / or orientation of an arbitrary recognition target may be recognized, and the virtual object 62 may be combined with the real world image according to the recognition result. An example of a recognition target is a human face.

また、上記実施形態では、外側撮像部23によってリアルタイムに撮像される実世界画像に基づいて上側LCD22に立体画像を表示しているが、他の実施形態では、外側撮像部23や外部のステレオカメラ等によって過去に撮像された動画像データに基づいて上側LCD22に立体画像を表示するようにしてもよい。   In the above embodiment, a stereoscopic image is displayed on the upper LCD 22 based on a real world image captured in real time by the outer imaging unit 23. In other embodiments, the outer imaging unit 23 or an external stereo camera is displayed. For example, a stereoscopic image may be displayed on the upper LCD 22 based on moving image data captured in the past.

また、上記実施形態では、外側撮像部23がゲーム装置10に予め搭載されているが、他の実施形態では、ゲーム装置10に着脱可能な外付け型のカメラを利用してもよい。   In the above embodiment, the outer imaging unit 23 is mounted in advance on the game apparatus 10. However, in other embodiments, an external camera that can be attached to and detached from the game apparatus 10 may be used.

また、上記実施形態では、上側LCD22がゲーム装置10に予め搭載されているが、他の実施形態では、ゲーム装置10に着脱可能な外付け型の立体視ディスプレイを利用してもよい。   In the above embodiment, the upper LCD 22 is mounted on the game apparatus 10 in advance. However, in another embodiment, an external stereoscopic display that can be attached to and detached from the game apparatus 10 may be used.

また、上記実施形態では、マーカー座標系の原点の位置に仮想オブジェクト62を配置しているが、他の実施形態では、マーカー座標系の原点から離れた位置に仮想オブジェクト62を配置してもよい。   In the above embodiment, the virtual object 62 is arranged at the origin position of the marker coordinate system. However, in another embodiment, the virtual object 62 may be arranged at a position away from the origin of the marker coordinate system. .

また、上記実施形態では、仮想空間に仮想オブジェクトを1つだけ配置しているが、他の実施形態では、仮想空間に複数の仮想オブジェクトを配置してもよい。   In the above embodiment, only one virtual object is arranged in the virtual space. However, in other embodiments, a plurality of virtual objects may be arranged in the virtual space.

また、上記実施形態では、仮想カメラ間隔決定処理において、マーカー座標系における外側撮像部(左)23aと外側撮像部(右)23bの間隔(EyeWidth)を計算した後、当該間隔に基づいて、マーカー認識結果に基づいて計算された左仮想カメラ63Lおよび右仮想カメラ63Rのいずれか一方の仮想カメラの位置及び姿勢から、他方の仮想カメラの位置及び姿勢を決定しているが、他の実施形態では、左実世界画像に対するマーカー認識結果に基づいて計算された外側撮像部(左)23aの位置及び姿勢と、右実世界画像に対するマーカー認識結果に基づいて計算された外側撮像部(右)23bの位置及び姿勢とに基づいて、外側撮像部23の位置および姿勢(例えば、外側撮像部(右)23aの位置と外側撮像部(左)23bの位置の平均位置、外側撮像部(右)23aの姿勢と外側撮像部(左)23bの姿勢の平均姿勢)を算出し、それに基づいて、左仮想カメラ63Lおよび右仮想カメラ63Rの位置及び/又は姿勢を決定するようにしてもよい。例えば、左仮想カメラ63Lおよび右仮想カメラ63Rの姿勢が、いずれも、左実世界画像に対するマーカー認識結果に基づいて計算された外側撮像部(左)23aの姿勢と、右実世界
画像に対するマーカー認識結果に基づいて計算された外側撮像部(右)23bの姿勢のちょうど中間の姿勢となるように、左仮想カメラ63Lおよび右仮想カメラ63Rの姿勢を決定するようにしてもよい。また例えば、仮想カメラ間隔決定処理において外側撮像部(左)23aと外側撮像部(右)23bの間隔(EyeWidth)を計算した後に、左実世界画像に対するマーカー認識結果に基づいて計算された外側撮像部(左)23aの位置と、右実世界画像に対するマーカー認識結果に基づいて計算された外側撮像部(右)23bの位置の平均位置に対応する仮想空間内の位置から互いに反対方向にEyeWidth/2だけ仮想カメラの撮影方向と直交する方向にずらすことによって、左仮想カメラ63Lおよび右仮想カメラ63Rの位置を決定するようにしてもよい。
In the above embodiment, in the virtual camera interval determination process, after calculating the interval (EyeWidth) between the outer imaging unit (left) 23a and the outer imaging unit (right) 23b in the marker coordinate system, the marker is determined based on the interval. Although the position and orientation of the other virtual camera are determined from the position and orientation of one of the left virtual camera 63L and the right virtual camera 63R calculated based on the recognition result, in other embodiments The position and orientation of the outer imaging unit (left) 23a calculated based on the marker recognition result for the left real world image and the outer imaging unit (right) 23b calculated based on the marker recognition result for the right real world image Based on the position and orientation, the position and orientation of the outer imaging unit 23 (for example, the position of the outer imaging unit (right) 23a and the outer imaging unit (left) 23). And the average position of the outer imaging unit (right) 23a and the outer imaging unit (left) 23b are calculated based on the positions of the left virtual camera 63L and the right virtual camera 63R. Alternatively, the posture may be determined. For example, the postures of the left virtual camera 63L and the right virtual camera 63R are both calculated based on the marker recognition result for the left real world image, and the marker recognition for the right real world image. You may make it determine the attitude | position of the left virtual camera 63L and the right virtual camera 63R so that it may become an attitude | position just in the middle of the attitude | position of the outer side imaging part (right) 23b calculated based on the result. Further, for example, after calculating the interval (EyeWidth) between the outer imaging unit (left) 23a and the outer imaging unit (right) 23b in the virtual camera interval determination process, the outer imaging calculated based on the marker recognition result for the left real world image The EyeWidth / direction in the opposite direction from the position in the virtual space corresponding to the average position of the position of the portion (left) 23a and the position of the outer imaging portion (right) 23b calculated based on the marker recognition result for the right real world image The positions of the left virtual camera 63L and the right virtual camera 63R may be determined by shifting by 2 in a direction orthogonal to the shooting direction of the virtual camera.

また、上記実施形態では、仮想カメラ間隔決定処理によって仮想カメラ間隔(EyeWidth)が決定された後は、メイン実世界画像に対してのみマーカー認識処理を行っているが、他の実施形態では、常に左実世界画像と右実世界画像の両方に対してマーカー認識処理を行うようにしてもよい。   Further, in the above embodiment, after the virtual camera interval (EyeWidth) is determined by the virtual camera interval determination process, the marker recognition process is performed only on the main real world image. Marker recognition processing may be performed on both the left real world image and the right real world image.

また、上記実施形態では、上側LCD22がパララックスバリア方式の立体表示装置であるが、他の実施形態では、上側LCD22がレンチキュラー方式等の他の任意の方式の立体表示装置であってもよい。例えば、レンチキュラー方式の立体表示装置を利用する場合には、左目用画像と右目用画像をCPU311または他のプロセッサで合成してから、当該合成画像をレンチキュラー方式の立体表示装置に供給するようにしてもよい。   In the above embodiment, the upper LCD 22 is a parallax barrier type stereoscopic display device. However, in other embodiments, the upper LCD 22 may be another arbitrary type of stereoscopic display device such as a lenticular method. For example, when a lenticular stereoscopic display device is used, the left-eye image and the right-eye image are combined by the CPU 311 or another processor, and then the combined image is supplied to the lenticular stereoscopic display device. Also good.

また、上記実施形態では、ゲーム装置10を用いて実世界画像に仮想オブジェクトを合成表示しているが、他の実施形態では、任意の情報処理装置または情報処理システム(例えば、PDA(Personal Digital Assistant)、携帯電話、パーソナルコンピュータ、カメラ等)を用いて実世界画像に仮想オブジェクトを合成表示してもよい。   In the above embodiment, the virtual object is synthesized and displayed on the real world image using the game apparatus 10. However, in other embodiments, any information processing apparatus or information processing system (for example, PDA (Personal Digital Assistant) is used. ), A mobile phone, a personal computer, a camera, etc.) may be used to synthesize and display the virtual object on the real world image.

また、上記実施形態では、一台の情報処理装置(ゲーム装置10)のみによって画像表示処理を実行しているが、他の実施形態では、互いに通信可能な複数の情報処理装置を有する画像表示システムにおいて、当該複数の情報処理装置が画像表示処理を分担して実行するようにしてもよい。   In the above embodiment, the image display process is executed by only one information processing device (game device 10). In other embodiments, the image display system includes a plurality of information processing devices that can communicate with each other. The plurality of information processing apparatuses may share and execute the image display process.

10 ゲーム装置
11 下側ハウジング
12 下側LCD
13 タッチパネル
14 操作ボタン
15 アナログスティック
16 LED
21 上側ハウジング
22 上側LCD
23 外側撮像部
23a 外側撮像部(左)
23b 外側撮像部(右)
24 内側撮像部
25 3D調整スイッチ
26 3Dインジケータ
28 タッチペン
31 情報処理部
311 CPU
312 GPU
32 メインメモリ
60a〜60c ボール
61 マーカー
62 仮想オブジェクト
63L 左仮想カメラ
63R 右仮想カメラ
10 Game device 11 Lower housing 12 Lower LCD
13 Touch Panel 14 Operation Buttons 15 Analog Stick 16 LED
21 Upper housing 22 Upper LCD
23 Outside imaging unit 23a Outside imaging unit (left)
23b Outside imaging unit (right)
24 Inner imaging unit 25 3D adjustment switch 26 3D indicator 28 Touch pen 31 Information processing unit 311 CPU
312 GPU
32 Main memory 60a-60c Ball 61 Marker 62 Virtual object 63L Left virtual camera 63R Right virtual camera

Claims (23)

右目用の実カメラおよび左目用の実カメラからの出力を利用して、立体視可能な立体表示装置の画面に、3次元の仮想オブジェクトを合成した実世界画像を立体表示する画像表示プログラムであって、コンピュータを、
前記右目用の実カメラから出力される実世界画像データと前記左目用の実カメラから出力される実世界画像データのうち、一方の実カメラから出力される実世界画像データ内の所定の撮像対象を認識することにより、当該一方の実カメラと前記所定の撮像対象との間の相対的な位置および姿勢を示す位置姿勢情報を算出する第1位置姿勢算出手段、
前記第1位置姿勢算出手段によって算出された前記位置姿勢情報を用いて、所定の仮想空間における右目用の画像を生成するための右仮想カメラと左目用の画像を生成するための左仮想カメラの両方についての位置および姿勢を決定する仮想カメラ設定手段、
前記右仮想カメラから見た前記仮想空間を示す右仮想空間画像を生成する右仮想空間画像生成手段、
前記左仮想カメラから見た前記仮想空間を示す左仮想空間画像を生成する左仮想空間画像生成手段、および、
前記右目用の実カメラから出力される実世界画像データに前記右仮想空間画像を合成し、かつ、前記左目用の実カメラから出力される実世界画像データに前記左仮想空間画像を合成して、前記立体表示装置に立体視のための画像出力を行う表示制御手段として機能させる、画像表示プログラム。
This is an image display program for stereoscopically displaying a real world image obtained by synthesizing a three-dimensional virtual object on the screen of a stereoscopic display device capable of stereoscopic viewing, using outputs from a real camera for the right eye and a real camera for the left eye. Computer
Of the real world image data output from the real camera for the right eye and the real world image data output from the real camera for the left eye, a predetermined imaging target in the real world image data output from one real camera A first position / orientation calculation means for calculating position / orientation information indicating a relative position and orientation between the one real camera and the predetermined imaging target,
Using the position and orientation information calculated by the first position and orientation calculation means, a right virtual camera for generating an image for the right eye in a predetermined virtual space and a left virtual camera for generating an image for the left eye Virtual camera setting means for determining the position and orientation for both,
Right virtual space image generation means for generating a right virtual space image indicating the virtual space viewed from the right virtual camera;
A left virtual space image generating means for generating a left virtual space image indicating the virtual space viewed from the left virtual camera; and
Combining the right virtual space image with real world image data output from the real camera for the right eye and combining the left virtual space image with real world image data output from the real camera for the left eye An image display program for causing the stereoscopic display device to function as display control means for outputting an image for stereoscopic viewing.
前記仮想カメラ設定手段は、前記右仮想カメラと前記左仮想カメラとの間の相対姿勢の関係が、前記右目用の実カメラおよび前記左目用の実カメラとの間の設計上の相対姿勢の関係と同一になるように、前記右仮想カメラと前記左仮想カメラの位置および姿勢を決定する、請求項1に記載の画像表示プログラム。   The virtual camera setting means is configured such that a relative posture relationship between the right virtual camera and the left virtual camera is a design relative posture relationship between the real camera for the right eye and the real camera for the left eye. The image display program according to claim 1, wherein positions and orientations of the right virtual camera and the left virtual camera are determined so as to be the same. 前記仮想カメラ設定手段は、
前記第1位置姿勢算出手段によって算出された前記位置姿勢情報を用いて、前記右仮想カメラおよび前記左仮想カメラのうち、前記第1位置姿勢算出手段における前記一方の実カメラに対応する一方の仮想カメラの姿勢を決定する第1仮想カメラ姿勢決定部と、
前記第1仮想カメラ姿勢決定部によって決定された前記一方の仮想カメラの姿勢に基づいて、前記右仮想カメラと前記左仮想カメラとの間の相対姿勢の関係が、前記右目用の実カメラおよび前記左目用の実カメラとの間の設計上の相対姿勢の関係と同一になるように、他方の仮想カメラの姿勢を決定する第2カメラ姿勢決定部とを含む、請求項2に記載の画像表示プログラム。
The virtual camera setting means includes
Using the position / orientation information calculated by the first position / orientation calculation unit, one of the right virtual camera and the left virtual camera corresponding to the one real camera in the first position / orientation calculation unit A first virtual camera posture determination unit for determining the posture of the camera;
Based on the posture of the one virtual camera determined by the first virtual camera posture determination unit, the relationship of the relative posture between the right virtual camera and the left virtual camera is the real camera for the right eye and the The image display of Claim 2 including the 2nd camera attitude | position determination part which determines the attitude | position of the other virtual camera so that it may become the same as the relationship of the design relative attitude | position with the real camera for left eyes. program.
前記画像表示プログラムは、前記コンピュータを、
前記右仮想カメラと前記左仮想カメラの相対位置関係を決定する仮想カメラ相対位置関係決定手段としてさらに機能させ、
前記仮想カメラ設定手段は、
前記第1位置姿勢算出手段によって算出された前記位置姿勢情報を用いて、前記右仮想カメラおよび前記左仮想カメラのうち、前記第1位置姿勢算出手段における前記一方の実カメラに対応する一方の仮想カメラの位置を決定する第1仮想カメラ位置決定部と、
前記第1仮想カメラ位置決定部によって決定された前記一方の仮想カメラの位置から、前記仮想カメラ相対位置関係決定手段によって決定された前記相対位置だけ離れた位置に、他方の仮想カメラの位置を決定する第2仮想カメラ位置決定部とを含む、追加請求項2または請求項3に記載の画像表示プログラム。
The image display program causes the computer to
Further function as a virtual camera relative positional relationship determining means for determining a relative positional relationship between the right virtual camera and the left virtual camera,
The virtual camera setting means includes
Using the position / orientation information calculated by the first position / orientation calculation unit, one of the right virtual camera and the left virtual camera corresponding to the one real camera in the first position / orientation calculation unit A first virtual camera position determining unit for determining the position of the camera;
The position of the other virtual camera is determined at a position separated from the position of the one virtual camera determined by the first virtual camera position determining unit by the relative position determined by the virtual camera relative positional relationship determining means. The image display program according to claim 2, further comprising: a second virtual camera position determination unit that performs the operation.
前記仮想カメラ設定手段は、
前記第1位置姿勢算出手段によって算出された前記位置姿勢情報を用いて、前記右仮
想カメラおよび前記左仮想カメラのうち、前記第1位置姿勢算出手段における前記一方の実カメラに対応する一方の仮想カメラの位置を決定する第1仮想カメラ位置決定部と、
前記第1位置姿勢算出手段によって算出された前記位置姿勢情報を用いて、前記右仮想カメラおよび前記左仮想カメラのうち、前記第1位置姿勢算出手段における前記一方の実カメラに対応する前記一方の仮想カメラの姿勢を決定する第1仮想カメラ姿勢決定部と、
前記第1仮想カメラ位置決定部によって決定された前記一方の仮想カメラの位置から見て、前記第1仮想カメラ姿勢決定部によって決定された当該一方の仮想カメラの姿勢に基づく方向に、他方の仮想カメラの位置を決定する第2仮想カメラ位置決定部とを含む、請求項2または請求項3に記載の画像表示プログラム。
The virtual camera setting means includes
Using the position / orientation information calculated by the first position / orientation calculation unit, one of the right virtual camera and the left virtual camera corresponding to the one real camera in the first position / orientation calculation unit A first virtual camera position determining unit for determining the position of the camera;
Using the position / orientation information calculated by the first position / orientation calculation means, the one of the right virtual camera and the left virtual camera corresponding to the one real camera in the first position / orientation calculation means. A first virtual camera attitude determination unit that determines the attitude of the virtual camera;
When viewed from the position of the one virtual camera determined by the first virtual camera position determining unit, the other virtual camera is set in a direction based on the posture of the one virtual camera determined by the first virtual camera attitude determining unit. The image display program according to claim 2, further comprising a second virtual camera position determination unit that determines a position of the camera.
前記コンピュータを、
前記右仮想カメラと前記左仮想カメラの間の距離を決定する仮想カメラ間距離決定手段としてさらに機能させ、
前記第2カメラ位置決定部は、前記第1仮想カメラ位置決定部によって決定された前記一方の仮想カメラの位置から見て、前記第1仮想カメラ姿勢決定部によって決定された当該一方の仮想カメラの姿勢に基づく方向に、前記仮想カメラ間距離決定手段によって決定された距離だけ離れた位置に、前記他方の仮想カメラの位置を決定する、請求項5に記載の画像表示プログラム。
The computer,
Further function as a virtual camera distance determining means for determining a distance between the right virtual camera and the left virtual camera,
The second camera position determination unit is configured to display the one virtual camera determined by the first virtual camera attitude determination unit as viewed from the position of the one virtual camera determined by the first virtual camera position determination unit. The image display program according to claim 5, wherein the position of the other virtual camera is determined at a position separated by a distance determined by the inter-virtual camera distance determining means in a direction based on a posture.
前記仮想カメラ相対位置関係決定手段は、
前記右目用の実カメラから出力される実世界画像データと前記左目用の実カメラから出力される実世界画像データの視差に基づいて前記右仮想カメラと前記左仮想カメラの相対位置関係を決定する、請求項4に記載の画像表示プログラム。
The virtual camera relative positional relationship determining means is
Relative positional relationship between the right virtual camera and the left virtual camera is determined based on the parallax between the real world image data output from the real camera for the right eye and the real world image data output from the real camera for the left eye. The image display program according to claim 4.
前記相対位置関係決定手段によって決定される前記相対位置関係は、前記右仮想カメラと前記左仮想カメラの間隔である、請求項7に記載の画像表示プログラム。   The image display program according to claim 7, wherein the relative positional relationship determined by the relative positional relationship determining unit is an interval between the right virtual camera and the left virtual camera. 前記画像表示プログラムは、前記コンピュータを、
前記2つの実カメラからそれぞれ出力される2つの実世界画像データのうち、前記第1位置姿勢算出手段における前記一方の実カメラとは異なる他方の実カメラから出力される実世界画像データ内の前記所定の撮像対象を認識することにより、当該他方の実カメラと前記撮像対象との間の相対的な位置および姿勢を示す位置姿勢情報を算出する第2位置姿勢算出手段としてさらに機能させ、
前記仮想カメラ相対位置関係決定手段は、前記第1位置姿勢算出手段によって算出された前記一方の実カメラと前記撮像対象との間の相対的な位置の情報と、前記第2位置姿勢算出手段によって算出された前記他方の実カメラと前記撮像対象との間の相対的な位置の情報とを用いて、前記一方の実カメラと前記他方の実カメラとの間の距離を算出する、請求項4に記載の画像表示プログラム。
The image display program causes the computer to
Of the two real world image data respectively output from the two real cameras, the real position image data in the real world image data output from the other real camera different from the one real camera in the first position and orientation calculation means. By recognizing a predetermined imaging target, it further functions as second position and orientation calculation means for calculating position and orientation information indicating a relative position and orientation between the other real camera and the imaging target,
The virtual camera relative positional relationship determining means includes information on a relative position between the one real camera calculated by the first position / orientation calculating means and the imaging target, and the second position / orientation calculating means. 5. The distance between the one real camera and the other real camera is calculated using the calculated relative position information between the other real camera and the imaging target. The image display program described in 1.
前記第1位置姿勢算出手段は、前記一方の実カメラから出力される実世界画像データに基づいて、前記所定の撮像対象を原点とした座標系で表される座標値を前記一方の実カメラを原点とした第1撮像部座標系で表される座標値へと変換するための第1変換行列を生成する第1変換行列生成手段を含み、
前記第2位置姿勢算出手段は、前記他方の実カメラから出力される実世界画像データに基づいて、前記所定の撮像対象を原点とした座標系で表される座標値を前記他方の実カメラを原点とした第2撮像部座標系で表される座標値へと変換するための第2変換行列を生成する第2変換行列生成手段を含む、請求項9に記載の画像表示プログラム。
The first position / orientation calculation means uses the one real camera to obtain a coordinate value represented by a coordinate system with the predetermined imaging target as an origin, based on real world image data output from the one real camera. Including first conversion matrix generation means for generating a first conversion matrix for conversion into a coordinate value represented by a first imaging unit coordinate system as an origin,
The second position / orientation calculation means uses the other real camera as a coordinate value represented by a coordinate system with the predetermined imaging object as an origin, based on real world image data output from the other real camera. The image display program according to claim 9, further comprising second conversion matrix generation means for generating a second conversion matrix for conversion into a coordinate value represented by a second imaging unit coordinate system as an origin.
前記仮想カメラ相対位置関係決定手段は、前記2つの実カメラから新たな実世界画像デ
ータが出力される度に、前記右仮想カメラと前記左仮想カメラの相対位置関係を算出する処理を実行し、当該処理を複数回実行することによって得られた複数回分の相対位置関係算出結果に基づいて前記右仮想カメラと前記左仮想カメラの相対位置関係を確定する、請求項7に記載の画像表示プログラム。
The virtual camera relative positional relationship determining means executes a process of calculating a relative positional relationship between the right virtual camera and the left virtual camera each time new real world image data is output from the two real cameras, The image display program according to claim 7, wherein the relative positional relationship between the right virtual camera and the left virtual camera is determined based on a plurality of relative positional relationship calculation results obtained by executing the processing a plurality of times.
前記仮想カメラ相対位置関係決定手段は、前記複数回の相対位置関係算出結果が全て所定の範囲に収まっている場合にのみ、当該複数回の相対位置関係算出結果に基づいて前記右仮想カメラと前記左仮想カメラの相対位置関係を確定する、請求項11に記載の画像表示プログラム。   The virtual camera relative positional relationship determining means is configured so that only when the plurality of relative positional relationship calculation results are all within a predetermined range, the virtual camera relative positional relationship determination unit and the right virtual camera based on the multiple relative positional relationship calculation results. The image display program according to claim 11, wherein the relative positional relationship of the left virtual camera is determined. 前記画像表示プログラムは、前記コンピュータを、
前記仮想カメラ相対位置関係決定手段によって前記右仮想カメラと前記左仮想カメラの相対位置関係が決定された後、当該相対位置関係が決定された時点から、前記2つの実カメラに対する前記所定の撮像対象の奥行距離が所定範囲を超えて変化したか否かを判定する奥行変化判定手段としてさらに機能させ、
前記仮想カメラ相対位置関係決定手段は、前記奥行変化判定手段の判定結果が肯定である場合に、前記右仮想カメラと前記左仮想カメラの相対位置関係を決定し直す、請求項7に記載の画像表示プログラム。
The image display program causes the computer to
After the relative positional relationship between the right virtual camera and the left virtual camera is determined by the virtual camera relative positional relationship determining means, the predetermined imaging target for the two real cameras from the time when the relative positional relationship is determined Further functioning as a depth change determination means for determining whether or not the depth distance has changed beyond a predetermined range,
The image according to claim 7, wherein the virtual camera relative positional relationship determination unit re-determines a relative positional relationship between the right virtual camera and the left virtual camera when a determination result of the depth change determination unit is affirmative. Display program.
前記画像表示プログラムは、前記コンピュータを、
前記所定の撮像対象が含まれている実世界画像データに基づいて、前記2つの実カメラに対する前記所定の撮像対象の奥行距離を算出する奥行距離算出手段としてさらに機能させ、
前記奥行変化判定手段は、前記仮想カメラ相対位置関係決定手段によって前記右仮想カメラと前記左仮想カメラの相対位置関係が決定された時点において前記奥行距離算出手段によって算出された基準奥行距離と、その後に前記奥行距離算出手段によって算出された最新奥行距離とを比較することによって、前記2つの実カメラに対する前記所定の撮像対象の奥行距離が所定範囲を超えて変化したか否かを判定する、請求項13に記載の画像表示プログラム。
The image display program causes the computer to
Based on real world image data including the predetermined imaging target, further function as a depth distance calculating means for calculating a depth distance of the predetermined imaging target with respect to the two real cameras,
The depth change determination means includes a reference depth distance calculated by the depth distance calculation means when the relative position relation between the right virtual camera and the left virtual camera is determined by the virtual camera relative position relationship determination means, and thereafter Comparing whether or not the depth distance of the predetermined imaging target with respect to the two real cameras has changed beyond a predetermined range by comparing with the latest depth distance calculated by the depth distance calculating means. Item 14. The image display program according to Item 13.
前記奥行距離算出手段は、前記2つの実カメラから新たな実世界画像データが出力される度に、前記2つの実カメラに対する前記所定の撮像対象の奥行距離を算出する処理を実行し、当該処理を複数回実行することによって得られた複数回分の奥行距離算出結果に基づいて前記基準奥行距離を算出する、請求項14に記載の画像表示プログラム。   The depth distance calculating unit executes a process of calculating a depth distance of the predetermined imaging target with respect to the two real cameras each time new real world image data is output from the two real cameras. The image display program according to claim 14, wherein the reference depth distance is calculated based on a plurality of depth distance calculation results obtained by executing a plurality of times. 前記奥行距離算出手段は、前記複数回の奥行距離算出結果が全て所定の範囲に収まっている場合にのみ、当該複数回の奥行距離算出結果に基づいて前記基準奥行距離を算出する、請求項15に記載の画像表示プログラム。   16. The depth distance calculation unit calculates the reference depth distance based on the plurality of depth distance calculation results only when the plurality of depth distance calculation results are all within a predetermined range. The image display program described in 1. 前記画像表示プログラムは、前記コンピュータを、
前記2つの実カメラからそれぞれ出力される2つの実世界画像データのうち、前記第1位置姿勢算出手段における前記一方の実カメラとは異なる他方の実カメラから出力される実世界画像データ内の前記所定の撮像対象を認識することにより、当該他方の実カメラと前記所定の撮像対象との間の相対的な位置および姿勢を示す位置姿勢情報を算出する第2位置姿勢算出手段、および、
前記2つの実カメラからそれぞれ出力される2つの実世界画像データの少なくとも一方における前記所定の撮像対象の位置に応じて、当該2つの実カメラのうち1つを選択する実カメラ選択手段としてさらに機能させ、
前記仮想カメラ設定手段は、
前記実カメラ選択手段によって選択された実カメラが前記一方の実カメラであったと
きには、前記第1位置姿勢算出手段によって算出された、当該一方の実カメラと前記所定の撮像対象との間の相対的な位置および姿勢を示す位置姿勢情報を用いて、前記右仮想カメラと前記左仮想カメラの位置および姿勢を決定し実カメラ、
前記実カメラ選択手段によって選択された実カメラが前記他方の実カメラであったときには、前記第2位置姿勢算出手段によって算出された、当該他方の実カメラと前記所定の撮像対象との間の相対的な位置および姿勢を示す位置姿勢情報を用いて、前記右仮想カメラと前記左仮想カメラの位置および姿勢を決定する実カメラ、請求項1に記載の画像表示プログラム。
The image display program causes the computer to
Of the two real world image data respectively output from the two real cameras, the real position image data in the real world image data output from the other real camera different from the one real camera in the first position and orientation calculation means. Second position and orientation calculation means for calculating position and orientation information indicating a relative position and orientation between the other real camera and the predetermined imaging target by recognizing the predetermined imaging target; and
Further function as real camera selection means for selecting one of the two real cameras according to the position of the predetermined imaging target in at least one of the two real world image data respectively output from the two real cameras Let
The virtual camera setting means includes
When the real camera selected by the real camera selection unit is the one real camera, the relative position between the one real camera calculated by the first position and orientation calculation unit and the predetermined imaging target is calculated. The position and orientation of the right virtual camera and the left virtual camera are determined using position and orientation information indicating a specific position and orientation, and a real camera,
When the real camera selected by the real camera selection unit is the other real camera, the relative position between the other real camera calculated by the second position and orientation calculation unit and the predetermined imaging target is calculated. The image display program according to claim 1, wherein the real camera determines the positions and orientations of the right virtual camera and the left virtual camera using position and orientation information indicating a specific position and orientation.
前記実カメラ選択手段は、
前記2つの実カメラのうちの左目用の実カメラから出力される実世界画像データにおける前記所定の撮像対象の位置が当該実世界画像データの右端領域へ進入したことに応じて、前記左目用の実カメラから前記右目用の実カメラへと切り替え、
前記右目用の実カメラから出力される実世界画像データにおける前記所定の撮像対象の位置が当該実世界画像データの左端領域へ進入したことに応じて、前記右目用の実カメラから前記左目用の実カメラへと切り替える、請求項17に記載の画像表示プログラム。
The real camera selection means includes
In response to the position of the predetermined imaging object in the real world image data output from the real camera for the left eye of the two real cameras entering the right end region of the real world image data, Switch from the real camera to the real camera for the right eye,
In response to the position of the predetermined imaging target in the real world image data output from the real camera for the right eye entering the left end region of the real world image data, the real camera for the left eye from the real camera for the right eye The image display program according to claim 17, wherein the image display program is switched to a real camera.
前記第1位置姿勢算出手段および前記表示制御手段によって利用される前記実世界画像データは、前記実カメラからリアルタイムに出力される実世界画像データである、請求項1に記載の画像表示プログラム。   The image display program according to claim 1, wherein the real world image data used by the first position and orientation calculation unit and the display control unit is real world image data output in real time from the real camera. 前記コンピュータは、前記2つの実カメラと前記立体表示装置とを備えた情報処理装置に内蔵されている、請求項1に記載の画像表示プログラム。   The image display program according to claim 1, wherein the computer is built in an information processing apparatus including the two real cameras and the stereoscopic display device. 右目用の実カメラおよび左目用の実カメラからの出力を利用して、立体視可能な立体表示装置の画面に、3次元の仮想オブジェクトを合成した実世界画像を立体表示する画像表示装置であって、
前記右目用の実カメラから出力される実世界画像データと前記左目用の実カメラから出力される実世界画像データのうち、一方の実カメラから出力される実世界画像データ内の所定の撮像対象を認識することにより、当該一方の実カメラと前記所定の撮像対象との間の相対的な位置および姿勢を示す位置姿勢情報を算出する第1位置姿勢算出手段、
前記第1位置姿勢算出手段によって算出された前記位置姿勢情報を用いて、所定の仮想空間における右目用の画像を生成するための右仮想カメラと左目用の画像を生成するための左仮想カメラの両方についての位置および姿勢を決定する仮想カメラ設定手段、
前記右仮想カメラから見た前記仮想空間を示す右仮想空間画像を生成する右仮想空間画像生成手段、
前記左仮想カメラから見た前記仮想空間を示す左仮想空間画像を生成する左仮想空間画像生成手段、および、
前記右目用の実カメラから出力される実世界画像データに前記右仮想空間画像を合成し、かつ、前記左目用の実カメラから出力される実世界画像データに前記左仮想空間画像を合成して、前記立体表示装置に立体視のための画像出力を行う表示制御手段を備える、画像表示装置。
This is an image display device that stereoscopically displays a real world image obtained by synthesizing a three-dimensional virtual object on the screen of a stereoscopic display device that can be viewed stereoscopically, using outputs from the real camera for the right eye and the real camera for the left eye. And
Of the real world image data output from the real camera for the right eye and the real world image data output from the real camera for the left eye, a predetermined imaging target in the real world image data output from one real camera A first position / orientation calculation means for calculating position / orientation information indicating a relative position and orientation between the one real camera and the predetermined imaging target,
Using the position and orientation information calculated by the first position and orientation calculation means, a right virtual camera for generating an image for the right eye in a predetermined virtual space and a left virtual camera for generating an image for the left eye Virtual camera setting means for determining the position and orientation for both,
Right virtual space image generation means for generating a right virtual space image indicating the virtual space viewed from the right virtual camera;
A left virtual space image generating means for generating a left virtual space image indicating the virtual space viewed from the left virtual camera; and
Combining the right virtual space image with real world image data output from the real camera for the right eye and combining the left virtual space image with real world image data output from the real camera for the left eye An image display device comprising display control means for outputting an image for stereoscopic viewing to the stereoscopic display device.
右目用の実カメラおよび左目用の実カメラからの出力を利用して、立体視可能な立体表示装置の画面に、3次元の仮想オブジェクトを合成した実世界画像を立体表示する画像表示システムであって、
前記右目用の実カメラから出力される実世界画像データと前記左目用の実カメラから出力される実世界画像データのうち、一方の実カメラから出力される実世界画像データ内の所定の撮像対象を認識することにより、当該一方の実カメラと前記所定の撮像対象との間の相対的な位置および姿勢を示す位置姿勢情報を算出する第1位置姿勢算出手段、
前記第1位置姿勢算出手段によって算出された前記位置姿勢情報を用いて、所定の仮想空間における右目用の画像を生成するための右仮想カメラと左目用の画像を生成するための左仮想カメラの両方についての位置および姿勢を決定する仮想カメラ設定手段、
前記右仮想カメラから見た前記仮想空間を示す右仮想空間画像を生成する右仮想空間画像生成手段、
前記左仮想カメラから見た前記仮想空間を示す左仮想空間画像を生成する左仮想空間画像生成手段、および、
前記右目用の実カメラから出力される実世界画像データに前記右仮想空間画像を合成し、かつ、前記左目用の実カメラから出力される実世界画像データに前記左仮想空間画像を合成して、前記立体表示装置に立体視のための画像出力を行う表示制御手段を備える、画像表示システム。
This is an image display system that stereoscopically displays a real world image obtained by synthesizing a three-dimensional virtual object on the screen of a stereoscopic display device capable of stereoscopic viewing, using outputs from a real camera for the right eye and a real camera for the left eye. And
Of the real world image data output from the real camera for the right eye and the real world image data output from the real camera for the left eye, a predetermined imaging target in the real world image data output from one real camera A first position / orientation calculation means for calculating position / orientation information indicating a relative position and orientation between the one real camera and the predetermined imaging target,
Using the position and orientation information calculated by the first position and orientation calculation means, a right virtual camera for generating an image for the right eye in a predetermined virtual space and a left virtual camera for generating an image for the left eye Virtual camera setting means for determining the position and orientation for both,
Right virtual space image generation means for generating a right virtual space image indicating the virtual space viewed from the right virtual camera;
A left virtual space image generating means for generating a left virtual space image indicating the virtual space viewed from the left virtual camera; and
Combining the right virtual space image with real world image data output from the real camera for the right eye and combining the left virtual space image with real world image data output from the real camera for the left eye An image display system comprising display control means for outputting an image for stereoscopic viewing to the stereoscopic display device.
右目用の実カメラおよび左目用の実カメラからの出力を利用して、立体視可能な立体表示装置の画面に、3次元の仮想オブジェクトを合成した実世界画像を立体表示する画像表示方法であって、
前記右目用の実カメラから出力される実世界画像データと前記左目用の実カメラから出力される実世界画像データのうち、一方の実カメラから出力される実世界画像データ内の所定の撮像対象を認識することにより、当該一方の実カメラと前記所定の撮像対象との間の相対的な位置および姿勢を示す位置姿勢情報を算出する第1位置姿勢算出ステップ、
前記第1位置姿勢算出ステップにおいて算出された前記位置姿勢情報を用いて、所定の仮想空間における右目用の画像を生成するための右仮想カメラと左目用の画像を生成するための左仮想カメラの両方についての位置および姿勢を決定する仮想カメラ設定ステップ、
前記右仮想カメラから見た前記仮想空間を示す右仮想空間画像を生成する右仮想空間画像生成ステップ、
前記左仮想カメラから見た前記仮想空間を示す左仮想空間画像を生成する左仮想空間画像生成ステップ、および、
前記右目用の実カメラから出力される実世界画像データに前記右仮想空間画像を合成し、かつ、前記左目用の実カメラから出力される実世界画像データに前記左仮想空間画像を合成して、前記立体表示装置に立体視のための画像出力を行う表示制御ステップを備える、画像表示方法。
This is an image display method for stereoscopically displaying a real world image obtained by synthesizing a three-dimensional virtual object on the screen of a stereoscopic display device capable of stereoscopic viewing, using outputs from a real camera for the right eye and a real camera for the left eye. And
Of the real world image data output from the real camera for the right eye and the real world image data output from the real camera for the left eye, a predetermined imaging target in the real world image data output from one real camera A first position and orientation calculation step for calculating position and orientation information indicating a relative position and orientation between the one real camera and the predetermined imaging target by recognizing
Using the position and orientation information calculated in the first position and orientation calculation step, a right virtual camera for generating a right-eye image in a predetermined virtual space and a left virtual camera for generating an image for the left eye Virtual camera setting step to determine the position and orientation for both,
A right virtual space image generation step of generating a right virtual space image indicating the virtual space viewed from the right virtual camera;
A left virtual space image generation step of generating a left virtual space image indicating the virtual space viewed from the left virtual camera; and
Combining the right virtual space image with real world image data output from the real camera for the right eye and combining the left virtual space image with real world image data output from the real camera for the left eye An image display method comprising a display control step of outputting an image for stereoscopic viewing to the stereoscopic display device.
JP2011007848A 2010-06-11 2011-01-18 Image display program, apparatus, system and method Active JP5739670B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011007848A JP5739670B2 (en) 2010-06-11 2011-01-18 Image display program, apparatus, system and method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010134545 2010-06-11
JP2010134545 2010-06-11
JP2011007848A JP5739670B2 (en) 2010-06-11 2011-01-18 Image display program, apparatus, system and method

Publications (2)

Publication Number Publication Date
JP2012018665A true JP2012018665A (en) 2012-01-26
JP5739670B2 JP5739670B2 (en) 2015-06-24

Family

ID=45603844

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011007848A Active JP5739670B2 (en) 2010-06-11 2011-01-18 Image display program, apparatus, system and method

Country Status (1)

Country Link
JP (1) JP5739670B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012129824A (en) * 2010-12-15 2012-07-05 Canon Inc Feature detection device, feature detection method, and program therefor
CN111540022A (en) * 2020-05-14 2020-08-14 深圳市艾为智能有限公司 Image uniformization method based on virtual camera
KR20220005970A (en) * 2020-07-07 2022-01-14 한국과학기술연구원 Near eye display apparatus

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008277920A (en) * 2007-04-25 2008-11-13 Canon Inc System
JP2010092436A (en) * 2008-10-10 2010-04-22 Canon Inc Image processor and image processing method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008277920A (en) * 2007-04-25 2008-11-13 Canon Inc System
JP2010092436A (en) * 2008-10-10 2010-04-22 Canon Inc Image processor and image processing method

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012129824A (en) * 2010-12-15 2012-07-05 Canon Inc Feature detection device, feature detection method, and program therefor
CN111540022A (en) * 2020-05-14 2020-08-14 深圳市艾为智能有限公司 Image uniformization method based on virtual camera
CN111540022B (en) * 2020-05-14 2024-04-19 深圳市艾为智能有限公司 Image unification method based on virtual camera
KR20220005970A (en) * 2020-07-07 2022-01-14 한국과학기술연구원 Near eye display apparatus
KR102489272B1 (en) * 2020-07-07 2023-01-17 한국과학기술연구원 Near eye display apparatus

Also Published As

Publication number Publication date
JP5739670B2 (en) 2015-06-24

Similar Documents

Publication Publication Date Title
EP2395768B1 (en) Image display program, image display system, and image display method
JP5541974B2 (en) Image display program, apparatus, system and method
JP5739674B2 (en) Information processing program, information processing apparatus, information processing system, and information processing method
JP5646263B2 (en) Image processing program, image processing apparatus, image processing system, and image processing method
JP5739671B2 (en) Information processing program, information processing apparatus, information processing system, and information processing method
US9001192B2 (en) Storage medium having stored therein stereoscopic image display program, stereoscopic image display device, stereoscopic image display system, and stereoscopic image display method
JP4869430B1 (en) Image processing program, image processing apparatus, image processing system, and image processing method
JP5702653B2 (en) Information processing program, information processing apparatus, information processing system, and information processing method
JP5814532B2 (en) Display control program, display control apparatus, display control system, and display control method
US20120293549A1 (en) Computer-readable storage medium having information processing program stored therein, information processing apparatus, information processing system, and information processing method
JP2012000193A (en) Information processing program, information processing apparatus, information processing system, and information processing method
JP5602702B2 (en) Image processing program, image processing apparatus, image processing system, and image processing method
JP5739670B2 (en) Image display program, apparatus, system and method
JP5739673B2 (en) Image display program, apparatus, system and method
JP5525924B2 (en) Stereoscopic image display program, stereoscopic image display device, stereoscopic image display system, and stereoscopic image display method
JP5548038B2 (en) Stereoscopic image display program, stereoscopic image display device, stereoscopic image display system, and stereoscopic image display method
JP5739672B2 (en) Image display program, apparatus, system and method
JP5541973B2 (en) Stereoscopic image display program, stereoscopic image display device, stereoscopic image display system, and stereoscopic image display method
JP5759797B2 (en) Image generation program, image generation method, image generation apparatus, and image generation system

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20120720

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141007

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141126

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150416

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150424

R150 Certificate of patent or registration of utility model

Ref document number: 5739670

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250