以下、実施形態の各例ならびに各種変形例を図面に基づいて説明する。なお、図面においては同様な構成及び機能を有する部分については同じ符号が付されており、下記説明では重複説明が省略される。また、図面は模式的に示されたものであり、各図における各種構造のサイズ及び位置関係などは適宜変更され得る。
<実施形態の一例>
<電子機器の外観の一例>
図1は、電子機器1の外観の一例を概略的に示す斜視図である。図2は、電子機器1の外観の一例を概略的に示す背面図である。電子機器1は、例えば、いわゆる防水機能を有するスマートフォンなどの電子機器である。例えば電子機器1は、基地局及びサーバなどを通じて他の通信装置と通信することが可能であってよい。
図1及び図2に示されるように、電子機器1は外装(ハウジング)4を備えている。例えば外装4は、該電子機器1の前面1aに位置するカバーパネル2と、当該カバーパネル2が取り付けられる機器ケース3とを備えている。電子機器1の外装4の形状は、例えば、平面視において略長方形の板状となっている。
カバーパネル2には、後述する表示パネル121が表示する、文字、記号および図形などの各種情報が表示される表示画面2aが設けられている。カバーパネル2における、表示画面2aを取り囲む周縁部2bの大部分は、例えば、フィルムなどが貼られることによって黒色となっている。これにより、カバーパネル2の周縁部2bの大部分は、表示パネル121が表示する各種情報が表示されない非表示領域となっている。
表示画面2aの裏面には、後述するタッチパネル130が取り付けられている。そして、表示パネル121は、タッチパネル130における表示画面2a側の面とは反対側の面に取り付けられている。つまり、表示パネル121は、タッチパネル130を介して表示画面2aの裏面に取り付けられている。これにより、ユーザは、表示画面2aを指などの操作子で操作することによって、電子機器1に対して各種指示を与えることができる。タッチパネル130と表示パネル121との位置関係は上述した関係に限られない。表示画面2aに対する操作子による操作を検出することができれば、例えば、表示パネル121にタッチパネル130の構成の少なくとも一部が埋め込まれたような構成であってもよい。
図1に示されるように、カバーパネル2の例えば上側端部には、後述する第2撮像装置190が有するレンズが電子機器1の外部から視認できるための第2レンズ用透明部材19が設けられている。また、カバーパネル2の上側端部には、レシーバ穴16が設けられている。また、カバーパネル2の下側端部には、スピーカ穴17が設けられている。そして、電子機器1の底面1c、つまり機器ケース3の底面(下側の側面)には、マイク穴15が設けられている。
図2に示されるように、電子機器1の外装4の背面1b、つまり機器ケース3の背面の例えば上側端部には、後述する第1撮像装置180が有するレンズが、電子機器1の外部から視認できるための第1レンズ用透明部材18が設けられている。
機器ケース3の内部には、複数の操作ボタン14を含む操作ボタン群140が設けられている。各操作ボタン14は、押しボタンなどのハードウェアボタンである。操作ボタンは、「操作キー」あるいは「キー」と呼ばれることがある。各操作ボタン14は、例えば、カバーパネル2の下側端部から露出している。ユーザは、各操作ボタン14を指などで操作することによって、電子機器1に対して各種指示を与えることができる。
複数の操作ボタン14には、例えば、ホームボタン、バックボタン及び履歴ボタンが含まれている。ホームボタンは、表示画面2aにホーム画面(初期画面)を表示させるための操作ボタンである。バックボタンは、表示画面2aの表示を一つ前の画面に切り替えるための操作ボタンである。履歴ボタンは、電子機器1で実行されたアプリケーションの一覧を表示画面2aに表示させるための操作ボタンである。
<電子機器の電気的構成の一例>
図3は、電子機器1の電気的構成の一例を概略的に示すブロック図である。図3に示されるように、電子機器1には、制御部100、無線通信部110、表示装置120、タッチパネル130、操作ボタン群140及びマイク150が設けられている。さらに電子機器1には、レシーバ160、スピーカ170、第1撮像装置180、第2撮像装置190、水中センサ200、加速度センサ210及び電池230が設けられている。電子機器1に設けられたこれらの構成要素のそれぞれは、電子機器1の外装4の内部に収められている。
制御部100は、例えば一種の演算処理装置であって、例えば、電気回路であるCPU(Central Processing Unit)101、DSP(Digital Signal Processor)102及び記憶媒体103などを備えている。制御部100は、電子機器1の他の構成要素を制御することによって、電子機器1の動作を統括的に管理することが可能である。電子機器1は、例えば、SoC(System-on-a-Chip)、MCU(Micro Control Unit)及びFPGA(Field-Programmable Gate Array)等の副処理装置(co-processor)をさらに含んでもよい。また、電子機器1は、CPU(Central Processing Unit)および副処理装置の双方を協働させるか、或いは双方のうちの一方を選択的に用いて、各種の制御をおこなってもよい。
記憶媒体103は、ROM(Read Only Memory)及びRAM(Random Access Memory)などの、CPU101及びDSP102が読み取り可能な非一時的な記録媒体を含む。記憶媒体103が有するROMは、例えば、不揮発性メモリであるフラッシュROM(フラッシュメモリ)である。記憶媒体103には、電子機器1を制御するためのメインプログラム及び複数のアプリケーションプログラム(以降、単に「アプリケーション」と呼ぶことがある)などが記憶されている。制御部100の各種機能は、CPU101及びDSP102が記憶媒体103内の各種プログラムを実行することによって実現される。記憶媒体103には、例えば、音声通話及びビデオ通話を行うための通話アプリケーション、第1撮像装置180あるいは第2撮像装置190を用いて、静止画像あるいは動画像を撮像するための撮像アプリケーションが記憶されている。また、記憶媒体103に記憶されるアプリケーションには、例えば、電子機器1を制御するための制御プログラムPg1が含まれる。
なお、記憶媒体103は、ROM及びRAM以外の、コンピュータが読み取り可能な非一時的な記録媒体を備えていてもよい。記憶媒体103は、例えば、小型のハードディスクドライブ及びSSD(Solid State Drive)などを備えていてもよい。また、記憶媒体103とは別の記憶媒体が設けられてもよい。この記憶媒体は制御部100の外部に設けられてもよい。後述する情報の記憶先は、記憶媒体103であってもよく、他の記憶媒体であってもよい。また、制御部100の全ての機能あるいは制御部100の一部の機能は、その機能の実現にソフトウェアが不要なハードウェアによって実現されても構わない。要するに制御部100が回路によって形成されていればよい。
無線通信部(通信回路)110は、いわゆる通信インターフェースであって、アンテナ110aを有している。無線通信部110は、例えば、電子機器1とは別の通信機器からの信号、あるいはインターネットに接続されたウェブサーバなどの通信装置からの信号を、例えば基地局を介してアンテナ110aで受信することが可能である。無線通信部110は、アンテナ110aでの受信信号に対して増幅処理及びダウンコンバートを行って制御部100に出力することが可能である。制御部100は、入力される受信信号に対して復調処理などを行って、当該受信信号に含まれる各種の情報(例えば音声や音楽などを示す音信号などの)情報を取得することが可能である。
また、無線通信部110は、制御部100で生成された送信信号に対して、アップコンバート及び増幅処理を行って、当該処理後の送信信号をアンテナ110aから無線送信することが可能である。アンテナ110aからの送信信号は、例えば、基地局を通じて、電子機器1以外の携帯電話機あるいはインターネットに接続されたウェブサーバなどの通信装置で受信される。
表示装置120は、表示パネル121及び表示画面2aを備えている。表示パネル121は、例えば、液晶パネルあるいは有機EL(Elector Luminescence)パネルである。表示パネル121は、制御部100に制御されることによって、文字、記号および図形などの各種情報を表示することが可能である。表示パネル121が表示する各種情報は、表示画面2aに表示される。
タッチパネル130は、例えば、投影型静電容量方式のタッチパネルである。タッチパネル130は、表示画面2aに対する指などの操作子による操作を検出することが可能である。ユーザが指などの操作子によって表示画面2aに対して操作を行うと、その操作に応じた電気信号がタッチパネル130から制御部100に入力される。これにより、制御部100は、タッチパネル130からの電気信号に基づいて、表示画面2aに対して行われた操作の内容を特定して、その内容に応じた処理を行うことが可能である。なお、ユーザは、指以外の操作子、例えば、スタイラスペンなどの静電式タッチパネル用ペンで表示画面2aを操作することによっても、電子機器1に対して各種指示を与えることができる。
操作ボタン群140の各操作ボタン14は、ユーザによって操作されると、操作されたことを示す操作信号を制御部100に出力する。これにより、制御部100は、各操作ボタン14からの操作信号に基づいて、当該操作ボタン14が操作されたか否かを判断することができる。制御部100は、操作された操作ボタン14に応じた処理を行うことが可能である。なお、各操作ボタン14は、押しボタンなどのハードウェアボタンではなく、表示画面2aに表示されるソフトウェアボタンであってもよい。この場合には、ソフトウェアボタンへの操作がタッチパネル130によって検出されて、制御部100は、操作されたソフトウェアボタンに応じた処理を行うことが可能である。
マイク150は、電子機器1の外部から入力される音を電気的な音信号に変換して制御部100に出力することが可能である。電子機器1の外部からの音は、例えば、機器ケース3の底面(下側の側面)に設けられたマイク穴15から電子機器1の内部に取り込まれてマイク150に入力される。
スピーカ170は、例えば、タイミックスピーカである。スピーカ170は、制御部100からの電気的な音信号を音に変換して出力することが可能である。スピーカ170から出力される音は、例えば、カバーパネル2の下側端部に設けられスピーカ穴17から電子機器1の外部に出力される。スピーカ穴17から出力される音の音量は、電子機器1から離れた場所でも聞こえるような音量となっている。
レシーバ160は、例えば、ダイナミックスピーカで構成されている。レシーバ160は、制御部100からの電気的な音信号を音に変換して出力することが可能である。レシーバ160は、例えば、受話音を出力する。レシーバ160から出力される音は、例えば、カバーパネル2の上側端部に設けられたレシーバ穴16から外部に出力される。レシーバ穴16から出力される音の音量は、例えば、スピーカ170からスピーカ穴17を介して出力される音の音量よりも小さくなっている。
なおレシーバ160に代えて、圧電振動素子が設けられてもよい。圧電振動素子は、制御部100からの音声信号に基づいて振動することが可能である。圧電振動素子は、例えばカバーパネル2の裏面に設けられており、音声信号に基づく自身の振動によってカバーパネル2を振動させることが可能である。そして、ユーザが自身の耳をカバーパネル2に近づけることにより、カバーパネル2の振動が音声としてユーザに伝達される。レシーバ160に代えて圧電振動素子が設けられる場合には、レシーバ穴16は不要である。
電池230は、電子機器1の電源を出力することが可能である。電池230は、例えば、リチウムイオン二次電池などの充電式の電池である。電池230は、電子機器1が備える制御部100及び無線通信部110などの各種電子部品に対して電源を供給することが可能である。
第1撮像装置180及び第2撮像装置190のそれぞれは、レンズ及び撮像素子などを備えている。第1撮像装置180は制御部100によって制御される。第1撮像装置180は第1レンズ用透明部材18およびレンズを介して撮像素子で光を受光して、撮像画像を生成し、この撮像画像を制御部100へと出力することができる。第2撮像装置190は制御部100によって制御される。第2撮像装置190は第2レンズ用透明部材19およびレンズを介して撮像素子で光を受光して、撮像画像を生成し、この撮像画像を制御部100に出力することができる。これらの撮像画像は静止画像であってもよい。あるいは第1撮像装置180及び第2撮像装置190は撮像画像を繰り返し(周期的に)生成して動画像を生成してもよい。
制御部100は複数の撮像画像に基づいてパノラマ画像を生成してもよい。パノラマ画像とは、撮像装置の撮影範囲よりも広い画像であり、一連に生成された複数の撮像画像に基づいて生成される。例えばユーザが電子機器1を一方向に移動させながら撮像を行うことにより、撮像装置(第1撮像装置180または第2撮像装置190)が複数の撮像画像を生成し、制御部100がこれら複数の撮像画像をパノラマ合成して、当該一方向に長いパノラマ画像を生成する。パノラマ合成の手順は任意の手順を用いればよい。例えば、連続する二つの撮像画像に共通して映る部分を抽出し、この部分が互いに一致するように適宜に座標変換等を用いながら、当該二つの撮像画像を合成する。この処理を複数の撮像画像に対して時系列で順次に行うことで、パノラマ画像を生成することができる。
制御部100は、静止画像、パノラマ画像または動画像を、記憶媒体103の不揮発性メモリ(フラッシュメモリ)あるいは揮発性メモリ(RAM)に記憶することが可能である。
第2撮像装置190が有するレンズは、カバーパネル2に設けられた第2レンズ用透明部材19から視認可能となっている。したがって、第2撮像装置190は、電子機器1のカバーパネル2側、つまり電子機器1の前面1a側に存在する物体を撮像することが可能である。このような第2撮像装置190は、「インカメラ」と呼ばれることがある。
第1撮像装置180が有するレンズは、電子機器1の背面1bに設けられた第1レンズ用透明部材18から視認可能となっている。したがって、第1撮像装置180は、電子機器1の背面1b側に存在する物体を撮像することが可能である。このような第1撮像装置180は、「アウトカメラ」と呼ばれることがある。
水中センサ200は、電子機器1の外装4の少なくとも一部が水中に在る水中状態、および、外装4の少なくとも一部が水中にない水上状態を検出することができる。この水中状態は、例えば、ユーザが手で電子機器1を持った状態で、電子機器1を水中に入れることで生じ得る。なお、電子機器1を水中に入れる目的としては、例えば、電子機器1の第1撮像装置180または第2撮像装置190を用いた水中撮影などが想定され得る。
図4は水中センサ200の内部構成の一例を概略的に示す図である。図4では、水中センサ200は例えば圧力センサ201及び制御部202を有している。圧力センサ201においては、例えば、気体や液体の圧力をステンレスダイヤフラム又はシリコンダイヤフラムなどの部材を介して感圧素子で計測し、計測した値を電気信号に変換し制御部202に出力する。制御部202は、圧力センサ201から入力された電気信号に基づいて圧力値を認識する。制御部202はこの圧力値に応じて水中状態および水上状態を検出することができる。具体的には、制御部202は、例えば、当該圧力値が所定の閾値を超えるときに、水中状態を検出し、当該圧力値が所定の閾値を下回るときに、水上状態を検出してもよい。所定の閾値は、例えば、圧力センサ201が水中に在るときの圧力値を予め測定することで、該圧力値に適宜設定されてよい。なお制御部202の機能は制御部100によって実現されても構わない。この場合、圧力センサ201は圧力値を制御部100に出力する。
また水中センサ200は、例えば、静電容量を検出可能なセンサ及び制御部(例えば制御部100)などで構成されていてもよい。静電容量を検出可能なセンサは、自身と物体との間の静電容量を測定し、測定した静電容量の値を電気信号に変換し、制御部100に出力する。制御部100は、静電容量を検出可能なセンサから入力された電気信号に基づいて、静電容量の値を認識する。制御部100は、例えば、測定した静電容量の値に応じて水中状態および水上状態を検出する。制御部100は、例えば、測定した静電容量の値が所定の閾値を超えると、水中状態を検出し、測定した静電容量の値が閾値を下回ると、水上状態を検出してよい。所定の閾値は、例えば、当該センサが水中に在るときの静電容量の値を予め測定することで、該静電容量の値に適宜設定されてよい。静電容量を検出可能なセンサは、例えば、タッチセンサ等である。静電容量を検出可能なセンサとして、タッチパネル130を用いてもよい。また、水中センサ200は、圧力センサ、静電容量を検出可能なセンサ及び制御部(例えば制御部100)などで構成されてもよい。
以下では、一例として水中センサ200が圧力センサ201を備える場合について説明する。
加速度センサ210は、電子機器1に生じる加速度を検出し、検出した加速度の値を電気信号に変換して制御部100に出力することが可能である。例えば加速度センサ210は静電容量方式、ピエゾ抵抗方式または熱検知方式などの方式に基づいて、加速度を検出することができる。この加速度センサ210は、例えば、互いに略直交するXYZ軸の加速度成分を検出する。制御部100は、加速度センサ210から入力された電気信号に基づいて加速度の値を認識する。制御部100はこの加速度の値に応じて電子機器1(外装4)の基準面に対する空間的な傾きを求めることができる。例えば電子機器1の傾きは、次で説明する角度によって表すことができる。まず座標について述べる。平面視における電子機器1の短手方向を例えばX軸に設定し、平面視における電子機器1の長手方向に例えばY軸に設定する。Z軸は電子機器1の法線方向に設定される。電子機器1の傾きは、例えば、XY平面が所定の基準面(例えば地面)と一致する状態、つまり電子機器1を例えば水平に載置した状態からの、X軸周りの回転角およびY軸周りの回転角によって表すことができる。重力加速度は常に鉛直方向に働くので、3方向の加速度を検出することで、制御部100は電子機器1の傾きを求めることができる。
なお電子機器1の傾きを検出する他の傾きセンサが設けられてもよい。例えば傾きセンサとして、ジャイロセンサを設けてもよい。ジャイロセンサは、例えば、振動ジャイロセンサであって、電子機器1の回転に伴う角速度を検出する。ジャイロセンサは、検出した角速度の値を電気信号に変換し、制御部100に出力する。制御部100は、ジャイロセンサから入力された電気信号に基づいて角速度の値を認識する。制御部100は角速度の積分に基づいて、電子機器1の傾きを求める。精度を向上すべく、加速度センサ210およびジャイロセンサの両方が設けられてもよい。
また例えば地磁気センサが設けられてもよい。地磁気センサは地磁気を検出することが出できる。例えば地磁気センサは、磁場に応じて起電力が生じるホール素子を有していてもよい。地磁気センサはこのホール素子に生じる起電力に基づいて地磁気を検出する。例えば地磁気センサは互いに直交するXYZ軸の地磁気成分を検出することができる。北極はS極として機能し、南極はN極として機能するので、検出された地磁気成分に基づいて、電子機器1の傾きを検出することができる。精度を向上すべく、加速度センサ210、ジャイロセンサおよび地磁気センサのすくなくとも二つが設けられてもよい。
またユーザは電子機器1を空間的に移動させることがある。例えばユーザは電子機器1を移動させながら撮像を行うことがある。このような移動に伴って、電子機器1には加速度が生じ得る。制御部100は、この電子機器1に生じる加速度に基づいて電子機器1の移動速度を求めることも可能である。例えば制御部100は加速度の時間積分に基づいて移動速度を求めることができる。
<水上水中撮影>
本実施の形態では、ユーザが電子機器1を空間的に移動させながら撮像を行うことを想定する。より具体的な例として、ユーザは、電子機器1を水上から水中へと移動させながら、または、水中から水上へと移動させながら、撮像を行う。つまりユーザは水上撮影と水中撮影とを一連に行う。
図5および図6は、電子機器1を水上から水中へと移動させながら撮像を行う様子の一例を概略的に示す図である。図5および図6では、水上の領域UW1および水中の領域IW1が模式的に示されている。図7は、図5および図6の撮像によって生成される撮像画像の一例を概略的に示す図である。図7では、水中センサ200の検出結果の一例も示されている。なおこの撮影において、第1撮像装置180および第2撮像装置190のいずれを用いてもよいものの、以下では、代表的に第1撮像装置180を用いて説明する。
図5の例示では、平面視における電子機器1の長手方向が鉛直方向に沿い、かつ、第1レンズ用透明部材18が電子機器1の上方に位置する姿勢で、電子機器1が保持される。また圧力センサ201は図5において例えば第1レンズ用透明部材18よりも右上に位置している。
図5の左上の状態では、第1レンズ用透明部材18が水上に位置している。なお第1レンズ用透明部材18の位置を第1撮像装置180の位置と把握してもよい。よって以下では、例えば第1レンズ用透明部材18の位置を第1撮像装置180の位置として説明することがある。第1レンズ用透明部材18が水上に位置しているときには、第1撮像装置180は水上の景色を撮像する。つまり、このときに生成される撮像画像は、水上の景色が映る水上画像FU1である(図7も参照)。
ユーザは電子機器1を上記姿勢で水中へ向かって移動させるものの、第1レンズ用透明部材18が水上に位置する限り、水上の景色が撮影されて、水上画像FU1が繰り返し生成される。また図5の左上の状態では、圧力センサ201も水上に位置している。よって水中センサ200は水上状態を検出している。したがって、図7に示すように、初期的には、水中センサ200は水上状態を検出し、かつ、第1撮像装置180は水上画像FU1を生成する。
図5の右上の状態では、第1レンズ用透明部材18が水面に達している。つまり第1撮像装置180が水面に達している。このとき第1撮像装置180は水面を撮像する。よって、このときに生成される撮像画像は水面画像FW1である(図7の水面タイミングt1も参照)。またこの状態でも、圧力センサ201は水上に位置しているので、水中センサ200は水中状態を検出せずに、水上状態を検出している。
続いて、ユーザは電子機器1を更に水中の深部へと移動させる。これにより、第1レンズ用透明部材18(つまり第1撮像装置180)は水中に浸かるので、以後は、第1撮像装置180は水中の景色が映る水中画像FD1を繰り返し生成する。図5の左下の状態において、圧力センサ201が水中に達する。このとき、圧力センサ201によって検出される圧力値が閾値を超える。つまり圧力値が閾値よりも小さい状態から大きい状態へと遷移する。よってこのとき水中センサ200は水中状態を検出する。つまり、水中センサ200の検出結果が水上状態から水中状態へと遷移する(図7の遷移タイミングt2も参照)。
続いて、ユーザは電子機器1を更に水中の深部へと移動させる。図5の右下の状態では、圧力センサ201も第1レンズ用透明部材18も水中に浸かっているので、水中センサ200は引き続き水中状態を検出し、また第1撮像装置180は水中画像FD1を繰り返し生成する。
以上のように、水中センサ200が水上状態から水中状態を検出した遷移タイミングt2は、第1レンズ用透明部材18が水面に達する水面タイミングt1とは相違する。
図6の例示では、電子機器1の傾きが図5に示すそれと相違する。図6の例示では、電子機器1の長手方向が水平方向に沿い、かつ、圧力センサ201が第1レンズ用透明部材18よりも上方に位置している。図6の例示でも図5と同様に、第1レンズ用透明部材18は水上から水面を経て水中へと移動するので、第1撮像装置180は水上画像FU1から水面画像FW1を経て水中画像FD1を生成する。また図6の例示でも、第1レンズ用透明部材18(つまり第1撮像装置180)が水面に達した状態では、圧力センサ201は水上に位置している(図6の上から2番目の状態を参照)。つまり図7に示すように、水面タイミングt1において水中センサ200は水上状態を検出する。その後、図6の上から3番目の状態において、圧力センサ201が水中に達する。よって、水面タイミングt1よりも後の遷移タイミングt2において、水中センサ200の検出結果が水上状態から水中状態へと遷移する。
以上のように、図5および図6の場合には、遷移タイミングt2は水面タイミングt1よりも後である。ただし、水面タイミングt1と遷移タイミングt2との間の期間T1は図5および図6の間で相違し得る。なぜなら、水面タイミングt1から遷移タイミングt2までの電子機器1の移動距離が、図5および図6の間で相違するからである。言い換えれば、遷移タイミングt2における、第1レンズ用透明部材18の中心と水面との距離D1が図5および図6の間で相違するからである。例えば図5に示す距離D1は図6に示す距離D1よりも短い。よって、電子機器1の移動速度が等しければ、水面タイミングt1と遷移タイミングt2との間の期間T1は、図5に比べて図6の方が長くなる。つまり距離D1は電子機器1の傾きによって相違するので、期間T1は電子機器1の傾きに依存する、とも説明できる。
また期間T1は、簡単には、電子機器1の移動速度を分母とした距離D1と移動速度との商で表されることから、電子機器1の移動速度が高いほど、期間T1は短い。
図8および図9は、電子機器1を水上から水中へと移動させながら撮像を行う様子の他の例を概略的に示す図である。図10は、図8および図9の撮像において生成される撮像画像の一例を概略的に示す図である。図8および図9では、電子機器1の傾きがそれぞれ図5および図6に示す電子機器1の傾きと相違する。
図8の例示では、図5と同様に電子機器1の長手方向が鉛直方向に沿うものの、圧力センサ201は第1レンズ用透明部材18よりも下方に位置している。図9の例示では、図6と同様に電子機器1の長手方向が水平方向に沿うものの、圧力センサ201は第1レンズ用透明部材18よりも下方に位置している。したがって、これらの傾きでは、圧力センサ201が水中に達した状態において、第1レンズ用透明部材18は水上に位置している(図8および図9の2番目の状態を参照)。よって水中センサ200の検出結果が水上状態から水中状態へと遷移する遷移タイミングt2において、第1撮像装置180は水上画像FU1を生成する(図10参照)。その後、第1レンズ用透明部材18が水面に達するまでは、水中センサ200が水中状態を検出しているにも関わらず、第1撮像装置180は水上の景色を撮像し続ける。つまり第1撮像装置180は水上画像FU1を生成し続ける。その後、第1レンズ用透明部材18が水中に達すると、第1撮像装置180は水面画像FW1を生成する。その後、第1レンズ用透明部材18が水中の深部へと移動することで、第1撮像装置180は水中画像FD1を生成する。
以上のように、図8および図9の例示でも、水面タイミングt1は遷移タイミングt2と相違する。ただし、図8から図10の例示では、水面タイミングt1は遷移タイミングt2よりも後に生じる。
したがって、水中センサ200の検出結果のみを用いて、水面タイミングt1において生成される水面画像FW1を特定することは難しい。そこで本実施の形態では、高い精度で水面画像FW1を特定することを企図する。以下に具体的に説明する。
<制御部の構成および動作の一例>
図11は、制御部100の内部構成の一例を概略的に示す機能ブロック図である。制御部100は、撮像処理部100aを備えている。
撮像処理部100aは第1撮像装置180および第2撮像装置190を用いて撮像処理を行うことができる。撮像処理部100aは、例えば、記憶媒体103に記憶されたアプリケーションを読み出して実行することにより、撮像処理を行うことができる。
撮像処理部100aは、例えば、撮像指示部111、画像特定部112および画像処理部115を備えている。
撮像指示部111はユーザの入力に基づいて第1撮像装置180および第2撮像装置190へと指示を行うことができる。この入力は例えばタッチパネル130または操作ボタン群140を用いて行われる。この入力の種類の具体例としては、撮像装置(第1撮像装置180か第2撮像装置190か)の指定、撮像の種類(静止画像、パノラマ画像および動画像)の指定、および、撮像タイミング(静止画像ではシャッタタイミング、パノラマ画像および動画像では撮像の開始タイミングまたは終了タイミング)の指定などの入力を例示できる。
撮像指示部111は、ユーザによって指定された撮像装置へと、撮像の種類および撮像タイミングを指示することができる。指示された撮像装置は当該指示に基づいて撮像を行う。例えばユーザは、第1撮像装置180を指定し、撮像の種類としてパノラマ画像を指定しつつ、電子機器1が水上に在る状態において撮像の開始を指示する。撮像指示部111は、ユーザの入力に応じて、第1撮像装置180に対してパノラマ画像の撮影開始を指示する。これに応じて第1撮像装置180は、撮像を開始して、撮像画像を繰り返し生成し、これを制御部100へと出力する。またユーザは電子機器1を水中へと移動させて、水中において撮像の終了を指示する。撮像指示部111は、ユーザによる終了指示に応じて、第1撮像装置180へと撮像の終了を指示する。これに応じて第1撮像装置180は撮像を終了する。これにより、パノラマ画像の元となる複数の撮像画像を得ることができる。
画像特定部112は水中センサ200の検出結果および加速度センサ210の検出結果に基づいて、複数の撮像画像のうちから水面画像FW1を特定することができる。具体的な特定方法の一例は後に詳述するものの、まずその考え方について概説する。
上述のように、水面タイミングt1と遷移タイミングt2との間の期間T1は距離D1(つまり電子機器1の傾き)、および、電子機器1の移動速度に依存する。そして、この電子機器1の傾き及び移動速度は加速度センサ210の検出結果に基づいて求めることができる。したがって、画像特定部112はこの期間T1を加速度センサ210の検出結果に基づいて求めることができる。
また上述のように、水面タイミングt1が遷移タイミングt2よりも前か後かは、電子機器1の傾きに依存する。よって、画像特定部112は水面タイミングt1が遷移タイミングt2よりも前か後かを、加速度センサ210の検出結果に基づいて判断することがきる。
したがって、画像特定部112は水面タイミングt1を水中センサ200の検出結果および加速度センサ210の検出結果に基づいて求めることができ、水面タイミングt1に基づいて水面画像FW1を特定することができる。そしてこのように水中センサ200の検出結果のみならず、加速度センサ210の検出結果をも用いているので、水面タイミングt1の特定精度を向上できる。以下に、その特定方法の具体例について説明する。
<水面画像の特定方法の具体例>
期間T1は、期間T1における電子機器1の移動速度V1と、期間T1における電子機器1の移動距離(距離D1)とに基づいて求めることができる。よって、まず距離D1と移動速度V1とを求める。図11の例示では、撮像処理部100aは距離特定部113と移動速度算出部114とを更に備えている。
距離特定部113は遷移タイミングt2における電子機器1の傾きに基づいて、距離D1を求めることができる。距離D1は上述のように電子機器1の傾きに依存する。この距離D1と電子機器1の傾きとの対応関係は、例えば予め実験またはシミュレーションにより求めることができる。そして、この対応関係が予め記憶媒体(例えば記憶媒体103など)に記憶される。
距離特定部113は、水中センサ200の検出結果が水上状態から水中状態へ遷移したときの電子機器1の傾き(つまり遷移タイミングt2における電子機器1の傾き)を、加速度に基づいて求める。なお距離特定部113は、加速度センサ210の検出結果のみならず、加速度センサ210、ジャイロセンサおよび地磁気センサの検出結果の少なくともいずれか一つにも基づいて、電子機器1の傾きを求めてもよい。距離特定部113は、求めた傾きと、記憶媒体に記憶された対応関係とに基づいて、距離D1を特定し、これを画像特定部112へと出力する。
なおパノラマ画像を生成するための撮像時には、ユーザは電子機器1の傾きをほとんど変化させずに、電子機器1を移動させることが多い。そこで距離特定部113は、ユーザによるパノラマ撮像の開始指示の入力をトリガとして、電子機器1の傾きを求め、これを遷移タイミングt2における電子機器1の傾きとみなしても構わない。
移動速度算出部114は加速度センサ210によって検出された加速度に基づいて、電子機器1の移動速度V1を算出することができる。例えば移動速度算出部114は加速度を積分することで、移動速度V1を算出する。またここでは、簡単のために、期間T1における移動速度V1は一定と考える。この場合には、遷移タイミングt2における移動速度V1を期間T1における移動速度V1と考えることができる。よって移動速度算出部114は、遷移タイミングt2において算出された移動速度V1を、画像特定部112へと出力する。
画像特定部112は距離D1および移動速度V1に基づいて期間T1を算出する。例えば、画像特定部112は距離D1から移動速度V1を除算することで、期間T1を算出する。
次に、画像特定部112は水面タイミングt1が遷移タイミングt2よりも前か後かを、電子機器1の傾きに基づいて判断する。例えば、水面タイミングt1が遷移タイミングt2よりも前か後かの情報と、電子機器1の傾きとの対応関係は予め記憶媒体(例えば記憶媒体103など)に記憶される。そして、画像特定部112は、遷移タイミングt2における電子機器1の傾きと、記憶媒体に記憶された対応関係とに基づいて、遷移タイミングt2が水面タイミングt1よりも前か後かを判断する。例えば電子機器1の傾きが図5の傾きであれば、画像特定部112は、水面タイミングt1が遷移タイミングt2よりも前であると判断する。
水面タイミングt1が遷移タイミングt2よりも前であると判断したときには、画像特定部112は、算出した期間T1を遷移タイミングt2から減算して、水面タイミングt1を算出する。一方で水面タイミングt1が遷移タイミングt2よりも後であると判断したときには、画像特定部112は、算出した期間T1を遷移タイミングt2に加算して、水面タイミングt1を算出する。そして、画像特定部112は水面タイミングt1に最も近いタイミングで撮像された撮像画像を、水面画像と特定する。
以上のように、本電子機器1は、水中センサ200の検出結果のみならず、加速度センサ210の検出結果をも用いて水面画像を特定している。したがって、高い精度で水面画像を特定することができる。つまり、実際の水面画像FW1が生成された水面タイミングt1に近いタイミングで生成された撮像画像を、水面画像と特定することができる。理想的には、特定した水面画像は実際の水面画像FW1と一致する。その一方で、センサの検出誤差などの理由により、特定した水面画像は水面画像FW1と相違し得る。よって、以下では、特定した水面画像を水面画像FW2とも呼ぶ。
また画像特定部112は、特定した水面画像FW2を境界として、その前後に撮像された撮像画像を適宜に水上画像および水中画像と特定してもよい。例えば初期的に水上状態が検出されていたときには、特定した水面画像FW2よりも前の撮像画像を水上画像と特定し、特定した水面画像FW2よりも後の撮像画像を水中画像と特定してもよい。上述のように、高い精度で水面画像FW2を特定できるので、撮像画像を高い精度で水上画像および水中画像へと分類することができる。以下では、特定した水上画像および水中画像を水上画像FU2および水中画像FD2とも呼ぶ。
これにより、水上画像FU2および水中画像FD2に対して、それぞれに水上および水中に適した画像処理を、より適切に行うことができる。つまり、撮像画像が本来は水上画像FU1であるのにも関わらず、水中画像FD2と誤判断されて、水中用の画像処理が行われたり、またその逆に、本来は水中画像FD1であるにも関わらず、水上用の画像処理が行われたりすることを、抑制することができる。
画像処理部115は、撮像画像に基づいてパノラマ画像を生成することができる。また撮像画像について種々の画像処理を施すこともできる。例えば水上画像FU2に対して水上画像用の画像処理を行ったり、あるいは、水中画像FD2に対して水中画像用の画像処理を行ったりすることができる。これらの画像処理の具体例は後に詳述する。
<電子機器1の具体的な動作の一例>
図12は撮像処理部100aの具体的な動作の一例を示すフローチャートである。図12の例示では、ユーザが水上から水中へと電子機器1を移動させつつパノラマ撮影を行う場合の動作の一例を示している。まずステップST1にて、撮像指示部111はユーザによってパノラマ撮影の開始指示が入力されたか否かを判断する。なお複数の撮像装置が設けられている場合には、この開始指示の入力に伴って、撮像装置を指定する入力も行われてもよい。パノラマ撮影の開始指示が入力されていないと判断したときには、撮像指示部111はステップST1を再び実行する。パノラマ撮影の開始指示が入力されたと判断したときには、ステップST2にて、距離特定部113は電子機器1の傾きを検出し、移動速度算出部114は電子機器1の移動速度を算出する。
次に、ステップST3にて、撮像指示部111は例えば第1撮像装置180へと撮像開始の指示を出力する。第1撮像装置180はこの指示に応じて撮像を行い、撮像画像を生成する。生成した撮像画像は撮像処理部100aへと出力される。なおステップST2,ST3の実行順序は逆であってもよく、あるいは、ステップST2,ST3が並行して実行されてもよい。
次に、ステップST4にて、画像特定部112は水中センサ200の検出結果が水上状態から水中状態へと遷移したか否かを判断する。否定的な判断がなされると、撮像処理部100aはステップST2を再び実行する。なお繰り返し行われるステップST3の度に、撮像指示部111は指示を出力しなくてもよい。例えば第1撮像装置180は、一旦撮像開始の指示を受けた後には、後述する撮影終了の指示を撮像指示部111から受け取るまで、繰り返し撮像を行えばよい。
ステップST4にて肯定的な判断がなされたときに、つまり、水中センサ200の検出結果が水上状態から水中状態へと遷移したと判断したときに、ステップST5にて、画像特定部112は上述のように水面画像FW2を特定する。
次にステップST6にて第1撮像装置180は撮像を行う。次にステップST7にて撮像指示部111は、ユーザによってパノラマ撮影の終了指示が入力されたか否かを判断する。パノラマ撮影の終了指示が入力されていないと判断したときには、第1撮像装置180はステップST6を再び実行する。パノラマ撮影の終了指示が入力されたと判断したときには、ステップST8にて撮像指示部111は例えば第1撮像装置180へと撮像終了を指示する。第1撮像装置180はこの指示に応じて撮像を終了する。次に、ステップST9にて、画像特定部112は、生成した撮像画像を水上画像FU2および水中画像FD2に分類し、画像処理部115は例えば水上画像FU2および水中画像FD2に対して異なる画像処理を行う。画像処理の具体例については後に詳述する。次にステップST10にて、画像処理部115は画像処理後の撮像画像に基づいて、パノラマ画像を生成する。
なおステップST9の画像処理を行うことなく、ステップST10を実行してもよい。また後に述べるように、パノラマ画像のうち、水上の景色が映る水上領域と、水中の景色が映る水中領域に対して、互いに異なる画像処理を行ってもよい。
図13はパノラマ撮影において最初に生成された撮像画像の一例を概略的に示す図である。図13の例示では、太陽G1と山G2が撮像画像に映されている。図13では、撮像画像の最下端において山G2の麓が映っている。その後、ユーザは例えば電子機器1を鉛直方向に沿って電子機器1を水中へと移動させ、水中においてパノラマ撮影を終了する。これにより、パノラマ画像が生成される。図14はこのパノラマ画像の一例を概略的に示す図である。このパノラマ画像には、図13の撮像画像よりも鉛直方向に長い景色が映っている。例えばパノラマ画像において、太陽G1および山G2の下方には、水中の景色G3が映っている。
なお図13および図14の例示では、鉛直方向における画像の高さを同じにしているので、その分、パノラマ画像の水平方向における幅が狭い。図14では、パノラマ画像の両端には景色が表示されておらず、例えば両側において所定の色(例えば黒)が表示されている。
<電子機器の移動方向>
上述の具体的な例では、ユーザは電子機器1を水上から水中へと移動しながら撮影を行った。しかしながら、これは必須要件ではなく、ユーザは電子機器1を水中から水上へ移動させてもよい。この場合、時間の流れを逆にして図5から図10を把握してもよい。つまり、図5、図6、図8および図9においては、ブロック矢印を逆に把握して、電子機器1の移動を把握すればよく、図7および図10においては、時間軸の矢印を逆に把握して、撮像画像および水中センサ200の検出結果を把握すればよい。
この場合、図5から図7の例示において、水面タイミングt1は遷移タイミングt2よりも後になり、図8から図10の例示において、水面タイミングt1が遷移タイミングt2よりも前になる。つまり、水面タイミングt1が遷移タイミングt2よりも前か後かは、電子機器1の傾きのみならず、電子機器1の移動方向にも依存する。表1は、電子機器1の傾きと水中センサ200の検出結果と、水面タイミングt1および遷移タイミングt2との関係を示している。
表1では、図5、図6、図8および図9の傾きをそれぞれ「上」「左」「下」「右」と表記している。また水中センサ200の検出結果が水上状態から水中状態へと遷移することを「水上→水中」と表記し、当該検出結果が水中状態から水上状態へと遷移することを「水中→水上」と表記している。
電子機器1の移動方向は、水中センサ200の検出結果に基づいて判別できる。例えば水中センサ200の検出結果が水中状態から水上状態へと遷移した場合、電子機器1は水中から水上へと移動していることが分かる。
画像特定部112は、遷移タイミングt2における電子機器1の傾きと、遷移方向(つまり電子機器1の移動方向)とに基づいて、水面タイミングt1が遷移タイミングt2よりも前か後かを判断してもよい。例えば電子機器1の傾きが「上」であり、水中センサ200の検出結果が水上状態から水中状態へと遷移したときには、水面タイミングt1は遷移タイミングt2よりも前であると判断できる。これにより、電子機器1の移動方向に応じて、適切に水面画像FW2を特定することができる。
なおパノラマ撮影においては、一方向への移動のみが行われることが多いものの、動画撮影では複数方向への移動を伴うことも多い。例えば、ユーザは電子機器1を水上および水中へと交互に繰り返し移動しながら、動画撮影することもある。そこで、画像特定部112は、水中センサ200の検出結果が変わるたびに、その検出結果と加速度センサ210の検出結果に基づいて、水面画像FW2を特定してもよい。これにより、水上画像FU1および水中画像FD1が交互に繰り返し生成される場合でも、画像特定部112は高い精度でこれらを特定することができる。もちろん、パノラマ撮影においても複数方向への移動を行っても構わない。
<画像処理の具体例>
<明るさの第1補正例>
水中では水上に比べて暗い。そこで画像処理部115は、明るさを向上する画像処理を水中画像FD2に対して行ってもよい。明るさを示すパラメータとしては、例えば明度を採用してもよい。この場合、画像処理部115は水中画像FD2の各画素において、赤の成分、青の成分および緑の成分のうち最大の成分および最小の成分の少なくともいずれか一方の値を増大させてもよい。これにより、水中画像FD2の明度を向上することができる。当該値の増大量は水中画像FD2の全画素において互いに等しくてよい。つまり、水中画像FD2の明度を全体的に向上してもよい。
また明るさを示すパラメータとして輝度を採用してもよい。この場合、画像処理部115は水中画像FD2の各画素において輝度を増大させる。輝度は例えば赤の成分、青の成分および緑の成分に基づいて算出すればよい。なお輝度の増大量は水中画像FD2の全画素において互いに等しくてもよい。
水中画像FD2の明るさをどの程度増大させるかは、水上画像FU2の明るさに基づいて決定してもよい。例えば画像処理部115は、水上画像FU2の明るさと水中画像FD2の明るさとの差が所定の明るさ基準値よりも小さくなるように、水中画像FD2の明るさを調整してもよい。なお当該差を算出する元となる水上画像FU2および水中画像FD1の明るさは、複数の撮像画像についての平均であってもよい。例えば複数の水上画像FU2の各画素の明るさの総和を、1枚当たりの画素数と水上画像FU2の枚数との積で除算した値を、水上画像FU2の明るさとして採用できる。水中画像FD2も同様である。以下では、当該差を算出する元となる水上画像FU2および水中画像FD2の明るさを、それぞれ水上明るさ、および、水中明るさとも呼ぶ。
以上のように、水上明るさと水中明るさとの差を小さくするので、ユーザはパノラマ画像を見やすい。また動画像である場合にも、急激な明るさの変化が生じにくくなるので、ユーザは動画像を見やすい。
図15は画像処理部115の具体的な動作の一例を示すフローチャートである。ステップST21にて、画像処理部115は水中明るさと水上明るさとの差を算出する。次にステップST22にて、画像処理部115は当該差が明るさ基準値よりも大きいか否かを判断する。明るさ基準値は例えば予め記憶媒体(例えば記憶媒体103など)に記憶されてもよい。この点は後述する他の基準値でも同様であるので、繰り返しの説明を避ける。当該差が明るさ基準値よりも大きいと判断したときには、ステップST23にて、画像処理部115は当該差が明るさ基準値よりも小さくなるように、明るさを増大する画像処理を水中画像FD2に対して行う。その後、処理を終了する。一方で、当該差が明るさ基準値よりも小さいと判断したときには、画像処理部115はステップST23を実行することなく、処理を終了する。
なおパノラマ画像は、複数の撮像画像のそれぞれの一部が採用されて形成される。例えば図14のパノラマ画像では、複数の撮像画像の一部が鉛直方向に並んで形成される。このパノラマ画像のうち、水上画像FU2のそれぞれの一部が採用された水上領域U2は、水上の景色が写された領域であると考えることができる。同様に、水中画像FD2のそれぞれの一部が採用された水中領域D2は水中の景色が写された領域であると考えることができる。例えば図13では、水面画像FW2の一部が採用された水面G4よりも上方の領域が水上領域U2であり、水面G4よりも下方の領域が水中領域D2である。
このようなパノラマ画像においては、そのパノラマ画像の元となる撮像画像に対して上記の画像処理を行うのではなく、生成されたパノラマ画像に対して上記の画像処理を行ってもよい。つまり、画像処理部115は、水上領域U2の明るさと水中領域D2の明るさとの差が明るさ基準値よりも小さくなるように、明るさを増大する画像処理を水中領域D2に対して行ってもよい。例えば画像処理部115は、パノラマ画像を生成するときに、水上領域U2および水中領域D2を示す領域情報を生成する。画像処理部115は領域情報に基づいて水上領域U2および水中領域D2の明るさをそれぞれ算出し、その差を算出する。この水上領域U2の明るさは、水上領域U2を構成する画素の明るさの総和を、その画素数で除算することで算出されてもよい。水中領域D2の明るさも同様である。そして画像処理部115は、当該差が明るさ基準値よりも小さくなるように、明るさを増大させる画像処理を、パノラマ画像の水中領域D2に対して行う。画像処理部115は例えば水中領域D2を構成する全画素において、明るさを同じだけ増大させる。
これにより、水上領域U2の明るさと水中領域D2の明るさとの差を小さくできるので、ユーザはパノラマ画像を見やすい。またパノラマ画像の元となる撮像画像に対して処理を行う場合に比べて、処理対象となる画素の数が少ないので、処理の負担は小さい。
<明るさの第2補正例>
画像処理部115は、上記画像処理後の複数の撮像画像を動画像として、または、上記画像処理後のパノラマ画像を記憶媒体(例えば記憶媒体103)に記憶する。つまり、明るさの調整が行われた画像(以下、過去画像とも呼ぶ)が記憶される。画像処理部115は、この過去画像における水上明るさ、および、水中画像FD2に対して行った明るさの調整量(具体的には増大量)を、当該過去画像に対応させて記憶してもよい。
画像処理部115は、記憶媒体に記憶された過去画像に基づいて、水中画像FD2の明るさを調整する画像処理を行ってもよい。例えば画像処理部115は水上明るさを算出し、算出した水上明るさと、記憶媒体に記憶された過去画像の水上明るさとの差を、過去画像ごとに算出する。そして画像処理部115は、当該差が類似基準値よりも小さい他の過去画像が存在するときには、その過去画像において用いられた調整量を用いて、水中画像FD2の明るさを調整してもよい。例えば過去画像において用いられた調整量を、水中画像FD2の各画素の明るさに加算する。つまり、撮影した水上画像FU2の水上明るさに近い水上明るさを有する過去画像が存在していれば、その過去画像における明るさの調整量を採用してもよいのである。
これによれば、過去のパノラマ画像における画像処理を利用して、明るさについての画像処理を行うことができる。
図16は画像処理部115の具体的な動作の一例を示すフローチャートである。ステップST24にて、画像処理部115は、水上画像FU2の明るさを算出する。例えば、複数の水上画像FU2の各画素の明るさの総和から、総画素数を除算することで、当該明るさを算出する。次に、ステップST25にて、画像処理部115は、当該水上明るさと、過去画像における水上画像FU2の水上明るさとの差が類似基準値よりも小さい過去画像が、記憶媒体に記憶されているか否かを判断する。当該過去画像が記憶されていると判断したときには、ステップST26にて、画像処理部115は当該過去画像における水中画像FD2に対する明るさの調整量に基づいて、水中画像FD2の明るさを調整する。例えば過去画像にお行ける調整量で、水中画像FD2の明るさを増大させる。一方で、当該過去画像が記憶されていないと判断したときには、画像処理部115はステップST26を実行することなく処理を終了する。或いは画像処理部115は処理を終了せずに、図15の処理を実行してもよい。
画像処理部115は過去画像に基づく画像処理を、パノラマ画像の元となる撮像画像ではなく、パノラマ画像に対して行ってもよい。具体的には、画像処理部115は、パノラマ画像の水上領域U2の明るさと、過去画像の水上領域U2の明るさとの差が基準値よりも小さいときに、パノラマ画像の水中領域D2に対して、過去画像における調整量に基づいて明るさを調整してもよい。これによれば、画像処理の対象となる画素の総数を低減できるので、処理の負担が少ない。
<RGBの値の補正例>
水中では、撮影画像の各画素において、青の値が大きくなり、赤の値および緑の値が小さくなる傾向がある。そこで画像処理部115は、水中画像FD2の各画素に対して青のゲイン値を低減する画像補正を行ってもよい。ここでいうゲイン値とは、撮像画像(原画像)の各画素の値を補正する量を示しており、例えば撮像画像の画素の値にゲイン値を乗算して、撮像画像(補正後画像)を生成することができる。画像処理部115は、水中画像FD2の各画素に対して、赤および緑のうち少なくとも一つのゲイン値を増大する画像処理を行ってもよい。画像処理部115は、水中画像FD2の各画素に対して、水中画像FD2に対して青のゲイン値を低減するとともに、赤のゲイン値および緑のうち少なくとも一つのゲイン値を増大する画像処理を行ってもよい。例えば、画像処理部115は、青のゲイン値に所定量を減算し、赤および緑のゲイン値からそれぞれ所定量を加算してもよい。青ゲイン値の低減量、赤のゲイン値の増大量および緑のゲイン値の増大量はそれぞれ予め設定されて、記憶媒体に記憶されていてもよい。このような画像処理によって、水中の景色を地上での景色に近い色で再現することができる。したがってユーザは水中画像FD2を見やすい。
図17は、画像処理部115の動作の一例を示すフローチャートである。図17のフローチャートは撮像画像ごとに行われる。まずステップST31にて、画像処理部115は、撮像画像が水中画像FD2であるか否かを判断する。撮像画像が水中画像FD2であると判断したときには、ステップST32にて、画像処理部115は、各画素において、赤のゲイン値を増大する画像処理を、当該撮像画像に対して行う。ステップST32では、各画素において、緑のゲイン値を増大する画像処理を、当該撮像画像に対して行ってもよい。ステップST32では、各画素において、青のゲイン値を低減し、赤及び緑のゲイン値を増大する画像処理を、当該撮像画像に対して行ってもよい。撮像画像が水中画像FD2でないと判断したときには、処理を終了する。
画像処理部115は、R、G、Bのゲイン値の補正の他に、水中画像FD2に対して、R、G、B毎(つまりR、B、Gチャネル毎)のレベル補正を行ってもよい。つまり、青の値(レベル)を低減し、赤および緑の値(レベル)を増大させてもよい。各R、G、Bのレベル補正の補正量は予め設定され、記憶媒体に記憶されていてもよい。
なおパノラマ画像を生成する場合には、パノラマ画像の元となる撮像画像に対して上述の画像処理を行ってもよいし、あるいは、パノラマ画像の水中領域D2に対して上述の画像処理を行ってもよい。後者であれば、画像処理の対象となる画素の総数を低減できるので、処理の負担が少ない。
<Rの値の補正例>
夕日によって水上における赤が強い場合には、水中でも赤が強くなる傾向がある。そこで、水上画像FU2の各画素において赤の値が強い場合には、水中画像FD2において赤のゲイン値(或いは、赤の値、以下同様)を増大する処理を行わなくてもよい。言い換えれば、画像処理部115は、水上画像FU2において赤の値が基準値よりも弱いときに、水中画像FD2において赤のゲイン値を増大させてもよい。
水上画像FU2において赤の値が強いとは、例えば、水上画像FU2において、所定の値以上の赤の値を有する画素の数が多いことをいう。よって赤の値の強弱は例えば次で説明する値で示されてもよい。即ち、この値は、所定の値以上の赤の値を有する画素の総数を、全画素数で除算した値であってもよい。具体的な処理としては、画像処理部115は画素ごとに赤の値を取得し、この赤の値が所定の値以上であるか否かを判断する。当該所定の値は例えば予め設定されて、記憶媒体に記憶されていてもよい。そして画像処理部115は、所定の値以上の赤の値を有する画素の、1枚の水上画像FU2における総数を算出する。画像処理部115は、この処理を複数の水上画像FU2の全ての画素に対して行うことで、所定の値以上の赤の値を有する画素の総数を算出し、複数の水上画像FU2の全画素数(=水上画像FU2の全画素数×水上画像FU2の枚数)で除算する。画像処理部115は、この演算結果が基準値よりも大きいと判断したときに、赤の値が強いと判断してもよい。
あるいは、全ての水上画像FU2の各画素の赤の値の総和を算出し、この総和を全画素数で除算して求まる値を採用してもよい。そして、画像処理部115は当該値が基準値よりも大きいときに、水上画像FU2の赤の値が強いと判断してもよい。
画像処理部115は、水上画像FU2の赤が弱いときのみ、水中画像FD2の赤の値を低減させてもよい。これによれば、夕日によって水中の赤が強まっているときに、その赤をそのまま水中画像FD2に反映させることができる。したがって、ユーザは水中画像FD2において夕日による水中の景色を実際に近い色で見ることができる。
図18は画像処理部115の動作の一例を示すフローチャートである。ステップST41にて、画像処理部115は水上画像FU2の赤の値が強いか否かを判断する。水上画像FU2の赤の値が弱いと判断したときには、ステップST42にて、画像処理部115は、水中画像FD2において、赤の値を増大させる画像処理を行う。水上画像FU2の赤が強いと判断したときには、処理を終了する。つまり、画像処理部115は、水上画像FU2の赤の値が強い場合、赤のゲイン値を増大させる画像処理を行わない。
なおパノラマ画像を生成する場合には、パノラマ画像の元となる撮像画像に対して上述の画像処理を行ってもよいし、あるいは、パノラマ画像に対して上述の画像処理を行ってもよい。後者であれば、画像処理の対象となる画素の総数を低減できるので、処理の負担が少ない。
<ホワイトバランス>
画像処理部115は種々のホワイトバランスを撮像画像に対して行ってもよい。例えばユーザは、種々のホワイトバランスのうち一つを指定することができる。この指定は例えばタッチパネル130または操作ボタン群140によって行われる。画像処理部115はユーザによって指定されたホワイトバランスを撮像画像に対して行うことができる。選択可能なホワイトバランスとしては、例えば天候ごと(例えば曇天用および晴天用など)のホワイトバランスを例示できる。ユーザは撮影時の天候が曇天であると判断したときに、タッチパネル130または操作ボタン群140を介して、曇天用のホワイトバランスを指定することができる。曇天時には色温度が高いので、画像処理部115は、曇天用のホワイトバランスとして、例えば、画像に対して青の成分の値を低減して赤の成分の値を増大する画像処理を行ってもよい。
ところで上述のように水中では水上に比べて暗く、その明るさは曇天時の明るさに近いと考えることができる。そこで、画像処理部115は、ユーザの選択とは無関係に、水中画像FD2に対して曇天用のホワイトバランスを行ってもよい。これにより、水中画像FD2に対してより適切なホワイトバランスを行うことができる。
図19は画像処理部115の具体的な動作の一例を示すフローチャートである。図19のフローチャートは撮像画像ごとに行われる。ステップST51にて、画像処理部115は、撮像画像が水中画像FD2であるか否かを判断する。撮像画像が水中画像FD2であると判断したときには、ステップST52にて、画像処理部115はその水中画像FD2に対して曇天用のホワイトバランスを行う。撮像画像が水中画像FD2でないと判断したときには、画像処理部115はステップST52を行わずに、処理を終了する。
なおパノラマ画像を生成する場合には、パノラマ画像の元となる水中画像FD2に対して上述の画像処理を行ってもよいし、あるいは、パノラマ画像の水中領域D2に対して曇天用のホワイトバランスを行ってもよい。後者であれば、画像処理の対象となる画素の総数を低減できるので、処理の負担が少ない。
<風速>
図20は電子機器1の電気的な構成の他の一例を示す図である。図3と比較して、風速取得部220が更に設けられている。この風速取得部220は、周囲の風の速度を示す風速情報を取得でき、その風速情報を制御部100へと出力することができる。
例えば風速取得部220は外部の天候サーバから風速情報を取得する。この天候サーバは各地点における風速情報を格納している。また風速取得部220は現在位置取得部を備えている。現在位置取得部は例えば現在位置受信機を備えている。この現在位置受信機は例えばGPS(Global Positioning System)受信機である。この現在位置受信機は複数の衛星から信号を受け取り、この信号に基づいて電子機器1の現在位置を算出する。あるいは、現在位置取得部は、例えば、GLONASS(Global Navigation Satellite System)受信機、Galileo受信機、Compass受信機、IRNSS(Indian Regional Navigational Satellite System)受信機、又はQZSS(Quasi-Zenith Satellite System)受信機等の位置情報の受信機を備えていてもよい。
あるいは現在位置取得部は、無線通信部110が通信できる基地局に基づいて、電子機器1の現在位置を算出してもよい。各基地局には通信可能な通信圏内が設定されている。無線通信部110がある基地局と通信できる場合には、その基地局の通信圏内に電子機器1が位置していることが分かる。また無線通信部110が複数の基地局と通信可能であるときには、その複数の基地局の通信圏内が重複する領域に、電子機器1が位置していることが分かる。そこで現在位置取得部は、無線通信部110と通信できる基地局を特定し、これらに基づいて現在位置を算出する。この場合、現在位置取得部は制御部100の一機能として実装されても構わない。
風速取得部220は、この現在位置を示す現在位置情報と、風速情報を要求する要求信号とを、無線通信部110を介して天候サーバへと送信する。天候サーバは、これに応答して、受信した現在位置における風速情報を電子機器1へと送信する。風速取得部220はこの風速情報を、無線通信部110を介して受信する。なお天候サーバとの送受信を行う機能は、制御部100に搭載されても構わない。
また風速取得部220は風速センサであってもよい。例えば、風速センサは金属線と温度センサと電流供給部とを備えていてもよい。この金属線は風に当たるように、電子機器1に設けられる。温度センサは当該金属線の温度を検出する。電流供給部は、温度センサによって検出された温度が略一定となるように金属線に電流を流す。風速が高いほど金属に流れる電流が大きくなるので、風速センサはこの電流に基づいて風速を求めることができる。
さて、この風速が高いほど屋外の水の流れは速くなり、水中が濁って暗くなることがある。これは屋外における自然の水場(例えば海、川および湖)において特に顕著となる。そこで、画像処理部115は風速に応じた増大量で水中画像FD2の明るさを増大させてもよい。具体的には、画像処理部115は風速が高いほど水中画像FD2の明るさを増大させてもよい。これにより、風速が高まることに起因して水中が暗くなったとしても、水中画像FD2における明るさの低減を抑制することができる。よって、ユーザは水中画像FD2を見やすい。
図21は電子機器1の具体的な動作の一例を示すフローチャートである。ステップST61にて、風速取得部220は風速情報を取得し、これを制御部100へと出力する。次にステップST62にて、画像処理部115はこの風速情報に基づいて、風速に応じた増大量で水中画像FD2の明るさを調整する。例えば、画像処理部115は、風速が風速基準値よりも低いときには、水中画像FD2の明るさを増大させず、風速が風速基準値よりも高いときには、水中画像FD2の明るさを増大させる。
なおパノラマ画像を生成する場合には、パノラマ画像の元となる水中画像FD2に対して上述の画像処理を行ってもよいし、あるいは、パノラマ画像の水中領域D2に対して上述の画像処理を行ってもよい。後者であれば、画像処理の対象となる画素の総数を低減できるので、処理の負担が少ない。
図22は電子機器1の電気的な構成の他の一例を概略的に示す図である。図20と比較して、風向取得部221が更に設けられている。風向取得部221は、周囲の風の向きを示す風速情報を取得でき、その風向情報を制御部100へと出力することができる。
例えば風向取得部221は天候サーバから風向情報を取得してもよい。天候サーバは各地点における風向情報を格納している。また風向取得部221は現在位置取得部を備えている。なお風速取得部220が現在位置取得部を備えている場合には、風速取得部220および風向取得部221がこの現在位置取得部を共用してもよい。風向取得部221は、風向情報を要求する要求信号と、現在位置情報とを、無線通信部110を介して天候サーバへと送信する。天候サーバは、これに応答して、受信した現在位置における風向情報を電子機器1へと送信する。風向取得部221はこの風向情報を、無線通信部110を介して受信する。なお天候サーバとの送受信を行う機能は、制御部100に搭載されても構わない。
画像処理部115は、風向が陸上から水上(例えば海上)へと向かう方向であるか否かを判断する。例えば記憶媒体(例えば記憶媒体103など)には、地図情報が格納されている。地図情報は陸地の位置および海の位置を示す情報を含んでいる。この地図情報は予め記憶媒体に格納されていてもよく、外部の地図サーバから取得されて記憶媒体に記憶されてもよい。
画像処理部115は現在位置における海と陸との位置関係を地図情報に基づいて把握し、さらに風向情報に基づいて、陸から海へと風が生じているか否かを判断する。陸から海へと風が生じている場合には、風速に応じた増大量で水中画像FD2の明るさを増大させる画像処理を行わない。なぜなら、陸から海に向かう風が発生しているときには、水の濁りが発生しにくいからである。これにより、不要に水中画像FD2の明るさが増大することを回避することができる。
図23は電子機器1の動作の一例を示すフローチャートである。まずステップST63にて、風速取得部220は風速情報を取得する。次にステップST64にて、風向取得部221は風向情報を取得する。なおステップST63,ST64の実行順序は逆であってもよく、あるいはステップST63,ST64は並行して行われてもよい。次にステップST65にて、画像処理部115は、風向情報が示す風向が、陸上から水上へ向かう方向であるか否かを判断する。風向が陸上から水上へ向かう方向ではないと判断したときには、ステップST66にて、風速が高いほど大きい増大量で、水中画像FD2の明るさを増大させる。その後、動作を終了する。一方で、風向きが陸上から水上へ向かう方向であると判断したときには、画像処理部115はステップST66を実行せずに、動作を終了する。
また、パノラマ画像を生成する場合には、ステップST66においては、パノラマ画像の元となる水中画像FD2に対して上述の画像処理を行ってもよいし、あるいは、パノラマ画像の水中領域D2に対して上述の画像処理を行ってもよい。後者であれば、画像処理の対象となる画素の総数を低減できるので、処理の負担が少ない。
<波>
海では波が生じるので、水面の位置が変わる。波の高さが高いときには、水面の位置が大きく変化する。また、電子機器1と水面との相対的な位置は電子機器1の移動のみならず、波によっても変化する。上述の水面画像FW2の特定方法では波による水面の位置変化は考慮していないので、波が高いほど水面画像FW2の特定精度は低下し得る。そこで、波の高さが波高基準値よりも高いときには、これをユーザに報知してもよい。これにより、ユーザは水面画像の特定精度が低くなることを予め知ることができる。
図24は電子機器1の電気的な構成の他の一例を概略的に示す図である。図3と比較して、波高取得部240が更に設けられている。波高取得部240は、波の高さを示す波高情報を取得することができ、この波高情報を制御部100へと出力することができる。
波高取得部240は例えば天候サーバから波高情報を取得してもよい。天候サーバは例えば海の各地点における波高情報を格納している。また波高取得部240は現在位置取得部を備えている。なお風速取得部220あるいは風向取得部221が設けられている場合には、風速取得部220、風向取得部221および波高取得部240は、現在位置取得部を共用してもよい。波高取得部240は、波高情報を要求する要求信号と、現在位置情報とを、無線通信部110を介して天候サーバへと送信する。天候サーバは、これに応答して、受信した現在位置における波高情報を電子機器1へと送信する。波高取得部240はこの波高情報を、無線通信部110を介して受信する。なお天候サーバとの送受信を行う機能は、制御部100に搭載されても構わない。
あるいは波の高さを検出する波高検出装置が近くに設けられている場合も想定できる。例えば波高検出装置は、海上に浮かぶフロートの高さ方向の位置を検出することで、波の高さを検出する。波高取得部240は、この波高検出装置と無線通信して、波高情報を取得してもよい。
図25は制御部100の内部構成の一例を概略的に示す機能ブロック図である。図25の例示では、制御部100は報知部116をさらに備えている。報知部116は、波高情報によって示される波の高さが波高基準値よりも高いときに、これをユーザに報知する。図26は報知部116の具体的な動作の一例を示すフローチャートである。この動作は上述の各フローチャートと並行して行ってもよい。ステップST71にて、報知部116は波高取得部240によって取得された波高情報に基づいて、波の高さが波高基準値よりも高いか否かを判断する。波の高さが波高基準値よりも高いと判断したときには、ステップST72にて、報知部116はユーザにこれを報知する。例えば報知部116は波が高くて水面画像の特定精度が低下することを表示装置120に表示してもよい。あるいは、報知部116はスピーカ170を用いて報知を行ってもよい。電子機器1に振動装置が設けられる場合には、この振動装置を振動させてもよい。この振動は電子機器1の外装4を介してユーザに伝達され、これによりユーザに報知が行われる。一方でステップST71にて波の高さが波高基準値よりも低いと判断したときには、報知部116はステップST71を再び実行する。
<水面位置情報>
画像処理部115はパノラマ画像の生成に際して水面位置情報を生成してもよい。水面位置情報とは、パノラマ画像のうち水面の位置を示す情報である。画像処理部115はパノラマ画像の生成に際して、水面画像FW2の一部をパノラマ画像の一部に採用するところ、このパノラマ画像の一部が水面を示す。画像処理部115は、パノラマ画像のうち当該一部たる水面領域を、水面位置情報として生成しても構わない。
制御部100は水面位置情報とともにパノラマ画像を記憶媒体(例えば記憶媒体103など)に記憶する。よって、ユーザが電子機器1を用いてパノラマ撮影を行うたびに、水面位置情報を伴ってパノラマ画像が記憶される。したがって、記録媒体には、複数のパノラマ画像と、これらに対応する複数の水面位置情報とが記憶される。
図27は制御部100の内部構成の一例を示す図である。図11と比較して、制御部100は閲覧部117を更に備えている。閲覧部117は、ユーザの入力に応じて、複数のパノラマ画像を並べて表示装置120に表示することができる(図28も参照)。より具体的には、閲覧部117は、記憶媒体から複数のパノラマ画像と、そのパノラマ画像に対応する水面位置情報とを読み出すことができる。閲覧部117は複数のパノラマ画像の各々における水面が複数のパノラマ画像の全体において連続するように、複数のパノラマ画像を表示装置120に表示することができる。
図28は、表示されたパノラマ画像の一例を概略的に示す図である。図28の例示では、パノラマ画像P1〜P4が一方向に並んで表示される。図28の例示では、パノラマ画像P1〜P4は上下方向に長く、その短手方向(つまり左右方向)に並んで表示されている。図28の例示では、パノラマ画像P1の右隣にパノラマ画像P2が表示され、パノラマ画像P2の右隣にパノラマ画像P3が表示され、パノラマ画像P3の右隣にパノラマ画像P4が表示されている。各パノラマ画像P1〜P4には、水面G4が含まれており、閲覧部117は、この水面G4が連続するようにパノラマ画像P1〜P4の上下方向における表示位置を調整する。
例えば閲覧部117は、パノラマ画像P1の右端の水面の位置とパノラマ画像P2の左端の水面の位置との差が所定値よりも小さくなるように、言い換えれば、パノラマ画像P1,P2において水面が連続するように、パノラマ画像P2をパノラマ画像P1よりも上方に移動させて、パノラマ画像P1,P2を表示する。同様に、閲覧部117は、パノラマ画像P3の左端の水面の位置と、パノラマ画像P2の右端の水面の位置との差が所定値よりも小さくなるように、パノラマ画像P3の上下方向の位置を調整する。パノラマ画像P4についても同様である。
このように、複数のパノラマ画像P1〜P4において水面が連続するので、ユーザはパノラマ画像P1〜P4の全体を一体的に見やすい。
またパノラマ画像P1〜P4を適宜に上下方向に移動させれば、パノラマ画像P1〜P4の上端および下端において段差が生じ得る。またパノラマ画像P1〜P4の長手方向における長さが相違する場合にも、段差は生じ得る。そこで、閲覧部117は、パノラマ画像P1〜P4の上端および下端を揃えて、パノラマ画像P1〜P4を表示してもよい。例えば閲覧部117は、各パノラマ画像P1〜P4の上端の段差をなくすべく、パノラマ画像P1〜P4の上端部P1a,P2a,P3a,P4aを適宜に除去して、パノラマ画像P1〜P4の上端を揃えてもよい。図28の例示では、除去された上端部P1a,P2a,P3a,P4aを破線で示している。
また閲覧部117は、パノラマ画像P1〜P4の下端の段差をなくすべく、当該段差を埋める画像を各パノラマ画像P1〜P4の下端側に追加してもよい。この画像は任意であるものの、例えば仮想的な地面の断面を示す画像であってもよい。図28の例示では、画像P1b,P2b,P3b,P4bをそれぞれパノラマ画像P1〜P4の下端側に追加している。
なおパノラマ画像P1〜P4の上端の段差を埋める画像が、各パノラマ画像P1〜P4の上端側に追加されてもよく、或いは、パノラマ画像P1〜P4の下端の段差をなくすべく、各パノラマ画像P1〜P4の下端部を適宜に除去しても構わない。
以上のように、電子機器、該電子機器の制御方法、該電子機器の制御方法、該電子機器の制御装置は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この開示がそれに限定されるものではない。また、上述した各種変形例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない多数の変形例が、この開示の範囲から外れることなく想定され得るものと解される。