以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
<第1の実施形態>
撮像装置の一形態である本実施形態に係るデジタルカメラは、1つのシーンについて複数の視点数の画像を一度の撮影により生成できるように構成されている。互いに視点の異なるそれぞれの画像を視差画像と呼ぶ。本実施形態においては、特に、右目と左目に対応する2つの視点による右視差画像と左視差画像を生成する場合について説明する。本実施形態におけるデジタルカメラは、中央視点による視差のない視差なし画像も、視差画像と共に生成できる。
図1は、本発明の実施形態に係るデジタルカメラ10の構成を説明する図である。デジタルカメラ10は、撮影光学系としての撮影レンズ20を備え、光軸21に沿って入射する被写体光束を撮像素子100へ導く。撮影レンズ20は、デジタルカメラ10に対して着脱できる交換式レンズであっても構わない。デジタルカメラ10は、撮像素子100、制御部201、A/D変換回路202、メモリ203、駆動部204、画像処理部205、メモリカードIF207、操作部208、表示部209およびLCD駆動回路210を備える。
なお、図示するように、撮像素子100へ向かう光軸21に平行な方向をZ軸プラス方向と定め、Z軸と直交する平面において紙面手前へ向かう方向をX軸プラス方向、紙面上方向をY軸プラス方向と定める。以降のいくつかの図においては、図1の座標軸を基準として、それぞれの図の向きがわかるように座標軸を表示する。
撮影レンズ20は、複数の光学レンズ群から構成され、シーンからの被写体光束をその焦点面近傍に結像させる。なお、図1では撮影レンズ20を説明の都合上、瞳近傍に配置された仮想的な1枚のレンズで代表して表している。また、瞳近傍には、光軸21を中心として同心状に入射光束を制限する絞り22が配置されている。
撮像素子100は、撮影レンズ20の焦点面近傍に配置されている。撮像素子100は、二次元的に複数の光電変換素子が配列された、例えばCCD、CMOSセンサ等のイメージセンサである。撮像素子100は、駆動部204によりタイミング制御されて、受光面上に結像された被写体像を画像信号に変換してA/D変換回路202へ出力する。
A/D変換回路202は、撮像素子100が出力する画像信号をデジタル画像信号に変換してメモリ203へ出力する。画像処理部205は、メモリ203をワークスペースとして種々の画像処理を施し、撮影画像データを生成する。撮影画像データは、後述するように、撮像素子100の視差なし画素の出力から生成される基準画像データと、撮像素子100の視差画素の出力から生成される視差画像データを包含する。撮影画像データを生成するまでの処理部を撮像部とする場合、撮像部は、撮像素子100、A/D変換回路202、メモリ203、制御部201および画像処理部205を含んで構成される。
制御部201は、デジタルカメラ10を統合的に制御する。例えば、設定された絞り値に応じて絞り22の開口を調整し、AF評価値に応じて撮影レンズ20を光軸方向に進退させる。また、撮影レンズ20の位置を検出して、撮影レンズ20の焦点距離、フォーカスレンズ位置を把握する。さらに、駆動部204に対してタイミング制御信号を送信し、撮像素子100から出力される画像信号が画像処理部205で撮影画像データに処理されるまでの一連のシーケンスを管理する。
また、制御部201は、調整条件取得部231を包含する。調整条件取得部231は、後述する立体調整パラメータを決定するための、さまざまな調整条件を取得する。詳しくは後述するが、例えば、その撮影画像データが生成された時の撮影条件としての絞り値、焦点距離等を調整条件として逐次取得する。
画像処理部205は、調整値決定部232、算出部233および動画生成部234を包含する。調整値決定部232は、調整条件取得部231が取得した調整条件から立体調整パラメータの値を決定する。算出部233は、決定された立体調整パラメータを用いて、撮影画像データから、新たな視差画像データを生成する。動画生成部234は、算出部が生成した新たな視差画像データを繋ぎ合わせて、3Dの動画ファイルを生成する。
画像処理部205は、他にも選択された画像フォーマットに従って画像データを調整するなどの画像処理一般の機能も担う。生成された撮影画像データは、LCD駆動回路210により表示信号に変換され、表示部209に表示される。また、メモリカードIF207に装着されているメモリカード220に記録される。
図2は、撮像素子100の一部を拡大した様子を概念的に表す概念図である。画素領域には2000万個以上もの画素がマトリックス状に配列されている。本実施形態においては、隣接する8画素×8画素の64画素が一つの基本格子110を形成する。基本格子110は、2×2の4画素を基本単位とするベイヤー配列を、Y軸方向に4つ、X軸方向に4つ含む。なお、図示するように、ベイヤー配列においては、左上画素と右下画素に緑フィルタ(Gフィルタ)、左下画素に青フィルタ(Bフィルタ)、右上画素に赤フィルタ(Rフィルタ)が配される。
基本格子110は、視差画素と視差なし画素を含む。視差画素は、撮影レンズ20を透過する入射光束のうち、撮影レンズ20の光軸に対して偏位した部分光束を受光する画素である。視差画素には、当該部分光束のみを透過させるように、画素中心から偏位した偏位開口を有する開口マスクが設けられている。開口マスクは、例えば、カラーフィルタに重ねて設けられる。本実施形態においては、開口マスクにより、部分光束が画素中心に対して左側に到達するように規定された視差Lt画素と、部分光束が画素中心に対して右側に到達するように規定された視差Rt画素の2種類が存在する。一方、視差なし画素は、開口マスクが設けられていない画素であり、撮影レンズ20を透過する入射光束の全体を受光する画素である。
なお、視差画素は、光軸から偏位した部分光束を受光するにあたり、開口マスクに限らず、受光領域と反射領域が区分された選択的反射膜、偏位したフォトダイオード領域など、様々な構成を採用し得る。すなわち、視差画素は、撮影レンズ20を透過する入射光束のうち、光軸から偏位した部分光束を受光できるように構成されていれば良い。
基本格子110内の画素をPIJで表す。例えば、左上画素はP11であり、右上画素はP81である。図に示すように、視差画素は以下のように配列されている。
P11…視差Lt画素+Gフィルタ(=G(Lt))
P51…視差Rt画素+Gフィルタ(=G(Rt))
P32…視差Lt画素+Bフィルタ(=B(Lt))
P63…視差Rt画素+Rフィルタ(=R(Rt))
P15…視差Rt画素+Gフィルタ(=G(Rt))
P55…視差Lt画素+Gフィルタ(=G(Lt))
P76…視差Rt画素+Bフィルタ(=B(Rt))
P27…視差Lt画素+Rフィルタ(=R(Lt))
他の画素は視差なし画素であり、視差無し画素+Rフィルタ、視差なし画素+Gフィルタ、視差無し画素+Bフィルタのいずれかである。
撮像素子100の全体でみた場合に、視差画素は、Gフィルタを有する第1群と、Rフィルタを有する第2群と、Bフィルタを有する第3群のいずれかに区分され、基本格子110には、それぞれの群に属する視差Lt画素および視差Rt画素が少なくとも1つは含まれる。図の例のように、これらの視差画素および視差なし画素が、基本格子110内においてランダム性を有して配置されると良い。ランダム性を有して配置されることにより、色成分ごとの空間分解能に偏りを生じさせることなく、視差画素の出力としてRGBのカラー情報を取得することができるので、高品質な視差画像データが得られる。
次に、撮像素子100から出力される撮影画像データから2D画像データと視差画像データを生成する処理の概念を説明する。図3は、2D画像データと視差画像データの生成処理の例を説明する図である。
基本格子110における視差画素および視差なし画素の配列からもわかるように、撮像素子100の出力をその画素配列に一致させてそのまま羅列しても、特定の像を表す画像データにはならない。撮像素子100の画素出力を、同一に特徴付けられた画素グループごとに分離して寄せ集めてはじめて、その特徴に即した一つの像を表す画像データが形成される。例えば、左右の視差画素をそれぞれ寄せ集めると、互いに視差を有する左右の視差画像データが得られる。このように、同一に特徴付けられた画素グループごとに分離して寄せ集められたそれぞれの画像データを、プレーンデータと呼ぶ。
画像処理部205は、撮像素子100の画素配列順にその出力値(画素値)が羅列されたRAW元画像データを受け取り、複数のプレーンデータに分離するプレーン分離処理を実行する。図の左列は、2D画像データとしての2D−RGBプレーンデータの生成処理の例を示す。
2D−RGBプレーンデータを生成するにあたり、画像処理部205は、まず視差画素の画素値を除去して、空格子とする。そして、空格子となった画素値を、周辺画素の画素値を用いて補間処理により算出する。例えば、空格子P11の画素値は、斜め方向に隣接するGフィルタ画素の画素値である、P−1−1、P2−1、P−12、P22の画素値を平均化演算して算出する。また、例えば空格子P63の画素値は、上下左右に1画素飛ばして隣接するRフィルタの画素値である、P43、P61、P83、P65の画素値を平均化演算して算出する。同様に、例えば空格子P76の画素値は、上下左右に1画素飛ばして隣接するBフィルタの画素値である、P56、P74、P96、P78の画素値を平均化演算して算出する。
このように補間された2D−RGBプレーンデータは、ベイヤー配列を有する通常の撮像素子の出力と同様であるので、その後は2D画像データとして各種処理を行うことができる。すなわち、公知のベイヤー補間を行って、各画素にRGBデータの揃ったカラー画像データを生成する。画像処理部205は、静止画データを生成する場合にはJPEG等の、動画データを生成する場合にはMPEG等の、予め定められたフォーマットに従って一般的な2D画像としての画像処理を行う。
本実施形態においては、画像処理部205は、2D−RGBプレーンデータをさらに色ごとに分離し、上述のような補間処理を施して、基準画像データとしての各プレーンデータを生成する。すなわち、緑色の基準画像プレーンデータとしてのGnプレーンデータ、赤色の基準画像プレーンデータとしてのRnプレーンデータ、および青色の基準画像プレーンデータとしてのBnプレーンデータの3つを生成する。
図の右列は、視差画素データとしての2つのGプレーンデータ、2つのRプレーンデータおよび2つのBプレーンデータの生成処理の例を示す。2つのGプレーンデータは、左視差画像データとしてのGLtプレーンデータと右視差画像データとしてのGRtプレーンデータであり、2つのRプレーンデータは、左視差画像データとしてのRLtプレーンデータと右視差画像データとしてのRRtプレーンデータであり、2つのBプレーンデータは、左視差画像データとしてのBLtプレーンデータと右視差画像データとしてのBRtプレーンデータである。
GLtプレーンデータを生成するにあたり、画像処理部205は、撮像素子100の全出力値からG(Lt)画素の画素値以外の画素値を除去して空格子とする。すると、基本格子110には、P11とP55の2つの画素値が残る。そこで、基本格子110を縦横に4等分し、左上の16画素分をP11の出力値で代表させ、右下の16画素分をP55の出力値で代表させる。そして、右上の16画素分および左下の16画素分は、上下左右に隣接する周辺の代表値を平均化演算して補間する。すなわち、GLtプレーンデータは、16画素単位で一つの値を有する。
同様に、GRtプレーンデータを生成するにあたり、画像処理部205は、撮像素子100の全出力値からG(Rt)画素の画素値以外の画素値を除去して空格子とする。すると、基本格子110には、P51とP15の2つの画素値が残る。そこで、基本格子110を縦横に4等分し、右上の16画素分をP51の出力値で代表させ、左下の16画素分をP15の出力値で代表させる。そして、左上の16画素分および右下の16画素分は、上下左右に隣接する周辺の代表値を平均化演算して補間する。すなわち、GRtプレーンデータは、16画素単位で一つの値を有する。このようにして、2D−RGBプレーンデータよりは解像度の低いGLtプレーンデータとGRtプレーンデータを生成することができる。
RLtプレーンデータを生成するにあたり、画像処理部205は、撮像素子100の全出力値からR(Lt)画素の画素値以外の画素値を除去して空格子とする。すると、基本格子110には、P27の画素値が残る。この画素値を基本格子110の64画素分の代表値とする。同様に、RRtプレーンデータを生成するにあたり、画像処理部205は、撮像素子100の全出力値からR(Rt)画素の画素値以外の画素値を除去して空格子とする。すると、基本格子110には、P63の画素値が残る。この画素値を基本格子110の64画素分の代表値とする。このようにして、2D−RGBプレーンデータよりは解像度の低いRLtプレーンデータとRRtプレーンデータが生成される。この場合、RLtプレーンデータとRRtプレーンデータの解像度は、GLtプレーンデータとGRtプレーンデータの解像度よりも低い。
BLtプレーンデータを生成するにあたり、画像処理部205は、撮像素子100の全出力値からB(Lt)画素の画素値以外の画素値を除去して空格子とする。すると、基本格子110には、P32の画素値が残る。この画素値を基本格子110の64画素分の代表値とする。同様に、BRtプレーンデータを生成するにあたり、画像処理部205は、撮像素子100の全出力値からB(Rt)画素の画素値以外の画素値を除去して空格子とする。すると、基本格子110には、P76の画素値が残る。この画素値を基本格子110の64画素分の代表値とする。このようにして、2D−RGBプレーンデータよりは解像度の低いBLtプレーンデータとBRtプレーンデータが生成される。この場合、BLtプレーンデータとBRtプレーンデータの解像度は、GLtプレーンデータとGRtプレーンデータの解像度よりも低く、RLtプレーンデータとRRtプレーンデータの解像度と同等である。
本実施形態においては、生成される画像間の視差量がターゲットとする視差量に収まるように、出力画像データに対して画像処理を施す場合がある。この場合、画像処理部205は、これらのプレーンデータを用いて、左側視点のカラー画像データおよび右側視点のカラー画像データを生成する。特に、立体調整パラメータを導入することにより、2Dカラー画像のぼけ量を維持したまま3D画像としての視差量を調整したカラー画像データを生成する。具体的な処理に先立って、まず生成原理について説明する。
図4は、デフォーカスの概念を説明する図である。視差Lt画素および視差Rt画素は、レンズ瞳の部分領域としてそれぞれ光軸対象に設定された2つの視差仮想瞳のいずれかから到達する被写体光束を受光する。本実施形態の光学系においては、実際の被写体光束はレンズ瞳の全体を通過するので、視差画素に到達するまでは、視差仮想瞳に対応する光強度分布が互いに区別されるのではない。しかし、視差画素は、それぞれが有する開口マスクの作用により、視差仮想瞳を通過した部分光束のみを光電変換した画像信号を出力する。したがって、視差画素の出力が示す画素値分布は、それぞれ対応する視差仮想瞳を通過した部分光束の光強度分布と比例関係にあると考えても良い。
図4(a)で示すように、被写体である物点が焦点位置に存在する場合、いずれの視差仮想瞳を通った被写体光束であっても、それぞれの視差画素の出力は、対応する像点の画素を中心として急峻な画素値分布を示す。像点付近に視差Lt画素が配列されていれば、像点に対応する画素の出力値が最も大きく、周辺に配列された画素の出力値が急激に低下する。また、像点付近に視差Rt画素が配列されていても、像点に対応する画素の出力値が最も大きく、周辺に配列された画素の出力値が急激に低下する。すなわち、被写体光束がいずれの視差仮想瞳を通過しても、像点に対応する画素の出力値が最も大きく、周辺に配列された画素の出力値が急激に低下する分布を示し、それぞれの分布は互いに一致する。
一方、図4(b)に示すように、物点が焦点位置からずれると、物点が焦点位置に存在した場合に比べて、視差Lt画素が示す画素値分布のピークは、像点に対応する画素から一方向に離れた位置に現れ、かつその出力値は低下する。また、出力値を有する画素の幅も広がる。視差Rt画素が示す画素値分布のピークは、像点に対応する画素から、視差Lt画素における一方向とは逆向きかつ等距離に離れた位置に現れ、同様にその出力値は低下する。また、同様に出力値を有する画素の幅も広がる。すなわち、物点が焦点位置に存在した場合に比べてなだらかとなった同一の画素値分布が、互いに等距離に離間して現れる。また、図4(c)に示すように、さらに物点が焦点位置からずれると、図4(b)の状態に比べて、さらになだらかとなった同一の画素値分布が、より離間して現れる。つまり、物点が焦点位置から大きくずれる程、ぼけ量と視差量が増すと言える。別言すれば、デフォーカスに応じて、ぼけ量と視差量は連動して変化する。すなわち、ぼけ量と視差量は、一対一に対応する関係を有する。
また、図4(b)(c)は、物点が焦点位置から遠ざかる方向へずれる場合を示すが、物点が焦点位置から近づく方向へずれる場合は、図4(d)に示すように、図4(b)(c)と比べて、視差Lt画素が示す画素値分布と視差Rt画素が示す画素値分布の相対的な位置関係が逆転する。このようなデフォーカス関係により、視差画像を鑑賞するときに鑑賞者は、焦点位置より奥に存在する被写体を遠くに視認し、手前に存在する被写体を近くに視認する。
図4(b)(c)で説明した画素値分布の変化をそれぞれグラフ化すると、図5のように表される。図において、横軸は画素位置を表し、中心位置が像点に対応する画素位置である。縦軸は各画素の出力値(画素値)を表す。この出力値は上述の通り実質的に光強度に比例する。
分布曲線1804と分布曲線1805は、それぞれ図4(b)の視差Lt画素の画素値分布と視差Rt画素の画素値分布を表す。図からわかるように、これらの分布は中心位置に対して線対称の形状を成す。また、これらを足し合わせた合成分布曲線1806は、図4(b)の状況に対する視差なし画素の画素値分布、すなわち被写体光束の全体を受光した場合の画素値分布と略相似形状を示す。
分布曲線1807と分布曲線1808は、それぞれ図4(c)の視差Lt画素の画素値分布と視差Rt画素の画素値分布を表す。図からわかるように、これらの分布も中心位置に対して線対称の形状を成す。また、これらを足し合わせた合成分布曲線1809は、図4(c)の状況に対する視差なし画素の画素値分布と略相似形状を示す。
本実施形態において立体調整パラメータを利用して画像処理する場合は、実際に撮像素子100の出力値として取得され、空格子が補間処理された、このような画素値分布の視差Lt画素の画素値と視差Rt画素の画素値とを用いて、仮想的な画素値分布をつくり出す。このとき、画素値分布の広がりによって表現されるぼけ量はおよそ維持しつつ、ピーク間の間隔として表現される視差量を調整する。つまり、本実施形態において画像処理部205は、2D画像のぼけ量をほぼそのまま維持しつつも、視差無し画素から生成される2D画像と視差画素から生成される3D画像との間に調整された視差量を有する画像を生成する。図6は、調整視差量の概念を説明するための画素値分布を示す図である。
図において実線で示すLt分布曲線1901とRt分布曲線1902は、LtプレーンデータとRtプレーンデータの実際の画素値をプロットした分布曲線である。例えば、図5における分布曲線1804、1805に相当する。そして、Lt分布曲線1901とRt分布曲線1902のそれぞれのピーク間距離は3D視差量を表し、この距離が大きいほど、画像再生時の立体感が強くなる。
Lt分布曲線1901とRt分布曲線1902とをそれぞれ5割として足し合わせた2D分布曲線1903は、左右に偏りのない凸形状となる。2D分布曲線1903は、図5における合成分布曲線1806の高さを1/2にした形状に相当する。すなわち、この分布に基づく画像は、視差量0の2D画像となる。
調整Lt分布曲線1905は、Lt分布曲線1901の8割と、Rt分布曲線1902の2割を足し合わせた曲線である。調整Lt分布曲線1905のピークは、Rt分布曲線1902の成分が加えられる分だけ、Lt分布曲線1901のピークよりも中心寄りに変位する。同様に、調整Rt分布曲線1906は、Lt分布曲線1901の2割と、Rt分布曲線1902の8割を足し合わせた曲線である。調整Rt分布曲線1906のピークは、Lt分布曲線1901の成分が加えられる分だけ、Rt分布曲線1902のピークよりも中心寄りに変位する。
したがって、調整Lt分布曲線1905と調整Rt分布曲線1906のそれぞれのピーク間距離で表される調整視差量は、3D視差量よりも小さくなる。したがって、画像再生時の立体感は、緩和される。一方で、調整Lt分布曲線1905と調整Rt分布曲線1906のそれぞれの分布の広がりは、2D分布曲線1903の広がりと同等なので、ぼけ量は2D画像のそれと等しいと言える。
すなわち、Lt分布曲線1901とRt分布曲線1902をそれぞれどれくらいの割合で加算するかにより、調整視差量を制御することができる。そして、この調整された画素値分布を、視差なし画素から生成されたカラー画像データの各プレーンに適用することにより、視差画素から生成された視差画像データとは異なる立体感を与える左側視点のカラー画像データと右側視点のカラー画像データとを生成することができる。
本実施形態においては、図3を用いて説明した9つのプレーンデータから、左側視点のカラー画像データと右側視点のカラー画像データを生成する。左側視点のカラー画像データは、左側視点に対応する赤色プレーンデータであるRLtcプレーンデータ、緑色プレーンデータであるGLtcプレーンデータ、および青色プレーンデータであるBLtcプレーンデータの3つのカラー視差プレーンデータによって構成される。同様に、右側視点のカラー画像データは、右側視点に対応する赤色プレーンデータであるRRtcプレーンデータ、緑色プレーンデータであるGRtcプレーンデータ、および青色プレーンデータであるBRtcプレーンデータの3つのカラー視差プレーンデータによって構成される。
図7は、カラー視差プレーンデータの生成処理を説明する図である。特に、カラー視差プレーンのうち赤色視差プレーンである、RLtcプレーンデータとRRtcプレーンデータの生成処理について示す。
赤色視差プレーンは、図3を用いて説明したRnプレーンデータの画素値と、RLtプレーンデータおよびRRtプレーンデータの画素値とを用いて生成する。具体的には、例えばRLt
cプレーンデータの対象画素位置(i
m,j
n)の画素値RLt
mnを算出する場合、まず、画像処理部205の算出部233は、Rnプレーンデータの同一画素位置(i
m,j
n)から画素値Rn
mnを抽出する。次に、算出部233は、RLtプレーンデータの同一画素位置(i
m,j
n)から画素値RLt
mnを、RRtプレーンデータの同一画素位置(i
m,j
n)から画素値RRt
mnを抽出する。そして、算出部233は、画素値Rn
mnに、画素値RLt
mnとRRt
mnを立体調整パラメータCで分配した値を乗じて、画素値RLt
cmnを算出する。具体的には、以下の式(1)により算出する。ただし、立体調整パラメータCは、0.5<C<1の範囲で設定される。
同様に、RRt
cプレーンデータの対象画素位置(i
m,j
n)の画素値RRt
cmnを算出する場合も、算出部233は、抽出した画素値Rn
mnに、画素値RLt
mnと画素値RRt
mnを立体調整パラメータCで分配した値を乗じて算出する。具体的には、以下の式(2)により算出する。
算出部233は、このような処理を、左端かつ上端の画素である(1、1)から右端かつ下端の座標である(i
0,j
0)まで順次実行する。
そして、赤色視差プレーンであるRLtcプレーンデータとRRtcプレーンデータの生成処理が完了したら、次に緑色視差プレーンであるGLtcプレーンデータとGRtcプレーンデータの生成処理を実行する。具体的には、上述の説明においてRnプレーンデータの同一画素位置(im,jn)から画素値Rnmnを抽出する代わりに、Gnプレーンデータの同一画素位置(im,jn)から画素値Gnmnを抽出する。また、RLtプレーンデータの同一画素位置(im,jn)から画素値RLtmnを抽出する代わりに、GLtプレーンデータの同一画素位置(im,jn)から画素値GLtmnを抽出する。同様に、RRtプレーンデータの同一画素位置(im,jn)から画素値RRtmnを抽出する代わりに、GRtプレーンデータの同一画素位置(im,jn)から画素値GRtmnを抽出する。そして、式(1)および式(2)の各パラメータを適宜変更して同様に処理する。
さらに、緑色視差プレーンであるGLtcプレーンデータとGRtcプレーンデータの生成処理が完了したら、次に青色視差プレーンであるBLtcプレーンデータとBRtcプレーンデータの生成処理を実行する。具体的には、上述の説明においてRnプレーンデータの同一画素位置(im,jn)から画素値Rnmnを抽出する代わりに、Bnプレーンデータの同一画素位置(im,jn)から画素値Bnmnを抽出する。また、RLtプレーンデータの同一画素位置(im,jn)から画素値RLtmnを抽出する代わりに、BLtプレーンデータの同一画素位置(im,jn)から画素値BLtmnを抽出する。同様に、RRtプレーンデータの同一画素位置(im,jn)から画素値RRtmnを抽出する代わりに、BRtプレーンデータの同一画素位置(im,jn)から画素値BRtmnを抽出する。そして、式(1)および式(2)の各パラメータを適宜変更して同様に処理する。
以上の処理により、左側視点のカラー画像データ(RLtcプレーンデータ、GLtcプレーンデータ、BLtcプレーンデータ)および右側視点のカラー画像データ(RRtcプレーンデータ、GRtcプレーンデータ、BRtcプレーンデータ)が生成される。すなわち、実際には撮像素子100の画素として存在しない仮想的な出力として、左側視点および右側視点のカラー画像データを、比較的簡易な処理により取得することができる。
しかも、立体調整パラメータCを0.5<C<1の範囲で変更できるので、視差無し画素による2Dカラー画像のぼけ量を維持したまま、3D画像としての視差量の大きさを調整することができる。したがって、これらの画像データを3D画像対応の再生装置で再生すれば、立体映像表示パネルの鑑賞者は、カラー画像として立体感が適度に調整された3D映像を鑑賞できる。特に、処理が簡易なので高速に画像データを生成することができ、動画像にも対応できる。
次に、以上の処理を画素値分布とカラーの観点から説明する。図8は、RGBの画素値分布の変化を説明する図である。図8(a)は、焦点位置から一定量だけずれた位置に存在する物点からのある白色被写体光束を受光した場合の、G(Lt)画素、G(Rt)画素、R(Lt)画素、R(Rt)画素、B(Lt)画素およびB(Rt)画素のそれぞれの出力値を並べたグラフである。
図8(b)は、図8(a)における物点からのある白色被写体光束を受光した場合の、視差無し画素であるR(N)画素、G(N)画素およびB(N)画素の出力値を並べたグラフである。このグラフも、各色の画素値分布を表すと言える。
C=0.8として対応する画素ごとに上述の処理を施すと、図8(c)のグラフで表される画素値分布となる。図から分かるように、RGBそれぞれの画素値に応じた分布が得られる。
次に、3D画像データを再生装置で再生した場合の、鑑賞者と映像との関係について説明する。図9は、鑑賞者の輻輳角と視差量の関係を示す図である。眼球50は、鑑賞者の眼球を表し、図は、右目51と左目52が離間している様子を示す。
表示部40には、視差量が調整されていない非調整画像データが再生され、右目用画像の被写体61と左目用画像の被写体62が表示されている。被写体61と被写体62は同一の被写体であり、撮影時において焦点位置からずれた位置に存在していたので、表示部40においては、視差量D1をもって離間して表示されている。
眼球50は、これらを一致させて視認しようとするので、鑑賞者は、右目51と被写体61を結ぶ直線と、左目52と被写体62を結ぶ直線とが交差する、浮き上がり距離L1の位置(図において四角で表す)に被写体が存在するように認識する。
このときの輻輳角は、図示するようにθ1である。一般的に、輻輳角が大きくなると、映像に対して違和感を覚え、また、眼精疲労の原因ともなる。そこで、本実施形態において立体調整パラメータを利用して画像処理する場合は、上述のように視差量を立体調整パラメータによって調整した調整画像データを生成する。なお、図は、非調整画像データに重ねて調整画像データが再生されている様子を示す。
表示部40には、調整画像データの右目用画像の被写体71と左目用画像の被写体72が表示されている。被写体71と被写体72は同一の被写体であり、また被写体61、62とも同一の被写体である。被写体71と被写体72は、表示部40においては、視差量D2をもって離間して表示されている。鑑賞者は、右目51と被写体71を結ぶ直線と、左目52と被写体72を結ぶ直線とが交差する、浮き上がり距離L2の位置(図において三角で表す)に被写体が存在するように認識する。
このときの輻輳角は、θ1よりも小さいθ2である。したがって、鑑賞者は極端な浮き上がり感を感じることなく、また眼精疲労の蓄積も軽減できる。なお、視差量は、後述するように適度に調整されるので、鑑賞者は、心地良い浮き上がり感(デフォーカス関係が逆転した場合の沈み込み感も合せて立体感)をもって映像を鑑賞できる。
なお、図9の説明として用いた視差量は、表示部40における離間距離で表わされたが、視差量は、さまざまな形式で定義され得る。例えば、撮影画像データにおけるピクセル単位で定義しても良いし、画像の横幅に対するずれ幅で定義しても良い。
図10は、デジタルカメラ10における絞り値、画像の鮮鋭度を示すコントラスト、被写体距離および視差量の関係を模式的に示す図である。横軸は、デジタルカメラ10からの距離を表し、縦軸は、視差量とコントラストの高さを表す。また、図10(a)は、絞り値がF1.4の状態を表し、図10(b)は、絞り値がF4の状態を表し、図10(c)は、絞り値がF8の状態を表す。なお、撮影レンズ20の焦点距離はいずれの状態においても同一であり、また、デジタルカメラ10は、距離L10に位置する主要被写体に焦点を合わせている。
コントラスト曲線1610は、いずれの状態においても焦点位置までの距離である距離L10で最も高い。一方で、絞り値が大きくなるほど焦点距離前後でも比較的高い値を示す。すなわち、絞り22を絞った状態で撮影された画像ほど被写界深度が深くなることを示す。
視差量曲線1620は、距離L10において視差量0を示し、距離L10よりデジタルカメラ10側に近づくにつれ、傾きが大きくなるカーブを示す。すなわち、視差量曲線1620は距離L10より手前側で正の値を示し、より近い被写体ほど大きく浮き上がって視認されることを表している。
他方、視差量曲線1620は、距離L10よりデジタルカメラ10側から遠ざかるにつれ、傾きが小さくなるカーブを示す。すなわち、視差量曲線1620は距離L10より奥側で負の値を示し、より遠い被写体ほど緩やかに沈み込んで視認されることを表している。
また、視差量曲線1620は、絞り値が大きくなるほど、その変化がなだらかになる。すなわち、絞り値がF1.4の場合に比べ、F4、F8と推移するに従い、焦点位置より手前の視差量および奥の視差量が小さくなる。
視差量が−mから+mの範囲に含まれる場合に、鑑賞者が違和感、疲労感を覚えないとすると、絞り値がF8の場合であれば視差量曲線1620がこの範囲に収まっているので、いずれの距離に被写体が存在しても鑑賞者は心地よく3D映像を鑑賞できる。
一方、絞り値がF1.4およびF4の場合は、視差量曲線1620の近距離側で+mを超えている。したがって、被写体が+mを超える近距離に存在すれば鑑賞者は違和感、疲労感を覚える。そこで、本実施形態において画像処理部205は、設定された下限値と上限値の間に収まるように視差量を立体調整パラメータによって調整した調整画像データを生成する。
まず、視差量の制限について説明する。図11は、視差量制限のメニュー画面を表示するデジタルカメラ10の背面図である。
視差量の制限は、上述のように、下限値−m、上限値+mのように設定される。下限値と上限値の絶対値は異なっていても良い。ここでは、視差量を調整視差画像データにおける視差画像のピクセル単位で表す。
鑑賞者が違和感、疲労感を覚える視差量は、鑑賞者ごとに異なる。したがって、撮影時においてデジタルカメラ10のユーザである撮影者が視差量制限の設定を変更できるように、デジタルカメラ10を構成することが好ましい。
デジタルカメラ10には、視差量制限のメニューとして、例えば、図示するように4つの選択肢が設けられている。具体的には、標準的な鑑賞者が心地よいと感じる範囲がプリセットされた「標準」、標準よりも広い範囲がプリセットされ、より大きな視差量を許容する「強め」、標準よりも狭い範囲がプリセットされ、より小さな視差量しか許容しない「弱め」、および撮影者が上限値、下限値を数値入力する「マニュアル」が設けられている。「マニュアル」を選択した場合には、撮影者は、上限値としての「最大浮き上がり量」と下限値としての「最大沈み込み量」を、ピクセル単位で順次指定することができる。撮影者は、操作部208の一部であるダイヤルボタン2081を操作することにより、これらの選択、指定を行う。
このように視差量制限として許容される視差量の範囲が設定されると、画像処理部205は、この範囲に収まるように視差量を調整した調整視差画像データを生成する。本実施形態における視差量の調整処理は、従来技術のように被写体オブジェクトごとに切り出し、デプスマップの情報を用いつつオブジェクト単位で水平方向に移動させるような複雑な処理を必要としない。したがって、従来技術に比べて高速に演算できるので、画像処理部205は、被写体の状況が刻々と変化する動画撮影に対してもリアルタイムに調整視差画像データを出力することに容易に対応できる。
本実施形態におけるデジタルカメラ10は、心地良い視差量に調整された視差画像データを連続的に生成し、これらを繋ぎ合わせて動画ファイルを生成するオート3D動画モードを、動画撮影モードのひとつとして備える。撮影者は、撮影に先立ち、操作部208の一部であるモードボタン2082を操作して、オート3D動画モードを選択する。
同一シーンを構成する被写体の全部が設定された視差量範囲に収まるか否かは、図10の説明からも理解されるように、様々な条件に左右される。設定される視差量範囲も含めて、これらの条件を視差量調整に関する調整条件とする。
ここで調整条件について、さらに説明する。調整条件取得部231は各種の調整条件を取得して、適宜調整値決定部232へ引き渡す。上述のように、調整条件取得部231は、メニュー画面および操作部208を介して入力された視差量範囲を調整条件として取得する。
図10においては、撮影レンズ20の焦点距離が固定の場合について説明したが、同一被写体を撮影する場合において、視差量は、撮影レンズ20の焦点距離によっても変化する。つまり、光学系である撮影レンズ20の設定条件としての焦点距離は、視差量に影響を与える調整条件となり得る。したがって、調整条件取得部231は、制御部201が撮影レンズ20から取得する焦点距離情報(ズーム情報)を、調整条件として取得する。
図10を用いて説明したように、視差量曲線1620は、絞り値の変化に応じて傾きが変わる。つまり、各撮影画像データの取得時(撮影時)における絞り値は、光学系の設定条件として視差量に影響を与える調整条件となり得る。したがって、調整条件取得部231は、制御部201が撮影レンズ20から取得する絞り値を、調整条件として取得する。
図10を用いて説明したように、視差量は、焦点を合わせた被写体に対して0であり、その前後で正負の値を取る。つまり、光学系である撮影レンズ20の設定条件としてのフォーカスレンズ位置は、視差量に影響を与える調整条件となり得る。したがって、調整条件取得部231は、制御部201が撮影レンズ20から取得するフォーカスレンズ位置(フォーカス情報)を、調整条件として取得する。
図10においては、焦点位置である距離L10に主要被写体が存在する場合を想定したが、他の被写体が奥行き方向に分布して存在する場合、これら他の被写体が浮き上がって、あるいは沈み込んで視認されることになる。つまり、奥行き方向の被写体分布は、被写体状況として視差量に影響を与える調整条件となり得る。したがって、調整条件取得部231は、奥行き方向の被写体分布を、調整条件として取得する。具体的には、制御部201が、オートフォーカスに用いるデフォーカス情報を利用して、細分化された領域ごとのデフォーカス量から被写体分布を検出する。なお、デフォーカス情報は、専用に設けられた位相差センサの出力を利用しても良いし、撮像素子100の視差画素の出力を利用しても良い。視差画素の出力を利用する場合は、画像処理部205によって処理された視差画像データを用いることもできる。
次に、調整条件によって値が決定される立体調整パラメータを利用した視差量の調整について説明する。図12は、視差量調整の概念を示す図である。
図12(a)は、図10(a)のうち、コントラスト曲線1610を除いた図に対応する。ここでは、焦点を合わせる対象である主要被写体としての合焦被写体の他に、デジタルカメラ10側である手前側に存在する近点被写体と、反対側である奥側に存在する遠点被写体とが存在する場合を想定している。図10(a)においては、合焦被写体は距離L10に、近点被写体はL20に、遠点被写体はL30に存在する。
調整条件として設定された視差量範囲が−mから+mである場合、遠点被写体の距離L30に対する視差量曲線1620の値はこの範囲に収まっているので、遠点被写体側に関しては視差量を調整しなくても良い。しかし、近点被写体の距離L20に対する視差量曲線1620の値は+mを超えているので、近点被写体の像が視差量+mになるように、全体の視差量を調整する。
すなわち、合焦被写体に対して手前側に最も離れた位置に存在する被写体(近点被写体)の像の視差量と、奥側に最も離れた被写体位置に存在する被写体(遠点被写体)の像の視差量とが、共に設定された視差量範囲に収まるように、視差量曲線を調整する。より具体的には、設定された視差量範囲から大きく外れた側の被写体像の視差量が当該視差量範囲の限界値になるように視差量曲線を調整すれば良い。図12(a)においては、調整視差量曲線1630がこのように調整された視差量曲線である。このように調整すれば、同一シーンを構成する被写体の像の全部が、設定された視差量範囲に収まる。
図12(b)は、図12(a)の被写体状況から、合焦被写体が距離L10から奥側の距離L11へ移動した場合の視差量調整の概念を示す図である。この場合、距離L11が焦点位置となるので、移動していない近点被写体(距離L20)の像に対する視差量は、視差量曲線1620で示されるように、図12(a)に比べて相当大きくなる。この場合も、図12(a)の場合と同様に、近点被写体の像が視差量+mになるように、全体の視差量を調整する。ただし、その調整量は、図12(a)の場合の調整量に対して大きくなる。その結果、調整視差量曲線1630の傾きは水平により近づくので、遠点被写体側の像の視差量はより抑制される。
図12(c)は、図12(b)の被写体状況から、近点被写体が距離L20から奥側の距離L21へ移動した場合の視差量調整の概念を示す図である。この場合、焦点位置は距離L11のままなので視差量曲線1620はそのままであるが、近点被写体が奥側にずれたことにより、その調整量は、図12(b)の場合の調整量に対して小さくなる。
以上のように、調整量は、上述の調整条件が取得できれば一意に定まる。調整量は、立体調整パラメータCの値と一対一の関係にあるので、調整値決定部232は、調整条件取得部231から調整条件を受け取れば、立体調整パラメータCの値を決定できる。具体的には、図12に対応するルックアップテーブルが予め用意されており、調整値決定部232は、調整条件の各値を入力してルックアップテーブルを参照すると、その入力に対する立体調整パラメータCの値を抽出、決定することができる。ルックアップテーブルは、事前のシミュレーション、実験等の結果により構築される。あるいは、ルックアップテーブルの形式に依らず、調整条件の各値を変数とする多変数関数が予め用意されていても良い。
なお、調整条件は上述の条件全てを対象としなくても、一部の条件に限って採用しても良い。例えば、撮影レンズ20の焦点距離のみを調整条件として、焦点距離と立体調整パラメータCの値を一対一に対応させたとしても、鑑賞者の違和感、疲労感をある程度軽減できる。
次に、デジタルカメラ10の一連の処理フローについて説明する。図13は、動画撮影における処理フローである。図のフローは、撮影者によりモードボタン2082が操作されてオート3D動画モードが開始された時点から始まる。なお、視差量範囲は、事前に撮影者により設定されている。
オート3D動画モードが開始されると、調整条件取得部231は、ステップS11で、撮影者が設定した視差量範囲をシステムメモリから取得する。視差量範囲以外にも調整条件として撮影者から指示を受けていた場合には、それらの調整条件も併せて取得する。
制御部201は、ステップS12で、撮影者が録画開始ボタンを押下げる録画開始指示を待つ。録画開始指示を検出すると(ステップS12のYES)、制御部201は、ステップS13へ進み、AF、AEを実行する。そして、制御部201は、ステップS14で、駆動部204を介して撮像素子100の電荷蓄積、読み出しを実行し、1フレームとしての撮影画像データを取得する。なお、制御部201は、この間、ステップS13の検出結果に応じてフォーカスレンズ駆動、絞り22の駆動を継続していても良い。
調整条件取得部231は、ステップS15で、ステップS14の撮影画像データ取得に伴う調整条件を取得する。なお、調整条件の種類によっては、ステップS14に先立って、あるいは、並行して取得を実行しても良い。
ステップS16へ進み、調整条件取得部231は、取得した調整条件を調整値決定部232へ引き渡し、調整値決定部232は、受け取った調整条件を引数としてルックアップテーブルを参照し、立体調整パラメータCの値を決定する。
ステップS17では、算出部233は、調整値決定部232が決定した立体調整パラメータCの値と撮影画像データとを受け取り、左側視点のカラー画像データ(RLtcプレーンデータ、GLtcプレーンデータ、BLtcプレーンデータ)および右側視点のカラー画像データ(RRtcプレーンデータ、GRtcプレーンデータ、BRtcプレーンデータ)を生成する。具体的な処理は後述する。
制御部201は、ステップS18で、撮影者から録画停止指示を受けていないと判断すればステップS13へ戻り次のフレーム処理を実行する。録画停止指示を受けたと判断すればステップS19へ進む。
ステップS19では、動画生成部234は、連続的に生成された左側視点のカラー画像データと右側視点のカラー画像データを繋ぎ合わせ、Blu−ray3Dなどの3D対応動画フォーマットに従ってフォーマット処理を実行し、動画ファイルを生成する。そして、制御部201は、生成された動画ファイルを、メモリカードIF207を介してメモリカード220へ記録し、一連のフローを終了する。なお、メモリカード220への記録は、左側視点のカラー画像データと右側視点のカラー画像データの生成に同期して逐次実行し、録画停止指示に同期してファイル終端処理を実行しても良い。また、制御部201は、メモリカード220へ記録するに限らず、例えばLANを介して外部機器に出力するように構成しても良い。
次に、図13のステップS17の処理について詳細に説明する。図14は、左側視点のカラー画像データと右側視点のカラー画像データである視差カラー画像データを生成するまでの、ステップS17の処理フローである。
算出部233は、ステップS101で、撮影画像データを取得する。そして、ステップS102において、図3を用いて説明したように、撮影画像データを、視差なし画像データと視差画像データにプレーン分離する。算出部233は、ステップS103で、図3を用いて説明したように分離した各プレーンデータに存在する空格子を補間する補間処理を実行する。
算出部233は、ステップS104で、各変数の初期化を行う。具体的には、まず、カラー変数Csetに1を代入する。カラー変数Csetは、1=赤、2=緑、3=青を表す。また、座標変数であるiとjに1を代入する。さらに、視差変数Sに1を代入する。視差変数Sは、1=左、2=右を表す。
算出部233は、ステップS105において、Csetプレーンの対象画素位置(i,j)から画素値を抽出する。例えばCset=1で、対象画素位置が(1,1)である場合、抽出する画素値は、Rn11である。さらに、算出部233は、ステップS106において、LtCsetプレーンデータ、RtCsetプレーンデータの対象画素位置(i,j)から画素値を抽出する。例えば対象画素位置が(1,1)である場合、抽出する画素値は、LtCset11とRtCset11である。
算出部は、ステップS107において、視差変数Sに対応する対象画素位置(i,j)の画素値を算出する。例えばCset=1、S=1で、対象画素位置が(1,1)である場合、RRLtC11を算出する。具体的には、例えば、上述の式(1)により算出する。ここで、立体調整パラメータCは、ステップS16で決定された値である。
算出部233は、ステップS108で、視差変数Sをインクリメントする。そして、ステップS109で、視差変数Sが2を超えたか否かを判断する。超えていなければステップS107へ戻る。超えていればステップS110へ進む。
算出部233は、ステップS110で、視差変数Sに1を代入すると共に、座標変数iをインクリメントする。そして、ステップS111で、座標変数iがi0を超えたか否かを判断する。超えていなければステップS105へ戻る。超えていればステップS112へ進む。
算出部233は、ステップS112で、座標変数iに1を代入すると共に、座標変数jをインクリメントする。そして、ステップS113で、座標変数jがj0を超えたか否かを判断する。超えていなければステップS105へ戻る。超えていればステップS114へ進む。
ステップS114まで進むと、Csetに対する左右それぞれの全画素の画素値が揃うので、算出部233は、これらの画素値を並べて、プレーン画像データを生成する。例えばCset=1である場合、RLtcプレーンデータとRRtcプレーンデータを生成する。
ステップS115ヘ進み、算出部233は、座標変数jに1を代入すると共に、カラー変数Csetをインクリメントする。そして、ステップS116で、カラー変数Csetが3を超えたか否かを判断する。超えていなければステップS105へ戻る。超えていれば、左側視点のカラー画像データ(RLtcプレーンデータ、GLtcプレーンデータ、BLtcプレーンデータ)および右側視点のカラー画像データ(RRtcプレーンデータ、GRtcプレーンデータ、BRtcプレーンデータ)の全てが揃ったとして、図13のフローに戻る。
次に、図2を用いて説明した開口マスクの好ましい開口形状について説明する。図15は、好ましい開口形状を説明する図である。
視差Lt画素の開口部105、および視差Rt画素の開口部106は、それぞれ対応する画素に対して中心を含んで互いに反対方向に偏位していることが好ましい。具体的には、開口部105および106のそれぞれが、画素中心を通る仮想的な中心線322と接する形状であるか、あるいは、中心線322を跨ぐ形状であることが好ましい。
特に、図示するように、開口部105の形状と開口部106の形状は、視差なし画素の開口部104の形状を中心線322で分割したそれぞれの形状と同一であることが好ましい。別言すれば、開口部104の形状は、開口部105の形状と開口部106の形状を隣接させた形状に等しいことが好ましい。
以上の説明においては、算出部233が用いる計算式は、加重相加平均を利用した上記式(1)(2)を採用したが、これに限らず様々な計算式を採用することができる。例えば、加重相乗平均を利用すれば、上記式(1)(2)と同様に表して、
を計算式として採用できる。この場合、維持されるぼけ量が、視差なし画素の出力によるぼけ量ではなく、視差画素の出力によるぼけ量となる。
また、他の計算式としては、上記式(1)(2)と同様に表して、
を採用しても良い。この場合、GLt
cmn、GRt
cmn、BLt
cmn、BRt
cmnをそれぞれ算出するときも、立方根の項は変化しない。
さらには、
を採用しても良い。この場合も、GLt
cmn、GRt
cmn、BLt
cmn、BRt
cmnをそれぞれ算出するときも、立方根の項は変化しない。
次に表示装置との連携について説明する。図16は、デジタルカメラ10とTVモニタ80との連携を説明する図である。TVモニタ80は、例えば液晶から構成される表示部40、デジタルカメラ10から取り出されたメモリカード220を受容するメモリカードIF81、鑑賞者が手元で操作するリモコン82等により構成されている。TVモニタ80は3D画像の表示に対応している。3D画像の表示形式は、特に限定されない。例えば、右目用画像と左目用画像を時分割で表示しても良いし、水平方向または垂直方向に短冊状にそれぞれが並んだインターレースであっても良い。また、画面の一方側と他方側に並ぶサイドバイサイド形式であっても良い。
TVモニタ80は、左側視点のカラー画像データと右側視点のカラー画像データを含んでフォーマット化された動画ファイルをデコードして、3D画像を表示部40に表示する。この場合、TVモニタ80は、規格化された動画ファイルを表示する一般的な表示装置としての機能を担う。しかしながら、TVモニタ80は、図1を用いて説明した制御部201の機能の少なくとも一部、および画像処理部205の少なくとも一部の機能を担う画像処理装置として機能させることもできる。具体的には、図1で説明した調整条件取得部231と、調整値決定部232、算出部233,動画生成部234を包含する画像処理部とをTVモニタ80に組み込む。このように構成することにより、上述の実施形態におけるデジタルカメラ10とTVモニタ80の組み合わせによる機能分担とは異なる機能分担を実現することができる。以下にその変形例を説明する。
変形例においては、視差量を立体調整パラメータによって調整した調整画像データの生成処理を、デジタルカメラ10側ではなく、TVモニタ80側に担わせる。したがって、デジタルカメラ10は、図1の構成に対して調整値決定部232と算出部233を備えなくて良い。その代わり、調整条件取得部231は、取得した調整条件を動画生成部234へ引き渡し、動画生成部234は、画像処理部205によって生成された撮影画像データを動画ファイル化しつつ、対応するフレームに受け取った調整条件を関連付ける。関連付けは、タグ情報として動画ファイル内に記述しても良いし、調整条件を記録した関連ファイルを生成し、動画ファイル内に当該関連ファイルへのリンク情報を記述しても良い。
具体的に変形例におけるデジタルカメラ10の処理動作について説明する。図17は、変形例としてのデジタルカメラ10の動画撮影における処理フローである。図13の処理フローの各処理と関連する処理については同一のステップ番号を付すことにより、異なる処理および追加的な処理の説明を除いて、その説明を省略する。
ステップS21では、調整条件取得部231は、取得した調整条件を動画生成部234へ引き渡し、動画生成部234は、ステップS14で生成した撮影画像データに当該調整条件を関連付ける。
ステップS19では、連続的に生成され、調整条件が各々に関連付けられた撮影画像データを繋ぎ合わせて動画ファイル化を実行する。なお、動画ファイルは、連続するフレームの撮影画像データとして基準画像データと左右視点の視差画像データを包含すれば、図3を用いて説明したいずれの段階のデータであっても良い。すなわち、分離処理、補間処理、プレーンデータ処理は、デジタルカメラ10の処理としてステップS14で行っても良いし、一部または全部を画像処理装置としてのTVモニタ80で行っても良い。そして、制御部201は、生成された動画ファイルをメモリカード220へ出力して、一連のフローを終了する。
次に、変形例におけるTVモニタ80の処理動作について説明する。図18は、変形例としてのTVモニタ80の動画再生における処理フローである。図13の処理フローの各処理と関連する処理については同一のステップ番号を付すことにより、異なる処理および追加的な処理の説明を除いて、その説明を省略する。ただし、TVモニタ80は、調整条件取得部231を包含する制御部と、調整値決定部232、算出部233,動画生成部234を包含する画像処理部を備える。制御部は、図1を用いて説明した制御部201に対応し、画像処理部は、同じく画像処理部205に対応する。
制御部は、3D画像の再生指示を検出すると、ステップS31で、メモリカードIF81を介して取得された動画ファイルをデコードして、撮影画像データから各プレーンデータを取得する。続いて、ステップS32で、各撮影画像データに関連付けられている調整条件を読み出して取得する。なお、ステップS31の各プレーンデータの取得処理と、ステップS32の調整条件の取得処理は、いずれを先に実行しても良いし、並行して実行しても良い。
そして、調整値決定部232は、ステップS16で、立体調整パラメータCの値を決定し、算出部233および動画生成部234は、ステップS17で、視差量が調整された左右のプレーン画像データを生成する。
ステップS32へ進み、制御部は、生成された左右のプレーン画像データによる3D画像を表示部40に表示する。そして、制御部は、ステップS34で、鑑賞者から再生停止の指示があったか、あるいは、再生すべき画像データが終了したかを判断し、いずれにも該当しない場合には、ステップS31へ戻って、次のフレームの再生処理を開始する。一方、いずれかに該当する場合には、一連の再生処理を終了する。
上記の変形例においては、すべての調整条件は撮影時においてデジタルカメラ10で取得され、撮影画像データに関連付けられたが、鑑賞者が、TVモニタ80での再生時に、一部の調整条件を入力できるように構成しても良い。例えば、鑑賞者は、リモコン82を操作して、視差量範囲を入力できる。TVモニタ80の調整条件取得部231は、入力された視差量範囲を調整条件として取得し、調整値決定部232は、この視差量範囲に従って立体調整パラメータCの値を決定する。このように構成すれば、TVモニタ80は、鑑賞者ごとの好みに応じた3D画像を表示することができる。
以上説明した本実施形態においては、調整条件は、フレーム単位である各撮影画像データに関連付けられたが、調整条件と撮影画像データの対応関係はこれに限らない。例えば、複数のフレーム単位、予め定められた時間単位で1つの調整条件を共有することができる。また、光学系の設定条件が変更された時、被写体状況が変化した時などを更新タイミングとして調整条件を複数の撮影画像データで共有しても良い。
また、以上の本実施形態においては、図12を用いて説明したように、近点被写体および遠点被写体が設定された視差量範囲に収まるように視差量曲線1620を調整したが、視差量を調整する基準は、これに限らない。例えば、フレーム全体における各画素の視差量を積分して累積視差量を算出する。累積視差量がプラスであれば、全体的に飛び出す画像となっているので、予め定められた基準値よりも大きい場合には、立体調整パラメータを用いて視差量を減じた調整視差画像データを生成する。累積視差量がマイナスであれば、プラスの場合と同様に処理しても良いし、違和感が比較的小さなマイナス側については、立体調整パラメータを用いずに、そのまま視差画像データを生成しても良い。
このように累積視差量で評価する場合、画像を複数の領域に細分化して、それぞれで累積値を算出し評価するようにしても良い。このように評価すれば、突出した視差量を有する領域が存在する場合でも、視差量を減ずることができる。
また、累積視差量の変化量を基準に評価することもできる。例えば、撮影シーンが変更された場合に累積視差量が急激に変化することがあるが、許容変化量として予め基準値を設けておけば、当該許容変化量を超えた場合に視差量を減ずることができる。この場合、本来許容される視差量範囲まで視差量を徐々に増加させる処理を行っても良い。
また、以上の本実施形態においては動画撮影を前提として説明したが、取得した調整条件に基づいて視差量を調整した視差画像データを出力する構成は、もちろん静止画撮影についても適用できる。このように撮影された静止画像は、左右の画像間に極端な視差を生じさせず、鑑賞者に違和感を与えない。
また、以上の本実施形態においてはTVモニタ80を画像処理装置の一例として説明したが、画像処理装置はさまざまな形態を採り得る。例えば、PC、携帯電話、ゲーム機器など、表示部を備える、あるいは表示部に接続される機器は画像処理装置になり得る。
以上の本実施形態において説明した各処理フローは、制御部を制御する制御プログラムによって実行される。制御プログラムは、内蔵する不揮発性メモリに記録されており、適宜ワークメモリに展開されて各処理を実行する。あるいは、サーバに記録された制御プログラムが、ネットワークを介して各装置に送信され、ワークメモリに展開されて各処理を実行する。または、サーバに記録された制御プログラムがサーバ上で実行され、各装置は、ネットワークを介して送信されてくる制御信号に即して処理を実行する。
以上の本実施形態においては、撮像素子100が視差なし画素を含み、撮影画像データは、基準画像データを含む構成について説明した。しかし、撮像素子100が視差なし画素を含まず、よって撮影画像データが視差画像データのみから成る構成であっても良い。この場合、視差画像データから、立体調整パラメータを用いて視差量を減じた調整視差画像データを生成する。また、撮像素子100が視差なし画素を含んでいたとしても、視差画像データのみを用いて調整視差画像データを生成しても良い。
より具体的には、右視差画像データの被写体像が基準となる仮想の被写体像に対して第1方向に第1視差を有するとし、左視差画像データの被写体像が当該仮想の被写体像に対して第1方向とは反対の他方向に第2視差を有するとする。すなわち、右視差画像データの被写体像と、左視差画像データの被写体像は、互いに第1視差+第2視差の視差を有する。このとき、画像処理部は、調整視差画像データとして、調整条件を用いて、一方向に第1視差とは異なる第3視差を有する調整された右視差画像データと、他方向に第2視差とは異なる第4視差を有する調整された左視差画像データを生成する。
<第2の実施形態>
撮像装置の一形態である本実施形態に係るデジタルカメラは、1つのシーンについて複数の視点数の画像を一度の撮影により生成できるように構成されている。互いに視点の異なるそれぞれの画像を視差画像と呼ぶ。本実施形態においては、特に、右目と左目に対応する2つの視点による右視差画像と左視差画像を生成する場合について説明する。本実施形態におけるデジタルカメラは、中央視点による視差のない視差なし画像も、視差画像と共に生成できる。
図19は、本発明の実施形態に係るデジタルカメラ10の構成を説明する図である。デジタルカメラ10は、撮影光学系としての撮影レンズ20を備え、光軸21に沿って入射する被写体光束を撮像素子100へ導く。撮影レンズ20は、デジタルカメラ10に対して着脱できる交換式レンズであっても構わない。デジタルカメラ10は、撮像素子100、制御部201、A/D変換回路202、メモリ203、駆動部204、画像処理部205、メモリカードIF207、操作部208、表示部209およびLCD駆動回路210を備える。
なお、図示するように、撮像素子100へ向かう光軸21に平行な方向をZ軸プラス方向と定め、Z軸と直交する平面において紙面手前へ向かう方向をX軸プラス方向、紙面上方向をY軸プラス方向と定める。以降のいくつかの図においては、図19の座標軸を基準として、それぞれの図の向きがわかるように座標軸を表示する。
撮影レンズ20は、複数の光学レンズ群から構成され、シーンからの被写体光束をその焦点面近傍に結像させる。なお、図19では撮影レンズ20を説明の都合上、瞳近傍に配置された仮想的な1枚のレンズで代表して表している。また、瞳近傍には、光軸21を中心として同心状に入射光束を制限する絞り22が配置されている。
撮像素子100は、撮影レンズ20の焦点面近傍に配置されている。撮像素子100は、二次元的に複数の光電変換素子が配列された、例えばCCD、CMOSセンサ等のイメージセンサである。撮像素子100は、駆動部204によりタイミング制御されて、受光面上に結像された被写体像を画像信号に変換してA/D変換回路202へ出力する。
A/D変換回路202は、撮像素子100が出力する画像信号をデジタル画像信号に変換してメモリ203へ出力する。画像処理部205は、メモリ203をワークスペースとして種々の画像処理を施し、撮影画像データを生成する。撮影画像データは、後述するように、撮像素子100の視差なし画素の出力から生成される基準画像データと、撮像素子100の視差画素の出力から生成される視差画像データを包含する。
制御部201は、デジタルカメラ10を統合的に制御する。例えば、設定された絞り値に応じて絞り22の開口を調整し、AF評価値に応じて撮影レンズ20を光軸方向に進退させる。また、撮影レンズ20の位置を検出して、撮影レンズ20の焦点距離、フォーカスレンズ位置を把握する。さらに、駆動部204に対してタイミング制御信号を送信し、撮像素子100から出力される画像信号が画像処理部205で撮影画像データに処理されるまでの一連の撮像制御を管理する。
また、制御部201は、奥行情報検出部235および決定部236を包含する。奥行情報検出部235は、シーンに対して奥行き方向の被写体分布を検出する。具体的には、制御部201が、オートフォーカスに用いるデフォーカス情報を利用して、細分化された領域ごとのデフォーカス量から被写体分布を検出する。なお、デフォーカス情報は、専用に設けられた位相差センサの出力を利用しても良いし、撮像素子100の視差画素の出力を利用しても良い。視差画素の出力を利用する場合は、画像処理部205によって処理された視差画像データを用いることもできる。あるいは、デフォーカス情報を利用しなくても、フォーカスレンズを進退させ、細分化された領域ごとにコントラストAF方式によるAF評価値を算出しても被写体分布を検出することができる。
決定部236は、奥行情報検出部235が検出した被写体分布に基づいて視差量に関する変更条件を決定する。詳しくは後述するが、決定部236は、出力視差画像間の視差量がターゲットとする視差量に収まるように、例えば撮影条件としての絞り値を決定する。この場合、視差量に関する変更条件は、絞り22とその開口度合いを表す絞り値である。
画像処理部205は、上述の通り、撮像素子100から出力される画像信号を処理して撮影画像データを生成する。また、画像処理部205は、算出部233および動画生成部234を包含する。算出部233は、後述する立体調整パラメータを利用して視差量を調整する場合に、画像処理により新たな視差画像データを生成する。動画生成部234は、視差画像データを繋ぎ合わせて、3Dの動画ファイルを生成する。
画像処理部205は、他にも選択された画像フォーマットに従って画像データを調整するなどの画像処理一般の機能も担う。生成された撮影画像データは、LCD駆動回路210により表示信号に変換され、表示部209に表示される。また、メモリカードIF207に装着されているメモリカード220に記録される。
操作部208は、ユーザの操作を受け付けて制御部201へ指示を伝達する受付部の一部として機能する。操作部208は、撮影開始指示を受け付けるシャッタボタン等、複数の操作部材を含む。
第2の実施形態における説明は、第1の実施形態と多くを共有する。具体的には、第1の実施形態における図2から図9の説明についてである。したがって、これらの説明を省略し、さらに異なる部分を含む説明を続ける。
図20は、画像の鮮鋭度を示すコントラストと視差量の関係を模式的に示す図である。横軸は、デジタルカメラ10からの距離を表し、縦軸は、視差量とコントラストの高さを表す。デジタルカメラ10は、距離Lpに位置する主要被写体に焦点を合わせている。
コントラスト曲線1610は、焦点位置までの距離である距離Lpで最も高い凸状の曲線を成す。すなわち、距離Lpから前後に離れるにつれて徐々にぼけていく様子を示す。
視差量曲線1620は、距離Lpにおいて視差量0を示し、距離Lpよりデジタルカメラ10側に近づくにつれ、傾きが大きくなるカーブを示す。すなわち、視差量曲線1620は距離Lpより手前側で正の値を示し、より近い被写体ほど大きく浮き上がって視認されることを表している。
他方、視差量曲線1620は、距離Lpよりデジタルカメラ10側から遠ざかるにつれ、傾きが小さくなるカーブを示す。すなわち、視差量曲線1620は距離Lpより奥側で負の値を示し、より遠い被写体ほど緩やかに沈み込んで視認されることを表している。
視差量が−mから+mの範囲に含まれる場合に鑑賞者が違和感、疲労感を覚えないとすると、シーンを構成する被写体が距離Lf(このときの視差量は+m)から距離Lr(このときの視差量は−m)の間に分布していれば良い。すなわち、デジタルカメラ10から最も近い近点被写体が距離Lfに存在し、最も遠い遠点被写体が距離Lrに存在すれば、後段の画像処理で視差量を調整しなくても、鑑賞者は心地よく3D映像を鑑賞できる。一方、近点被写体が距離Lfよりも手前の距離Lf'(このときの視差量は+m')に存在すると、許容される視差量を超えてしまうので、鑑賞者は違和感、疲労感を覚える。
さらに被写体分布と視差量の関係について説明を続ける。図21は、被写体分布と視差量の関係を模式的に示す図である。
図21の各図は、図20のうち、コントラスト曲線1610を除いた図に対応する。また、焦点を合わせる対象である主要被写体としての合焦被写体の他に、近点被写体と遠点被写体とが存在する場合を想定している。図21(a)においては、合焦被写体は距離L10に、近点被写体はL20に、遠点被写体はL30に存在する。
許容範囲として設定された視差量範囲が−mから+mである場合、遠点被写体の距離L30に対する視差量曲線1620の値はこの範囲に収まっている。しかし、近点被写体の距離L20に対する視差量曲線1620の値は+mを超えている。
図21(b)は、図21(a)の被写体状況から、合焦被写体が距離L10から奥側の距離L11へ移動した場合の視差量の概念を示す図である。この場合、距離L11が焦点位置となるので、移動していない近点被写体(距離L20)の像に対する視差量は、視差量曲線1620で示されるように、図22(a)に比べて相当大きくなる。すなわち、許容範囲からの超過量が大きくなる。
図21(c)は、図21(b)の被写体状況から、近点被写体が距離L20から奥側の距離L21へ、さらには距離L22へ移動した場合の視差量の概念を示す図である。焦点位置は距離L11のままなので視差量曲線1620は図21(b)と同じ曲線を描くが、近点被写体が奥側にずれたことにより、距離L21の時点での視差量は、許容範囲を超えているものの、その超過量は、図21(b)の超過量よりも小さくなる。さらに距離L22まで移動すれば、その視差量は許容範囲に収まる。
すなわち、シーンに対する奥行き方向の被写体分布と、焦点を合わせる被写体の位置は、設定された許容範囲に視差量が収まるか否かを決定するパラメータであると言える。
次に、絞り値と視差量の関係について説明する。図22は、絞り値と視差量の関係を模式的に示す図である。図20と同様に、横軸は、デジタルカメラ10からの距離を表し、縦軸は、視差量とコントラストの高さを表す。また、図22(a)は、絞り値がF1.4の状態を表し、図22(b)は、絞り値がF4の状態を表し、図22(c)は、絞り値がF8の状態を表す。なお、撮影レンズ20の焦点距離はいずれの状態においても同一であり、また、デジタルカメラ10は、距離L10に位置する主要被写体に焦点を合わせている。
コントラスト曲線1610は、いずれの状態においても焦点位置までの距離である距離L10で最も高い。一方で、絞り22を絞るほど、すなわち絞り値が大きくなるほど焦点距離前後でも比較的高い値を示す。すなわち、絞り22を絞った状態で撮影された画像ほど被写界深度が深くなることを示す。視差量曲線1620は、距離L10において視差量0を示し、距離L10よりデジタルカメラ10側に近づくにつれ、傾きが大きくなるカーブを示す。他方、視差量曲線1620は、距離L10よりデジタルカメラ10側から遠ざかるにつれ、傾きが小さくなるカーブを示す。
視差量曲線1620は、絞り値が大きくなるほど、その変化がなだらかになる。すなわち、絞り値がF1.4の場合に比べ、F4、F8と推移するに従い、焦点位置より手前の視差量および奥の視差量が小さくなる。視差量が−mから+mの範囲に含まれる場合に鑑賞者が違和感、疲労感を覚えないとすると、絞り値がF8の場合であれば視差量曲線1620の全体がこの範囲に収まっているので、いずれの距離に被写体が存在しても鑑賞者は心地よく3D映像を鑑賞できる。
一方、絞り値がF1.4およびF4の場合では、視差量は、視差量曲線1620の近距離側で+mを超えている。具体的には、F1.4の場合で、距離L24よりも手前の領域で+mを超えており、F4の場合で、距離L25よりも手前の領域で+mを超えている。この場合、F4における視差量曲線1620の傾きの方が、F1.8における視差量曲線1620傾きよりも緩やかであるので、L25<L24の関係が成り立つ。これらの絞り値において、距離L24または距離L25よりも近距離に被写体が存在すれば、撮影された3D映像の鑑賞時において、鑑賞者は違和感、疲労感を覚える。
そこで、本実施形態においては、生成される画像間の視差量がターゲットとする視差量(許容視差量:例えば±mの範囲)に収まるように、視差量に影響を与える撮像条件を変更したり、画像処理に用いる立体調整パラメータを変更したりする。
まず、撮像条件の変更について説明する。図22を用いて説明したように絞り値が視差量に影響を与えるので、出力視差画像間の視差量が許容視差量に収まるように、検出した被写体分布に応じて絞り値を変更すると良い。例えば図22(a)の状況(初期絞り値がF1.4、合焦被写体が距離L10)において、近点被写体が距離L25に存在すると、その視差量は+mを超えてしまう。そこで、決定部236は、絞り値をF1.4から、距離L25における被写体に対する視差量が+mとなる絞り値であるF4に変更する。
近点被写体が許容視差量の範囲を超える場合に限らず、遠点被写体が許容視差量の範囲を超える場合でも、絞り値を大きな値に変更する。なお、近点被写体および遠点被写体の視差量が、許容視差量に対して余裕がある場合には、絞り値を小さな値、すなわち絞り22を開く方向に変更しても良い。この場合、シャッタ速度を高速側に変更したり、ISO感度を低感度側に変更したりすることができる。
各絞り値に対する合焦被写体距離と視差量曲線1620の関係は、ルックアップテーブルとして予め用意されている。決定部236は、被写体分布と許容視差量を入力値として当該ルックアップテーブルを参照すれば、変更すべき絞り値を抽出、決定することができる。
撮像条件の変更として、絞り値を変更する以外にも、フォーカス位置を変更するフォーカスシフトの手法がある。図23は、フォーカスシフトの概念を模式的に示す図である。縦軸および横軸は、図20と同様である。
コントラスト曲線1610と視差量曲線1620は、合焦被写体が距離L10に存在し、フォーカスレンズを移動させてこの被写体に焦点を合わせたときのコントラスト曲線と視差量曲線を表す。この場合、コントラスト曲線1610のピーク値は、合焦と評価される合焦閾値Esを上回っている。
近点被写体が距離L27の位置に存在すると、その視差量は、視差量曲線1620を参照すると+m0であり、許容視差量+mを超えている。そこで、フォーカスシフトにおいては、合焦閾値Esを上回る範囲でフォーカスレンズ位置を修正し、距離L27における視差量を許容範囲に収める。
図の例の場合、近点被写体に対する視差量が+mとなる視差量曲線1621を選択し、この視差量曲線1621において視差量が0となる距離Lpを抽出する。そして、フォーカスレンズ位置を変更して、距離Lpを合焦位置とする。コントラスト曲線1611は、このときのコントラスト曲線である。実際には距離L10に被写体が存在するので、当該被写体に対するコントラスト値は、図示するようにΔeだけ低下する。このときのコントラスト値が合焦閾値Esを上回っていれば良い。このようにフォーカスレンズ位置を変更して撮影された画像は、主要被写体に対するコントラスト値は若干低下するものの、画像としては合焦と評価でき、かつ、近点被写体に対する視差量は許容範囲に収まっている。
距離Lpに対するコントラスト値が合焦閾値Esを上回っていない場合には、フォーカスレンズ位置の修正は、許容されない。すなわち、視差量曲線1620において近点被写体に対する視差量が許容視差量を大きく上回る場合には、合焦閾値Esを上回る範囲でフォーカスレンズ位置を変更しても、当該視差量を許容範囲に収めることができない。この場合、例えば絞り値を大きな値に変更するなど、他の手法と併用すると良い。
フォーカスシフトによる視差量調整の場合も、各絞り値に対する合焦被写体距離と視差量曲線の関係として予め用意されているルックアップテーブルを利用すれば良い。決定部236は、被写体分布と許容視差量を入力値として当該ルックアップテーブルを参照すれば、距離Lpを抽出、決定できる。制御部201は、距離Lpに対応してフォーカスレンズの位置を変更する。制御部201は、その結果得られるコントラスト値が合焦閾値Esを上回るか否かを判断する。上回ると判断すれば、そのまま撮影シーケンスを続行する。上回らないと判断すれば、フォーカスレンズ位置を戻して、他の手法を併用するなどの制御に移行する。あるいは、実際に制御部201がフォーカスレンズを移動させることなく、焦点位置がL10からLpへシフトしたときのコントラストの減衰量を決定部236が演算し、合焦閾値Esを上回るか否かを判断しても良い。この場合、例えばコントラストAF方式であれば、距離L10に対するフォーカス調整時の、すでに取得されている実際の評価値を参照することもできる。
次に、立体調整パラメータの変更について説明する。図24は、立体調整パラメータを用いた視差量調整の概念を示す図である。図24(a)〜(c)の各図は、図21(a)〜(c)の各図に対応している。
図24(a)において設定された視差量範囲が−mから+mである場合、遠点被写体の距離L30に対する視差量曲線1620の値はこの範囲に収まっているので、遠点被写体側に関しては視差量を調整しなくても良い。しかし、近点被写体の距離L20に対する視差量曲線1620の値は+mを超えているので、近点被写体の像が視差量+mになるように、全体の視差量を調整する。
すなわち、近点被写体の像の視差量と、遠点被写体の像の視差量とが、共に設定された視差量範囲に収まるように、視差量曲線を調整する。より具体的には、設定された視差量範囲から大きく外れた側の被写体像の視差量が当該視差量範囲の限界値になるように視差量曲線を調整すれば良い。図24(a)においては、調整視差量曲線1630がこのように調整された視差量曲線である。このように調整すれば、同一シーンを構成する被写体の像の全部が、設定された視差量範囲に収まる。
図24(b)の場合も、図24(a)の場合と同様に、近点被写体の像が視差量+mになるように、全体の視差量を調整する。ただし、その調整量は、図24(a)の場合の調整量に対して大きくなる。その結果、調整視差量曲線1630の傾きは水平により近づくので、遠点被写体側の像の視差量はより抑制される。
図24(c)の場合、焦点位置は距離L11のままなので視差量曲線1620は図24(b)の場合と同一であるが、近点被写体が距離L20から距離L21へ移動したことにより、その調整量は、図24(b)の場合の調整量に対して小さくなる。さらに近点被写体がL21からL22へ移動すれば、その視差量は、調整を施さなくても設定された視差量範囲に収まっている。
以上のように、視差量曲線1620に対する調整量は、シーンに対する奥行き方向の被写体分布と、焦点を合わせる被写体の位置が取得できれば一意に定まる。調整量は、立体調整パラメータCの値と一対一の関係にあるので、決定部236は、奥行情報検出部235等からこれらの調整情報を受け取れば、立体調整パラメータCの値を決定できる。具体的には、図24に対応するルックアップテーブルが予め用意されており、決定部236は、調整情報の各値を入力してルックアップテーブルを参照すると、その入力に対する立体調整パラメータCの値を抽出、決定することができる。ルックアップテーブルは、事前のシミュレーション、実験等の結果により構築される。あるいは、ルックアップテーブルの形式に依らず、調整情報の各値を変数とする多変数関数が予め用意されていても良い。
次に許容視差量としての視差量範囲の設定について説明する。図25は、視差量範囲の制限のメニュー画面を表示するデジタルカメラの背面図である。
視差量範囲は、上述のように、下限値−m、上限値+mのように設定される。下限値と上限値の絶対値は異なっていても良い。ここでは、視差量を視差画像データにおける視差画像のピクセル単位で表す。
鑑賞者が違和感、疲労感を覚える視差量は、鑑賞者ごとに異なる。したがって、撮影時においてデジタルカメラ10のユーザである撮影者が視差量制限の設定を変更できるように、デジタルカメラ10を構成することが好ましい。
デジタルカメラ10には、視差量範囲の制限のメニューとして、例えば、図示するように4つの選択肢が設けられている。具体的には、標準的な鑑賞者が心地よいと感じる範囲がプリセットされた「標準」、標準よりも広い範囲がプリセットされ、より大きな視差量を許容する「強め」、標準よりも狭い範囲がプリセットされ、より小さな視差量しか許容しない「弱め」、および撮影者が上限値、下限値を数値入力する「マニュアル」が設けられている。「マニュアル」を選択した場合には、撮影者は、上限値としての「最大浮き上がり量」と下限値としての「最大沈み込み量」を、ピクセル単位で順次指定することができる。撮影者は、操作部208の一部であるダイヤルボタン2081を操作することにより、これらの選択、指定を行う。
本実施形態におけるデジタルカメラ10は、心地良い視差量に調整された視差画像データを連続的に生成し、これらを繋ぎ合わせて動画ファイルを生成するオート3D動画モードを、動画撮影モードのひとつとして備える。撮影者は、撮影に先立ち、操作部208の一部であるモードボタン2082を操作して、オート3D動画モードを選択する。
図26は、被写体指定を説明する図である。特に図26(a)は、あるシーンにおけるデジタルカメラ10から奥行方向の被写体分布を示し、図26(b)は、そのシーンをライブビューで表示するデジタルカメラ10の背面図である。
図26(a)に示すように、シーンは、デジタルカメラ10から近い順に木300(距離Lo)、少女301(距離Lf)、少年302(距離Lp)、女性303(距離Lr)から構成される。
そして図26(b)に示すように、このシーンを捉えたライブビュー画像が、表示部209に表示されている。ここでは、少年302が合焦被写体である。少年302が合焦状態である旨を表すAF枠310が、少年302の像に重畳して表示されている。
これまでの説明においては、デジタルカメラ10から最も近い被写体を近点被写体とした。しかし、シーンを構成する被写体は、奥行方向に対して連続的に分布している場合がある。また、シーンに対して相対的に小さい被写体、シーンに対して重要ではない被写体も存在する。したがって、必ずしもシーンにおいて最も近い被写体を近点被写体として扱わなくても良い。例えば、図26(a)のシーンにおいては、3人の人物が主な被写体であり、鑑賞時において鑑賞者はこの3人を注視することが想定される。したがって、視差量が調整されるべき被写体像はこれら3人の像であり、他の被写体像は除外して良い。そこで、制御部201は、いずれの被写体に対して視差量を調整すべきか、撮影者の指示を受け付ける。
表示部209には、ユーザ指示を受け付ける状態であることを示す、タイトル320(例えば「近点被写体を選択して下さい」)が表示されている。この状態において、ユーザは、近点被写体としたい被写体像をタッチする(図では少女301)。表示部209には操作部208の一部としてタッチパネル2083が重ねて設けられており、制御部201は、タッチパネル2083の出力を取得して、いずれの被写体を近点被写体とするかを決定する。この場合、指定された被写体よりも手前の被写体(図では木300)は、被写体分布の検出対象から除外する。なお、近点被写体に限らず、遠点被写体も同様に指示を受け付けて良い。
奥行情報検出部235は、このようにユーザ指示により指定された被写体(近点被写体から遠点被写体までの被写体)を被写体分布の検出対象とする。なお、動画撮影、コンティニュアス撮影等において、撮影画像データを連続的に生成する場合には、撮影開始時に受け付けた被写体を被写体追従により追跡して、刻々と変化する距離Lf、Lp、Lrを取得しても良い。
次にデジタルカメラ10の動画撮影における処理フローについて説明する。上述のように、生成される画像間の視差量が許容視差量に収まるようにするには、視差量に影響を与える撮像条件を変更する場合と、画像処理に用いる立体調整パラメータを変更する場合がある。両者を併用することもできるが、以下の実施例においては、これらの処理を分けて説明する。
<第1実施例>
第1実施例として、視差量に影響を与える撮像条件を変更する動画撮影の処理フローを説明する。図27は、第1実施例に係る動画撮影における処理フローである。図のフローは、撮影者によりモードボタン2082が操作されてオート3D動画モードが開始された時点から始まる。なお、視差量範囲は、事前に撮影者により設定されている。
オート3D動画モードが開始されると、決定部236は、ステップS11で、撮影者が設定した視差量範囲をシステムメモリから取得する。制御部201は、ステップS12で、AF、AEを実行する。ステップS13へ進み、制御部201は、例えば図26を用いて説明したように、タッチパネル2083を介して対象とする被写体指定をユーザから受け付ける。ステップS14へ進み、奥行情報検出部235は、ステップS13で指定を受けた被写体に対して、例えばステップS12のAF動作に伴って検出された位相差情報から、奥行方向の被写体分布を検出する。
制御部201は、ステップS15で、撮影者が録画開始ボタンを押下げる録画開始指示を待つ。録画開始指示を検出すると(ステップS15のYES)、制御部201は、ステップS16へ進む。指示を検出しない場合は、ステップS12へ戻る。なお、ステップS12へ戻った後においては、指定された被写体の追従を行い、ステップS13、S14の処理をスキップしても良い。
ステップS16において決定部236は、撮影条件を変更する。具体的には、図22を用いて説明したように絞り値を変更したり、図23を用いて説明したようにフォーカスレンズ位置を変更したりする。この他にも、視差量に影響を与える撮像条件を、設定された視差量範囲に収まるように変更しても良い。例えば、撮影レンズ20がズームレンズであれば焦点距離を変更することもできる。
ステップS17へ進み、制御部201は、変更された撮像条件に従って、再びAF,AEを実行する。そして、制御部201は、ステップS18で、駆動部204を介して撮像素子100の電荷蓄積、読み出しを実行し、1フレームとしての撮影画像データを取得する。ここで取得された撮影画像データにおける視差画像間の視差量は、設定された視差量に収まっている。
ステップS19では、動画撮影中に対象とする被写体を撮影者が変更したいと考えた場合のために、制御部201は、対象とする被写体指定をユーザから受け付ける。そして、ステップS20へ進み、奥行情報検出部235は、奥行方向の被写体分布を検出する。なお、ステップS19の処理はスキップしても良い。この場合、ステップS13の被写体指定をそのまま維持することになるので、ステップS20の処理は、ステップS17のAF、AE処理に応じた、対象被写体の被写体追従を実現する処理と言える。
制御部201は、ステップS21で、撮影者から録画停止指示を受けていないと判断すればステップS16へ戻り次のフレーム処理を実行する。録画停止指示を受けたと判断すればステップS22へ進む。
ステップS22では、動画生成部234は、連続的に生成された左側視点のカラー画像データと右側視点のカラー画像データを繋ぎ合わせ、Blu−ray3Dなどの3D対応動画フォーマットに従ってフォーマット処理を実行し、動画ファイルを生成する。そして、制御部201は、生成された動画ファイルを、メモリカードIF207を介してメモリカード220へ記録し、一連のフローを終了する。なお、メモリカード220への記録は、左側視点のカラー画像データと右側視点のカラー画像データの生成に同期して逐次実行し、録画停止指示に同期してファイル終端処理を実行しても良い。また、制御部201は、メモリカード220へ記録するに限らず、例えばLANを介して外部機器に出力するように構成しても良い。
なお、動画生成部234は、算出部233に、上述の式(1)、式(2)の立体調整パラメータCの値を1とする画像処理を実行させて、高精細な左側視点のカラー画像データと右側視点のカラー画像データを生成しても良い。
<第2実施例>
第2実施例として、画像処理に用いる立体調整パラメータを変更する動画撮影の処理フローを説明する。図28は、第2実施例に係る動画撮影における処理フローである。図27の処理フローの各処理と関連する処理については同一のステップ番号を付すことにより、異なる処理および追加的な処理の説明を除いて、その説明を省略する。
本フローにおいては、図27のフローにおけるステップS16が存在しない。ステップS15で録画ONの指示を受けると、制御部201は、ステップS17では、視差量調整のための撮影条件変更を行うことなく、AF、AEを実行する。そしてステップS18で撮影画像データを取得する。ここで取得された撮影画像データにおける視差画像間の視差量は、被写体分布および撮影条件によっては、設定された視差量に収まっていない。
決定部236は、ステップS31で、図24を用いて説明した調整情報を取得し、ステップS32で、受け取った調整情報を引数としてルックアップテーブルを参照し、立体調整パラメータCの値を決定する。
ステップS33では、算出部233は、決定部236が決定した立体調整パラメータCの値と撮影画像データとを受け取り、左側視点のカラー画像データ(RLtcプレーンデータ、GLtcプレーンデータ、BLtcプレーンデータ)および右側視点のカラー画像データ(RRtcプレーンデータ、GRtcプレーンデータ、BRtcプレーンデータ)を生成する。具体的な処理を次に述べる。
図29は、左側視点のカラー画像データと右側視点のカラー画像データである視差カラー画像データを生成するまでの、ステップS33の処理フローである。
算出部233は、ステップS101で、撮影画像データを取得する。そして、ステップS102において、図3を用いて説明したように、撮影画像データを、視差なし画像データと視差画像データにプレーン分離する。算出部233は、ステップS103で、図3を用いて説明したように分離した各プレーンデータに存在する空格子を補間する補間処理を実行する。
算出部233は、ステップS104で、各変数の初期化を行う。具体的には、まず、カラー変数Csetに1を代入する。カラー変数Csetは、1=赤、2=緑、3=青を表す。また、座標変数であるiとjに1を代入する。さらに、視差変数Sに1を代入する。視差変数Sは、1=左、2=右を表す。
算出部233は、ステップS105において、Csetプレーンの対象画素位置(i,j)から画素値を抽出する。例えばCset=1で、対象画素位置が(1,1)である場合、抽出する画素値は、Rn11である。さらに、算出部233は、ステップS106において、LtCsetプレーンデータ、RtCsetプレーンデータの対象画素位置(i,j)から画素値を抽出する。例えば対象画素位置が(1,1)である場合、抽出する画素値は、LtCset11とRtCset11である。
算出部は、ステップS107において、視差変数Sに対応する対象画素位置(i,j)の画素値を算出する。例えばCset=1、S=1で、対象画素位置が(1,1)である場合、RRLtC11を算出する。具体的には、例えば、上述の式(1)により算出する。ここで、立体調整パラメータCは、ステップS32で決定された値である。
算出部233は、ステップS108で、視差変数Sをインクリメントする。そして、ステップS109で、視差変数Sが2を超えたか否かを判断する。超えていなければステップS107へ戻る。超えていればステップS110へ進む。
算出部233は、ステップS110で、視差変数Sに1を代入すると共に、座標変数iをインクリメントする。そして、ステップS111で、座標変数iがi0を超えたか否かを判断する。超えていなければステップS105へ戻る。超えていればステップS112へ進む。
算出部233は、ステップS112で、座標変数iに1を代入すると共に、座標変数jをインクリメントする。そして、ステップS113で、座標変数jがj0を超えたか否かを判断する。超えていなければステップS105へ戻る。超えていればステップS114へ進む。
ステップS114まで進むと、Csetに対する左右それぞれの全画素の画素値が揃うので、算出部233は、これらの画素値を並べて、プレーン画像データを生成する。例えばCset=1である場合、RLtcプレーンデータとRRtcプレーンデータを生成する。
ステップS115ヘ進み、算出部233は、座標変数jに1を代入すると共に、カラー変数Csetをインクリメントする。そして、ステップS116で、カラー変数Csetが3を超えたか否かを判断する。超えていなければステップS105へ戻る。超えていれば、左側視点のカラー画像データ(RLtcプレーンデータ、GLtcプレーンデータ、BLtcプレーンデータ)および右側視点のカラー画像データ(RRtcプレーンデータ、GRtcプレーンデータ、BRtcプレーンデータ)の全てが揃ったとして、図28のフローに戻る。
次に、図2を用いて説明した開口マスクの好ましい開口形状について説明する。図30は、好ましい開口形状を説明する図である。
視差Lt画素の開口部105、および視差Rt画素の開口部106は、それぞれ対応する画素に対して中心を含んで互いに反対方向に偏位していることが好ましい。具体的には、開口部105および106のそれぞれが、画素中心を通る仮想的な中心線322と接する形状であるか、あるいは、中心線322を跨ぐ形状であることが好ましい。
特に、図示するように、開口部105の形状と開口部106の形状は、視差なし画素の開口部104の形状を中心線322で分割したそれぞれの形状と同一であることが好ましい。別言すれば、開口部104の形状は、開口部105の形状と開口部106の形状を隣接させた形状に等しいことが好ましい。
以上の説明においては、算出部233が用いる計算式は、加重相加平均を利用した上記式(1)(2)を採用したが、これに限らず様々な計算式を採用することができる。例えば、加重相乗平均を利用すれば、上記式(1)(2)と同様に表して、上記式(3)(4)を計算式として採用できる。この場合、維持されるぼけ量が、視差なし画素の出力によるぼけ量ではなく、視差画素の出力によるぼけ量となる。
また、他の計算式としては、上記式(1)(2)と同様に表して、上記式(5)(6)を採用しても良い。この場合、GLtcmn、GRtcmn、BLtcmn、BRtcmnをそれぞれ算出するときも、立方根の項は変化しない。
さらには、上記式(7)(8)を採用しても良い。この場合も、GLtcmn、GRtcmn、BLtcmn、BRtcmnをそれぞれ算出するときも、立方根の項は変化しない。
次に表示装置との連携について説明する。図31は、デジタルカメラ10とTVモニタ80との連携を説明する図である。TVモニタ80は、例えば液晶から構成される表示部40、デジタルカメラ10から取り出されたメモリカード220を受容するメモリカードIF81、鑑賞者が手元で操作するリモコン82等により構成されている。TVモニタ80は3D画像の表示に対応している。3D画像の表示形式は、特に限定されない。例えば、右目用画像と左目用画像を時分割で表示しても良いし、水平方向または垂直方向に短冊状にそれぞれが並んだインターレースであっても良い。また、画面の一方側と他方側に並ぶサイドバイサイド形式であっても良い。
TVモニタ80は、左側視点のカラー画像データと右側視点のカラー画像データを含んでフォーマット化された動画ファイルをデコードして、3D画像を表示部40に表示する。この場合、TVモニタ80は、規格化された動画ファイルを表示する一般的な表示装置としての機能を担う。
しかしながら、TVモニタ80は、図1を用いて説明した制御部201の機能の少なくとも一部、および画像処理部205の少なくとも一部の機能を担う画像処理装置として機能させることもできる。具体的には、図1で説明した決定部236と、算出部233,動画生成部234を包含する画像処理部とをTVモニタ80に組み込む。このように構成することにより、実施例2におけるデジタルカメラ10とTVモニタ80の組み合わせによる機能分担とは異なる機能分担を実現することができる。
具体的には、デジタルカメラ10は、立体調整パラメータによる画像処理を実行せず、奥行情報検出部235が検出した奥行情報を、生成した撮影画像データに関連付ける。そして、TVモニタ80は、画像処理装置として、関連付けられた奥行情報を参照して立体調整パラメータCの値を決定し、取得した画像データに対して立体調整パラメータを用いた画像処理を実行する。TVモニタ80は、このように視差量が調整された3D画像を表示部40に表示する。
上記の変形例においては、鑑賞者が、TVモニタ80での再生時に、一部の調整情報を入力できるように構成しても良い。例えば、鑑賞者は、リモコン82を操作して、視差量範囲を入力できる。TVモニタ80は、入力された視差量範囲を調整情報として取得し、決定部236は、この視差量範囲に従って立体調整パラメータCの値を決定する。このように構成すれば、TVモニタ80は、鑑賞者ごとの好みに応じた3D画像を表示することができる。
なお、TVモニタ80を画像処理装置の一例として説明したが、画像処理装置はさまざまな形態を採り得る。例えば、PC、携帯電話、ゲーム機器など、表示部を備える、あるいは表示部に接続される機器は画像処理装置になり得る。
以上の本実施形態においては動画撮影を前提として説明したが、検出した奥行情報に基づいて視差量を調整した画像データを出力する構成は、もちろん静止画撮影についても適用できる。このように撮影された静止画像は、左右の画像間に極端な視差を生じさせず、鑑賞者に違和感を与えない。
また、以上の実施形態においては、対象とする被写体をユーザの指示により受け付けたが、制御部201が自動的に対象とする被写体を選定しても良い。例えば、制御部201は、人物認識処理により、シーンに含まれる人物像に限って対象被写体とすることができる。
以上の本実施形態において説明した各処理フローは、制御部を制御する制御プログラムによって実行される。制御プログラムは、内蔵する不揮発性メモリに記録されており、適宜ワークメモリに展開されて各処理を実行する。あるいは、サーバに記録された制御プログラムが、ネットワークを介して各装置に送信され、ワークメモリに展開されて各処理を実行する。または、サーバに記録された制御プログラムがサーバ上で実行され、各装置は、ネットワークを介して送信されてくる制御信号に即して処理を実行する。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、請求の範囲の記載から明らかである。
請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
本発明の第1の態様における撮像装置は、同一シーンを撮像して生成される、基準画像データ、基準画像データの被写体像に対して一方向に第1視差を有する第1視差画像データ、および一方向とは反対の他方向に第2視差を有する第2視差画像データを包含する撮影画像データを生成する撮像部と、視差量調整に関する調整条件を取得する調整条件取得部と、調整条件に基づいて、基準画像データ、第1視差画像データおよび第2視差画像データを処理することにより、一方向に第1視差とは異なる第3視差を有する第3視差画像データと、他方向に第2視差とは異なる第4視差を有する第4視差画像データとを生成する画像処理部とを備え、画像処理部は、調整条件に基づいて調整値を決定し、基準画像データの対象画素位置における基準画素値、第1視差画像データの対象画素位置における第1視差画素値、および第2視差画像データの対象画素位置における第2視差画素値を抽出して、計算式
P 3 =2P 0 ×(C・P 1 +(1−C)P 2 )/(P 1 +P 2 )
P 4 =2P 0 ×((1−C)P 1 +C・P 2 )/(P 1 +P 2 )
(P 0 :基準画素値、P 1 :第1視差画素値、P 2 :第2視差画素値、P 3 :第3視差画素値、P 4 :第4視差画素値、C:調整値(実数、ただし、0.5<C<1))
により、第3視差画像データを形成する第3視差画素値と第4視差画像データを形成する第4視差画素値とを算出する。
本発明の第2の態様における撮像装置は、同一シーンを撮像して生成される、基準画像データ、基準画像データの被写体像に対して一方向に第1視差を有する第1視差画像データ、および一方向とは反対の他方向に第2視差を有する第2視差画像データを包含する撮影画像データを生成する撮像部と、視差量調整に関する調整条件を取得する調整条件取得部と、調整条件に基づいて、基準画像データ、第1視差画像データおよび第2視差画像データを処理することにより、一方向に第1視差とは異なる第3視差を有する第3視差画像データと、他方向に第2視差とは異なる第4視差を有する第4視差画像データとを生成する画像処理部とを備え、画像処理部は、調整条件に基づいて調整値を決定し、基準画像データの対象画素位置における基準画素値、第1視差画像データの対象画素位置における第1視差画素値、および第2視差画像データの対象画素位置における第2視差画素値を抽出して、計算式
P 3 =P 0 ×(P 1 /P 2 ) (C−0.5)
P 4 =P 0 ×(P 2 /P 1 ) (C−0.5)
(P 0 :基準画素値、P 1 :第1視差画素値、P 2 :第2視差画素値、P 3 :第3視差画素値、P 4 :第4視差画素値、C:調整値(実数、ただし、0.5<C<1))
により、第3視差画像データを形成する第3視差画素値と第4視差画像データを形成する第4視差画素値とを算出する。
本発明の第3の態様における画像処理装置は、基準画像データ、基準画像データの被写体像に対して一方向に第1視差を有する第1視差画像データ、および一方向とは反対の他方向に第2視差を有する第2視差画像データを包含する撮影画像データと、撮影画像データに関連付けられた視差量調整に関する調整条件とを取り込む取込部と、調整条件に基づいて、基準画像データ、第1視差画像データおよび第2視差画像データを処理することにより、一方向に第1視差とは異なる第3視差を有する第3視差画像データと、他方向に第2視差とは異なる第4視差を有する第4視差画像データとを生成する画像処理部とを備え、画像処理部は、調整条件に基づいて調整値を決定し、基準画像データの対象画素位置における基準画素値、第1視差画像データの対象画素位置における第1視差画素値、および第2視差画像データの対象画素位置における第2視差画素値を抽出して、計算式
P 3 =2P 0 ×(C・P 1 +(1−C)P 2 )/(P 1 +P 2 )
P 4 =2P 0 ×((1−C)P 1 +C・P 2 )/(P 1 +P 2 )
(P 0 :基準画素値、P 1 :第1視差画素値、P 2 :第2視差画素値、P 3 :第3視差画素値、P 4 :第4視差画素値、C:調整値(実数、ただし、0.5<C<1))
により、第3視差画像データを形成する第3視差画素値と第4視差画像データを形成する第4視差画素値とを算出する。
本発明の第4の態様における画像処理装置は、基準画像データ、基準画像データの被写体像に対して一方向に第1視差を有する第1視差画像データ、および一方向とは反対の他方向に第2視差を有する第2視差画像データを包含する撮影画像データと、撮影画像データに関連付けられた視差量調整に関する調整条件とを取り込む取込部と、調整条件に基づいて、基準画像データ、第1視差画像データおよび第2視差画像データを処理することにより、一方向に第1視差とは異なる第3視差を有する第3視差画像データと、他方向に第2視差とは異なる第4視差を有する第4視差画像データとを生成する画像処理部とを備え、画像処理部は、調整条件に基づいて調整値を決定し、基準画像データの対象画素位置における基準画素値、第1視差画像データの対象画素位置における第1視差画素値、および第2視差画像データの対象画素位置における第2視差画素値を抽出して、計算式
P 3 =P 0 ×(P 1 /P 2 ) (C−0.5)
P 4 =P 0 ×(P 2 /P 1 ) (C−0.5)
(P 0 :基準画素値、P 1 :第1視差画素値、P 2 :第2視差画素値、P 3 :第3視差画素値、P 4 :第4視差画素値、C:調整値(実数、ただし、0.5<C<1))
により、第3視差画像データを形成する第3視差画素値と第4視差画像データを形成する第4視差画素値とを算出する。
本発明の第5の態様における撮像装置の制御プログラムは、同一シーンを撮像して生成される、基準画像データ、基準画像データの被写体像に対して一方向に第1視差を有する第1視差画像データ、および一方向とは反対の他方向に第2視差を有する第2視差画像データを包含する撮影画像データを生成する撮像ステップと、視差量調整に関する調整条件を取得する調整条件取得ステップと、調整条件に基づいて調整値を決定し、基準画像データの対象画素位置における基準画素値、第1視差画像データの対象画素位置における第1視差画素値、および第2視差画像データの対象画素位置における第2視差画素値を抽出して、計算式
P 3 =2P 0 ×(C・P 1 +(1−C)P 2 )/(P 1 +P 2 )
P 4 =2P 0 ×((1−C)P 1 +C・P 2 )/(P 1 +P 2 )
(P 0 :基準画素値、P 1 :第1視差画素値、P 2 :第2視差画素値、P 3 :第3視差画素値、P 4 :第4視差画素値、C:調整値(実数、ただし、0.5<C<1))
により、一方向に第1視差とは異なる第3視差を有する第3視差画像データを形成する第3視差画素値と、他方向に第2視差とは異なる第4視差を有する第4視差画像データを形成する第4視差画素値とを算出する画像処理ステップとをコンピュータに実行させる。
本発明の第6の態様における撮像装置の制御プログラムは、同一シーンを撮像して生成される、基準画像データ、基準画像データの被写体像に対して一方向に第1視差を有する第1視差画像データ、および一方向とは反対の他方向に第2視差を有する第2視差画像データを包含する撮影画像データを生成する撮像ステップと、第1視差および第2視差とは異なる視差を有する調整視差画像データを生成するための視差量調整に関する調整条件を取得する調整条件取得ステップと、調整条件に基づいて調整値を決定し、基準画像データの対象画素位置における基準画素値、第1視差画像データの対象画素位置における第1視差画素値、および第2視差画像データの対象画素位置における第2視差画素値を抽出して、計算式
P 3 =P 0 ×(P 1 /P 2 ) (C−0.5)
P 4 =P 0 ×(P 2 /P 1 ) (C−0.5)
(P 0 :基準画素値、P 1 :第1視差画素値、P 2 :第2視差画素値、P 3 :第3視差画素値、P 4 :第4視差画素値、C:調整値(実数、ただし、0.5<C<1))
により、第3視差画像データを形成する第3視差画素値と第4視差画像データを形成する第4視差画素値とを算出し、調整条件を撮影画像データに関連付けて出力する出力ステップとをコンピュータに実行させる。
本発明の第7の態様における撮像装置の制御プログラムは、基準画像データ、基準画像データの被写体像に対して一方向に第1視差を有する第1視差画像データ、および一方向とは反対の他方向に第2視差を有する第2視差画像データを包含する撮影画像データと、撮影画像データに関連付けられた視差量調整に関する調整条件とを取り込む取込ステップと、調整条件に基づいて調整値を決定し、基準画像データの対象画素位置における基準画素値、第1視差画像データの対象画素位置における第1視差画素値、および第2視差画像データの対象画素位置における第2視差画素値を抽出して、計算式
P 3 =2P 0 ×(C・P 1 +(1−C)P 2 )/(P 1 +P 2 )
P 4 =2P 0 ×((1−C)P 1 +C・P 2 )/(P 1 +P 2 )
(P 0 :基準画素値、P 1 :第1視差画素値、P 2 :第2視差画素値、P 3 :第3視差画素値、P 4 :第4視差画素値、C:調整値(実数、ただし、0.5<C<1))
により、一方向に第1視差とは異なる第3視差を有する第3視差画像データを形成する第3視差画素値と、他方向に第2視差とは異なる第4視差を有する第4視差画像データを形成する第4視差画素値とを算出する画像処理ステップとをコンピュータに実行させる。