(57)【要約】【課題】  欠損画素の補間精度を向上させることができるシステムや方法を提供する。【解決手段】  このシステムは、コンピュータグラフィックスにおける三次元形状の物体を二次元平面に展開したデータに画素を割り当てる画素割当部３１と、そのデータにおいて画素が割り当てられていない欠損画素であるか否かを判断する判断部３２と、欠損画素の周辺に存在する複数の周辺画素の各々を含む各平面または各接平面に対する法線方向の基準線に対する角度と、欠損画素を含む平面または接平面に対する法線方向の基準線に対する角度との角度差に基づき、複数の周辺画像のうちの少なくとも２つの周辺画素を選択する画素選択部３３と、選択された少なくとも２つの周辺画素に基づき、欠損画素のデータ補間を行うデータ補間部３４とを含む。【選択図】  図５
2016119041.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータグラフィックスにおける三次元形状の物体を二次元平面に展開したデータに画素を割り当てる画素割当部と、
前記データにおいて前記画素が割り当てられていない欠損画素であるか否かを判断する判断部と、
前記判断部によって判断された欠損画素の周辺に存在する複数の周辺画素の各々を含む各平面または各接平面に対する法線方向の基準線に対する角度と、前記欠損画素を含む平面または接平面に対する法線方向の基準線に対する角度との角度差に基づき、前記複数の周辺画素のうちの少なくとも２つの周辺画素を選択する画素選択部と、
前記画素選択部により選択された前記少なくとも２つの周辺画素に基づき、前記欠損画素のデータ補間を行うデータ補間部とを含む、画像処理システム。
【請求項２】
前記画素選択部は、前記角度差が第１閾値以下であるか否かを判断し、前記第１閾値以下である前記少なくとも２つの周辺画素を選択する、請求項１に記載の画像処理システム。
【請求項３】
前記画素選択部は、前記欠損画素の画素値と各前記周辺画素の画素値との差が第２閾値以下であるか否かを判断し、前記角度差が前記第１閾値以下で、かつ前記画素値の差が前記第２閾値以下である前記少なくとも２つの周辺画素を選択する、請求項２に記載の画像処理システム。
【請求項４】
前記画素選択部は、さらに、光源から光が前記欠損画素を含む平面または接平面に入射する方向の基準線に対する角度と該欠損画素を含む平面または接平面に対する法線方向の基準線に対する角度との角度差と、前記光源から光が各前記周辺画素を含む各平面または各接平面に入射する方向の基準線に対する角度と該各周辺画素を含む各平面または各接平面に対する法線方向の基準線に対する角度との角度差とに基づき、前記複数の周辺画素のうちの少なくとも２つの周辺画素を選択する、請求項１〜３のいずれか１項に記載の画像処理システム。
【請求項５】
前記画素選択部は、さらに、前記欠損画素を含む平面または接平面から光が反射する方向の基準線に対する角度と、各前記周辺画素を含む各平面または各接平面から光が反射する方向の基準線に対する角度との角度差に基づき、前記複数の周辺画素のうちの少なくとも２つの周辺画素を選択する、請求項１〜４のいずれか１項に記載の画像処理システム。
【請求項６】
前記三次元形状の物体に応じて設定された条件に従って、前記欠損画素を含む平面または接平面から光が反射する方向の基準線に対する角度と、各前記周辺画素を含む各平面または各接平面から光が反射する方向の基準線に対する角度との角度差を使用するか否かを切り替える切替部を含む、請求項５に記載の画像処理システム。
【請求項７】
前記三次元形状の物体を前記二次元平面に展開する二次元平面展開処理部をさらに含む、請求項１〜６のいずれか１項に記載の画像処理システム。
【請求項８】
前記データに割り当てるデータは、双方向テクスチャ関数もしくは双方向反射率分布関数により算出される反射特性データまたはRGB画像データである、請求項１〜７のいずれか１項に記載の画像処理システム。
【請求項９】
前記二次元平面展開処理部は、LSCM展開アルゴリズムまたはABF++展開アルゴリズムを使用して、前記二次元平面に展開する、請求項７に記載の画像処理システム。
【請求項１０】
コンピュータグラフィックスにおける三次元形状の物体を二次元平面に展開したデータに画素を割り当てる画素割当部と、
前記データにおいて前記画素が割り当てられていない欠損画素であるか否かを判断する判断部と、
前記判断部によって判断された欠損画素の周辺に存在する複数の周辺画素の各々を含む各平面または各接平面に対する法線方向の基準線に対する角度と、前記欠損画素を含む平面または接平面に対する法線方向の基準線に対する角度との角度差に基づき、前記複数の周辺画素のうちの少なくとも２つの周辺画素を選択する画素選択部と、
前記画素選択部により選択された前記少なくとも２つの周辺画素に基づき、前記欠損画素のデータ補間を行うデータ補間部とを含む、画像処理装置。
【請求項１１】
コンピュータグラフィックスにおける三次元形状の物体を二次元平面に展開したデータに画素を割り当てるステップと、
前記データにおいて前記画素が割り当てられていない欠損画素であるか否かを判断するステップと、
前記判断するステップで判断された欠損画素の周辺に存在する複数の周辺画素の各々を含む各平面または各接平面に対する法線方向の基準線に対する角度と、前記欠損画素を含む平面または接平面に対する法線方向の基準線に対する角度との角度差に基づき、前記複数の周辺画素のうちの少なくとも２つの周辺画素を選択するステップと、
前記選択するステップで選択された前記少なくとも２つの周辺画素に基づき、前記欠損画素のデータ補間を行うステップとを含む、画像処理方法。
【請求項１２】
請求項１１に記載の画像処理方法をコンピュータに実行させるためのプログラム。
【請求項１３】
請求項１２に記載のプログラムが記録された記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータグラフィックス分野における三次元形状の物体の表面に着色や画像を貼り付ける画像処理システム、画像処理装置、画像処理方法、その方法をコンピュータに実行させるためのプログラムおよび記録媒体に関する。
【背景技術】
【０００２】
コンピュータグラフィックスの分野では、テクスチャマッピングと呼ばれる、三次元形状の物体の表面に着色や画像を貼り付けて質感を与える手法が用いられている。この手法では、一般的に、三次元形状の物体を二次元平面に展開し、展開した展開図に対して着色や画像の貼り付けを行っている。
【０００３】
三次元形状の物体は、光の当たる角度や観測する角度によって表面での反射特性が異なり、その見え方が変わってくる。そこで、物体表面の反射特性を表す双方向反射率分布関数(BRDF)や双方向テクスチャ関数(BTF)を用いて、三次元形状の物体の見え方を忠実に再現する方法が提案されている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このBRDFやBTFを用いて描画する場合でも、三次元形状の物体を二次元平面に展開してから処理するのが一般的である。この二次元平面に展開する際、形状に歪みが生じる。すると、この歪みの影響により、画素が割り当てられていない欠損箇所、すなわち欠損画素が発生する。また、展開された二次元平面と貼り付ける画像の解像度が違う場合も欠損画素が発生する。
【０００５】
展開された二次元平面に画像を貼り付けた後に発生するこのような欠損画素に対し、欠損画素の周辺に割り当てられた周辺画素を用いて、欠損画素のデータ補間を行うことができる。
【０００６】
しかしながら、三次元形状における角部等に欠損画素があると、角部等によって反射特性が大きく変化した周辺画素も使用してデータ補間が行われるため、その補間精度が低くなるという問題があった。
【０００７】
そこで、本発明では、欠損画素の補間精度を向上させることを目的としている。
【課題を解決するための手段】
【０００８】
本発明は、上記課題に鑑みなされたものであり、コンピュータグラフィックスにおける三次元形状の物体を二次元平面に展開したデータに画素を割り当てる画素割当部と、そのデータにおいて画素が割り当てられていない欠損画素であるか否かを判断する判断部と、判断部によって判断された欠損画素の周辺に存在する複数の周辺画素の各々を含む各平面または各接平面に対する法線方向の基準線に対する角度と、欠損画素を含む平面または接平面に対する法線方向の基準線に対する角度との角度差に基づき、複数の周辺画像のうちの少なくとも２つの周辺画素を選択する画素選択部と、その画素選択部により選択された少なくとも２つの周辺画素に基づき、欠損画素のデータ補間を行うデータ補間部とを含む、画像処理システムが提供される。
【発明の効果】
【０００９】
本発明によれば、欠損画素のデータ補間精度を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態の画像処理装置の構成例を示した図。
【図２】三次元形状の物体の例を示した斜視図。
【図３】三次元形状の物体を二次元平面に展開した展開図。
【図４】三次元形状の物体で見た欠損画素と周辺画素との位置関係を示した図。
【図５】画像処理装置の第１の実施形態を示した機能ブロック図。
【図６】画像処理装置が行う欠損画素のデータ補間処理の第１の実施形態を示したフローチャート。
【図７】欠損画素を含む平面に垂直な法線と、周辺画素を含む平面に垂直な法線とにより形成される角度について説明する図。
【図８】球体に一方向から平行な光を照射した場合のイメージ図。
【図９】球体の地点Aを拡大して示した図。
【図１０】球体の地点Aを中心として平面に展開し、拡大して示した図。
【図１１】画像処理装置の第２の実施形態を示した機能ブロック図。
【図１２】画像処理装置が行う欠損画素のデータ補間処理の第２の実施形態を示したフローチャート。
【図１３】画像の法線と光が画素へ入射する方向の角度差について説明する図。
【図１４】鏡面反射について説明する図。
【図１５】画像処理装置が行う欠損画素のデータ補間処理の第３の実施形態を示したフローチャート。
【発明を実施するための形態】
【００１１】
図１は、本実施形態の画像処理装置の構成例を示した図である。画像処理装置１０は、コンピュータグラフィックス分野における三次元形状の物体の表面に着色したり、画像を貼り付けたりして質感を与えるテクスチャマッピングを実施することができる装置である。この画像処理装置１０は、ハードウェアとして、CPU１１、ROM１２、RAM１３、HDD１４、入出力I/F１５、表示装置１６、入力装置１７を含んで構成される。CPU１１、ROM１２、RAM１３、HDD１４および入出力I/F１５は、バス１８に接続され、バス１８を介して互いに情報のやりとりを行う。表示装置１６および入力装置１７は、入出力I/F１５に接続され、入出力I/F１５を介してCPU１１等と情報のやりとりを行う。
【００１２】
CPU１１は、画像処理装置１０全体の制御を行う。ROM１２は、読み出し専用の不揮発性メモリであり、ブートプログラムやファームウェア等を格納する。ブートプログラムは、画像処理装置１０を起動させるためのプログラムであり、ファームウェアは、HDD１４等のハードウェアを制御するためのプログラムである。RAM１３は、データを高速に読み書きすることが可能な揮発性メモリで、CPU１１がデータを処理する際の作業領域として使用される。HDD１４は、データの読み書きが可能な不揮発性の記憶媒体で、OSや各種の制御プログラム、アプリケーションプログラム等を格納する。アプリケーションプログラムには、上記のテクスチャマッピングを実施するためのプログラムも含まれる。
【００１３】
入出力I/F１５は、バス１８と表示装置１６および入力装置１７とを接続し、CPU１１等と表示装置１６や入力装置１７との間で行われる情報のやりとりを制御する。ここでは、画像処理装置１０が入出力I/F１５のみを備える構成を例示しているが、外部記憶装置と接続するための外部記憶I/Fや、ネットワークと接続するためのネットワークI/F等を備えていてもよい。表示装置１６は、ユーザが画像処理装置１０の状態を確認したり、処理内容を表示したりするための視覚的ユーザインタフェースである。
【００１４】
表示装置１６としては、CRT(Cathode Ray Tube)や液晶ディスプレイ(LCD)等を用いることができる。入力装置１７は、ユーザが画像処理装置１０に対してデータの入力を行うユーザインタフェースであり、キーボードやマウス等を用いることができる。なお、表示装置１６および入力装置１７の両方の機能を備えるタッチパネルを用いることも可能である。入力装置１７は、データを音声にて入力する装置であってもよく、マイク等の音声入力装置を用いることもできる。
【００１５】
画像処理装置１０は、これらのハードウェアを備える装置であればいかなる装置であってもよい。画像処理装置１０としては、例えば、PC、サーバ、スマートフォン、タブレット端末、MFP(Multi-Function Peripheral)、プロジェクタ、電子黒板、デジタルカメラ、ビデオカメラ、テレビ、ゲーム機等を用いることができる。
【００１６】
なお、テクスチャマッピングを実施することができれば、１つの機器に限定されるものではなく、２以上の機器から構成されていてもよい。２以上の機器により構成する場合、１つの機器の場合も含めて、画像処理システムとして提供することができる。それら２以上の機器は、直接ケーブル等で接続されていてもよいし、ネットワークを介して接続されていてもよい。ネットワークは、有線、無線のいずれのネットワークであってもよく、２以上のネットワークを介して接続されていてもよい。また、画像処理装置１０は、PC等の機器に限られるものではなく、ICチップ等の電子回路であってもよく、２以上の電子回路から構成されていてもよい。
【００１７】
テクスチャマッピングは、コンピュータグラフィックスにおける三次元形状の物体の表面に着色や画像を貼り付けて質感を与える手法で、例えば、二次元の写真データをマッピングすることにより画像を貼り付ける。具体的には、三次元形状の物体を二次元平面に展開し、その展開したデータである展開図を作成する。その展開図に、二次元の写真データをマッピングする。三次元形状の物体を二次元平面に展開する方法としては、これまでに知られたいかなる方法でも使用することができる。例えば、二次元平面展開アルゴリズムを使用することができる。二次元平面展開アルゴリズムとしては、三次元形状の物体の三次元メッシュに切れ目を入れ、二次元平面に展開するLSCM(Least Square Conformal Map)やABF(Angle Based Flattening)++等を使用することができる。なお、これらの展開アルゴリズムを使用することで、二次元平面に展開する際の形状の歪みを少なくすることができる。
【００１８】
展開図への写真データのマッピングは、展開図の二次元座標と、写真データの二次元座標とを対応させ、展開図の二次元座標に対応する写真データの二次元座標にある画素を割り当てることにより行われる。展開図に割り当てるデータは、これに限られるものではないが、上記のBRDFやBTFにより算出される反射特性データやRGB画像データ等とすることができる。マッピング後においては、二次元平面への展開時に歪みが生じ、また、展開図と写真とが同じ解像度とは限らないことから、画素が割り当てられていない欠損画素が発生する。
【００１９】
地球という三次元形状の物体を例に挙げて説明すると、角度を保ち、二次元平面へ展開する場合、メルカトル図法で見られるように、高緯度ほど実際の面積より大きくなる。面積を正しく表現しようとすると、モルワイデ図法で見られるように、高緯度ほど形がゆがむ。また、中心からの距離や方位を正しく表現しようとすると、正距方位図法で見られるように、中心からの距離が遠い部分ほど形のゆがみが大きくなる。このように、三次元形状の物体を二次元平面に展開する際、形、面積、角度等をすべて正確に表すことができないため、形状に歪みが生じる。
【００２０】
このように形状に歪みが生じると、展開図の二次元座標と写真データの二次元座標のすべてを対応させ、すべての写真データの画素を割り当てることはできない。このため、割り当てる画素がない座標の部分が欠損画素として発生することになる。
【００２１】
写真撮影において撮影する角度が変わると、見える部分と隠れる部分、形、面積等が変わってくる。それが歪みとなって現れ、展開図の二次元座標と写真データの二次元座標とが対応しない部分が発生する。この部分も欠損画素となることから、写真撮影の角度による歪みも、欠損画素が発生する要因となる。なお、これらは、欠損画素が発生する一例を挙げたものである。
【００２２】
このようにして発生した欠損画素に対してデータ補間を行う方法について、図２〜図４を参照して説明する。図２は、三次元形状の物体の一例としての立方体の斜視図である。この例では、立方体の６つの面のうち、上面１、側面３、４が見えている。図３は、図２に示す立方体を二次元平面に展開した展開図である。展開図に付した番号は、図２に示す立方体の各面に付した番号に対応している。
【００２３】
例えば、図３に示す面３の角部に黒く塗り潰された欠損画素２０があるものとする。従来の単純なデータ補間方法であれば、欠損画素２０に隣接する斜線で示す４つの隣接画素２１〜２４に割り当てられたデータを用いてデータ補間を行う。欠損画素２０と４つの隣接画素２１〜２４の三次元形状に戻した場合の位置関係を、図４に示す。
【００２４】
隣接画素２２〜２４は、欠損画素２０と同じ面３上に存在するが、隣接画素２１は、欠損画素２０とは異なる面１上に存在している。面が異なると、物体によっては表面の色や材質が大きく違い、同じ色や材質であっても光の当たり方で、見え方が大きく異なる場合がある。この場合、隣接画素２１は、隣接画素２２〜２４とは大きく異なるデータが割り当てられることになる。このように大きく異なるデータを使用してデータ補間を行うと、想定される結果とは大きく異なり、その補間精度が低くなってしまう。
【００２５】
このため、異なる面上にある画素は、隣接画素であっても採用しないようにすることができれば、補間精度を向上させることができる。そこで、欠損画素２０を含む平面、欠損画素２０の周辺に存在する複数の周辺画素の各々を含む各平面に対する法線方向の基準線に対する角度を用い、その角度差に基づき、補間に使用する周辺画素を選択するようにする。そして、選択した周辺画素に基づき、欠損画素２０のデータ補間を行うようにする。これにより、適切な周辺画素のみを使用してデータ補間を行うことができ、その補間精度を向上させることができる。
【００２６】
図３に示す例では、隣接画素２２〜２４を含む平面と欠損画素２０を含む平面は同じ平面で、それらの法線は平行である。このため、基準線に対する隣接画素２２〜２４の法線方向の角度も、欠損画素２０の法線方向の角度も同じ角度で、その角度差は、０°である。一方、隣接画素２１の法線方向の角度は、欠損画素２０の法線方向の角度と９０°異なっている。この９０°異なり、補間精度を低下させる隣接画素を採用しないようにするため、例えばその間の角度を閾値として設け、その閾値以下である場合にその隣接画素を選択するように設定する。これにより、隣接画素２２〜２４のみを選択し、隣接画素２２〜２４を使用してデータ補間を行うことができる。
【００２７】
これを実現するための画像処理装置１０の機能ブロック図を、図５に例示する。画像処理装置１０に入力されるデータは、コンピュータグラフィックスにおける三次元物体の形状データである三次元形状データと、貼り付ける写真の写真データと、三次元形状データと写真データの座標対応マップの３種類である。三次元形状データは、三次元形状を表現するための頂点、辺、法線の情報からなり、例えばobjファイルフォーマット形式のデータとすることができる。このフォーマットは、多くの三次元モデリング、レンダリングソフトウェアに対応した形式である。これは一例であり、その他のフォーマット形式のデータであってもよい。
【００２８】
写真データは、三次元形状の物体を撮影して得られたデータで、例えばjpegフォーマット形式のデータとすることができる。このデータも、このjpegフォーマット形式に限定されるものではなく、その他のフォーマット形式のデータであってもよい。また、写真データは、一枚のデータであってもよいし、様々な方向から撮影した複数枚のデータであってもよい。
【００２９】
座標対応マップは、三次元形状データにおいて三次元形状を表す頂点の座標（XYZ座標）と、写真データにおいて写真内の任意の位置の座標（xy座標）との対応を示すマップである。このマップは、展開図に写真データをマッピングする際に使用される。ここでは、マップとしての例を挙げたが、これに限られるものではなく、XYZ座標とxy座標との関係を列挙した情報であってもよいし、座標変換行列等であってもよい。
【００３０】
画像処理装置１０は、三次元形状データと、座標対応マップとを受け付け、三次元形状の物体を二次元平面に展開する二次元平面展開処理部３０を備える。二次元平面展開処理部３０は、上記のLSCM展開アルゴリズムやABF++展開アルゴリズムを使用して展開を行う。二次元平面展開処理部３０は、展開した展開図と、座標対応マップとを出力する。
【００３１】
画像処理装置１０は、画素割当部３１を備え、二次元平面展開処理部３０から出力された展開図および座標対応マップと、入力された写真データとを受け付ける。画素割当部３１は、座標対応マップを使用して、展開図に写真データの各画素を割り当て、写真データの各画素が割り当てられた展開図を出力する。画素割当部３１は、展開図の二次元座標と、写真データの二次元座標とを対応させ、展開図の二次元座標に対応する写真データの二次元座標にある画素を割り当てる。
【００３２】
画像処理装置１０は、判断部３２を備え、入力された三次元形状データと、二次元平面展開処理部３０から出力された座標対応マップと、画素割当部３１から出力された写真データが割り当てられた展開図とを受け付ける。判断部３２は、受け付けた展開図から欠損画素２０であるか否かを判断し、欠損画素２０を検出する。
【００３３】
画像処理装置１０は、画素選択部３３を備え、三次元形状データおよび座標対応マップを参照して、検出した欠損画素２０の周辺に存在する複数の周辺画素のうちの少なくとも２つの周辺画素を選択する。欠損画素２０に隣接する隣接画素を選択することが望ましいが、欠損画素２０が２以上連続している場合、その欠損画素２０に隣接する隣接画素も欠損画素となるので、割り当てられたデータをもつ周辺画素を選択するようにしている。
【００３４】
画素選択部３３は、まず、三次元形状データおよび座標対応マップを使用して複数の周辺画素の法線の情報を取得し、各周辺画素の法線方向の基準線に対する角度と、欠損画素２０の法線方向の基準線に対する角度とを算出する。基準線は、例えば、欠損画素２０の法線方向と平行な線を用いることができる。基準線が欠損画素２０の法線方向と平行な線である場合、欠損画素２０の法線方向の角度は０°となる。また、周辺画素の法線方向も、基準線と平行であれば、その角度は０°となる。１０°ほど傾いていれば、その角度は１０°となる。画素選択部３３は、それらの角度を比較し、角度差を求める。そして、画素選択部３３は、求めた角度差が予め設定された閾値以下であるかどうかを判断し、その閾値以下の周辺画素を選択する。
【００３５】
欠損画素２０、各周辺画素の法線は、その欠損画素２０および各周辺画素が平面上にあれば、欠損画素を含む平面に垂直な線、各周辺画素を含む各平面に垂直な線である。これに対し、欠損画素２０、各周辺画素が曲面上にある場合は、欠損画素２０における接平面、各周辺画素における各接平面に垂直な線である。
【００３６】
周辺画素は、欠損画素２０に隣接する隣接画素のほか、その隣接画素のさらに隣の画素であってもよいし、そのさらに隣の画素であってもよい。しかしながら、欠損画素２０からあまり離れ過ぎると、補間精度が低下するため、画素選択部３３は、欠損画素２０からの距離も考慮して、複数の周辺画素のうちの少なくとも２つの周辺画素を選択することができる。この距離は、写真データが割り当てられた展開図から算出することができ、この距離にも閾値を設け、閾値以下の周辺画素を選択することができる。画素選択部３３は、周辺画素を選択した後、その情報と、写真データが割り当てられた展開図とを出力する。
【００３７】
画像処理装置１０は、データ補間部３４を備え、画素選択部３３から出力された情報と、写真データが割り当てられた展開図とを受け付ける。データ補間部３４は、画素選択部３３が出力した情報に含まれる周辺画素の情報と、写真データが割り当てられた展開図とを参照し、その周辺画素に割り当てられたデータを用いてデータ補間を行う。
【００３８】
データ補間方法は、例えば、周辺画素として欠損画素２０に隣接する隣接画素２２〜２４のデータを平均し、その平均値で補間する方法や、周辺画素の距離に応じて重み付けした平均値で補間する方法等を用いることができる。これらの方法は一例であり、適切にデータ補間を行うことができれば、その他のいかなる方法でも採用することができる。
【００３９】
データ補間部３４は、すべての欠損画素２０につき、画素選択部３３が選択した周辺画素を用い、データ補間を行う。そして、データ補間部３４は、すべての欠損画素２０がデータ補間された展開図を出力する。
【００４０】
欠損画素２０がデータ補間された展開図は、二次元平面に展開されたのと反対の操作により三次元形状へと戻され、これにより、テクスチャマッピングが終了する。
【００４１】
画像処理装置１０により実施される欠損画素のデータ補間処理の詳細について、図６を参照して説明する。ステップ６００からこの処理を開始し、ステップ６０５では、写真データが貼り付けられた展開図の画素を１つずつ参照し、それが欠損画素２０かどうかを判断する。欠損画素２０かどうかは、例えば、写真データを割り当てる際、初期値を０に設定しておくことで、写真データが割り当てられた画素は、０以外の数字となるので、その画素が０かどうかにより判断することができる。これ以外に、写真データが割り当てられたか否かの情報を別途持ち、その情報により判断することも可能である。なお、これらは一例であり、欠損画素２０かどうかを判断できれば、いかなる方法でも採用することができる。
【００４２】
ステップ６０５において欠損画素２０である場合は、ステップ６１０へ進み、欠損画素２０でない場合は、ステップ６４０へ進む。ステップ６１０では、三次元形状データの法線情報と、欠損画素２０の二次元平面座標と、座標対応マップとから欠損画素２０の法線情報を取得する。具体的には、まず、欠損画素２０の二次元平面座標と、座標対応マップとを用い、三次元形状のどこの位置に対応するかを特定する。そして、三次元形状データの特定した位置における法線情報を三次元形状データから取得する。
【００４３】
ステップ６１５では、欠損画素２０に隣接する隣接画素についても同様の方法により法線情報を取得する。ここでは、周辺画素として隣接画素を採用するものとして説明する。隣接画素は、欠損画素２０に隣接する上下左右の４つの画素とすることができる。また、隣接画素は、上記の４つに限らず、その斜め方向に隣接する４つの画素を含め、計８つの画素を隣接画素とすることも可能である。ステップ６２０では、取得した欠損画素２０の法線と取得した隣接画素の法線の所定の基準線に対する角度を算出する。そして、それらの角度差が閾値以下かどうかを判断する。
【００４４】
ここで、欠損画素２０とそれに隣接する隣接画素の法線の角度について、図７を参照してさらに詳細に説明する。データ補間を行う際、隣接画素を使用するが、その隣接画素がある場所が問題となる。表面形状が広く平らな面をもち、欠損画素２０も、隣接画素も同じ面上にある場合、それらの法線は、平行になる。同じ面では、欠損画素２０においても、隣接画素においても、光の入射角度および反射角度が同じであるため、反射率等の反射特性は同じと考えられる。
【００４５】
図７（ａ）に示すように、欠損画素を含む面４０に対する法線４１と、隣接画素を含む面４２に対する法線４３とが平行ではない場合、法線４１と法線４３とが一点で交わり、これが角度差θとなる。このような場合、各面で反射特性が変わる。しかしながら、角度差θが小さい場合、欠損画素２０と隣接画素において反射特性の相違は小さい。これに対し、図７（ｂ）に示すように、その角度差θが約９０°といったように大きい場合、面４０と面４２は異なる方向に向いており、欠損画素２０と隣接画素における反射特性の相違は大きくなる。
【００４６】
反射特性の相違が小さくても、相違があることに変わりないことから、その角度差が０°より大きい場合は、その隣接画素をデータ補間用の周辺画素として採用しないようにすることができる。しかしながら、三次元物体を構成する面は、広く平らな面とは限らず、曲面である場合も多い。曲面は、法線方向が少しずつ変わる画素の連結により構築されるので、どの隣接画素との間でも、上記角度差は０°にはならない。すると、いずれの隣接画素も採用することができず、データ補間を行うことができなくなってしまう。
【００４７】
そこで、一定の閾値を設け、その閾値以下の角度差であれば、その隣接画素を採用することができるようにすることができる。閾値は、いかなる角度差であってもよいが、反射特性にほとんど影響が出ない範囲、例えば３°以内等とすることができる。ここでは３°を例示したが、これに限られるものではなく、２°や５°、１０°等であってもよい。閾値は、事前に固定値として設定しておくこともできるし、三次元物体の形状や材質等からユーザが任意に設定することもできる。
【００４８】
再び図６を参照して、ステップ６２５では、閾値以下と判断された隣接画素を、データ補間用の隣接画素として登録する。登録は、例えばRAM１３にその隣接画素の情報を記憶することにより行われる。ステップ６３０では、その隣接画素が最後の隣接画素かを判断する。最後でない場合、ステップ６１５へ戻り、まだ角度差が閾値以下であるかを判断していない隣接画素の法線情報を取得する。最後である場合は、ステップ６３５へ進み、閾値以下と判断された隣接画素のデータのみを使用し、欠損画素２０に割り当てるデータをデータ補間して算出する。そして、その算出したデータを欠損画素２０に割り当てる。
【００４９】
ステップ６４０では、すべての画素につき、欠損画素２０か否かを判断し、欠損画素２０である場合にデータ補間を行ったかどうかを判断する。すなわち、データ補間を行った画素あるいは欠損画素２０かどうかを判断し、欠損画素２０でないと判断された画素が最終の画素かどうかを判断する。最終でない場合は、ステップ６０５へ戻り、次の画素につき、欠損画素２０かどうかを判断する。これに対し、最終である場合は、ステップ６４５へ進み、データ補間処理を終了する。
【００５０】
これまでの例では、２つの法線の所定の基準線に対する角度の角度差が閾値以下かどうかを判断し、それに応じてデータ補間用の周辺画素として採用するかどうかを判断した。しかしながら、それのみでは、欠損画素２０と隣接画素との間で色が切り替わる場合や、その間が異なる材質のつなぎ目である場合、角度差が閾値以下であっても、その隣接画素を使用すると、補間精度が低下してしまう。そこで、角度差に加え、欠損画素２０と隣接画素との画素値の差にも閾値を設け、一定の閾値を超える場合、その隣接画素は採用しないようにすることができる。
【００５１】
したがって、図５に示す画素選択部３３は、欠損画素２０の画素値と周辺画素の画素値との差が予め設定された閾値以下であるかどうかを判断し、角度差が閾値以下であることに加え、画素値の差が閾値以下の周辺画素を選択する。欠損画素２０の画素値および周辺画素の画素値は、座標対応マップおよび写真データが割り当てられた展開図を用い、三次元形状データから取得することができる。この閾値も、事前に固定値として設定しておくこともできるし、三次元物体の形状や材質等からユーザが任意に設定することもできる。
【００５２】
以上に説明してきたように、補間精度が低下する不適切な周辺画素は採用せず、適切な周辺画素のみを使用してデータ補間を行うことで、欠損画素２０のデータ補間精度を向上させることができる。
【００５３】
これまでに説明してきたデータ補間では、光源の状態によっては補間精度を向上させることができない場合がある。その例を、図８〜図１０を参照して説明する。図８は、三次元形状の物体（三次元物体）の一例である球体に一方向から平行な光を照射した場合のイメージ図である。図８に示す球体５０の頂部の地点A、手前側の側部中央の地点B、底部の地点C、地点Bの裏側の側部中央の地点Fを結んで出来る円を境界とし、光源５１がない側（光源反対側）は影になり、光源反対側の面には光が照射されない。
【００５４】
図９は、図８に示す球体５０の地点Aを拡大して示した図である。球体５０も、最小構成のサイズまで拡大すると、図９に示すような微小な角度差をもった線から構成される。このため、地点Aを中心として光源反対側が欠損画素５２であった場合、それに隣接する光源側の画素が周辺画素５３となる。上記で説明した閾値で判断すると、欠損画素５２と周辺画素５３の所定の基準線に対する法線の角度差は閾値より小さいため、その周辺画素５３は選択されることになる。ちなみに、この角度差は、所定の基準線を欠損画素５２の法線もしくは周辺画素５３の法線とすれば、欠損画素５２の法線と周辺画素５３の法線とにより形成される角度と同じである。
【００５５】
図１０は、球体５０の地点Aを中心として平面に展開し、それを拡大して示した図である。詳細には、地図で採用される経線を曲げ、高緯度ほど経線の幅を狭めた擬円筒図法で展開した球体５０の展開図の地点A付近を拡大して示した図である。ここでは、擬円筒図法としてモルワイデ図法を使用している。図１０（ａ）中、白抜きされた矩形部分が、光が照射された画素を示し、黒塗りされた矩形部分が、光が照射されない画素を示し、格子状の線で示された矩形部分が、欠損画素５２を示している。
【００５６】
図１０（ａ）に示す例では、欠損画素５２は光が照射されない画素であるため、欠損画素５２に隣接する周辺画素５４〜５６と同様、黒塗りされた矩形部分として示されなければならない。しかしながら、欠損画素５２に隣接する、光が照射された周辺画素５３も上記のように選択されるため、この周辺画素５３も考慮してデータ補間されることなる。すると、図１０（ｂ）に示すようなグレーの画素として示され、データ補間して得られる画像が不自然なものとなる。これでは、補間精度を向上させることはできない。
【００５７】
そこで、図１１に示すように、画像処理装置１０は、三次元形状データ、座標対応マップ、写真データに加えて、光の方向に関する情報（光方向データ）を入力として受け付ける。そして、判断部３２が、その光方向データも使用して、データ補間用の周辺画素として採用するかどうかを判断する。
【００５８】
光方向データは、三次元物体に対して、どの角度で光が当たっているかを示す情報である。この情報を算出する方法としては、例えば、入射した光がほぼ完全に反射するクローム球を用い、クローム球に写った光源を撮影し、得られた画像から光源の位置と方向ベクトルとを算出する方法を用いることができる。方向ベクトルは、三次元物体と光源とを繋ぐ直線が延びる方向を指し示すベクトルである。
【００５９】
この方法を実施するために、クローム球、１以上の撮像装置、画像から光源の位置や方向ベクトルを算出する計算処理装置を用い、画像処理装置１０は、計算処理装置から光源の位置等の情報を取得することができる。なお、計算処理装置を用いることなく、画像処理装置１０が撮像装置から画像を取得し、その画像から光源の位置等を算出してもよい。この方法は一例であるので、これまでに知られたいかなる方法でも使用して、光源の位置および方向ベクトルを算出することができる。
【００６０】
光方向データも使用した欠損画素のデータ補間処理の詳細について、図１２を参照して説明する。ステップ１２００からこの処理を開始し、ステップ１２０５では、写真データが貼り付けられた展開図の画素を１つずつ参照し、それが欠損画素５２かどうかを判断する。欠損画素５２かどうかは、上記と同様にして判断することができる。
【００６１】
ステップ１２０５において欠損画素５２である場合、ステップ１２１０へ進み、欠損画素５２でない場合は、ステップ１２４５へ進む。ステップ１２１０では、三次元形状データの法線情報と、欠損画素５２の二次元平面座標と、座標対応マップとから欠損画素５２の法線情報を取得する。具体的には、欠損画素５２の二次元平面座標と、座標対応マップとを用い、三次元形状のどこの位置に対応するかを特定する。そして、三次元形状データの特定した位置における法線情報を三次元形状データから取得する。また、上記の方法等により、光方向データも取得する。
【００６２】
ステップ１２１５では、欠損画素５２に隣接する隣接画素についても同様の方法により法線情報等を取得する。ここでも、周辺画素として隣接画素を採用するものとして説明する。隣接画素は、欠損画素５２に隣接する上下左右の４つの画素とすることができる。また、隣接画素は、上記の４つに限らず、その斜め方向に隣接する４つの画素を含め、計８つの画素を隣接画素とすることも可能である。ステップ１２２０では、取得した欠損画素５２の法線と取得した隣接画素の法線とにより形成される角度を、それぞれの基準線に対する角度の角度差として算出する。そして、その角度差が閾値以下かどうかを判断する。欠損画素５２の法線とそれに隣接する隣接画素の法線とから得られる角度差については既に説明したので、ここではその説明を省略する。
【００６３】
ステップ１２２０において角度差が閾値以下である場合、ステップ１２２５へ進み、閾値を超える場合、ステップ１２３５へ進む。ステップ１２２５では、欠損画素５２と隣接画素の光の当たり方の条件が同じかどうかを判断する。すなわち、欠損画素５２と隣接画素の各々につき、法線と光が入射する方向（方向ベクトル）の所定の基準線に対する角度をそれぞれ求め、それら２つの角度から角度差を求める。角度差は、簡単には法線と光の入射方向とにより形成される角度として求めることができる。欠損画素５２と隣接画素の各々につき求めた角度差を比較し、比較結果に基づき判断する。
【００６４】
図１３を参照して、法線と入射光の方向から得られる角度差について説明する。図１３（ａ）に示すように、画素は、物体表面６０の画像を構成し、画素の法線は、物体表面６０の法線と同じ方向で、矢線６１で示される。物体表面６０へ光の入射方向と、その法線とにより形成される角度αが鋭角、すなわち９０°未満である場合、その表面は光が当たっている状態である。
【００６５】
これに対し、図１３（ｂ）に示すように光の入射方向と法線とにより形成される角度が９０°である場合、その表面は光が当たっていない状態となる。また、図１３（ｃ）に示すように光の入射方向と法線とにより形成される角度が鈍角、すなわち９０°を超える場合も、その表面は光が当たっていない状態となる。
【００６６】
物体表面６０に光が当たっているか否かで、見え方が異なるため、比較する対象の２つの画素がいずれも法線に対して光の入射角度が９０°未満もしくは９０°または９０°を超える場合、条件が同じと判断することができる。２つの画素のいずれもが９０°未満であれば、どちらの画素にも光が当たっている状態となり、いずれもが９０°もしくは９０°を超える場合、どちらの画素にも光が当たっていない状態になり、見え方がほぼ同じものになるからである。
【００６７】
２つの画素の一方が９０°未満で、他方が９０°もしくは９０°を超える場合、一方には光が当たり、他方には光が当たらない状態になるので、その見え方が異なるものになる。このため、このような場合には、条件が異なると判断することができる。
【００６８】
再び図１２を参照して、ステップ１２２５において条件が同じと判断した場合、ステップ１２３０へ進み、条件が異なると判断した場合、ステップ１２３５へ進む。ステップ１２３０では、隣接画素を、欠損画素５２の補間用の隣接画素候補として登録する。ステップ１２３５では、欠損画素５２の補間用の隣接画素として採用するか否かの判断を行う最後の隣接画素かどうかを判断する。
【００６９】
ステップ１２３５において最後の隣接画素でないと判断した場合、ステップ１２１５へ戻り、次の隣接画素に対して、ステップ１２１５からステップ１２３５までの処理を繰り返す。一方、最後の隣接画素と判断した場合、ステップ１２４０へ進み、登録した隣接画素のデータのみを使用し、欠損画素５２に割り当てるデータを、データ補間して算出する。そして、その算出したデータを欠損画素５２に割り当てる。
【００７０】
ステップ１２４５では、すべての画素につき、欠損画素５２か否かを判断し、欠損画素５２である場合にデータ補間を行ったかどうかを判断する。すなわち、データ補間を行った画素あるいは欠損画素５２かどうかを判断し、欠損画素５２でないと判断された画素が最終の画素かどうかを判断する。最終でない場合は、ステップ１２０５へ戻り、次の画素につき、欠損画素５２かどうかを判断する。これに対し、最終である場合は、ステップ１２５０へ進み、データ補間処理を終了する。
【００７１】
これまで、光の入射方向を考慮して選択する隣接画素を判断し、適切な隣接画素のみを使用して欠損画素５２のデータ補間を行う例について説明してきた。この例では、光が当たっているか否かのみを考慮したが、三次元物体が、鏡面反射（正反射）が強い物体であるとき、光が当たっているか否かという条件のみでは、高い精度で補間することができない場合が発生する。
【００７２】
図１４を参照して説明すると、光源７０からの光は、欠損画素５２がある面７１と、隣接画素がある面７２との両方に入射し、両方の面７１、７２には光が当たっており、それら法線により形成される角度は小さい。このため、上記の例では、隣接画素は、欠損画素５２の補間用の隣接画素候補として採用される。入射光７３が様々な方向に反射する拡散反射の強い物体、例えば艶のない物体であれば、各面７１、７２で見え方は変わらない。しかしながら、入射光７３が別の一方向に反射する鏡面反射の強い物体の場合、図１４に示すように反射光７４、７５の方向が各面７１、７２で異なるため、見え方は大きく変わってしまう。
【００７３】
そこで、鏡面反射が強い物体である場合、欠損画素５２から光が反射する方向の所定の基準線に対する角度と、その隣接画素から光が反射する方向の該基準線に対する角度との角度差に基づき、補間用画素として採用するか判断することができる。具体的には、その角度差が、見え方に違いが出ない許容範囲内の角度であるか否かにより判断することができる。許容範囲内の角度は、ユーザが任意に設定することができ、自分が見て違いが分からない角度の範囲を設定することができる。そのほか、ユーザが三次元物体を見て、拡散反射が強い物体か、鏡面反射が強い物体かを判断し、光の反射方向の角度差を判定条件として用いるか否かを切り替える方法を採用することもできる。この切り替えは、三次元物体に応じて設定された条件に従って、別途設けられる切替部により実施することができる。
【００７４】
切替部は、光の反射方向の角度差を判定条件として用いるか否かを切り替えることに限られるものではなく、光の入射方向の角度差、すなわち光が当たっているかどうかという判定条件を用いるか否かを切り替えてもよい。また、切替部は、その２つの両方を切り替えることができるようになっていてもよい。
【００７５】
反射光の方向を考慮した欠損画素のデータ補間処理の詳細について、図１５を参照して説明する。ステップ１５００からこの処理を開始し、ステップ１５０５では、写真データが貼り付けられた展開図の画素を１つずつ参照し、それが欠損画素５２かどうかを判断する。欠損画素５２かどうかは、上記と同様にして判断することができる。
【００７６】
ステップ１５０５において欠損画素５２である場合、ステップ１５１０へ進み、欠損画素５２でない場合は、ステップ１５５０へ進む。ステップ１５１０では、三次元形状データの法線情報と、欠損画素５２の二次元平面座標と、座標対応マップとから欠損画素５２の法線情報を取得する。具体的には、欠損画素５２の二次元平面座標と、座標対応マップとを用い、三次元形状のどこの位置に対応するかを特定する。そして、三次元形状データの特定した位置における法線情報を三次元形状データから取得する。また、上記の方法により、光方向データも取得する。
【００７７】
ステップ１５１５では、欠損画素５２に隣接する隣接画素についても同様の方法により法線情報等を取得する。ここでも、周辺画素として隣接画素を採用するものとして説明する。隣接画素は、欠損画素５２に隣接する上下左右の４つの画素とすることができる。また、隣接画素は、上記の４つに限らず、その斜め方向に隣接する４つの画素を含め、計８つの画素を隣接画素とすることも可能である。ステップ１５２０では、取得した欠損画素５２の法線と取得した隣接画素の法線とにより形成される角度を、それぞれの所定の基準線に対する角度の角度差として算出する。そして、その角度差が閾値以下かどうかを判断する。欠損画素５２の法線とそれに隣接する隣接画素の法線とから得られる角度差については既に説明したので、ここではその説明を省略する。
【００７８】
ステップ１５２０において角度差が閾値以下である場合、ステップ１５２５へ進み、閾値を超える場合、ステップ１５４０へ進む。ステップ１５２５では、欠損画素５２と隣接画素の光の当たり方の条件が同じかどうかを判断する。すなわち、欠損画素５２および隣接画素の法線と光の入射方向とにより形成される角度を、各画素の角度差として求め、それらの角度差を比較し、比較結果に基づき判断する。
【００７９】
ステップ１５２５において条件が同じと判断した場合、ステップ１５３０へ進み、条件が異なると判断した場合、ステップ１５４０へ進む。ステップ１５３０では、欠損画素５２および隣接画素からの光の反射方向が同じかどうかを判断する。ステップ１５３０において同じと判断した場合はステップ１５３５へ進み、異なると判断した場合はステップ１５４０へ進む。光の反射方向は、鏡面反射の場合、画素の法線とその画素への光の入射方向とにより形成される角度と、画素の法線とその画素からの光の反射方向とにより形成される角度とが等しいことから、法線および光の入射方向から求めることができる。
【００８０】
ステップ１５３５では、隣接画素を、欠損画素５２の補間用の隣接画素候補として登録する。ステップ１５４０では、欠損画素５２の補間用の隣接画素として採用するか否かの判断を行う最後の隣接画素かどうかを判断する。
【００８１】
ステップ１５４０において最後の隣接画素でないと判断した場合、ステップ１５１５へ戻り、次の隣接画素に対して、ステップ１５１５からステップ１５４０までの処理を繰り返す。一方、最後の隣接画素と判断した場合、ステップ１５４５へ進み、登録した隣接画素のデータのみを使用し、欠損画素５２に割り当てるデータを、データ補間して算出する。そして、その算出したデータを欠損画素５２に割り当てる。
【００８２】
ステップ１５５０では、すべての画素につき、欠損画素５２か否かを判断し、欠損画素５２である場合にデータ補間を行ったかどうかを判断する。すなわち、データ補間を行った画素あるいは欠損画素５２かどうかを判断し、欠損画素５２でないと判断された画素が最終の画素かどうかを判断する。最終でない場合は、ステップ１５０５へ戻り、次の画素につき、欠損画素５２かどうかを判断する。これに対し、最終である場合は、ステップ１５５５へ進み、データ補間処理を終了する。
【００８３】
これまでに説明してきた例では、三次元形状物体の表面に割り当てるデータを写真データとしたが、BRDFやBTF等の反射率を三次元形状物体の表面に割り当てる際に、このような光の反射方向を考慮した方法を利用することができる。したがって、光の入射方向や反射方向を考慮し、高い精度で欠損画素５２を補間することが可能となる。また、反射方向を考慮するか否かはユーザの判断で実施することができるため、処理ステップを一部省略し、処理を簡略化することも可能となる。
【００８４】
これまで本発明を、画像処理装置、画像処理システム、画像処理方法およびプログラムとして上述した実施の形態をもって説明してきたが、本発明は上述した実施の形態に限定されるものではない。本発明は、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。したがって、本発明は、上記のプログラムが記録された記録媒体や、そのプログラムを、ネットワークを介して提供するサーバ装置等も提供することができるものである。
【符号の説明】
【００８５】
１０…画像処理装置、１１…CPU、１２…ROM、１３…RAM、１４…HDD、１５…入出力I/F、１６…表示装置、１７…入力装置、１８…バス、２０…欠損画素、２１〜２４…隣接画素、３０…二次元平面展開処理部、３１…画素割当部、３２…判断部、３３…画素選択部、３４…データ補間部、４０、４２…面、４１、４３…法線、５０…球体、５１…光源、５２…欠損画素、５３〜５６…周辺画素、６０…物体表面、６１…矢線、７０…光源、７１、７２…面、７３…入射光、７４、７５…反射光
【先行技術文献】
【特許文献】
【００８６】
【特許文献１】特開２０１３−２５７６６４号公報
【図１】
2016119041.tif 000003
【図２】
2016119041.tif 000004
【図３】
2016119041.tif 000005
【図４】
2016119041.tif 000006
【図５】
2016119041.tif 000007
【図６】
2016119041.tif 000008
【図７】
2016119041.tif 000009
【図８】
2016119041.tif 000010
【図９】
2016119041.tif 000011
【図１０】
2016119041.tif 000012
【図１１】
2016119041.tif 000013
【図１２】
2016119041.tif 000014
【図１３】
2016119041.tif 000015
【図１４】
2016119041.tif 000016
【図１５】
2016119041.tif 000017