(57)【要約】【課題】三次元画像の生成に適した画像を容易に撮影できる撮影装置並びに撮影装置の制御プログラム及び制御方法を提供する。【解決手段】デジタルカメラ１００は、撮影部によって撮影された第１画像と第２画像とを取得する画像取得部１４２と、対象物上の点の第１画像における位置を表す第１画像位置と、第２画像における位置を表す第２画像位置とを検出する画像位置検出部１５１と、第１画像位置と第２画像位置との差異に基づいて、対象物の三次元画像を生成する三次元画像生成部１７０と、第１画像位置及び第２画像位置と、第１画像の撮影時の焦点距離とに基づいて、第１画像の撮影時における撮影部の光軸と、第２画像の撮影時における撮影部の光軸とがどの程度平行に近いかを表す平行度を算出する平行度算出部１５６と、平行度算出部１５６が算出した平行度を表示する表示部と、を備える。【選択図】図５
2011160233.tif 000002
【特許請求の範囲】
【請求項１】
対象物を撮影する撮影手段の主点から前記対象物に合わせた焦点までの焦点距離を検出する焦点距離検出手段と、
前記対象物に焦点を合わせた前記撮影手段によって撮影された第１画像と第２画像とを取得する画像取得手段と、
前記画像取得手段が取得した前記第１画像における前記対象物上の点の位置を表す第１画像位置と、前記第２画像における前記点の位置を表す第２画像位置とを検出する画像位置検出手段と、
前記画像位置検出手段が検出した前記第１画像位置と前記第２画像位置との差異に基づいて、前記対象物の三次元画像を生成する三次元画像生成手段と、
前記画像位置検出手段が検出した前記第１画像位置及び前記第２画像位置と、前記焦点距離検出手段が検出した前記焦点距離とに基づいて、前記第１画像の撮影時における前記撮影手段の光軸と、前記第２画像の撮影時における前記撮影手段の光軸とがどの程度平行に近いかを表す平行度を算出する平行度算出手段と、
前記平行度算出手段が算出した前記平行度を表示する表示手段と、
を備えることを特徴とする撮影装置。
【請求項２】
前記平行度算出手段が算出する前記平行度は、前記撮影手段の投影面に投影された前記第１画像の走査方向が、前記撮影手段の前記投影面に投影された前記第２画像の走査方向とどの程度平行に近いかをさらに表すことを特徴とする請求項１に記載の撮影装置。
【請求項３】
前記平行度算出手段が算出する前記平行度は、前記撮影手段の前記投影面に投影された前記第１画像の副走査方向が、前記撮影手段の前記投影面に投影された前記第２画像の副走査方向とどの程度平行に近いかをさらに表すことを特徴とする請求項２に記載の撮影装置。
【請求項４】
前記平行度算出手段が算出する前記平行度は、前記第１画像の撮影時から前記第２画像の撮影時までの前記撮影手段の前記主点の移動方向が、前記撮影手段の前記投影面に投影された前記第１画像の前記走査方向又は前記副走査方向とどの程度異なるかをさらに表すことを特徴とする請求項３に記載の撮影装置。
【請求項５】
前記撮影手段の前記主点から前記対象物までの奥行距離を取得する奥行距離取得手段と、
前記画像位置検出手段が検出した前記第１画像位置と前記第２画像位置とに基づいて、前記対象物上の前記点が前記第１画像と前記第２画像とで画像上の位置を移動した移動量を算出する実移動量算出手段と、
前記奥行距離取得手段が取得した前記奥行距離に基づいて、前記三次元画像生成手段が所定の奥行精度で前記三次元画像を生成するために必要な前記移動量を算出する必要移動量算出手段と、
前記実移動量算出手段が算出した前記移動量と、前記必要移動量算出手段が算出した前記移動量とに基づいて、前記三次元画像生成手段が前記奥行精度で前記三次元画像を生成するために必要な前記撮影手段の移動方向を判断する必要移動方向判断手段と、をさらに備え、
前記表示手段は、前記必要移動方向判断手段が判断した前記移動方向を表示することを特徴とする請求項１から４のいずれか一項に記載の撮影装置。
【請求項６】
前記平行度算出手段が算出した前記平行度に基づいて、前記第１画像の撮影時における前記撮影手段と、前記第２画像の撮影時における前記撮影手段との配置が平行ステレオであるか否かを判定する平行判定手段をさらに備え、
前記三次元画像生成手段は、前記平行判定手段によって前記配置が平行ステレオであると判定された場合に、前記対象物の前記三次元画像を生成することを特徴とする請求項４又は５に記載の撮影装置。
【請求項７】
コンピューターを、
対象物を撮影する撮影手段の主点から前記対象物に合わせた焦点までの焦点距離を検出する焦点距離検出手段と、
前記対象物に焦点を合わせた前記撮影手段によって撮影された第１画像と第２画像とを取得する画像取得手段と、
前記画像取得手段が取得した前記第１画像における前記対象物上の点の位置を表す第１画像位置と、前記第２画像における前記点の位置を表す第２画像位置とを検出する画像位置検出手段と、
前記画像位置検出手段が検出した前記第１画像位置と前記第２画像位置との差異に基づいて、前記対象物の三次元画像を生成する三次元画像生成手段と、
前記画像位置検出手段が検出した前記第１画像位置及び前記第２画像位置と、前記焦点距離検出手段が検出した前記焦点距離とに基づいて、前記第１画像の撮影時における前記撮影手段の光軸と、前記第２画像の撮影時における前記撮影手段の光軸とがどの程度平行に近いかを表す平行度を算出する平行度算出手段と、
前記平行度算出手段が算出した前記平行度を表示するよう表示手段を制御する表示制御手段と、
して機能させることを特徴とする制御プログラム。
【請求項８】
コンピューターが、対象物を撮影する撮影手段の主点から前記対象物に合わせた焦点までの焦点距離を検出する焦点距離検出ステップと、
前記コンピューターが、前記対象物に焦点を合わせた前記撮影手段によって撮影された第１画像と第２画像とを取得する画像取得ステップと、
前記コンピューターが、前記画像取得ステップで取得された前記第１画像における前記対象物上の点の位置を表す第１画像位置と、前記第２画像における前記点の位置を表す第２画像位置とを検出する画像位置検出ステップと、
前記コンピューターが、前記画像位置検出ステップで検出された前記第１画像位置と前記第２画像位置との差異に基づいて、前記対象物の三次元画像を生成する三次元画像生成ステップと、
前記コンピューターが、前記画像位置検出ステップで検出された前記第１画像位置及び前記第２画像位置と、前記焦点距離検出ステップで検出された前記焦点距離とに基づいて、前記第１画像の撮影時における前記撮影手段の光軸と、前記第２画像の撮影時における前記撮影手段の光軸とがどの程度平行に近いかを表す平行度を算出する平行度算出ステップと、
前記コンピューターが、前記平行度算出ステップで算出された前記平行度を表示するよう表示手段を制御する表示制御ステップと、
を有することを特徴とする撮影装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を撮影する撮影装置、並びに撮影装置の制御プログラム及び制御方法に関する。
【背景技術】
【０００２】
非特許文献１には、２つのカメラを光軸が平行で、かつ画像座標系の座標軸が同一直線上で同一方向になる配置（つまり、平行ステレオ）に固定すると共に、固定した２つのカメラで撮影された画像における撮影対象物（以下単に、対象物という）の見え方の差異（つまり、視差）とカメラ間の距離（つまり、基線長）とに基づいて、対象物の三次元画像を生成する技術について開示されている。また、１つのカメラを移動前後で平行ステレオになるように移動させると共に、移動の前後にカメラで撮影した２つの画像を用いて、撮影された対象物の三次元画像を生成する技術が知られている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】佐藤  洋一  著、「デジタル画像処理」、ＣＧ−ＡＲＴＳ協会出版、２００９年１１月２日発行、第２５１頁から第２６２頁
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、非特許文献１に係る技術は、２つのカメラが必要であるという問題があった。また、１つのカメラが撮影した２つの画像を用いて三次元画像を生成する技術では、移動前後でカメラを平行ステレオにすることが困難であるため、三次元画像の生成に適した画像を撮影することが困難であるという問題があった。
【０００５】
そこで、本発明は、このような点に鑑み、その目的とするところは、三次元画像の生成に適した画像を容易に撮影できる撮影装置並びに制御プログラム及び制御方法を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の第一の観点に係る撮影装置は、
対象物を撮影する撮影手段の主点から前記対象物に合わせた焦点までの焦点距離を検出する焦点距離検出手段と、
前記対象物に焦点を合わせた前記撮影手段によって撮影された第１画像と第２画像とを取得する画像取得手段と、
前記画像取得手段が取得した前記第１画像における前記対象物上の点の位置を表す第１画像位置と、前記第２画像における前記点の位置を表す第２画像位置とを検出する画像位置検出手段と、
前記画像位置検出手段が検出した前記第１画像位置と前記第２画像位置との差異に基づいて、前記対象物の三次元画像を生成する三次元画像生成手段と、
前記画像位置検出手段が検出した前記第１画像位置及び前記第２画像位置と、前記焦点距離検出手段が検出した前記焦点距離とに基づいて、前記第１画像の撮影時における前記撮影手段の光軸と、前記第２画像の撮影時における前記撮影手段の光軸とがどの程度平行に近いかを表す平行度を算出する平行度算出手段と、
前記平行度算出手段が算出した前記平行度を表示する表示手段と、を備えることを特徴としている。
【０００７】
また上記目的を達成するため、本発明の第二の観点に係る制御プログラムは、
コンピューターを、
対象物を撮影する撮影手段の主点から前記対象物に合わせた焦点までの焦点距離を検出する焦点距離検出手段と、
前記対象物に焦点を合わせた前記撮影手段によって撮影された第１画像と第２画像とを取得する画像取得手段と、
前記画像取得手段が取得した前記第１画像における前記対象物上の点の位置を表す第１画像位置と、前記第２画像における前記点の位置を表す第２画像位置とを検出する画像位置検出手段と、
前記画像位置検出手段が検出した前記第１画像位置と前記第２画像位置との差異に基づいて、前記対象物の三次元画像を生成する三次元画像生成手段と、
前記画像位置検出手段が検出した前記第１画像位置及び前記第２画像位置と、前記焦点距離検出手段が検出した前記焦点距離とに基づいて、前記第１画像の撮影時における前記撮影手段の光軸と、前記第２画像の撮影時における前記撮影手段の光軸とがどの程度平行に近いかを表す平行度を算出する平行度算出手段と、
前記平行度算出手段が算出した前記平行度を表示するよう表示手段を制御する表示制御手段と、して機能させることを特徴としている。
【０００８】
また上記目的を達成するため、本発明の第三の観点に係る制御方法は、
コンピューターが、対象物を撮影する撮影手段の主点から前記対象物に合わせた焦点までの焦点距離を検出する焦点距離検出ステップと、
前記コンピューターが、前記対象物に焦点を合わせた前記撮影手段によって撮影された第１画像と第２画像とを取得する画像取得ステップと、
前記コンピューターが、前記画像取得ステップで取得された前記第１画像における前記対象物上の点の位置を表す第１画像位置と、前記第２画像における前記点の位置を表す第２画像位置とを検出する画像位置検出ステップと、
前記コンピューターが、前記画像位置検出ステップで検出された前記第１画像位置と前記第２画像位置との差異に基づいて、前記対象物の三次元画像を生成する三次元画像生成ステップと、
前記コンピューターが、前記画像位置検出ステップで検出された前記第１画像位置及び前記第２画像位置と、前記焦点距離検出ステップで検出された前記焦点距離とに基づいて、前記第１画像の撮影時における前記撮影手段の光軸と、前記第２画像の撮影時における前記撮影手段の光軸とがどの程度平行に近いかを表す平行度を算出する平行度算出ステップと、
前記コンピューターが、前記平行度算出ステップで算出された前記平行度を表示するよう表示手段を制御する表示制御ステップと、を有することを特徴としている。
【発明の効果】
【０００９】
本発明に係る撮影装置並びに撮影装置の制御プログラム及び制御方法によれば、三次元画像の生成に適した画像を容易に撮影できる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係るデジタルカメラの外観の一例を表す図である。図１（ａ）は正面図、図１（ｂ）は背面図、図１（ｃ）は右側面図、図１（ｄ）は上面図である。
【図２】は、デジタルカメラの回路構成の一例を表すブロック図である。
【図３】デジタルカメラ１００が実行する三次元画像生成処理の一例を表すフローチャートの前半部である。
【図４】デジタルカメラ１００が実行する三次元画像生成処理の一例を表すフローチャートの後半部である。
【図５】図５（ａ）はデジタルカメラ１００の一構成例を表す機能ブロック図である。図５（ｂ）は平行評価部１５０の一構成例を表す機能ブロック図である。
【図６】図６（ａ）は、平行評価部１５０が実行する平行度算出処理の一例を表すフローチャートである。図６（ｂ）は、実移動量算出部１６２が実行する実移動量算出処理の一例を表すフローチャートである。図６（ｃ）は、三次元画像生成部１７０が実行する３Ｄモデリング処理の一例を表すフローチャートである。
【図７】第１画像の撮影時と第２画像の撮影時とにおける撮影部の透視投影モデルの一例を表す図である。
【図８】図８（ａ）は表示部が行う平行度の表示例を表す図であり、図８（ｂ）は表示部が行う必要移動方向の表示例を表す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の最良の実施形態について添付図面を参照しつつ説明する。
【００１２】
本発明の実施形態に係るデジタルカメラ１００は、図１（ａ）に示すような、携帯可能な所謂コンパクトカメラの形状を模しており、ユーザーに携帯されて撮影位置を変更される。デジタルカメラ１００は、撮影位置の変更前後（つまり、デジタルカメラ１００の移動前後）に対象物を撮影した２つの画像を用いて対象物を表す三次元画像を生成する。また、このデジタルカメラ１００は、移動前後でデジタルカメラ１００の配置が平行ステレオからどの程度外れているのかを表す指標（以下、平行度という）を表示する。
【００１３】
デジタルカメラ１００は、図１（ａ）に示すように、正面にストロボ発光窓１０１及び結像光学系（撮像レンズ）１０２を有する。
【００１４】
また、図１（ｂ）に示すように、デジタルカメラは、背面に、液晶モニタ画面である表示部１０４と、カーソルキー１０５、セットキー１０５ｓ、メニューキー１０６ｍ、及び３Ｄ（dimension）モデリングキー１０６ｄを有する。
表示部１０４は、撮影された画像、撮影された画像から算出される平行度、及び撮影された画像に基づいて生成された三次元画像を表示する。カーソルキー１０５は、メニューキー１０６ｍが押し下げられると表示部１０４に表示されるメニューを選択する信号を入力する。セットキー１０５ｓは、選択されたメニューを確定する信号を入力する。３Ｄモデリングキー１０６ｄは、トグル動作をし、押される度に通常の撮影を行う通常撮影モードと、三次元画像を生成する３Ｄモデリングモードとの二者を択一に切り替える信号を入力する。
【００１５】
さらに、デジタルカメラ１００は、図１（ｃ）に示すように、右側面に、ＵＳＢ（Universal Serial Bus）端子接続部１０７を有し、図１（ｄ）に示すように、上面に、電源ボタン１０８及びシャッターボタン１０９を有する。
【００１６】
次に、デジタルカメラ１００の回路構成について説明する。
デジタルカメラ１００は、図２に示すように、撮影部１１０、画像エンジン１２０、ＣＰＵ（Central Processing Unit）１２１、フラッシュメモリ１２２、ワークメモリ１２３、ＶＲＡＭ（Video Random Access Memory）制御部１２４、ＶＲＡＭ１２５、ＤＭＡ（Direct Memory Access）１２６、キー入力部１２７、ＵＳＢ制御部１２８、及びスピーカー１２９をバス１００ａにより接続して構成される。
【００１７】
撮影部１１０は、ＣＭＯＳ（Complementary Metal Oxide Semiconductor）カメラモジュールであり、対象物を撮影し、撮影した対象物を表す画像データを出力する。撮影部１１０は、結像光学系（撮像レンズ）１０２、（光学系）駆動制御部１１１、ＣＭＯＳセンサー１１２、及びＩＳＰ（Image Signal Processor）１１３で構成される。
【００１８】
結像光学系（撮像レンズ）１０２は、ＣＭＯＳセンサー１１２の撮像面上に被写体（対象物）の光像を結像する。
駆動制御部１１１は、撮像レンズ１０２の光軸を調整するズームモーター、撮像レンズ１０２の焦点を合わせる合焦モーター、撮像レンズ１０２の絞りを調整する絞り制御部、及びシャッター速度を制御するシャッター制御部を備える。
【００１９】
ＣＭＯＳセンサー１１２は、結像光学系１０２からの光を光電変換した後に、光電変換で得られた電気信号をＡ／Ｄ（Analog/Digital）変換したデジタルデータを出力する。
【００２０】
ＩＳＰ１１３は、ＣＭＯＳセンサー１１２が出力したデジタルデータについて色の調整及びデータフォーマットの変更を行った後に、デジタルデータを輝度信号Ｙ、並びに色差信号Ｃｂ及びＣｒへ変換する。
【００２１】
画像エンジン１２０についてはワークメモリ１２３の後に説明する。ＣＰＵ１２１は、キー入力部１２７の操作に対応して、操作に応じたモードに対応した撮影プログラム又はメニューデータをフラッシュメモリ１２２から読み出すと共に、読み出したデータに対してプログラムを実行することで、デジタルカメラ１００を構成する各部を制御する。
【００２２】
ワークメモリ１２３は、ＤＲＡＭで構成され、ＤＭＡ１２６によって撮影部１１０が出力したＹＣｂＣｒデータを転送され、転送されたデータを記憶する。
【００２３】
画像エンジン１２０は、ＤＳＰ（Digital Signal Processor）で構成され、ワークメモリ１２３に格納されたＹＣｂＣｒデータをＲＧＢ形式のデータに変換した後に、ＶＲＡＭ制御部１２４を介してＶＲＡＭ１２５へ転送する。
【００２４】
ＶＲＡＭ制御部１２４は、ＶＲＡＭ１２５からＲＧＢ形式のデータを読み出した後に、ＲＧＢ形式の信号を表示部１０４へ出力することで、表示部１０４の表示を制御する。
【００２５】
ＤＭＡ１２６は、ＣＰＵ１２１の命令に従って、ＣＰＵ１２１に代わって撮影部１１０からの出力（ＹＣｒＣｂデータ）をワークメモリ１２３へ転送する。
【００２６】
キー入力部１２７は、図１（ｂ）のカーソルキー１０５、セットキー１０５ｓ、メニューキー１０６ｍ、及び３Ｄモデリングキー１０６ｄの操作に対応した信号を入力すると共に、信号の入力をＣＰＵ１２１へ通知する。
【００２７】
ＵＳＢ制御部１２８は、ＵＳＢ端子接続部１０７と接続し、ＵＳＢ端子接続部１０７を介してＵＳＢ接続するコンピューターとのＵＳＢ通信を制御して、撮影した画像又は生成した三次元画像を表す画像ファイルを接続するコンピューターへ出力する。
スピーカー１２９は、ＣＰＵ１２１の制御に従って、所定のアラーム音を出力する。
【００２８】
次に、デジタルカメラ１００が図２に示したハードウェアを用いて三次元画像を生成するために実行する三次元画像生成処理について説明を行う。図２のＣＰＵ１２１は、図３及び図４に示す様な三次元画像生成処理を実行することで、図５（ａ）に示す様な撮影制御部１４１、画像取得部１４２、特徴点対応部１４３、平行評価部１５０、表示制御部１６０、平行判定部１６１、実移動量算出部１６２、奥行距離取得部１６３、必要移動量算出部１６４、移動量判定部１６５、必要移動方向判断部１６６、通知制御部１６７、三次元画像生成部１７０、出力制御部１７１、及び三次元画像保存部１７２として機能する。
【００２９】
ユーザーが図１（ｂ）の３Ｄモデリングキー１０６ｄを操作して３Ｄモデリングモードを選択すると、ＣＰＵ１２１は、選択を検出して三次元画像生成処理を開始する。三次元画像生成処理が開始されると、図５（ａ）の撮影制御部１４１は、シャッターボタン１０９がユーザーによって押し下げられたか否かを判断する（ステップＳ０１）。ユーザーがシャッターボタン１０９を押すと、撮影制御部１４１は、シャッターボタン１０９が押し下げられたと判断して（ステップＳ０１；Ｙｅｓ）、撮影部１１０の焦点を、撮影対象とする対象物へ合わせる。具体的には、対象物が人物であるため、撮影部１１０は、顔検出処理を行うと共に、図２の駆動制御部１１１を駆動させることで、検出した顔の位置に合うように撮影部１１０の焦点を制御する。尚、撮影制御部１４１は、シャッターボタン１０９が押し下げられていないと判断すると（ステップＳ０１；Ｎｏ）、押し下げられるまで待機する。
【００３０】
次に、画像取得部１４２は、撮影部１１０から対象物を撮影した画像（以下、第１画像という）を表すデータを取得すると共に、取得したデータを図２のワークメモリ１２３へ格納する（ステップＳ０３）。その後、ユーザーによって、デジタルカメラ１００は、第１画像を撮影した撮影位置と異なる撮影位置へ移動させられる。次に、画像取得部１４２は、ステップＳ０３と同様に、対象物を撮影した画像（以下、第２画像という）を表すデータを取得すると共に、データをワークメモリ１２３へ格納する（ステップＳ０４）。
【００３１】
次に、図５（ａ）の特徴点対応部１４３は、対象物上の同じ点を表した第１画像上の点と、第２画像上の点とを対応させた点（対応点）を取得する（ステップＳ０５）。具体的には、特徴点対応部１４３は、第１画像及び第２画像に対してハリスのコーナー検出法を用いることで、第１画像を特徴付ける特徴点（以下、第１特徴点という）と、第２画像を特徴付ける特徴点（以下、第２特徴点という）とを取得する。次に、第１特徴点と第２特徴点との間で、特徴点から所定の距離にある画像領域（特徴点近傍画像）に対するテンプレート照合を行うと共に、テンプレート照合で算出した照合度が所定の閾値以上であり、かつ最も高い値となる第１特徴点と第２特徴点とを対応させて、それぞれを対応点とする。
【００３２】
次に、平行評価部１５０は、平行度を算出する平行度算出処理を実行する（ステップＳ０６）。尚、平行評価部１５０は、図６（ａ）に示す様な平行度算出処理を実行することで、図５（ｂ）に示す様な、画像位置検出部１５１、焦点距離検出部１５２、基礎行列算出部１５３、並進ベクトル算出部１５４、回転行列算出部１５５、及び平行度算出部１５６として機能する。
【００３３】
ステップＳ０６において平行度算出処理が実行されると、図５（ｂ）の画像位置検出部１５１は、図７に示す様な、第１画像の画像座標系Ｐ１に対して対象物上の対応点Ｍ１を投射したベクトルｍ１の座標値（以下単に、第１画像位置という）及び第２画像の画像座標系Ｐ２に対して対応点Ｍ１を投射したベクトルｍ２の座標値（以下単に、第２画像位置という）を検出する（ステップＳ２１）。尚、図７は、移動前（第１画像の撮影時）と移動後（第２画像の撮影時）における撮影部１１０の透視投影モデルを表す。
【００３４】
尚、画像座標系Ｐ１は、撮影部１１０の投影面に投影された第１画像の左上の角を原点とし、かつ第１画像の縦方向（走査方向）及び横方向（副走査方向）に一致した座標軸ｕ及びｖからなる。画像座標系Ｐ２は、画像座標系Ｐ１と同様であるが、第２画像の左上の角を原点とする。
【００３５】
図６（ａ）のステップＳ２１が実行された後に、図５（ｂ）の焦点距離検出部１５２は、第１画像の撮影時における撮影部１１０の主点Ｃ１と焦点ｆ１との焦点距離ｆを検出する（ステップＳ２２）。尚、焦点ｆ１は、光軸ｌａ１と画像座標系Ｐ１との交点と一致し、座標（ｕ０，ｖ０）で表される。また、焦点距離の検出は、例えば、予め測定されたレンズ駆動部に与える信号と、信号がレンズ駆動部に与えられた場合に実現される焦点距離ｆとの関係を利用して行われる。
【００３６】
その後、基礎行列算出部１５３は、対応点の画像位置（つまり、第１画像位置と第２画像位置）と焦点距離と用いて、以下の式（１）で表される様な、基礎行列Ｅを算出する（ステップＳ２３）。第１画像の撮影時と第２画像の撮影時とにおけるデジタルカメラ１００の配置が平行ステレオであるか否かは、第１画像の撮影時における撮影部１１０の主点Ｃ１から、第２画像の撮影時における撮影部１１０の主点Ｃ２へ向かう並進ベクトルｔと、主点Ｃ２から主点Ｃ１への回転の向きを表す回転行列Ｒとを用いて判断できるからである。
【００３７】
基礎行列Ｅ＝ｔ×Ｒ・・・（１）
但し、記号ｔは並進ベクトルを表し、記号Ｒは回転行列を表し、記号×は外積を表す。
【００３８】
ここで、以下の数式１で表される様な行列Ａの逆行列は、カメラ内部情報（カメラパラメーター）に依存した画像座標系Ｐ１を、カメラ内部情報に依存しない図７のＸＹＺ座標軸からなるカメラ座標系（つまり、正規化カメラ座標系）へ変換する。尚、カメラ内部情報は、撮影部１１０で定まる焦点距離ｆ及び光軸ｌａ１と画像座標系Ｐ１との交点（ｕ０，ｖ０）の位置を含む。このカメラパラメーターは、撮影前に予め定められている。また、Ｘ座標の方向はｕ座標の方向に一致し、Ｙ座標の方向はｖ座標の方向に一致し、Ｚ座標は光軸ｌａ１に一致し、ＸＹＺ空間の原点は主点Ｃ１である。また、図２のＣＭＯＳセンサー１１２のアスペクト比は１であるとし、行列Ａは、スケールに関連するパラメーターを考慮していない。
【００３９】
【数１】
2011160233.tif 000003
【００４０】
ここで、世界座標系（ワールド座標系）の原点を正規化カメラ座標系の原点Ｃ１とし、世界座標系の座標軸ＸｗＹｗＺｗの方向を正規化カメラ座標系の座標軸ＸＹＺとそれぞれ同じ方向とすると、世界座標における点ｍ１の正規化カメラ座標は、逆行列を表す記号ｉｎｖ及び内積を表す記号・を用いてｉｎｖ（Ａ）・ｍ１と表される。また、点Ｍ１が第２座標に投影された画像座標がｍ２であるため、世界座標系でｍ２の正規化座標は、回転行列Ｒを用いてＲ・ｉｎｖ（Ａ）・ｍ２と表される。
【００４１】
ここで、図７に示す様に、並進ベクトルｔと、上記で説明したｉｎｖ（Ａ）・ｍ１及びＲ・ｉｎｖ（Ａ）・ｍ２とは同一平面上にあるため、これらのスカラー三重積は値「０」となり、以下の式（２）及び式（２）を変形した式（３）から式（５）が成立する。
ｔｒａｎｓ（ｉｎｖ（Ａ）・ｍ１）・（ｔ×（Ｒ・ｉｎｖ（Ａ）・ｍ２））＝０・・・（２）
但し、記号ｔｒａｎｓは転置行列を表す。
ｔｒａｎｓ（ｍ１）・ｔｒａｎｓ（ｉｎｖ（Ａ））・ｔ×Ｒ・ｉｎｖ（Ａ）・ｍ２＝０・・・（３）
ｔｒａｎｓ（ｍ１）・ｔｒａｎｓ（ｉｎｖ（Ａ））・Ｅ・ｉｎｖ（Ａ）・ｍ２＝０・・・（４）
∵基礎行列Ｅ＝ｔ×Ｒ（式（１）参照）
ｔｒａｎｓ（ｍ１）・Ｆ・ｍ２＝０・・・（５）
但し、基本行列Ｆ＝ｔｒａｎｓ（ｉｎｖ（Ａ））・Ｅ・ｉｎｖ（Ａ）
【００４２】
ここで、基本行列Ｆは、３行３列の行列であり、行列Ａは、スケールに関連するパラメーターを考慮していないため、図５（ｂ）の基礎行列算出部１５３は、８個以上の対応点（つまり、ｍ１とｍ２との組）と上記の式（５）とを用いて、基本行列Ｆ及び基礎行列Ｅを算出する。
【００４３】
図６（ａ）のステップＳ２３が実行された後に、図５（ｂ）の並進ベクトル算出部１５４は、基礎行列Ｅから並進ベクトルｔを算出する（ステップＳ２５）。具体的には、並進ベクトル算出部１５４は、行列「ｔｒａｎｓ（Ｅ）・Ｅ」の最小固有値の固有ベクトルを算出する。
【００４４】
これは、上記の式（１）において、基礎行列Ｅ＝ｔ×Ｒと定義したため、基礎行列Ｅと並進ベクトルｔとの内積は値「０」となり、以下の式（６）が成立するからであり、式（６）が成立するということは、並進ベクトルｔが行列「ｔｒａｎｓ（Ｅ）・Ｅ」の最小固有値の固有ベクトルとなるからである。
ｔｒａｎｓ（Ｅ）・ｔ＝０・・・（６）
【００４５】
但し、並進ベクトルｔは、スケールと符号が不定であるが、カメラ前方に対象物が存在するという制約により並進ベクトルｔの符号を求めることができる。
【００４６】
図６（ａ）のステップＳ２４が実行された後に、図５（ｂ）の回転行列算出部１５５は、基礎行列Ｅと並進ベクトルｔとを用いて回転行列Ｒを算出する（ステップＳ２５）。具体的には、上記の式（４）において基礎行列Ｅ＝ｔ×Ｒと定義されているため、回転行列算出部１５５は、以下の式（７）を用いて、算出対象とする回転行列Ｒ及び既に算出した並進ベクトルｔの外積と、既に算出した基礎行列Ｅとの誤差が最小になるように、最小二乗法を用いて回転行列Ｒを算出する。
Σ（ｔ×Ｒ−Ｅ）＾２⇒ｍｉｎ・・・（７）
但し、記号＾２は行列の２乗を表し、記号Σは行列の全要素の和を表し、記号⇒ｍｉｎは左辺の値を最小化することを表す。
【００４７】
ここで、回転行列算出部１５５は、上記の式（７）を解くために、既に算出した並進ベクトルｔと基礎行列Ｅとを用いて−ｔ×Ｅを算出すると共に、以下の式（８）の様に−ｔ×Ｅを特異値分解してユニタリ行列Ｕ、特異値の対角行列Ｓ、及び随伴行列Ｖを算出する。
Ｕ・Ｓ・Ｖ＝ｓｖｄ（−ｔ×Ｅ）・・・（８）
但し、記号＝ｓｖｄは、括弧内の行列−ｔ×Ｅを特異値分解することを表す。
【００４８】
次に、回転行列算出部１５５は、既に算出したユニタリ行列Ｕ及び随伴行列Ｖを下記の式（９）に用いて、回転行列Ｒを算出する。
Ｒ＝Ｕ・ｄｉａｇ（１，１，ｄｅｔ（Ｕ・Ｖ））・Ｖ・・・（９）
但し、記号ｄｅｔは行列式を表し、ｄｉａｇ対角行列を表す。
【００４９】
図６（ａ）のステップＳ２５が実行された後に、図５（ｂ）の平行度算出部１５６は、並進ベクトルｔと回転行列Ｒとを以下の式（１０）に用いて平行度ＥＲＲを算出する（ステップＳ２６）。その後、平行度算出処理の実行が終了する。
ＥＲＲ＝α・Ｒ＿ＥＲＲ＋ｋ・Ｔ＿ＥＲＲ・・・（１０）
但し、記号α及びｋは、所定の値の調整係数を表し、記号Ｒ＿ＥＲＲは回転系のエラーを表し、記号Ｔ＿ＥＲＲは移動方向のエラーを表す。
【００５０】
ここで、回転系のエラーＲ＿ＥＲＲは、第２画像の撮影時のカメラ座標系（第２カメラ座標系）を、第１画像の撮影時のカメラ座標系（第１カメラ座標系）に重ねるためにどの程度だけ回転させる必要があるか表す指標である。ここで、回転行列Ｒが単位行列の場合には、第２カメラ座標系を回転させることなく第１カメラ座標系に重ねることができるため、第１画像撮影時の光軸ｌａ１と、第１画像撮影時の光軸ｌａ２とが平行になる。このため、回転系のエラーＲ＿ＥＲＲは、単位ベクトルと計算で求めた回転行列Ｒとの成分毎の差異の二乗和で算出する。
【００５１】
また、移動方向のエラーＴ＿ＥＲＲは、第１画像の撮影時における主点Ｃ１から第２画像の撮影時における主点Ｃ２への移動方向（つまり、並進ベクトルｔ）が、第１カメラ座標系のＸ軸方向とどの程度異なるかを評価する評価指標である。ここで、並進ベクトルｔにＹ成分及びＺ成分がない場合に、第１画像の撮影時におけるカメラ座標系のＸ軸と、第２画像の撮影時におけるカメラ座標系のＸ軸とが、同じ直線上で同じ向きになるため、移動方向のエラーＴ＿ＥＲＲは、並進ベクトルｔのＹ成分とＺ成分との二乗和で算出する。
【００５２】
図３のステップＳ０６が実行された後に、図５（ａ）の表示制御部１６０は、図８（ａ）に示す様に、バーＢＲ１で平行度ＥＲＲの値を示す棒グラフＧ１を表示面ＤＰに表示すると共に、回転行列Ｒ及び並進ベクトルｔの値を示すグラフＧ２を表示するよう表示部１０４を制御する（ステップＳ０７）。これらの構成によれば、デジタルカメラ１００の移動前後で配置が平行ステレオになっているか否かを表すことができるだけでなく、どの程度平行ステレオから外れているかを表示することができる。このため、デジタルカメラ１００の移動前後でカメラ配置を容易に平行ステレオにすることができるので、三次元画像の生成に適した画像を容易に撮影できる。
【００５３】
尚、図８（ａ）の棒グラフＧ１は、バーＢＲ１が表示されていない場合に、撮影部１１０が移動前後で平行ステレオ状態にあることを表し、バーＢＲ１の長さが長くなる程、平行度が高く平行ステレオ状態から外れていることを表す。
【００５４】
また、グラフＧ２は、画像ＧＳが表す球体の中心点と画像ＧＰが表す面の中心とが一致し、かつ画像ＧＰが表す面が表示部１０４の表示面ＤＰと水平である場合に、撮影部１１０が移動前後で平行ステレオ状態にあることを表す。また、グラフＧ２は、画像ＧＰが表す面の回転量で回転行列Ｒが表す回転量を表す。つまり、図８（ａ）の様に、表示部１０４は、画像ＧＰが表す面の表示方向に向かって右側を表示方向側に傾かせて表示することで、デジタルカメラ１００の光軸の方向が平行ステレオになる方向よりも光軸方向に向かって右側に傾いていることを表す。この構成によれば、どの程度だけデジタルカメラ１００（のカメラ座標系）を回転させれば平行ステレオ状態になるかを表示できる。
【００５５】
さらに、画像ＧＳが表す球体の中心点と画像ＧＰが表す面の中心との表示方向側の差異及び縦方向側（走査方向側）の差異で、並進ベクトルｔのＺ成分及びＹ成分をそれぞれ表す。この構成によれば、デジタルカメラ１００の位置を被写体に向かってどの程度だけ前後上下すれば平行ステレオ状態になるかを表示できる。
【００５６】
図３のステップＳ０７が実行された後に、図５（ａ）の平行判定部１６１は、平行度が所定の閾値を超えているか否かに基づいて、第１画像の撮影時のデジタルカメラ１００と、第２画像の撮影時のデジタルカメラ１００との配置が平行ステレオであるか否かを判定する（ステップＳ０８）。
【００５７】
平行判定部１６１は、平行度が所定の閾値を超えているため、平行ステレオでないと判定する（ステップＳ０８；Ｎｏ）。その後、デジタルカメラ１００の撮影位置が再度変更された後に、画像取得部１４２、特徴点対応部１４３、平行評価部１５０、及び表示制御部１６０は、ステップＳ０４からＳ０７の処理を順に繰り返す。
【００５８】
その後、平行判定部１６１は、平行度が所定の閾値を超えていないため、平行ステレオであると判定する（ステップＳ０８；Ｙｅｓ）。次に、実移動量算出部１６２は、図６（ｂ）に示す様な、デジタルカメラ１００の移動に伴って対象物上の点Ｍ１の画像座標系における投影点ｍ１が点ｍ２へ移動した移動量（画素距離）ｃを算出する実移動量算出処理を実行する（ステップＳ０９）。
【００５９】
実移動量算出処理の実行を開始すると、実移動量算出部１６２は、第１画像から撮影対象とする人物（対象物）の顔検出を行うと共に、検出した顔部分の特徴点を取得する（ステップＳ３１）。次に、実移動量算出部１６２は、同様に、第２画像から特徴点を取得する（ステップＳ３２）。その後、実移動量算出部１６２は、第１画像の特徴点の画像座標系における座標値と、第２画像の特徴点の画像座標系における座標値との差異から、両特徴点の画素距離ｃを算出する（ステップＳ３３）。その後、実移動量算出部１６２は、移動量算出処理の実行を終了する。
【００６０】
図４のステップＳ０９が実行された後に、図５（ａ）の奥行距離取得部１６３は、ユーザーに操作されたカーソルキー１０５及びセットキー１０５ｓが入力する信号に基づいて、撮影モードがポートレートモードに選択されていると判断する。次に、奥行距離取得部１６３は、図２のフラッシュメモリ１２２が予め記憶しているポートレートモードに対応付けた主点Ｃ１から対象物上の点Ｍ１までの奥行距離Ｚの値「３メートル」を取得する（ステップＳ１０）。次に、奥行距離取得部１６３は、フラッシュメモリ１２２が予め記憶しているポートレートモードに対応付けた奥行精度（奥行誤差）ΔＺの値「１センチメートル」を取得する。尚、奥行精度ΔＺは、許容する奥行距離の誤差を表す。
【００６１】
次に、必要移動量算出部１６４は、奥行距離Ｚが３ｍであり、かつ奥行誤差ΔＺが１ｃｍであるので、以下の式（１１）を用いて、奥行精度ΔＺ以上で三次元座標を生成するのに必要な移動量Ｎを「３００」と算出する（ステップＳ１１）。
【００６２】
Ｎ＝１／（ΔＺ／Ｚ）・・・（１１）
但し、記号Ｚは奥行距離を表し、記号ΔＺは奥行誤差を表す。
【００６３】
これは、奥行距離Ｚに対する相対誤差ΔＺ／Ｚは、ピクセルサイズで決まる精度に倍率を積算して算出されるため、相対誤差ΔＺ／Ｚは、以下の式（１２）を用いて表されるからである。また、平行ステレオである場合には、絶対距離（絶対視差距離）に対する基線長（主点Ｃ１からＣ２までの距離）の比は倍率に等しいため、奥行Ｚは、以下の式（１３）及び（１４）で算出される。よって、これらの式（１２）から（１４）を用いて上記式（１１）が導かれるためである。
【００６４】
ΔＺ／Ｚ＝（ｐ／Ｂ）・（Ｚ／ｆ）・・・（１２）
但し、記号Ｂは基線長を表し、記号ｆは焦点距離を表し、記号ｐは図２のＣＭＯＳセンサー１１２のピクセルサイズを表す。また、（ｐ／Ｂ）がピクセルサイズで決まる精度を表し、（Ｚ／ｆ）が倍率を表す。
【００６５】
Ｚ＝ｆ・（Ｂ／ｄ）・・・（１３）
但し、記号ｄは絶対視差距離を表し、以下の式（１４）で表される。
ｄ＝ｐ・Ｎ・・・（１４）
但し、記号Ｎは、画像座標上の点の移動量を表す。
【００６６】
図４のステップＳ１１が実行された後に、図５（ａ）の移動量判定部１６５は、実際に移動した移動量ｃが、以下の式（１５）を満足する様な所定の範囲に属するか否かを判断する（ステップＳ１２）。必要な移動量の２０％までの実際の移動量を適正な移動量（適正距離）とするためである。
Ｎ≦ＡＢＳ（ｃ）≦Ｎ＊１．２・・・（１５）
但し、記号ＡＢＳは絶対値を表し、記号Ｎは上記の式（１１）を満足する値を表し、記号＊は積算記号を表す。
【００６７】
ここで、移動量判定部１６５は、画素距離ｃの絶対値がＮの値「３００」よりも小さい値であるので、規定の範囲に属しないと判定する（ステップＳ１２；Ｎｏ）。このため、移動量判定部１６５は、デジタルカメラ１００の移動状態が、所定の奥行精度ΔＺで三次元画像を生成するのに十分な距離だけ、移動前（第１画像の撮影時）における撮影位置から未だ移動していないと判定する。視差が十分でないと精度良く奥行Ｚを求めることができないためである。
次に、必要移動方向判断部１６６は、移動量判定部１６５の判定結果と、画素距離ｃの符号が負であることとから、以下の表１に基づいてデジタルカメラ１００を右側に動かす必要があると判断する（ステップＳ１３）。尚、表１は、図２のフラッシュメモリ１２２に記憶されている。
【００６８】
【表１】
2011160233.tif 000004
【００６９】
これは、第１画像の画像座標系における特徴点の座標値を基準とした場合に、世界座標系でＸｗ軸の正方向にデジタルカメラ１００が移動すると、画像上で特徴点がＸｗ軸の負方向に移動するので、画素距離ｃの符号は負になるためである。
【００７０】
尚、表１の第１行に示すように、画素距離ｃが拘束条件０＜ｃ＜Ｎを満足する場合には、必要移動方向判断部１６６は、デジタルカメラ１００が第１画像の撮影位置から世界座標のＸｗ軸の負方向（つまり、対象物に向かって左側）に移動しているが、十分な距離を移動していないと判断し、デジタルカメラ１００をさらに負方向へ移動させる必要があると判断する。
【００７１】
また第２行に示すように、画素距離ｃが拘束条件ｃ＞１．２＊Ｎを満足する場合には、必要移動方向判断部１６６は、デジタルカメラ１００がＸｗ軸の負方向に移動しているが、移動し過ぎていると判断し、デジタルカメラ１００をＸｗ軸の正方向へ戻させる必要があると判断する。
【００７２】
さらに第３行に示すように、画素距離ｃが拘束条件−Ｎ＞ｃ＞０を満足する場合には、必要移動方向判断部１６６は、デジタルカメラ１００がＸｗ軸の正方向に移動しているが、十分な距離を移動していないと判断し、さらにデジタルカメラ１００をさらに正方向へ移動させる必要があると判断する。
【００７３】
またさらに第４行に示すように、画素距離ｃが拘束条件ｃ＜−１．２＊Ｎを満足する場合には、必要移動方向判断部１６６は、デジタルカメラ１００がＸｗ軸の正方向に移動しているが、移動し過ぎていると判断し、デジタルカメラ１００をＸｗ軸の負方向へ戻させる必要があると判断する。
【００７４】
図４のステップＳ１３が実行された後、表示制御部１６０は、必要移動方向判断部１６６の判断結果に基づいて、図８（ｂ）に示す様なデジタルカメラ１００を右に移動するよう促す矢印画像ＧＡを表示面ＤＰに表示するよう図１（ｂ）の表示部１０４を制御する（ステップＳ１４）。これらの構成によれば、デジタルカメラ１００を対象物に対して左右のどちらに移動させれば、所定の精度で三次元画像を生成できるかを表示できる。またこれらの構成によれば、基線長を固定する必要がなく、対象物の距離に応じて基線長を変更できると共に、変更された基線長だけデジタルカメラ１００が移動したことを表示できる。
【００７５】
また、図５（ａ）の表示制御部１６０は、移動量判定部１６５の判定結果に基づいて、図８（ｂ）に示す様なバーＢＲ３で必要な移動距離を示す棒グラフＧ３を表示する表示部１０４を制御する。この構成によれば、どの程度だけデジタルカメラ１００を移動させればよいかを容易に知ることができる。
【００７６】
矢印画像ＧＡに従ったユーザーによってデジタルカメラ１００が右方向にさらに移動した後に、図３のステップ０４からＳ１１の処理を、図５（ａ）の画像取得部１４２、特徴点対応部１４３、平行評価部１５０、表示制御部１６０、平行判定部１６１、実移動量算出部１６２、奥行距離取得部１６３、及び必要移動量算出部１６４が順に再度実行する。尚、画像取得部１４２は、第２画像を再度取得するため、前回に取得された第２画像は破棄される。
【００７７】
ステップＳ１１の処理が実行された後に、移動量判定部１６５は、ステップＳ１１で再度算出された画素距離ｃの絶対値が１．２＊Ｎの値「３６０」よりも大きい値であるので、上記の式１２を満足する様な所定の範囲に属しないと判定する（ステップＳ１２；Ｎｏ）。次に、移動量判定部１６５は、画素距離ｃが１．２＊Ｎの値よりも大きいので、デジタルカメラ１００の移動状態が、所定の奥行精度ΔＺで三次元画像を生成するには、第１画像の撮影位置と離れすぎていると判定する。視差が大き過ぎると、視点が異なり過ぎるため、対象物の同じ部位であっても第１画像と第２画像とで表され方が異なり過ぎる。この場合、対象物の同じ点を第１画像が表した点と第２画像が表した点とを精度良く対応付けることができず、精度良く奥行Ｚを求めることができないためである。
【００７８】
次に、必要移動方向判断部１６６は、移動量判定部１６５の判定結果と、画素距離ｃの符号が負であることとから、上記の表１の第４行に示した様に、デジタルカメラ１００の位置を左側に戻す必要があると判断する（ステップＳ１３）。
その後、表示制御部１６０は、移動量判定部１６５の判定結果に基づいて、デジタルカメラ１００を左に戻すように促す画像を表示部１０４に表示させる（ステップＳ１４）。
【００７９】
ユーザーによってデジタルカメラ１００が左方向に移動させられた後に、図３のステップ０４からＳ１１の処理が再度実行される。
【００８０】
ステップＳ１１の処理が実行された後に、移動量判定部１６５は、ステップＳ１１で再度算出された画素距離ｃが規定の範囲に属すると判定する（ステップＳ１２；Ｙｅｓ）。次に、通知制御部１６７は、デジタルカメラ１００が所定の奥行精度ΔＺで三次元画像を生成するのに適した位置にあることを、アラームで通知するように図２のスピーカー１２９を制御する（ステップＳ１５）。
【００８１】
次に、図５（ａ）の三次元画像生成部１７０は、図６（ｃ）に示す様な、第１画像と第２画像とを用いて対象物の三次元画像を生成する３Ｄモデリング処理を実行する（ステップＳ１６）。尚、三次元画像生成部１７０は、図１（ａ）のシャッターボタン１０９が押下げられるのを待った後に、第１画像と新たに撮影された画像とを用いて３Ｄモデリング処理を実行しても良い。
【００８２】
３Ｄモデリング処理の実行を開始すると、三次元画像生成部１７０は、ハリスのコーナー検出法を用いて、第１画像の濃度勾配の孤立点と、第２画像の濃度勾配の孤立点とをそれぞれ特徴点候補とする（ステップＳ４１）。尚、三次元画像生成部１７０は、複数個の特徴点候補を取得する。
【００８３】
次に、三次元画像生成部１７０は、ＳＳＤ（Sum of Squared Difference）のテンプレートマッチングを用いて、第１画像の特徴点候補と、第２画像の特徴点候補との相関度Ｒ＿ＳＳＤが所定の閾値以下となるものを、第１画像の特徴点及び第２画像の特徴点と決定する（ステップＳ４２）。尚、相関度Ｒ＿ＳＳＤは、以下の式（１６）を用いて算出される。尚、三次元画像生成部１７０は、複数個の特徴点の対応を決定する。
【００８４】
Ｒ＿ＳＳＤ＝ΣΣ（Ｋ−Ｔ）＾２・・・（１６）
但し、Ｋは、対象画像（つまり、第１画像における特徴点候補から所定の距離にある領域のテンプレート）を表し、Ｔは基準画像（つまり、Ｋと同形状の第２画像における領域）を表し、ΣΣは、水平方向と垂直方向との総和を表す。
【００８５】
ステップＳ４２が実行されると、三次元画像生成部１７０は、第１画像の特徴点の画像座標上の位置（ｕ１，ｖ１）を表す位置情報、及び第２画像の特徴点の画像座標上の位置（ｕ’１，ｖ’１）を表す位置情報を算出する（ステップＳ４３）。その後、三次元画像生成部１７０は、位置情報を用いて、ドルネー（ドロネー：Delaunay）三角形で表される三次元画像（つまり、ポリゴン）を生成する（ステップＳ４４）。
【００８６】
具体的には、三次元画像生成部１７０は、以下の２つの条件の下で三次元画像を生成する。１つめの条件は、三次元画像生成部１７０は、スケールに関する情報（スケール情報）を有さない相対的な大きさで対象物の三次元画像を生成するというものである。またもう１つの条件は、第１画像の撮影時と第２画像の撮影時とで撮影部１１０の配置が平行ステレオであるというものである。この２つの条件の下では、第１画像の特徴点の位置（ｕ１，ｖ１）が、第２画像の特徴点の位置（ｕ’１，ｖ’１）に対応付けられ、かつこの対応する点が三次元座標で表される位置（Ｘ１，Ｙ１，Ｚ１）に復元されるとすると、以下の式（１７）から式（１９）が成立する。
【００８７】
Ｘ１＝ｕ１／（ｕ１−ｕ’１）・・・（１７）
Ｙ１＝ｖ１／（ｕ１−ｕ’１）・・・（１８）
Ｚ１＝  ｆ／（ｕ１−ｕ’１）・・・（１９）
【００８８】
よって、三次元画像生成部１７０は、上記の式（１７）から式（１９）を用いて、残りの対応付けられた特徴点について三次元座標で表される位置を算出すると共に、算出した位置の点を頂点とする多面体の三次元画像を生成する。その後、三次元画像生成部１７０は、３Ｄモデリング処理の実行を終了する。
【００８９】
この構成によれば、第１画像の撮影時と第２画像の撮影時とで撮影部１１０の配置が平行ステレオである場合に、上記の式（１７）から式（１９）を用いて対象物を表す三次元画像を生成するため、平行ステレオでない場合に下記の式（２０）を用いて三次元画像を生成する場合よりも少ない計算量で三次元画像を生成できる。
【００９０】
ｔｒａｎｓ（ｕ１，ｖ１，１）〜Ｐ・ｔｒａｎｓ（Ｘ１，Ｙ１，Ｚ１，１）
ｔｒａｎｓ（ｕ’１，ｖ’１，１）〜Ｐ’・ｔｒａｎｓ（Ｘ１，Ｙ１，Ｚ１，１）
但し、記号〜は両辺が定数倍の違いを許して等しいことを表し、行列Ｐは第１画像のカメラ座標系への射影行列（カメラ射影パラメーター）、行列Ｐ’は第２画像のカメラ射影パラメーターを表す。
【００９１】
図４のステップＳ１６が実行された後に、図５（ａ）の表示制御部１６０は、対象物の三次元画像を表示するよう図１（ｂ）の表示部１０４を制御する（ステップＳ１７）。次に、出力制御部１７１は、図１（ｃ）のＵＳＢ端子接続部１０７で接続するコンピューターへ三次元画像を表す電子ファイルを出力するよう図２のＵＳＢ制御部１２８を制御する（ステップＳ１８）。次に、三次元画像保存部１７２は、三次元画像を図２のフラッシュメモリ１２２へ保存する（ステップＳ１９）。その後、デジタルカメラ１００は、三次元画像生成処理の実行を終了する。
【００９２】
尚、本実施例において、実移動量算出部１６２は、撮影対象とする人物（対象物）の顔を表した画像部分から特徴点を取得するとして説明した。しかし、実移動量算出部１６２は、焦点を合わせた画像領域（つまり、画像の中心部から所定距離の画像領域）から特徴点を取得しても良い。この構成によれば、他の領域に比べて焦点を合わせた画像領域は、対象物をより鮮明に表現するため、精度良く特徴点を対応させることができる。
また、デジタルカメラ１００は、図１（ｂ）の表示部１０４の上にタッチパネルを備え、実移動量算出部１６２は、ユーザーがタッチパネルを操作して指定した画像領域から特徴点を取得しても良い。
【００９３】
尚、本発明に係る機能を実現するための構成を予め備えたデジタルカメラとして提供できることはもとより、プログラムの適用により、既存のデジタルカメラを本発明に係るデジタルカメラとして機能させることもできる。すなわち、上記実施形態で例示したデジタルカメラ１００による各機能構成を実現させるための制御プログラムを、既存のデジタルカメラを制御するコンピューター（ＣＰＵなど）が実行できる様に適用することで、本発明に係るデジタルカメラ１００として機能させることができる。
【００９４】
このようなプログラムの配布方法は任意であり、例えば、メモリカード、ＣＤ−ＲＯＭ、又はＤＶＤ−ＲＯＭなどの記録媒体に格納して配布できる他、インターネットなどの通信媒体を介して配布することもできる。
【００９５】
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【符号の説明】
【００９６】
１００・・・デジタルカメラ、１００ａ・・・バス、１０１・・・ストロボ発光窓、１０２・・・結像光学系（撮像レンズ）、１０４・・・表示部、１０５・・・カーソルキー、１０５ｓ・・・セットキー、１０６ｍ・・・メニューキー、１０６ｄ・・・３Ｄモデリングキー、１０７・・・ＵＳＢ端子接続部、１０８・・・電源ボタン、１０９・・・シャッターボタン、１１０・・・撮影部、１１１・・・駆動制御部、１１２・・・ＣＭＯＳセンサー、１１３・・・ＩＳＰ、１２０・・・画像エンジン、１２１・・・ＣＰＵ、１２２・・・フラッシュメモリ、１２３・・・ワークメモリ、１２４・・・ＶＲＡＭ制御部、１２５・・・ＶＲＡＭ、１２６・・・ＤＭＡ、１２７・・・キー入力部、１２８・・・ＵＳＢ制御部、１３０・・・スピーカー、１４１・・・撮影制御部、１４２・・・画像取得部、１４３・・・特徴点対応部、１５０・・・平行評価部、１５１・・・画像位置検出部、１５２・・・焦点距離検出部、１５３・・・基礎行列算出部、１５４・・・並進ベクトル算出部、１５５・・・回転行列算出部、１５６・・・平行度算出部、１６０・・・表示制御部、１６１・・・平行判定部、１６２・・・実移動量算出部、１６３・・・奥行距離取得部、１６４・・・必要移動量算出部、１６５・・・移動量判定部、１６６・・・必要移動方向判断部、１６７・・・通知制御部、１７０・・・三次元画像生成部、１７１・・・出力制御部、１７２・・・三次元画像保存部、Ｃ１，Ｃ２・・・主点、ｆ１，ｆ２・・・焦点、ｔ・・・並進ベクトル、Ｒ・・・回転行列、ｌａ１，ｌａ２・・・光軸、Ｍ２・・・対象物
【図１】
2011160233.tif 000005
【図２】
2011160233.tif 000006
【図３】
2011160233.tif 000007
【図４】
2011160233.tif 000008
【図５】
2011160233.tif 000009
【図６】
2011160233.tif 000010
【図７】
2011160233.tif 000011
【図８】
2011160233.tif 000012