(57)【特許請求の範囲】
【請求項１】
実空間を撮影する撮影部と、
前記撮影部の第１姿勢情報を検出する検出部と、
前記検出部から前記第１姿勢情報を取得する第１取得部と、
ユーザから設定指示を受け付ける受付部と、
前記設定指示を受け付けたときに、実空間における、仮想オブジェクトを配置する基準平面を、前記第１姿勢情報に応じて設定する設定部と、
前記撮影部の撮影方向に対する、前記基準平面の第１相対方向を導出する導出部と、
前記第１相対方向に位置する前記基準平面の、第２姿勢情報を算出する第１算出部と、
前記撮影部によって撮影された実空間画像における、前記基準平面に対応する領域に、前記第２姿勢情報の姿勢の前記仮想オブジェクトを描画したオブジェクト画像を重畳した重畳画像を、表示部に表示する制御を行う表示制御部と、
を備え、
前記設定部は、
前記撮影部の撮影方向と、前記表示部の表示方向とが同一方向である場合、実空間における、前記撮影部の位置する室内を構成する複数の壁面の内、前記撮影部の撮影方向または反撮影方向に交差する壁面であって、且つ該撮影方向に直交する撮影面との成す角度の最も大きい壁面を、前記基準平面として設定する、
画像処理装置。
【請求項２】
前記設定部は、
前記撮影部の撮影方向と、前記表示部の表示方向とが反対方向である場合、実空間における、前記撮影部の位置する室内を構成する複数の壁面の内、前記撮影部の撮影方向または反撮影方向に交差する壁面であって、且つ該撮影方向に直交する撮影面との成す角度の最も小さい壁面を、前記基準平面として設定する、
請求項１に記載の画像処理装置。
【請求項３】
実空間における、前記基準平面の第１位置を算出する第２算出部を備え、
前記表示制御部は、
前記実空間画像における、前記第１位置の前記基準平面に対応する領域に、前記第２姿勢情報の姿勢の前記仮想オブジェクトを描画したオブジェクト画像を重畳した前記重畳画像を、前記表示部に表示する制御を行う、
請求項１または請求項２に記載の画像処理装置。
【請求項４】
前記基準平面の設定時に用いた前記第１姿勢情報と、今回取得した前記第１姿勢情報と、の比較結果に基づいて、前記基準平面を設定したときから前記撮影方向が予め定めた第１相対角度以上回転したか否かを判定する判定部と、
前記第１相対角度以上回転したと判定されたときに、前記基準平面を前記第１相対角度より大きい第２相対角度回転した平面を、新たな前記基準平面として再設定する再設定部と、を備えた、
請求項１〜請求項３の何れか１項に記載の画像処理装置。
【請求項５】
前記基準平面の設定に用いた前記第１姿勢情報によって特定される姿勢の前記撮影部と前記基準平面との第１距離に対する、該撮影部と該撮影部を原点として前記撮影方向の回転角度に応じた角度該基準平面を回転させた仮平面との第２距離の、倍率を算出する第３算出部を備え、
前記表示制御部は、
前記撮影部によって撮影された実空間画像における、前記基準平面に対応する領域に、前記第２姿勢情報の姿勢で且つ前記基準平面の設定時に対して前記倍率に応じて拡大または縮小した大きさの前記仮想オブジェクトを描画した前記オブジェクト画像を重畳した前記重畳画像を、前記表示部に表示する制御を行う、
請求項１〜請求項４の何れか１項に記載の画像処理装置。
【請求項６】
光源の光源効果を示す光源情報を設定する光源設定部を備え、
前記表示制御部は、
前記撮影部によって撮影された実空間画像における、前記基準平面に対応する領域に、前記光源情報によって示される光源効果を付与した前記オブジェクト画像を重畳した前記重畳画像を、前記表示部に表示する制御を行う、
請求項１〜請求項５の何れか１項に記載の画像処理装置。
【請求項７】
実空間を撮影する撮影部と、前記撮影部の第１姿勢情報を検出する検出部と、を備えた画像処理装置で実行する画像処理方法であって、
前記検出部から前記第１姿勢情報を取得する取得ステップと、
ユーザから設定指示を受け付ける受付ステップと、
前記設定指示を受け付けたときに、実空間における、仮想オブジェクトを配置する基準平面を、前記第１姿勢情報に応じて設定する設定ステップと、
前記撮影部の撮影方向に対する、前記基準平面の第１相対方向を導出する導出ステップと、
前記第１相対方向に位置する前記基準平面の、第２姿勢情報を算出する算出ステップと、
前記撮影部によって撮影された実空間画像における、前記基準平面に対応する領域に、前記第２姿勢情報の姿勢の前記仮想オブジェクトを描画したオブジェクト画像を重畳した重畳画像を、表示部に表示する制御を行う制御ステップと、
を含み、
前記設定ステップは、
前記撮影部の撮影方向と、前記表示部の表示方向とが同一方向である場合、実空間における、前記撮影部の位置する室内を構成する複数の壁面の内、前記撮影部の撮影方向または反撮影方向に交差する壁面であって、且つ該撮影方向に直交する撮影面との成す角度の最も大きい壁面を、前記基準平面として設定する、
画像処理方法。
【請求項８】
実空間を撮影する撮影部と、前記撮影部の第１姿勢情報を検出する検出部と、を備えたコンピュータに、
前記検出部から前記第１姿勢情報を取得する取得ステップと、
ユーザから設定指示を受け付ける受付ステップと、
前記設定指示を受け付けたときに、実空間における、仮想オブジェクトを配置する基準平面を、前記第１姿勢情報に応じて設定する設定ステップと、
前記撮影部の撮影方向に対する、前記基準平面の第１相対方向を導出する導出ステップと、
前記第１相対方向に位置する前記基準平面の、第２姿勢情報を算出する算出ステップと、
前記撮影部によって撮影された実空間画像における、前記基準平面に対応する領域に、前記第２姿勢情報の姿勢の前記仮想オブジェクトを描画したオブジェクト画像を重畳した重畳画像を、表示部に表示する制御を行う制御ステップと、
を実行させ、
前記設定ステップは、
前記撮影部の撮影方向と、前記表示部の表示方向とが同一方向である場合、実空間における、前記撮影部の位置する室内を構成する複数の壁面の内、前記撮影部の撮影方向または反撮影方向に交差する壁面であって、且つ該撮影方向に直交する撮影面との成す角度の最も大きい壁面を、前記基準平面として設定する、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、およびプログラムに関する。
【背景技術】
【０００２】
現実空間の事象に対してコンピュータによる情報を付加する拡張現実（ＡＲ：Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ）技術が知られている。例えば、実空間にＡＲマーカを設置し、該ＡＲマーカを含む実空間を撮影して撮影画像を得る。そして、この撮影画像に含まれるＡＲマーカの位置に仮想オブジェクトを合成して表示する技術が開示されている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかし、従来では、ＡＲマーカを実空間に設置する必要があり、実空間の環境に依存せず、容易に拡張現実による画像を提供することは困難であった。
【課題を解決するための手段】
【０００４】
上述した課題を解決し、目的を達成するために、本発明の画像処理装置は、実空間を撮影する撮影部と、前記撮影部の第１姿勢情報を検出する検出部と、前記検出部から前記第１姿勢情報を取得する第１取得部と、ユーザから設定指示を受け付ける受付部と、前記設定指示を受け付けたときに、実空間における、仮想オブジェクトを配置する基準平面を、前記第１姿勢情報に応じて設定する設定部と、前記撮影部の撮影方向に対する、前記基準平面の第１相対方向を導出する導出部と、前記第１相対方向に位置する前記基準平面の、第２姿勢情報を算出する第１算出部と、前記撮影部によって撮影された実空間画像における、前記基準平面に対応する領域に、前記第２姿勢情報の姿勢の前記仮想オブジェクトを描画したオブジェクト画像を重畳した重畳画像を、表示部に表示する制御を行う表示制御部と、を備える。前記設定部は、前記撮影部の撮影方向と、前記表示部の表示方向とが同一方向である場合、実空間における、前記撮影部の位置する室内を構成する複数の壁面の内、前記撮影部の撮影方向または反撮影方向に交差する壁面であって、且つ該撮影方向に直交する撮影面との成す角度の最も大きい壁面を、前記基準平面として設定する。
【発明の効果】
【０００５】
本発明によれば、容易に拡張現実による画像を提供することができる、という効果を奏する。
【図面の簡単な説明】
【０００６】
【図１】図１は、本実施の形態の画像処理装置の模式図である。
【図２】図２は、画像処理装置の外観の概略図である。
【図３】図３は、座標の説明図である。
【図４】図４は、第１姿勢情報の説明図である。
【図５】図５は、画像処理装置の機能構成を示すブロック図である。
【図６】図６は、光源情報テーブルのデータ構造の一例を示す図である。
【図７】図７は、撮影部の姿勢の一例を示す図である。
【図８】図８は、基準平面の設定の一例を示す説明図である。
【図９】図９は、基準平面および第１相対方向の設定の一例を示す説明図である。
【図１０】図１０は、基準平面の設定の一例を示す説明図である。
【図１１】図１１は、基準平面の再設定の説明図である。
【図１２】図１２は、基準平面の再設定の詳細な説明図である。
【図１３】図１３は、第１距離に対する第２距離の倍率算出の説明図である。
【図１４】図１４は、重畳画像の表示の説明図である。
【図１５】図１５は、オブジェクト画像の表示の説明図である。
【図１６】図１６は、表示処理の手順を示すシーケンス図である。
【図１７】図１７は、画像処理装置のハードウェア構成図である。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、画像処理装置、画像処理方法、およびプログラムの実施の形態を詳細に説明する。
【０００８】
図１は、本実施の形態の画像処理装置１０の模式図である。
【０００９】
画像処理装置１０は、プレビュー画像を表示部２０へ表示する装置である。
【００１０】
画像処理装置１０は、撮影部１２、表示処理部１４、記憶部１６、入力部１８、表示部２０、および検出部２５を備える。撮影部１２、表示処理部１４、記憶部１６、入力部１８、表示部２０、および検出部２５は、バス２２により電気的に接続されている。
【００１１】
なお、画像処理装置１０は、撮影部１２、表示処理部１４、および検出部２５と、記憶部１６、入力部１８、および表示部２０の少なくとも１つと、を別体として設けた構成であってもよい。
【００１２】
また、画像処理装置１０は、携帯可能な携帯端末であってもよいし、固定型の端末であってもよい。本実施の形態では、一例として、画像処理装置１０は、撮影部１２と、表示処理部１４と、記憶部１６と、入力部１８と、表示部２０と、検出部２５と、を一体的に備えた携帯可能な携帯端末である場合を説明する。また、画像処理装置１０は、外部装置と通信するための通信部などの他の機能部を更に設けた構成であってもよい。
【００１３】
撮影部１２は、画像処理装置１０の位置する実空間を撮影する。実空間は、例えば、室内などである。更に、例えば、実空間は、複数の壁面で構成された室内であり、一例としては、床面、天井面、床面と天井面とに連続する４つの壁面で構成された立方体状の室内である。なお、実空間は、画像処理装置１０の位置する現実の空間であればよく、室内に限定されない。撮影部１２は、撮影によって画像データを得る公知の撮影装置である。
【００１４】
表示部２０は、各種画像を表示する。表示部２０は、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）や、画像を投影するプロジェクタ等、公知の表示装置である。
本実施の形態では、表示部２０には、後述する重畳画像が表示される。
【００１５】
また、本実施の形態では、一例として、表示部２０と撮影部１２は、画像処理装置１０の筐体において、表示部２０の表示方向と、撮影部１２の撮影方向と、が、反対方向（１８０°の関係）である場合を説明する。
【００１６】
図２は、画像処理装置１０の外観の概略図である。画像処理装置１０の筐体１１には、撮影部１２と表示部２０が設けられている。なお、筐体１１の内部には、検出部２５や表示処理部１４や記憶部１６などが設けられている。図２（Ａ）および図２（Ｂ）に示すように、本実施の形態では、撮影部１２の撮影方向Ａ２と、表示部２０の表示方向Ａ１とは、反対方向となるように設けられている。なお、撮影部１２の撮影方向Ａ２と表示部２０の表示方向Ａ１とは、１８０°の関係にある場合に限定されず、同じ方向（０°の関係）であってもよいし、０°以上１８０°以下の範囲の何れの角度の関係であってもよい。
【００１７】
一例として、本実施の形態では、撮影部１２の撮影方向Ａ２と、表示部２０の表示方向Ａ１とは、反対方向となるように設けられている場合を説明する。このため、例えば、画像処理装置１０の位置を固定したまま、撮影部１２で撮影した撮影画像を表示部２０に表示した場合、表示部２０に表示された撮影画像と、表示部２０の背景（表示部２０の表示方向Ａ１の反対側）に位置する実空間の風景と、は略同じとなる。
【００１８】
図１に戻り、入力部１８は、ユーザから各種操作を受け付ける。入力部１８は、例えば、マウス、マイクによる音声認識、ボタン、リモコン、およびキーボード等である。
【００１９】
なお、入力部１８と表示部２０とを一体的に構成してもよい。本実施の形態では、入力部１８と表示部２０とを一体的に構成し、ＵＩ部１９とする場合を説明する。ＵＩ部１９は、例えば、表示機能と入力機能の双方を備えたタッチパネルである。このため、ユーザは、ＵＩ部１９に表示された画像を確認しながら、ＵＩ部１９の表示面上を操作することで、各種入力を行うことができる。
【００２０】
記憶部１６は、メモリやハードディスクドライブ装置（ＨＤＤ）等の記憶媒体であり、後述する各処理を実行するための各種プログラムや、各種データを記憶する。
【００２１】
検出部２５は、実空間における撮影部１２の姿勢を示す第１姿勢情報を検出する。
【００２２】
第１姿勢情報は、撮影部１２の、実空間における姿勢を示す情報である。詳細には、第１姿勢情報は、実空間における、撮影部１２の光軸の姿勢を示す情報である。なお、本実施の形態では、撮影部１２の光軸方向と、撮影部１２の撮影方向Ａ２と、が一致するものとして説明する。
【００２３】
姿勢とは、実空間における撮影部１２の、基準姿勢（詳細後述）に対する傾きを示す。本実施の形態では、第１姿勢情報は、基準姿勢（詳細後述）に対する回転角（ロール角α、ピッチ角β、ヨー角γ）で表す。
【００２４】
詳細には、第１姿勢情報は、本実施の形態では、撮影部１２の撮影方向Ａ２に直交する撮影面の左右方向をＸ軸、上下方向をＹ軸、該撮影面に垂直な方向をＺ軸としたカメラ座標の、Ｘ軸が東西方向と一致し、Ｙ軸が鉛直方向と一致し、Ｚ軸が南北方向と一致するときを基準姿勢とする。
【００２５】
そして、本実施の形態では、第１姿勢情報は、この基準姿勢に対する撮影部１２の撮影方向Ａ２の傾き（姿勢）を示し、該基準姿勢に対する回転角（ロール角α、ピッチ角β、ヨー角γ）で示すものとして説明する。なお、以下では、撮影部１２の撮影方向Ａ２の姿勢を、単に、撮影部１２の姿勢と称して説明する場合がある。
【００２６】
なお、カメラ座標におけるＸＹ平面は、撮影方向Ａ２に直交する撮影面と一致する。また、本実施の形態では、撮影方向Ａ２に直交する撮影面は、表示部２０の表示面と一致する場合を説明する。また、カメラ座標の原点（０の点）は、撮影部１２の撮影面の中央である。
【００２７】
上述したように、本実施の形態では、撮影部１２は、画像処理装置１０に一体的に設けられている。このため、撮影部１２の第１姿勢情報は、画像処理装置１０、表示部２０、およびＵＩ部１９の姿勢をも示すものとなる。
【００２８】
図３は、座標の説明図である。図３（Ａ）は、実空間の三次元座標（すなわち、ワールド座標）の説明図である。図３（Ｂ）は、撮影部１２の撮影方向Ａ２に直交する撮影面（本実施の形態では、表示部２０の表示面と同一）を基準とする、カメラ座標の説明図である。図４は、第１姿勢情報の説明図である。
【００２９】
すなわち、本実施の形態では、カメラ座標のＸ軸（図３（Ｂ）参照）がワールド座標の東西方向（図３（Ａ）Ｘ軸方向参照）と一致し、カメラ座標のＹ軸（図３（Ｂ）参照）がワールド座標の鉛直方向（図３（Ａ）のＹ軸方向参照）と一致し、カメラ座標のＺ軸（図３（Ｂ）参照）がワールド座標の南北方向（図３（Ａ）のＺ軸方向参照）と一致するときを基準姿勢としている。そして、第１姿勢情報は、本実施の形態では、基準姿勢に対する撮影部１２の回転角（ロール角α、ピッチ角β、ヨー角γ）で表す（図４参照）。
【００３０】
なお、図３および図４では、説明を簡略化するために、撮影部１２の姿勢の説明として、撮影部１２の姿勢と同等の、表示部２０およびＵＩ部１９の姿勢を図示した。
【００３１】
検出部２５には、傾きや方角（角度）を検出可能な公知の検出装置を用いる。例えば、検出部２５は、ジャイロセンサ（３軸加速度計）、電子コンパス、重力加速度計などである。
【００３２】
なお、検出部２５は、実空間における位置（具体的には、上記ワールド座標における位置）を検出する公知の機器を更に含む構成であってもよい。例えば、検出部２５は、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）を備えた構成であってもよい。この場合、検出部２５は、上記第１姿勢情報に加えて、実空間における撮影部１２の位置（緯度、経度、高度）を検出することができる。
【００３３】
図１に戻り、表示処理部１４は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、およびＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などを含んで構成されるコンピュータである。なお、表示処理部１４は、汎用のＣＰＵ以外の回路などであってもよい。表示処理部１４は、画像処理装置１０に設けられた装置各部を制御する。
【００３４】
表示処理部１４は、重畳画像を表示部２０へ表示する制御を行う。重畳画像は、実空間を撮影した実空間画像に、仮想オブジェクトのオブジェクト画像を、重畳した画像である。
【００３５】
仮想オブジェクトは、撮影された実空間画像には含まれない仮想のオブジェクトである。仮想オブジェクトは、例えば、表示処理部１４で扱う事の可能な画像データである。仮想オブジェクトの画像データは、例えば、外部装置や表示処理部１４などで別途作成された画像の画像データや、実空間画像の撮影とは異なるタイミングで撮影された撮影画像の画像データなどであるが、これらに限定されない。
【００３６】
表示処理部１４による表示処理には、グラフィックス処理のためのプログラミングインターフェースを用いた３Ｄエンジンを用いる。例えば、表示処理部１４は、ＯｐｅｎＧＬ（Ｏｐｅｎ  Ｇｒａｐｈｉｃｓ  Ｌｉｂｒａｒｙ）などの３Ｄエンジンにより、表示処理を実現する。
【００３７】
本実施の形態では、重畳画像は、仮想三次元空間に実空間画像を配置し、仮想三次元空間に仮想オブジェクトを描画してオブジェクト画像とし、これらの実空間画像およびオブジェクト画像の配置された三次元モデルを、二次元面に投影した画像である場合を説明する。
【００３８】
なお、重畳画像は、実空間画像、およびオブジェクト画像を二次元空間に配置した二次元モデルであってもよい。
【００３９】
図５は、画像処理装置１０の機能構成を示すブロック図である。上述したように画像処理装置１０は、検出部２５、撮影部１２、記憶部１６、ＵＩ部１９、および表示処理部１４を備える。検出部２５、撮影部１２、記憶部１６、およびＵＩ部１９は、表示処理部１４に信号やデータ授受可能に接続されている。
【００４０】
表示処理部１４は、第１取得部１４Ａと、第２取得部１４Ｂと、受付部１４Ｃと、設定処理部１４Ｄと、算出部１４Ｅと、光源設定部１４Ｆと、表示制御部１４Ｇと、を含む。
【００４１】
第１取得部１４Ａ、第２取得部１４Ｂ、受付部１４Ｃ、設定処理部１４Ｄ、算出部１４Ｅ、光源設定部１４Ｆ、および表示制御部１４Ｇの一部またはすべては、例えば、ＣＰＵなどの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。
【００４２】
第１取得部１４Ａは、検出部２５から第１姿勢情報を取得する。検出部２５は、連続して第１姿勢情報を検出するものとし、順次、第１取得部１４Ａへ出力するものとする。このため、第１取得部１４Ａは、最新の撮影部１２の姿勢を示す第１姿勢情報を、連続して順次取得する。
【００４３】
第２取得部１４Ｂは、撮影部１２で撮影された実空間画像を取得する。なお、本実施の形態では、ユーザによるＵＩ部１９の操作指示などによって表示処理アプリケーションの起動が指示されると、撮影部１２は、実空間画像の連続撮影を開始し、撮影した実空間画像を順次表示処理部１４へ出力する。第２取得部１４Ｂは、撮影部１２で撮影された実空間画像を取得する。このため、第２取得部１４Ｂは、最新の実空間画像を、連続して順次取得する。
【００４４】
受付部１４Ｃは、ユーザによる各種指示をＵＩ部１９（入力部１８）から受け付ける。本実施の形態では、受付部１４Ｃは、表示対象の仮想オブジェクトの指示を受け付ける。
【００４５】
例えば、表示制御部１４Ｇは、記憶部１６に予め記憶された複数の画像データを選択するための選択画面をＵＩ部１９に表示する。ユーザは、例えば、ＵＩ部１９（表示部２０）に表示された選択画面を介して、表示対象の画像データを選択する。これにより、受付部１４Ｃは、選択された画像データを、仮想オブジェクトとして受け付ける。
【００４６】
また、受付部１４Ｃは、後述する基準平面の設定指示を受け付ける。
【００４７】
また、受付部１４Ｃは、光源情報を受け付ける。光源情報は、仮想三次元空間に配置される仮想光源の反射特性を示す情報である。例えば、受付部１４Ｃは、記憶部１６に予め光源情報テーブルを記憶する。そして、受付部１４Ｃは、ユーザによるＵＩ部１９（入力部１８）の操作指示によって、光源情報テーブルから選択された光源情報を受け付ける。
【００４８】
図６は、光源情報テーブルのデータ構造の一例を示す図である。光源情報テーブルは、光源の種類を識別する光源ＩＤと、光源名と、光源情報と、を対応づけた情報である。なお、光源情報テーブルは、データベースであってもよく、データ形式は限定されない。
【００４９】
光源情報は、対応する光源ＩＤによって特定される光源の、光属性を示す情報である。光属性は、重畳画像表示時の光を演出する反射量を特定するための情報である。光源情報は、光源の色温度に関する項目である鏡面光、拡散光、および環境光の各々における、ＲＧＢの色成分ごとの光量（輝度）で表される。ＲＧＢの各色成分の光の値は、最大値「１．０」であり、最小値「０」である。具体的には、図６中、鏡面光の値の一例として記載した“（１．００，０．９５，０．９５）”は、Ｒ成分、Ｇ成分、Ｂ成分の各々の鏡面光の光量が、各々、１．００，０．９５，０．９５であることを示す。
【００５０】
表示制御部１４Ｇは、記憶部１６に記憶されている光源情報テーブルを読取り、光源情報テーブルに登録されている光源情報の一覧を、選択可能にＵＩ部１９（表示部２０）に表示する。ユーザは、表示された光源情報の一覧の中から、所望の光源名に対応する光源情報を入力部１８の操作指示により入力する。これにより、受付部１４Ｃは、光源情報を受け付ける。
【００５１】
図５に戻り、設定処理部１４Ｄは、基準平面の設定、基準平面の撮影部１２の撮影方向に対する第１相対方向の導出、基準平面の再設定などを行う。
【００５２】
設定処理部１４Ｄは、設定部１４Ｈと、導出部１４Ｎと、判定部１４Ｉと、再設定部１４Ｊと、を含む。
【００５３】
設定部１４Ｈは、基準平面の設定指示を受け付けたときに、実空間における、仮想オブジェクトを配置する基準平面を、該設定指示を受け付けたときに取得した第１姿勢情報に応じて設定する。
【００５４】
基準平面は、実空間における平面状の領域である。例えば、実空間が、複数の壁面で構成された室内であるとする。この場合、基準平面は、この複数の壁面の内の１つの壁面である。また、実空間が、床面、天井面、床面と天井面とに連続する４つの壁面で構成された立方体状の室内であるとする。この場合、基準平面は、立方体状の室内を構成する６つの壁面の内の１つである。
【００５５】
詳細には、設定部１４Ｈは、設定指示を受け付けたときに検出された第１姿勢情報を、第１取得部１４Ａから受け付ける。そして、設定部１４Ｈは、該第１姿勢情報を用いて、基準平面を設定する。
【００５６】
例えば、表示制御部１４Ｇは、表示部２０に実空間画像を表示し、基準平面の設定指示を促すメッセージを表示する。ユーザは、表示部２０に表示されている実空間画像を確認しながら、仮想オブジェクトを配置したい平面（天井、床面、壁面など）の方向に撮影方向が向くように調整し、設定ボタン（図示省略）を押す。すると、受付部１４Ｃは、設定指示を受け付け、設定処理部１４Ｄの設定部１４Ｈへ出力する。
【００５７】
設定部１４は、この設定指示を受け付けたときに、該設定指示を受け付けたときの第１姿勢情報を用いて、基準平面を設定する。
【００５８】
図７は、第１取得部１４Ａから受け付けた第１姿勢情報に応じた撮影部１２（画像処理装置１０、表示部２０）の姿勢の一例を示す図である。
【００５９】
第１姿勢情報によって特定される姿勢は、例えば、ランドスケープ（図７（Ａ）参照）、フェースアップ（図７（Ｂ）参照）、フェースダウン（図７（Ｃ）参照）、などがある。
【００６０】
ランドスケープは、撮影部１２の撮影方向Ａ２に直交する撮影面（表示部２０の表示面と同一平面）が、ワールド座標における、鉛直方向に平行な平面と一致する場合である。フェースアップとは、撮影部１２の撮影方向Ａ２に直交する撮影面（表示部２０の表示面と同一平面）が、鉛直方向に垂直な垂直平面と一致し、且つ、表示部２０の表示方向Ａ１が反鉛直方向（重力方向の反対方向）と一致する場合である。フェースダウンとは、撮影部１２の撮影方向Ａ２に直交する撮影面（表示部２０の表示面と同一平面）が、鉛直方向に垂直な垂直平面と一致し、且つ、表示部２０の表示方向Ａ１が鉛直方向（重力方向）と一致する場合である。
【００６１】
基準平面の設定指示時には、ユーザは、例えば、上記ランドスケープ、フェースアップ、フェースダウンなどの姿勢となるように、画像処理装置１０を把持し、設定指示を入力することが好ましい。
【００６２】
図５に戻り、設定部１４Ｈは、設定指示を受け付けたときに取得した第１姿勢情報を用いて、基準平面を設定する。
【００６３】
基準平面の設定について、具体的に説明する。設定部１４Ｈは、設定指示を受け付けたときに取得した第１姿勢情報を用いて、実空間における、撮影部１２の位置する室内を構成する複数の壁面の内の１つの壁面を、基準平面として設定する。
【００６４】
詳細には、設定部１４Ｈは、実空間における、撮影部１２の撮影方向に対して交差する平面を、基準平面として設定する。
【００６５】
図８は、基準平面の設定の一例を示す説明図である。
【００６６】
例えば、画像処理装置１０が、実空間として、床面Ｓ１、天井面Ｓ６、床面と天井面とに連続する４つの壁面（Ｓ２〜Ｓ５）で構成された立方体状の室内であるとする。そして、画像処理装置１０が、撮影部１２の撮影方向Ａ２を床面Ｓ１側とし、表示方向Ａ１を壁面Ｓ２として位置していたとする（図８（Ａ）参照）。
【００６７】
図８に示す状況の場合、実空間における、第１姿勢情報によって特定される撮影方向Ａ２に対して交差する平面は、床面Ｓ１である（図８（Ｂ）参照）。すなわち、この場合、設定部１４Ｈは、床面Ｓ１を基準平面として設定する。
【００６８】
ここで、設定部１４Ｈは、設定指示を受け付けたときの、画像処理装置１０における撮影部１２の撮影方向Ａ２と表示部２０の表示方向Ａ１との関係に応じて、基準平面を設定する。
【００６９】
例えば、画像処理装置１０における撮影部１２の撮影方向Ａ２と、画像処理装置１０における表示部２０の表示方向Ａ１と、が反対方向（１８０°の関係）となるように、撮影部１２および表示部２０の配置が調整されていたとする。
【００７０】
図９は、基準平面および第１相対方向の設定の一例を示す説明図である。なお、図９における壁面Ｓの配置は、図８（Ａ）と同様であるとする。また、図９は、画像処理装置１０における撮影部１２の撮影方向Ａ２と、画像処理装置１０における表示部２０の表示方向Ａ１と、が反対方向（１８０°の関係）である場合を示す。
【００７１】
撮影部１２の撮影方向Ａ２と、表示部２０の表示方向Ａ１とが反対方向である場合、設定部１４Ｈは、実空間における、撮影部１２の位置する室内を構成する複数の壁面の内、撮影部１２の撮影方向Ａ２または反撮影方向に交差する壁面であって、且つ該撮影方向Ａ２に直交する撮影面との成す角度の最も小さい壁面を、基準平面として設定する。
【００７２】
図９に示す例では、設定部１４Ｈは、複数の壁面Ｓの内、撮影方向Ａ２および表示方向Ａ１に交差する、床面Ｓ１と壁面Ｓ２を特定する。
【００７３】
そして、設定部１４Ｈは、特定した壁面の内、撮影方向Ａ２に直交する撮影面との成す角度の最も小さい壁面を、基準平面として設定する。図９に示す例では、特定した床面Ｓ１および壁面Ｓ２の内、撮影方向Ａ２に直交する撮影面との成す角度（図９中、角度φ１、角度φ２参照（φ１＜φ２とする））の最も小さい壁面である床面Ｓ１を基準平面として設定する。なお、角度φ１と角度φ２とが同じである場合には、特定した床面Ｓ１および壁面Ｓ２の内、撮影部１２より撮影方向Ａ２の下流側の壁面Ｓである床面Ｓ１を、基準平面として設定する。
【００７４】
一方、画像処理装置１０における撮影部１２の撮影方向Ａ２と、画像処理装置１０における表示部２０の表示方向Ａ１と、が同一方向（０°の関係）となるように、撮影部１２および表示部２０の配置が調整されていたとする。
【００７５】
図１０は、基準平面の設定の一例を示す説明図である。なお、図１０における壁面Ｓの配置は、図８（Ａ）と同様であるとする。また、図１０は、画像処理装置１０における撮影部１２の撮影方向Ａ２と、画像処理装置１０における表示部２０の表示方向Ａ１と、が同一方向（０°の関係）である場合を示す説明図である。
【００７６】
設定部１４Ｈは、撮影部１２の撮影方向Ａ２と、表示部２０の表示方向Ａ１とが同一方向である場合、実空間における、撮影部１２の位置する室内を構成する複数の壁面の内、撮影部１２の撮影方向Ａ２または反撮影方向に交差する壁面であって、且つ該撮影方向Ａ２に直交する撮影面との成す角度の最も大きい壁面を、基準平面として設定する。
【００７７】
図１０に示す例では、設定部１４Ｈは、複数の壁面Ｓの内、撮影方向Ａ２、表示方向Ａ１、これらの反対方向の各々に交差する、床面Ｓ１と壁面Ｓ２を特定する。
【００７８】
そして、設定部１４Ｈは、特定した壁面の内、撮影方向Ａ２に直交する撮影面との成す角度の最も大きい壁面を、基準平面および第１相対方向として設定する。図１０に示す例では、特定した床面Ｓ１および壁面Ｓ２の内、撮影方向Ａ２に直交する撮影面との成す角度（図１０中、角度φ１、角度φ２参照（φ１＜φ２とする））の最も大きい壁面である壁面Ｓ２を、基準平面として設定する。なお、角度φ１と角度φ２とが同じである場合には、特定した床面Ｓ１および壁面Ｓ２の内、撮影部１２より撮影方向Ａ２の下流側の壁面Ｓである壁面Ｓ２を、基準平面として設定する。
【００７９】
図５に戻り、導出部１４Ｎは、現在の撮影部１２の撮影方向Ａ２に対する、設定された基準平面の第１相対方向を導出する。導出部１４Ｎは、順次検出される第１姿勢情報を用いて、現在の撮影部１２の撮影方向Ａ２を特定する。そして、導出部１４Ｎは、特定した撮影方向Ａ２に対する、設定部１４Ｈで設定された基準平面の相対的な方向である第１相対方向を導出する。
【００８０】
このため、画像処理装置１０の回転などに伴い、撮影部１２の撮影方向Ａ２が回転すると、回転に伴い、回転後の現在の撮影部１２の撮影方向Ａ２に対する基準平面の第１相対方向が、順次算出されることとなる。
【００８１】
判定部１４Ｉは、基準平面の設定時に用いた第１姿勢情報と、今回取得した第１姿勢情報と、の比較結果に基づいて、基準平面を設定したときから撮影方向Ａ２が予め定めた第１相対角度以上回転したか否かを判定する。今回取得した第１姿勢情報とは、最新の第１姿勢情報であり、現在の撮影部１２の姿勢を示す第１姿勢情報である。すなわち、判定部１４Ｉは、基準平面の設定時の撮影方向Ａ２からの回転角度が、第１相対角度以上であるか否かを判定する。
【００８２】
例えば、設定部１４Ｈは、基準平面の設定を行う度に、設定時に用いた第１姿勢情報を、基準平面の設定時の第１姿勢情報として、記憶部１６に記憶する。なお、記憶部１６に、基準平面の設定時の第１姿勢情報が既に記憶されている場合には、設定部１４Ｈは、最新の基準平面の設定時に用いた第１姿勢情報が記憶されるように、既に記憶されている基準平面の設定時の第１姿勢情報に上書きする。また、後述する基準平面の再設定が行われた場合には、再設定時に用いた第１姿勢情報が、基準平面の設定時の第１姿勢情報として、記憶部１６に上書きして記憶される。
【００８３】
例えば、設定部１４Ｈは、基準平面の設定時に用いた第１姿勢情報（Ａ0＝（α０，β０，γ０））を、記憶部１６に記憶する。α０は、基準平面設定時の、第１姿勢情報に示されるロール角αである。β０は、基準平面設定時の、第１姿勢情報に示されるピッチ角βである。γ０は、基準平面設定時の、第１姿勢情報に示されるヨー角γである。
【００８４】
そして、現在の撮影部１２の姿勢を示す、今回取得した第１姿勢情報を、例えば、Ａｔ＝（αｔ，βｔ，γｔ）とする。ｔは、基準平面の設定に用いた第１姿勢情報の取得からの経過時間を示す。すなわち、Ａｔは、基準平面の設定時を時刻「０」とし、該時刻「０」から経過時間「ｔ」経過したときの（すなわち現在の）、撮影部１２の姿勢を示す第１姿勢情報である。
【００８５】
そして、判定部１４Ｉは、現在の撮影部１２の姿勢を示す第１姿勢情報Ａｔから、基準平面の設定時に用いた第１姿勢情報Ａ０を減算した減算値Ａｔ−Ａ０を、基準平面の設定時からの撮影部１２の撮影方向Ａ２の回転角度として算出する。
【００８６】
そして、判定部１４Ｉは、この減算値Ａｔ−Ａ０によって示される回転角度（具体的には、Ａｔ−Ａ０の絶対値）が、予め定めた第１相対角度以上であるか否かを判定する。
【００８７】
第１相対角度は、予め任意の値を設定すればよい。また、この第１相対角度は、ユーザによる入力部１８の操作指示などにより、適宜変更可能である。
【００８８】
第１相対角度は、後述する第２相対角度より小さい角度である。例えば、第２相対角度が９０°である場合、第１相対角度は４５°より大きく且つ９０°未満の範囲であることが好ましく、８０°であることが特に好ましい。
【００８９】
また、例えば、第２相対角度が１８０°である場合、第１相対角度は、１３５°より大きく１８０°未満の範囲であることが好ましく、第１相対角度は１７０°であることが特に好ましい。
【００９０】
再設定部１４Ｊは、判定部１４Ｉによって第１相対角度以上回転したと判定されたときに、基準平面を第１相対角度より大きい第２相対角度回転した平面を、新たな基準平面として再設定する。なお、基準平面の回転方向は、判定された回転の回転方向と同じとする。
【００９１】
例えば、第２相対角度を９０°に設定し、第１相対角度を８０°に設定したとする。そして、立方体状の室内などの実空間において、画像処理装置１０を、鉛直方向を回転軸として回転させたとする。この場合、再設定部１４Ｊは、撮影方向Ａ２に交差する室内の各壁面Ｓを、回転に応じて順に基準平面として再設定することができる。
【００９２】
基準平面を再設定したときの、撮影部１２の第１姿勢情報Ａ０は、下記式（１）で表せる。
【００９３】
Ａ０＝（α０＋π／２×Ｓα，β０＋π／２×Ｓβ，γ０＋π／２×Ｓγ）
・・・式（１）
【００９４】
式（１）中、Ｓα，Ｓβ，Ｓγは、撮影部１２の姿勢の変化を示す整数変数｛０，１，２，３｝である。α０は、前回の（再設定前の）基準平面設定時の、第１姿勢情報に示されるロール角αである。β０は、前回の（再設定前の）基準平面設定時の、第１姿勢情報に示されるピッチ角βである。γ０は、前回の（再設定前の）基準平面設定時の、第１姿勢情報に示されるヨー角γである。
【００９５】
そして、再設定部１４Ｊは、再設定した基準平面の第１姿勢情報Ａ０を、基準平面の設定時に用いた第１姿勢情報として、記憶部１６に上書きして記憶する。
【００９６】
図１１は、基準平面の再設定の説明図である。図１１（Ａ）に示すように、基準平面の設定時の、第１姿勢情報によって特定される姿勢の撮影部１２の撮影方向Ａ２が、床面Ｓ１に連続する壁面Ｓ３に交差する方向であり、該壁面Ｓ３が基準平面として設定されていたとする。
【００９７】
この状態から、例えば、画像処理装置１０の回転により、撮影部１２の撮影方向Ａ２が、壁面Ｓ３に直交する方向から、壁面Ｓ３に対して９０°右手側に配置された壁面Ｓ５に直交する方向に、回転されたとする（図１１（Ｂ）中、矢印Ｃ方向参照）。また、第１相対角度が８０°であり、第２相対角度が９０°であったとする。
【００９８】
この場合、判定部１４Ｉによって第１相対角度（例えば、８０°）以上回転したと判定されたときに、再設定部１４Ｊは、基準平面である壁面Ｓ３を第２相対角度（例えば、９０°）回転した方向の壁面Ｓ５を、新たな基準平面として再設定する。
【００９９】
図１２は、基準平面の再設定の詳細な説明図である。
【０１００】
例えば、図１２（Ａ）に示すように、基準平面の設定時の、画像処理装置１０の撮影部１２の撮影方向Ａ２が、ワールド座標における−Ｚ軸方向に一致する方向であったとする。そして、実空間における、この撮影方向Ａ２に交差する平面（壁面）が基準平面として設定されていたとする。
【０１０１】
そして、図１２（Ｂ）に示すように、この状態から撮影部１２の撮影方向Ａ２を、Ｙ軸を回転軸として右回り（図１２（Ｂ）中、矢印Ｒ１方向）に角度θ回転させたとする。この場合、基準平面の位置は動かないことから、撮影部１２の撮影方向Ａ２に対する基準平面の第１相対方向は、撮影方向Ａ２からＹ軸を回転軸として左回り（図１２（Ｂ）中、矢印Ｒ１の反対方向）に角度−θ回転させた方向となる。
【０１０２】
そして、図１２（Ｃ）に示すように、回転角度θが第１相対角度（例えば、８０°）を超えたときに、上記処理により、基準平面を、Ｙ軸を回転軸として右回り（図１２（Ｃ）中、矢印Ｒ１方向）に第２相対角度（例えば、９０°）回転させた方向が、新たな基準平面として再設定される。この場合、第１相対方向は、撮影方向Ａ２からＹ軸を回転軸として左回り（図１２（Ｃ）中、矢印Ｒ１の反対方向）に角度−θ回転させた方向となる。
【０１０３】
そして、図１２（Ｄ）に示すように、新たな基準平面が再設定された後に、更に、撮影部１２の撮影方向Ａ２を、Ｙ軸を回転軸として右回り（図１２（Ｄ）中、矢印Ｒ１方向）に角度θ’回転させたとする。そして、回転角度θ’が第１相対角度（例えば、８０°）を超えたときに、上記と同様に、基準平面を、Ｙ軸を回転軸として右回り（図１２（Ｄ）中、矢印Ｒ１方向）に第２相対角度（例えば、９０°）回転させた方向が、新たな基準平面として再設定される。そして、撮影部１２の撮影方向Ａ２に対する新たな基準平面の方向が、第１相対方向となる。この場合、第１相対方向は、撮影方向Ａ２からＹ軸を回転軸として左回り（図１２（Ｄ）中、矢印Ｒ１の反対方向）に角度−θ’回転させた方向となる。
【０１０４】
すなわち、第１相対角度が８０°である場合、図１２（Ｂ）に示す状態では、−８０＜θ＜８０の範囲で、ＸＹ平面に平行な面が、基準平面として設定される。また、図１２（Ｃ）に示すように基準平面が切り替えられて、新たな基準平面が再設定されると、図１２（Ｄ）に示す状態では、−８０＜θ’＜８０の範囲で、ＹＺ平面に平行な面が、基準平面として再設定されることとなる。
【０１０５】
図５に戻り、算出部１４Ｅは、第２姿勢情報、第１位置、倍率などを算出する。算出部１４Ｅは、第１算出部１４Ｋと、第２算出部１４Ｌと、第３算出部１４Ｍと、を含む。
【０１０６】
第１算出部１４Ｋは、導出部１４Ｅで導出された第１相対方向に位置する基準平面の、第２姿勢情報を算出する。第２姿勢情報は、現在の撮影部１２の撮影方向Ａ２に対する、設定された基準平面の姿勢を示す情報である。
【０１０７】
第２姿勢情報は、第１姿勢情報と同様に、撮影部１２の撮影方向Ａ２に対する、回転角（ロール角α、ピッチ角β、ヨー角γ）で表される。
【０１０８】
第１算出部１４Ｋは、以下のようにして第２姿勢情報を算出する。第１算出部１４Ｋは、基準平面の設定時の撮影方向Ａ２から現在の撮影方向Ａ２への回転角度（Ａｔ−Ａ０）の逆方向の回転角度を算出することで、第２姿勢情報を算出する。第２姿勢情報は、下記式（２）で表せる。
【０１０９】
（Ａ０−Ａｔ）=（α０-αｔ，β０-βｔ，γ０-γｔ）・・・式（２）
【０１１０】
第２算出部１４Ｌは、実空間における、基準平面の第１位置を算出する。第１位置は、実空間における、基準平面として設定された平面（壁面）における特定の位置を示す。この位置は、ユーザによって設定される。なお、第２算出部１４Ｌは、基準平面における、基準平面の設定時の撮影方向Ａ２との交点に相当する位置を、第１位置として算出してもよい。
【０１１１】
また、第２算出部１４Ｌは、現在の撮影部１２の撮影方向Ａ２を、基準平面の設定時の撮影方向Ａ２から現在の撮影方向Ａ２への回転角度（Ａｔ−Ａ０）分、逆の回転方向に回転させた位置を、第１位置として算出してもよい。
【０１１２】
第３算出部１４Ｍは、第１距離に対する、第２距離の倍率を算出する。第１距離は、基準平面の設定に用いた第１姿勢情報によって特定される姿勢の撮影部１２と、基準平面と、の距離を示す。第２距離は、撮影部１２と、撮影部１２を原点として撮影方向Ａ２の回転角度に応じた角度、基準平面を回転させた仮平面と、の距離を示す。
【０１１３】
図１３は、第１距離に対する第２距離の倍率算出の説明図である。
【０１１４】
図１３（Ａ）および図１３（Ｂ）に示すように、基準平面（図１３（Ｂ）では、基準平面Ｓ’とする）の設定時には、撮影部１２の撮影方向Ａ２に交差する壁面（平面）が基準平面として設定される。このため、表示部２０には、後述する表示制御部１４Ｇによる処理によって、実空間画像４２における該基準平面に対応する領域に仮想オブジェクトを描画したオブジェクト画像４０が表示されることとなる。
【０１１５】
図１３（Ｃ）および図１３（Ｄ）に示すように、図１３（Ａ）および図１３（Ｂ）に示す状態から、画像処理装置１０を回転させる。すなわち、画像処理装置１０を回転させ、撮影部１２の撮影方向Ａ２を、Ｙ軸を回転軸として右回り（図１３（Ｃ）および図１３（Ｄ）中、矢印Ｒ１方向）に角度θ回転させたとする。この場合、実空間における基準平面（図１３（Ｄ）中、基準平面Ｓ’参照）の位置は動かないことから、基準平面の、撮影方向Ａ２に対する第１相対方向は、撮影方向Ａ２からＹ軸を回転軸として左回りに角度−θ回転させた方向となる。
【０１１６】
そして、第３算出部１４Ｍは、撮影部１２を原点として撮影方向Ａ２の回転角度θに応じた角度、基準平面Ｓ’を回転させた仮平面３１を設定する。
【０１１７】
このとき、基準平面の設定時に用いた第１姿勢情報によって特定される姿勢の撮影部１２と、基準平面Ｓ’と、の第１距離を「１」とする。すると、撮影部１２と仮平面３１との第２距離は、１／ｃｏｓθで表せる。第３算出部１４Ｍは、この１／ｃｏｓθを、第１距離に対する第２距離の倍率として算出する。
【０１１８】
詳細は後述するが、表示制御部１４Ｇは、基準平面に描画する仮想オブジェクトの位置を、基準平面の設定時に比べて該倍率に応じた距離、奥行き方向に配置する。具体的には、該倍率が１以上である場合、奥行き方向の手前側（視点位置側）に配置し、該倍率が１未満である場合、奥行き方向の奥側（視点位置から離れる側）に配置する。
【０１１９】
また、表示制御部１４Ｇは、基準平面の設定時に対して上記倍率に応じて拡大または縮小した大きさの仮想オブジェクトを、基準平面に対応する領域に描画する（図１３（Ｅ）、図１３（Ｆ）参照）。具体的には、表示制御部１４Ｇは、表示する仮想オブジェクトの大きさを、ｃｏｓθ倍した大きさとして、描画する。
【０１２０】
図５に戻り、光源設定部１４Ｆは、光源の光源効果を示す光源情報を設定する。本実施の形態では、光源設定部１４Ｆは、受付部１４Ｃで受け付けた光源情報を設定する。
【０１２１】
表示制御部１４Ｇは、撮影部１２によって撮影された実空間画像における、基準平面に対応する領域に、第２姿勢情報の姿勢の仮想オブジェクトを描画したオブジェクト画像を重畳した重畳画像を、表示部２０に表示する制御を行う。上述したように、表示制御部１４Ｇは、ＯｐｅｎＧＬを用いて、重畳画像を表示する。
【０１２２】
図１４は、重畳画像の表示の説明図である。図１４（Ａ）に示すように、重畳画像４４は、実空間画像４２に、オブジェクト画像４０を重畳した画像である。
【０１２３】
まず、表示制御部１４Ｇは、仮想三次元空間に実空間画像４２を配置する。表示制御部１４Ｇは、順次撮影される実空間画像４２を順次取得し、最新の（現在の）実空間画像４２を仮想三次元空間に配置する。
【０１２４】
そして、表示制御部１４Ｇは、仮想三次元空間における、視点位置から実空間画像４２の中央に向かう方向を現在の撮影方向Ａ２とし、第１相対方向（撮影部１２の撮影方向Ａ２に対する基準平面の相対方向）に、第２姿勢情報の姿勢の仮想オブジェクトを描画して、オブジェクト画像４０とする。仮想三次元空間における、第１相対方向に仮想オブジェクトを描画することで、実空間画像４２における基準平面に対応する領域に、仮想オブジェクトを描画することができる。なお、このとき、表示制御部１４Ｇは、オブジェクト画像４０に、光源情報によって示される光源効果を付与することが好ましい。
【０１２５】
そして、表示制御部１４Ｇは、ＯｐｅｎＧＬを用いて、この仮想三次元空間を、撮影方向Ａ２の上流側の視点位置から視認した二次元画像に投影することで、実空間画像４２とオブジェクト画像４０とを重畳した重畳画像４４を生成し、表示部２０に表示する。
【０１２６】
そして、表示制御部１４Ｇは、この表示処理を、ユーザによる表示処理の終了を示す終了指示を受付部１４Ｃから受け付けるまで、繰り返し実行する。
【０１２７】
このため、画像処理装置１０が回転することで、撮影部１２の撮影方向Ａ２が回転すると、撮影方向Ａ２に対する第１相対方向に、第２姿勢情報の姿勢でオブジェクト画像４０が表示されることとなる。このため、図１４（Ｂ）に示すように、表示部２０に表示された重畳画像４４に含まれるオブジェクト画像４０は、撮影部１２の撮影方向Ａ２の回転方向（図１４（Ｂ）中、矢印Ｒ方向参照）とは逆方向（図１４（Ｂ）中、矢印−Ｒ方向参照）に、回転することとなる。
【０１２８】
すなわち、設定部１４Ｈで設定された基準平面に、オブジェクト画像４０をあたかも貼り付けたかのような重畳画像４４が、表示部２０に表示されることとなる。また、撮影部１２の回転に応じて、オブジェクト画像４０は、基準平面に貼り付いたままの状態を維持したまま、表示部２０の画面上において、撮影部１２の回転方向とは逆方向に移動するように、表示されることとなる。
【０１２９】
また、表示制御部１４Ｇは、実空間画像４２における、第１位置の基準平面に対応する領域に、第２姿勢情報の姿勢の仮想オブジェクトを描画したオブジェクト画像４０を重畳した重畳画像４４を、表示部２０に表示する制御を行う。
【０１３０】
このため、画像処理装置１０が回転された場合であっても、オブジェクト画像４０は、設定部１４Ｈで設定された基準平面にあたかも貼り付いたかのような状態で、表示部２０に表示されることとなる。
【０１３１】
図１５は、オブジェクト画像４０の表示の説明図である。
【０１３２】
図１５（Ａ）および図１５（Ｂ）に示すように、基準平面（図１５（Ｂ）では、基準平面Ｓ’とする）の設定時には、撮影部１２の撮影方向Ａ２に交差する壁面（平面）が基準平面Ｓ’として設定される。このため、表示制御部１４Ｇによる処理によって、実空間画像４２における該基準平面Ｓ’に対応する領域に仮想オブジェクトを描画したオブジェクト画像４０が表示されることとなる。
【０１３３】
図１５（Ｃ）および図１５（Ｄ）に示すように、図１５（Ａ）および図１５（Ｂ）に示す状態から、画像処理装置１０を矢印Ｒ１方向に回転させたとする。すなわち、画像処理装置１０を回転させ、撮影部１２の撮影方向Ａ２を、Ｙ軸を回転軸として右回り（図１５（Ｃ）および図１５（Ｄ）中、矢印Ｒ１方向）に角度θ回転させたとする。この場合、実空間における基準平面Ｓ’の位置は動かないことから、基準平面Ｓ’の第１相対方向は、撮影方向Ａ２からＹ軸を回転軸として左回りに角度−θ回転させた方向となる。
【０１３４】
図１５（Ｅ）および図１５（Ｆ）に示すように、画像処理装置１０を基準として考察すると、画像処理装置１０を中心にして仮想オブジェクトを角度−θ回転させたことに等しい。
【０１３５】
そして、表示制御部１４Ｇは、現在の実空間の実空間画像における、第１位置の基準平面に対応する領域に、第２姿勢情報の姿勢の仮想オブジェクトを描画する。
【０１３６】
上述したように、第１位置は、例えば、現在の撮影部１２の撮影方向Ａ２を、基準平面の設定時の撮影方向Ａ２から現在の撮影方向Ａ２への回転角度（Ａｔ−Ａ０）分、逆の回転方向に回転させた位置である。このため、図１５（Ｅ）および図１５（Ｆ）に示すように、表示制御部１４Ｇは、画像処理装置１０（撮影部１２）の回転方向とは逆方向に同じ回転角度回転させた位置である第１位置に、オブジェクト画像４０が配置されるように、オブジェクト画像４０を回転させる。そして、表示制御部１４Ｇは、重畳画像をオブジェクト画像４０へ表示する。
【０１３７】
このため、オブジェクト画像４０は、実空間上の設定された基準平面（壁面など）に固定された状態で、表示される。
【０１３８】
図１６は、画像処理装置１０で実行する表示処理の手順を示すシーケンス図である。
【０１３９】
受付部１４Ｃは、ユーザから基準平面の設定指示を受け付けると、設定処理部１４Ｄへ出力する（ＳＥＱ１００）。
【０１４０】
設定処理部１４Ｄの設定部１４Ｈは、設定指示を受け付けたときに第１取得部１４Ａで取得した第１姿勢情報を読取る（ＳＥＱ１０２）。そして、設定部１４Ｈは、ＳＥＱ１０２で読取った第１姿勢情報を用いて、基準平面を設定する（ＳＥＱ１０４）。
【０１４１】
なお、導出部１４Ｎは、検出部２５で新たな第１姿勢情報が検出される度に、撮影部１２の撮影方向Ａ２に対する、設定された基準平面の第１相対方向を導出し、算出部１４Ｅおよび表示制御部１４Ｇへ出力する。また、第１算出部１４Ｋは、第１相対方向が導出される度に、第２姿勢情報を算出し、算出部１４Ｅおよび表示制御部１４Ｇへ出力する。
【０１４２】
また、設定処理部１４Ｄの判定部１４Ｉが、基準平面を設定したときから撮影方向Ａ２が予め定めた第１相対角度以上回転したか否かを判定する。
【０１４３】
そして、第１相対角度未満回転したと判定されたときは、設定された基準平面を表示制御部１４Ｇへ通知する（ＳＥＱ１０６）。一方、第１相対角度以上回転したと判定されたときは、再設定部１４Ｊが、基準平面を再設定し、再設定した基準平面を、表示制御部１４Ｇへ通知する（ＳＥＱ１０６）。
【０１４４】
表示制御部１４Ｇは、後述する表示処理によって、撮影部１２で撮影された実空間画像４２における、基準平面に対応する領域に、第２姿勢情報の姿勢の仮想オブジェクトを描画したオブジェクト画像４０を重畳した重畳画像４４を、表示部２０に表示する制御を行う（ＳＥＱ１０７）。
【０１４５】
具体的には、画像処理装置１０では、以下のＳＥＱ１０８〜ＳＥＱ１２０の処理を繰り返し実行する。
【０１４６】
まず、表示制御部１４Ｇが算出部１４Ｅに、第２姿勢情報と、第１位置と、相対距離と、の算出指示を出力する（ＳＥＱ１０８）。
【０１４７】
算出部１４Ｅは、第２姿勢情報、第１位置、および相対距離を算出する（ＳＥＱ１１０）。そして、算出部１４Ｅは、算出した第２姿勢情報、第１位置、および相対距離を、表示制御部１４Ｇへ出力する（ＳＥＱ１１２）。
【０１４８】
表示制御部１４Ｇは、光源情報を光源設定部１４Ｆから取得する（ＳＥＱ１１４）。次に、表示制御部１４Ｇは、実空間画像４２を第２取得部１４Ｂから取得する（ＳＥＱ１１６）。
【０１４９】
そして、表示制御部１４Ｇは、実空間画像４２における、第１位置の基準平面に対応する領域に、第２姿勢情報の姿勢の仮想オブジェクトを描画したオブジェクト画像４０を重畳した重畳画像４４を生成し（ＳＥＱ１１８）、表示部２０に表示する制御を行う（ＳＥＱ１２０）。そして、本シーケンスを終了する。
【０１５０】
以上説明したように、本実施の形態の画像処理装置１０は、撮影部１２と、検出部２５と、第１取得部１４Ａと、受付部１４Ｃと、設定部１４Ｈと、導出部１４Ｎと、第１算出部１４Ｋと、表示制御部１４Ｇと、を備える。撮影部１２は、実空間を撮影する。検出部２５は、撮影部１２の第１姿勢情報を検出する。第１取得部１４Ａは、検出部２５から第１姿勢情報を取得する。受付部１４Ｃは、ユーザから設定指示を受け付ける。設定部１４Ｈは、設定指示を受け付けたときに、実空間における、仮想オブジェクトを配置する基準平面を、第１姿勢情報に応じて設定する。導出部１４Ｎは、撮影部１２の撮影方向に対する、基準平面の第１相対方向を導出する。第１算出部１４Ｋは、第１相対方向に位置する基準平面の、第２姿勢情報を算出する。表示制御部１４Ｇは、撮影部１２によって撮影された実空間画像における、基準平面に対応する領域に、第２姿勢情報の姿勢の仮想オブジェクトを描画したオブジェクト画像を重畳した重畳画像を、表示部２０に表示する制御を行う。
【０１５１】
このように、本実施の形態の画像処理装置１０では、実空間における基準平面を設定し、実空間画像における、基準平面に対応する領域に、仮想オブジェクトを描画して表示部２０に表示する。このため、本実施の形態の画像処理装置１０では、ＡＲマーカなどを実空間に設置する必要なく、ＡＲ技術を実現することができる。
【０１５２】
従って、本実施の形態の画像処理装置１０では、実空間の環境に依存せず、容易に拡張現実による画像を提供することができる。
【０１５３】
次に、上述した画像処理装置１０のハードウェア構成について説明する。
【０１５４】
図１７は、画像処理装置１０のハードウェア構成図である。画像処理装置１０は、ハードウェア構成として、装置全体を制御するＣＰＵ２９０１と、各種データや各種プログラムを記憶するＲＯＭ２９０２と、各種データや各種プログラムを記憶するＲＡＭ２９０３と、ＵＩ装置２９０４と、撮影装置２９０５と、検出器２９０６と、を主に備えており、通常のコンピュータを利用したハードウェア構成となっている。なお、ＵＩ装置２９０４は、図１のＵＩ部１９に相当し、撮影装置２９０５は、撮影部１２に相当し、検出器２９０６は、検出部２５に相当する。
【０１５５】
上記実施の形態の画像処理装置１０で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されてコンピュータプログラムプロダクトとして提供される。
【０１５６】
また、上記実施の形態の画像処理装置１０で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上記実施の形態の画像処理装置１０で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【０１５７】
また、上記実施の形態の画像処理装置１０で実行されるプログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０１５８】
上記実施の形態の画像処理装置１０で実行されるプログラムは、上述した各部を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記記録媒体からプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上記各部が主記憶装置上に生成されるようになっている。
【０１５９】
なお、本発明は上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせてもよい。また、種々の変形が可能である。
【符号の説明】
【０１６０】
１０  画像処理装置
１２  撮影部
１４Ａ  第１取得部
１４Ｂ  第２取得部
１４Ｃ  受付部
１４Ｆ  光源設定部
１４Ｇ  表示制御部
１４Ｈ  設定部
１４Ｊ  再設定部
１４Ｋ  第１算出部
１４Ｌ  第２算出部
１４Ｍ  第３算出部
１４Ｎ  導出部
【先行技術文献】
【特許文献】
【０１６１】
【特許文献１】特開２０１３−１８６６９１号公報
【図１】
0006476657.tif 000002
【図２】
0006476657.tif 000003
【図３】
0006476657.tif 000004
【図４】
0006476657.tif 000005
【図５】
0006476657.tif 000006
【図６】
0006476657.tif 000007
【図７】
0006476657.tif 000008
【図８】
0006476657.tif 000009
【図９】
0006476657.tif 000010
【図１０】
0006476657.tif 000011
【図１１】
0006476657.tif 000012
【図１２】
0006476657.tif 000013
【図１３】
0006476657.tif 000014
【図１４】
0006476657.tif 000015
【図１５】
0006476657.tif 000016
【図１６】
0006476657.tif 000017
【図１７】
0006476657.tif 000018