実施の形態に係る設置シミュレーションプログラム等について、図面を参照して説明する。なお、図中同一又は相当する部分には同一符号を付す。
(実施の形態)
実施の形態に係る設置シミュレーションプログラムは、ユーザがプロジェクタを設置したい場所の写真(設置場所画像)及び当該プロジェクタにより出力される映像を投影したい場所の写真(投影場所画像)を撮影することにより、プロジェクタの実物を所有していなくても、当該プロジェクタを問題なく設置できるか否か等、プロジェクタの設置の状況を確認することができるプログラムである。そして、このプログラムでは、ユーザがプロジェクタにより出力される映像を投影する被投影体としてのスクリーンの実物を所有していなくても、当該スクリーンを問題なく設置できるか否か等、スクリーンの設置の状況を確認することもできる。
また、この設置シミュレーションプログラムは、図1に示す設置シミュレーション装置100上で実行されるプログラムである。実施の形態に係る設置シミュレーション装置100は、例えばスマートフォンであり、図1に示すように、処理部110、記憶部120、センサ部130、表示部140、操作部150を備える。
処理部110は、例えばCPU(Central Processing Unit)等のプロセッサで構成される。処理部110は、記憶部120に記憶されているプログラムにより、後述する設置シミュレーション処理等を実行する。
記憶部120は、処理部110が実行するプログラムや、必要なデータを記憶する。記憶部120は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ等を含み得るが、これらに限られるものではない。なお、記憶部120は、処理部110の内部に設けられていてもよい。
また、記憶部120には、市販されている各プロジェクタのプロジェクタ名、3Dモデリングデータ、レンズ位置(投影される映像が出力される部分(投影中心点)の位置)、通常の投影方向、天吊り時の投影方向、推奨投影サイズ、推奨投影距離範囲等の情報が記憶されている。そして、記憶部120に記憶されている各プロジェクタの3Dモデリングデータは、天吊り器具が取り付けてられていない場合と取り付けられている場合の両方の3Dモデリングデータが記憶されている。このため、処理部110は、記憶部120を参照することにより、プロジェクタ名と天吊り器具の有無とから、それに対応する3Dモデリングデータ、レンズ位置(投影中心点の位置)、投影方向等の情報を取得することができる。
さらに、記憶部120には、市販されているプロジェクタ用の各スクリーンや、遮光ロールカーテン、ホワイトボード、模造紙といったスクリーンの代替品等(プロジェクタ用スクリーンだけでなくスクリーンの代替品等も含む被投影体を、以下「スクリーン」と呼ぶ)のスクリーン名、3Dモデリングデータ、設置方式(床置き式、壁掛け式等)、サイズ、伸縮方式(下から引き上げる、上から引き下げる、伸縮しない等)等のスクリーンの種類(スクリーン種)の情報が記憶されていてもよい。なお、記憶部120に記憶されているスクリーンの3Dモデリングデータは、スクリーンの伸縮量を反映させることができるようになっている。
センサ部130は、イメージセンサ131、加速度センサ132、ジャイロセンサ133を備える。ただし、センサ部130は、イメージセンサ131のみを備えてもよいし、イメージセンサ131、加速度センサ132、ジャイロセンサ133以外のセンサを備えてもよい。
イメージセンサ131は、例えばCMOS(Complementary Metal Oxide Semiconductor)イメージセンサである。処理部110は、イメージセンサ131で写真を撮影することによって、画像データを取得することができる。
加速度センサ132は、直交する3軸方向の運動を検出する3軸加速度センサである。例えば、ユーザが設置シミュレーション装置100を動かすと、どの方向にどの程度の加速度で動かされたかを、処理部110は加速度センサ132から取得することができる。
ジャイロセンサ133は、回転を検出する角速度センサである。例えば、ユーザが設置シミュレーション装置100の向きを変えると、どの方向にどの程度向きが変わったのかを、処理部110はジャイロセンサ133から取得することができる。
表示部140は、液晶ディスプレイ、有機EL(Electro-Luminescence)ディスプレイ等の表示デバイスを備える。表示部140は、イメージセンサ131で取得した画像、設置シミュレーションの結果を示す画像、設置シミュレーションのための操作画面等を表示する。
操作部150は、タッチパネルや押しボタンスイッチ等のユーザインタフェースであり、ユーザからの操作入力を受け付ける。タッチパネルは表示部140と一体化しており、表示部140に表示したボタン等のUI(User Interface)をユーザがタッチすると、操作部150はそのタッチを検出し、検出結果を処理部110に伝える。処理部110は、操作部150の検出結果に基づいて、ユーザがどのような操作入力を行ったのかを取得することができる。
ここではプロジェクタの設置シミュレーションの一例として、ユーザが図2に示すような部屋200にプロジェクタを設置する場合を考える。この例では部屋200には、図2に示すように、正面に窓203があり、向かって左側に扉付き棚201と引き出し付き棚202が、向かって右側にベッド204が、それぞれ設置されており、右の壁206と天井との境目に梁205がある。そして、ユーザは、扉付き棚201又は引き出し付き棚202にプロジェクタを設置して、壁206にプロジェクタが出力する映像を投影したいと考えていると想定する。
この場合、後述する設置シミュレーション処理において、ユーザはプロジェクタを設置したい場所の写真(設置場所画像)と、プロジェクタにより出力される映像を投影したい場所の写真(投影場所画像)とを、それぞれ撮影する。すると、設置シミュレーション装置100は、図3に示すような設置場所画像230と、図4に示すような投影場所画像240とを、それぞれ取得することになる。
また、設置シミュレーション装置100は、既存のAR(Augmented Reality)システムを利用することにより、部屋に実際に存在する物体の寸法や位置を把握する。これは、ユーザが設置シミュレーション装置100を動かしながら、プロジェクタを設置したいと考えている部屋の写真を複数枚撮影することによって、行われる。既存のARシステムとしては、例えば、ARkit(登録商標)やARCore(登録商標)等を利用可能である。なお、設置シミュレーション装置100は、ARシステムの代わりに、又は、ARシステムと共に、SLAM(Simultaneous Localizing And Mapping)技術を利用して、部屋に存在する物体の寸法や位置を把握してもよい。
そして、設置シミュレーション装置100は、図5に示すように、設置場所画像230と投影場所画像240とを表示部140に並べて表示する。その際、プロジェクタ210を示す画像が設置場所画像230にオーバーレイ表示され、投影エリア220を示す画像が投影場所画像240にオーバーレイ表示される。本実施形態では、設置場所画像230に投影エリアを示す画像は表示されず、投影場所画像240にプロジェクタを示す画像は表示されない。また、投影サイズ等の投影情報250、プロジェクタ210の壁からの距離251及び高さ252、投影エリア220の壁からの距離253及び高さ254、並びにプロジェクタ210から投影エリア220までの距離255も表示部140に表示される。これにより、ユーザはプロジェクタ210の設置の状況を設置シミュレーション装置100の画面(表示部140)で見て確認することができる。本実施形態では、高さ252,254は、床からの高さである。
例えば図5では、プロジェクタ210がオーバーレイ表示された設置場所画像230により、プロジェクタ210が引き出し付き棚202の仕切りと干渉していることがわかる。したがって、ユーザは、この位置にはプロジェクタ210を設置できないことが確認できる。また、投影エリア220がオーバーレイ表示された投影場所画像240により、投影エリア220が梁205やドア207と干渉していることがわかる。したがって、ユーザは、この位置に投影するとプロジェクタ210の映像は適切には投影されないことが確認できる。
そして、例えば図6では、プロジェクタ210を扉付き棚201の仕切りがない部分に移動させることにより、投影エリア220が壁206の他に何もない部分に収まることがわかる。したがって、ユーザは、この位置に投影するならプロジェクタ210の映像が適切に投影されることが確認できる。
なお、設置場所画像230では、プロジェクタ210の奥行き方向の設置位置の把握が困難なので、奥行き方向の設置位置をより分かり易く表示するために、設置シミュレーション装置100は、図7の左に示すような奥行把握画像260を表示するようにしてもよい。奥行把握画像260を表示させるためのユーザ操作は任意であるが、例えば、図5(図6、図7)の右上のメニュー表示ボタン256をタップすると「表示切替」の項目があるメニューが表示され、このメニュー内の「表示切替」をタップすると、設置場所画像230と奥行把握画像260とが切替わるようにしてもよい。
図5~図7では、プロジェクタ210からの映像が投影場所画像240の中の所定のエリアに投影されている。図5~図7では、映像が投影されるエリアは壁206であるが、例えば、ユーザが部屋にプロジェクタ用のスクリーンを部屋に設置していたら、投影場所画像240にはそのスクリーンが存在することになるため、プロジェクタ210からの映像が投影されるエリアをそのスクリーンにすることが可能である。しかし、部屋にスクリーンが設置されていなくても、スクリーンを設置した場合の投影の状況を確認したい場合がある。設置シミュレーション装置100は、そのような場合には、設置したいスクリーンを後述するスクリーン設定画面(被投影体設定画面)にて設定し、仮想的にスクリーンを設置することができるようにしてもよい。
例えば、梁205に壁掛け式のスクリーン208を設置するようにスクリーン設定(被投影体設定)を行うと、設置シミュレーション装置100は、図8に示すように、投影場所画像240にスクリーン208を表す画像(被投影体画像。以下、被投影体画像をスクリーン画像という)をオーバーレイ表示し、投影エリア220を示す画像をスクリーン画像及び投影場所画像240にオーバーレイ表示する。なお、この例では、プロジェクタ210は、設置場所画像230に示すように、天井から吊り下げられて設置されている。
この場合も、投影サイズ等の投影情報250、プロジェクタ210の壁からの距離251及び高さ252、投影エリア220の壁からの距離253及び高さ254、並びにプロジェクタ210から投影エリア220までの距離255も表示部140に表示される。これによりユーザは、プロジェクタ210の設置の状況とスクリーン208の設置の状況とを設置シミュレーション装置100の画面(表示部140)で見て確認することができる。なお、この例では高さ252は天井からの距離で、高さ254は床からの距離を示している。
図8のように、スクリーン208を仮想的に表示している場合でも、奥行き方向の設置位置をより分かり易く表示するために、設置シミュレーション装置100は、図9の左に示すような奥行把握画像260を表示するようにしてもよい。奥行把握画像260を表示させるためのユーザ操作は任意であるが、例えば、図8(図9)の右上のメニュー表示ボタン256をタップすると「表示切替」の項目があるメニューが表示され、このメニュー内の「表示切替」をタップすると、設置場所画像230と奥行把握画像260とが切替わるようにしてもよい。
今まで説明したようなプロジェクタ210の設置をシミュレーションするための処理(設置シミュレーション処理)について、図10及び図11を参照して説明する。設置シミュレーション装置100は、電源が投入されると自動的に、又はユーザの操作(例えばユーザが設置シミュレーション処理の開始を指示する)により、設置シミュレーション処理の実行を開始する。
設置シミュレーション処理が開始されると、まず、処理部110は、初期設定を行う(ステップS101)。ステップS101では、各種変数等の初期設定だけでなく、図12の右に示すようなプロジェクタ設置設定画面270や、図13の左に示すようなプロジェクタ投影設定画面280や、図14の左に示すようなスクリーン設定画面290により、プロジェクタの設置設定及び投影設定並びにスクリーンの設定を行うことができる。
なお、これらのプロジェクタ設置設定やプロジェクタ投影設定やスクリーン設定は、初期設定時に行わなくても、後述するように、設置シミュレーションの結果を確認しながら後で設定値を変更することも可能である。図12、図13及び図14は、プロジェクタ210がオーバーレイ描画された設置場所画像230や、投影エリア220がオーバーレイ描画された投影場所画像240が表示されていることからもわかるように、設置シミュレーションの結果を確認しながら設定値を変更する場合の画面表示例を示している。
プロジェクタ設置設定画面270では、図12に示すように、例えば、設置シミュレーションを行うプロジェクタ210のプロジェクタ名271、設置時の左右(X軸)の傾きの角度272及び上下(Y軸)の傾きの角度273、プロジェクタを天吊り設置するか否か(天吊りするとプロジェクタ210は上下逆さまに設置される)を設定するトグルボタン274、プロジェクタに天吊り器具を取り付けるか否かを設定するトグルボタン275、プロジェクタの高さ276をそれぞれ設定可能である。プロジェクタ設置設定画面270は、図12に示すように、設置場所画像230とともに表示部140に表示されるため、ユーザは設置場所画像230にオーバーレイ描画されるプロジェクタ210の傾きや天吊り器具の有無等を確認しながらプロジェクタ210の設置設定を行うことができる。なお、図12では、プロジェクタ210の設置時の傾きとして左右(X軸)と上下(Y軸)の傾きの角度を設定可能になっているが、左右に傾げる回転(Z軸)の角度も設定可能になっていてもよい。
また、プロジェクタ投影設定画面280では、図13に示すように、例えば、プロジェクタで天吊り投影(投影方向を下向きにし、上下左右を逆さまに投影)するか否かを設定するトグルボタン281、ズームの倍率を設定するスライダー282、レンズシフトのX方向のシフト割合283及びY方向のシフト割合284、台形補正の横方向の角度285及び縦方向の角度286、明るさのレベルを設定するスライダー287をそれぞれ設定可能である。プロジェクタ投影設定画面280は、図13に示すように、投影場所画像240とともに表示部140に表示されるため、ユーザは投影場所画像240にオーバーレイ表示される投影エリア220の投影位置、サイズ、明るさ、台形補正の状態等を確認しながらプロジェクタ210の投影設定を行うことができる。
また、スクリーン設定画面290では、図14に示すように、例えば、仮想的に設置するスクリーン208のスクリーン名(被投影体名)291、スクリーン208の引き上げ(下げ)の高さ293、投影場所の奥の壁からの距離294、設置時の左右(X軸)の傾きの角度295をそれぞれ設定可能である。また、スクリーン名291を設定すると、スクリーン名291で示されたスクリーン208の被投影体情報292(スクリーン208の設置方式、サイズ、高さ(収納時の高さ~最大限に伸ばした高さ)、幅(装置自体の幅(有効に投影できる領域の幅))等。以下、被投影体情報292をスクリーン情報という)が図14に示すように表示される。なお、図14では、スクリーン208の設置時の傾きとして左右(X軸)のみが設定可能になっているが、上下(Y軸)や、左右に傾げる回転(Z軸)の角度も設定可能になっていてもよい。
スクリーン設定画面290は、図14に示すように、投影場所画像240とともに表示部140に表示されるため、ユーザは投影場所画像240にオーバーレイ表示されるスクリーン208の状況や、投影エリア220の投影位置、サイズ、明るさ、台形補正の状態等を確認しながらスクリーン208の投影設定を行うことができる。なお、スクリーン設定でスクリーン名291に「なし」を設定すると、図5,6,7,13に示すように、仮想的なスクリーン208は表示されなくなる。
図10に戻り、処理部110は、加速度センサ132やジャイロセンサ133で設置シミュレーション装置100の動きを把握しつつ、イメージセンサ131により部屋を撮影し続ける(ステップS102)。その際、処理部110は、表示部140に「しばらく動かし続けてください」等と表示し、ユーザに設置シミュレーション装置100を動かしてもらう。
ステップS102の処理により、処理部110は、部屋を様々な位置、方向から撮影した複数枚の画像を取得できる。そして、処理部110は、ARシステムやSLAM技術を利用することによって、取得した画像中の特徴点の3次元位置を把握することができ、部屋のサイズ、部屋にある物体のサイズ及び位置を測量可能になる。
また、ステップS102で処理部110は、表示部140に「設置場所撮影ボタン」及び「投影場所撮影ボタン」を表示し、ユーザにプロジェクタ210の設置場所や投影場所の写真の撮影を促す。そして、操作部150が「設置場所撮影ボタン」のタッチを検出したら、処理部110はその時イメージセンサ131が撮影した画像を「設置場所画像」として記憶部120に保存する。また、操作部150が「投影場所撮影ボタン」のタッチを検出したら、処理部110はその時イメージセンサ131が撮影した画像を「投影場所画像」として記憶部120に保存する。
なお、奥行把握画像260も表示可能にする場合には、ステップS102で処理部110は、表示部140に「奥行把握撮影ボタン」も表示し、プロジェクタの設置場所と投影場所が左右に存在する写真の撮影をユーザに促す。そして、操作部150が「奥行把握撮影ボタン」のタッチを検出したら、処理部110はその時イメージセンサ131が撮影した画像を「奥行把握画像」として記憶部120に保存する。
そして、処理部110は、部屋を測量可能で、かつ、設置場所画像及び投影場所画像の撮影が完了したか否かを判定する(ステップS103)。ここで「部屋を測量可能」とは、処理部110が、ARシステムやSLAM技術を用いて、ステップS102で取得した画像中の特徴点の、実空間内での3次元位置を取得できたことを意味する。画像中の特徴点とは、画像中のエッジ、コーナー等、視覚的に変化を認識できる画素に対応する点である。例えば、床や壁や家具等の模様、壁と天井の境界、家具の外縁、家具の仕切り、等は特徴点になり得る。特徴点の3次元位置は、複数枚の画像(各特徴点が異なる位置や角度で映っている画像)に基づいて、三角測量等を用いて求めることができる。そして、各特徴点の3次元位置が取得できれば、3次元位置の差分を求めることにより、任意の2つの特徴点の間の距離を求めることができるので、処理部110は、部屋を測量可能になる。
まだ測量可能になっていないか、設置場所画像の撮影が完了していないか、投影場所画像の撮影が完了していないなら(ステップS103;No)、ステップS102に戻って、部屋の撮影を継続する。なお、奥行把握画像260も表示可能にする場合には、ステップS103で処理部110は、奥行把握画像の撮影が完了したか否かについても判定し、奥行把握画像の撮影が完了していない場合はステップS102に戻る。
部屋を測量可能で、かつ、設置場所画像及び投影場所画像の撮影が完了しているなら(ステップS103;Yes)、処理部110は、ステップS102で撮影した複数の画像を用いて特徴点の3次元位置を求め、部屋及び部屋にある物体の測量を行う(ステップS104)。そして、処理部110は、測量した結果を表示部140に表示する(ステップS105)。ステップS105では、処理部110は、図15に示すように、設置場所画像230における部屋の高さ231及び横幅232並びに、投影場所画像240における部屋の高さ241及び横幅242を、表示部140に表示する。
次に、処理部110は、補正データが入力されたか否かを判定する(ステップS106)。補正データとは、ステップS104での測量によって得られた数値を補正するためのデータである。例えば、図15に示す画面上で、ユーザが部屋の高さや横幅を示す数値をダブルタップすると、その数値を変更でき、変更した数値が補正データとなる。また、補正データは、部屋の高さや横幅に限られない。ステップS104で3次元位置が得られた任意の特徴点間の距離を補正可能である。
例えば、図16は、ユーザが設置場所画像230上の矢印233をダブルタップ等で選択し、その長さを左の壁から引き出し付き棚202までの距離を示すように短くし、補正データ入力欄234に130.00(cm)を入力している例を示している。これは、ユーザが実際に壁から引き出し付き棚202までの距離を計測した値が130.00(cm)であり、この計測値をユーザが補正データ入力欄234に入力した想定である。なお、図16は、設置場所画像230上に表示されている距離について補正データを入力している例を示しているが、投影場所画像240上に表示されている距離についても同様に補正データを入力することが可能である。
このような補正データが入力されたら(ステップS106;Yes)、処理部110は、入力された補正データを用いて測量データを補正する(ステップS107)。例えば、処理部110は、入力された補正データに合致するように、特徴点の3次元位置を示す座標系の縮尺を修正する。この時、表示されている他の数値もこの補正に応じて修正される。そして、処理部110はステップS108に処理を進める。補正データが入力されなければ(ステップS106;No)、処理部110は補正を行うことなく、ステップS108に処理を進める。
そして、処理部110は、何らかのスクリーン208が設定されているか否かを判定する(ステップS108)。例えば前述のスクリーン設定画面290でスクリーン名291に「なし」が設定されていたら、スクリーン208は設定されていないと判定される。また、スクリーン名291に具体的にスクリーン名が設定されていたら、スクリーン208が設定されていると判定される。スクリーン208が設定されていないなら(ステップS108;No)、処理部110はスクリーン208を描画することなく、ステップS111に処理を進める。
スクリーン208が設定されているなら(ステップS108;Yes)、処理部110は、スクリーン208の初期位置を算出する(ステップS109)。例えば、処理部110は、投影場所画像240において、スクリーン208を奥の壁面に最も近づけた位置を初期位置として算出する。そして、処理部110は、投影場所画像240上のスクリーン208の初期位置にスクリーン208の画像を重ねて表示(オーバーレイ描画)する(ステップS110)。このスクリーン208のオーバーレイ描画の詳細は、スクリーン描画処理(被投影体描画処理)として後述する。
そして、処理部110は、プロジェクタ210の初期位置を算出する(ステップS111)。例えば、処理部110は、設置場所画像230の中央部において、プロジェクタ210を奥の壁面に最も近づけた位置を初期位置として算出する。そして、処理部110は、設置場所画像230上の初期位置にプロジェクタ210の画像を重ねて表示(オーバーレイ描画)する(ステップS112)。このプロジェクタ210のオーバーレイ描画の詳細は、プロジェクタ描画処理として後述する。
次に図11に進み、処理部110は、操作部150にてスクリーン208の設置位置(被投影体設置位置。以下、被投影体設置位置をスクリーン設置位置という)の移動の入力が検出されたか否かを判定する(ステップS113)。例えば、ユーザが投影場所画像240上でスクリーン208をドラッグすると、操作部150はスクリーン208の設置位置の移動の入力を検出する。もっとも、投影場所画像240は2次元で、スクリーン208の設置位置は3次元であるため、スクリーン208の設置位置の移動の入力の際には、ドラッグでは設置位置の3次元座標の3つの値のうち2つの値(上下方向の値及び左右方向の値)の入力しかできない。そこで、上下ドラッグを高さの入力にするか奥行の入力にするかをモード(高さ設定モード及び奥行設定モード)切換可能にしておいてもよい。
例えば左右ドラッグはいずれのモードでも設置位置の横の壁からの距離の変更に対応するが、上下ドラッグは、高さ設定モードでは設置位置の高さの変更に対応し、奥行設定モードでは設定位置の奥行方向の変更に対応させる。このモード切換のためのユーザ操作は任意であるが、例えば、表示部140の画面内の右上に表示されているメニュー表示ボタン256をタップすると「高さ設定モード」及び「奥行設定モード」の項目があるメニューが表示され、このメニュー内の「高さ設定モード」又は「奥行設定モード」をタップすると、それぞれのモードに切替わるようにしてもよい。
また、処理部110が、表示部140に、投影情報250と同様に、例えば「スクリーン設置位置 W:87.56、H:35.43、D:25.53」のような形でスクリーン208の設置位置情報も表示し、ユーザがこれをダブルタップすると、スクリーン設置位置(例えば、壁からの距離(W)、高さ(H)、奥の壁からの距離(D))を直接入力できるようにしてもよい。
スクリーン208の設置位置の移動の入力が検出されたら(ステップS113;Yes)、処理部110は、検出した入力に基づいてスクリーン208の設置位置を変更し、投影場所画像240上でスクリーン208の画像を当該設置位置に移動させてオーバーレイ描画をし直し(ステップS114)、ステップS115に処理を進める。
スクリーン208の設置位置の移動の入力が検出されなければ(ステップS113;No)、処理部110はスクリーン208の画像を移動させることなく、ステップS115に処理を進める。
そして、処理部110は、スクリーン設定の入力があるか否かを判定する(ステップS115)。例えば、ユーザがスクリーン設定画面290を呼び出すことでスクリーン設定の入力が行われる。スクリーン設定画面290を呼び出すためのユーザ操作は任意であるが、例えば表示部140の画面内の右上に表示されているメニュー表示ボタン256をタップすると「スクリーン設定」の項目があるメニューが表示され、このメニュー内の「スクリーン設定」をタップすると、スクリーン設定画面290が呼び出されるようにしてもよい。
スクリーン設定の入力があるなら(ステップS115;Yes)、処理部110は、当該入力に応じて、スクリーン208の設定を行い、スクリーン208の画像のオーバーレイ描画をし直す(ステップS116)。そして、処理部110は、処理をステップS117に進める。スクリーン設定の入力がなければ(ステップS115;No)、処理部110は、処理をステップS117に進める。
そして、処理部110は、スクリーン208の干渉判定を行う(ステップS117)。ステップS117の詳細は、スクリーン干渉判定処理(被投影体干渉判定処理)として後述する。なお、この干渉処理は、ステップS110、ステップS114及びステップS116でスクリーン208の画像をオーバーレイ描画するたびに行ってもよい。
次に、処理部110は、操作部150にてプロジェクタ210の設置位置(プロジェクタ設置位置)の移動の入力が検出されたか否かを判定する(ステップS118)。例えば、ユーザが設置場所画像230上でプロジェクタ210をドラッグすると、操作部150はプロジェクタ210の設置位置の移動の入力を検出する。もっとも、設置場所画像230は2次元で、プロジェクタ設置位置は3次元であるため、上述のスクリーン設置位置の移動の入力と同様に、モード(高さ設定モード及び奥行設定モード)切換可能にしておいてもよい。
また、処理部110が、表示部140に、投影情報250と同様に、例えば「プロジェクタ設置位置 W:165.31、H:98.65、D:281.09」のような形でプロジェクタ210の設置位置情報も表示し、ユーザがこれをダブルタップすると、プロジェクタ設置位置(例えば、壁からの距離(W)、高さ(H)、投影面からの距離(D))を直接入力できるようにしてもよい。
プロジェクタ210の設置位置の移動の入力が検出されたら(ステップS118;Yes)、処理部110は、検出した入力に基づいてプロジェクタ210の設置位置を変更し、設置場所画像230上でプロジェクタ210の画像を当該設置位置に移動させてオーバーレイ描画をし直し(ステップS119)、ステップS120に処理を進める。
プロジェクタ210の設置位置の移動の入力が検出されなければ(ステップS118;No)、処理部110はプロジェクタ210の画像を移動させることなく、ステップS120に処理を進める。
次に、処理部110は、プロジェクタ設置設定の入力があるか否かを判定する(ステップS120)。例えば、ユーザがプロジェクタ設置設定画面270を呼び出すことでプロジェクタ設置設定の入力が行われる。プロジェクタ設置設定画面270を呼び出すためのユーザ操作は任意であるが、例えば表示部140の画面内の右上に表示されているメニュー表示ボタン256をタップすると「プロジェクタ設置設定」の項目があるメニューが表示され、このメニュー内の「プロジェクタ設置設定」をタップすると、プロジェクタ設置設定画面270が呼び出されるようにしてもよい。
プロジェクタ設置設定の入力があるなら(ステップS120;Yes)、処理部110は、当該入力に応じて、プロジェクタ210の設置設定を行い、プロジェクタ210の画像のオーバーレイ描画をし直す(ステップS121)。そして、処理部110は、処理をステップS122に進める。プロジェクタ設置設定の入力がなければ(ステップS120;No)、処理部110は、処理をステップS122に進める。
そして、処理部110は、プロジェクタの干渉判定を行う(ステップS122)。ステップS122の詳細は、プロジェクタ干渉判定処理として後述する。なお、この干渉処理は、ステップS112、ステップS119及びステップS121でプロジェクタ210の画像をオーバーレイ描画するたびに行ってもよい。
次に、処理部110は、プロジェクタ投影設定の入力があるか否かを判定する(ステップS123)。例えば、ユーザがプロジェクタ投影設定画面280を呼び出すことでプロジェクタ投影設定の入力が行われる。プロジェクタ投影設定画面280を呼び出すためのユーザ操作は任意であるが、例えば表示部140の画面内の右上に表示されているメニュー表示ボタン256をタップすると「プロジェクタ投影設定」の項目があるメニューが表示され、このメニュー内の「プロジェクタ投影設定」をタップすると、プロジェクタ投影設定画面280が呼び出されるようにしてもよい。
プロジェクタ投影設定の入力があるなら(ステップS123;Yes)、処理部110は、当該入力に応じて、プロジェクタ210の投影設定を行う(ステップS124)。そして、処理部110は、処理をステップS125に進める。プロジェクタ投影設定の入力がなければ(ステップS123;No)、処理部110は、処理をステップS125に進める。
そして、処理部110は、プロジェクタ210の3次元位置、被投影体(壁206、スクリーン208等)の3次元位置、プロジェクタ設置設定の設定値(プロジェクタ210の傾きを示す設置姿勢を含む)、プロジェクタ投影設定の設定値(投影設定値)及び何らかのスクリーン208が設定されているならスクリーン設定の設定値に基づいて、投影エリア220が表示される位置(投影位置)、投影サイズ及び形状を算出し、投影エリア220を示す画像(投影領域画像)を算出された投影サイズ及び形状で投影場所画像240上の投影位置に重ねて表示(オーバーレイ描画)する(ステップS125)。このとき、処理部110は、表示部140に投影サイズ等の投影情報250も表示する。ステップS125の処理の詳細は、投影エリア描画処理として後述する。
そして、処理部110は、投影エリア220の干渉判定を行う(ステップS126)。ステップS126の詳細は、投影エリア干渉判定処理として後述する。
そして、処理部110は、処理を終了するか否かを判定する(ステップS127)。例えば、処理部110は、操作部150を介してユーザによる処理の終了の指示を検出したら、処理を終了すると判定する。処理を終了しないなら(ステップS127;No)、処理部110は、処理をステップS113に戻す。処理を終了するなら(ステップS127;Yes)、処理部110は、設置シミュレーション処理を終了する。
次に、上述の設置シミュレーション処理(図10,11)のステップS112、ステップS119及びステップS121の処理において、プロジェクタ210をオーバーレイ描画する際に呼び出されるプロジェクタ描画処理について、図17を参照して説明する。
まず、処理部110は、プロジェクタ設置設定で設定されたプロジェクタ名を取得する(ステップS201)。そして、処理部110は、プロジェクタ設置設定で、天吊り器具を取り付けると設定されているか否かを判定する(ステップS202)。天吊り器具を取り付けると設定されているなら(ステップS202;Yes)、処理部110は、ステップS201で取得したプロジェクタ名のプロジェクタに天吊り器具を取り付けた状態におけるプロジェクタ3Dモデリングデータを記憶部120から取得する(ステップS203)。
天吊り器具を取り付けると設定されていなければ(ステップS202;No)、処理部110は、ステップS201で取得したプロジェクタ名のプロジェクタ(天吊り器具が取り付けられていない状態)の3Dモデリングデータを記憶部120から取得する(ステップS204)。
そして、処理部110は、プロジェクタ設置設定で、天吊り設置をすると設定されているか否かを判定する(ステップS205)。天吊り設置をすると設定されているなら(ステップS205;Yes)、処理部110は、ステップS203又はステップS204で取得したプロジェクタ3Dモデリングデータを上下反転させ(ステップS206)、処理をステップS207に進める。天吊り設置をすると設定されていないなら(ステップS205;No)、処理部110は、処理をステップS207に進める。
次に、処理部110は、プロジェクタ設置設定の傾きの設定値に従って、プロジェクタ3Dモデリングデータを回転させる(ステップS207)。そして、処理部110は、設置場所画像230の縮尺を算出する(ステップS208)。ここで算出される縮尺は、3次元空間での実際の長さと、表示部140に出力される画像上での大きさと、の比率である。プロジェクタ210が設置される場所の付近の複数の画像(プロジェクタ付近画像)に基づき、処理部110はARシステムやSLAM技術を利用することで、設置場所画像中の特徴点の3次元位置(プロジェクタ付近3次元位置)を算出して、この縮尺を算出することができる。
次に、処理部110は、ステップS208で算出した縮尺に基づいて、プロジェクタ3Dモデリングデータを縮小する(ステップS209)。そして、処理部110は、表示部140の設置場所画像上のプロジェクタ210の設置位置にプロジェクタ3Dモデリングデータをオーバーレイ描画する(ステップS210)。そして、処理部110は、プロジェクタ210の設置位置(例えば、壁からの距離251、床からの高さ252といった基準点(壁、床等)からプロジェクタ210の設置位置までの距離)を表示部140に表示する(ステップS211)。そして、プロジェクタ描画処理を終了して、設置シミュレーション処理(図10,11)に戻る。
なお、ステップS210では、処理部110は、設置場所画像においてプロジェクタ210の設置位置にプロジェクタ3Dモデリングデータをオーバーレイ描画するが、このオーバーレイ描画は単純な上書き描画でもよいし、αブレンド等による透過処理を行った描画でもよい。また、奥行把握画像260を表示する場合には、ステップS210及びステップS211で処理部110は、表示部140の奥行把握画像上にプロジェクタ3Dモデリングデータとプロジェクタ210の設置位置とをオーバーレイ描画する。また、図6等では、プロジェクタ210の設置位置を示す距離251や高さ252は設置場所画像230(や奥行把握画像260)に重ねて表示されているが、処理部110は、設置場所画像230(や奥行把握画像260)と重ならない表示位置にプロジェクタ210の設置位置を表示してもよい。
次に、上述の設置シミュレーション処理(図10,11)のステップS110、ステップS114及びステップS116の処理において、スクリーン208をオーバーレイ描画する際に呼び出されるスクリーン描画処理について、図18を参照して説明する。
まず、処理部110は、スクリーン設定で設定されたスクリーン名を取得する(ステップS221)。そして、処理部110は、スクリーン208の3Dモデリングデータを記憶部120から取得し、スクリーン設定での引き上げ(下げ)高の高さ293の設定値に従って、スクリーン3Dモデリングデータを確定させる(ステップS222)。
次に、処理部110は、スクリーン設定での傾きの角度295の設定値に従ってスクリーン3Dモデリングデータを回転させる(ステップS223)。
そして、処理部110は、投影場所画像240の縮尺を算出する(ステップS224)。ここで算出される縮尺は、3次元空間での実際の長さと、表示部140に出力される画像上での大きさと、の比率である。映像が投影される被投影体(壁206やスクリーン208)の付近の複数の画像(被投影体付近画像)に基づき、処理部110はARシステムやSLAM技術を利用することで、被投影体付近画像中の特徴点の3次元位置(被投影体付近3次元位置)を算出して、この縮尺を算出することができる。
次に、処理部110は、ステップS224で算出した縮尺に基づいて、スクリーン3Dモデリングデータを縮小する(ステップS225)。そして、処理部110は、表示部140の投影場所画像上のスクリーン設置位置にスクリーン3Dモデリングデータをオーバーレイ描画する(ステップS226)。そして、処理部110は、スクリーン描画処理を終了して、設置シミュレーション処理(図10,11)に戻る。
以上説明したように、スクリーン描画処理では、処理部110は、スクリーン情報(スクリーン種、スクリーン設定値、スクリーン設置位置等)からスクリーン208を表す画像(スクリーン画像)を生成して、表示部140に表示する。なお、処理部110は、スクリーン描画処理において、設置シミュレーション処理に戻る前に、スクリーン208の設置位置(例えば、壁からの距離、床からの高さといった基準点(壁、床等)からスクリーン208の設置位置までの距離)を表示部140に表示してもよい。
また、ステップS226では、処理部110は、投影場所画像においてスクリーン208の設置位置にスクリーン3Dモデリングデータをオーバーレイ描画するが、このオーバーレイ描画は単純な上書き描画でもよいし、αブレンド等による透過処理を行った描画でもよい。また、奥行把握画像260を表示する場合には、ステップS226で処理部110は、表示部140の奥行把握画像260上にスクリーン3Dモデリングデータをオーバーレイ描画する。
次に、上述の設置シミュレーション処理(図11)のステップS125の処理において呼び出される投影エリア描画処理について、図19を参照して説明する。
まず、処理部110は、プロジェクタ投影設定で、天吊り投影すると設定されているか否かを判定する(ステップS251)。天吊り投影すると設定されているなら(ステップS251;Yes)、処理部110は、プロジェクタ210の投影方向を天吊り投影時の方向(通常下向き)にし(ステップS252)、処理をステップS254に進める。天吊り投影すると設定されていないなら(ステップS251;No)、処理部110は、プロジェクタ210の投影方向を通常投影時の方向(通常上向き)にし(ステップS253)、処理をステップS254に進める。
そして、処理部110は、プロジェクタ設置設定で、天吊り設置をすると設定されているか否かを判定する(ステップS254)。天吊り設置をすると設定されているなら(ステップS254;Yes)、処理部110は、プロジェクタ210を上下反転して設置したときのレンズの位置を投影中心点に設定し(ステップS255)、処理をステップS257に進める。天吊り設置をすると設定されていないなら(ステップS254;No)、処理部110は、プロジェクタ210を通常の置き方で設置したときのレンズの位置を投影中心点に設定し(ステップS256)、処理をステップS257に進める。
ステップS257では、処理部110は、何らかのスクリーン208が設定されているか否かを判定する。スクリーン208が設定されていないなら(ステップS257;No)、処理部110は、投影場所画像240の縮尺と、投影面の位置を算出する(ステップS258)。ここで算出される縮尺は、3次元空間での実際の長さと、表示部140に出力される画像上での大きさと、の比率であり、処理部110はARシステムを利用することでこの縮尺を算出することができる。また、投影面の位置とは、投影場所画像240の正面に映っている平面(例えば壁206)の位置であり、処理部110は、ARシステムを利用することによって投影面の位置を算出できる。投影面の位置が算出されることにより、処理部110は、プロジェクタ210の投影中心点(設置位置)から投影エリア220(投影位置)までの距離を算出することができる。
スクリーン208が設定されているなら(ステップS257;Yes)、処理部110は、投影場所画像240の縮尺と、スクリーン208の投影面の位置を算出する(ステップS259)。投影場所画像240の縮尺は、上述の通りARシステムを利用することで算出される。また、スクリーン208の投影面の位置とは、スクリーン208において、プロジェクタ210からの映像が投影される面の位置である。処理部110は、スクリーン設定での設定値、スクリーン3Dモデリングデータ及びスクリーン設置位置に基づいて、スクリーン208の投影面の位置を算出できる。投影面の位置が算出されることにより、処理部110は、プロジェクタ210の投影中心点(設置位置)から投影エリア220(投影位置)までの距離を算出することができる。
そして、処理部110は、プロジェクタ210の設置位置から投影位置までの距離、ステップS252又はステップS253で設定された投影方向、ステップS255又はステップS256で設定された投影中心点、及び、プロジェクタ投影設定で設定された(ズーム、レンズシフト、台形補正等の)設定値に基づいて、投影エリア220の投影位置、投影サイズ、映像の明るさ(映像光度)等を算出する(ステップS260)。
次に、処理部110は、ステップS260で算出された投影サイズ等の投影情報250、投影エリア220の投影位置(例えば、壁からの距離253、床からの高さ254といった、基準点(壁、床等)から投影エリア220の投影位置までの距離)、プロジェクタ210から投影エリア220までの距離255を表示部140に表示する(ステップS261)。そして、処理部110は、投影エリア220を示す画像(投影領域画像)を、算出された投影サイズで表示部140の投影場所画像240上にオーバーレイ描画する(ステップS262)。なお、スクリーン208が設置されている場合にはスクリーン描画処理により投影場所画像240上にスクリーン画像が既にオーバーレイ描画されているため、ステップS262では、処理部110は、スクリーン画像又は投影場所画像240に投影領域画像をオーバーレイ描画することになる。
その際、処理部110は、算出された映像光度に基づいて、投影領域画像の明るさ、透明度及びグラデーションのうちの少なくとも1つの属性値を変化させる。例えば、処理部110は、映像光度が大きい(明るい)ほど、投影領域画像の明るさを明るくしたり、透明度を高くしたり、グラデーションの色の変化度合いを大きくしたりする。そして、処理部110は、投影エリア描画処理を終了して、設置シミュレーション処理(図10,11)に戻る。
なお、ステップS262では、処理部110は、投影場所画像において投影エリア220の投影位置に投影領域画像をオーバーレイ描画するが、このオーバーレイ描画は単純な上書き描画でもよいし、αブレンド等による透過処理を行った描画でもよい。また、奥行把握画像260を表示する場合には、ステップS261及びステップS262で処理部110は、表示部140の奥行把握画像上に投影エリア220の投影位置(例えば、壁からの距離253、床からの高さ254といった、基準点(壁、床等)から投影エリア220の投影位置までの距離)と投影領域画像とをオーバーレイ描画する。
次に、上述の設置シミュレーション処理(図11)のステップS122の処理において呼び出されるプロジェクタ干渉判定処理について、図20を参照して説明する。
まず、処理部110は、プロジェクタ210の設置位置及びプロジェクタ3Dモデリングデータに基づいて、プロジェクタ210が占有する空間であるプロジェクタ占有空間を算出する(ステップS301)。次に、処理部110は、設置場所画像230に含まれる特徴点の3次元位置を取得する(ステップS302)。
そして、処理部110は、ステップS301で算出したプロジェクタ占有空間の内部にステップS302で取得した特徴点(設置の障害となる特徴点、例えばプロジェクタ占有空間の内部に入り込んでいる物体上の特徴点)が存在するか否かを判定する(ステップS303)。プロジェクタ占有空間の内部に特徴点が存在しないなら(ステップS303;No)、プロジェクタ210に干渉する物体が存在しないということなので、警告を表示することなくプロジェクタ干渉判定処理を終了して、設置シミュレーション処理(図11)のステップS123に戻る。
プロジェクタ占有空間の内部に特徴点が存在するなら(ステップS303;Yes)、プロジェクタ210に干渉する物体が存在することになるので、処理部110は、表示部140上で、プロジェクタ210の画像を点滅させたり、色を変えたり、また、「プロジェクタが他の物体と干渉します」等のメッセージを表示したりする等の警告(現在の設置位置にプロジェクタ210を設置可能でないことを示す警告)を表示する(ステップS304)。そして、プロジェクタ干渉判定処理を終了して、設置シミュレーション処理(図11)のステップS123に戻る。
次に、上述の設置シミュレーション処理(図11)のステップS117の処理において呼び出されるスクリーン干渉判定処理について、図21を参照して説明する。
まず、処理部110は、スクリーン208の設置位置及びスクリーン3Dモデリングデータに基づいて、スクリーン208が占有する空間であるスクリーン占有空間(被投影体占有空間)を算出する(ステップS321)。次に、処理部110は、投影場所画像240に含まれる特徴点の3次元位置を取得する(ステップS322)。
そして、処理部110は、ステップS321で算出したスクリーン占有空間の内部にステップS322で取得した特徴点(設置の障害となる特徴点、例えばスクリーン占有空間の内部に入り込んでいる物体上の特徴点)が存在するか否かを判定する(ステップS323)。スクリーン占有空間の内部に特徴点が存在しないなら(ステップS323;No)、スクリーン208に干渉する物体が存在しないということなので、警告を表示することなくスクリーン干渉判定処理を終了して、設置シミュレーション処理(図11)のステップS118に戻る。
スクリーン占有空間の内部に特徴点が存在するなら(ステップS323;Yes)、スクリーン208に干渉する物体が存在することになるので、処理部110は、表示部140上で、スクリーン208の画像を点滅させたり、色を変えたり、また、「スクリーンが他の物体と干渉します」等のメッセージを表示したりする等の警告(現在のスクリーン設置位置にスクリーン208を設置可能でないことを示す警告)を表示する(ステップS324)。そして、スクリーン干渉判定処理を終了して、設置シミュレーション処理(図11)のステップS118に戻る。
次に、上述の設置シミュレーション処理(図11)のステップS126の処理において呼び出される投影エリア干渉判定処理について、図22を参照して説明する。
まず、処理部110は、プロジェクタ210の設置位置、投影面の位置、投影方向、投影中心点、プロジェクタ投影設定の設定値に基づいて、投影エリアの位置と、投影占有領域(投影エリアを底面、投影中心点を頂点とする四角錐の領域)と、を算出する(ステップS351)。このうち投影エリアの位置は、上述の投影エリア描画処理(図19)のステップS260で算出されているため、処理部110は、ステップS260で算出した投影エリアの位置の情報をステップS351で利用できる。次に、処理部110は、投影場所画像240に含まれる特徴点の3次元位置を取得する(ステップS352)。
そして、処理部110は、ステップS351で算出した投影占有領域の内部にステップS352で取得した特徴点(投影の障害となる特徴点、例えば投影占有領域の内部に入り込んで投影光を遮る物体上の特徴点)が存在するか否かを判定する(ステップS353)。投影占有空間の内部に特徴点が存在しないなら(ステップS353;No)、ステップS355に進む。
投影占有空間の内部に特徴点が存在するなら(ステップS353;Yes)、プロジェクタ210から投影される映像が当該特徴点に対応する物体に干渉し、適切な投影が行われないことになるので、処理部110は、表示部140上で、投影エリア220を示す画像を点滅させたり、色を変えたり、また、「投影される映像が他の物体と干渉します」等のメッセージを表示したりする等の警告(現在の投影位置では適切な投影が行われないことを示す警告)を表示し(ステップS354)、ステップS355に進む。
そして、ステップS355では、処理部110は、何らかのスクリーン208が設定されているか否かを判定する。スクリーン208が設定されていないなら(ステップS355;No)、処理部110は、投影場所画像240の画素のうち、ステップS351で算出した投影エリア内の画素の画素値を確認し(ステップS356)、投影エリア内の色差が閾値より大きいか否かを判定する(ステップS357)。例えば、処理部110は、投影エリア内の画素値をHSV(Hue:色相,Saturation:彩度,Value:明度)色空間での値に変換し、S(彩度)の値が第1閾値以上ある画素(例えばS(彩度)が0.1以上になる画素)の個数が第2閾値(例えば投影エリア内の画素数の3%)以上あるなら、投影エリア内の色差が閾値より大きいと判定する。
投影エリア内の色差が閾値以下なら(ステップS357;No)、投影エリアは白っぽいほぼ均一な色になっていることがわかるので、色差に関する警告を表示することなく、投影エリア干渉判定処理を終了して、設置シミュレーション処理(図11)のステップS127に戻る。投影エリア内の色差が閾値を超えるなら(ステップS357;Yes)、投影エリア内に色が異なる部分が存在することがわかるので、処理部110は、表示部140上で、投影エリア220を示す画像を点滅させたり、色を変えたり、また、「投影エリアが均一の色になっていません」等のメッセージを表示したりする等の警告(現在の投影位置では適切な投影が行われないことを示す警告)を表示する(ステップS358)。そして、投影エリア干渉判定処理を終了して、設置シミュレーション処理(図11)のステップS127に戻る。
一方、何らかのスクリーン208が設定されているなら(ステップS355;Yes)、処理部110は、設定されているスクリーン208の投影面の位置及び面積を取得する(ステップS359)。そして、処理部110は、ステップS351で算出した投影エリアがステップS359で取得したスクリーン208の投影面から外れているか否かを判定する(ステップS360)。投影エリアが投影面に完全に含まれているなら(ステップS360;No)、処理部110は警告を表示することなく、投影エリア干渉判定処理を終了して、設置シミュレーション処理(図11)のステップS127に戻る。
投影エリアが一部でも投影面から外れているなら(ステップS360;Yes)、投影エリアがスクリーン208の投影面に適切に投影されないことがわかるので、処理部110は、表示部140上で、投影エリア220を示す画像を点滅させたり、色を変えたり、また、「投影エリアがスクリーンからはみ出してしまいます」等のメッセージを表示したりする等の警告(現在の投影位置及びスクリーン位置では適切な投影が行われないことを示す警告)を表示する(ステップS361)。そして、投影エリア干渉判定処理を終了して、設置シミュレーション処理(図11)のステップS127に戻る。
なお、設置場所画像230にプロジェクタ210の画像がオーバーレイ描画された画面を見れば、ユーザはその画面からプロジェクタ210が他の物体(例えば棚の仕切り)と干渉するか否かを把握することができるので、一実施形態では、設置シミュレーション処理(図11)において、ステップS122のプロジェクタ干渉判定処理は行わなくてもよい。
また、投影場所画像240に投影エリア220を示す画像がオーバーレイ描画された画面を見れば、ユーザはその画面から投影が適切に行えるか否かを把握することができるので、一実施形態では、設置シミュレーション処理(図11)において、ステップS126の投影エリア干渉判定処理は行わなくてもよい。また、投影場所画像240にスクリーン208の画像がオーバーレイ描画された画面を見れば、ユーザはその画面からスクリーン208が他の物体(例えば梁やベッド等)と干渉するか否かを把握することができるので、一実施形態では、設置シミュレーション処理(図11)において、ステップS117のスクリーン干渉判定処理は行わなくてもよい。
また、上述の設置シミュレーション処理では、スクリーン208を設定しない場合は、投影面は投影場所画像240の正面に映っている平面であり、例えば投影場所の壁206を想定しているが、投影面は壁206に限定されない。例えば、壁206の前にスクリーンを設置した場合には、そのスクリーンが投影面となる。壁206の前にスクリーンを設置すると、投影場所画像240の正面に映る平面は壁206ではなく、設置されたスクリーンになるので、この場合も設置シミュレーション処理において、特に問題は生じない。
上述の設置シミュレーション処理により、設置シミュレーション装置100は、プロジェクタ210が設置される設置場所の画像(設置場所画像230)及びプロジェクタ210が設置される位置(設置位置)を取得して、設置場所画像230の設置位置に、プロジェクタ210の画像を表示するので、ユーザは、プロジェクタ210が他の物体と干渉しないか等、プロジェクタ210を設置する場所の状況を確認することができる。
また、設置シミュレーション装置100は、プロジェクタ210で映像が投影される投影場所の画像(投影場所画像240)及び投影される位置(投影位置)を取得して、プロジェクタ210の設置位置から投影位置までの距離に基づいて算出される投影サイズで、投影場所画像240の投影位置に、投影エリア220を示す画像(投影領域画像)を表示するので、ユーザはプロジェクタ210による投影の状況を確認することができる。
また、設置シミュレーション装置100は、ユーザがプロジェクタ用のスクリーンを所持していない場合でも、投影場所画像240にスクリーン208を表す画像(スクリーン画像)を表示することができるので、仮想的にスクリーン208を設置することができる。このため、ユーザは、プロジェクタ210からの映像を仮想的に設置したスクリーン208に投影して、プロジェクタ210及びスクリーン208による投影の状況を確認することができる。
また、設置シミュレーション装置100は、設置場所画像230と投影場所画像240とを同時に表示部140に表示するので、ユーザはプロジェクタ210やスクリーン208の設置の状況に応じて投影の状況がどのように変化するのか等を容易に確認することができる。
また、設置シミュレーション装置100は、プロジェクタ210の設置位置から投影位置までの距離に基づいて、プロジェクタ210で投影される映像の明るさ(映像光度)を算出して、投影エリア220を示す画像(投影領域画像)の明るさ、透明度及びグラデーションの少なくとも1つの属性値を算出された映像光度に基づいて設定し、設定した属性値に基づく投影領域画像を投影場所画像240に重ねて表示するので、ユーザはプロジェクタ210による投影時の映像の明るさを容易に確認することができる。
また、設置シミュレーション装置100は、プロジェクタ210を設置する際のプロジェクタ210の傾き(設置姿勢)を取得し、この設置姿勢に基づいて、投影位置と投影領域画像の形状を算出し、投影場所画像240の上の、算出された投影位置に、算出された形状で投影領域画像を重ねて表示するので、ユーザはプロジェクタ210を傾けたときの投影エリア220の位置や形状を容易に確認することができる。
また、設置シミュレーション装置100は、プロジェクタ210による投影の状態を設定するための投影設定値を取得し、この投影設定値に基づいて、投影位置と投影領域画像の形状を算出し、投影場所画像240の上の、算出された投影位置に、算出された形状で投影領域画像を重ねて表示するので、ユーザはプロジェクタ210の投影設定値を変更したときの投影エリア220の位置や形状を容易に確認することができる。
また、設置シミュレーション装置100は、スクリーン208を設置する際の設定値(スクリーン設定値)を取得し、このスクリーン設定値に基づいて、投影位置と投影領域画像の形状を算出し、スクリーン画像の上の、算出された投影位置に、算出された形状で投影領域画像を重ねて表示するので、ユーザはスクリーン208の設定値を変更したときの投影エリア220の位置や形状を容易に確認することができる。
また、設置シミュレーション装置100は、プロジェクタ210が設置される設置場所の付近の複数の画像や被投影体(壁206やスクリーン208)の付近の複数の画像(被投影体付近画像。以下、被投影体付近画像をスクリーン付近画像という)に基づき、設置場所画像中の特徴点の3次元位置(プロジェクタ付近3次元位置)やスクリーン付近画像中の特徴点の3次元位置(被投影体付近3次元位置)を算出し、これらの3次元位置を用いて壁や床等の基準点からプロジェクタ210やスクリーン208の設置位置までの距離を算出し、算出した距離を表示するので、ユーザはプロジェクタ210の設置位置を数値で具体的に確認することができる。
また、設置シミュレーション装置100は、算出した距離(算出距離)に対応する補正データを取得し、取得した補正データに基づいて、算出距離を補正するので、プロジェクタ210やスクリーン208の設置位置を示す距離等をより正確に表示することができる。
また、設置シミュレーション装置100は、プロジェクタ210やスクリーン208の設置位置や特徴点の3次元位置に基づいて、他の物体に干渉したりせずにプロジェクタ210やスクリーン208を設置可能か否か判定し、設置可能でないなら、その設置位置にプロジェクタ210やスクリーン208を設置可能でないことを警告表示するので、ユーザはプロジェクタ210やスクリーン208が設置可能かどうかを容易に確認することができる。
(変形例1)
上述の設置シミュレーション処理(図10,11)では、ステップS111で処理部110は、例えば、設置場所画像230の中央部において、プロジェクタ210を壁面に最も近づけた位置をプロジェクタ210の初期位置として算出している。この場合、例えば図5に示すように、プロジェクタ210は当初、引き出し付き棚202の仕切りに干渉する位置に配置されてしまう。そこで、プロジェクタ210の初期位置として、他の物体に干渉しない位置を探索する変形例1について説明する。
この変形例1では、設置シミュレーション処理(図10,11)のステップS111において、後述するプロジェクタ初期位置算出処理を呼び出す。この点以外は、上述の実施形態と同じであるため、説明を省略する。では、この変形例1のプロジェクタ初期位置算出処理について、図23を参照して説明する。
まず、処理部110は、何らかのスクリーン208が設定されているか否かを判定する(ステップS401)。スクリーン208が設定されていないなら(ステップS401;No)、処理部110は、投影場所画像240の投影面(壁206等、プロジェクタ210により映像が投影される面)を算出する(ステップS402)。また、スクリーン208が設定されているなら(ステップS401;Yes)、処理部110は、スクリーン208のモデリングデータと、スクリーン設定で設定された引き上げ(下げ)高、壁からの距離、傾き等の設定値(スクリーン設定値)と、に基づいて、スクリーン208の投影面を算出する(ステップS403)。
そして、処理部110は、プロジェクタ設置設定で設定されたプロジェクタ名のプロジェクタの推奨投影サイズを記憶部120から取得し、この推奨投影サイズに基づいて、ステップS402又はステップS403で算出された投影面からの最適距離を算出する(ステップS404)。そして、投影面から最適距離だけ離れた部屋の中央部(すなわち、W=部屋の横幅の1/2、H=部屋の高さの1/2、D=投影面から最適距離離れた位置)をプロジェクタ210の仮位置とし、処理部110は、この仮位置にプロジェクタ210を設置したと仮定して、プロジェクタ210の干渉判定を行う(ステップS405)。このプロジェクタ210の干渉判定は、プロジェクタ干渉判定処理(図20)と同様の処理で行うことができるが、ステップS304(警告の表示)は行わなくてよい。
そして、処理部110は、干渉判定(ステップS405でのプロジェクタ干渉判定だけでなく、ステップS412での投影エリア干渉判定も含む)において干渉があったか否かを判定する(ステップS406)。干渉がないなら(ステップS406;No)、処理部110は、干渉無しとの判定結果を得た干渉判定を行った仮位置を、プロジェクタ210の初期位置として設定する(ステップS407)。そして、プロジェクタ初期位置算出処理を終了して設置シミュレーション処理(図10,11)のステップS112に戻る。
干渉があるなら(ステップS406;Yes)、処理部110は、ARシステムによって得られている部屋内の特徴点に基づいて、プロジェクタ210が他の物体に干渉しない位置(プロジェクタ210の仮位置)を探索する(ステップS408)。そして、処理部110は、この探索により、投影エリア220の干渉判定をまだ行っていない仮位置を発見したか否かを判定する(ステップS409)。
投影エリア220の干渉判定をまだ行っていない仮位置がもう発見できなければ(ステップS409;No)、物体の干渉も投影エリアの干渉も生じない設置位置が存在しないということなので、投影面から最適距離だけ離れた部屋の中央部(W=部屋の横幅の1/2、H=部屋の高さの1/2、D=投影面から最適距離離れた位置)、すなわち当初の仮位置をプロジェクタ210の初期位置として設定する(ステップS410)。そして、プロジェクタ初期位置算出処理を終了して設置シミュレーション処理(図10,11)のステップS112に戻る。
投影エリア220の干渉判定をまだ行っていない仮位置が発見されたら(ステップS409;Yes)、処理部110は、その発見された仮位置から投影面までの距離が、記憶部120に記憶されているプロジェクタ210の推奨投影距離範囲内であるか否かを判定する(ステップS411)。推奨投影距離範囲内でなければ(ステップS411;No)、ステップS408に戻って、プロジェクタ210の他の物体に干渉しない仮位置の探索を繰り返す。
推奨投影距離範囲内なら(ステップS411;Yes)、処理部110は、その仮位置にプロジェクタ210を設置したと仮定して、投影エリア220の干渉判定を行う(ステップS412)。この投影エリア220の干渉判定は、投影エリア干渉判定処理(図22)と同様の処理で行うことができるが、ステップS354、ステップS358及びステップS361の処理(警告の表示)は行わなくてよい。そして、処理部110は、ステップS406に戻って、投影エリア220の干渉判定において、干渉があったか否かを判定する。
以上のプロジェクタ初期位置算出処理により、変形例1では、プロジェクタ210を干渉のない場所に設置できる場合には、最初からプロジェクタ210がそのような場所に設置された状態で設置シミュレーションが行われるので、ユーザがプロジェクタ210を干渉のない位置に移動させる手間を削減することができる。
また、設置シミュレーション装置100は、プロジェクタ210の設置位置から投影面までの最適距離を取得し、投影面と最適距離とに基づいて算出される位置をプロジェクタ210の初期位置とするので、投影面から最適な距離にプロジェクタ210が設置されたときの状況をユーザは容易に確認することができる。
(変形例2)
上述の実施の形態及び変形例1では、プロジェクタ210が他の物体と干渉しないかを判定し、干渉する場合には警告を表示していた。しかし、プロジェクタ210を台の上等に設置する場合には、プロジェクタ210が他の物体と干渉しないだけでなく、プロジェクタ210を載置できる平面がプロジェクタ210の直下に存在している必要がある。このため、プロジェクタの干渉判定の処理において、さらにプロジェクタ210を載置できる平面がプロジェクタ210の直下に存在するか否かを判定する設置可能判定を行ってもよい。プロジェクタ210の設置可能判定を行う変形例2について説明する。
変形例2では、プロジェクタ干渉判定処理(図20)において、(例えばステップS303での判定がNoとなった場合及びステップS304の次の処理として)処理部110は、プロジェクタ占有空間の直下にプロジェクタ210を載置可能な平面が存在するか否かを判定し、そのような平面が存在しない場合は、「その場所にはプロジェクタ210を置けません」等、現在表示されている位置にはプロジェクタ210を設置できないことを示す警告を表示する。
また、変形例2では、プロジェクタ初期位置算出処理(図23)のステップS405及びステップS408でのプロジェクタ210の干渉判定において、処理部110は、変形例2のプロジェクタ判定処理と同様に、プロジェクタ占有空間の直下にプロジェクタ210を載置可能な平面が存在するか否かを判定し、そのような平面が存在しない場合には「干渉あり」とみなすようにする。そして、ステップS408では、処理部110は、プロジェクタ210が他の物体に干渉せず、プロジェクタ210を載置可能な平面が存在する仮位置を探索するようにする。
変形例2では、以上のように載置可能判定を行うことにより、プロジェクタ210を干渉がなく載置可能な位置に設置できる場合には、最初からプロジェクタ210がそのような場所に設置された状態で設置シミュレーションが行われるので、ユーザがプロジェクタ210を載置可能で干渉のない位置に移動させる手間を削減することができる。
(変形例3)
上述の設置シミュレーション処理(図10,11)では、ステップS109で処理部110は、例えば、投影場所画像240において、スクリーン208を壁面に最も近づけた位置をスクリーン208の初期位置として算出している。スクリーン208が壁掛け式のスクリーンの場合はこのような位置に設置することが可能な場合もあると考えられるが、床置き式の場合には、床にスクリーン208を置けるだけの空間が存在している必要があるため、このような位置に設置できない場合もありうる。そこで、スクリーン208の初期位置として、スクリーン208を確実に設置できる位置を探索する変形例3について説明する。
この変形例3では、設置シミュレーション処理(図10,11)のステップS109において、後述するスクリーン初期位置算出処理(被投影体初期位置算出処理)を呼び出す。この点以外は、上述の実施形態と同じであるため、説明を省略する。では、この変形例3のスクリーン初期位置算出処理について、図24を参照して説明する。
まず、処理部110は、スクリーン設定で設定されているスクリーン208の設置方式が壁掛け式か否かを判定する(ステップS451)。壁掛け式でない(床置き式)なら(ステップS451;No)、処理部110は、スクリーン208のモデリングデータに基づいて、スクリーン208の床面における設置面積並びにスクリーン208の可変部の高さ及び幅を考慮した、スクリーン208の占有空間を算出する(ステップS452)。
壁掛け式なら(ステップS451;Yes)、処理部110は、スクリーン208のモデリングデータに基づいて、スクリーン208を設置する壁や天井部における設置面積並びにスクリーン208の可変部の高さ及び幅を考慮した、スクリーン208の占有空間を算出する(ステップS453)。
そして、処理部110は、投影場所画像240において、奥の壁面にスクリーン208を最も近づけた位置をスクリーン208の仮位置とし、処理部110は、この仮位置にスクリーン208を設置したと仮定して、スクリーン208の干渉判定を行う(ステップS454)。このスクリーン208の干渉判定は、スクリーン干渉判定処理(図21)と同様の処理で行うことができるが、ステップS324(警告の表示)は行わなくてよい。
そして、処理部110は、干渉判定(ステップS454でのスクリーン干渉判定だけでなく、ステップS461での投影エリア干渉判定も含む)において干渉があったか否かを判定する(ステップS455)。干渉がないなら(ステップS455;No)、処理部110は、干渉無しとの判定結果を得た干渉判定を行った仮位置を、スクリーン208の初期位置として設定する(ステップS456)。そして、スクリーン初期位置算出処理を終了して設置シミュレーション処理(図10,11)のステップS110に戻る。
干渉があるなら(ステップS455;Yes)、処理部110は、ARシステムによって得られている部屋内の特徴点に基づいて、スクリーン208が他の物体に干渉しない位置(スクリーン208の仮位置)を探索する(ステップS457)。そして、処理部110は、この探索により、投影エリア220の干渉判定をまだ行っていない仮位置を発見したか否かを判定する(ステップS458)。
投影エリア220の干渉判定をまだ行っていない仮位置がもう発見できなければ(ステップS458;No)、物体の干渉も投影エリアの干渉も生じない設置位置が存在しないということなので、投影場所画像240において、奥の壁面にスクリーン208を最も近づけた位置、すなわち当初の仮位置をスクリーン208の初期位置として設定する(ステップS459)。そして、スクリーン初期位置算出処理を終了して設置シミュレーション処理(図10,11)のステップS110に戻る。
投影エリア220の干渉判定をまだ行っていない仮位置が発見されたら(ステップS458;Yes)、処理部110は、スクリーン208をその発見された仮位置に設置可能か否かを判定する(ステップS460)。ここで、スクリーン208を設置可能とは、スクリーン208が床置き式ならスクリーン208の仮位置の直下に載置できる平面(床等)が存在することを意味し、スクリーン208が壁掛け式ならスクリーン208を吊り下げられる壁や天井が仮位置の上方に存在することを意味する。
設置可能でなければ(ステップS460;No)、処理部110は、ステップS457に戻って、スクリーン208の他の物体に干渉しない仮位置の探索を繰り返す。設置可能なら(ステップS460;Yes)、処理部110は、その仮位置にスクリーン208を設置したと仮定して、投影エリア220の干渉判定を行う(ステップS461)。この投影エリア220の干渉判定は、投影エリア干渉判定処理(図22)と同様の処理で行うことができるが、ステップS354、ステップS358及びステップS361の処理(警告の表示)は行わなくてよい。そして、処理部110は、ステップS455に戻って、投影エリア220の干渉判定において、干渉があったか否かを判定する。
以上のスクリーン初期位置算出処理により、変形例3では、スクリーン208を干渉のない場所に設置できる場合には、最初からスクリーン208がそのような場所に設置された状態で設置シミュレーションが行われるので、ユーザがスクリーン208を干渉のない位置に移動させる手間を削減することができる。
(変形例4)
上述の設置シミュレーション装置100では、例えば図5に示すように、処理部110は、表示部140の左側に設置場所画像230を、右側に投影場所画像240を表示している。また、図7に示すように、奥行把握画像260を表示する場合には設置場所画像230と入れ替えて表示する形態になっている。しかし、表示形態はこのような形態に限定されない。例えば、図25に示すように、設置場所画像230、投影場所画像240、奥行把握画像260、メニュー表示画像299を同時に表示する形態であってもよい。このような表示形態の変形例4について説明する。
この変形例4では、ユーザがメニュー表示画像299の中から「プロジェクタ設置設定」をタッチすると、メニュー表示画像299がプロジェクタ設置設定画面270に置き換わり、ユーザはプロジェクタの設置設定を行えるようになる。また、「投影エリア画像設定」がタッチされると、投影エリア220を示す画像の種類や属性値(色、濃度、グラデーション等)を設定するメニューが表示されることを想定している。
変形例4では、設置場所画像230、投影場所画像240、奥行把握画像260、メニュー表示画像299が同時に表示されるので、ユーザは画面を切換える手間を削減でき、また、メニュー表示画像299が他の画像を隠してしまうことを防ぐことができる。
(変形例5)
上述の実施の形態及び変形例では、表示部140に設置場所画像230及び投影場所画像240等の複数の画像を表示していたが、表示部140に必ずしも複数の画像を表示しなければいけないわけではない。表示部140に一度には一つの画像(例えば設置場所画像230のみ)を表示し、ユーザ操作で画像を切換えるような形態であってもよい。このような表示形態の変形例5について説明する。
変形例5において画像を切換えるユーザ操作は任意だが、現在表示されている画像の上でユーザがスワイプ操作をすると次の画像に切替わるようにしてもよい。例えば、設置場所画像230をスワイプすると設置場所画像230の代わりに投影場所画像240が表示され、投影場所画像240をスワイプすると投影場所画像240の代わりに奥行把握画像260が表示され、奥行把握画像260をスワイプすると奥行把握画像260の代わりに設置場所画像230が表示されるようにしてもよい。
また、例えばユーザが表示部140に表示されているメニュー表示ボタン256をタップすると選択可能な画像名(例えば「設置場所画像」、「投影場所画像」、「奥行把握画像」)の項目があるメニューが表示され、このメニュー内の画像名をタップすると、その画像名の画像が表示部140に表示されるようにしてもよい。
変形例5では、処理部110は表示部140に1つの画像を表示するので、当該画像を大きく表示することができる。したがって、設置場所画像230を表示させれば、ユーザはプロジェクタ210の設置の状況を細部まで確認しやすくなる。また、投影場所画像240を表示させれば、ユーザはプロジェクタ210によってどのように投影が行われるかを細部まで確認しやすくなる。
なお、設置シミュレーション装置100は、カメラを備えたタブレットやノートPC(Personal Computer)等のコンピュータによっても実現することができる。具体的には、上記実施の形態では、設置シミュレーション装置100が実行する設置シミュレーション処理等のプログラムが、記憶部120に予め記憶されているものとして説明した。しかし、プログラムを、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)、MO(Magneto-Optical disc)、メモリカード、USBメモリ等の非一時的なコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータに読み込んでインストールすることにより、上述の各処理を実行することができるコンピュータを構成してもよい。
さらに、プログラムを搬送波に重畳し、インターネットなどの通信媒体を介して適用することもできる。例えば、通信ネットワーク上の掲示板(BBS:Bulletin Board System)にプログラムを掲示して配信してもよい。そして、このプログラムを起動し、OS(Operating System)の制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の各処理を実行できるように構成してもよい。
また、処理部110は、シングルプロセッサ、マルチプロセッサ、マルチコアプロセッサ等の任意のプロセッサ単体で構成されるものの他、これら任意のプロセッサと、ASIC(Application Specific Integrated Circuit)やFPGA(Field‐Programmable Gate Array)等の処理回路とが組み合わせられて構成されてもよい。
以上、本発明の好ましい実施の形態について説明したが、本発明は係る特定の実施の形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲とが含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
(付記1)
コンピュータに、
プロジェクタが設置される設置場所の画像である設置場所画像、前記設置場所における前記プロジェクタが設置される位置であるプロジェクタ設置位置、及び前記プロジェクタにより映像が投影される場所若しくは前記映像が投影される被投影体が設置される場所の画像である投影場所画像、を取得させ、
前記取得された設置場所画像の前記取得されたプロジェクタ設置位置に前記プロジェクタの画像を表示する処理、及び前記取得された投影場所画像に前記映像が投影される領域を示す画像である投影領域画像を表示する処理、の両方又は一方の処理を実行させる、
設置シミュレーションプログラム。
(付記2)
前記コンピュータに、
前記被投影体又は前記投影場所における前記映像が投影される位置である投影位置を取得し、
前記投影領域画像を、前記プロジェクタ設置位置から前記投影位置までの距離に基づいて算出される投影サイズで、前記取得された投影位置に表示する、
処理を実行させる、付記1に記載の設置シミュレーションプログラム。
(付記3)
前記コンピュータに、
前記映像の明るさを示す映像光度を前記プロジェクタ設置位置から前記投影位置までの距離に基づいて算出し、
前記投影領域画像の明るさ、透明度及びグラデーションのうちの少なくとも1つの属性値を前記算出された映像光度に基づいて設定し、
前記設定された属性値に基づく投影領域画像を表示する、
処理を実行させる、付記2に記載の設置シミュレーションプログラム。
(付記4)
前記コンピュータに、
前記プロジェクタを設置する際の前記プロジェクタの傾きである設置姿勢を取得し、
前記取得された設置姿勢に基づいて前記投影位置及び前記投影領域画像の形状を算出し、
前記算出された投影位置に前記算出された形状で前記投影領域画像を表示する、
処理を実行させる、付記2又は3に記載の設置シミュレーションプログラム。
(付記5)
前記コンピュータに、
前記プロジェクタによる投影の状態を設定するための投影設定値を取得し、
前記取得された投影設定値に基づいて前記投影位置及び前記投影領域画像の形状を算出し、
前記算出された投影位置に前記算出された形状で前記投影領域画像を表示する、
処理を実行させる、付記2から4のいずれか1つに記載の設置シミュレーションプログラム。
(付記6)
前記コンピュータに、
前記被投影体の種類及び前記被投影体の設置位置を含む被投影体情報を取得し、
前記被投影体情報から前記被投影体を表す画像である被投影体画像を生成し、
前記被投影体情報に基づいて、前記被投影体画像を前記投影場所画像に表示し、
前記被投影体画像に、前記投影領域画像を表示する、
処理を実行させる、付記1から5のいずれか1つに記載の設置シミュレーションプログラム。
(付記7)
前記コンピュータに、
前記被投影体の種類及び前記被投影体の設置位置を含む被投影体情報を取得し、
前記被投影体情報から前記被投影体を表す画像である被投影体画像を生成し、
前記被投影体情報に基づいて、前記被投影体画像を前記投影場所画像に表示し、
前記取得された被投影体情報に基づいて前記投影位置及び前記投影領域画像の形状を算出し、
前記被投影体画像の前記算出された投影位置に前記算出された形状で前記投影領域画像を表示する、
処理を実行させる、付記2から5のいずれか1つに記載の設置シミュレーションプログラム。
(付記8)
前記コンピュータに、
前記プロジェクタの設置場所の付近の画像を複数取得し、
取得された複数の前記画像に基づき前記設置場所画像中の特徴点の3次元位置であるプロジェクタ付近3次元位置を算出し、
算出された前記プロジェクタ付近3次元位置を用いて基準点から前記プロジェクタ設置位置までの距離を算出し、
算出された前記距離を表示する、
処理を実行させる、付記1から7のいずれか1つに記載の設置シミュレーションプログラム。
(付記9)
前記コンピュータに、
前記取得されたプロジェクタ設置位置及び算出された前記プロジェクタ付近3次元位置に基づいて、前記プロジェクタ設置位置に前記プロジェクタを設置可能か否か判定し、
前記プロジェクタ設置位置に前記プロジェクタを設置可能でないと判定されたら、前記プロジェクタ設置位置に前記プロジェクタを設置可能でないことを表示する、
処理を実行させる、付記8に記載の設置シミュレーションプログラム。
(付記10)
前記コンピュータに、
前記被投影体の設置位置付近の画像である被投影体付近画像を複数取得し、
取得された複数の前記被投影体付近画像に基づき前記被投影体付近画像中の特徴点の3次元位置である被投影体付近3次元位置を算出し、
算出された前記被投影体付近3次元位置を用いて基準点から前記被投影体の設置位置までの距離を算出し、
算出された前記距離を表示する、
処理を実行させる、付記1から9のいずれか1つに記載の設置シミュレーションプログラム。
(付記11)
前記コンピュータに、
前記取得された被投影体設置位置及び算出された前記被投影体付近3次元位置に基づいて、前記被投影体設置位置に前記被投影体を設置可能か否か判定し、
前記被投影体設置位置に前記被投影体を設置可能でないと判定されたら、前記被投影体設置位置に前記被投影体を設置可能でないことを表示する、
処理を実行させる、付記10に記載の設置シミュレーションプログラム。
(付記12)
前記コンピュータに、
前記算出された距離に対応する補正データを取得し、
前記取得された補正データに基づいて前記算出された距離を補正する、
処理を実行させる、付記8から11のいずれか1つに記載の設置シミュレーションプログラム。
(付記13)
前記コンピュータに、
前記プロジェクタにより前記映像が投影される面である投影面から前記プロジェクタが設置される位置までの距離の最適値である最適距離を取得し、
前記投影面と前記最適距離とに基づいて算出される位置を前記プロジェクタ設置位置として取得する、
処理を実行させる、付記1から12のいずれか1つに記載の設置シミュレーションプログラム。
(付記14)
プロジェクタが設置される設置場所の画像である設置場所画像、前記設置場所における前記プロジェクタが設置される位置であるプロジェクタ設置位置、及び前記プロジェクタにより映像が投影される場所若しくは前記映像が投影される被投影体が設置される場所の画像である投影場所画像、を取得し、
前記取得した設置場所画像の前記取得したプロジェクタ設置位置に前記プロジェクタの画像を表示する処理、及び前記取得した投影場所画像に前記映像が投影される領域を示す画像である投影領域画像を表示する処理、の両方又は一方の処理を行う、
設置シミュレーション方法。
(付記15)
処理部と、
表示部と、
を備え、
前記処理部は、
プロジェクタが設置される設置場所の画像である設置場所画像、前記設置場所における前記プロジェクタが設置される位置であるプロジェクタ設置位置、及び前記プロジェクタにより映像が投影される場所若しくは前記映像が投影される被投影体が設置される場所の画像である投影場所画像、を取得し、
前記取得した設置場所画像の前記取得したプロジェクタ設置位置に前記プロジェクタの画像を描画した画像、及び前記取得した投影場所画像に前記映像が投影される領域を示す画像である投影領域画像を描画した画像、の両方又は一方の画像を、前記表示部に表示する、
設置シミュレーション装置。