(57)【要約】【課題】  三次元物体の形状と、三次元物体に投影された画像の観察位置を考慮した画像処理を行う。【解決手段】  画像を投影する三次元物体の形状情報、三次元物体に投影される画像の観察位置を示す観察位置情報、および、三次元物体に画像を投影する画像投影装置の位置を示す装置位置情報を入力する(S11〜S13)。そして、観察位置情報および形状情報に基づき、形状情報を表現する各ポリゴンの向きと観察位置の関係を示す観察角度を算出し(S14)、観察角度、形状情報および装置位置情報に基づき、画像投影装置に出力する画像を補正する(S15〜S17)。【選択図】  図3
2010250560.tif 000002
【特許請求の範囲】
【請求項１】
画像を投影する三次元物体の形状情報、前記三次元物体に投影される画像の観察位置を示す観察位置情報、および、前記三次元物体に画像を投影する画像投影装置の位置を示す装置位置情報を入力する入力手段と、
前記観察位置情報および前記形状情報に基づき、前記形状情報を表現する各ポリゴンの向きと前記観察位置の関係を示す観察角度を算出する算出手段と、
前記観察角度、前記形状情報および前記装置位置情報に基づき、前記画像投影装置に出力する画像を補正する補正手段とを有することを特徴とする画像処理装置。
【請求項２】
前記形状情報は、前記三次元物体の表面である投影面の三次元形状を表すことを特徴とする請求項1に記載された画像処理装置。
【請求項３】
前記観察角度は、前記ポリゴンの重心と前記観察位置を結ぶ直線が、前記ポリゴンの法線と成す角を表すことを特徴とする請求項1または請求項2に記載された画像処理装置。
【請求項４】
前記補正手段は、前記観察角度が所定の値以上のポリゴンを細分化し、前記細分化したポリゴンの重心と前記観察位置を結ぶ直線が前記細分化したポリゴンの法線に一致するように、前記細分化したポリゴンの面の向きを設定して、前記形状情報を修正した修正形状情報を生成することを特徴とする請求項1から請求項3の何れか一項に記載された画像処理装置。
【請求項５】
前記補正手段は、前記修正形状情報と前記装置位置情報に基づき設定した透視変換モデルによって前記画像投影装置に出力すべき画像の投影シミュレーションを行い、前記形状情報と前記装置位置情報に基づき設定した透視変換モデルによって前記投影シミュレーションの結果の逆投影シミュレーションを行い、前記画像投影装置に出力する補正画像を生成することを特徴とする請求項4に記載された画像処理装置。
【請求項６】
画像を投影する三次元物体の形状情報、前記三次元物体に投影される画像の観察位置を示す観察位置情報、および、前記三次元物体に画像を投影する画像投影装置の位置を示す装置位置情報を入力し、
前記観察位置情報および前記形状情報に基づき、前記形状情報を表現する各ポリゴンの向きと前記観察位置の関係を示す観察角度を算出し、
前記観察角度、前記形状情報および前記装置位置情報に基づき、前記画像投影装置に出力する画像を補正することを特徴とする画像処理方法。
【請求項７】
コンピュータ装置を制御して、請求項1から請求項5の何れか一項に記載された画像処理装置の各手段として機能させることを特徴とするプログラム。
【請求項８】
請求項7に記載されたプログラムが記録されたことを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、三次元物体に画像を投影する際の画像処理に関する。
【背景技術】
【０００２】
インテリアの色や模様のシミュレーションにコンピュータグラフィクス(CG)が利用される機会が増えた。CGを利用すれば、ユーザに色や模様を選択させ、インテリアの完成イメージをモニタ上でシミュレートすることが可能になる。しかし、モニタ上のシミュレーションは、実物とは質感が異なり、その上、表示サイズが限られ、実空間におけるイメージを忠実に再現することができるとは言えない。
【０００３】
そこで、プロジェクタなどの画像投影装置を用いて、実物と同等の三次元形状と大きさをもつ三次元物体の表面（投影面）に画像を投影することで、実空間におけるイメージをより忠実に再現する方法が実用化された。その際、投影面の三次元形状に合わせて、画像を補正する必要がある。
【０００４】
三次元形状をもつ投影面の形状に合わせて画像を投影する技術として、例えば、特許文献1に開示された技術がある。この技術では、任意の三次元形状をもつ投影面に対し、メッシュモデルを用いて投影画像を補正し、観察者が視認する投影光の歪みを抑制する。
【０００５】
しかし、投影面の形状に対する観察者の位置によっては、投影面の形状を考慮する補正だけでは、投影された画像が歪んだり暈けて見えることがあり、とくに模様の歪みや暈けは強く認識される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第4013989号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、三次元物体の形状と、三次元物体に投影される画像の観察位置を考慮した画像処理を行うことを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【０００９】
本発明にかかる画像処理は、画像を投影する三次元物体の形状情報、前記三次元物体に投影される画像の観察位置を示す観察位置情報、および、前記三次元物体に画像を投影する画像投影装置の位置を示す装置位置情報を入力し、前記観察位置情報および前記形状情報に基づき、前記形状情報を表現する各ポリゴンの向きと前記観察位置の関係を示す観察角度を算出し、前記観察角度、前記形状情報および前記装置位置情報に基づき、前記画像投影装置に出力する画像を補正することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、三次元物体に投影された画像の観察する場合の画像の歪みや暈けを低減することができる。
【図面の簡単な説明】
【００１１】
【図１】実施例の画像処理装置の構成例を示すブロック図、
【図２】画像処理装置の機能構成例を示すブロック図、
【図３】画像処理装置が実行す画像処理を説明するフローチャート、
【図４】3D形状情報の一例を示す図、
【図５】角度情報生成部の処理を説明するフローチャート、
【図６】ポリゴンと観察位置情報が示す観察位置の関係を示す図、
【図７】補正部の処理を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明にかかる実施例の画像処理を図面を参照して詳細に説明する。
【実施例１】
【００１３】
［装置の構成］
図1は実施例の画像処理装置11の構成例を示すブロック図である。
【００１４】
CPU401は、ランダムアクセスメモリ(RAM)403をワークメモリとして、リードオンリメモリ(ROM)402およびハードディスクドライブ(HDD)408に格納されたプログラムを実行する。そして、システムバス404を介して、後述する各構成を制御することで、後述する画像処理を含む様々な処理を実行する。
【００１５】
入力インタフェイス(I/F)405は、キーボードやマウス、ディジタルカメラ、スキャナ、三次元レーザスキャナなどの入力デバイス406を接続する例えばUSBやIEEE1394などのシリアルバスインタフェイスである。CPU401は、入力I/F405を介して、入力デバイス406からデータを読み込むことが可能である。
【００１６】
HDD I/F407は、HDD408や光ディスクドライブなどの二次記憶装置を接続する例えばシリアルATA(SATA)などのインタフェイスである。CPU401は、HDD I/F407を介して、HDD408からデータを読み出し、HDD408にデータを書き込むことが可能である。さらに、CPU401は、HDD408に格納されたデータをRAM403にロードし、同様に、RAM403が記憶するデータをHDD408に保存することができる。そして、CPU401は、RAM403にロードしたデータをプログラムと見做して実行することが可能である。
【００１７】
ビデオI/F409は、モニタ410を接続するインタフェイスである。CPU401は、ビデオI/F409を制御して、任意の文字列、画像、ユーザインタフェイス(UI)をモニタ410に表示することができる。
【００１８】
出力I/F411は、プリンタ、プロッタ、フィルムレコーダ、プロジェクタなどの出力デバイス412を接続するシリアルバスインタフェイスである。CPU401は、出力I/F411を介して、出力デバイス412にデータを送り、印刷、記録、投影などを実行させることができる。なお、USBなどの双方向通信インタフェイスを利用する場合、入力I/F405と出力I/F411は一つにまとめることができる。
【００１９】
ネットワークインタフェイスカード(NIC)413は、ネットワーク414に接続するためにインタフェイスである。
【００２０】
［機能構成］
図2は画像処理装置11の機能構成例を示すブロック図である。なお、詳細は後述するが、図3に示す処理手順を記述したコンピュータが実行可能なプログラムがROM402またはHDD408に予め格納されている。CPU401は、ユーザの指示に従い当該プログラムをRAM403にロードし、当該プログラムを実行することにより、図2に示す機能構成が実現され、図3に示す画像処理が開始される。
【００２１】
3D形状取得部101は、画像を投影する投影面の三次元形状に関する情報（以下、3D形状情報）を取得する。観察位置取得部102は、投影面に投影された画像を観察する観察者が存在する位置に関する情報（以下、観察位置情報）を取得する。
【００２２】
装置位置取得部103は、投影面に画像を投影する画像投影装置12が存在する位置に関する情報（以下、装置位置情報）を取得する。角度情報生成部104は、投影面の各点における、観察者と三次元形状がなす角度（以下、観察角度分布情報）を計算する。
【００２３】
補正部105は、入力画像を観察角度分布情報に基づき補正して、投影面に投影すべき画像を生成する。バッファメモリ106は、処理途中の演算結果を一時保存する、例えばRAM403に割り当てられるメモリである。画像投影装置12は、例えは出力I/F411を介して、画像処理装置11に接続されるプロジェクタなどの出力デバイス412である。
【００２４】
［画像処理］
図3は画像処理装置11が実行する画像処理を説明するフローチャートである。
【００２５】
CPU401は、3D形状取得部101により、投影面の3D形状情報を入力し、3D形状情報をバッファメモリ106に保存する(S11)。
【００２６】
図4は3D形状情報の一例を示す図で、3D形状情報は三次元空間に配置されたポリゴンの集合として表現される。3D形状取得部101は、既知の三次元レーザスキャナのような計測装置を用いて、画像が投影される三次元物体の表面形状（投影面）を計測して3D形状情報を入力するか、HDD408などから予め計測され3D形状情報を読み込む。
【００２７】
次に、CPU401は、観察位置取得部102により観察位置情報を入力し、観察位置情報をバッファメモリ106に保存する(S12)。なお、観察位置情報は、ユーザがUIを介して入力するが、HDD408などから読み込む。また、観察位置情報は、画像が投影される物体が存在する位置（以下、物体位置）と、観察者が存在する位置（以下、観察位置）の間の関係を示す距離と角度などの情報を有する。
【００２８】
次に、CPU401は、装置位置取得部103により画像投影装置12の装置位置情報を入力し、装置位置情報をバッファメモリ106に保存する(S13)。なお、装置位置情報は、ユーザがUIを介して入力するが、HDD408などから読み込む。また、観察位置情報は、物体位置と、画像投影装置12が存在する位置（以下、装置位置）の間の関係を示す距離と角度などの情報を有する。
【００２９】
次に、CPU401は、角度情報生成部104により、詳細は後述するが、バッファメモリ106に格納した3D形状情報と観察位置情報に基づき、観察角度分布情報を生成し、観察角度分布情報をバッファメモリ106に保存する(S14)。
【００３０】
次に、CPU401は、UIを介してユーザが指定する画像（以下、原画像）をHDD408などから入力する(S15)。そして、補正部105により、詳細は後述するが、バッファメモリ106に格納した装置位置情報と観察角度分布情報に基づき原画像を補正する(S16)。そして、補正後の画像を画像投影装置12に出力し(S17)、補正後の画像を投影面に投影させる。
【００３１】
［角度情報生成部］
図5は角度情報生成部104の処理を説明するフローチャートである。
【００３２】
角度情報生成部104は、バッファメモリ106から、投影面の3D形状情報を取得し(S41)、観察位置情報を取得する(S42)。
【００３３】
図6はポリゴン53と観察位置情報が示す観察位置52の関係を示す図である。
【００３４】
角度情報生成部104は、3D形状情報を構成する各ポリゴンから一つのポリゴンを選択する(S43)。そして、選択したポリゴン53の重心と観察位置52の間を直線54で結び、直線54とポリゴン53の法線51が成す角度（以下、観察角度θ）を計算する(S44)。
【００３５】
次に、角度情報生成部104は、3D形状情報を構成する全ポリゴンについて、ステップS44の観察角度θの算出を行ったか否かを判定し(S45)、全ポリゴンに関する観察角度θの算出が未了の場合は処理をステップS43に戻す。
【００３６】
全ポリゴンに関する観察角度θの算出が終了すると、角度情報生成部104は、各ポリゴンに関する観察角度θから観察角度分布情報を生成し、観察角度分布情報をバッファメモリ106に保存して(S46)、処理を終了する。
【００３７】
［補正部］
図7は補正部105の処理を説明するフローチャートである。
【００３８】
補正部105は、バッファメモリ106から、観察角度分布情報を取得し(S51)、装置位置情報を取得する(S52)。そして、観察角度分布情報が示す観察角度θが所定の閾値以上のポリゴンを細分割し、細分割したポリゴンごとに仮想投影面を生成する(S53)。
【００３９】
仮想投影面は、細分割したポリゴンの重心と観察位置52を結ぶ直線54と直交する。言い換えれば、仮想投影面の法線51は直線54に一致する。また、所定の閾値（観察角度）は、UIを介してユーザが指定してもよいし、3D形状情報と観察位置情報から算出してもよい。
【００４０】
補正部105は、観察角度θが所定の閾値未満の投影面と、観察角度θが所定の閾値以上の投影面を細分化した仮想投影面をもつ観察位置を考慮した3D形状情報（以下、修正形状情報）を生成し、バッファメモリ106の保存する(S54)。
【００４１】
次に、補正部105は、修正形状情報が示す投影面に、画像投影装置12から画像を投影する透視変換モデルを設定して原画像を投影する投影シミュレーションを行い、当該投影面に投影された画像（以下、投影画像）を得る(S55)。
【００４２】
次に、補正部105は、3D形状情報が示す投影面に、画像投影装置12から画像を投影する透視変換モデルを設定して、ステップS54で得た投影画像を逆投影する逆投影シミュレーションを行い、画像投影装置12が投影すべき画像を生成する(S56)。画像投影装置12が投影すべき画像が、画像処理装置11が出力すべき原画像の補正画像である。
【００４３】
なお、透視変換にかかわる処理は、3DCGの分野でよく知られた処理であり、高速な処理回路が既に広く利用されている。従って、当該回路を利用すると同時に、仮想投影面の近似精度を制御することによって、補正処理の高速化を実現することができる。
【００４４】
上記の画像補正により、三次元物体の投影面に投影された画像の観察する場合の、投影面の形状と観察位置によって発生する画像の歪みや暈けを低減することができる。
【００４５】
［他の実施例］
本発明は、上記実施例の機能を実現するプログラムを記録した記録媒体（または記憶媒体）を装置（またはシステム）に供給し、装置のコンピュータ（CPUやMPU）が記録媒体から読み出したプログラムを実行することでも実現される。この場合、記録媒体に格納されたプログラムが上記実施例の機能を実現し、そのプログラムと、そのプログラムを記憶するコンピュータが読み取り可能な記録媒体は本発明を構成する。
【００４６】
また、プログラムの実行により上記機能が実現されるだけではない。つまり、プログラムの指示により、コンピュータ上で稼働するオペレーティングシステム(OS)および/または他のプログラムなどが実際の処理または制御の一部または全部を行い、それによって上記機能が実現される場合も含む。また、プログラムは、コンピュータに接続された機能拡張カードやユニットなどのデバイスのメモリに格納されていてもよい。つまり、プログラムの指示により、デバイスのCPUなどが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。本発明を記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応または関連するプログラムが格納される。
【図１】
2010250560.tif 000003
【図２】
2010250560.tif 000004
【図３】
2010250560.tif 000005
【図４】
2010250560.tif 000006
【図５】
2010250560.tif 000007
【図６】
2010250560.tif 000008
【図７】
2010250560.tif 000009