<第1の実施形態>
以下、図面を参照して本発明の第1の実施形態を説明する。
図1は本実施形態に係るデジタルカメラ1の外観図である。デジタルカメラ1の本体2の上面には、シャッタキー4が設けられている。デジタルカメラ1の本体2の前面には、光学レンズ装置5Aと光学レンズ装置5Bとが設けられている。
シャッタキー4は、いわゆる半押し機能を備えたものであり、ピント合わせのための半押し操作と撮影指示(撮影画像データの記録指示)のための全押し操作とが可能な構成である。
光学レンズ装置5Aと光学レンズ装置5Bとは、光学レンズ装置5Aの光軸と光学レンズ装置5Bの光軸とが距離g(mm)だけ離れるように配置されている。
図2はデジタルカメラ1の各部分の機能を示すブロック図である。図2を参照してデジタルカメラ1の電気的構成を説明する。
デジタルカメラ1は装置全体を制御するCPU8を中心として構成されている。CPU8には光学レンズ装置5Aと光学レンズ装置5Bとが接続されている。光学レンズ装置5AにはCCD6Aが接続されている。光学レンズ装置5BにはCCD6Bが接続されている。CCD6AとCCD6Bには画像処理部7が接続されている。CPU8には、画像処理部7とメモリカード9と、DRAM10と、フラッシュメモリ11と、表示部12と、キーブロック13とが接続されている。
光学レンズ装置5Aと光学レンズ装置5Bとは、それぞれが被写体の光像を結像する装置である。光学レンズ装置5Aと光学レンズ装置5Bとは、それぞれが不図示のフォーカスレンズ及びズームレンズとからなる撮影レンズと、これら撮影レンズを駆動する不図示の駆動機構とで構成されている。光学レンズ装置5Aの光軸と光学レンズ装置5Bの光軸とは平行となっている。光学レンズ装置5Aの構成と光学レンズ装置5Bの構成とは同一である。そのため、光学レンズ装置5Aと光学レンズ装置5Bの焦点距離はそれぞれf(mm)である。
CCD6Aは、光学レンズ装置5Aにて結像された被写体の光像を光電変換して撮像信号を生成する撮像素子である。CCD6Aは、CCD6Aの撮像面の中心が光学レンズ装置5Aの光軸上にあるように配置されている。CCD6Bは、光学レンズ装置5Bにて結像された被写体の光像を光電変換して撮像信号を生成する撮像素子である。CCD6Bは、CCD6Bの撮像面の中心が光学レンズ装置5Bの光軸上にあるように配置されている。CCD6Aの構成とCCD6Bの構成とは同一である。
画像処理部7は、CCD6AとCCD6Bとによりそれぞれ生成された撮像信号をサンプリングしてノイズを除去しデジタル信号に変換する。画像処理部7は、デジタル信号に変換された撮像信号に対し輝度信号処理等のデータ処理を行う。画像処理部7は、輝度信号処理等が行われたデジタル信号に対して色分離等の色処理を行い、Y(輝度信号),Cb(青色差信号),Cr(赤色差信号)の撮影画像データを生成する。また、画像処理部7は、撮影画像データの圧縮、及び圧縮されている撮影画像データの伸長などの各種画像処理を行う。
CPU(中央処理装置)8はデジタルカメラ1の全体制御を行う。CPU8はフラッシュメモリ9に格納されたプログラムとの協働で、DRAM10を作業用メモリとして動作する。
フラッシュメモリ9には、CPU13によるデジタルカメラ1のAF制御、AE制御等に必要なプログラムとデータが格納されている。フラッシュメモリ9には、後述するフローチャートに示す制御を実行するためのプログラムやデータ(上記の距離gや焦点距離fや許容錯乱円の直径cの情報など)が格納されている。また、フラッシュメモリ9には撮影画像データを記録することもできる。
DRAM10は、順次撮影される撮影画像データを一時的に記憶するバッファメモリとして使用される。DRAM10は、CPU10が処理を実行するに際し作業用メモリとしても使用される。
メモリカード11は、撮影指示がなされる度に、CCD6AとCCD6Bとにより撮影された被写体像信号から生成された撮影画像データがそれぞれ記録される記録媒体である。メモリカード11はデジタルカメラ1の本体2に着脱自在に接続されている。
表示部12は、不図示の液晶ディスプレイとその駆動回路とで構成されている。デジタルカメラ1が撮影待機状態にあるときには、CCD6Aによって撮像された被写体像をライブビュー画像として液晶ディスプレイに表示する。また、表示部12は、デジタルカメラ1が撮影画像データを再生するときには、メモリカード11から読み出された撮影画像データに基づく画像を液晶ディスプレイに表示する。また、表示部12は、タッチパネルの機能も備えている。
キーブロック13は、シャッタキー4や不図示のモードキー、SETキー、十字キー、撮影モード選択キー等の複数の操作キーから構成される。キーブロック13は、ユーザのキー操作に応じた操作信号をCPU8へと送る。
図3を参照して、デジタルカメラ1の本実施形態に係る動作を説明する。ユーザがキーブロック13に対する所定の操作により撮影モードを設定すると、CPU8は、フラッシュメモリ9から読み出してDRAM10に展開したプログラムとの協働により、図3のフローチャートに示される撮影モードの処理を実行する。
図4を参照して本実施形態における撮影状況を説明する。図4(A)は、デジタルカメラ1と各被写体とを上方から見た図である。図4(A)に示されるように、本実施形態における撮影場所にはデジタルカメラ1と、被写体である人物41と人物42と車43と建物44とが存在する。デジタルカメラ1に対して近い順に、人物41、人物42、車43、建物44が並んでいる。図4(B)には、デジタルカメラ1が捉えることができる被写体像の様子を示されている。
図3に戻り説明を続ける。撮影モードが設定されると、CPU8は、CCD6Aから順次撮り込まれDRAM10に順次蓄積された撮影画像データを表示部12にライブビュー画像を表示する処理を開始する(ステップSA1)。
そして、CPU8は、シャッタキー4が半押しされたか否かを判断すべく待機状態になる(ステップSA2)。この状態において、CPU8は、シャッタキー4が半押しされたことを検知しない場合(ステップSA2;NO)、ステップS1へと処理を戻し、ライブビュー画像を表示させ続ける。一方、ユーザによりシャッタキー4が半押しされると、CPU8はこの半押し操作に応じた操作信号を検知することにより、シャッタキー4が半押しされたと判断する(ステップSA2;YES)。
すると、CPU8は、直ちに通常のAF制御によりフォーカス調整を行う。すなわち、CPU8は、CCD6AとCCD6Bのそれぞれの撮影範囲内における中央領域のフォーカスエリアを対象としたピント合わせを実行するとともに、通常のAE制御(いわゆるプログラムAE制御)によりISO感度とシャッタ速度とを調整する(ステップSA3)。
しかる後、CPU8は、シャッタキー4が全押しされたか否かを判断すべく待機状態になる(ステップSA4)。この状態において、CPU8は、シャッタキー4が全押しされたことを検知しない場合(ステップSA4;NO)、待機状態のままとなる。一方、ユーザによりシャッタキー4が全押しされると、CPU8は、この全押し操作に応じた操作信号を検知することによりシャッタキー4が全押しされたと判断する(ステップSA4;YES)。
すると、CPU8は、CCD6AとCCD6Bとにそれぞれに蓄積されている被写体像信号に対し直ちに撮影処理を実行して2枚の撮影画像データ50A,50Bを生成し、生成した2枚の撮影画像データ50A,50BをそれぞれJPEG方式で圧縮させる(ステップSA5)。
図5(A)に撮影画像データ50Aにより表現される撮影画像(CCD6Aにより撮影された撮影画像)が示されている。図5(B)に撮影画像データ50Bにより表現される撮影画像(CCD6Bにより撮影された撮影画像)が示されている。
これら2つの撮影画像はそれぞれ光学レンズ装置5Aと光学レンズ装置5Bとによりそれぞれ取り込まれた被写体像であるため視差が生じている。そのため、図5(A)に示される撮影画像における各被写体の位置関係と、図5(B)に示される撮影画像における各被写体の位置関係とが異なっている。
図3に戻り、CPU8は、2枚の撮影画像データ50A,50Bのそれぞれについてヘッダデータを生成し、ヘッダデータ及び圧縮された撮影画像データからなる画像ファイルを2つ生成し、生成した2つの画像ファイルをメモリカード11に一旦記録させる(ステップSA6)。
次に、CPU8は、距離情報算出処理(ステップSA7)、距離情報補正処理(ステップSA8)を行い、撮影モードの処理を終了させる。ステップSA7における距離情報算出処理の詳細と、ステップSA8における距離情報補正処理の詳細とは後述する。
図6を参照して、ステップSA7における距離情報算出処理の際に利用するステレオ法の原理を説明する。ステレオ法とは、2台以上のカメラで被写体を撮影し、三角測量の原理を用いて各画像に写る被写体の位置の違いから3次元情報を得るための周知の方法である。図6はステレオ法の原理を説明するための概念図である。
図6において、OAは実空間においてCCD6Aの撮像面(受光面)の中心が存在する位置である。OBは実空間においてCCD6Bの撮像面(受光面)の中心が存在する位置である。ZAは光学レンズ装置5Aの光軸であり、ZBは光学レンズ装置5Bの光軸である。前述の通り、光軸ZAと光軸ZBとは平行であり、これらは距離g(mm)だけ離れている。
座標面CAはCCD6Aの撮像面上の座標を規定するものである。座標面CAは光軸ZAと直交しており、座標面CAの原点OAは光軸ZA上に配置されている。座標面CAは、水平方向を示すu軸と垂直方向を示すv軸とにより規定される。座標面CA上の任意の座標を(u,v)とする。
座標面CBはCCD6Bの撮像面上の座標を規定するものである。座標面CBは光軸ZBと直交しており、座標面CBの原点OBは光軸ZB上に配置されている。座標面CBは水平方向を示すu’軸と垂直方向を示すv’軸とにより規定される。座標面CB上の任意の座標を(u’,v’)とする。
いま、図6に示されるように、CCD6A,CCD6Bから離れた地点に被写体60がいる場合を考える。実空間における被写体60の位置の座標を(X,Y,Z)とする。そして、被写体60からの光像61,61が、座標面CA上の座標(u,v)で示される位置62AにおいてCCD6Aにより受光され、座標面CB上の座標(u’,v’)で示される位置62BにおいてCCD6Bにより受光されるものとする。
すると、実空間における被写体60の座標(X,Y,Z)の各値は、それぞれ下記式(1)により示されることが知られている。但し、下記式(1)において、gは上述の光軸ZAと光軸ZBとの間の距離であり、fは光学レンズ装置5A(光学レンズ装置5B)の焦点距離である。
X=g・u/(u−u’)
Y=g・v/(u−u’) (1)
Z=g・f/(u−u’)
このようにして、2つのCCD6A,6Bによりそれぞれ撮影される2つの画像に写る被写体の位置の違いから被写体の3次元情報を得る方法がステレオ法である。
次に、図7に示されるフローチャートを参照して、ステップSA7の距離情報算出処理の詳細な内容を説明する。本実施形態では、ステップSA7の処理において、上述のステレオ法の原理を利用して撮影時における被写体とデジタルカメラ1との距離を算出する。
ステップSA6の処理の後、CPU8は、メモリカードに記録された撮影画像データ50Aと撮影画像データ50Bとを読み出し、読み出したこれら撮影画像データをDRAM10に保持させる(ステップSB1)。
次に、CPU8は、DRAM10上に保持された撮影画像データ50Aにより表現される撮影画像(図5(A)に示される撮影画像)における全ての特徴点を検出し、検出した特徴点を表現する画像データをDRAM10に保持させる(ステップSB2)。ここで、特徴点とは、周囲の領域に比べて色や輝度が大きく他の領域と識別できる領域である。例えば、撮影画像に写る人物の目や口の領域が特徴点となる。
次に、CPU8は、撮影画像データ50Aにより表現される撮影画像から検出された全ての特徴点の中から、1度も指定されていない特徴点を1つ指定する(ステップSB3)。
次に、CPU8は、ステップSB3の処理において指定された特徴点の画像データ50A上の座標(u,v)を特定し、特定した特徴点の座標をDRAM10に保持させる(ステップSB4)。
次に、CPU8は、ステップSB4の処理において特定された特徴点の座標(u,v)に対応する、撮影画像データ50B上の特徴点(対応点)を検出する(ステップSB5)。具体的には、CPU8は、ステップSB3の処理において指定された特徴点を表現する画像データをテンプレート画像として抽出する。そして、CPU8は、撮影画像データ50Bにおいてこのテンプレート画像を走査させる。CPU8は、撮影画像データ50Bとテンプレート画像との相関演算を行い、最も相関性(一致度)が高い領域を、撮影画像データ50における対応点、つまり撮影画像データ50Bにおける撮影画像データ50Aの特徴点に対応する点として検出する。
次に、CPU8は、ステップSB5の処理において検出された対応点の座標(u’,v’)を特定し、特定した特徴点の座標をDRAM10に保持させる(ステップSB6)。
次に、CPU8は、ステップSB3の処理において指定された特徴点の実空間における座標(X,Y,Z)を算出する(ステップSB7)。具体的には、CPU8は、DRAM10に保持されている特徴点の座標と対応点の座標の各値u,v、u’,v’と、フラッシュメモリ9に予め記録されている光学レンズ5Aと光学レンズ装置5B間の距離情報gと焦点距離情報fとを用いて、上記式(1)に従い、ステップSB3の処理において指定された特徴点の実空間における座標(X,Y,Z)を算出する。
次に、CPU8は、ステップSB3の処理において指定された特徴点情報とステップSB8の処理において算出された特徴点の座標情報とを対応付けた点群情報81を、DRAM10上に保持させておく(ステップSB8)。
次に、CPU8は、ステップSB3の処理において1度も指定されていない特徴点があるか否かを判断する(ステップSB9)。CPU8は、ステップSB3の処理において1度も指定されていない特徴点があると判断すれば、ステップSB3へ処理を戻す(ステップSB9;YES)。
ステップSB3に処理が戻されると、CPU8は、ステップSB3からステップSB8までの各処理をくり返し、指定されていない特徴点の実空間における座標を算出し記録する。このようにして、CPU8は、ステップSB2の処理において検出された全ての特徴点に対応する実空間における座標を算出する。
図8に、被写体の特徴点情報とその座標情報とを対応付けた点群情報81の様子が示されている。図8に示されるように、例えば、人物41の特徴点1に対応する、X座標の値は0.05(m)、Y座標の値は0.10(m)、Z座標の値は2.00(m)である。
CPU8は、全ての特徴点が指定されると、1度も指定されていない特徴点がないと判断して(ステップSB9;NO)、図7のフローチャートに示される距離情報算出処理を終了させる。
次に、図9に示されるフローチャートを参照して、ステップSA8の距離情報補正処理の詳細な内容を説明する。
ステップSA7の処理の後、CPU8は、DRAM10上に保持されていた点群情報81を用いて、各距離情報と同じ距離情報に対応する特徴点の個数との対応関係を示す距離別特徴点情報を生成する(ステップSC1)。
本実施形態では、この距離別特徴点情報を生成する際に、ステップSA7の処理において算出された、特徴点の実空間における座標(X,Y,Z)のうちZ座標の値を距離情報として用いる。CPU8は、各特徴点に対応する距離情報(Z座標の値)を全て特定し、同じ距離情報に対応する特徴点の個数情報を算出する。そして、CPU8は、距離情報ごとに算出した特徴点の個数情報を示す点を座標平面にプロットしていくことで、距離別特徴点情報としての特徴点の分布図を生成する。
図10(A)に、CPU8により生成された特徴点の分布図が示されている。図10(A)に示される特徴点の分布図において、横軸は実空間におけるデジタルカメラ1から被写体の各特徴点の存在領域までの距離を示し、縦軸は各距離において存在する被写体の特徴点の個数を示す。図10(A)において、縦軸の向きは上方向であり、横軸の向きは右方向である。
図10(A)の特徴点の分布図には、分布曲線90(太い実線で示される曲線)が示されている。この分布曲線90は、プロットされた、各距離情報に対応する特徴点の個数情報を示す点を曲線で結んだものである。
分布曲線90上には3つの山部分91,92,93が存在する。図10(A)において、山部分91は、図4(A)に示されるデジタルカメラ1からの距離が最も短い地点に位置していた人物41と人物42との特徴点の存在を示している。山部分92は、人物41,42の次にデジタルカメラ1からの距離が短い地点に位置していた車43の特徴点の存在を示している。山部分93は、デジタルカメラ1からの距離が最も遠い地点に位置していた建物44の特徴点の存在を示している。
また、図4(A)に示されるように、撮影時にはデジタルカメラ1から人物41までの間には被写体(特徴点)が存在していなかった。そのため、図10(A)に示されるように、原点から山部分91(人物41の特徴点の存在を示す山)までの距離範囲においては、分布曲線90は存在しない。
同様に図4(A)に示されるように、撮影時には車43から建物44までの間には被写体(特徴点)が存在していなかった。そのため、図10(A)に示されるように、山部分92と山部分93との間の範囲においては分布曲線90の値(特徴点の個数)は全て0となっている。
図9に戻り、CPU8は、分布曲線90の変化開始点を検出する(ステップSC2)。具体的には、まずCPU8は、分布曲線90から、各特徴点の個数情報の中で最小値に近い順に、最小値となる個数情報および最小値に近い複数の個数情報を順次特定する。次に、CPU8は、特定された各個数情報に対応する距離情報を全て特定する。
本実施形態では、CPU8は、各特徴点の個数情報の中で最小値および最小値に近い複数の個数情報に対応する各距離情報としては、分布曲線90の始点94に対応する距離情報、山部分92の終点95に対応する距離情報、山部分93の始点に対応する距離情報、山部分93の終点に対応する距離情報の4つの距離情報が特定される。
そして、CPU8は、特定された4つの距離情報のうち最も小さい距離情報に対応する点を変化開始点として検出する。本実施形態においては、図10(A)に示されるように、分布曲線90の始点94が変化開始点として検出される。
次に、CPU8は、分布曲線90の変化終了点を検出する(ステップSC3)。具体的には、CPU8は、分布曲線90から、先に検出された4つの各距離情報のうち、2番目に小さい距離情報に対応する点を検出する。本実施形態においては、図10(A)に示されるように、山部分92の終点95が変化終了点として検出される。本実施形態においては、変化終了点95に対応する距離情報は4.20(m)である。
次に、CPU8は、DRAM10上に保持されている点群情報81に含まれる距離情報に対して、変化終了点95に対応する距離情報よりも大きい距離範囲に属する距離情報の全てを、変化終了点95に対応する距離情報(4.20(m))へと変更する補正を行う(ステップSC4)。
ステップSC4の処理によって、図10(B)に示されるように、変化終了点95以降に存在する山部分93(建物44の特徴点の存在を示す山)に対応する距離情報の全てが、変化終了点95に対応する距離情報(4.20(m))へと補正される。これにより、図10(B)に示されるように、山部分93の情報は山部分931の情報へと補正されることとなる。
図11(A)に、ステップSC4の処理により補正された点群情報82の様子が示されている。図8に示される元の点群情報81に比べ、図11(A)に示される補正後の点群情報82においては、建物44の各特徴点に対応する全ての距離情報(Z座標の値)が変化終了点85の距離情報である4.20(m)へと補正されている。
図12を参照して、ステップSC4の処理について補足説明をする。図12は、ステップSC4の処理がなされた後の撮影環境の仮想的な変化を示す概念図である。
ステップSC4の処理により、点群情報において建物44の各特徴点に対応する距離情報が小さくなるように補正された。そのため、補正後の点群情報82に基づく仮想的な撮影環境は、図12に示されるように、あたかもデジタルカメラ1の位置に建物44の位置が近づいたかのようになっている。
そして、点群情報において、建物44の全ての特徴点に対応する各距離情報が変化終了地点95に対応する距離情報となり均一化された。そのため、図12に示されるように、建物44の奥行きが失われ、建物44はあたかも平面51になったかのようになっている。
図9に戻り、CPU8は、ステップSC4の処理に引き続き、変化開始点94の距離情報以上かつ変化終了点95の距離情報以下の距離情報で構成される距離範囲を、3次元表示距離範囲として設定する(ステップSC5)。3次元表示距離範囲とは、後述する再生モードにおいて撮影された被写体像が3次元的に表示される距離範囲のことである。図10(B)には、本実施形態における3次元表示距離範囲96が示されている。
次に、CPU8は、設定された3次元表示距離範囲96が所定の閾値以上であるか否かを判断する(ステップSC6)。CPU8は、設定された3次元表示距離範囲96が所定の閾値未満であれば(ステップSC6;NO)、ステップSC8へと処理を進める。本実施形態において閾値は1(m)である。閾値は1(m)でなくともよい。
一方、設定された3次元表示距離範囲96が所定の閾値以上であれば(ステップSC6;YES)、CPU8は、3次元表示距離範囲96が閾値(1(m))と同じ値の距離範囲となるように、補正後の点群情報82に含まれる距離情報のうち3次元表示距離範囲96に属する距離情報を補正する(ステップSC7)。
具体的には、CPU8は、補正前の3次元表示距離範囲96に属する各距離情報の平均値を予め算出しておく。次に、CPU8は、補正前の3次元表示距離範囲96に含まれる各距離情報について、数直線上で隣接する各距離情報間の差分値の比率を全て予め算出しておく。
これらの算出処理の後、CPU8は、補正前の3次元表示距離範囲96に属する全ての距離情報が、閾値(1(m))と同じ値の距離範囲に含まれるように、点群情報82における3次元表示距離範囲96に属する各距離情報を補正する。
ステップSC7の処理の際、CPU8は、補正前の3次元表示距離範囲96に属する距離情報の平均値と、補正後の3次元表示距離範囲961に属する距離情報の平均値とが同じになるようにする。
ステップSC7の処理の際、CPU8は、補正後の3次元表示距離範囲961において数直線上で隣接する各距離情報の差分値の比率が、補正前の3次元表示距離範囲96において数直線上で隣接する各距離情報の差分値の比率と同じになるようにする。
ステップSC7の処理の際、CPU8は、補正前の3次元表示距離範囲96に属する各距離情報の大小関係と、補正された各距離情報(3次元表示距離範囲961に属する各距離情報)の大小関係とが変わらないようにする。
図10(C)に、ステップSC7の処理により補正された3次元表示距離範囲961が示されている。図10(C)に示されるように、補正された3次元表示距離範囲961は、補正される前の3次元表示距離範囲96よりも小さくなっている。
図11(B)に、ステップSC7の処理により補正された点群情報83が示されている。図11(B)に示されるように、補正前の3次元表示距離範囲96に属していた距離情報(Z座標の値)、つまり人物41、人物42、車43の各特徴点に対応する各距離情報(Z座標の値)の数直線上における存在範囲が、補正前のものに比べて小さくなっている。
ステップSC6の処理もしくはステップSC7の処理の後、CPU8は、補正された点群情報82(もしくは点群情報83)を、撮影画像データ50Aと撮影画像データ50Bのそれぞれのヘッダデータに記録し(ステップSC8)、図9のフローチャートに示される距離情報補正処理を終了させる。
次に、図13に示されるフローチャートを参照して、本実施形態に係る再生モードの処理について説明する。ユーザがキーブロック13に対する所定の操作により再生モードを設定すると、CPU13は、フラッシュメモリ9から読み出してDRAM10に展開したプログラムとの協働により、図13のフローチャートに示される再生モードの処理を実行する。
再生モードが設定されると、CPU8は、撮影画像データに付随するヘッダデータからステップSA8の処理により補正された点群情報82(もしくは点群情報83)を読み出し、読み出した点群情報をDRAM10に保持させる(ステップSD1)。
次に、CPU8は、周知のDelaunay法に従い、DRAM10上で読み出された点群情報を用いて三角形ポリゴンモデルを生成する(ステップSD2)。三角形ポリゴンモデルを生成する際には、生成される三角形が正三角形に近くなるような特徴点の結びつきが優先的に行われる。次に、CPU8は、周知のテクスチャマッピング法を用いて、生成された三角形ポリゴンモデルのテクスチャデータを貼り付けることにより3次元画像を生成する(ステップSD3)。
次に、CPU8は、生成された3次元画像を表示部12に表示させる(ステップSD4)。次に、CPU8は、生成された3次元画像上の各特徴点の座標情報を、撮影画像データ50Aと撮影画像データ50Bのそれぞれのヘッダデータに記録し(ステップSD5)、図13のフローチャートに示される再生モードを終了させる。
図14に、本実施形態により生成される3次元画像の例が示されている。図14に示される3次元画像と図22に示される3次元画像とは、それぞれ同じ被写体を撮影した画像である。本実施形態により生成される3次元画像は、図22に示される従来技術により生成された3次元画像と比較して、主要被写体である馬の銅像(画像の左下に写る被写体)と背景である建物との距離が小さくなっている。そのため、本実施形態により生成される3次元画像は、ユーザが各被写体の様子を容易に把握できる画像となっている。これは、ステップSA8の距離情報補正処理において、点群情報における変化終了点の距離情報よりも大きい距離情報が小さくなるように補正されたことにより、背景となる被写体と主要被写体との距離情報が小さくなったためである。
また、図14に示される3次元画像においては、主要被写体である馬の銅像は3次元的に表現されているが、背景である建物は平面的に表現されている。これにより、ユーザは主要被写体の形状を3次元的に視認することができるとともに、背景となる被写体についてはその内容を把握しやくなっている。これは、ステップSA8の処理において、点群情報における変化終了点の距離情報よりも大きい距離情報の全てが同じ距離情報(変化終了点に対応する距離情報)へと補正されたため、補正後の点群情報における背景被写体の特徴点に対応する距離情報が全て同じものになったためである。
(変形例)
上述の第1の実施形態では、ステップSC4の処理においてCPU8が、変化終了点95の距離情報よりも大きい距離情報の全てが、同じ距離情報(変化終了点95の距離情報)になるように点群情報81を補正した。しかし、CPU8は、変化終了点95の距離情報よりも大きい範囲に属する距離情報のそれぞれが同じ距離情報分だけ小さくなる補正を行ってもよい。
この変形例においては、例えば、図10(D)に示されるように、CPU8は、変化終了点95と山部分93の始点とが一致するように、山部分93に対応する距離情報のそれぞれを、変化終了点95の距離情報と山部分93の始点に対応する距離情報との差分値だけ小さくする補正を、点群情報81に含まれる各距離情報に対して行う。
また、第1の実施形態では、ステップSC7の処理において、CPU8は、設定された3次元表示距離範囲96が所定の閾値以上であれば、3次元表示距離範囲96が所定の閾値と同じ値の距離範囲となるように、点群情報82に含まれる距離情報のうち3次元表示距離範囲96に属する距離情報を補正するようにした。
しかし、CPU8は、ステップSC7の処理において、点群情報82に含まれる3次元表示距離範囲96に属する各距離情報Zを、例えば下記式(2)に従い補正してもよい。
Z’=Z−(A−Z)・α (2)
但し、
Z:補正前の距離情報の値(補正前の3次元表示距離範囲96に属する各距離情報)
Z’:補正後の距離情報の値(補正後の3次元表示距離範囲961に属する各距離情報)
A:変化終了点95に対応する距離情報の値
α:1未満の任意の自然数
以上説明したように、第1の実施形態およびその変形例においては、CPU8が、点群情報81に含まれる距離情報のうち変化終了点95の距離情報よりも大きい距離範囲に属する距離情報が小さくなるように補正した。このようにすれば、被写体が3次元表示に適さない場合、つまり主要被写体と背景被写体との距離が大きい場合であっても、点群情報における主要被写体と背景被写体との距離情報が小さくなる。これにより、点群情報を用いて生成される3次元画像においては、3次元画像を構成する三角形ポリゴンがいびつな形状となることを回避できる。その結果、本実施形態では、被写体が3次元表示に適さない場合でも、ユーザが各被写体の様子を容易に把握できる3次元画像、つまり視認性の高い3次元画像を得ることができる。
第1の実施形態においては、CPU8が、点群情報81に含まれる距離情報のうち変化終了点95の距離情報よりも大きい距離情報の全てが同じ距離情報(変化終了点95の距離情報)になるように補正した。このようにすれば、補正された点群情報から生成される3次元画像においては、例えば、主要被写体を3次元的に表現できるともに、背景被写体については2次元的に表現できる。これにより、ユーザは主要被写体の形状を3次元的に視認することができるとともに、背景被写体についてはその内容を容易に把握することができる。その結果、本実施形態によれば、ユーザが背景となった被写体像の内容を容易に理解できる3次元画像、つまり視認性の高い3次元画像を得ることができる。
第1の実施形態においては、CPU8が、3次元表示距離範囲96が所定の閾値以上である場合には、3次元表示距離範囲96が小さくなるように、点群情報82に含まれる距離情報のうち3次元表示距離範囲96に属する距離情報を補正した。これにより、3次元表示距離範囲96に属する特徴点間の距離情報が過大な大きさである場合でも、点群情報82に対して、この特徴点間の距離情報が小さくなるように補正がなされることとなる。すると、3次元画像上で3次元的に表現される主要被写体を構成する三角形ポリゴンが過大な大きさとなることを回避できる。その結果、本実施形態によれば、主要被写体等の奥行きが大きい場合であっても、3次元画像上で表現される主要被写体を適正な形状に補正することができ、視認性の高い3次元画像を得ることができる。
次に、本発明の他の実施形態について説明する。以下に説明する各実施形態においては、ステップSA8の処理内容のみが上述の第1の実施形態と異なり、デジタルカメラ1の電気的構成やステップSA8以外の処理内容は第1の実施形態と同じである。
<第2の実施形態>
図15に示されるフローチャートを参照して、第2の実施形態に係る距離情報補正処理(ステップSA8の処理)を説明する。
ステップSA7の処理の後、CPU8は、DRAM10に保持されていた点群情報81を用いて、距離別特徴点情報として、DRAM10上で特徴点の分布図を生成する(ステップSE1)。特徴点の分布図を生成方法は、このステップSC1の処理と同様である。図14(A)に、CPU8により生成された特徴点の分布図が示されている。
CPU8は、ステップSC2の処理と同様にして、分布曲線90の変化開始点94を検出する(ステップSC2)。第2の実施形態においても、図16(A)に示されるように、分布曲線90の始点94が変化開始点として検出される。
次に、CPU8は、デジタルカメラ1(撮影レンズ)から焦点が合っている被写体領域(合焦領域)までの距離aを算出する(ステップSE3)。具体的には、CPU8は、フラッシュメモリ9に予め記録されている焦点距離情報fを読み出し、現在のズームレンズの位置からズーム倍率値mを特定する。そして、CPU8は、周知の下記式(3)に従い撮影レンズから合焦領域までの距離aを算出する。
1/a+1/b=1/a+1/m・a=1/f (3)
但し、
a:撮影レンズから合焦領域までの距離
b:撮影レンズから実像までの距離
m:ズーム倍率
f:焦点距離
次に、CPU8は、背景集約距離情報として2a(aは撮影レンズから合焦領域までの距離情報)の距離情報を設定する(ステップSE4)。背景集約距離情報とは、後述するステップSE5の点群情報の補正処理において、補正後の距離情報となるものである。
次に、CPU8は、DRAM10上に保持されている点群情報81に含まれる距離情報に対して、背景集約距離情報(2a)よりも大きい距離情報の範囲に属する全ての特徴情報に対応する距離情報を、背景集約距離情報(2a)へと変更する補正を行う(ステップSE5)。
ステップSE5の処理によって、図16(B)に示されるように、背景集約距離情報(2a)よりも大きい距離範囲において存在する山部分93(建物44の特徴点の存在を示す山)に対応する距離情報が、背景集約地距離情報(2a)へと補正される。
次に、CPU8は、変化開始点94の距離情報以上かつ背景集約距離情報以下の距離情報で構成される範囲を、3次元表示距離範囲として設定する(ステップSE6)。図16(B)には、本実施形態における3次元表示距離範囲97が示されている。
次に、CPU8は、設定された3次元表示距離範囲97が所定の閾値以上であるか否かを判断する(ステップSE7)。CPU8は、設定された3次元表示距離範囲97が所定の閾値未満であれば(ステップSE7;NO)、ステップSE9へと処理を進める。本実施形態において閾値は1(m)である。閾値は1(m)でなくともよい。
一方、ステップSE6の処理において設定された3次元表示距離範囲97が所定の閾値以上であれば(ステップSC7;YES)、CPU8は、3次元表示距離範囲97が閾値(1(m))と同じ値の距離範囲となるように、補正後の点群情報に含まれる距離情報のうち3次元表示距離範囲97に属する距離情報を補正する(ステップSE8)。ステップSE8の処理における各距離情報の補正方法は、ステップSC7の処理における各距離情報の補正方法と同様である。
図16(C)に、ステップSE8の処理により補正された3次元表示距離範囲971が示されている。図16(C)に示されるように、補正された3次元表示距離範囲971は、補正される前の3次元表示距離範囲97よりも小さくなっている。
ステップSE7の処理もしくはステップSE8の処理の後、CPU8は、補正された点群情報を、撮影画像データ50Aと撮影画像データ50Bのそれぞれのヘッダデータに記録し(ステップSC8)、図15のフローチャートに示される距離情報補正処理を終了させる。
(変形例)
上述の第2の実施形態では、ステップSE5の処理においてCPU8が、背景集約距離情報よりも大きい距離情報の全てが、同じ距離情報(変化終了点95の距離情報)になるように点群情報81を補正した。しかし、CPU8は、背景集約距離情報よりも大きい距離範囲に属する距離情報がそれぞれ同じ距離情報分だけ小さくなる補正を行ってもよい。
この変形例においては、例えば、図16(D)に示されるように、CPU8は、山部分93の始点に対応する距離情報が背景集約距離情報(2a)に一致するように、山部分93に対応する距離情報のそれぞれを、背景距離情報と山部分93の始点に対応する距離情報との差分値だけ小さくする補正を、点群情報81に含まれる各距離情報に対して行う。
また、第2の実施形態では、CPU8は、合焦領域までの距離情報の2倍の距離情報を背景集約距離情報として設定した。しかし、背景集約距離情報は、合焦領域までの距離情報の1.5倍の距離情報や3倍の距離情報としてもよい。
また、第2の実施形態では、ステップSE8の処理において、CPU8は、設定された3次元表示距離範囲97が所定の閾値以上であれば、3次元表示距離範囲97が所定の閾値と同じ値の距離範囲となるように、点群情報82に含まれる距離情報のうち3次元表示距離範囲97に属する距離情報を補正するようにした。
しかし、CPU8は、ステップSE8の処理において、点群情報に含まれる3次元表示距離範囲97に属する各距離情報Zを、例えば下記式(4)に従い補正してもよい。
Z’=Z−(2a−Z)・α (4)
但し、
Z:補正前の距離情報の値(補正前の3次元表示距離範囲97に属する各距離情報)
Z’:補正後の距離情報の値(補正後の3次元表示距離範囲971に属する各距離情報)
2a:背景集約距離情報の値
α:1未満の任意の自然数
以上説明したように、第2の実施形態およびその変形例においては、CPU8が、点群情報81に含まれる距離情報のうち背景集約距離情報よりも大きい距離範囲に属する距離情報が小さくなるように補正した。このようにすれば、例えば、主要被写体と背景となる被写体との距離が大きい場合であっても、点群情報における主要被写体と背景被写体との距離情報が小さくなる。これにより、点群情報を用いて生成される3次元画像においては、3次元画像を構成する三角形ポリゴンがいびつな形状となることを回避できる。その結果、本実施形態では、ユーザが各被写体の様子を容易に把握できる3次元画像、つまり視認性の高い3次元画像を得ることができる。
第2の実施形態においては、図16(B)に示されるように、焦点が合っている領域付近の距離範囲を3次元表示距離範囲97として自動的に設定した。そして、焦点が合っている被写体は、ユーザが注目する主要被写体である可能性が高い。そのため、第2の実施形態では、ユーザの注目する主要被写体を容易に3次元的に表現することができる。
第2の実施形態においては、CPU8が、点群情報81に含まれる距離情報のうち背景集約距離情報よりも大きい距離情報の全てが同じ距離情報(背景集約距離情報)になるように補正した。このようにすれば、補正された点群情報から生成される3次元画像においては、例えば、主要被写体を3次元的に表現できるとともに、背景となる被写体については2次元的に表現できる。これにより、ユーザは主要被写体の形状を3次元的に視認することができるとともに、背景被写体についてはその内容を容易に把握することができる。その結果、本実施形態によれば、ユーザが背景被写体の内容を容易に理解できる3次元画像、つまり視認性の高い3次元画像を得ることができる。
第2の実施形態においては、CPU8が、3次元表示距離範囲97が所定の閾値以上である場合には、3次元表示距離範囲97が小さくなるように、点群情報に含まれる距離情報のうち3次元表示距離範囲97に属する距離情報を補正した。これにより、3次元表示距離範囲97に属する特徴点間の距離情報が過大な大きさである場合でも、点群情報に対して、この特徴点間の距離情報が小さくなるように補正がなされることとなる。すると、3次元画像上で3次元的に表現される主要被写体を構成する三角形ポリゴンが過大な大きさとなることを回避できる。その結果、本実施形態によれば、主要被写体等の奥行きが大きい場合であっても、3次元画像上で表現される主要被写体を適正な形状に補正することができ、視認性の高い3次元画像を得ることができる。
<第3の実施形態>
図17に示されるフローチャートを参照して、第3の実施形態に係る距離情報補正処理(ステップSA8の処理)を説明する。
ステップSA7の処理の後、CPU8は、DRAM10に保持されていた点群情報81を用いて、距離別特徴点情報として、DRAM10上で特徴点の分布図を生成する(ステップSF1)。特徴点の分布図を生成方法は、このステップSC1の処理と同様である。図18(A)に、CPU8により生成された特徴点の分布図が示されている。
次に、CPU8は、デジタルカメラ1から被写界深度の前端までの距離情報Dnを算出する(ステップSF2)。具体的には、CPU8は、ステップSE3の処理と同様にして撮影レンズから合焦領域までの距離aを算出し、フラッシュメモリ9に予め記録されている焦点距離情報fと許容錯乱円の直径情報cとを読み出し、現在の絞り値Nを特定する。そして、CPU8は、周知の下記式(5)に従い被写界深度の前端まで距離情報Dnを算出する。
Dn=c・N・a2/(f2+c・N/a) (5)
但し、
a:撮影レンズから合焦領域までの距離
f:焦点距離
N:絞り値
c:許容錯乱円の直径
次に、CPU8は、デジタルカメラ1から被写界深度の後端までの距離情報Dfを算出する(ステップSF3)。具体的には、CPU8は、ステップSE3の処理と同様にして撮影レンズから合焦領域までの距離aを算出し、フラッシュメモリ9に予め記録されている焦点距離情報fと許容錯乱円の直径情報cとを読み出し、現在の絞り値Nを特定する。そして、CPU8は、周知の下記式(6)に従い被写界深度の後端まで距離情報Dfを算出する。
Df=c・N・a2/(f2−c・N/a) (6)
但し、
a:撮影レンズから合焦領域までの距離
f:焦点距離
N:絞り値
c:許容錯乱円の直径
次に、CPU8は、DRAM10上に保持されている点群情報81に含まれる距離情報に対して、被写界深度の後端までの距離情報Dfよりも大きい距離範囲に属する各距離情報を、被写界深度の後端までの距離情報Dfへと変更する補正を行う(ステップSF4)。
つまり、図18(B)に示されるように、被写界深度の後端の距離情報Dfよりも大きい距離範囲に属する山部分93(建物44の特徴点の存在を示す山)に対応する距離情報が、被写界深度の後端の距離情報Dfへと補正される。
次に、CPU8は、被写界深度の前端の距離情報Dn以上かつ被写界深度の後端の距離情報Df以下の距離情報で構成される範囲を、3次元表示距離範囲として設定する(ステップSF5)。図18(B)には、本実施形態における3次元表示距離範囲98が示されている。
次に、CPU8は、設定された3次元表示距離範囲98が所定の閾値以上であるか否かを判断する(ステップSF6)。CPU8は、設定された3次元表示距離範囲98が所定の閾値未満であれば(ステップSF6;NO)、ステップSE8へと処理を進める。本実施形態において閾値は1(m)である。閾値は1(m)でなくともよい。
一方、ステップSF5の処理において設定された3次元表示距離範囲98が所定の閾値以上であれば(ステップSF6;YES)、CPU8は、3次元表示距離範囲98が閾値(1(m))と同じ値の距離範囲と同じになるように、補正後の点群情報に含まれる距離情報のうち3次元表示距離範囲98に属する距離情報を補正する(ステップSF7)。ステップSF7の処理における各距離情報の補正方法は、ステップSC7の処理における各距離情報の補正方法と同様である。
図18(C)に、ステップSF7の処理により補正された3次元表示距離範囲981が示されている。図18(C)に示されるように、補正された3次元表示距離範囲981は、補正される前の3次元表示距離範囲98よりも小さくなっている。
ステップSF6の処理もしくはステップSF7の処理の後、CPU8は、補正された点群情報を、撮影画像データ50Aと撮影画像データ50Bのそれぞれのヘッダデータに記録し(ステップSF8)、図17のフローチャートに示される距離情報補正処理を終了させる。
(変形例)
上述の第3の実施形態では、ステップSF4の処理においてCPU8が、被写界深度の後端の距離情報Dfよりも大きい距離情報の全てが、同じ距離情報(距離情報Df)になるように点群情報81を補正した。しかし、CPU8は、被写界深度の後端の距離情報Dfよりも大きい距離範囲に属する距離情報がそれぞれ同じ距離情報分だけ小さくなる補正を行ってもよい。
この変形例においては、例えば、図18(D)に示されるように、CPU8は、山部分93の始点に対応する距離情報が被写界深度の後端の距離情報Dfに一致するように、山部分93に対応する距離情報のそれぞれを、距離情報Dfと山部分93の始点に対応する距離情報との差分値だけ小さくする補正を、点群情報81に含まれる各距離情報に対して行う。
また、第3の実施形態では、ステップSF7の処理において、CPU8は、設定された3次元表示距離範囲98が所定の閾値以上であれば、3次元表示距離範囲98が所定の閾値と同じ値の距離範囲となるように、点群情報82に含まれる距離情報のうち3次元表示距離範囲98に属する距離情報を補正するようにした。
しかし、CPU8は、ステップSF7の処理において、点群情報に含まれる3次元表示距離範囲98に属する各距離情報Zを、例えば下記式(7)に従い補正してもよい。
Z’=Z−(Df−Z)・α (7)
但し、
Z:補正前の距離情報の値(補正前の3次元表示距離範囲98に属する各距離情報)
Z’:補正後の距離情報の値(補正後の3次元表示距離範囲981に属する各距離情報)
Df:被写界深度の後端の距離情報の値
α:1未満の任意の自然数
以上説明したように、第3の実施形態およびその変形例においては、CPU8が、点群情報81に含まれる距離情報のうち被写界深度の後端の距離情報Dfよりも大きい距離範囲に属する距離情報が小さくなるように補正した。このようにすれば、例えば、主要被写体と背景となる被写体との距離が大きい場合であっても、点群情報における主要被写体と背景被写体との距離情報が小さくなる。これにより、点群情報を用いて生成される3次元画像においては、3次元画像を構成する三角形ポリゴンがいびつな形状となることを回避できる。その結果、本実施形態では、ユーザが各被写体の様子を容易に把握できる3次元画像、つまり視認性の高い3次元画像を得ることができる。
第3の実施形態においては、図18に示されるように、被写体深度が存在する位置に応じた距離範囲を3次元表示距離範囲98として自動的に設定した。そして、被写界深度に含まれる被写体、つまり焦点が合っている被写体は、ユーザが注目する主要被写体である可能性が高い。そのため、第2の実施形態では、ユーザの注目する主要被写体を容易に3次元的に表現することができる。
第3の実施形態においては、CPU8が、点群情報81に含まれる距離情報のうち被写界深度の後端の距離情報Dfの距離情報よりも大きい距離情報の全てが同じ距離情報(距離情報Df)になるように補正した。このようにすれば、補正された点群情報から生成される3次元画像においては、例えば、主要被写体を3次元的に表現するとともに、背景となる被写体については2次元的に表現できる。これにより、ユーザは主要被写体の形状を3次元的に視認することができるとともに、背景被写体についてはその内容を容易に把握することができる。その結果、本実施形態によれば、ユーザが背景となった被写体像の内容を容易に理解できる3次元画像、つまり視認性の高い3次元画像を得ることができる。
第3の実施形態においては、CPU8が、3次元表示距離範囲98が所定の閾値以上である場合には、3次元表示距離範囲98が小さくなるように、点群情報に含まれる距離情報のうち3次元表示距離範囲98に属する距離情報を補正した。これにより、3次元表示距離範囲98に属する特徴点間の距離情報が過大な大きさである場合でも、点群情報に対して、この特徴点間の距離情報が小さくなるように補正がなされることとなる。すると、3次元画像上で3次元的に表現される主要被写体を構成する三角形ポリゴンが過大な大きさとなることを回避できる。その結果、本実施形態によれば、主要被写体等の奥行きが大きい場合であっても、3次元画像上で表現される主要被写体を適正な形状に補正することができ、視認性の高い3次元画像を得ることができる。
<第4の実施形態>
図19に示されるフローチャートを参照して、第4の実施形態に係る距離情報補正処理(ステップSA8の処理)を説明する。
ステップSA7の処理の後、CPU8は、図20に示される設定画面を表示部12に表示させ、ユーザのキーブロック13に対する操作による背景集約距離情報の入力を検知するまで待機状態となる(ステップSG1)。
CPU8は、ユーザの操作による入力を検知しない場合(ステップSG1;NO)、待機状態のままとなる。一方、CPU8は、ユーザの操作による入力を検知した場合(ステップSG1;YES)、ユーザの操作により入力された背景集約距離情報を設定する(ステップSG2)。本実施形態においては、背景集約距離情報として4.00(m)が設定されたとする。
次に、CPU8は、DRAM10に保持されている点群情報81に含まれる各距離情報のうち、ステップSG2の処理により設定された背景集約距離情報(4.00(m))よりも大きい距離範囲に属する全ての距離情報が、この設定された背景集約距離情報(4.00(m))になるように点群情報81を補正する(ステップSG3)。
図21に、ステップSG3の処理により補正された点群情報84の様子が示されている。図21に示されるように、元の点群情報81において背景集約距離情報(4.00(m))よりも大きい距離情報であった、建物44の各特徴点に対応する距離情報が全て背景集約距離情報(4.00(m))へと補正されている。
次に、CPU8は、補正後の点群情報84を、撮影画像データ50Aと撮影画像データ50Bのそれぞれのヘッダデータに記録し(ステップSG4)、図19のフローチャートに示される距離情報補正処理を終了させる。
(変形例)
上述の第4の実施形態では、ステップSG3の処理においてCPU8が、ユーザの操作により設定された背景集約距離情報よりも大きい距離情報の全てが、同じ距離情報(背景集約距離情報)になるように点群情報81を補正した。しかし、CPU8は、ユーザの操作により設定された背景集約距離情報よりも大きい距離範囲に属する距離情報がそれぞれ同じ距離情報分だけ小さくなる補正を行ってもよい。
以上説明したように、第4の実施形態およびその変形例においては、CPU8が、点群情報81に含まれる距離情報のうち、ユーザの操作により設定された背景集約距離情報よりも大きい距離範囲に属する距離情報が小さくなるように補正した。このようにすれば、例えば、主要被写体と背景となる被写体との距離が大きい場合であっても、点群情報における主要被写体と背景被写体との距離情報が小さくなる。これにより、点群情報を用いて生成される3次元画像においては、3次元画像を構成する三角形ポリゴンがいびつな形状となることを回避できる。その結果、本実施形態では、ユーザが各被写体の様子を容易に把握できる3次元画像、つまり視認性の高い3次元画像を得ることができる。
第4の実施形態においては、背景集約情報はユーザの操作により設定するようにした。これにより、点群情報に対して、ユーザが所望する距離範囲における被写体(背景被写体など)の距離情報を確実に小さくする補正をすることができる。
第4の実施形態においては、CPU8が、点群情報81に含まれる距離情報のうち背景集約距離情報よりも大きい距離情報の全てが同じ距離情報(背景集約距離情報)になるように補正した。このようにすれば、補正された点群情報から生成される3次元画像においては、例えば、主要被写体を3次元的に表現できるとともに、背景となる被写体については2次元的に表現できる。これにより、ユーザは主要被写体の形状を3次元的に視認することができるとともに、背景被写体についてはその内容を容易に把握することができる。その結果、本実施形態によれば、ユーザが背景となった被写体像の内容を容易に理解できる3次元画像、つまり視認性の高い3次元画像を得ることができる。
上記各実施形態及び各変形例では、本発明をデジタルカメラに適用した場合について説明した。しかし、本発明は、画像情報を生成する機能を有するものであれば、デジタルビデオカメラ、カメラ付き携帯電話端末等の他のカメラ装置や、パーソナルコンピュータ等の画像生成装置にも適用することができる。
最後に、本発明の上記実施形態及び各変形例は、何れも最良の実施形態としての単なる例に過ぎず、添付の特許請求の範囲を限定する趣旨のものでない。したがって、本発明の上記実施形態に対してなされ得る多種多様な変形はすべて本発明の範囲内に含まれるものであり、添付の特許請求の範囲に含まれるものと解さなければならない。