以下、図面を参照して本発明の好適な実施形態を説明する。図1(a)は、デジタルカメラ100(撮像装置)の前面斜視図(外観図)である。図1(b)は、デジタルカメラ100の背面斜視図(外観図)である。デジタルカメラ100は、全方位カメラ(全天球カメラ)である。
バリア102aは、デジタルカメラ100の前方を撮影範囲とした前方カメラ部のための保護窓である。前方カメラ部は、例えば、デジタルカメラ100の前側の上下左右180度以上の広範囲を撮影範囲とする広角カメラ部である。バリア102bは、デジタルカメラ100の後方を撮影範囲とした後方カメラ部のための保護窓である。後方カメラ部は、例えば、デジタルカメラ100の後ろ側の上下左右180度以上の広範囲を撮影範囲とする広角カメラ部である。
表示部28は各種情報を表示する。シャッターボタン61は撮影指示を行うための操作部(操作部材)である。モード切替スイッチ60は各種モードを切り替えるための操作部である。接続I/F25は、接続ケーブルをデジタルカメラ100に接続するためのコネクタであり、接続ケーブルを用いて、スマートフォン、パーソナルコンピュータ、テレビなどの外部機器がデジタルカメラ100に接続される。操作部70は、ユーザーからの各種操作を受け付ける各種スイッチ、ボタン、ダイヤル、タッチセンサー等である。電源スイッチ72は、電源のオン/オフを切り替えるための押しボタンである。
発光部21は、発光ダイオード(LED)などの発光部材であり、デジタルカメラ100の各種状態を発光パターンや発光色によってユーザーに通知する。固定部40は、例えば三脚ネジ穴であり、三脚などの固定器具でデジタルカメラ100を固定して設置するために使用される。
図1(c)は、デジタルカメラ100の構成例を示すブロック図である。
バリア102aは、前方カメラ部の撮像系(撮影レンズ103a、シャッター101a、撮像部22a等)を覆うことにより、当該撮像系の汚れや破損を防止する。撮影レンズ103aは、ズームレンズやフォーカスレンズを含むレンズ群であり、広角レンズである。シャッター101aは、撮像部22aへの被写体光の入射量を調整する絞り機能を有するシャッターである。撮像部22aは、光学像を電気信号に変換するCCDやCMOS素子などで構成される撮像素子(撮像センサー)である。A/D変換器23aは、撮像部22aから出力されるアナログ信号をデジタル信号に変換する。なお、バリア102aを設けずに、撮影レンズ103aの外側の面が露出し、撮影レンズ103aによって他の撮像系(シャッター101aや撮像部22a)の汚れや破損を防止してもよい。
バリア102bは、後方カメラ部の撮像系(撮影レンズ103b、シャッター101b、撮像部22b等)を覆うことにより、当該撮像系の汚れや破損を防止する。撮影レンズ103bは、ズームレンズやフォーカスレンズを含むレンズ群であり、広角レンズである。シャッター101bは、撮像部22bへの被写体光の入射量を調整する絞り機能を有するシャッターである。撮像部22bは、光学像を電気信号に変換するCCDやCMOS素子などで構成される撮像素子である。A/D変換器23bは、撮像部22bから出力されるアナログ信号をデジタル信号に変換する。なお、バリア102bを設けずに、撮影レンズ103bの外側の面が露出し、撮影レンズ103bによって他の撮像系(シャッター101bや撮像部22b)の汚れや破損を防止してもよい。
撮像部22aと撮像部22bにより、VR(Virtual Reality)画像が撮像される。VR画像とは、VR表示(表示モード「VRビュー」で表示)をすることのできる画像であるものとする。VR画像には、全方位カメラ(全天球カメラ)で撮像した全方位画像(全天球画像)や、表示部に一度に表示できる表示範囲より広い映像範囲(有効映像範囲)を持つパノラマ画像などが含まれるものとする。VR画像には、静止画だけでなく、動画やライブビュー画像(カメラからほぼリアルタイムで取得した画像)も含まれる。VR画像は、最大で上下方向(垂直角度、天頂からの角度、仰角、俯角、高度角、ピッチ角)360度、左右方向(水平角度、方位角度、ヨー角)360度の視野分の映像範囲(有効映像範囲)を持つ。
また、VR画像は、上下360度未満、左右360度未満であっても、通常のカメラで撮影可能な画角よりも広い広範な画角(視野範囲)、あるいは、表示部に一度に表示できる表示範囲より広い映像範囲(有効映像範囲)を持つ画像も含むものとする。例えば、左右方向(水平角度、方位角度)360度、天頂(zenith)を中心とした垂直角度210度の視野分(画角分)の被写体を撮影可能な全天球カメラで撮影された画像はVR画像の一種である。また、例えば、左右方向(水平角度、方位角度)180度、水平方向を中心とした垂直角度180度の視野分(画角分)の被写体を撮影可能なカメラで撮影された画像はVR画像の一種である。即ち、上下方向と左右方向にそれぞれ160度(±80度)以上の視野分の映像範囲を有しており、人間が一度に視認できる範囲よりも広い映像範囲を有している画像はVR画像の一種である。
このVR画像をVR表示(表示モード「VRビュー」で表示)すると、左右回転方向に表示装置(VR画像を表示する表示装置)の姿勢を変化させることで、左右方向(水平回転方向)には継ぎ目のない全方位の映像を視聴することができる。上下方向(垂直回転方向)には、真上(天頂)から±105度の範囲では継ぎ目のない全方位の映像を視聴することができるが、真上から105度を超える範囲は映像が存在しないブランク領域となる。VR画像は、「映像範囲が仮想空間(VR空間)の少なくとも一部である画像」とも言える。
VR表示(VRビュー)とは、VR画像のうち、表示装置の姿勢に応じた視野範囲の映像を表示する、表示範囲を変更可能な表示方法(表示モード)である。表示装置であるヘッドマウントディスプレイ(HMD)を装着して視聴する場合には、ユーザーの顔の向きに応じた視野範囲の映像を表示することになる。例えば、VR画像のうち、ある時点で左右方向に0度(特定の方位、例えば北)、上下方向に90度(天頂から90度、すなわち水平)を中心とした視野角(画角)の映像を表示しているものとする。この状態から、表示装置の姿勢を表裏反転させると(例えば、表示面を南向きから北向きに変更すると)、同じVR画像のうち、左右方向に180度(逆の方位、例えば南)、上下方向に90度(水平)を中心とした視野角の映像に、表示範囲が変更される。ユーザーがHMDを視聴している場合で言えば、ユーザーが顔を北から南に向ければ(すなわち後ろを向けば)、HMDに表示される映像も北の映像から南の映像に変わるということである。このようなVR表示によって、ユーザーに、視覚的にあたかもVR画像内(VR空間内)のその場にいるような感覚(没入感)を提供することができる。VRゴーグル(ヘッドマウントアダプター)に装着されたスマートフォンは、HMDの一種と言える。
なお、VR画像の表示方法は上記に限るものではない。姿勢変化ではなく、タッチパネルや方向ボタンなどに対するユーザー操作に応じて、表示範囲を移動(スクロール)させてもよい。VR表示時(表示モード「VRビュー」時)において、姿勢変化による表示範囲の変更に加え、タッチパネルへのタッチムーブ、マウスなどへのドラッグ操作、方向ボタンの押下などに応じて表示範囲を変更できるようにしてもよい。
画像処理部24は、A/D変換器23aやA/D変換器23bからのデータ、又は、メモリ制御部15からのデータに対し所定の画素補間、縮小といったリサイズ処理や色変換処理を行う。また、画像処理部24は、撮像した画像データを用いて所定の演算処理を行う。システム制御部50は、画像処理部24により得られた演算結果に基づいて露光制御や測距制御を行う。これにより、TTL(スルー・ザ・レンズ)方式のAF(オートフォーカス)処理、AE(自動露出)処理、EF(フラッシュプリ発光)処理などが行われる。画像処理部24は更に、撮像した画像データを用いて所定の演算処理を行い、得られた演算結果に基づいてTTL方式のAWB(オートホワイトバランス)処理を行う。また、画像処理部24は、A/D変換器23aとA/D変換器23bから得られた2つの画像(2つの魚眼画像;2つの広角画像)に基本的な画像処理を施し、基本的な画像処理が施された2つの画像を合成する繋ぎ画像処理を行って、単一のVR画像を生成する。また、画像処理部24は、ライブビューでのVR表示時、あるいは再生時に、VR画像をVR表示するための画像切出し処理、拡大処理、歪み補正などを行い、メモリ32のVRAMへ処理結果を描画するレンダリングを行う。
繋ぎ画像処理では、画像処理部24は、2つの画像の一方を基準画像、他方を比較画像として用いて、パターンマッチング処理によりエリア毎に基準画像と比較画像のずれ量を算出し、エリア毎のずれ量に基づいて、2つの画像を繋ぐ繋ぎ位置を検出する。画像処理部24は、検出した繋ぎ位置と各光学系のレンズ特性とを考慮して、幾何学変換により各画像の歪みを補正し、各画像を全天球形式(全天球イメージ形式)の画像に変換する。そして、画像処理部24は、全天球形式の2つの画像を合成(ブレンド)することで、1つの全天球画像(VR画像)を生成する。生成された全天球画像は、例えば正距円筒図法を用いた画像であり、全天球画像の各画素の位置は球体(VR空間)の表面の座標と対応づけることができる。
A/D変換器23a,23bからの出力データは、画像処理部24及びメモリ制御部15を介して、或いは、画像処理部24を介さずにメモリ制御部15を介してメモリ32に書き込まれる。メモリ32は、撮像部22a,22bによって得られA/D変換器23a,23bによりデジタルデータに変換された画像データや、接続I/F25から外部のディスプレイに出力するための画像データを格納する。メモリ32は、所定枚数の静止画像や所定時間の動画像および音声を格納するのに十分な記憶容量を備えている。
また、メモリ32は画像表示用のメモリ(ビデオメモリ)を兼ねている。メモリ32に格納されている画像表示用のデータは、接続I/F25から外部のディスプレイに出力することが可能である。撮像部22a,22bで撮像され、画像処理部24で生成されたVR画像であって、メモリ32に蓄積されたVR画像を外部ディスプレイに逐次転送して表示することで、電子ビューファインダとしての機能を実現でき、ライブビュー表示(LV表示)を行える。以下、ライブビュー表示で表示される画像をライブビュー画像(LV画像)と称する。また、メモリ32に蓄積されたVR画像を、通信部54を介して無線接続された外部機器(スマートフォンなど)に転送し、外部機器側で表示することでもライブビュー表示(リモートLV表示)を行える。
不揮発性メモリ56は、電気的に消去・記録可能な記録媒体としてのメモリであり、例えばEEPROM等である。不揮発性メモリ56には、システム制御部50の動作用の定数、プログラム等が記録される。ここでいうプログラムとは、各種処理を実行するためのコンピュータプログラムのことである。
システム制御部50は、少なくとも1つのプロセッサーまたは回路を有する制御部であり、デジタルカメラ100全体を制御する。システム制御部50は、前述した不揮発性メモリ56に記録されたプログラムを実行することで、各処理を実現する。システムメモリ52は例えばRAMであり、システムメモリ52には、システム制御部50の動作用の定数、変数、不揮発性メモリ56から読み出したプログラム等が展開される。また、システム制御部50は、メモリ32、画像処理部24、メモリ制御部15等を制御することにより表示制御も行う。システムタイマー53は、各種制御に用いる時間や、内蔵された時計の時間を計測する計時部である。
モード切替スイッチ60、シャッターボタン61、操作部70、及び、電源スイッチ72は、システム制御部50に各種の動作指示を入力するために使用される。
モード切替スイッチ60は、システム制御部50の動作モードを静止画記録モード、動画撮影モード、再生モード、通信接続モード等のいずれかに切り替える。静止画記録モードに含まれるモードとして、オート撮影モード、オートシーン判別モード、マニュアルモード、絞り優先モード(Avモード)、シャッター速度優先モード(Tvモード)、プログラムAEモードがある。また、撮影シーン別の撮影設定となる各種シーンモード、カスタムモード等がある。モード切替スイッチ60より、ユーザーは、これらのモードのいずれかに直接切り替えることができる。あるいは、モード切替スイッチ60で撮影モードの一覧画面に一旦切り替えた後に、表示部28に表示された複数のモードのいずれかに、他の操作部材を用いて選択的に切り替えるようにしてもよい。同様に、動画撮影モードにも複数のモードが含まれていてもよい。
シャッターボタン61は、第1シャッタースイッチ62と第2シャッタースイッチ64を備える。第1シャッタースイッチ62は、シャッターボタン61の操作途中、いわゆる半押し(撮影準備指示)でONとなり第1シャッタースイッチ信号SW1を発生する。システム制御部50は、第1シャッタースイッチ信号SW1により、AF(オートフォーカス)処理、AE(自動露出)処理、AWB(オートホワイトバランス)処理、EF(フラッシュプリ発光)処理などの撮影準備動作を開始する。第2シャッタースイッチ64は、シャッターボタン61の操作完了、いわゆる全押し(撮影指示)でONとなり、第2シャッタースイッチ信号SW2を発生する。システム制御部50は、第2シャッタースイッチ信号SW2により、撮像部22a,22bからの信号読み出しから記録媒体90に画像データを書き込むまでの一連の撮影処理の動作を開始する。
なお、シャッターボタン61は全押しと半押しの2段階の操作ができる操作部材に限るものではなく、1段階の押下だけができる操作部材であってもよい。その場合は、1段階の押下によって撮影準備動作と撮影処理が連続して行われる。これは、半押しと全押しが可能なシャッターボタンを全押しした場合(第1シャッタースイッチ信号SW1と第2シャッタースイッチ信号SW2とがほぼ同時に発生した場合)と同じ動作である。
操作部70は、表示部28に表示される種々の機能アイコンや選択肢を選択操作することなどにより、場面ごとに適宜機能が割り当てられ、各種機能ボタンとして作用する。機能ボタンとしては、例えば終了ボタン、戻るボタン、画像送りボタン、ジャンプボタン、絞込みボタン、属性変更ボタン等がある。例えば、メニューボタンが押されると各種の設定可能なメニュー画面が表示部28に表示される。ユーザーは、表示部28に表示されたメニュー画面を見ながら操作部70を操作することで、直感的に各種設定を行うことができる。
電源スイッチ72は、電源のオン/オフを切り替えるための押しボタンである。電源制御部80は、電池検出回路、DC−DCコンバータ、通電するブロックを切り替えるスイッチ回路などにより構成され、電池の装着の有無、電池の種類、電池残量などの検出を行う。また、電源制御部80は、その検出結果及びシステム制御部50の指示に基づいてDC−DCコンバータを制御し、必要な電圧を必要な期間、記録媒体90を含む各部へ供給する。電源部30は、アルカリ電池やリチウム電池などの一次電池、NiCd電池やNiMH電池、Li電池などの二次電池、ACアダプター等からなる。
記録媒体I/F18は、メモリーカードやハードディスク等の記録媒体90とのインターフェースである。記録媒体90は、撮影された画像を記録するためのメモリーカード等の記録媒体であり、半導体メモリや光ディスク、磁気ディスク等から構成される。記録媒体90は、デジタルカメラ100に対して着脱可能な交換記録媒体であってもよいし、デジタルカメラ100に内蔵された記録媒体であってもよい。
通信部54は、無線または有線ケーブルによって接続された外部機器との間で、映像信号や音声信号などの送受信を行う。通信部54は、無線LAN(Local Area Network)やインターネットにも接続可能である。通信部54は撮像部22a,22bで撮像した画像(LV画像を含む)や、記録媒体90に記録された画像を送信可能であり、外部機器から画像やその他の各種情報を受信することができる。
姿勢検知部55は、重力方向に対するデジタルカメラ100の姿勢を検知する。姿勢検知部55で検知された姿勢に基づいて、撮像部22a,22bで撮影された画像が、デジタルカメラ100を横に構えて撮影された画像であるか、縦に構えて撮影された画像であるかを判別可能である。また、撮像部22a,22bで撮影された画像が、ヨー方向、ピッチ方向、ロール方向の3軸方向(回転方向)にデジタルカメラ100をどの程度傾けて撮影された画像であるかを判別可能である。システム制御部50は、姿勢検知部55で検知された姿勢に応じた向き情報を撮像部22a,22bで撮像されたVR画像の画像ファイルに付加したり、画像を回転(傾き補正(天頂補正)するように画像の向きを調整)して記録したりすることが可能である。加速度センサー、ジャイロセンサー、地磁気センサー、方位センサー、高度センサーなどのうちの1つのセンサーまたは複数のセンサーの組み合わせを、姿勢検知部55として用いることができる。姿勢検知部55を構成する加速度センサー、ジャイロセンサー、方位センサー等を用いて、デジタルカメラ100の動き(パン、チルト、持ち上げ、静止しているか否か等)を検知することも可能である。
マイク20は、動画であるVR画像(VR動画)の音声として記録されるデジタルカメラ100の周囲の音声を集音するマイクロフォンである。接続I/F25は、外部機器と接続して映像の送受信を行うための、HDMI(登録商標)ケーブルやUSBケーブルなどが接続される接続プラグである。
図2(a)は、表示制御装置の一種である電子機器200の外観図である。電子機器200は、例えばスマートフォンなどの表示装置である。ディスプレイ205は画像や各種情報を表示する表示部である。ディスプレイ205はタッチパネル206aと一体的に構成されており、ディスプレイ205の表示面へのタッチ操作を検出できるようになっている。電子機器200は、VR画像(VRコンテンツ)をディスプレイ205においてVR表示することが可能である。操作部206bは電子機器200の電源のオンとオフを切り替える操作を受け付ける電源ボタンである。操作部206cと操作部206dは、スピーカー212bや、音声出力端子212aに接続されたイヤホンや外部スピーカーなどから出力する音声のボリュームを増減するボリュームボタンである。操作部206eは、ディスプレイ205にホーム画面を表示させるためのホームボタンである。音声出力端子212aはイヤホンジャックであり、イヤホンや外部スピーカーなどに音声信号を出力する端子である。スピーカー212bは音声を出力する本体内蔵スピーカーである。
図2(b)は、電子機器200の構成例を示すブロック図である。内部バス250に対してCPU201、メモリ202、不揮発性メモリ203、画像処理部204、ディスプレイ205、操作部206、記録媒体I/F207、外部I/F209、及び、通信I/F210が接続されている。また、内部バス250に対して音声出力部212と姿勢検出部213も接続されている。内部バス250に接続される各部は、内部バス250を介して互いにデータのやりとりを行うことができるようにされている。
CPU201は、電子機器200の全体を制御する制御部であり、少なくとも1つのプロセッサーまたは回路からなる。メモリ202は、例えばRAM(半導体素子を利用した揮発性のメモリなど)からなる。CPU201は、例えば、不揮発性メモリ203に格納されるプログラムに従い、メモリ202をワークメモリとして用いて、電子機器200の各部を制御する。不揮発性メモリ203には、画像データや音声データ、その他のデータ、CPU201が動作するための各種プログラムなどが格納される。不揮発性メモリ203は例えばフラッシュメモリやROMなどで構成される。
画像処理部204は、CPU201の制御に基づいて、不揮発性メモリ203や記録媒体208に格納された画像や、外部I/F209を介して取得した映像信号、通信I/F210を介して取得した画像などに対して各種画像処理を施す。画像処理部204が行う画像処理には、A/D変換処理、D/A変換処理、画像データの符号化処理、圧縮処理、デコード処理、拡大/縮小処理(リサイズ)、ノイズ低減処理、色変換処理などが含まれる。また、全方位画像あるいは全方位ではないにせよ広範囲の映像を有する広範囲画像であるVR画像のパノラマ展開やマッピング処理、変換などの各種画像処理も行う。画像処理部204は特定の画像処理を施すための専用の回路ブロックで構成してもよい。また、画像処理の種別によっては画像処理部204を用いずにCPU201がプログラムに従って画像処理を施すことも可能である。
ディスプレイ205は、CPU201の制御に基づいて、画像やGUI(Graphical User Interface)を構成するGUI画面などを表示する。CPU201は、プログラムに従い表示制御信号を生成し、ディスプレイ205に表示するための映像信号を生成してディスプレイ205に出力するように電子機器200の各部を制御する。ディスプレイ205は生成・出力された映像信号に基づいて映像を表示する。なお、電子機器200自体が備える構成としてはディスプレイ205に表示させるための映像信号を出力するためのインターフェースまでとし、ディスプレイ205は外付けのモニタ(テレビやHMDなど)で構成してもよい。
操作部206は、キーボードなどの文字情報入力デバイスや、マウスやタッチパネルといったポインティングデバイス、ボタン、ダイヤル、ジョイスティック、タッチセンサー、タッチパッドなどを含む、ユーザー操作を受け付けるための入力デバイスである。本実施形態では、操作部206は、タッチパネル206a、操作部206b,206c,206d,206eを含む。
記録媒体I/F207には、メモリーカードやCD、DVDといった記録媒体208が着脱可能である。記録媒体I/F207は、CPU201の制御に基づき、装着された記録媒体208からのデータの読み出しや、記録媒体208に対するデータの書き込みを行う。記録媒体208は、ディスプレイ205で表示するための画像などのデータを記憶する。外部I/F209は、有線ケーブル(USBケーブルなど)や無線によって外部機器と接続し、映像信号や音声信号の入出力(データ通信)を行うためのインターフェースである。通信I/F210は、外部機器やインターネット211などと通信(無線通信)して、ファイルやコマンドなどの各種データの送受信(データ通信)を行うためのインターフェースである。
音声出力部212は、電子機器200で再生する動画や音楽データの音声や、操作音、着信音、各種通知音などを出力する。音声出力部212には、イヤホンなどを接続する音声出力端子212a、スピーカー212bが含まれるものとするが、音声出力部212は無線通信などで外部スピーカーに音声データを出力してもよい。
姿勢検出部213は、重力方向に対する電子機器200の姿勢(傾き)や、ヨー方向、ピッチ方向、ロール方向の各軸に対する電子機器200の姿勢を検出し、CPU201へ姿勢情報を通知する。姿勢検出部213で検出された姿勢に基づいて、電子機器200が横に保持されているか、縦に保持されているか、上に向けられたか、下に向けられたか、斜めの姿勢になったかなどを判別可能である。また、ヨー方向、ピッチ方向、ロール方向などの回転方向における電子機器200の傾きの有無や大きさ、当該回転方向に電子機器200が回転したかなどを判別可能である。加速度センサー、ジャイロセンサー、地磁気センサー、方位センサー、高度センサーなどのうちの1つのセンサーまたは複数のセンサーの組み合わせを、姿勢検出部213として用いることができる。
上述したように、操作部206にはタッチパネル206aが含まれる。タッチパネル206aは、ディスプレイ205に重ね合わせて平面的に構成され、接触された位置に応じた座標情報が出力されるようにした入力デバイスである。CPU201はタッチパネル206aへの以下の操作、あるいは状態を検出できる。
・タッチパネル206aにタッチしていなかった指やペンが新たにタッチパネル206aにタッチしたこと、すなわちタッチの開始(以下、タッチダウン(Touch−Down)と称する)
・タッチパネル206aを指やペンがタッチしている状態(以下、タッチオン(Touch−On)と称する)
・指やペンがタッチパネル206aをタッチしたまま移動していること(以下、タッチムーブ(Touch−Move)と称する)
・タッチパネル206aへタッチしていた指やペンがタッチパネル206aから離れたこと、すなわちタッチの終了(以下、タッチアップ(Touch−Up)と称する)
・タッチパネル206aに何もタッチしていない状態(以下、タッチオフ(Touch−Off)と称する)
タッチダウンが検出されると、同時にタッチオンも検出される。タッチダウンの後、タッチアップが検出されない限りは、通常はタッチオンが検出され続ける。タッチムーブが検出された場合も、同時にタッチオンが検出される。タッチオンが検出されていても、タッチ位置が移動していなければタッチムーブは検出されない。タッチしていた全ての指やペンがタッチアップしたことが検出されると、タッチオフが検出される。
これらの操作・状態や、タッチパネル206a上に指やペンがタッチしている位置座標は内部バスを通じてCPU201に通知され、CPU201は通知された情報に基づいてタッチパネル206a上にどのような操作(タッチ操作)が行われたかを判定する。タッチムーブについてはタッチパネル206a上で移動する指やペンの移動方向についても、位置座標の変化に基づいて、タッチパネル206a上の垂直成分・水平成分毎に判定できる。所定距離以上をタッチムーブしたことが検出された場合はスライド操作が行われたと判定するものとする。タッチムーブは、ユーザーがタッチパネル206aに対して行った移動操作である。後述するタッチムーブに応じた各種処理は、同じく移動操作であるマウスでのドラッグ操作に応じて行うことも可能である。
タッチパネル206a上に指をタッチしたままある程度の距離だけ素早く動かして、そのまま離すといった操作をフリックと呼ぶ。フリックは、言い換えればタッチパネル206a上を指ではじくように素早くなぞる操作である。所定距離以上を、所定速度以上でタッチムーブしたことが検出され、そのままタッチアップが検出されるとフリックが行われたと判定できる(スライド操作に続いてフリックがあったものと判定できる)。
更に、複数箇所(例えば2点)を同時にタッチして、互いのタッチ位置を近づけるタッチ操作をピンチイン、互いのタッチ位置を遠ざけるタッチ操作をピンチアウトと称する。ピンチアウトとピンチインを総称してピンチ操作(あるいは単にピンチ)と称する。タッチパネル206aは、抵抗膜方式や静電容量方式、表面弾性波方式、赤外線方式、電磁誘導方式、画像認識方式、光センサー方式など、様々な方式のタッチパネルのうちいずれの方式のものを用いてもよい。タッチパネルに対する接触があったことでタッチがあったと検出する方式や、タッチパネルに対する指やペンの接近があったことでタッチがあったと検出する方式があるが、いずれの方式でもよい。
図2(c)は、電子機器200を装着可能なVRゴーグル(ヘッドマウントアダプター)230の外観図である。電子機器200は、VRゴーグル230に装着することで、ヘッドマウントディスプレイとして使用することも可能である。挿入口231は、電子機器200を差し込むための挿入口である。ディスプレイ205の表示面を、VRゴーグル230をユーザーの頭部に固定するためのヘッドバンド232側(すなわちユーザー側)に向けて電子機器200の全体をVRゴーグル230に差し込むことができる。ユーザーは、電子機器200が装着されたVRゴーグル230を頭部に装着した状態で、手で電子機器200を保持することなく、ディスプレイ205を視認することができる。この場合は、ユーザーが頭部または体全体を動かすと、電子機器200の姿勢も変化する。姿勢検出部213はこの時の電子機器200の姿勢変化を検出し、この姿勢変化に基づいてCPU201がVR表示のための処理を行う。この場合に、姿勢検出部213が電子機器200の姿勢を検出することは、ユーザーの頭部の姿勢(ユーザーの視線が向いている方向)を検出することと同等である。なお、電子機器200自体が、VRゴーグル無しでも頭部に到着可能なHMDであってもよい。
本実施形態では、最大で上下左右に360度の視野分の映像範囲(有効映像範囲)を持つVR画像から、上下左右に180度の視野分の映像範囲(有効映像範囲)をもつVR画像を切出す操作及び処理について説明する。なお、以下では、最大で上下左右に360度の視野分の映像範囲(有効映像範囲)を持つVR画像を、360度のVR画像と称する。また、上下左右に180度の視野分の映像範囲(有効映像範囲)をもつVR画像を、180度のVR画像と称する。360度のVR画像から180度のVR画像を切り出す処理は、概念としては、360度分の映像が全体にマッピングされた仮想的な球体から、半球を切出す処理である。本実施形態で説明する切出しは、通常の矩形画像(平面画像)を切出す処理ではなく、切出し後もVR画像として視聴可能(球体にマッピングしてVRビューで視聴可能)な画像を切出す処理である。切出し後の画像は上下左右180度分の有効映像範囲を有するため、球体にマッピングした場合には、半球分の有効な映像(撮影された画像など)がマッピングされる。残りの半球分は無効映像範囲となり、単色や所定パターンでの塗りつぶしや、何かしら補完された映像がマッピングされる。このような切出し後のVR画像をVRビューで視聴する場合、ユーザーは、前方の幅180度の範囲(中心から上下左右にそれぞれ90度の範囲)で画像を視認することができる。このような切出し処理を行う理由としては以下のようなものがある。
第1に、画像のデータ量を削減することができる。360度のVR画像に対して、切出された180度のVR画像はデータ量が小さい。そのため、保存する際の記録媒体の容量圧迫を抑制できる。また、送受信する際の通信データ量の削減、表示する際の処理負荷の削減をすることができ、その分、処理速度や応答速度の向上、消費電力の削減といった効果を奏する。
第2に、不要な被写体を削除することができる。例えば360度の視野分の有効映像範囲を有するVR画像を撮像するほとんどの場合、撮影者自身が写り込むことが避けられない。しかし、撮影者が撮影したいものが撮影者自身でなく風景などである場合、撮影者自身は余計な被写体であり、意図しないものである。意図しない映像が写っていると、撮影者が主題と考えていた風景などの映像に視聴者の関心を集中させることを阻害してしまう。また、通行人の顔や通行する車のナンバープレートといった秘匿すべき情報が写ってしまうことも多く、プライバシーやセキュリティーの観点から望ましくない場合がある。切出し処理によって、撮影者が意図する範囲のみを切出し、その他の不要な範囲の映像を破棄することで、これらの問題を回避することができる。
第3に、VRビューで視聴するユーザーの身体的負担を軽減することができる。360度のVR画像をVRビューで視聴する場合、視聴するユーザーの背後まで映像が存在する。前方の180度分の映像であれば、視聴者は自身の首の向きを変えるだけで概ね見渡すことができるが、背後を見ようとすれば、上半身を捻ったり、立つ向きを変えたりしなければならず、身体的負担がやや高い。このような背後を見ようとする身体的動きは、回転チェアでも無い限り、椅子に座って視聴する場合には不向きである。これに対し、180度のVR画像では自身の首の向きを変えるだけで概ね全体を見渡すことができるので、観賞する際の身体的負担が比較的小さい。ガイド表示や180度を超えた範囲が無効領域であることがわかるような表示によって、視聴者が180度のVR画像であることを認識していれば、視聴者は背後を見ようと試みることもない。そのため、背後を見るといった身体的動作を視聴者に行わせることを抑制することができる。
第4に、360度のVR画像を、180度のVR画像のための記録フォーマットなどに対応させて表示させることができる。360度のVR画像の記録フォーマットと、180度分のVR画像のための記録フォーマットが異なる場合、180度分のVR画像の視聴にのみ対応した再生装置(再生アプリケーションソフト)では、360度のVR画像を視聴することができない。しかし360度のVR画像から切出して180度のVR画像を生成すれば、180度分のVR画像の視聴にのみ対応した再生装置でも視聴することが可能となる。また、180度のVR画像の視聴と360度のVR画像の視聴の双方に対応していても、180度のVR画像を視聴するモードと360度のVR画像を視聴するモードとを切り替える必要がある場合には、切替の操作が煩わしい。しかし360度のVR画像から切出して180度のVR画像を生成すれば、180度分のVR画像のための表示モードを切り替えることなく、複数のVR画像を次々と切り替えて表示させることができる。また、同一方向の被写体に向けて視差の分だけ離れた距離に設置された2つのカメラユニットによって撮影された、それぞれ右目用、左目用の2つの180度のVR画像を立体視できるように表示する表示モード(2眼VRビュー)が想定される。360度のVR画像から、右目用の180度のVR画像と左目用の180度のVR画像を切出して記録しておけば、このような2眼VRビューでも視聴可能となる。
なお、本実施形態では、360度のVR画像から180度のVR画像を切出して生成する例を説明するが、切出し前のVR画像の有効映像範囲よりも狭い有効映像範囲のVR画像を切出す処理であれば他の視野角度のVR画像にも適用可能である。すなわち、切出し前のVR画像は360度のVR画像に限るものではなく、また、切出し後のVR画像は180度のVR画像に限るものではない。
後述する各処理では、各種のタッチボタンを表示し、ユーザー操作として各種タッチボタンに対するタッチ操作を受け付けて処理を進める例を説明する。各種タッチボタンに対する指示を受け付けるタッチ操作とは、具体的にはタッチボタンに対応するタッチ反応領域からのタッチアップとしてもよいし、タッチボタンに対応するタッチ反応領域に対するタッチダウンとしてもよい。またこれに限るものではなく、後述するタッチボタンへの操作によって受け付けるものとして説明する各指示は、他のユーザー操作によって受け付けるものとしてもよい。例えば、各物理ボタンへの操作、方向キーを用いて表示アイテムを選択して決定ボタンを押下する操作、マウスを用いて表示アイテムを選択する操作、音声コマンド等であってもよい。
図3は、電子機器200におけるVRビュー表示(処理)のフローチャートである。この処理は、不揮発性メモリ203に記録されたプログラムをメモリ202に展開してCPU201が実行することにより実現する。電子機器200がオンの状態で、360度のVR画像をVRビューで表示可能で、かつ、180度のVR画像を切出す機能を有するアプリケーションソフトを起動すると、CPU201はフラグや制御変数等を初期化した後、図3の処理を開始する。
S301では、CPU201は、記録媒体208もしくは通信I/F210を介した通信先から、表示対象となるVR画像を読み込む(取得する)。また、VR画像の属性情報として付帯されている、映像範囲(有効映像範囲)を示す情報を取得する。有効映像範囲を示す情報とは、VR画像が、上下方向、左右方向にどの角度範囲分の有効な映像を有しているかという情報である。有効映像範囲を示す情報は、VR画像の有効映像範囲を特定できる情報であればよく、画角、視野角、方位角、仰角、左右の画素数や座標などの情報であってもよい。また、有効映像範囲を示す情報は、VR画像を撮像したカメラの機種情報(機種を特定することで撮影可能な範囲を特定可能)や撮影時のズームの情報等でもよい。CPU201は、有効映像範囲を示す情報を取得すると、上下左右360度との差分で無効映像範囲(非映像範囲)も特定(算出)する。なお、逆に、VR画像の属性情報から無効映像範囲を示す情報を取得し、そこから有効映像範囲を算出してもよいし、有効映像範囲を示す情報と無効映像範囲を示す情報の双方をVR画像の属性情報から取得してもよい。
S302では、CPU201は、S301で取得したVR画像のVRビューでの表示処理を行う。VR画像の元データ(画像データ)は、例えば正距円筒図法を用いた歪んだ画像であり、各画素の位置が球体の表面の座標と対応づけることが可能な形式の画像である。このVR画像の元画像を球体にマッピングし、一部を切出して表示する。すなわち、S302で表示される画像はVR画像の一部を切出して拡大した画像であり、かつ、元画像の歪みを除去(あるいは低減)した画像である。
S303では、CPU201は、S301で取得した情報を元に、S302での表示対象であるVR画像が、180度のVR画像を切出し可能なVR画像であるか否かを判定する。記録画素数が閾値未満である画像、有効映像範囲が閾値よりも狭い(小さい)画像、既に後述する切出しの処理が行われた画像、180度のVR画像の少なくともいずれかである場合には、切出し可能なVR画像ではないと判定してS305に進む。切出し可能なVR画像であると判定した場合にはS304に進む。
S304では、CPU201は、切出編集ボタンを表示する。図6(a)に、S304で表示されるVR画像と切出編集ボタンの表示例を示す。VR画像602は、S302で表示されたVR画像である。切出編集ボタン601は、VR画像の切出しを指示するためのタッチアイコンである。なお、S303で切出し可能なVR画像ではないと判定された場合は、切出編集ボタン601を表示しないものとするが、グレーアウトなどの選択不能状態であることが識別できるような表示形態で切出編集ボタン601を表示してもよい。
S305では、CPU201は、タッチパネル206aから通知された情報に基づいて、VR画像602が表示された領域に対するタッチムーブ(表示範囲変更操作)があったか否かを判定する。タッチムーブがあった場合にはS306に進み、そうでない場合にはS307に進む。S306では、CPU201は、タッチムーブされた方向と量に応じて、表示されたVR画像602をスクロールさせ、VR画像の表示範囲を変更する。具体的には、タッチムーブの移動成分のうち左右方向(水平方向)の成分に基づいて、VR画像がマッピングされた仮想球体の上下軸(天頂軸、重力軸)を中心として表示範囲が回転移動するように、VR画像を右または左方向にスクロールする。これはすなわち、仮想球体の中心に置かれた視聴者から見た視線(表示範囲の方向)の方位を変更する表示範囲の変更である。また、タッチムーブの移動成分のうち上下方向(垂直方向)の成分に基づいて、VR画像がマッピングされた仮想球体の水平軸(天頂軸と垂直な軸、重力と垂直な軸)を中心として表示範囲が回転移動するように、VR画像を上または下にスクロールする。これはすなわち、仮想球体の中心に置かれた視聴者から視線(表示範囲の方向)の仰角または俯角(以下、仰俯角と称する)を変更する表示範囲の変更である。
S307では、CPU201は、姿勢検出部213で、表示範囲を変更させるべき姿勢の変化を検知したか否かを判定する。表示範囲を変更させるべき姿勢の変化を検知した場合にはS308に進み、そうでない場合にはS309に進む。S308では、CPU201は、姿勢検出部213で検知した姿勢変化に応じて、VR画像602の表示範囲を変更(移動)する。
S309では、CPU201は、タッチパネル206aから通知された情報に基づいて、VR画像602が表示された領域に対するピンチインまたはピンチアウト(すなわち倍率変更操作)があったか否かを判定する。ピンチインまたはピンチアウトがあった場合はS310へ進み、そうでない場合はS311へ進む。S310では、CPU201は、ピンチ操作に応じてVR画像の表示倍率を(連続的または3以上の複数段階で段階的に)変更する。ピンチイン(縮小操作)の場合はVR画像の表示倍率を下げる。これに伴ってVR画像の表示範囲は広くなる。すなわち、被写体は小さくなるが、より広い範囲が表示される。ピンチアウト(拡大操作)の場合はVR画像の表示倍率を上げる。これに伴ってVR画像の表示範囲は狭くなる。すなわち、被写体は大きくなるが、より狭い範囲が表示される。
S311では、CPU201は、タッチパネル206aから通知された情報に基づいて、切出編集ボタン601を指定するタッチ操作があったか否かを判定する。切出編集ボタン601に対するタッチ操作があった場合はS312に進み、そうでない場合にはS313に進む。S312では、CPU201は、切出編集処理を行う。切出編集処理については図4を用いて後述する。
S313では、CPU201は、画像切替操作があったか否かを判定する。画像切替操作があった場合はS314に進み、そうでない場合にはS315に進む。画像切替操作には、例えば、操作部206に含まれる画像切替ボタンの操作や、ディスプレイ205に表示される画像切替アイコン(画像送りアイコン、画像戻しアイコン)へのタッチ操作、2点を同時にタッチして同方向へドラッグするダブルドラッグ等がある。S314では、CPU201は、画像切替操作に応じて、現在表示しているVR画像とは異なる画像ファイルのVR画像を次の表示対象として特定する。続いて、S301に戻って、次の表示対象のVR画像の取得、表示処理を行う。
S315では、CPU201は、その他の操作があったか否かを判定する。その他の操作があった場合はS316へ進み、そうでない場合はS317へ進む。S316では、CPU201は、その他の操作に応じた処理を実施する。その他の操作に応じた処理としては例えば、VR画像の2眼VRビューでの表示処理、表示しているVR画像のファイル削除、共有(SNSへの投稿やメール送信、他のアプリでの使用指示など)、色味調整などの編集処理などがある。
S317では、CPU201は、操作部206への終了操作があったか否かを判定する。終了操作が無い場合はS305に戻って処理を繰り返す。終了操作があった場合は、VR画像の表示アプリであるアプリケーションソフトを閉じ、図3の処理を終了する。
図4に、図3のS312で前述した切出編集処理のフローチャートを示す。この処理は、不揮発性メモリ203に記録されたプログラムをメモリ202に展開してCPU201が実行することにより実現する。図4の編集処理は、基本的には、VRビューで表示された360度のVR画像のうち、180度のVR画像として切出す範囲の中心をVRビューのまま指定する処理である。範囲指定の微調整を行うこともできるが、微調整を行わずに大まかに中心を決めるだけでも切出す範囲を決められるため、簡単に切出す範囲を指定することができる。VRビューでは、VR画像の全体が表示されていないケースが多く、かつ、切出す範囲の境界は平面画像の場合のような直線の境界とはならない。そのため、仮に、トリミング枠を表示し、表示したトリミング枠を調整するといった操作で切出範囲を決める方法とすると、ユーザーにとって煩雑であり、かつ、わかりにくい。これに対し本実施形態の切出編集処理によれば、360度のVR画像のうち、180度のVR画像として切出す範囲の中心をVRビューのまま指定するだけで切出す範囲の指定ができる。このため、直感的で分かりやすく、簡単な操作感によってユーザーが切出しを行うことができる。
S401では、CPU201は、ディスプレイ205に、切出範囲を指定するための画面である切出編集画面を表示する。図6(b)に、切出編集画面の表示例を示す。VR画像602は、切出編集画面に遷移する前にVRビュー表示で表示していた画像と同じVR画像である。ピンチ操作で表示範囲の拡大や縮小が可能であるが、例えば、切出編集画面の表示直後(デフォルトの状態)では、180度分の範囲よりも狭い表示範囲でVR画像602が表示される。ポインタ603は、切出範囲の中心(切出範囲の基準位置)を指定するためのインジケーターである。切出ボタン604は、現在の表示範囲(基準位置)に基づいて切出範囲を指定するための指示アイコンである。切出編集画面では、ポインタ603は画面中央部に固定された位置に表示され、VR画像602の表示範囲が変わっても、ディスプレイ205上におけるポインタ603の位置は変化しない。ユーザーは、切出し後のVR画像の中心とすべき所望の被写体の位置が、ポインタ603が示す位置となるように、VRビューで表示されたVR画像602の表示範囲を通常のVRビューでの操作とほぼ同じ操作によって変更する。そして、切出ボタン604をタッチすることで、現在の表示範囲(基準位置)に基づいた範囲を切出し後の範囲として指定(または仮指定)することができる。より詳しくは、ポインタ603が表示されている位置に対応するVR画像の位置が切出し後の中心、または中心の方位となるように、切出し後の範囲を指定することができる。
円形で示された表示方向ガイドのうち、扇型の表示範囲605は、円形で示したVR画像の全方位における、現在の表示範囲の方位の範囲(天頂軸回りの角度範囲)を示している。非表示範囲606は、円形で示したVR画像の全方位における、現在の表示範囲でない方位の範囲(天頂軸回りの角度範囲)を示している。基準方向607は、VR画像602の表示を開始する際に最初に(すなわち表示範囲を変更する操作と姿勢変化が起こる前に)表示する表示範囲の中央となる方向(以下、表示開始方向)を示している。
角度情報608(角度目盛)は、表示開始方向に対する現在のポインタ603の角度(方位角)を示しており、表示範囲の変更と共に表示が更新される。半球全体表示ボタン609は、VR画像602の表示倍率を、切出し後の範囲として指定される全範囲が含まれる倍率にワンタッチで切り替えるための指示アイコンである。2画面確認ボタン610は、切出範囲として指定される範囲と、切出範囲として指定されておらず切出し後のVR画像では破棄される削除範囲との双方を同時に表示する表示モードへ切り替えるための指示アイコンである。端微調整ボタン611は、切出範囲の微調整を行うために切出範囲の端部(境界部分)を表示する表示モードへ切り替えるための指示アイコンである。不要箇所指定ボタン612は、切出範囲に含めたくない被写体である不要箇所を指定するモードに切り替えるための指示アイコンである。不要箇所を指定すると、不要箇所を含めないように切出範囲の中央を指定する場合に、指定できる範囲と、指定できない範囲とが識別可能に表示されるようになる。
仰俯角有効/無効ボタン613は、現在の表示範囲に対応する仰俯角(球体にマッピングしたVR画像全体のうち、ポインタ603が示す位置の仰俯角)を切出範囲の中心として有効とするか無効とするかを切り替えるための指示アイコンである。また、仰俯角有効/無効ボタン613は、現在の設定状態も表しており、現在の設定状態が有効であれば有効を示す表示形態のアイコンとして表示され、現在の設定状態が無効であれば無効を示す表示形態のアイコンとして表示される。有効とした場合は、ポインタ603が示す方位、仰俯角を中心として、周囲それぞれ90度、計180度の範囲(半球の範囲)を切出範囲にする。無効とした場合は、ポインタ603が示す仰俯角には基づかず、仰俯角0度、すなわち水平面上でポインタ603が示す位置を中心として、周囲それぞれ90度、計180度の範囲(半球の範囲)を切出範囲にする。ユーザーが指定操作をする前の初期設定では、仰俯角有効/無効の設定は無効であるものとする。
姿勢検知ON/OFFボタン614は、姿勢変化によるVR画像602の表示範囲の変更を有効とするか無効とするかを切り替えるための指示アイコンである。また、姿勢検知ON/OFFボタン614は、現在の設定状態も表しており、現在の設定状態が有効であれば有効を示す表示形態のアイコンとして表示され、現在の設定状態が無効であれば無効を示す表示形態のアイコンとして表示される。有効とした場合には、電子機器200の姿勢を変更させるだけで切出範囲の中心を決められるので簡単で直感的である一方、姿勢変化だけで頻繁に表示範囲が変わってしまうため、所望の表示範囲に調整しづらい場合がある。無効とすることで、姿勢変化による表示範囲の変更を行わないようにすることができ、意図しない表示範囲の変更を防ぎ、タッチムーブによる操作(スライド操作)で、よりユーザーの意図通りの表示範囲への調整が可能となる。ユーザーが指定操作をする前の初期設定では、姿勢検知ON/OFFの設定は無効(オフ)としてもよい。
S402、S403では、CPU201は、VR画像602が表示された領域に対するタッチムーブに応じて表示範囲を変更する。処理の詳細は前述の図3のS305、S306と同様である。なお、前述の通り、表示範囲が変わってもポインタ603のディスプレイ205における表示位置は変わらない。VR画像の表示範囲が変われば、VR画像に対するポインタ603の相対的な位置関係は変わることになる。また、この処理によって、S502、S503で後述する切出しの処理における切出範囲の広さ(180度)は変わらず、切出し前のVR画像における切出範囲の位置が変更される。
図6(c)に、図6(b)の状態から左にタッチムーブして表示範囲を変更した場合の表示例を示す。VR画像602の表示範囲が変わっており、それに追従して、角度情報608と、表示方向ガイドのうち表示範囲605と非表示範囲606が示す範囲も変更されている。VR画像602は、図6(b)に比べて左側に移動するようにスクロールされており、図6(b)の状態と比べてVR画像のうち右側の領域が新たに表示範囲となっている。すなわち、表示範囲は右側に移動している。図6(c)の例では角度情報608と表示方向ガイドからわかるように、図6(b)の表示範囲と比べて、右にほぼ90度を向いた方向に表示範囲が変更されている。この表示範囲にはナンバープレートが見える向きで通行する車が被写体として写っている。ユーザーは例えば、このような通行する車のナンバープレートは公開すべき情報ではなく、切出し後の画像には含まれないようにしたい、と考える。
図6(d)に、図6(c)の状態から更に左にタッチムーブして表示範囲を変更した場合の表示例を示す。VR画像602の表示範囲が変わっており、それに追従して、角度情報608と、表示方向ガイドのうち表示範囲605と非表示範囲606が示す範囲も変更されている。VR画像602は、図6(c)に比べて左側に移動するようにスクロールされており、図6(c)の状態と比べてVR画像のうち右側の領域が新たに表示範囲となっている。すなわち、表示範囲は右側に移動している。図6(d)の例では角度情報608と表示方向ガイドからわかるように、図6(b)の表示範囲と比べて、ほぼ真後ろ(右側に180度)を向いた方向に表示範囲が変更されている。この表示範囲には、撮影者自身が被写体として写っている。ユーザーは例えば、このような撮影者自身は、撮影したかった主要被写体ではなく、切出し後の画像には含まれないようにしたい、と考える。
S404では、CPU201は、メモリ202に保持された設定情報を参照し、姿勢検知に応じた表示範囲の変更機能が有効(オン)になっているか否かを判定する。姿勢検知に応じた表示範囲の変更機能の有効(オン)/無効(オフ)は、前述の姿勢検知ON/OFFボタン614へのタッチ操作によって設定される設定項目である。姿勢検知に応じた表示範囲の変更機能が有効(オン)である場合にはS405に進み、そうでない場合にはS407に進む。S405、S406では、CPU201は、姿勢検出部213で検知された姿勢の変化に応じてVR画像602の表示範囲の変更を行う。この処理は前述の図3のS307、S308と同様の処理であるため、詳述は省略する。なお、この処理によって、S502、S503で後述する切出しの処理における切出範囲の広さ(180度)は変わらず、切出し前のVR画像における切出範囲の位置が変更される。S404で姿勢検知に応じた表示範囲の変更機能が無効(オフ)であると判定した場合はS405、S406に進むことなくS407に進み、姿勢検出部213で姿勢の変化を検知しても、姿勢の変化に応じた表示範囲の変更は行わない。
S407、S408では、CPU201は、ピンチ操作(倍率変更指示)に応じたVR画像602の表示倍率の変更を行う。この処理は前述の図3のS309、S310と同様の処理であるため、詳述は省略する。
S409では、CPU201は、タッチパネル206aから通知された情報に基づいて、半球全体表示ボタン609に対するタッチ操作(半球全体指示;倍率変更指示)があったか否かを判定する。半球全体表示ボタン609を指定するタッチ操作があった場合にはS410に進み、そうでない場合にはS413に進む。S410では、CPU201は、現在の表示倍率が既に半球全体表示の倍率(半球倍率)となっているか否かを判定する。現在の表示倍率を参照して判定してもよいし、現在の表示モードを参照して判定してもよい。既に半球倍率になっている場合は、元の表示倍率に戻すためにS412に進む。半球倍率になっていなかった場合は、S411に進み、半球倍率での表示に切り替える。すなわち、半球全体表示ボタン609に対するタッチ操作がある度に、半球全体表示(半球倍率表示)のオンとオフを切り替える。
S411では、CPU201は、半球全体表示となる前の現在の表示倍率をメモリ202に記録してから、半球全体表示を行う。半球全体表示は、ポインタ603が現在示している位置を中心として切出した場合の切出範囲の全体がディスプレイ205における表示範囲内となる倍率での表示である。本実施形態では180度の範囲を切出範囲とするため半球の範囲が含まれる表示倍率を半球倍率とするが、切出範囲が180度でない場合には半球の範囲に限るものではなく、切出範囲の全体が表示範囲に収まる倍率で表示される。
図7(a)に、切出編集画面における半球全体表示の表示例を示す。図6(b)のようなVRビューでの通常の表示倍率(VRビューでの表示を開始して最初に表示される初期倍率)から、半球全体表示の指示を行うと、図7(a)の表示倍率(初期倍率よりも低い倍率)にワンタッチで(他の倍率で止まることなく)切り替わる。図7(a)におけるVR画像602は、図6(b)で表示していたVR画像602と同じ画像を、半球全体表示での倍率で表示したものである。本来は球体にマッピングされる180度以上の広い範囲を、平面の表示範囲に収めているため、魚眼レンズで撮影したような周辺が歪んだVR画像602が表示される。VR画像602には、斜線部702が重畳して表示される。斜線部702は、表示されたVR画像602のうち、切出範囲の外(ポインタ603が示す位置から180度の範囲外)となる範囲を示しており、切出し後の画像では削除される範囲(除外範囲)を示している。ユーザーは、VR画像602のうち、中心部分の斜線の無い部分701を見て切出範囲に含まれる部分を確認するとともに、斜線部702を見て除外範囲を確認することができる。従って、どこまでの範囲が切出範囲に含まれ、どこからが切出範囲に含まれないのかを確認しながら切出範囲を指定することができる。これによって、主要被写体である川を切出範囲内に収めながらも、通行する車と人物が除外範囲となるように切出範囲を設定する、といった操作が容易に行える。
なお、斜線部702は除外範囲であることが分かればよいので、表示形態は斜線に限るものではく、半透過マスク、網掛け、モノクロ表示などの他の表示形態で除外範囲を示してもよい。また、除外範囲を示さなくとも、切出範囲と除外範囲の境界だけを円形の線などで示す表示としてもよい。更に、除外範囲は表示せずに、切出範囲内の全体が表示範囲内となるように表示してもよい。半球全体表示中も、図4の処理で説明する各種操作に応じた処理が可能である。すなわち、姿勢変化やタッチムーブによる表示範囲の変更を行って所望の範囲が切出範囲となるように調整することができる。また、S425〜S431で後述する切出ボタン604へのタッチ操作に応じた処理によって、切出範囲を決定することが可能である。除外範囲を示す斜線部702は、半球全体表示ボタン609に対するタッチ操作に応じた半球全体表示の場合に表示し、ピンチインで通常倍率から表示倍率を下げた場合には表示しないようにしてもよい。また、除外範囲を示す斜線部702を、半球全体表示ボタン609に対するタッチ操作に応じた半球全体表示の場合に表示し、ピンチインで通常倍率から表示倍率を下げた場合にも表示するようにしてもよい。
S412では、CPU201は、半球全体表示を行っていた状態から、メモリ202に保持していた切り替え前の元の表示倍率を参照し、元の表示倍率での表示状態に戻す。すなわち、例えば図7(a)の表示状態から、図6(b)の表示状態に切り替わる。これによって、周辺部が歪んで小さく表示されていた状態から、歪みの無い、あるいは歪の少ない、切出範囲に含まれる中央部分を大きく表示した表示状態に切り替えられる。
S413では、CPU201は、タッチパネル206aから通知された情報に基づいて、2画面確認ボタン610に対するタッチ操作があったか否かを判定する。2画面確認ボタン610を指定するタッチ操作があった場合にはS414に進み、そうでない場合にはS415へ進む。S414では、CPU201は、2画面表示処理を行う。2画面表示処理については、図8、図9を用いて後述する。
S415では、CPU201は、タッチパネル206aから通知された情報に基づいて、端微調整ボタン611に対するタッチ操作(表示範囲の微調整を開始するための微調整指示)があったか否かを判定する。端微調整ボタン611を指定するタッチ操作があった場合にはS416に進み、そうでない場合にはS417へ進む。S416では、CPU201は、端微調整処理を行う。端微調整処理については、図10、図11を用いて後述する。
S417では、CPU201は、タッチパネル206aから通知された情報に基づいて、不要箇所指定ボタン612に対するタッチ操作があったか否かを判定する。不要箇所指定ボタン612を指定するタッチ操作があった場合にはS418に進み、そうでない場合にはS419へ進む。S418では、CPU201は、不要箇所指定処理を行う。不要箇所指定処理については、図12〜図14を用いて後述する。
S419では、CPU201は、タッチパネル206aから通知された情報に基づいて、仰俯角有効/無効ボタン613に対するタッチ操作(仰俯角有効/無効を切り替えるための切り替え指示)があったか否かを判定する。仰俯角有効/無効ボタン613を指定するタッチ操作があった場合にはS420に進み、そうでない場合にはS423へ進む。S420では、CPU201は、メモリ202に保持された設定情報を参照し、仰俯角有効/無効ボタン613に対するタッチ操作を受け付ける前の現在の設定が、仰俯角有効であるか否かを判定する。仰俯角有効であると判定するとS421に進み、無効である場合にはS422に進む。S421では、CPU201は、仰俯角有効/無効の設定を有効から無効に変更して設定し、設定状態をメモリ202に記録する。S422では、CPU201は、仰俯角有効/無効の設定を無効から有効に変更して設定し、設定状態をメモリ202に記録する。仰俯角有効/無効の設定を変更すると、変更後の設定状態を示すように、仰俯角有効/無効ボタン613の表示形態も更新する。なお、S421で仰俯角有効/無効の設定を無効に設定した場合、S403、S406においてVR画像602の表示範囲を変更できる方向を方位角方向だけに制限し、仰俯角方向には表示範囲を変更できないようにしてもよい。すなわち、タッチムーブあるいは姿勢変化に応じて左右のスクロール(方位角方向への表示範囲の変更)はするが、上下のスクロール(仰俯角方向への表示範囲の変更)はしないように制限しても良い。
S423では、CPU201は、タッチパネル206aから通知された情報に基づいて、姿勢検知ON/OFFボタン614に対するタッチ操作があったか否かを判定する。姿勢検知ON/OFFボタン614を指定するタッチ操作があった場合にはS424に進み、そうでない場合にはS425に進む。S424では、CPU201は、姿勢検知に応じた表示範囲の変更機能の設定状態を変更する。変更前が有効(オン)であった場合は無効(オフ)に変更し、変更後の設定を示す設定情報をメモリ202に記録する。変更前が無効(オフ)であった場合には有効(オン)に変更し、変更後の設定を示す設定情報をメモリ202に記録する。姿勢検知に応じた表示範囲の変更機能の設定状態を変更すると、変更後の設定状態を示すように、姿勢検知ON/OFFボタン614の表示形態も更新する。
S425では、CPU201は、タッチパネル206aから通知された情報に基づいて、切出ボタン604に対するタッチ操作(切出し指示、基準位置の指定操作)があったか否かを判定する。切出ボタン604を指定するタッチ操作があった場合(切出し指示を受付した場合)にはS426に進み、そうでない場合にはS432に進む。
S426では、CPU201は、後述する不要箇所指定処理によって不要箇所が登録されているか否かを判定する。不要箇所が登録されている場合にはS428に進み、不要箇所が登録されていない場合にはS427に進む。S427では、CPU201は、切出プレビュー処理を行う。切出プレビュー処理については、図5を用いて後述する。なお、S426の処理を行わずに、S425で切出ボタン604に対するタッチ操作があったと判定するとS427に進むようにしてもよい。さらに、S426の処理、S427の処理を行わずに、S425で切出ボタン604に対するタッチ操作があったと判定すると、後述する図5のS535に進んで切出し済みVR画像保存の処理を行うようにしてもよい。S428〜S431の処理は、不要箇所が登録されている場合の処理であり、後述する図12のS1215〜S1218と同様の処理であるため、詳細は省略する。
S432では、CPU201は、切出編集処理を終了して図3のVRビュー表示の処理に戻る操作が行われたか否かを判定する。戻る操作が行われていない場合にはS402に戻って処理を繰り返し、戻る操作が行われた場合には図4の処理を終了して元のVRビュー表示を行い、図3のS313へ進む。
図5に、図4のS427で前述した切出プレビュー処理のフローチャートを示す。この処理は、不揮発性メモリ203に記録されたプログラムをメモリ202に展開してCPU201が実行することにより実現する。図5の切出プレビュー処理は、図4の切出編集処理でユーザーに指定された切出範囲で確定してよいかどうかを確認するための処理である。
S501では、CPU201は、メモリ202に保持された設定情報を参照し、現在の設定が、仰俯角有効であるか否かを判定する。なお、ここで参照するのは、仰俯角有効/無効ボタン613に対するタッチ操作で設定変更可能な設定項目である。仰俯角有効であると判定するとS502に進み、無効である場合にはS503に進む。
S502では、CPU201は、現在の表示範囲(図4で説明した処理の切出編集画面、または後述のプレビュー画面で切出ボタン604がタッチされる直前の表示範囲)の方位角及び仰俯角に基づいて切出範囲を決定し、切出し処理を行う。より具体的には、360度のVR画像から、表示範囲の中央(ポインタ603が表示された位置)を中心とした180度の範囲(中心から全方向にそれぞれ90度の範囲)を切出して、180度のVR画像(編集済VRコンテンツ)を生成する。この処理については図16(a)、図16(c)を用いて後述する。
S503では、CPU201は、現在の表示範囲(図4で説明した処理の切出編集画面、または後述のプレビュー画面で切出ボタン604がタッチされる直前の表示範囲)の方位角及び水平方向(仰俯角0度)に基づいて切出範囲を決定し、切出し処理を行う。この際、切出し前の表示範囲の仰俯角には関わらず、水平な方向(天頂軸と垂直な方向)に基づいて切出範囲が決定される。より具体的には、360度のVR画像から、水平方向のうち表示範囲の中央(ポインタ603が表示された位置)に対応する方位角で決まる1点を中心とした180度の範囲を切出して、180度のVR画像(編集済VRコンテンツ)を生成する。この処理については図16(a)、図16(b)を用いて後述する。
S504では、CPU201は、S502またはS503での切出し結果を確認できる、プレビュー画面をディスプレイ205に表示する。図6(e)、図6(f)、図6(g)に、プレビュー画面の表示例を示す。
図6(e)は、図6(b)の状態(VR画像602のうち表示範囲が図6(b)の範囲となっている状態)で切出ボタン604がタッチされ、切出プレビュー処理に遷移した場合のプレビュー画面の表示例である。画面右下部の円形の表示方向ガイドには、扇型の表示範囲605、非表示範囲606に加えて、切出範囲外(除外領域)の範囲を示す除外範囲622(図6(e)の黒塗り部)が表示される。これによってユーザーは、VR画像602の360度の全方位のうち、除外範囲622に対応する範囲には画像が無い状態となったことを識別することができる。また、ポインタ603の表示形態を変更し、ポインタ621として表示する。プレビュー画面では、ポインタ621は、指定済みの切出範囲の中央を示すインジケーターとして表示される。従って、ポインタ621は、ディスプレイ205の中央に固定されず、VR画像602の切出範囲(有効映像範囲)の中央を示す位置に表示される。このため、表示範囲の変更に伴い、VR画像602の切出範囲(有効映像範囲)の中央の表示位置の移動に連動して、ポインタ621の表示位置も移動する。その他の図6(b)と同じ符号の表示アイテムは、切出編集画面と同様の表示アイテムである。2画面確認ボタン610、不要箇所指定ボタン612はプレビュー画面では非表示となる。切出編集画面では表示されておらず、プレビュー画面で表示される表示アイテムとして、再生開始方向指定ボタン623、保存ボタン624、キャンセルボタン625が表示される。再生開始方向指定ボタン623は、切出し後のVR画像を次回最初に表示する際に表示範囲となる箇所を指定するための指示アイコンである。再生開始方向指定ボタン623に対するタッチ操作(再生開始方向を指定するための方向指定指示)があった時点での表示範囲の中央が、切出し後のVR画像を次回最初に表示する際の表示範囲の中央、即ち切出し後のVR画像における前述の表示開始方向となる。保存ボタン624は、切出範囲を確定して切出し後のVR画像の画像ファイルを記録する指示を行うための指示アイコンである。キャンセルボタン625は、現在の切出範囲でのVR画像の保存をせずに切出編集画面に戻るための指示アイコンである。
S505、S506では、CPU201は、VR画像602が表示された領域に対するタッチムーブに応じて表示範囲を変更する。処理の詳細は前述の図3のS305、S306と同様である。なお、前述の通り、表示範囲が変わるとポインタ621のディスプレイ205における表示位置も変わる。VR画像の表示範囲が変わっても、VR画像に対するポインタ621の相対的な位置関係は変わらない。
図6(f)に、図6(e)の状態から左にタッチムーブして表示範囲を変更した場合の表示例を示す。VR画像602の表示範囲が変わっており、それに追従して、角度情報608と、表示方向ガイドのうち表示範囲605と非表示範囲606が示す範囲も変更されている。表示方向ガイドのうち、表示範囲に含まれている除外範囲の部分をパターン626で識別可能に表示している。VR画像602は、図6(e)に比べて左側に移動するようにスクロールされており、図6(e)の状態と比べてVR画像のうち右側の領域が新たに表示範囲となっている。すなわち、表示範囲は右側に移動している。図6(f)の例では角度情報608と表示方向ガイドからわかるように、図6(e)の表示範囲と比べて、右にほぼ90度を向いた方向に表示範囲が変更されている。ポインタ621が示していた位置を中心とした180度の範囲で切出しが行われているため、除外範囲630が表示範囲内に見え始める。除外範囲630は、有効な映像が存在しない範囲であることが識別できればよく、例えば単色での表示や、所定のパターン、グラデーションでの表示形態となる。図6(c)においてユーザーが切出し後の画像から除外したいと考える例として説明した、ナンバープレートが見える向きで通行する車は、図6(f)では除外範囲630として除外されており、切出し後のVR画像には含まれていないことが確認できる。
図6(g)に、図6(f)の状態から更に左にタッチムーブして表示範囲を変更した場合の表示例を示す。VR画像602の表示範囲が変わっており、それに追従して、角度情報608と、表示方向ガイドが示す範囲も変更されている。図6(g)の例では角度情報608と表示方向ガイドからわかるように、図6(e)の表示範囲と比べて、ほぼ真後ろ(右側に180度)を向いた方向に表示範囲が変更されている。表示範囲内にVR画像602は含まれておらず、除外範囲630が表示範囲の全体を占めている。図6(d)においてユーザーが切出し後の画像から除外したいと考える例として説明した撮影者自身は、図6(g)では除外範囲630として除外されており、切出し後のVR画像には含まれていないことが確認できる。
S507〜S515の処理は、姿勢変化に応じた表示範囲の変更処理、ピンチ操作に応じた表示倍率の変更処理、半球全体指示に応じた半球倍率での表示処理であり、前述した図4のS404〜S412と同様の処理であるため説明を省略する。なお、S514での半球全体表示では、S411での半球全体表示とは異なり、除外範囲(図7(a)において斜線部702で示していた部分)は表示されない。図7(b)に、プレビュー画面における半球全体表示の表示例を示す。除外範囲を除く切出し後のVR画像の有効な映像範囲のみを表示するため、図7(a)において斜線部702で示していた部分は表示されない。すなわち、切出し前のVR画像のうち切出し後の有効な映像範囲の外は非表示となる。この表示によってユーザーは、切出し後のVR画像の中央部分にどのような被写体が位置するのか、及び、切出範囲内にどの被写体までが含まれるのかを1画面内で確認することができる。図7(a)の表示状態で、切出ボタン604に対するタッチ操作があると、図7(b)の表示状態に遷移する。図6(e)〜図6(g)の表示状態で、半球全体表示ボタン609に対するタッチ操作があった場合も、図7(b)の表示状態に遷移する。
S516、S517の処理は、端微調整ボタン611に対するタッチ操作に応じた処理であり、前述のS415、S416と同様の処理であるため説明を省略する。
S518〜S521は、仰俯角有効/無効ボタン613に対するタッチ操作に応じた処理であり、前述のS419〜S422と同様の処理であるため説明を省略する。なお、S520で仰俯角有効から無効に切り替えると、S503に進んで切出範囲を変更する。なお、S520からS503に進んだ場合には、その時点での表示範囲に基づいて切出範囲を設定するのではなく、S520の時点での切出範囲を決める要因となった切出ボタン604の操作があった際の表示範囲に基づいて行われる。すなわち、S520の時点での切出範囲の中央の方位はそのままで、切出範囲の中央の仰俯角が水平方向となるように、360度のVR画像(全球の範囲)から180度の範囲(半球の範囲)の切出しが行われる。また、S521で仰俯角無効から有効に切り替えると、S502に進んで切出範囲を変更する。なお、S521からS502に進んだ場合には、その時点での表示範囲に基づいて切出範囲を設定するのではなく、S521の時点での切出範囲を決める要因となった切出ボタン604の操作があった際の表示範囲に基づいて行われる。即ち、S521の時点での切出範囲の中央の方位はそのままで、切出範囲の中央の仰俯角が、S521の時点での切出範囲の決定要因となった切出ボタン604の操作時の表示範囲の仰俯角となるよう、360度のVR画像から180度のVR画像が切出される。
S522、S523の処理は、姿勢検知ON/OFFボタン614に対するタッチ操作に応じた処理であり、前述のS423、S424と同様の処理であるため説明を省略する。
S524では、CPU201は、タッチパネル206aから通知された情報に基づいて、再生開始方向指定ボタン623へのタッチ操作が行われたか否かを判定する。再生開始方向指定ボタン623へのタッチ操作が行われた場合はS525へ進み、そうでない場合にはS526に進む。S525では、CPU201は、切出し後のVR画像の表示開始方向を現在の表示範囲の中心に決定し、VR画像のうち現在の表示範囲の中心を示す位置情報をメモリ202に記録する。この位置情報は、後述するS535において、切出し済みVR画像の画像ファイルの属性情報に、表示開始方向を示す情報として記録される。
S526では、CPU201は、タッチパネル206aから通知された情報に基づいて、切出ボタン604に対するタッチ操作があったか否かを判定する。切出ボタン604を指定するタッチ操作があった場合にはS527に進み、そうでない場合にはS532に進む。
S527では、CPU201は、後述する不要箇所指定処理によって不要箇所が登録されているか否かを判定する。不要箇所が登録されている場合にはS528に進み、不要箇所が登録されていない場合にはS501に進む。続いてS501からS502またはS503に進み、S526で切出ボタン604に対するタッチ操作があったと判定した時点の表示範囲に基づいて切出範囲を変更する。このように本実施形態では、プレビュー画面において切出範囲を変更したくなった場合は、切出ボタン604に対するタッチ操作を行うことで、その時点の表示範囲、より具体的にはその時点の表示範囲の中央の位置に基づいて切出範囲を修正することができる。S502またはS503で改めて切出しを行うと、修正された切出範囲を示すように、S504でプレビュー画面が更新される。なお、プレビュー画面では切出範囲の修正はできないようにしてもよい。この場合、プレビュー画面には切出ボタン604は非表示とするかグレーアウトなどの操作不能を示す表示形態で表示し、S526の判定は行わないようにする。そうであっても、ユーザーは、プレビュー画面を見て切出範囲の変更を行いたくなった場合に、キャンセルボタン625に対するタッチ操作を行い、切出編集画面に戻ってから切出範囲を再指定することで切出範囲を変更できる。S528〜S531の処理は、不要箇所が登録されている場合の処理であり、後述する図12のS1215〜S1218と同様の処理であるため、詳細は省略する。
S532では、CPU201は、タッチパネル206aから通知された情報に基づいて、キャンセルボタン625に対するタッチ操作があったか否かを判定する。キャンセルボタン625に対するタッチ操作があった場合はS533に進み、図4で前述した切出編集処理(切出編集画面)へ戻る。キャンセルボタン625に対するタッチ操作が無かった場合にはS534へ進む。
S534では、CPU201は、タッチパネル206aから通知された情報に基づいて、保存ボタン624へのタッチ操作が行われたか否かを判定する。保存ボタン624へのタッチ操作が行われた場合はS535へ進み、そうでない場合にはS505に進んで処理を繰り返す。
S535では、CPU201は、プレビュー画面で確認した切出範囲で切出し済みのVR画像から、VRビューでの表示が可能な画像ファイルを生成して記録媒体208に記録する。ここでは、切出し前の360度のVR画像からS502またはS503で切出しの処理が施され、メモリ202または記録媒体208に保持されていた画像を画像ファイルとして記録するものとする。ただし、S535の時点で切出し前の360度のVR画像から画像処理部204を制御して改めて180度のVR画像を切出して記録するようにしてもよい。また、切出し済みのVR画像の画像ファイルは、新規保存ファイルとして記録するものとする。ただし、切出し前の360度のVR画像の画像ファイルに上書き保存するものとしてもよい。切出し済みのVR画像の画像ファイルは、VR180の規格に準拠したフォーマットで記録する。切出し済みのVR画像の画像ファイルを記録すると図5の処理を終了し、図3のS301に戻り、切出し元の360度のVR画像のVRビュー表示を行う。なお、図5の処理の終了後に、新規に保存された切出し済みの180度のVR画像のVRビュー表示を行うようにしてもよい。
S535で記録する切出し済みのVR画像(VRビューでの表示が可能な画像ファイル)について説明する。切出し済みのVR画像が静止画であれば、切出範囲内の画像を正距円筒図法で矩形内に変形して収めた画像がマルチピクチャーフォーマットで1ファイル内に複数枚格納されたファイルを生成して記録する。切出し前の360度のVR画像(元画像)を、VRビューではなく通常の平面画像として表示した場合には、図18(a)のような長方形内に正距円筒図法で描画された画像となる。この元画像から前述の処理によって180度の範囲が切出されると、VRビューではなく通常の平面画像として表示した場合に図18(b)に示すようにほぼ正方形内に正距円筒図法で描画された画像が記録される。この際、切出範囲内の画像をコピーした同一の画像を、視差が無いにせよ、右目用画像、左目用画像としてそれぞれ同一ファイル内に記録する。なお、疑似的に視差を有するように(すなわち左目用画像と右目用画像の範囲がやや異なるように)、切出し前の1つの360度のVR画像から2つの180度の範囲を切出して生成してもよい。この場合も、切出範囲は切出ボタン604がタッチ操作された際の表示範囲に基づいて決定される。切出し済みの静止画のVR画像のファイル名は例えば“123456.vr.jpg”となり、拡張子“.jpg”の手前に3文字の文字列“.vr”が記述される。このように静止画ファイルとして保存された画像をVRビューで再生表示すると、図18(b)の画像が半球にマッピングされて表示される。切出し済みの静止画のVR画像ファイルを、2眼VRビューで再生して表示した例(VRゴーグルに装着していない状態のディスプレイ205における表示例)を図18(d)に示す。
切出し済みのVR画像が動画であれば、切出範囲内の画像を正距円筒図法ではなく円または楕円内にマッピングした映像(動画)が1つの動画の映像内の左右に(サイドバイサイドで)並べられた動画ファイルを生成して記録する。この際、切出範囲内の画像をコピーした同一の画像を、視差が無いにせよ、右目用画像、左目用画像としてそれぞれ左右に並べて記録する。このような動画をVRビューではなく通常の平面画像として表示すると図18(c)のように表示される。なお、疑似的に視差を有するように(すなわち左目用画像と右目用画像の範囲がやや異なるように)、切出し前の1つの360度のVR画像から2つの180度の範囲を切出して生成してもよい。この場合も、切出範囲は切出ボタン604がタッチ操作された際の表示範囲に基づいて決定される。切出し済みの動画のVR画像のファイル名は例えば“123456.vr.mp4”となり、拡張子“.mp4”の手前に3文字の文字列“.vr”が記述される。切出し済みの動画のVR画像ファイルを、2眼VRビューで再生して表示した場合のあるフレームの表示例(VRゴーグルに装着していない状態のディスプレイ205における表示例)は図18(d)に示した例と同様である。
図8に、前述した図4のS414の2画面表示処理のフローチャートを示す。この処理は、不揮発性メモリ203に記録されたプログラムをメモリ202に展開してCPU201が実行することにより実現する。
S801では、CPU201は、ディスプレイ205において2画面表示の初期表示を行う。図9(a)に、ディスプレイ205における2画面表示の初期表示の表示例を示す。2画面表示の表示画面は、VR画像602のうち切出範囲903内を表示する上領域901と、同じVR画像602のうち除外範囲904内を示す下領域902に区分される。初期表示では、上領域901の円形の表示領域に、切出範囲の全体が表示範囲内となるように歪曲円形画像が表示される。この表示範囲は、図7(b)で説明した半球全体表示と同様の表示範囲である。さらに、初期表示では、下領域902の円形の表示領域に、除外範囲の全体が表示範囲内となるように歪曲円形画像が表示される。この表示範囲は、切出し後に破棄される半球の範囲に対応する。その他の、前述と同じ符号の表示アイテムは、前述したものと同様である。ユーザーはこのように切出範囲全体と除外範囲全体が同時に表示された画面を見ることで、切出し前の360度のVR画像のうち、切出し後に含まれる切出範囲にどのような被写体が含まれ、除外範囲にどのような被写体が含まれるかを簡単に確認できる。通常の切出編集画面のVRビューにおける、半球全体表示よりも大きい表示倍率では、切出し範囲内の一部しか表示されず、表示範囲は常に切出範囲の中央となるため、切出範囲と除外範囲の境界は表示されない。従って境界を確認することはできない。また、プレビュー画面における、半球全体表示よりも大きい表示倍率では、切出し範囲内の一部しか表示しないため、切出範囲と除外範囲の境界は1部分しか確認することはできない。境界を1部分しか見ずに切出範囲の調整を行った場合、表示している境界において切出し範囲の内部に思った通りの部分を収めたとしても、表示していない境界付近において逆に収めたい被写体が切出範囲からはみ出てしまうといったことが起こり得る。全ての境界付近において思った通りの部分が収まっているか否かを確認するには、表示範囲を複数回または大きく変更する必要がある。一方、図9(a)のような2画面表示では、ユーザーは、表示範囲を変更せずに切出範囲全体と除外範囲全体を確認できる。さらに、ユーザーは、そのような確認を行いながら、タッチムーブによって切出範囲と除外範囲を調整することができる。従って、切出範囲に収めるべき被写体を存在に気づかずに除外範囲に収めてしまったり、切出範囲から除外すべき被写体を存在に気付かずに切出範囲内に収めてしまったりといったミスを防止することができる。なお、下領域902に表示される除外範囲については、切出し後に破棄される部分であることが理解しやすいように、所定色の半透過マスク、モノクロやセピアなどで表示するといった色変換、網掛け等を施してもよい。
S802では、CPU201は、上領域901または下領域902においてタッチムーブ(映像範囲変更操作)があったか否かを判定する。タッチムーブがあったと判定するとS803に進み、そうでない場合にはS804に進む。S803では、CPU201は、VR画像602のうち切出範囲となる部分と除外範囲となる部分をそれぞれ変更する。具体的には、CPU201は、上領域901と下領域902のうちタッチムーブが行われた片方の領域に表示されるVR画像602の表示範囲を、タッチ位置の移動に追従して変更する。なおこの時、仰俯角有効の設定であれば、タッチムーブの横移動成分及び縦移動成分の双方に追従して表示範囲を変更する。仰俯角無効の設定であれば、タッチムーブの横移動成分に応じて表示範囲を移動するが、縦移動成分に応じては表示範囲を移動せず、ポインタ603が常に仰俯角0度(水平方向)を示し、表示範囲は上下には移動しない。また、他方の領域に表示されるVR画像602の表示範囲を、VR画像602のうち、タッチムーブのあった領域での表示範囲の変更に連動して変更し、タッチムーブのあった領域での表示範囲となっていない反対側の半球部分とする。これらによって、ディスプレイ205上の固定位置(ディスプレイ205の画面上の所定位置)に表示されたポインタ603(上領域の中央位置)のVR画像602に対する相対的な位置が変わる。CPU201は、VR画像602のうちポインタ603に対応する位置を中心とした半球の範囲を、切出範囲に設定する。
S804では、CPU201は、上領域901でピンチ操作があったか否かを判定する。上領域901でピンチ操作があったと判定した場合にはS805に進み、そうでない場合にはS807に進む。S805では、CPU201は、後述するS809で下領域902における除外範囲の画像をS801の初期表示よりも拡大または縮小していた場合に、除外範囲の画像の表示倍率を、除外範囲の全体が表示される倍率、つまり初期表示の倍率にリセットする。S806では、CPU201は、上領域901で行われたピンチ操作に応じて、上領域901に表示される、VR画像602のうち切出範囲の部分の画像の表示倍率を変更し、当該画像を拡大または縮小して表示する。切出範囲の画像を拡大して表示すれば、ユーザーは、切出範囲に含まれている被写体の詳細を確認することができる。
S807では、CPU201は、下領域902でピンチ操作があったか否かを判定する。下領域902でピンチ操作があったと判定した場合にはS808に進み、そうでない場合にはS810に進む。S808では、CPU201は、前述したS806で上領域901における切出範囲の画像をS801の初期表示よりも拡大または縮小していた場合に、切出範囲の画像の表示倍率を、切出範囲の全体が表示される倍率、つまり初期表示の倍率にリセットする。S809では、CPU201は、下領域902で行われたピンチ操作に応じて、下領域902に表示される、VR画像602のうち除外範囲の部分の画像の表示倍率を変更し、当該画像を拡大または縮小して表示する。除外範囲の画像を拡大して表示すれば、ユーザーは、除外範囲に含まれている被写体の詳細を確認することができる。
図9(b)に、下領域902でピンチアウトを行ったことに応じて下領域902に表示される画像を拡大した場合の表示例を示す。下領域902に表示される範囲は、除外範囲の全体ではなく一部となってしまうが、図9(a)の初期表示より拡大しているため、被写体の様子を確認しやすい。この状態から上領域901でピンチ操作が行われると、S805の処理によって表示倍率がリセットされ、下領域902における表示倍率は図9(a)に示した初期表示の表示倍率に戻る。このようにして、切出範囲と除外範囲のどちらかは必ず全体が収まる表示倍率で表示することで、必ずどちらかの歪曲円形画像で、切出範囲と除外範囲の境界部分が確認できるようにする。
なお、S804〜S809の、2画面表示処理におけるピンチ操作に応じた倍率の変更では、表示倍率だけが変更され、切出範囲の変更は行われない。すなわち、VR画像602に対するポインタ603の相対的な位置は変わらない。
S810では、CPU201は、切出ボタン604に対するタッチ操作があったか否かを判定する。切出ボタン604を指定するタッチ操作があった場合にはS811に進み、CPU201は、前述の図5の切出プレビュー処理を行う。この場合には、切出プレビュー処理での1回目のS502またはS503で、CPU201は、切出ボタン604がタッチされた時点で上領域901に表示された表示範囲の中央(ポインタ603が示す位置)が切出範囲の中央となるように切出しを行う。なお、不要箇所が登録されている場合は、前述の図4のS426〜S431と同様の処理を行ってもよい。
S812では、CPU201は、保存ボタン624に対するタッチ操作があったか否かを判定する。保存ボタン624を指定するタッチ操作があった場合にはS813に進み、そうでない場合にはS814へ進む。S813では、CPU201は、保存ボタン624がタッチされた時点で上領域901に表示された表示範囲の中央(ポインタ603が示す位置)が切出範囲の中央となるように、切出しを行う。より具体的には、CPU201は、360度のVR画像から、上領域901での表示範囲の中央を中心とした180度の範囲(中心から全方向にそれぞれ90度の範囲)を切出す。そして、CPU201は、切出し済みのVR画像をVRビューでの表示が可能な画像ファイルとして記録媒体208に記録する。切出し後の記録処理は、前述したS535と同様の処理である。S813の処理を終えると、2画面表示処理を終了して図3のS301に戻る。
S814では、CPU201は、キャンセルボタン625に対するタッチ操作があったか否かを判定する。キャンセルボタン625を指定するタッチ操作があった場合には2画面表示処理を終了し、S415に戻って切出編集画面を表示する。この際、2画面表示処理で調整した表示範囲(ポインタ603のVR画像602に対する相対的な位置関係)は、切出編集画面へと引き継がれる。キャンセルボタン625に対するタッチ操作が無い場合にはS802に戻って処理を繰り返す。
なお、2画面表示処理は、切出編集画面でユーザーが2画面確認ボタン610に対するタッチ操作を行った場合に表示するものとして説明したが、切出範囲の仮設定指示があったことに応じて、切出範囲のプレビュー表示として2画面表示を行ってもよい。例えば、図4のS425で切出ボタン604がタッチ操作されたことに応じて、図5の切出プレビュー処理の代わりに、図8の2画面表示処理を行うようにしてもよい。
図10に、前述した図4のS416と図5のS517の端微調整処理のフローチャートを示す。この処理は、不揮発性メモリ203に記録されたプログラムをメモリ202に展開してCPU201が実行することにより実現する。図10の端微調整処理は、VR画像の切出範囲と除外範囲の境界付近を拡大して表示し、切出範囲をユーザーが微調整するための処理である。
S1001では、CPU201は、VRビューからの画像切出し用に端微調整画面の初期表示を行う。
図11(a)に、端微調整処理へ遷移した直後にディスプレイ205に表示される端微調整画面の表示例を示す。図11(a)は、水平方向表示と垂直方向表示の2種類ある端微調整画面のうち、水平方向表示の例である。メイン領域1101には、切出編集画面またはプレビュー画面で表示されていたものと同じVR画像602の一部である、切出範囲の中央部分が表示される。メイン領域1101では、VR画像602は周辺部が歪まない程度の表示倍率で表示されるため、切出範囲の端部(切出範囲と除外範囲の境界)までは表示されない。ポインタ603はメイン領域1101の固定位置(メイン領域1101の中央)に表示される。ポインタ603がVR画像に対して切出編集画面で表示されていた位置と同じ位置となるように、背景のVR画像の表示位置が決まる。ユーザーはメイン領域1101を見ることで、切出範囲の中心に何が写っているかを確認することができる。メイン領域1101の下側に、左右に並べて、端表示領域である左側領域1102と右側領域1103が表示される。左側領域1102と右側領域1103には、切出範囲のうち、切出範囲と除外範囲の境界を含む部分が表示される。
左側領域1102には、切出範囲のうち一部の境界部分(切出範囲の端を含む一部の範囲)が表示される。初期表示およびリセット直後であれば、ポインタ603が示す垂直位置(ポインタ603が示す仰俯角の位置)における左側の境界部分が表示される。左側領域1102には切出範囲内を示す画像領域1102aと切出範囲外(除外範囲内)を示す除外領域1102bが左右に区分けして互いに隣接して表示され、切出範囲と除外範囲の境界がどうなっているかを確認できるようになっている。左側領域1102における画像領域1102aと除外領域1102bの位置関係は固定であり、後述するタッチムーブがあっても変わらない。
右側領域1103には、切出範囲のうち、左側領域1102に表示される範囲とは180度反対側の一部の境界部分(左側領域1102に表示される範囲とは不連続な境界部分)が表示される。初期表示およびリセット直後であれば、ポインタ603が示す垂直位置(ポインタ603が示す仰俯角の位置)における右側の境界部分が表示される。右側領域1103には切出範囲内を示す画像領域1103aと切出範囲外(除外範囲内)を示す除外領域1103bが左右に区分けして互いに隣接して表示され、切出範囲と除外範囲の境界がどうなっているかを確認できるようになっている。右側領域1103における画像領域1103aと除外領域1103bの位置関係は固定であり、後述するタッチムーブがあっても変わらない。すなわち、ユーザー操作に応じて切出し前のVR画像における切出範囲の位置を変更しても、切出範囲の端に対応するディスプレイ205における位置を変更しない。切出範囲の端に対応するディスプレイ205における位置とは、画像領域1103aと除外領域1103bとの境界位置、及び画像領域1102aと除外領域1102bとの境界位置である。
ユーザーはこのような表示を見て、例えば、VR画像602のうち車道部分を除外範囲とし、歩道部分を切出範囲内に収めたい場合に、切出範囲内に思った通りの部分が収まっているか否かを簡単に確認して、切出範囲の微調整を好適に行うことができる。通常の切出編集画面のVRビューにおける、半球全体表示よりも大きい表示倍率では、切出し範囲内の一部しか表示されず、表示範囲は常に切出範囲の中央となるため、切出範囲と除外範囲の境界は表示されない。従って境界を確認することはできない。また、プレビュー画面における、半球全体表示よりも大きい表示倍率では、切出し範囲内の一部しか表示しないため、切出範囲と除外範囲の境界は1箇所しか確認することはできない。境界を1箇所しか見ずに切出範囲の調整を行った場合、表示している境界において切出し範囲の内部に思った通りの部分を収めたとしても、他方の境界付近において逆に収めたい被写体が切出範囲からはみ出てしまうといったことが起こり得る。双方の境界付近において思った通りの部分が収まっているか否かを確認するには、表示範囲を複数回または大きく変更する必要がある。一方で、図11(a)のような端微調整画面では、ユーザーは、表示範囲を変更せずに、切出範囲と除外範囲の境界を確認して、切出範囲内に思った通りの部分が収まっているか否か確認できる。さらに、図11(a)のような端微調整画面では、ユーザーは、複数の境界部分(両端の境界部分)を同時に確認でき、切出範囲内に思った通りの部分が収まっているか否かの確認などを短時間や少ない操作回数で行える。
左側領域1102の左上部(除外領域1102bの上部)には、タッチアイコンである水平/垂直切替ボタン1104を表示する。この位置に水平/垂直切替ボタン1104を表示することで、画像領域1102aに表示された切出範囲内の映像の視認性を妨げることがない。また、水平方向表示と垂直方向表示を切り替えた場合にも、水平/垂直切替ボタン1104は、表示位置を変更せずに、切替後の切出範囲内の映像の視認性を妨げない位置に表示する。なお、水平/垂直切替ボタン1104は、右側領域1103の右下部(除外領域1103bの下部)に表示してもよい。この位置でも、水平方向表示と垂直方向表示の双方で切出範囲内の映像の視認性を妨げることなく表示できる。また、右側領域1103の右下部(除外領域1103bの下部)には、タッチアイコンであるリセットボタン1105を表示する。この位置であれば、水平方向表示と垂直方向表示の双方で切出範囲内の映像の視認性を妨げることなくリセットボタン1105を表示できる。なお、リセットボタン1105は、同様の理由で左側領域1102の左上部(除外領域1102bの上部)に表示してもよい。
図11(c)に、水平方向表示と垂直方向表示の2種類ある端微調整画面のうち、垂直方向表示の表示例を示す。メイン領域1101の表示内容は水平方向表示と同様である。メイン領域1101の下側に、左右に並べて、端表示領域である左側領域1112と右側領域1113が表示される。左側領域1112と右側領域1113には、切出範囲のうち、切出範囲と除外範囲の境界を含む部分が表示される。
左側領域1112には、切出範囲のうち一部の境界部分が表示される。初期表示およびリセット直後であれば、ポインタ603が示す水平位置(ポインタ603が示す方位角の位置)における上側の境界部分が表示される。左側領域1112には切出範囲内を示す画像領域1112aと切出範囲外(除外範囲内)を示す除外領域1112bが上下に区分けして互いに隣接して表示され、切出範囲と除外範囲の境界がどうなっているかを確認できるようになっている。左側領域1112における画像領域1112aと除外領域1112bの位置関係は固定であり、後述するタッチムーブがあっても変わらない。
右側領域1113には、切出範囲のうち、左側領域1112に表示される範囲とは180度反対側の一部の境界部分が表示される。初期表示およびリセット直後であれば、ポインタ603が示す水平位置(ポインタ603が示す方位角の位置)における下側の境界部分が表示される。右側領域1113には切出範囲内を示す画像領域1103aと切出範囲外(除外範囲内)を示す除外領域1103bが上下に区分けして互いに隣接して表示され、切出範囲と除外範囲の境界がどうなっているかを確認できるようになっている。右側領域1113における画像領域1113aと除外領域1113bの位置関係は固定であり、後述するタッチムーブがあっても変わらない。
左側領域1112の左上部(除外領域1112bの上部)には、タッチアイコンである水平/垂直切替ボタン1104を表示する。この表示位置は図11(a)と同じである。この表示位置は、図11(a)の除外領域1102bと図11(c)の除外領域1112bとが重複(オーバーラップ)する領域である。また、右側領域1113の右下部(除外領域1113bの下部)には、リセットボタン1105を表示する。この表示位置は図11(a)と同じである。この表示位置は、図11(a)の除外領域1103bと図11(c)の除外領域1113bとが重複(オーバーラップ)する領域である。
S1002では、CPU201は、タッチパネル206aから通知された情報に基づいて、リセットボタン1105に対するタッチ操作があったか否かを判定する。リセットボタン1105を指定するタッチ操作があった場合はS1001へ進み、後述するS1014またはS1020で変更された表示位置を元の表示位置に戻す。このリセットによって、水平方向表示であれば切出範囲の上下中央部分の左境界、右境界の表示となり、垂直方向表示であれば切出範囲の左右中央の上境界、下境界の表示となる。リセットボタン1105に対するタッチ操作が無い場合にはS1103に進む。
S1003では、CPU201は、タッチパネル206aから通知された情報に基づいて、水平/垂直切替ボタン1104に対するタッチ操作があったか否かを判定する。水平/垂直切替ボタン1104を指定するタッチ操作があった場合はS1004へ進み、そうでない場合はS1005へ進む。
S1004では、CPU201は、端微調整画面(端表示領域)が水平方向表示であった場合には垂直方向表示に、垂直方向表示であった場合には水平方向表示に切り替える。例えば、図11(a)のように表示していた状態で水平/垂直切替ボタン1104に対するタッチ操作があると図11(c)の表示に切り替わる。また、図11(c)のように表示していた状態で水平/垂直切替ボタン1104に対するタッチ操作があると図11(a)の表示に切り替わる。
S1005では、CPU201は、タッチパネル206aから通知された情報に基づいて、メイン領域1101でタッチムーブが行われたか否かを判定する。より詳しくは、メイン領域1101にタッチダウンされてタッチムーブが行われたか否かを判定する。メイン領域1101を起点としたタッチムーブが行われた場合はS1006へ進み、そうでない場合はS1008へ進む。
S1006では、CPU201は、タッチムーブによるスライド操作に応じて、メイン領域1101に表示されるVR画像の表示範囲を変更する。この処理は、前述した図3のS306の処理と同様である。
S1007では、CPU201は、タッチムーブによるスライド操作に応じて、水平方向表示であれば左側領域1102と右側領域1103におけるVR画像の表示範囲(すなわち、画像領域1102aと画像領域1103aに表示される部分)を変更する。垂直方向表示であれば左側領域1112と右側領域1113におけるVR画像の表示範囲(すなわち、画像領域1112aと画像領域1113aに表示される部分)を変更する。これは、メイン領域1101でのタッチムーブに応じて切出範囲が変更され、VR画像における切出範囲と除外範囲の位置関係が変わるためである。
S1008では、CPU201は、タッチパネル206aから通知された情報に基づいて、タッチボタンの表示領域を除く左側領域1102、右側領域1103、左側領域1112、右側領域1113のいずれかに対するタッチダウンがあったか否かを判定する。タッチボタンの表示領域を除く左側領域1102、右側領域1103、左側領域1112、右側領域1113のいずれかに対するタッチダウンがあった場合はS1009に進み、そうでない場合にはS1023に進む。
S1009では、CPU201は、メモリ202に保持された、上下タッチムーブまたは左右タッチムーブであることを示すムーブフラグをクリア(オフ)して初期化する。
S1010では、CPU201は、タッチパネル206aから通知された情報に基づいて、ディスプレイ205の上下方向にタッチムーブが行われたか否かを判定する。例えば、単位移動量のタッチムーブがある毎に、上下方向の移動成分が左右方向の移動成分よりも大きければ上下方向にタッチムーブが行われたと判定する。上下方向にタッチムーブが行われた場合はS1011へ進み、そうでない場合はS1016へ進む。
S1011では、CPU201は、メモリ202に保持された、左右方向へのタッチムーブの途中であることを示す左右ムーブフラグがオンとなっているか否かを判定する。左右ムーブフラグがONであると判定した場合は上下方向の移動成分は無視するため、S1016へ進む。左右ムーブフラグがオフであると判定した場合にはS1012に進む。
S1012では、CPU201は、上下方向へのタッチムーブの途中であることを示す上下ムーブフラグをオンに設定(オンとしてメモリ202に記録)し、S1013へ進む。
S1013では、CPU201は、端微調整画面(端表示領域)の水平方向表示と垂直方向表示のうち、現在の表示モードが水平方向表示であるか否かを判定する。水平方向表示である場合にはS1014に進み、そうでなく垂直方向表示である場合にはS1015に進む。
S1014では、CPU201は、左側領域1102、右側領域1103におけるVR画像の表示位置を切出範囲の境界に沿って更新する。これは、360度のVR画像がマッピングされた全球のうち切出範囲として半球が指定されていた場合に、円形となる半球の切出し境界に沿って表示範囲が移動するということである。従ってVR画像における切出範囲と除外領域の位置関係は変わらず、画像領域1102a内に表示されるVR画像の範囲と画像領域1103a内に表示されるVR画像の範囲が変わる。画像領域1102aと画像領域1103aは表示範囲が変わっても互いに切出し境界の180度異なる部分を表示するという関係を保つ。従って、ユーザーが上下に180度分のタッチムーブを行うと、現在設定されている切出範囲の境界の全ての範囲を確認することができる。S1014の処理では切出範囲は変更されないため、メイン領域1101の表示内容は変更されない。
図11(b)に、図11(a)の状態から左側領域1102に対する下向きのタッチムーブを行い、画像領域1102aに表示される画像部分を下に移動(表示範囲を上に移動)するようにスクロールした場合の表示例を示す。左側領域1102に表示される部分は、VR画像のうち水平方向(地平線方向)の境界部分を表示していた図11(a)の状態から、切出範囲の境界に沿って移動し、図11(b)では左側領域1102に空の方向の境界部分が表示されている。右側領域1103に表示される部分は、切出範囲の境界のうち、左側領域1102に表示される空の方向と180度反対側の地面方向の画像となっている。
S1015では、CPU201は、画像領域1112a、画像領域1113aに表示されるVR画像の表示範囲を、上下のタッチムーブに応じて変更する。これは、切出し前のVR画像に対する切出範囲の境界の位置が上下のタッチムーブに応じて移動するということである。切出範囲の角度は180度に維持されるため、左側領域1112と右側領域1113のどちらの位置から上下のタッチムーブが行われても、画像領域1112aと画像領域1113aの両方の表示範囲が変わる。例えば、切出範囲を狭める方向への境界の移動により画像領域1112aの表示範囲が変わると、切出範囲の角度を180度に維持するような、切出範囲を広げる方向への境界の移動により画像領域1113aの表示範囲も変わる。これによって切出範囲が変わり、メイン領域1101に表示される範囲も変更される。ユーザーは、どこまでが切出範囲内となり、どこまでが除外範囲となるのかを境界付近(画像領域1112aと画像領域1113a)で確認しながら上下にタッチムーブを行って、切出範囲を厳密に調整することができる。この処理においては、切出範囲の広さ(180度)は変わらず、切出し前のVR画像における切出範囲の位置が変更される。
S1016では、CPU201は、タッチパネル206aから通知された情報に基づいて、ディスプレイ205の左右方向にタッチムーブが行われたか否かを判定する。例えば、単位移動量のタッチムーブがある毎に、左右方向の移動成分が上下方向の移動成分よりも大きければ左右方向にタッチムーブが行われたと判定する。左右方向にタッチムーブが行われた場合はS1017へ進み、そうでない場合はS1022へ進む。
S1017では、CPU201は、メモリ202に保持された、上下方向へのタッチムーブの途中であることを示す上下ムーブフラグがオンとなっているか否かを判定する。上下ムーブフラグがONであると判定した場合は左右方向の移動成分は無視するため、S1022へ進む。上下ムーブフラグがオフであると判定した場合にはS1018に進む。
S1018では、CPU201は、左右方向へのタッチムーブの途中であることを示す左右ムーブフラグをオンに設定(オンとしてメモリ202に記録)し、S1019へ進む。
S1019では、CPU201は、端微調整画面(端表示領域)の水平方向表示と垂直方向表示のうち、現在の表示モードが垂直方向表示であるか否かを判定する。垂直方向表示である場合にはS1020に進み、そうでなく水平方向表示である場合にはS1021に進む。
S1020では、CPU201は、左側領域1112、右側領域1113におけるVR画像の表示位置を切出範囲の境界に沿って表示位置を更新する。これは、前述のS1014と同様の処理である。ただし、S1014とは左側領域1112、右側領域1113におけるVR画像の表示向きが90度異なる。S1020の処理では切出範囲は変更されないため、メイン領域1101の表示内容は変更されない。
図11(d)に、図11(c)の状態から右側領域1113に対する左向きのタッチムーブを行い、画像領域1113aに表示される画像部分を左に移動(表示範囲を画像領域1113aの向きで右に移動)するようにスクロールした場合の表示例を示す。右側領域1113に表示される部分は、VR画像のうち垂直方向下側(地面方向)の境界部分を表示していた図11(c)の状態から、切出範囲の境界に沿って移動し、図11(d)では右側領域1113に水平方向(地平線方向)の境界部分が表示されている。左側領域1112に表示される部分は、切出範囲の境界のうち、右側領域1113に表示される方向と180度反対側の水平方向(地平線方向)の画像となっている。
S1021では、CPU201は、画像領域1102a、画像領域1103aに表示されるVR画像の表示範囲を、左右のタッチムーブに応じて変更する。これは、切出し前のVR画像に対する切出範囲の境界の位置が左右のタッチムーブに応じて移動するということである。切出範囲の角度は180度に維持されるため、左側領域1102と右側領域1103のどちらの位置から左右のタッチムーブが行われても、画像領域1102aと画像領域1103aの両方の表示範囲が変わる。例えば、切出範囲を狭める方向への境界の移動により画像領域1102aの表示範囲が変わると、切出範囲の角度を180度に維持するような、切出範囲を広げる方向への境界の移動により画像領域1103aの表示範囲も変わる。これによって切出範囲が変わり、メイン領域1101に表示される範囲も変更される。ユーザーは、どこまでが切出範囲内となり、どこまでが除外範囲となるのかを境界付近(画像領域1102aと画像領域1103a)で確認しながら左右にタッチムーブを行って、切出範囲を厳密に調整することができる。この処理においては、切出範囲の広さ(180度)は変わらず、切出し前のVR画像における切出範囲の位置が変更される。
S1022では、CPU201は、タッチパネル206aから通知された情報に基づいて、タッチアップが行われたか否かを判定する。タッチアップが行われた場合はS1023へ進み、そうでない場合はS1010へ戻って処理を繰り返す。
S1023では、CPU201は、タッチパネル206aから通知された情報に基づいて、戻るボタン1106に対するタッチ操作があったか否かを判定する。戻るボタン1106を指定するタッチ操作が無い場合はS1002に戻って処理を繰り返し、戻るボタン1106に対するタッチ操作があった場合には端微調整処理を終了する。
端微調整処理を終了すると、端微調整処理を終了した先の処理でも、端微調整処理で調整した切出範囲は引き継ぐ。従って例えば、端微調整処理で切出範囲の微調整を行い、端微調整処理を終了して図4の切出編集処理(切出編集画面)に戻った場合、その後表示範囲を変更せずに切出ボタン604をタッチすれば、端微調整処理で調整した切出範囲で切出しを行うことができる。なお、端微調整画面でも切出しの指示を受け付けるようにし、端微調整画面で切出しの指示を受け付けた場合に、直接S426またはS427に進むようにしてもよい。また、端微調整画面でも切出し保存の指示を受け付けるようにし、端微調整画面で切出し保存の指示を受け付けた場合に、直接S535に進むようにしてもよい。
図12に、前述した図4のS418の不要箇所指定処理のフローチャートを示す。この処理は、不揮発性メモリ203に記録されたプログラムをメモリ202に展開してCPU201が実行することにより実現する。
S1201では、CPU201は、ディスプレイ205に不要箇所指定用画面を表示する。図13(a)に、不要箇所指定用画面の表示例を示す。前述と同じ符号の表示アイテムは、前述したもの(切出編集画面やプレビュー画面の表示アイテム)と同様である。
ポインタ1301は、不要箇所指定用画面の中央に固定して表示され、VR画像602のうち不要箇所(不要な被写体の位置、除外したい被写体の位置)を指定するためのインジケーターである。ポインタ603、ポインタ621との混同を防ぐため、ポインタ603、ポインタ621とは異なる表示形態で表示される(色、形状、模様などが異なる)。ただし、ポインタ1301は、後述する不要箇所指定用画面に表示された保存ボタン624に対するタッチ操作があった場合には切出範囲の中央を示すポインタとして機能する。不要箇所登録ボタン1302は不要箇所を指定して登録するためのタッチボタンである。不要箇所登録ボタン1302を指定するタッチ操作が行われると、VR画像602のうちその時点でポインタ1301が示す位置の位置情報が不要箇所として登録される(メモリ202に記録される)。不要箇所情報削除ボタン1303は、登録済みの不要箇所の情報を削除するためのタッチボタンである。不要箇所情報削除ボタン1303を指定するタッチ操作が行われると、登録済みの不要箇所の情報が1つ削除(クリア)され、不要箇所としての登録が解除される。マージン設定ボタン1304は、不要箇所を起点とした選択無効範囲のマージンを設定するためのタッチボタンである。終了ボタン1305は、不要箇所指定処理を終了して切出編集処理に戻る指示を受け付けるタッチボタンである。
S1202、S1203は、タッチムーブに応じた表示範囲の変更処理であり、図3のS305、S306と同様の処理であるため詳細な説明は省略する。なお、タッチムーブによってVR画像602の表示範囲が変更されても、ポインタ1301の表示範囲は変更されない。また、不要箇所が登録されていた場合、変更後の表示範囲に選択無効範囲が含まれていれば、表示されるVR画像のうち選択無効範囲を識別可能な(強調した)表示を行う。これについては図13(b)を用いて後述する。
S1204、S1205は、ピンチ操作に応じた表示倍率の変更処理であり、図3のS309、S310と同様の処理であるため詳細な説明は省略する。なお、不要箇所が登録されていた場合、表示倍率の変更後の表示範囲に選択無効範囲が含まれていれば、表示されるVR画像のうち選択無効範囲を識別可能な表示を行う。
S1206では、CPU201は、不要箇所登録ボタン1302に対するタッチ操作があったか否かを判定する。不要箇所登録ボタン1302に対するタッチ操作があった場合にはS1207に進み、そうでない場合にはS1208に進む。S1207では、CPU201は、VR画像602のうち、ポインタ1301が示す位置の位置情報(仰俯角の角度情報と方位角の角度情報)を不要箇所として、対応する不要箇所情報を登録する。不要箇所情報として、位置情報と、登録番号(1から順に登録する度に+1したもの)をメモリ202に記録する。なお、ポインタ1301が示す位置が既に不要箇所として登録済みであった場合にはS1207の処理はスキップする。
不要箇所が新たに登録されると、CPU201は、新たに登録された不要箇所の位置情報を中心に、切出し角度とマージン角度を合わせた角度の領域を選択無効範囲として設定する。選択無効範囲に切出範囲の基準位置を設定すると登録済みの不要箇所が切出範囲に含まれてしまうため、選択無効範囲は切出範囲の基準位置として設定するには不適切な不適切範囲ともいえる。選択無効範囲以外の範囲(選択有効範囲)には、切出範囲の基準位置を設定しても、登録済みの不要箇所が切出範囲に含まれることは無いので、選択無効範囲以外の範囲は切出範囲の基準位置を設定するのに適切な適切範囲とも言える。切出し角度は、本実施形態では180度である。マージン角度は後述するS1210、S1211でユーザーが任意に変更可能であるが、初期値は10度である。切出し角度180度、マージン角度10度である場合は、新たに登録された不要箇所を中心とした周囲100度(切出範囲180の半分の90度+10度)の範囲、合計200度の範囲が選択無効範囲となる。既に他に登録済みの不要箇所があり、選択無効範囲が設定済みであった場合には、設定済みの選択無効範囲に、新たに登録された不要箇所に基づいて設定される選択無効範囲をマージした範囲が選択無効範囲として設定される。選択無効範囲内のいずれかの位置を切出範囲の中心として設定すると、不要箇所として指定した位置の被写体(映像)が切出範囲に含まれてしまう可能性がある。すなわち、選択無効範囲内の各位置は、切出範囲の中心として設定すべきでない位置である。そして、CPU201は、設定された選択無効範囲を識別可能なように、ディスプレイ205に表示されたVR画像602に対して識別表示を行う。
図13(b)に、選択無効範囲の識別表示の表示例を示す。表示されたVR画像602のうち、選択無効範囲1307は斜線によって識別可能に表示されている。なお識別表示の表示形態はこれに限るものではなく、半透過マスクでの表示、モノクロやセピアなどの色変更による表示等でもよい。また、本実施形態では選択無効範囲を強調して表示する例を説明するが、選択無効範囲とそうでない範囲とを識別可能であれば良く、選択無効範囲以外の範囲を強調して表示しても良い。また、VR画像602のうち選択無効範囲の映像を非表示とし、選択無効範囲以外の映像を表示するようにしても良い。
なお、S1207の不要箇所の登録処理において、新たに登録される不要箇所よって、切出し前のVR画像の全範囲が選択無効範囲となってしまう場合は、新たな不要箇所の登録をせずに、追加登録出来ない旨を示すエラー表示を行う。切出し前のVR画像のうち選択無効範囲以外の範囲(選択有効範囲)の広さが閾値未満となってしまう場合も、新たな不要箇所の登録をせずに、追加登録出来ない旨を示すエラー表示を行う。
選択無効範囲が設定されるまでの流れを、図14(a)〜図14(g)のイメージ図を用いて説明する。図14(a)の範囲1450は、VR画像のうちディスプレイ205に表示されている領域(表示範囲)を示し、ポインタ方向1451は仮想球体の中央から見た表示範囲の中央の方向を示しており、ポインタ1301が示す位置に対応する。不要箇所候補1452はユーザーがVR画像のなかで切出しに不要な箇所(除外したい箇所)と考えている部分である。ユーザーは、切出しに不要な箇所がある場合、ディスプレイ205の表示領域の中心に対応するポインタ方向1451を、切出しに不要な箇所1452(切出しに不要と考える被写体)に合わせる。そして、不要箇所登録ボタン1302をタッチする。
タッチして不要箇所が1つ登録された直後のイメージ図が図14(b)である。網掛けで示す選択無効範囲1453は、ポインタ方向1451から、切出し角度1454(180°)分の領域を表したもので、マージンが0度の場合の選択無効範囲を示している。図14(c)に示すように、選択無効範囲内の位置1455を切出しの中心として指定すると、切出範囲は図14(d)の白ぬき部1456の範囲となり、不要箇所1452が含まれてしまう。なお、図14(d)において黒塗り部は除外範囲である。
マージン角度が設定されている場合は、選択無効範囲は不要箇所を中心とした180度(半球)より広い範囲に設定され、図14(e)の選択無効範囲1457のようになる。また、図14(f)のように不要箇所を複数登録した場合(不要箇所1452と、不要箇所1458の2箇所を登録した例)、それぞれを中心に選択無効範囲を算出し、すべての選択無効範囲を合わせた領域が、選択無効範囲となる。
このように設定(決定)された選択無効範囲のうち、ディスプレイ205に表示されている領域を、図13(b)の選択無効範囲1307のように識別可能に表示する。選択無効範囲1307のような識別表示は、不要箇所指定用画面に限らず、図4で説明した切出編集処理の切出編集画面でも表示される。なお、ユーザー操作によって、選択無効範囲の識別表示のオン/オフ(表示/非表示)を切り替えることができてもよい。また、選択無効範囲とそうでない範囲の境界線を表示してもよい。さらに、切出編集画面において、ポインタ603が選択無効範囲にある場合、ポインタ603の表示形態の変更、警告アイコンや警告メッセージなどの表示などで、ポインタ603の位置が切出範囲の中央指定箇所として不適である旨をユーザーに通知してもよい。
S1208では、CPU201は、タッチパネル206aから通知された情報に基づいて、不要箇所情報削除ボタン1303に対するタッチ操作があったか否かを判定する。不要箇所情報削除ボタン1303を指定するタッチ操作があった場合はS1209に進み、そうでない場合はS1210に進む。S1209では、CPU201は、メモリ202から不要箇所情報を取得する。不要箇所情報が1つも登録されていない場合は、処理を中断し、S1210に進む。登録されている場合は、登録番号の一番大きい位置情報(最後に登録された不要箇所)の角度が表示の中心となるように、VR画像602の表示範囲を移動し、その不要箇所情報をメモリ202から削除する。そして、削除された不要箇所に基づく選択無効範囲をクリア(解除)する。すなわち、削除された不要箇所だけに基づく選択無効範囲を、マージされた選択無効範囲から取り除き、取り除いた部分についての識別表示を非表示とする(選択有効範囲として表示する)。不要箇所情報が1つしか登録されていなかった場合に不要箇所情報の削除が行われると、図13(b)に示した選択無効範囲1307のような斜線部は無くなる。
S1210では、CPU201は、タッチパネル206aから通知された情報に基づいて、マージン設定ボタン1304に対するタッチ操作があったか否かを判定する。マージン設定ボタン1304を指定するタッチ操作があった場合にはS1211に進み、そうでない場合にはS1211に進む。S1211では、CPU201は、メモリ202からマージン設定情報を読み出し、マージン設定ダイアログを表示し、マージン設定操作を受け付ける。図13(c)に、マージン設定ダイアログ1306の表示例を示す。マージン設定ダイアログ1306以外の背景の領域は暗く表示するようにしてもよい。CPU201は、マージン設定ダイアログ1306の上下の矢印マークに対するタッチ操作や、上下へのタッチムーブ操作、テンキーを表示して行われる数値入力操作に応じて、マージンの設定数値を変更する。変更された数値はメモリ202に記憶する。マージンの設定数値が変更されると、それに伴って登録済みの不要箇所情報に基づく選択無効範囲の広さも、マージンの変更分だけ変更する。マージンの設定は、1つの不要箇所に基づいて設定される選択無効範囲の広さを、切出範囲の広さ(本実施形態では180度)よりどの程度広くするかの設定である。マージン設定情報の数値の範囲は0〜(360−切出し角度)とし、範囲を超える場合は、数値の変更を行わない。マージン設定ダイアログ1306以外の部分がタッチされた場合は、マージン設定ダイアログ1306を閉じる(非表示とする)。
S1212では、CPU201は、タッチパネル206aから通知された情報に基づいて、保存ボタン624に対するタッチ操作があったか否かを判定する。保存ボタン624を指定するタッチ操作があった場合にはS1213に進み、そうでない場合にはS1219へ進む。
S1213では、CPU201は、メモリ202に不要箇所が登録されているか否かを判定する。不要箇所が1つ以上登録されている場合にはS1215へ進み、1つも登録されていない場合にはS1214へ進む。
S1214では、CPU201は、現在の表示範囲の中央、すなわち切出範囲の中央としている位置(不要箇所指定用画面であればポインタ1301が示している位置)の方位角及び仰俯角に基づいて切出範囲を決定し、切出し処理を行う。より具体的には、360度のVR画像から、表示範囲の中央を中心とした180度の範囲(中心から全方向にそれぞれ90度の範囲)を切出す。そして、切出し済みのVR画像をVRビューでの表示が可能な画像ファイルとして記録媒体208に記録する。切出し後の記録処理は、前述したS535と同様の処理である。S1214の処理を終えると、不要箇所指定処理を終了して図3のS301に戻る。
S1215では、CPU201は、現在の表示範囲の中央、すなわち切出範囲の中央としている位置(不要箇所指定用画面であればポインタ1301が示している位置)が、選択無効範囲内となっているか否かを判定する。選択無効範囲内となっている場合にはS1216へ進み、そうでない場合にはS1214へ進む。
S1216では、CPU201は、ディスプレイ205に、保存ボタン624がタッチされた時点の表示範囲に基づく切出範囲に、登録された不要箇所が収まってしまうことを通知する警告を表示する。図13(d)に、S1216で表示される警告の表示例を示す。ダイアログ1308には、「不要箇所が入りますがよろしいですか?」というメッセージともに、OKボタン1309とキャンセルボタン1310が表示される。ユーザーはこの表示を見て、保存ボタン624に対するタッチ操作を行った時点の表示範囲に基づく切出範囲に、登録された不要箇所が収まってしまうことを認識することができる。
S1217では、CPU201は、OKボタン1309に対するタッチ操作があったか否かを判定する。OKボタン1309に対するタッチ操作があった場合にはS1214に進む。すなわち、切出範囲に不要箇所が収まることをユーザーが承知したので、不要箇所が含まれる切出範囲で切出しを行い、切出し済みのVR画像を保存する。OKボタン1309に対するタッチ操作が無い場合にはS1218に進む。
S1218では、CPU201は、キャンセルボタン1310に対するタッチ操作があったか否かを判定する。キャンセルボタン1310に対するタッチ操作が無い場合にはS1217に戻る。キャンセルボタン1310に対するタッチ操作があった場合には、保存ボタン624がタッチされた時点の表示範囲に基づく切出範囲での切出し保存を行うことなく、ダイアログ1308を非表示としてS1202に戻って処理を繰り返す。
S1215〜S1218の処理により、ユーザーが不用意に選択無効範囲内に切出範囲の中央を指定しまうことを防止することができる。なお、警告を表示することなく(すなわちS1216〜S1218の処理を行わずに)、ポインタが選択無効範囲内であった場合には切出し保存の指示を無視して(無効として)もよい。あるいは、警告だけ表示し、OKかキャンセルかの選択は受けずに切出し保存を行わないようにしてもよい。
なお、図13(a)で説明した各種表示アイテムに加え、ジャンプボタンを表示するようにしてもよい。そして、ポインタ1301が選択無効範囲内である場合に、ジャンプボタンに対するタッチ操作(タッチ位置の移動を伴わないタッチ操作)に応じてポインタ1301が選択無効範囲外に位置するようにVR画像602の表示範囲を変更させてもよい。
また、図13(a)で説明した不要箇所登録ボタン1302の代わりに、あるいは加えて、必要箇所登録ボタンを表示するようにしてもよい。必要箇所登録ボタンに対するタッチ操作に応じて、その時点でポインタ1301が示すVR画像602の位置を、必要箇所の位置情報としてメモリ202に記録する(登録する)。そして、必要箇所の位置情報を中心に、切出し角度からマージン角度を引いた角度の領域以外の領域を、選択無効範囲として算出する。イメージ図で示すと、図14(g)で必要箇所1459を指定すると、選択無効範囲1460のように、切出し角度(例180°)−マージン角度(例10°)の領域以外の領域を、選択無効範囲として設定する。不要箇所や必要箇所が複数ある場合は、すべての指定位置(登録位置)のそれぞれに基づいて算出される選択無効範囲を合わせた領域を、選択無効範囲として設定する。
S1219では、CPU201は、終了ボタン1305に対するタッチ操作があったか否かを判定する。終了ボタン1305を指定するタッチ操作がない場合にはS1202に戻って処理を繰り返し、終了ボタン1305を指定するタッチ操作があった場合には不要箇所指定処理を終了して図4のS419へ進む。
図15(a)〜図15(d)、図16(a)〜図16(c)を用いて、S502で説明した仰俯角有効である場合の切出し処理、S503で説明した仰俯角無効である場合の切出し処理について説明する。
図15(a)にディスプレイ205における切出編集画面の表示例(すなわち切出範囲指定前の表示例)を示す。基準方向(表示開始方向)を方位角0度(例えば北)、仰俯角0度(天頂軸や重力方向軸と垂直な方向、水平方向)とする。図15(a)は、切出編集画面にて、方位角0度、仰俯角を仰角60度程度とした場合のVR画像602の表示例である。すなわち、表示範囲の中央を示すポインタ603が、水平方向よりも上(上空側)を向く方向で表示されている。なお、図15(a)は前述の仰俯角の有効/無効の設定が無効の場合の表示例であり、仰俯角有効/無効ボタン613は仰俯角の設定が無効であることを示す表示形態となっている。
図16(a)は、図15(a)の表示範囲を、360度のVR画像がマッピングされる仮想球体上に模式的に表した図である。視聴者の視聴位置1601を中心として、天頂軸1602回り360度の方位、天頂軸1602と垂直な水平軸回りの360度の仰俯角によって球体上の位置を特定可能である。切出し前の360度のVR画像は球体全体にマッピングされ、球体全体が有効映像範囲1603となる。図16(a)では、視聴者から見て北(すなわち方位角0度)の上空にある被写体1604に視線方向1605を向けた例である。すなわち、表示範囲1607の中心が視線方向1605と交わるような位置に表示範囲1607が設定されている。なお、図16(a)〜図16(c)の表示範囲はデフォルメして図示されており、図15(a)〜図15(d)の表示範囲よりも狭くなっている。しかし、図16(a)〜図16(c)の表示範囲の中央は、図15(a)〜図15(d)に示す表示範囲の中央と同じ基準で図示されている。したがって、表示範囲1607の中央は、図15(a)のポインタ603が示す位置であり、切出し指定位置1606となる。
仰俯角無効で、かつ、表示範囲を図15(a)、図16(a)に示す範囲としている場合に切出ボタン604によって切出範囲の指定操作が行われると、S503の処理によって切出し処理が行われ、図15(b)に示す表示範囲となる。図15(b)は、図15(a)の状態から切出ボタン604がタッチ操作されて切出範囲が設定された直後のプレビュー画面の表示例である。表示範囲の仰俯角は切出し前の60度と異なり、水平方向(仰俯角0度)となっており、ポインタ621も仰俯角0度の位置に表示されている。図15(b)の表示範囲の方位角は、切出し前の図15(a)と同じ0度(北)である。方位角については切出し前と同じとなるので、仮に切出し前に方位角90度(東)を表示範囲としていれば、直後のプレビュー画面の表示範囲、及び切出範囲の中央も方位角90度(東)となる。
図16(b)は、図15(b)の状態の切出範囲を、360度のVR画像がマッピングされる仮想球体上に模式的に表した図である。球体右側の白抜きの半球が切出し後の180度のVR画像となる切出範囲1611(有効映像範囲)である。反対側の半球が切出し後のVR画像からは除外されて破棄される除外範囲1612(無効映像範囲)である。切出範囲1611は中央位置1613を中央とする半球の範囲である。中央位置1613は切出し指定位置1606が示している方位0度、及び切出し指定位置1606にかかわらず仰俯角0度(水平)の位置となる。切出範囲1611の中心位置1613と、切出範囲の指定操作が行われる直前の視線方向1605や表示範囲1607に基づく切出し指定位置1606とは、図示のように一致せず、仰俯角が異なっているが、これは、仰俯角を無効の設定としているためである。切出範囲1611の切出し面1610は、天頂軸1602と平行となる。
仰俯角有効で、かつ、表示範囲が図15(c)、図16(a)に示す位置としている場合に切出ボタン604によって切出範囲の指定操作が行われると、S502の処理によって切出し処理が行われ、図15(d)に示す表示範囲となる。なお、図15(c)は、図15(a)と同じ表示範囲となっているものとする。仰俯角有効/無効の設定だけ図15(a)と異なっており、図15(c)では、仰俯角有効/無効ボタン613の表示形態が、仰俯角有効に設定されていることを示す表示形態となっている。図15(d)は、図15(c)の状態から切出ボタン604がタッチ操作されて切出範囲が設定された直後のプレビュー画面の表示例である。表示範囲の仰俯角は切出し前の60度と同じとなっており、ポインタ621も仰俯角60度の位置に表示されている。図15(d)の表示範囲の方位角は、切出し前の図15(c)と同じ0度(北)である。
図16(c)は、図15(d)の状態の表示範囲と切出範囲を、360度のVR画像がマッピングされる仮想球体上に模式的に表した図である。球体右上側の白抜きの半球が切出し後の180度のVR画像となる切出範囲1611(有効映像範囲)である。反対側の半球が切出し後のVR画像からは除外されて破棄される除外範囲1612(無効映像範囲)である。切出範囲1611の中央位置1613は切出し指定位置1606と方位、仰俯角ともに一致する。これは、仰俯角を有効の設定としているためである。
本実施形態におけるVR画像の切出しでは、仰俯角有効/無効の初期設定は無効の設定であり、図16(b)に示すような切出範囲で切出しが行われる。この切出範囲であれば、有効映像範囲は真上(仰角90度)から真下(俯角90度)までであるため、HMDで視聴する視聴者は、顔の向きを変えるだけ(首を振るだけ)で簡単に切出し後のVR画像の全体を見渡すことができる。仮に、図16(c)のように、真上を超えて後ろ側まで有効映像範囲を有する場合、真上を超えた後ろ側などを視聴するには、顔の向きを、真上を超えた背後側まで向ける必要がある。それには、首を振るだけでなく、上体を反らす、上半身を捻る、立つ向きを変えて背後を向くなどの身体的負担が比較的大きい動作を行わなければならない。すなわち、切出し後のVR画像を姿勢変化に応じた表示範囲の変更によって見渡すのは、身体的に比較的大変である。これに対し、切出範囲を指定する際の表示範囲の仰俯角に関わらず、図16(b)のように水平方向を中心とした範囲を切出すことで、このような身体的負担を軽減し、全体を見渡すのが楽なVR画像を生成することができる。また、人間の目は正面を向いた場合に水平方向前方が見える位置にあるため、視野(すなわち切出範囲)の中心の仰俯角を水平方向とするのは、人体の構造上も違和感が少ない。
また、本実施形態におけるVR画像の切出しでは、仰俯角有効/無効の設定を有効に設定すれば、図16(c)に示すような切出範囲で切出しが行われる。この切出範囲は、切出し後のVR画像において星空全体を見渡せて不要な地面部分を除外できたり、天井から見た室内の広い範囲を見渡せたりするなど、被写体の内容によっては好適である。
なお、仰俯角有効/無効の設定の変更によって、図16(b)に示す切出範囲1611の範囲で切出しが行われるのか、図16(c)に示す切出範囲1611で切出しが行われるのか、というのはユーザーにとって想像し辛く、理解し難い。従って、仰俯角有効/無効の設定の違いによってどのような切出範囲の違いとなるのかを、ユーザーが理解しやすいように模式図を用いてガイダンス表示するとよい。
図17(a)に、ディスプレイ205における切出範囲のガイダンス表示の表示例を示す。図17(a)のガイダンスのダイアログ1700は、例えば仰俯角有効/無効ボタン613がタッチされ、仰俯角の設定が無効から有効に切り替えられた場合(図4のS422、図5のS521)に所定時間(例えば5秒)表示される。ダイアログ1700には、切出し前の模式図を示す図形1701と、切出し後の模式図を示す図形1702と、メッセージ1704が表示される。図形1701は、球体の模式図を用いたガイドであり、切出し前に、球体における切出し指定位置(矢印で示す位置)として仰俯角0度よりも上の位置を指定した場合の模式図を示す。図形1702は、球体の模式図を用いたガイドであって、仰俯角設定が有効の場合の切出範囲を示しており、切出し後は切出し指定位置の仰俯角に基づいた半球が切出されることを示している。メッセージ1704は、切出範囲の仰俯角の設定を有効にした旨を示している。なお、図形1701の代わりに、仰俯角の設定が有効の場合の切出範囲を示す図17(b)の図形1703を表示してもよい。
図17(b)に、ディスプレイ205における切出範囲のガイダンス表示の表示例を示す。図17(b)のガイダンスのダイアログ1700は、例えば仰俯角有効/無効ボタン613がタッチされ、仰俯角の設定が有効から無効に切り替えられた場合(図4のS421、図5のS520)に所定時間(例えば5秒)表示される。ダイアログ1700には、切出し前の模式図を示す図形1701と、切出し後の模式図を示す図形1703と、メッセージ1705が表示される。図形1701は、球体の模式図を用いたガイドであって、切出し前に、切出し指定位置(矢印で示す位置)として仰俯角0度よりも上の位置を指定した場合の模式図を示し、図17(a)の図形1701と同じものである。図形1703は、球体の模式図を用いたガイドであって、仰俯角設定が無効の場合の切出範囲を示しており、切出し後は切出し指定位置の仰俯角に関係なく、球を縦に分割した半球(中央が水平方向となる半球)が切出されることを示している。メッセージ1705は、切出範囲の仰俯角の設定を無効にした旨を示している。なお、図形1701の代わりに、仰俯角の設定が無効の場合の切出範囲を示す図17(a)の図形1702を表示してもよい。
図17(a)、図17(b)に示すようなガイドは、仰俯角の設定を切り替えた場合に限らず、電子マニュアル等において仰俯角の設定に関する説明を表示する場合に表示してもよい。また、設定状態を表す情報、例えば仰俯角有効/無効ボタン613として、図17(a)、図17(b)に示すようなガイドを表示してもよい。また、切出し前を示す図形1701を表示せずに、切出し後を示す図形(仰俯角無効の場合は図形1702、仰俯角有効の場合は図形1703)を表示してもよい。
なお、上述した実施形態では、撮像装置で撮像されたVR画像からより狭い範囲のVR画像を生成する例を説明したが、元のVR画像は撮像装置で撮像されたVR画像に限らない。コンピューターグラフィック(CG)などで作成されたVRコンテンツから、より狭いVRコンテンツを切出して生成する際にも適用可能である。
また、上述の各種フローチャートの処理は、必ずしも組み合わせて実施する必要はなく、それぞれ別々に実施することも可能であり、上述のフローチャートの一部を他の実施態様に組み合わせて採用することも可能である。例えば、上述の半球全体表示、2画面表示処理、端微調整処理などは、切出範囲の中央を指定する手法で切出範囲を指定する図4の切出編集処理と組み合わせずとも、各処理単体で、切出範囲を指定するための処理として実施可能である。すなわち、例えば、図3のS311で切出編集ボタンに対するタッチ操作があったと判定した場合に、図7(a)、図7(b)で説明した半球全体表示に直接移行して切出範囲を指定できるようにしてもよい。図8,9で説明した2画面表示処理や、図10,11で説明した端微調整処理に直接移行して切出範囲を指定できるようにしてもよい。
以上説明した本発明によれば、VRコンテンツから、ユーザーの切出範囲の指定操作に基づいたより狭い範囲のVRコンテンツを、操作性良く生成することができる。
なお、CPU201が行うものとして説明した上述の各種制御は1つのハードウェアが行ってもよいし、複数のハードウェア(例えば、複数のプロセッサーや回路)が処理を分担することで、装置全体の制御を行ってもよい。
また、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。さらに、上述した各実施形態は本発明の一実施形態を示すものにすぎず、各実施形態を適宜組み合わせることも可能である。
また、上述した実施形態においては、本発明を電子機器200(スマートフォンなど)に適用した場合を例にして説明したが、これはこの例に限定されない。本発明は、VRコンテンツからより狭い範囲のVRコンテンツを切出すための操作画面を表示するよう制御できる電子機器であれば適用可能である。例えば、本発明は、パーソナルコンピュータやPDA、携帯電話端末や携帯型の画像ビューワ、プリンタ装置、デジタルフォトフレーム、音楽プレーヤー、ゲーム機、電子ブックリーダー、映像プレーヤーなどに適用可能である。また、本発明は、デジタルカメラ、テレビジョン装置、投影装置、タブレット端末、AIスピーカー、家電装置、車載装置、医療機器などにも適用可能である。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。