(57)【特許請求の範囲】
【請求項１】
物体を含む空間を描写する３次元データを取得する取得手段と、
前記３次元データの所定方向の位置のデータを、物体の存在する位置に応じてそれぞれ位置を変換する変換手段と、
前記所定方向の位置が変換された３次元データを出力する出力手段と、を有し、
前記変換手段は、複数の物体が存在する場合、当該複数の物体の存在しない空間に対応する範囲の位置のデータを、当該複数の物体が存在する空間に対応する範囲の位置のデータに比べて大きな圧縮率で変換する、ことを特徴とする画像処理装置。
【請求項２】
前記変換手段は、前記３次元データに存在する物体の種類に基づいて前記所定方向における各位置を変換することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記変換手段は、前記３次元データの前記所定方向における位置のデータについて、基準とする物体の存在する空間に対応する位置からの距離が第１の距離である範囲の位置のデータよりも、前記第１の距離より遠い第２の距離である範囲の位置のデータをより大きな圧縮率で変換することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記変換手段は、前記基準とする物体の存在する空間に対応する位置からの距離に応じて、圧縮率が単調増加するように位置のデータを圧縮することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記所定方向の位置のデータの圧縮率に対するユーザの操作が入力される第１の入力手段を更に有し、
前記変換手段は、前記第１の入力手段に入力された操作に基づいて前記３次元データの前記所定方向の位置のデータを変換することを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記変換手段は、前記複数の物体のうちの所定の物体が存在する空間に対応する範囲の位置のデータを、前記所定の物体を含む２つの物体のそれぞれまでの所定の位置からの距離の比率に基づいて、前記所定方向に垂直な方向にも変倍する、ことを特徴とする請求項１から５のいずれか１項に記載の画像処理装置。
【請求項７】
前記所定方向に垂直な方向にも変倍するか否かを決定する決定手段を更に有し、
前記決定手段は、前記所定方向に垂直な方向にも変倍するか否かを選択するユーザ操作を取得する第２の入力手段、又は、前記所定の物体の種別に基づいて前記所定方向に垂直な方向にも変倍するか否かを判定する判定手段を含み、
前記変換手段は、前記決定手段により前記所定方向に垂直な方向にも変倍するように決定された場合、前記複数の物体のうちの所定の物体が存在する空間に対応する範囲の位置のデータを、前記所定の方向に垂直な方向にも変倍する、ことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記３次元データは、２次元に配列された光電変換素子を有する撮像素子から得られる２次元の画像データと、前記所定方向の位置のデータとしての、被写体の奥行き方向のデータとを含むことを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
前記画像データから特定の物体を検出する検出手段を更に有し、
前記変換手段は、前記検出手段による検出結果に基づいて前記３次元データ内に存在する物体を判定することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記変換手段は、前記検出手段により前記画像データから検出された物体が前記３次元データの前記所定方向において存在する範囲を、予め記憶されている前記検出手段により検出される物体の厚み情報に基づいて推定することを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記撮像素子は複数の前記光電変換素子によって撮像光学系の複数の異なる瞳領域の光束をそれぞれ受光し、
前記３次元データの前記所定方向の位置のデータは、前記異なる瞳領域に対応する１対の画像信号から算出されたものであることを特徴とする請求項８乃至１０のいずれか１項に記載の画像処理装置。
【請求項１２】
前記出力手段は、前記変換手段により変換された３次元データを３次元の造形物の生成に用いるために所定の形式に変換し、出力することを特徴とする請求項１乃至１１のいずれか１項に記載の画像処理装置。
【請求項１３】
前記出力手段は、前記３次元データをＳＴＬファイル形式に変換し、出力することを特徴とする請求項１乃至１２のいずれか１項に記載の画像処理装置。
【請求項１４】
取得手段が、物体を含む空間を描写する３次元データを取得する取得工程と、
変換手段が、前記３次元データの所定方向の位置のデータを、物体の存在する位置に応じてそれぞれ位置を変換する変換工程と、
出力手段が、前記所定方向の位置が変換された３次元データを出力する出力工程と、を有し、
前記変換工程では、複数の物体が存在する場合、当該複数の物体の存在しない空間に対応する範囲の位置のデータを、当該複数の物体が存在する空間に対応する範囲の位置のデータに比べて大きな圧縮率で変換する、ことを特徴とする画像処理装置の制御方法。
【請求項１５】
コンピュータを、請求項１乃至１３のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置およびその制御方法ならびにプログラムに関し、特に３次元データの変換技術に関する。
【背景技術】
【０００２】
従来、撮像画像の各画素エリアに対する距離を測定し、３次元データを取得する方法が知られている。例えば、特許文献１には、レーザーによる距離の測定と撮影画像とを組み合わせて、効果的に３次元データを取得する方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−０３７３９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、近年、３Ｄプリント等と称する、物体の３次元データを入力すると当該物体の３次元形状を造形物として出力可能な技術が普及しつつある。３次元形状の造形物の出力が容易になって家庭等に普及すると、特定の種類の３次元形状データにおいては、元のデータのままの形状で縮尺あるいは倍尺を変えるだけではニーズに合っていない出力物体ができることが考えられる。
【０００５】
本発明は、上述の従来技術の問題点に鑑みてなされ、造形物を出力させるための３次元の形状データを、造形物に適した縮尺あるいは倍尺で変形することが可能な画像処理装置およびその制御方法ならびにプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
この課題を解決するため、例えば本発明の画像処理装置は以下の構成を備える。すなわち、物体を含む空間を描写する３次元データを取得する取得手段と、３次元データの所定方向の位置のデータを、物体の存在する位置に応じてそれぞれ位置を変換する変換手段と、所定方向の位置が変換された３次元データを出力する出力手段と、を有し、前記変換手段は、複数の物体が存在する場合、当該複数の物体の存在しない空間に対応する範囲の位置のデータを、当該複数の物体が存在する空間に対応する範囲の位置のデータに比べて大きな圧縮率で変換する、ことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、造形物を出力させるための３次元の形状データを、造形物に適した縮尺あるいは倍尺で変形することが可能になる。
【図面の簡単な説明】
【０００８】
【図１】本発明に係る３次元データの変換処理を適用すべき課題を説明する図
【図２】実施形態１に係る画像処理装置の一例としてのデジタルカメラ２００の機能構成例を示すブロック図
【図３】実施形態１に係る３次元データの変換処理の一連の動作を示すフローチャート
【図４】実施形態１に係る主要物体の範囲の検出処理を説明する図
【図５】実施形態１に係る３次元データの奥行方向の圧縮を説明する図
【図６】実施形態１に係る３次元データのデータフォーマットの例
【図７】実施形態１に係るポリゴン情報による３次元データの奥行方向の圧縮を説明する図
【図８】実施形態１に係る変形例としての３次元データの奥行方向の圧縮を説明する図
【図９】実施形態２に係る３次元データの変換処理の一連の動作を示すフローチャート
【図１０】実施形態２における主要物体およびサブ主要物体の範囲の検出処理を説明する図
【図１１】実施形態２に係る３次元データの奥行方向の圧縮を説明する図
【図１２】実施形態３に係る３次元データの変換処理の一連の動作を示すフローチャート
【図１３】実施形態３に係る主要物体の範囲の検出処理を説明する図
【図１４】実施形態３に係る３次元データの奥行方向の圧縮を説明する図
【図１５】実施形態３に係る奥行方向と垂直平面方向の大きさの補正処理を説明する図
【図１６】実施形態３に係る主要物体範囲の検出方法を説明する図
【発明を実施するための形態】
【０００９】
（実施形態１）
以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。なお、以下では画像処理装置の一例として、被写体の３次元形状の計測（３Ｄスキャンともいう）が可能な構成を備えたデジタルカメラに本発明を適用した例を説明する。しかし、本発明でいう画像処理装置は、被写体の３次元形状の計測が可能な構成に限らず、計測した３次元の形状データを取得可能な任意の電子機器にも適用可能である。これらの電子機器には、例えば携帯電話機、ゲーム機、タブレット端末、パーソナルコンピュータ、時計型や眼鏡型の情報端末などが含まれてよい。
【００１０】
（デジタルカメラ２００の構成）
図２は、本実施形態の画像処理装置の一例としてデジタルカメラ２００の機能構成例を示すブロック図である。なお、図２に示す機能ブロックの１つ以上は、ＡＳＩＣやプログラマブルロジックアレイ（ＰＬＡ）などのハードウェアによって実現されてもよいし、ＣＰＵやＭＰＵ等のプログラマブルプロセッサがソフトウェアを実行することによって実現されてもよい。また、ソフトウェアとハードウェアの組み合わせによって実現されてもよい。従って、以下の説明において、異なる機能ブロックが動作主体として記載されている場合であっても、同じハードウェアが主体として実現されうる。
【００１１】
撮像部２０１は、複数の撮像光学系と撮像素子によって構成され、それぞれの撮像光学系と撮像素子によって得られる視差画像を出力する。撮像部２０１の内部に備えられる撮像素子は、１つの撮像光学系により結像された被写体光学像を、２次元に配置された複数の画素を構成する複数の光電変換素子で受光し、画素ごとに光電変換してアナログ信号を出力する。撮像素子は、ＣＭＯＳ（Complementary Metal Oxide Semiconductor）イメージセンサなどの撮像素子であってよい。撮像素子は、タイミングジェネレータにより供給されるタイミング信号に従って、画素ごとのアナログ信号を出力する。各撮像素子から出力された各像のアナログ信号はそれぞれＡ／Ｄ変換され、視差を有するデジタルの画像データ（視差画像データ）として出力される。制御部２０６は、撮像部２０１から出力された視差画像データを用いて視差情報を取得し、当該視差情報に基づいて被写体である物体の３次元の形状データ（以降、単に３次元データともいう）を算出する。なお、１つの撮像素子により、例えば全有効画素のひとつひとつの画素を独立した複数のフォトダイオードで構成し、撮像光学系の複数の異なる瞳領域の光束をそれぞれ受光させる構成であってもよい。異なる瞳領域の光束に対応する画像データは互いに視差を有する画像データであり、上記視差画像データと同様に、異なる瞳領域に対応する１対の画像信号から奥行き方向のデータを取得することができる。またこのようにすれば、１つの撮像光学系を用いて視差画像データを得ることができる。
【００１２】
画面表示部２０２は、３次元データを取得中に撮像部２０１から出力された画像を表示するほか、既に取得した形状データに関する情報（既スキャン情報）、撮像画像等の確認を行う。
【００１３】
画面操作部２０３は、例えば画面表示部２０２の表示面上に配置されており、ユーザによる例えば接触操作などを検出すると、制御部２０６に操作指示の検出を通知する。制御部２０６は、画面操作部２０３からの通知に応じて、例えばメニュー表示等の表示を変更するために画面表示部２０２を制御する。
【００１４】
物体検出部２０４は、撮像部２０１によって得られる画像データに対して後述する物体検出処理を行う。物体検出処理は、画像内部の人物や物体の検出や、それらの位置、大きさなどを特定するための算出処理を行い、算出結果を制御部２０６に出力する。
【００１５】
ボタン操作部２０５は、操作ボタン等に対するユーザからの操作指示を検出し、制御部２０６に操作指示の検出あるいはその検出内容を通知する。制御部２０６は、ボタン操作部２０５からの通知に応じてデジタルカメラ２００の各部を制御する。
【００１６】
制御部２０６は、例えばＣＰＵあるいはＭＰＵであり、ＲＯＭ２０７に格納されたプログラムをＲＡＭ２０８の作業エリアに展開し、実行することにより、デジタルカメラ２００全体を制御する。制御部２０６は、視差画像データから得られる視差情報に基づいて、３次元データを算出するとともに、算出した３次元データに対して、後述する３次元データの変換処理を行う。
【００１７】
ＲＯＭ２０７は、半導体メモリや磁気ディスク等から構成される不揮発性の記憶装置であり、制御部２０６が実行するプログラムやデジタルカメラ２００に設定された設定値を記憶する。
【００１８】
ＲＡＭ２０８は、揮発性の記憶装置であり、デジタルカメラ２００の電源を切った後は消えても構わないような一時的なデータを記憶する装置である。ＲＡＭ２０８は、処理中の一時的なデータを記憶する役割を担う。
【００１９】
メモリスロット２０９は、記録データをメモリカード２１０に読み書きするためのインタフェースである。メモリカード２１０は、磁気や半導体で構成される記録メディアであり、撮影された画像や３次元データ、デジタルカメラ２００に対する設定値がメモリスロット２０９を介して記録される。
【００２０】
加速度センサ２１１およびジャイロセンサ２１２は、デジタルカメラ２００自体の移動、回転をそれぞれ検出する。制御部２０６は、検出された移動量や回転量の情報と、撮像部２０１の出力から算出可能な１方向の物体形状情報（即ち視差画像データから得られる３次元の情報）を多数の視点で取得した情報とを組み合わせて、３次元物体データを生成することができる。なお、本実施形態では、奥行き方向(Ｚ軸方向)の情報を取得する手段として、視差画像データを用いたが、これに限らず、例えば赤外線などを用いたＴＯＦセンサなど、奥行き方向の情報を取得する手段は、他の手法であってもよい。
【００２１】
撮像部２０１〜ジャイロセンサ２１２の各機能ブロックは、バスによって互いに接続され、データの送受信を行うことができる。
【００２２】
（本実施形態に係る３次元データの変換処理の必要性）
図１を参照して、被写体で構成される空間を３Ｄスキャンすることにより得られた３次元データを、造形物として出力する場合の課題の例を説明する。図１（ａ）は、デジタルカメラ２００と、被写体となる物体１０１〜１０４の実物物体の位置関係を示している。物体１０１〜１０４は、デジタルカメラ２００から奥行方向（Ｚ軸方向）の各位置に存在し、それぞれが物体固有の奥行き（厚み）を有している。物体１０１および物体１０２は、Ｚ軸からそれぞれプラスＸ方向、マイナスＸ方向に所定の距離を離れて位置し、デジタルカメラ２００からＺ軸方向の同等の距離に位置している。物体１０１および物体１０２より遠方（プラスＺ軸方向）に物体１０３、物体１０４がそれぞれ所定の距離を隔てて位置している。このような物体１０１〜１０４の３次元データを、デジタルカメラ２００により３Ｄスキャンするものとする。ここで、本実施形態のように、２次元に配列された光電変換素子を有する撮像素子で取得された画像信号によりＸ軸方向、Ｙ軸方向の２次元データを取得し、さらに奥行き情報を取得する構成によって生成される３次元データについて説明する。例えば撮像部２０１の有する撮像素子で撮像する場合、撮像された画像内の被写体の大きさは、デジタルカメラ２００からの距離に応じて実際の大きさより小さく撮像される。従って、単純に撮像部２０１から得られる２次元データ（画像データ）に奥行き情報のＺ軸方向のデータを加えて３次元データを生成しても、実空間における各被写体の大きさの関係を再現しているとは限らない。実空間における３次元データをモデリングするためには、奥行き情報に基づいて、ＸＹ方向の各被写体の大きさも変形する必要がある。ただし、本実施形態では、２次元の画像データとして鑑賞可能なデータを持つユーザが、その画像の３次元化を求めて造形物を出力することを想定している。このため、３Ｄ出力装置へ提供する３次元データとしては、必ずしも各被写体の大きさの関係まで再現した３次元データである必要はなく、むしろＸＹ軸方向の物体（被写体）の大きさの関係を画像データと等しくした前者の３次元データの方が好ましい場合も考えられる。従って、本実施形態では、物体を含む空間を描写する３次元データとしてＸＹ方向のデータはどちらのデータも考えられるものとする。
【００２３】
上述の３Ｄスキャンにより得られた３次元データについて、さらに奥行き方向の情報について考える。得られた３次元データのうちの奥行き情報は、例えば図１（ｂ）に示すように、３Ｄ出力装置で出力可能な大きさに縮尺を変更される（正規化される）。３次元データ中の各オブジェクト１０９〜１１２は、物体１０１〜１０４にそれぞれ対応する。図１（ｂ）に示す各オブジェクトは、Ｚ軸方向が一律に３Ｄ出力装置のレンジに合わせて縮小され、物体１０１〜１０４の間の奥行き方向の位置関係を維持して縮小されている。
【００２４】
しかし、撮影した３次元データを記念物体等として出力する場合、例えば図１（ｃ）のように、奥行方向の縮尺を、物体の特徴に合わせて適切に縮小させる、または図１（ｄ）のように、レリーフ状の３Ｄ出力物体として出力させるなどのニーズがある。また、図１（ｂ）に示すような種類の３次元形状データの出力では、オブジェクト１１１とオブジェクト１１２の間のスペースが無駄になる場合や、画像データ内に存在していた例えばオブジェクト１１１などの重要な被写体が強調されず、印象的に見えないなど、ユーザの意図に沿わない構成になってしまう場合がある。従って、必ずしも各物体の位置関係や奥行きを正確に再現するのではなく、必要に応じてオブジェクト間の奥行きを変更する、３次元データの変換処理を行うことが望まれる。
【００２５】
そこで、本実施形態では、例えばｚ軸方向などの所定の方向の位置のデータの縮尺を変更し、さらにｚ軸方向の位置（範囲）に応じて縮尺（圧縮率）を変更可能にする。すなわち、本実施形態では、３次元データの所定方向の位置のデータを、物体の存在する位置に応じてそれぞれ変換する。例えば図１（ｃ）および図１（ｄ）に示すように、オブジェクト１１１とオブジェクト１１２の間の奥行き部分の縮尺をオブジェクト１１１やオブジェクト１１２の範囲の縮尺よりも大きくする。すなわち、本実施形態では、以下に説明する３次元データの変換処理によって例えば奥行方向の縮尺を奥行方向の位置に応じて変更するようにする。ｚ軸方向の縮尺は、ｚ軸方向と直交するｘ軸方向やｙ軸方向の縮尺と独立して行われてもよいし、何らかで関連付けられていてもよい。
【００２６】
（３次元データの変換処理に係る一連の動作）
次に、図３を参照して、デジタルカメラ２００による３次元データの変換処理に係る一連の動作を説明する。本処理は、例えばデジタルカメラ２００のボタン操作部２０５に対するユーザによる撮影指示が検出された場合に開始される。なお、本処理に係る各ステップは、制御部２０６の指示に応じて実行され、制御部２０６がＲＯＭ２０７に記憶されたプログラムをＲＡＭ２０８の作業用領域に展開し、実行することにより実現される。
【００２７】
Ｓ３０１において、制御部２０６は、撮像部２０１から出力される視差画像データ、加速度センサ２１１の出力およびジャイロセンサ２１２の出力を取得する３Ｄスキャンと、取得した各データに基づく３次元データの成形処理を行う。本実施形態では、図１（ａ）に示した被写体となる物体１０１〜１０４を３Ｄスキャンの対象とした場合を例に説明する。本実施形態では、ある位置、方向（例えば図１（ａ）のデジタルカメラ２００）の画像を基準として多方向からスキャン、即ち複数の方向から複数回の撮影を行なう。撮影の際には、デジタルカメラ２００の撮影位置や向きの変動が各撮影と対応づけて取得され、得られたデータから被写体の３次元形状を得る。複数の視差画像データおよび撮影位置や向きの変動に基づいて、被写体となる物体の３次元形状を得る方法については、公知の方法を用いることができる。例えば、加速度センサ２１１、ジャイロセンサ２１２の情報を利用すると、撮影を行った複数の位置の位置関係が把握できるため、全ての３Ｄデータとしての点群データを、１つの３次元空間上での位置に落とし込むことができる。この合成操作によって、被写体の裏表も含めた表面形状の３Ｄ点群データを取得することができる。図１（ａ）に示す物体の３次元形状をスキャンした後、制御部２０６は、３次元データの成形処理、即ち例えばＳＴＬファイルフォーマット等の一般的な３次元データに成形する処理を行う。
【００２８】
ＳＴＬファイルフォーマットにおいては、３次元形状を３角形の面の集合として表現する方式を用いており、３次元点群データを３角形の集合データに変換する必要がある。この変換に関しては、一般的にいくつかの方法が知られているが、本実施形態では広く知られているアルゴリズムである３次元ドロネー分割法を用いるものとする。ＲＯＭ２０７の中には、あらかじめこのドロネー分割法のアルゴリズムが格納されており、前述の手順で得られた物体の点群データを３角形平面集合に変換し、それを３次元空間内での３角形の集合体データであるＳＴＬファイル形式に変換する。
【００２９】
本実施形態においては、本ステップの成形処理により、３Ｄ出力装置で可能な大きさに縮尺を変更し、ｘ、ｙ、ｚ軸のそれぞれが同じ縮尺で縮小された３次元データを生成するものとして説明する。制御部２０６は、データの成形処理が終了するとメモリスロット２０９を介してメモリカード２１０に成形後のデータを格納する。本実施形態では複数の撮像光学系とその視差画像データを利用した３Ｄスキャンについて説明するが、３次元データが得られる限り、レーザー照射を利用する形態や像面位相差センサを利用する形態など他の形態も適用可能である。撮像部２０１に像面位相差検出機構が搭載されている場合、画素単位での距離データ取得が可能である。よって特定のある位置から撮像処理を行って得られる画像データには、画像内の各画素に対する色データと、加えて各画素毎にデジタルカメラ２００から各画素に対応する被写体の表面部までの距離情報を取得することができる。この各画素に対して奥行方向の距離を配置した点群データが取得できる生の３Ｄデータとなる。
【００３０】
Ｓ３０２において、制御部２０６は、奥行方向を定義するために座標軸を決定する。本実施形態では、例えばｚ方向を奥行方向として定義する。ｙ方向は地面に対して鉛直方向を表し、３Ｄスキャン中に加速度センサ２１１によって重力加速度の方向を特定することで定義する。３Ｄスキャン中はデジタルカメラ自体が様々な方向を向くため、スキャン直後にはどちらがｚ軸方向であるかが決定されていない。このため、制御部２０６は、スキャン結果の３次元データの概形を画面表示部２０２に表示し、画面操作部２０３のユーザインターフェースを介してユーザにより奥行方向であるｚ軸方向を決定する。ｚ軸方向を決定すると上述したｙ軸の定義にしたがってｙ軸方向を決定し、さらにｘ軸方向を決定する。制御部２０６は、Ｓ３０１において生成した３次元データを新たに決定した座標系の３次元データに変換してメモリカード２１０に記憶させる。なお、以降の説明では図１（ａ）で示したｚ軸を選択したものとして説明する。
【００３１】
また、３Ｄスキャン中に記憶した２次元の撮像画像のうち、３次元データの所定の断面に対応する画像を決定する。即ち、決定したｚ軸方向に向かって撮像した画像であって、上述の物体１０１〜１０４が画角内に収まった画像を１枚決定し、３次元データの付加情報としてメモリカード２１０に記憶する。
【００３２】
本実施形態では、多方向からスキャン（即ち撮影）することを前提とするためユーザによるｚ軸方向の設定を行うようにしている。しかし、１方向からのスキャンのみで背面情報を取得しない等のスキャン方法の場合は、スキャン時の方向をそのままｚ軸として設定するようにしてもよい。この場合ユーザによるｚ軸指定は不要となる。
【００３３】
Ｓ３０３において、制御部２０６は、被写体である物体のうち、注目すべき主要物体を決定する。図４（ａ）は、Ｓ３０２において決定した２次元画像と当該画像に対する物体の検出結果の一例を示している。物体検出部２０４は、制御部２０６の指示に応じて、２次元画像において画像内の物体を検出し、その後、制御部２０６は、物体検出部２０４による検出結果を画面表示部２０２に表示する。なお、２次元画像内の物体の検出においては、公知の物体検出技術を用いることができるため、物体検出技術についての詳細な説明は省略する。図４（ａ）における表示例では、検出された画像内の４つの物体、即ち物体４０１〜４０４に対して、それぞれが検出されたことを明示するための物体検出枠４０５〜４０８が表示されている。ユーザは、画面操作部２０３に対する指示操作によって、物体検出枠４０５〜４０８のどれかを選択することで主要物体を特定する。制御部２０６は、ユーザ操作により所定の物体が特定されると、特定された物体を主要物体として決定する。なお、主要物体の決定方法については、上述したユーザの手動による決定方法だけでなく、制御部２０６が自動的に主要物体を決定するようにしてもよい。この場合には、画角内の物体の位置、物体が人物であるかといった物体の特性等の情報によって決定すればよい。
【００３４】
Ｓ３０４において、制御部２０６は、決定した主要物体の奥行方向の厚みを検出する。図４（ａ）に示す画像を撮影した位置および向きは、３Ｄスキャン中に記録された位置関係から得ることができ、図４（ｂ）に示すデジタルカメラ２００の位置および光軸の向きであるものとする。制御部２０６は、図４（ａ）の物体検出枠４０７が、取得済みの３次元データ内でどのような関係になるかを特定することができる。より具体的には、図４（ｂ）は、物体検出枠４０７が３次元データにおいてどのような位置にあるかを示している。制御部２０６は、この物体検出枠４０７をｚ軸方向に走査し、走査してできた直方体４１０に含まれる物体領域の３次元データを検出する。
【００３５】
さらに具体的には、３次元データは、例えばＳＴＬファイルフォーマット等の場合、ポリゴンと呼ばれる最少単位の３次元上の三角形情報の集合体として表現されている。制御部２０６は、まず上述した直方体内に含まれるポリゴンを全て検出する。その上で、検出したポリゴン間での接続状況を考慮して、上述の直方体４１０内でポリゴン群が閉曲面を構成しているか、またその閉曲面で構成される範囲のｘｙ平面への写像が物体検出枠４０７の一定量以上の割合を占めているか、を判定する。いずれの判定をも満たす場合、制御部２０６は、直方体４１０に含まれる３次元データを主要物体の物体領域として決定する。一方、上述した条件を満たしている場合において、ポリゴン閉曲面で構成された物体が複数検出された場合、例えば「より前面にある」等の条件を加えることにより１つの物体に関する３次元データを決定する。本実施形態の場合、このような処理を行うことで、物体１０３を構成するポリゴン情報を抽出することができる。検出した物体１０３を構成するポリゴン情報のうち、ｚ軸成分が一番小さいものと、一番大きいものとの差分を用いて物体１０３の厚みを推定することにより算出する。算出された厚みは、図４（ｂ）における物体厚み４０９となる。
【００３６】
Ｓ３０５において、制御部２０６は、Ｓ３０４において算出した物体１０３のｚ軸方向の位置と厚みに基づいて、ｚ軸方向に対する圧縮プロファイル関数Ｈ（ｚ）を生成する。具体的には、圧縮プロファイル関数Ｈ（ｚ）は、ｚ軸上のどの位置にある成分をどれだけの倍率で圧縮するかを示すｚの関数であり、ｚ方向に対する変換特性を表す。圧縮プロファイル関数Ｈ（ｚ）は、Ｓ３０４において算出したオブジェクト１１１のｚ軸方向の位置および厚みを利用して生成される。図５を参照して、圧縮プロファイル関数Ｈ（ｚ）の生成処理を含むｚ軸方向の圧縮について説明する。なお、以降の説明は簡単のためにｚ方向について説明するが、ｘ、ｙ方向については例えば圧縮率１で変換するものする。
【００３７】
図５（ａ）は、ｚ軸と垂直な方向（ｘ軸のプラス側）から見た３次元データにおける位置関係を模式的に示している。また、図５（ｂ）は、圧縮プロファイル関数Ｈ（ｚ）の特性を示しており、横軸は奥行き（ｚ）、縦軸は圧縮率を示している。例えば、圧縮率が１の場合、ｚ軸方向の成分はそのまま維持される。また、例えば圧縮率が２の場合、ｚ軸方向の距離はさらに１／２に圧縮される。オブジェクト１１１については、オブジェクト１１１の存在する位置と厚み範囲に対応する部分の圧縮率が１であるため、位置および厚みは変化しない。一方、オブジェクト１１１以外の位置については、その位置から離れるに従って線形に圧縮率が上がる特性を示している。このため、オブジェクト１１１と、オブジェクト１０９およびオブジェクト１１２とのそれぞれのｚ軸方向の位置関係はそれぞれ圧縮され、図５（ｃ）に示すように、オブジェクト５０１と５０２の間、オブジェクト５０２と５０３の間の距離のように短縮される。また、オブジェクト１０９およびオブジェクト１１２の厚みもそれぞれ圧縮されるため、それぞれが図５（ｃ）に示すオブジェクト５０１および５０３の厚みに圧縮される。このように、制御部２０６は、主要物体のｚ軸方向の位置と厚みに基づいて、主要物体に関して圧縮率を低く保ち、主要物体からの距離に応じて線形に圧縮率が上がる（即ち単調増加する）ように、圧縮プロファイル関数を生成する。
【００３８】
Ｓ３０６において、制御部２０６は、圧縮プロファイル関数から、実際に３次元データのｚ軸データを変換するための変換関数Ｇ（ｚ）を生成する。連続系の数式で表すと、変換関数Ｇ（ｚ）は、数式１で表される数式によって圧縮プロファイル関数Ｈ（ｚ）から生成できる。数式１は、ＣＰＵ演算等に適した離散系の数式では、数式２で表される数式となる。
【００３９】
【数１】
0006704700.tif 000002
【００４０】
ｚ軸方向における圧縮プロファイル関数Ｈ（ｚ）、変換関数Ｇ（ｚ）および変換後のｚ’について、図５（ｃ）を参照して説明する。説明の簡略化のため、横軸ｚは０〜１００に正規化されているものとする。ｚ＝０の位置がｚ軸方向のデータ範囲の最前面位置、ｚ＝１００の位置がｚ軸方向のデータ範囲の最後方位置に相当する。図５（ｄ）は、圧縮プロファイル関数Ｈ（ｚ）を表し、主要物体の範囲（ｚ＝３０〜４０）以外の圧縮率は任意に設定可能である。主要物体の範囲以外の圧縮率は、例えばｚ軸方向の最前面位置および最後方位置の圧縮率をそれぞれ予め定めた圧縮率として、主要物体の位置および厚みとの関係から算出するようにしてもよい。図５（ｅ）に示す変換関数Ｇ（ｚ）は、図５（ｄ）に示す圧縮プロファイル関数Ｈ（ｚ）に数式１および数式２が適用されて算出される関数である。圧縮変換する前の座標をｚ、ｚに対応する変換後の座標をｚ’とすると、ｚとｚ’の関係は数式３で表される。このｚとｚ’の関係をグラフにしたものが図５（ｆ）となる。
【００４１】
Ｓ３０７において、制御部２０６は、Ｓ３０６で決定したｚ軸方向における変換関数Ｇ（ｚ）を用いて、Ｓ３０２で得られた３次元データのｚ軸方向のデータを変換する処理を行う。図６は、３次元データのファイルフォーマットの一例であるＳＴＬ（STereoLithography）ファイルフォーマットの構文を示している。図６に示すように、３次元データは、３次元空間上での三角形情報であるポリゴン情報を列挙した形式で表現されている。より具体的には、”facet normal”行から”endfacet”行までが三角形データの具体的なデータを構成し、具体的なデータは”facet normal”行および”vertex”行に記述される。”facet normal”行は、三角形の法線ベクトルを表し、３つの”vertex”行は三角形データの各頂点の座標を表すとともに、各頂点はｘ、ｙ、ｚ成分の数値を持つ。従って、制御部２０６は、三角形の各頂点の情報に対して、変換関数Ｇ（ｚ）を適用してｚ軸方向に位置を変換する。
【００４２】
図７は、ポリゴンの３角形情報をｚ軸変換関数Ｇ（ｚ）を使ってｚ軸方向にどのように変換するかを示している。図７（ａ）においてＳで示すポリゴン情報は、Ａ（ｘ１、ｙ１、ｚ１）、Ｂ（ｘ２、ｙ２、ｚ２）およびＣ（ｘ３、ｙ３、ｚ３）の３頂点から構成されている。制御部２０６は、３次元データに含まれている全てのポリゴン情報に関して、ｘ成分、ｙ成分は変更せず、ｚ成分のみについて数式３で示すｚ’を算出して、ｚをｚ’で変更したデータを作成する。図７（ｂ）は、図７（ａ）に示すＳが、式３によってｚ成分のみが圧縮されてＳ’となったポリゴン情報を示している。Ｓを構成するＡ〜Ｃの各頂点情報が、それぞれＡ’（ｘ１、ｙ１、ｚ１’）、Ｂ’（ｘ２、ｙ２、ｚ２’）、Ｃ’（ｘ３、ｙ３、ｚ３’）に変換されている。
【００４３】
制御部２０６は、全てのポリゴン情報に対する変換処理を完了すると、ＳＴＬ形式で列挙した変換後のポリゴンデータをメモリスロット２０９を介してメモリカード２１０に記憶させる。制御部２０６は、変換後の３次元データを記憶させると、３次元データの変換処理に係る一連の動作を終了する。
【００４４】
なお、本実施形態では、Ｓ３０１において３Ｄスキャンにより得られた３次元データに対して、予めｘ、ｙ、ｚ方向を同一の縮尺で縮小したうえで、さらにｚ軸方向に対する変換処理を行うようにした。しかし、Ｓ３０１において予め同一の縮尺による縮小を行わずに、圧縮プロファイル関数に基づいて得られる縮尺であって、ｘ軸およびｙ軸方向と異なる縮尺をｚ軸方向に対して適用するようにしてもよい。この場合、圧縮プロファイル関数Ｈ（ｚ）を、実物体に対する縮尺を表す関数にすれば、本実施形態の処理を実現することができる。
【００４５】
また、本実施形態では、圧縮プロファイル関数Ｈ（ｚ）において、主要物体以外の領域では、線形に圧縮率を変化させて３次元データの奥行方向を変換するようにした。しかし、圧縮プロファイル関数Ｈ（ｚ）の特性は、ユーザの意図や物体の特徴に合わせて様々な特性にすることができる。例えばＨ（ｚ）の変形例を図８（ａ）〜（ｃ）に示す。図８（ａ）は上述した図５（ａ）と同一であるが、図５（ｂ）は、図８（ａ）で示す３次元データのｚ軸方向の距離をどれだけ圧縮するかを決定する圧縮プロファイル関数Ｈ（ｚ）の特性を示している。図８（ｂ）に示すＨ（ｚ）では、主要物体のｚ軸上の終了位置から階段状に一気に圧縮率を上げるようにしている。このようにすることで、図８（ｃ）に示すように、変換後のオブジェクト９０１とオブジェクト９０２（主要物体）の位置関係を維持しつつ、主要物体より奥側のオブジェクト９０３については位置関係および奥行きを大幅に縮小した構成にすることができる。また、別の変形例を図８（ｄ）〜（ｆ）に示す。図８（ｄ）は図８（ａ）と同様であるが、図８（ｅ）は、図５（ｂ）に示した圧縮プロファイル関数Ｈ（ｚ）において、さらに主要物体のｚ軸上の開始位置、終了位置の前後で階段状に一気に圧縮率を上げ下げするようにしている。このようにすれば、変換後の主要物体の厚みを維持しつつ、オブジェクト１００２（主要物体）の前後については位置関係および奥行きを等倍率で縮小する。この場合、オブジェクト１００１および１００２の間隔とオブジェクト１００２および１００３の間隔を実物体の位置関係と合わせつつ主要物体を強調することができる。
【００４６】
以上説明したように、本実施形態では、ｚ軸方向などの所定方向の位置のデータに対する縮尺を変更し、さらにｚ軸方向の位置（範囲）に応じて縮尺（圧縮率）を変更可能にした。すなわち、奥行方向について圧縮プロファイル関数Ｈ（ｚ）を定め、３次元データの奥行方向の位置のデータを物体の存在する位置に応じてそれぞれ変換するようにした。このようにすれば、造形物を出力させるための３次元データを、造形物に適した縮尺あるいは倍尺で変形することが可能になる。
【００４７】
また、奥行方向の位置に応じて縮尺を変更する際に、物体の種類に応じて、すなわち主要物体の領域に対する奥行方向の圧縮率を下げる一方、主要物体の領域以外において圧縮率を上げて、３次元データの奥行きを変形するようにした。即ち、全体の奥行方向の圧縮率と、特定の被写体の奥行方向の圧縮率とをそれぞれ設定するようにした。このようにすることで、図５（ｃ）に示すように主要物体を他の物体に対して強調したり存在感を与えたりすることができ、記念物体やインテリアオブジェクト等として適切な造形物を生成することが可能になる。
【００４８】
（実施形態２）
次に実施形態２について説明する。実施形態１では、選択された主要物体の圧縮率を下げて他の領域の圧縮率を上げる圧縮プロファイル関数を用いて３次元データの変換処理を行った。本実施形態では、複数の主要物体、即ち主要物体以外のサブ主要物体に対する圧縮率を下げた圧縮プロファイル関数を用いて３次元データの変換処理を行う。このため、サブ主要物体を決定する処理および決定される圧縮プロファイル関数が実施形態１と異なり、その他の構成は実施形態１と同一である。このため、同一の構成およびステップについては同一の符号を付して重複する説明は省略し、相違点について重点的に説明する。
【００４９】
本実施形態における処理の流れを図９に示すフローチャートを参照して説明する。
【００５０】
まず制御部２０６は図３に示したＳ３０１〜Ｓ３０３の処理を行う。
【００５１】
次にＳ９０１において、制御部２０６は、Ｓ３０３で選択した主要物体より優先度が下がるが、主要度の高いサブ主要物体を決定する。図４（ａ）に示したように、Ｓ３０３における処理によって検出された画像内の４つの物体、即ち物体４０１〜４０４に対して、それぞれが検出されたことを明示するための物体検出枠４０５〜４０８が表示されている。ユーザは、画面操作部２０３への操作によって、Ｓ３０３において選択した主要物体以外の物体検出枠のいずれかを選択する。制御部２０６は、画面操作部２０３によりユーザ操作の通知を受けると、対応する物体をサブ主要物体として決定する。ここでは、ユーザが物体検出枠４０８を選択したことに応じて、制御部２０６がオブジェクト１１２をサブ主要物体として決定したものとする。なお、サブ主要物体の決定は、ユーザによるマニュアル選択だけでなく、制御部２０６が自動的に決定してもよい。この場合は、画角内でどのあたりに位置するか、物体が人物であるか、を判定することによってサブ主要物体を決定するようにすればよい。また、必要であればサブ主要物体を複数指定するようにしてもよい。
【００５２】
Ｓ９０２において、制御部２０６は、主要物体およびサブ主要物体それぞれについてｚ軸方向の厚みを算出する。制御部２０６は、Ｓ３０５において説明した方法と同様にして、主要物体およびサブ主要物体の厚みをそれぞれで算出する。例えば、図１０に示すように、制御部２０６は、サブ主要物体の物体検出枠４０８をｚ軸方向に走査していき、走査してできた直方体内１０１０に含まれる３次元データを検出する。このとき、例えば直方体４１０のように他の直方体が検出された場合、直方体のｘｙ平面の面積と物体検出枠４０８との比率が最も高い直方体を選択するようにしてもよい。
【００５３】
Ｓ９０３において、制御部２０６は、Ｓ９０２で算出した主要物体およびサブ主要物体のｚ軸方向における位置と厚みに基づいて、圧縮プロファイル関数Ｈ（ｚ）を生成する。本実施形態に係る圧縮プロファイル関数Ｈ（ｚ）について、図１１を参照して説明する。
【００５４】
図１１（ａ）は、ｚ軸と垂直な方向（プラスｘ軸方向）から見た物体の位置関係を模式的に示している。図１１（ｂ）は、図５（ｂ）と同様の物体形状データのｚ軸方向情報をどれだけ圧縮するかを決定する圧縮プロファイル関数である。図１１（ｂ）において、主要物体の存在する位置と厚み範囲に対しては、図５（ｂ）と同様に圧縮率が１に設定されている。一方、サブ主要物体であるオブジェクト１１２の存在する位置と厚み範囲に対応する距離については、圧縮率が一律で２に設定されている。オブジェクト１１１およびオブジェクト１１２の位置および厚み領域以外については、オブジェクト１１１の位置から離れるに従って線形に圧縮率が上がるように設定されている。
【００５５】
このように本実施形態では、制御部２０６は、主要物体に対する圧縮率が低く、かつ主要物体からの距離に応じて線形に圧縮率が上がるように設定するが、サブ主要物体については例外的に圧縮率が低くなるように圧縮プロファイル関数Ｈ（ｚ）を生成する。このようにすることで、図１１（ｃ）に示すように、縮小されたｚ’では、オブジェクト１１０２（主要物体）の厚みが維持されることに加え、オブジェクト１１０３（サブ主要物体）の厚みも維持されて縮小されている。即ち、オブジェクト１１０１〜１１０３間の位置関係は縮小されているが主要物体およびサブ主要物体は相対的に大きくなっており、これらの物体の存在が強調されている。また、サブ主要物体に対する圧縮率は、主要物体とは別の圧縮率が設定されているため、サブ主要物体は、主要物体よりもやや高い縮尺で縮小され、主要物体がサブ主要物体より強調されるように調整されている。
【００５６】
次に、制御部２０６は、図３に示したＳ３０６およびＳ３０７の処理を行って、本処理に係る一連の処理を終了する。なお、図１１（ｅ）は、上述の方法で生成された図１１（ｄ）に示す圧縮プロファイル関数Ｈ（ｚ）を、数式１および数式２により生成した変換関数Ｇ（ｚ）を示している。また、図１１（ｆ）は、変換関数Ｇ（ｚ）で変換されるｚと変換後のｚ’の関係性をそれぞれ表している。
【００５７】
なお、本実施形態では、圧縮プロファイル関数Ｈ（ｚ）については、主要物体以外の範囲において線形に圧縮率を上げるものとしたが、主要物体およびサブ主要物体のｚ軸上の終了位置から階段状に圧縮率を上げるようにしてもよい。また、主要物体およびサブ主要物体のｚ軸上の開始位置、終了位置の前後で階段状に一気に圧縮率を上げ下げするように自動生成してもよい。
【００５８】
また、圧縮プロファイル関数Ｈ（ｚ）において、主要物体等の範囲の圧縮率を予め定められた値として説明した。しかし、画面操作部２０３等のユーザインターフェースへの入力によって、奥行方向の縮尺（または圧縮率）を位置に応じて設定または変更できるようにしてもよい。このようにすれば、よりユーザの望む縮尺で主要物体を強調した造形物を生成することができる。
【００５９】
以上説明したように本実施形態では、図１１（ｂ）に示したように主要物体とサブ主要物体の圧縮率を下げた圧縮プロファイル関数を用いて、３次元データの変換処理を行うようにした。このようにすることで、主要物体のみならず、サブ主要物体を強調したり存在感を与えたりすることができ、記念物体やインテリアオブジェクト等として適切な造形物を生成することが可能になる。
（実施形態３）
次に実施形態３について説明する。上述した実施形態では、選択された複数の主要物体（主要物体及びサブ主要物体）の圧縮率を下げ、かつ他の領域の圧縮率を上げる圧縮プロファイル関数を用いて３次元データの変換処理を行った。本実施形態では、３次元データの変換処理において、複数の主要物体の一部（例えばサブ主要物体）のｘｙ平面方向の大きさを補正する処理を更に行う。このため、当該大きさの補正処理以外の処理及び構成については実施形態２と同様である。このため、同一の構成およびステップについては同一の符号を付して重複する説明は省略し、相違点について重点的に説明する。
【００６０】
まず、本実施形態において想定する主要物体及びサブ主要物体の大きさと位置の関係について、図１３（ａ）の一部を参照して説明する（図１３（ａ）の詳細は別途後述する）。本実施形態では、主要物体１３０１及びサブ主要物体１３０２において、主要物体１３０１の実際の大きさがサブ主要物体１３０２の実際の大きさの例えば半分である場合を想定する。これは、例えば主要物体１３０１が子供であり、サブ主要物体１３０２が大人である場合等があげられる。また、デジタルカメラ２００からの主要物体１３０１までの距離（Ｌ１）が、デジタルカメラ２００からのサブ主要物体１３０２までの距離（Ｌ２）の半分であるとする。この場合、デジタルカメラ２００の位置から撮像されたｘｙ方向の２次元画像は、例えば図１３（ａ）のようになる。すなわち、主要物体１３０１の実際の大きさはサブ主要物体１３０２の半分であるのに、２次元画像上では同じ大きさになる。仮に最終的な３次元形状の造形物をこの比率で出力する場合、この造形物を図１３（ａ）に示す方向、位置から観賞するとは限らないため、大きさの関係が不自然になる可能性がある。このため、本実施形態では、主要物体のｘｙ平面方向の大きさを基準にして、サブ主要物体のｘｙ平面方向の大きさを正規化（すなわち補正）する。以下、本実施形態では、大人と子供の大きさがより適切に反映された造形物を生成するための補正処理を例に説明する。
【００６１】
（３次元データの変換処理に係る一連の動作）
次に、本実施形態に係る３次元データの変換処理の一連の動作について、図１２に示すフローチャートを参照して説明する。
【００６２】
まず制御部２０６は、図３又は図９に示したＳ３０１〜Ｓ３０３の処理を行う。
【００６３】
Ｓ１２０１において、制御部２０６は、Ｓ３０３で選択した主要被写体よりは優先度が落ちるが、主要度の高いサブ主要物体を特定する。本ステップに係る処理は上述したＳ９０１の処理と同様であるが、改めて図１３（ａ）を参照して説明する。Ｓ３０２において選択された２次元画像には、Ｓ３０３において検出された２つの物体（１３０１及び１３０２）と、各物体が検出されたことを明示する物体検出枠１３０３及び１３０４とが表示されている。このとき、ユーザが画面表示部２０２への操作によって、Ｓ３０３で選択した主要物体以外に対する物体検出枠を選択すると、制御部２０６は、選択された物体検出枠に対応する物体をサブ主要物体として決定する。例えば、ユーザが物体検出枠１３０４を選択すると、サブ主要物体１３０２がサブ主要物体として決定される。
【００６４】
Ｓ１２０２において、制御部２０６は、主要物体及びサブ主要物体のそれぞれに対するｚ軸方向の厚みを算出する。制御部２０６は、Ｓ３０５に示した方法と同様にしてｚ軸方向の厚みをそれぞれ算出する。例えば、図１３（ｂ）に示すように、制御部２０６は、主要物体１３０１（オブジェクト１３０７）に対する物体検出枠１３０３と、サブ主要物体１３０２（オブジェクト１３０８）に対する物体検出枠１３０４をｚ軸方向に走査する。そして、走査してできた直方体１３０９及び１３１０に含まれる３次元データを検出してオブジェクトの厚み１３０５及び１３０６を検出する。
【００６５】
Ｓ１２０３において、制御部２０６は、Ｓ１２０２で算出したオブジェクト１３０７、オブジェクト１３０８に対するｚ軸方向における位置と厚みに基づいて、圧縮プロファイル関数Ｈ（ｚ）を生成する。本実施形態に係る圧縮プロファイル関数Ｈ（ｚ）について、図１４（ａ）、図１４（ｂ）、図１４（ｄ）〜図１４（ｆ）を適宜参照して説明する。
【００６６】
図１４（ａ）は、ｚ軸と垂直な方向（プラスｘ軸方向）から見た物体の位置関係を模式的に示している。図１４（ｂ）は、上述した実施形態における圧縮プロファイル関数と同様、物体形状データのｚ軸方向情報をどれだけ圧縮するかを決定する圧縮プロファイル関数を示している。図１４（ｂ）において、主要物体であるオブジェクト１３０７が存在する位置と厚み範囲に対しては、図１１（ｂ）と同様に圧縮率が１に設定されている。一方、サブ主要物体であるオブジェクト１３０８が存在する位置と厚み範囲に対応する距離については、圧縮率が一律で２に設定されている。オブジェクト１３０７およびオブジェクト１３０８の位置および厚み領域以外については、オブジェクト１３０７の位置から離れるに従って線形に圧縮率が上がるように設定されている。
【００６７】
このように本実施形態では、制御部２０６は、主要物体に対する圧縮率が低く、かつ主要物体からの距離に応じて線形に圧縮率が上がるように設定しつつ、サブ主要物体については例外的に圧縮率が低くなるように圧縮プロファイル関数Ｈ（ｚ）を生成する。このようにすることで、縮小されたｚ’では、オブジェクト１３０７（主要物体）の厚みが維持されることに加え、オブジェクト１３０８（サブ主要物体）の厚みも維持されて縮小される。
【００６８】
次に、制御部２０６は、図３に示したＳ３０６およびＳ３０７の処理を行う。なお、図１４（ｅ）は、上述の方法で生成された図１４（ｄ）に示す圧縮プロファイル関数Ｈ（ｚ）を、数式１および数式２により生成した変換関数Ｇ（ｚ）を示している。また、図１１（ｆ）は、変換関数Ｇ（ｚ）で変換されるｚと変換後のｚ’の関係性をそれぞれ表している。
【００６９】
さらに、Ｓ１２０４及びＳ１２０５では、制御部２０６は、主要物体に対して、サブ主要物体のｘｙ平面方向の大きさを補正する。
【００７０】
まずＳ１２０４において、制御部２０６は、ｘｙ平面方向のオブジェクト１３０８（サブ主要物体）の大きさを補正するか否かを選択した、ユーザによる設定を取得する。この設定は、例えば、ｘｙ平面方向のオブジェクト１３０８（サブ主要物体）の大きさを、オブジェクト１３０７（主要物体）の大きさに合わせて補正するか否かを選択するものである。制御部２０６は、取得した設定が補正を行う設定である場合はＳ１２０５に処理を進め、補正を行わない設定である場合は、補正を行うこと無く本処理に係る一連の動作を終了する。
【００７１】
Ｓ１２０５において、制御部２０６は、オブジェクト１３０８（サブ主要物体）の大きさを補正する。より具体的には、制御部２０６は、オブジェクトの大きさを補正するパラメータを各オブジェクトまでの距離の比率を用いて算出する。例えば、図１５には、図１３（ｂ）をｘ軸方向から見たｙｚ平面の模式図を示している。例えば、デジタルカメラ２００から主要物体１３０１までの距離がＬ１、デジタルカメラ２００からサブ主要物体１３０２までの距離がＬ２であり、Ｌ２＝Ｌ１×２の関係があるものとする。また、主要物体１３０１のｙ方向の長さがＨ１、サブ主要物体１３０２のｙ方向の長さがＨ２であり、Ｈ２＝Ｈ１×２の関係があるものとする。さらに、デジタルカメラ２００の画角をθとする。このとき、Ｌ１の距離における画角の範囲に相当する縦幅を画角縦幅１、同様にＬ２の距離における画角の範囲に相当する縦幅を画角縦幅２とすると、相似の関係より画角縦幅２は画角縦幅１の２倍となる。従って、ある撮像位置から撮影した場合の２次元画像内における各オブジェクトの大きさは、物体までの距離に反比例する。すなわち、制御部２０６は、オブジェクト１３０８（サブ主要物体）の３Ｄデータ情報のｘ方向、ｙ方向の大きさをＬ２／Ｌ１の比率を用いて補正（すなわち変倍）して、オブジェクト１４０２のサブ主要物体データに変換する。例えば、図１４（ｃ）には、オブジェクト１３０８に対する大きさの補正を行った結果であるオブジェクト１４０１及びオブジェクト１４０２を示している。
【００７２】
このようにすれば、変換後のオブジェクト１４０１と変換後のオブジェクト１４０２とのｘｙ平面方向の大きさをより現実に即した大きさ関係にすることができる。また、実施形態２と同様、オブジェクト１４０２のサブ主要物体データは、実施形態１の方法による変換後のオブジェクト（例えば５０３）と比べて厚みを持って強調された造形にもなる。
【００７３】
そして、制御部２０６は、オブジェクト１４０２のサブ主要物体データを生成すると、本処理に係る一連の動作を終了する。
【００７４】
なお、上述したＳ１２０４では、サブ主要物体の大きさの補正を行うか否かを選択して設定する例を説明した。このように、補正を行うか否かを選択可能にするのは、補正をＯＦＦにすることがより適切な場合もあり得るためである。例えば、図１６（ａ）及び図１６（ｂ）に示す例では、主要物体２００１及びサブ主要物体２００２が２次元画像内の被写体として撮影され、対応する３次元状のオブジェクト２００３（主要物体）及びオブジェクト２００４（サブ主要物体）を示している。
【００７５】
この例では、主要物体２００１が人物であり、サブ主要物体２００２がタワーなど巨大なランドマークである場合を示している。このとき、デジタルカメラ２００からオブジェクト２００３までの距離Ｌ３に比べて、オブジェクト２００４までの距離Ｌ４が非常に長いものとする。また、図１６（ａ）に示す画像は、例えば記念写真のように、人物である主要物体２００１と共にタワーであるサブ主要物体２００２の全体を写し込もうとする構図になっている。このような場合にＳ１２０５で説明した補正処理を行うと、サブ主要物体２００２の３Ｄデータが現実の比率によって拡大されて過度に巨大となり、図１６（ａ）を撮影する際に意図した被写体の関係が崩れる可能性がある。従って、図１６に示すような撮影を行った場合には、サブ主要物体の大きさの補正を行わない（すなわちＯＦＦにする）ように制御できることが望ましい。
【００７６】
すなわち、本実施形態によれば、撮影内容に応じて、主要物体１３０１とサブ主要物体１３０２のｘｙ平面方向の大きさの補正処理の有無を制御することができる。この補正処理を行わない場合であっても、図１１（ｃ）に示したように主要物体とサブ主要物体とをそれぞれ強調した形で当該物体以外の部分を圧縮し、記念品やインテリアオブジェクト等としての造形物を出力する場合に適したデータに変換できる。
【００７７】
なお、本実施形態では、Ｓ１２０１においてサブ主要物体がユーザ操作によって決定される例を説明した。しかし、例えばサブ主要物体の画角内の位置や、物体が人物であるか等の判定結果に基づいて、制御部２０６が１以上のサブ主要物体を自動的に決定するようにしてもよい。
【００７８】
また、本実施形態では、Ｓ１２０４において補正処理の有無の選択がユーザ操作によって選択される例を説明したが、ユーザ操作によらず、例えば物体の種別の認識や物体の大きさ等の認識結果に基づいて、補正処理の有無を自動的に選択してもよい。例えば、制御部２０６は、主要物体とサブ主要物体の大きさの差が予め定めた閾値より大きい場合に補正処理をＯＦＦにするようにしてもよい。また、例えば、制御部２０６は、主要物体、サブ主要物体がともに人物であると判定した場合に、補正処理をＯＮにするようにしてもよい。
【００７９】
以上説明したように本実施形態では、サブ主要物体のｘｙ平面方向の大きさを、主要物体とサブ主要物体との奥行方向の距離の比に基づいて補正するようにした。このようにすることにより、造形物を出力させるための３次元の形状データについて、奥行方向と垂直な方向（ｘｙ平面方向）の大きさをより現実に即した大きさ関係に変換して出力することができる。また、この補正を行うか否かを設定可能にし、特に主要物体とサブ主要物体との奥行方向の距離の比が適切な関係にない場合には、当該補正を行わないようにした。このようにすることにより、造形物を出力させるための３次元の形状データを、造形物に適した縮尺あるいは倍尺で変形することが可能になる。
【００８０】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８１】
２０１…撮像部、２０２…画面表示部、２０３…画面操作部、２０４…物体検出部、２０５…ボタン操作部、２０６…制御部
【図１】
0006704700.tif 000003
【図２】
0006704700.tif 000004
【図３】
0006704700.tif 000005
【図４】
0006704700.tif 000006
【図５】
0006704700.tif 000007
【図６】
0006704700.tif 000008
【図７】
0006704700.tif 000009
【図８】
0006704700.tif 000010
【図９】
0006704700.tif 000011
【図１０】
0006704700.tif 000012
【図１１】
0006704700.tif 000013
【図１２】
0006704700.tif 000014
【図１３】
0006704700.tif 000015
【図１４】
0006704700.tif 000016
【図１５】
0006704700.tif 000017
【図１６】
0006704700.tif 000018