(57)【特許請求の範囲】
【請求項１】
被写体を分割撮影して得られた複数の分割画像データを取得する取得手段と、
前記取得した複数の分割画像データのうち、基準画像データと前記基準画像データに隣接する隣接画像データとを、設定情報に基づいて選択する選択手段と、
前記選択手段で選択された前記基準画像データと前記隣接画像データとの重複領域における対応点を検出する検出手段と、
前記検出した対応点に基づいて前記隣接画像データの明度補正を行なう補正手段と、
前記選択手段と前記検出手段と前記補正手段との処理を前記設定情報に基づいて繰り返し行なう制御手段と
を有し、
前記設定情報は、明度補正処理済みの分割画像データを基準画像データとして用い、明度補正処理がされていない分割画像データを隣接画像データとして用いることを示す設定を含むことを特徴とする画像処理装置。
【請求項２】
前記補正手段で補正された画像データを合成する合成手段をさらに有することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記検出手段で対応点が検出できなかった場合、前記隣接画像データにさらに隣接する明度補正画像データがあるかを判定する判定手段をさらに有し、
前記選択手段は、前記判定手段で前記隣接画像データに隣接する明度補正画像データがあると判定された場合、該明度補正画像データを基準画像データとして再選択することを特徴とすることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記複数の分割画像データのうち、基点となる分割画像データの位置と、残りの分割画像データの位置と間の距離を示す距離情報を算出する算出手段と、
前記算出した距離情報に基づいて前記設定情報を設定する設定手段と
をさらに有することを特徴とする請求項１から３のいずれか一項に記載の画像処理装置。
【請求項５】
前記算出手段は、隣接する分割画像データの重複領域の対応点に基づく評価値に従って前記距離情報を補正することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記算出手段は、前記評価値が所定の値に満たない場合、当該隣接する分割画像データ間の距離を無効とすることを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記算出手段は、隣接する分割画像データの重複領域の対応点が少ないほど、前記評価値を低く算出することを特徴とする請求項５または６に記載の画像処理装置。
【請求項８】
前記算出手段は、隣接する分割画像データの重複領域の対応点が検出されない場合、当該隣接する分割画像データ間の距離を無効とすることを特徴とする請求項４に記載の画像処理装置。
【請求項９】
前記設定手段は、基準画像データを示す第１のパスと、隣接画像データを示す第２のパスと、該隣接画像データに明度補正がされた明度補正画像データとを示す第３のパスとを含む設定情報を設定する請求項４から８のいずれか一項に記載の画像処理装置。
【請求項１０】
前記設定手段は、前記基点となる分割画像データを前記第１のパスに含める設定か、または、前記基点となる分割画像データ以外の分割画像データの明度補正画像データを前記第１のパスに含める設定を行なうことを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記設定手段は、前記距離情報の距離が小さい前記基準画像データを前記距離情報の距離が大きい前記基準画像データよりも優先して前記第１のパスに含める設定を行なうことを特徴とする請求項９記載の画像処理装置。
【請求項１２】
前記設定手段は、前記距離情報に基づいて前記設定を複数のグループに分類した設定情報を設定し、
前記選択手段は、グループ内の設定に基づく複数の処理を並列に行い、
前記補正手段は、複数の選択されたそれぞれの組について前記明度補正を並列に行なうことを特徴とする請求項４から１１のいずれか一項に記載の画像処理装置。
【請求項１３】
前記選択手段は、前記設定情報に含まれる全ての設定が終るまで基準画像データと隣接画像データとの選択を繰り返すことを特徴とする請求項１から１２のいずれか一項に記載の画像処理装置。
【請求項１４】
前記取得手段は、面内ムラ補正処理が行なわれた分割画像データを取得することを特徴とする請求項１から１３のいずれか一項に記載の画像処理装置。
【請求項１５】
前記補正手段は、前記対応点の近傍の画素値を用いて明度補正推定値を算出し、算出した明度補正推定値に基づいて前記隣接画像データを補正する請求項１から１４のいずれか一項に記載の画像処理装置。
【請求項１６】
前記補正手段は、明度補正された画像データにさらにあおり補正を行なうことを特徴とすることを特徴とする請求項１から１５のいずれか一項に記載の画像処理装置。
【請求項１７】
被写体を分割撮影して得られた複数の分割画像データを取得する取得ステップと、
前記取得した複数の分割画像データのうち、基準画像データと前記基準画像データに隣接する隣接画像データとを、予め定められた設定情報に基づいて選択する選択ステップと、
前記選択ステップで選択された前記基準画像データと前記隣接画像データとの重複領域における対応点を検出する検出ステップと、
前記検出した対応点に基づいて前記隣接画像データの明度補正を行なう補正ステップと、
前記選択ステップと前記検出ステップと前記補正ステップとを前記設定情報に基づいて繰り返し行なう制御ステップと
を有し、
前記設定情報は、明度補正処理済みの分割画像データを基準画像データとして用い、明度補正処理がされていない分割画像データを隣接画像データとして用いることを示す設定を含むことを特徴とする画像処理方法。
【請求項１８】
コンピュータを、請求項１から１６のいずれか一項に記載の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、被写体を分割撮影して、被写体の全体の画像を表す画像データを生成する画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
文化財のアーカイブでは、被写体を可能な限り高解像度にキャプチャするという要望がある。そのため、デジタルカメラを用いて被写体を撮影する際には、被写体を複数領域に分割撮影し、撮影後に合成する手法が知られている。
【０００３】
分割撮影した画像データを合成する方法として、各撮影画像データが互いに重なる重複領域を抽出して、重複領域に基づき複数の画像データを貼り合わせる方法がある。このとき、撮影画像データに含まれるムラ（照明ムラ・周辺減光ムラ）を除去することで良好な結果を得る方法がある（特許文献１）。特許文献１では、被写体に対する照明光が不均一なために発生する「照明ムラ」と、レンズ特性に起因して撮影画像データの中央部に比べて周辺部が暗くなる「周辺減光ムラ」を除去する。具体的には、予め撮影して得られる補正用チャート画像データを用いて撮影画像データに含まれる上記２つのムラを補正することが行なわれる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２２２６６９号公報
【非特許文献】
【０００５】
【非特許文献１】Ｌｏｗｅ、 Ｄａｖｉｄ  Ｇ．  ”Ｏｂｊｅｃｔ  ｒｅｃｏｇｎｉｔｉｏｎ  ｆｒｏｍ  ｌｏｃａｌ  ｓｃａｌｅ−ｉｎｖａｒｉａｎｔ  ｆｅａｔｕｒｅｓ．”  Ｃｏｍｐｕｔｅｒ  ｖｉｓｉｏｎ，  １９９９．  Ｔｈｅ  ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ｓｅｖｅｎｔｈ  ＩＥＥＥ  ｉｎｔｅｒｎａｔｉｏｎａｌ  ｃｏｎｆｅｒｅｎｃｅ  ｏｎ．  Ｖｏｌ．  ２．  Ｉｅｅｅ，  １９９９．
【非特許文献２】Ｂａｙ，  Ｈｅｒｂｅｒｔ，  Ｔｉｎｎｅ  Ｔｕｙｔｅｌａａｒｓ，  ａｎｄ  Ｌｕｃ  Ｖａｎ  Ｇｏｏｌ．  ”Ｓｕｒｆ：  Ｓｐｅｅｄｅｄ  ｕｐ  ｒｏｂｕｓｔ  ｆｅａｔｕｒｅｓ．”  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ-ＥＣＣＶ  ２００６．  Ｓｐｒｉｎｇｅｒ  Ｂｅｒｌｉｎ  Ｈｅｉｄｅｌｂｅｒｇ，  ２００６．  ４０４−４１７．
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１に開示されている方法は、補正用チャート画像データの撮影と、被写体の撮影との間においてカメラに取り込まれる光量が不変であることが前提条件となっている。このため、ストロボ撮影におけるストロボの発光精度による発光ムラが存在する場合や、撮影中に絞りを調整する場合において所定の絞り値に設定した際の絞り径にムラが存在する場合に対応していない（以下、これらをショットムラと呼ぶ）。そのような場合で分割撮影した画像データを合成すると、合成した画像データに境界線が発生してしまうという問題がある。
【課題を解決するための手段】
【０００７】
本発明に係る画像処理装置は、被写体を分割撮影して得られた複数の分割画像データを取得する取得手段と、前記取得した複数の分割画像データのうち、基準画像データと前記基準画像データに隣接する隣接画像データとを、設定情報に基づいて選択する選択手段と、前記選択手段で選択された前記基準画像データと前記隣接画像データとの重複領域における対応点を検出する検出手段と、前記検出した対応点に基づいて前記隣接画像データの明度補正を行なう補正手段と、前記選択手段と前記検出手段と前記補正手段との処理を前記設定情報に基づいて繰り返し行なう制御手段とを有し、前記設定情報は、明度補正処理済みの分割画像データを基準画像データとして用い、明度補正処理がされていない分割画像データを隣接画像データとして用いることを示す設定を含むことを特徴とする。
【発明の効果】
【０００８】
本発明は、隣接する分割画像データ間のショットムラを低減することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】実施例における撮影システムの構成を示す模式図である。
【図２】ショットムラが生じることを説明する模式図である。
【図３】実施例１における画像処理装置の構成を示すブロック図である。
【図４】実施例１における画像処理の処理フローチャート図である。
【図５】実施例１における明度補正処理の処理フローチャート図である。
【図６】実施例１における明度補正処理の内容を示す模式図である。
【図７】実施例１における明度補正処理の内容を示す模式図である。
【図８】実施例１におけるあおり補正処理の効果を示す模式図である。
【図９】実施例２により得られる効果を説明する模式図である。
【図１０】実施例２における画像処理装置の構成を示すブロック図である。
【図１１】実施例２における距離情報算出部の処理フローチャート図である。
【図１２】実施例２における距離情報の生成処理の処理フローチャート図である。
【図１３】実施例２における距離情報の生成処理の処理内容を示す模式図である。
【図１４】実施例２における距離情報の補正処理の処理フローチャート図である。
【図１５】実施例２における距離情報の補正処理の処理内容を示す模式図である。
【図１６】実施例２における処理コマンド生成部の処理フローチャート図である。
【図１７】実施例２における処理経路の生成処理の処理フローチャート図である。
【図１８】実施例２における処理経路の生成処理の処理内容を示す模式図である。
【図１９】実施例２における処理コマンドの生成処理の処理フローチャート図である。
【図２０】実施例２における明度補正部の処理フローチャート図である。
【図２１】実施例３における処理コマンド生成部の処理フローチャート図である。
【図２２】実施例３における処理コマンドのグループの生成処理の処理フローチャート図である。
【図２３】実施例３における明度補正部の処理フローチャート図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施形態は本発明を限定するものではなく、また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成については、同じ符号を付して説明する。
【００１１】
［実施例１］
本実施例では、文化財のアーカイブを目的とし、被写体である文化財を分割撮影する場合を例に挙げて説明する。分割撮影とは、被写体全体を１枚の撮影画像として撮影するのではなく、被写体を複数の領域に分割し、この分割した領域をそれぞれ撮影することを意味する。また、分割撮影された個々の画像のことを分割画像と呼び、この分割画像を示すそれぞれの画像データのことを分割画像データと呼ぶ。本実施例は、分割撮影して得られた分割画像データを合成して合成画像データを得る例を説明する。
【００１２】
＜＜装置構成＞＞
図１は、本実施例における撮影システムの構成を示す図である。図１の撮影システムは、カメラ１０１、電動雲台１０２、画像処理装置１０３を有する。撮像装置本体であるカメラ１０１が電動雲台１０２に載置されることによって、電動雲台１０２の回転によりカメラ１０１本体をパン（ＰＡＮ）、チルト（ＴＩＬＴ）させて撮影対象物である被写体１０４を撮影する。画像処理装置１０３は、カメラ１０１で撮影して得られた撮影画像データ群を合成処理し、超高解像度画像データを生成する画像処理装置である。また、本実施例では、画像処理装置１０３は、カメラ１０１の動作、および電動雲台１０２の回転動作を制御する制御装置としても機能する。もちろん、画像処理装置と制御装置とが別装置で構成されていてもよい。被写体１０４は、幅Ｗ、高さＨの大きさからなり、カメラ１０１から距離Ｌの位置に設置されている。
【００１３】
＜＜明度補正処理の概要＞＞
図２（ａ）に、本実施例における撮影システムによって撮影された分割画像の一例を示す。図２（ａ）は、被写体をｘ方向に５分割、ｙ方向に３分割撮影した計１５枚の分割画像を示す。分割画像間において斜線で示す重複領域が生じる。尚、カメラ１０１は電動雲台１０２により、パンおよびチルトをさせながら分割画像データを取得しているので、得られる分割画像データにあおりがかかっている。分割画像データにかかっているあおりは、後述するあおり補正部３０４によって補正される。あおり補正処理の詳細については、後述する「あおり補正処理の詳細」の章で述べる。尚、電動雲台１０２が、被写体に対して平行移動する機能を有し、カメラ１０１は電動雲台１０２により、平行移動させながら分割画像データを取得してもよい。その場合、あおり補正部３０４によるあおり補正処理は不要とすることができる。
【００１４】
特許文献１では、図２（ｂ）で示される照明ムラ及び図２（ｃ）で示される周辺減光ムラを補正することで、合成画像データ全体で照明ムラを含まず、かつ、画像データの間のつなぎ目が良好な合成結果を得ている。
【００１５】
図２（ｂ）は、被写体の反射特性が全体に亘り均一（例えば被写体が均一な白色面）であり、かつ、撮影画像データに周辺減光むらがない場合に、撮影時の照明むらによって撮影画像データに発生する輝度むら例を示す。照明むらがある場合、画像データの並びに応じて画像データの輝度が低下するため、合成後の画像データも照明むらを有する画像データになる。
【００１６】
図２（ｃ）は、被写体が均一な白色面であり、かつ、撮影画像データに照明むらが発生しない場合に、レンズ特性に応じて撮影画像データに発生する周辺減光むら例を示す。つまり、撮影画像データのそれぞれの中央部に比べて周辺部の輝度が低下する輝度むらが発生し、重複領域において輝度の不連続が発生する。
【００１７】
図２（ｄ）は、被写体の反射特性が全体に亘り均一（例えば被写体が均一な白色面）であり、かつ特許文献１で開示されている技術により撮影画像データに周辺減光ムラ及び撮影時の照明ムラを低減させた場合を示している。この場合において、ストロボ撮影におけるストロボの発光精度によって撮影画像データに発生するショットムラの例を示す。本実施例における明度補正処理では、このようなショットムラを補正して、補正後の画像データを合成する。これにより、画像データ全体でショットムラを含まず、かつ、画像データの間の繋ぎ目が良好な合成結果を得ることができる。
【００１８】
＜＜画像処理装置の構成＞＞
図３は、本実施例における、画像処理装置１０３の構成を示すブロック図である。本実施例における画像処理装置１０３は、入力部３０１、面内ムラ補正部３０２、明度補正部３０３、あおり補正部３０４、合成部３０５、出力部３０６、メモリ３０７を有する。
【００１９】
入力部３０１は、例えば不図示のＵＳＢやＩＥＥＥ１３９４などのシリアルバスを介してカメラ１０１で撮像された画像データを入力する。面内ムラ補正部３０２は、入力部３０１から入力した画像データの面内ムラを補正して面内ムラ補正画像データを生成する。明度補正部３０３は、面内ムラ補正部３０２で面内ムラを補正した面内ムラ補正画像データに対して、明度補正処理を行ない、明度補正処理済みの分割画像データである明度補正画像データを生成する。
【００２０】
あおり補正部３０４は、明度補正部３０３で生成された明度補正画像データに対して、あおりを補正して平面に射影したあおり補正画像データを生成する。合成部３０５は、あおり補正部３０４で補正されたあおり補正画像データを合成して合成画像データを生成する。
【００２１】
出力部３０６は、合成部３０５で合成された合成画像データを記録メディアやネットワークに接続されたサーバ装置などに出力する。ＲＡＭなどのメモリ３０７は、画像データなど各種データ、演算処理の途中経過、上記制御情報などを格納するためのメモリである。バス３０８は、上述の各処理部をつなぐバスである。
【００２２】
尚、画像処理装置の構成については、上記以外にも、様々な構成要素が存在するが、本実施例の主眼ではないので、その説明は省略する。
【００２３】
＜＜画像合成処理のフローチャート＞＞
図４は本実施例における画像合成処理を示すフローチャート図である。図４に示すフローチャートは、画像処理装置の不図示のＲＯＭやＨＤＤなどに格納されたプログラムをＣＰＵがＲＡＭに一時的に読み出し、実行することでＣＰＵが図３に示す各部として機能することにより実現される。
【００２４】
ステップＳ４０１で入力部３０１は、カメラ１０１で撮影された分割画像データを入力する。ステップＳ４０１では被写体を分割撮影して得られた複数枚の分割画像データを入力する。
【００２５】
ステップＳ４０２で面内ムラ補正部３０２は、ステップＳ４０１で入力された分割画像データに対して面内ムラ補正処理を適用して面内ムラ補正画像データを生成する。ステップＳ４０２を実施するにあたり、具体的には、特許文献１で開示されている方法を適用することができる。ステップＳ４０２の処理を実施することで、図２（ｄ）に示されるように、面内の輝度ムラが解消され、分割画像間のショットムラが存在し得る面内ムラ補正画像データを生成することができる。
【００２６】
ステップＳ４０３で明度補正部３０３は、ステップＳ４０２で生成された面内ムラ補正画像データに対して明度補正処理を適用して明度補正画像データを生成する。明度補正処理の詳細については「明度補正処理の詳細」の章で述べる。
【００２７】
ステップＳ４０４であおり補正部３０４は、ステップＳ４０３で生成された明度補正画像データに対してあおり補正処理を適用してあおり補正画像データを生成する。あおり補正処理の詳細については、「あおり補正処理の詳細」の章で述べる。
【００２８】
ステップＳ４０５で合成部３０５は、ステップＳ４０４で生成された複数のあおり補正画像データを合成して合成画像データを生成する。本ステップを実施するにあたり、具体的には特許文献１で開示されている方法を適用することができる。
【００２９】
ステップＳ４０６で出力部３０６は、合成画像データを画像処理装置１０３より外部に出力する。なお、ステップＳ４０６では、合成画像データを画像処理装置１０３の内部、すなわち、メモリ３０７に出力する処理でもよい。
【００３０】
＜＜明度補正処理の詳細＞＞
図５は本ステップＳ４０３に示した明度補正処理の詳細を示すフローチャート図である。
【００３１】
ステップＳ５０１で明度補正部３０３は、メモリ３０７に予め記憶されている設定情報と、複数の面内ムラ補正画像データを入力する。そして、設定情報に基づいて基準画像データと基準画像データに隣接する隣接画像データとの２つの画像データを明度補正処理に用いる画像データとして設定する。本実施例において「基準画像データ」とは、明度補正を行なう際の基準となる画像データのことである。本実施例においては、明度補正は隣接する２つの画像データを用いて補正を行なう。このとき、基準画像データの明度に隣接画像データの明度を合わせる補正を行なう。本実施例では、この「基準画像データ」が面内ムラ補正画像データの中で順次伝播していくような処理を行なう。その際に、設定情報に基づいて、「基準画像データ」として、明度補正済みの明度補正画像データを用いるのか、それとも明度補正がされていない面内ムラ補正画像データを用いるのかが決定される。
【００３２】
図６を用いて、設定情報について説明する。図６は被写体をｘ方向に５分割、ｙ方向に３分割撮影した計１５枚の面内ムラ補正画像データを示す。各面内ムラ補正画像データには識別番号が設定されている。設定情報は、基準画像データと隣接画像データとこれらの画像データを用いた明度補正の結果出力される出力画像データ（明度補正画像データ）との対応を識別情報を用いて表したものである。
【００３３】
基準画像データに、明度補正画像データではなく、面内ムラ補正画像データを設定するときの設定情報の記述方法を示す。図６において、識別番号Ｐ８が設定されている面内ムラ補正画像データを基準画像データに設定する場合、黒の矢印で示されている識別番号Ｐ５が設定されている面内ムラ補正画像データが隣接画像データに設定される。同様に識別番号Ｐ７、Ｐ９、Ｐ１１の面内ムラ補正画像データがそれぞれ隣接画像データに設定されることになる。ここでは、識別番号Ｐ５の面内ムラ補正画像データが隣接画像データに設定されている例を用いて説明する。設定情報においては、隣接画像データＰ５に対して明度補正処理が行われて生成された明度補正画像データには、隣接画像データと同じ識別番号Ｐ５が設定される。以上のことが設定情報において以下のように表される。
【００３４】
＜設定１＞
基準画像データ：面内ムラ補正画像データＰ８
隣接画像データ：面内ムラ補正画像データＰ５
出力画像データ：明度補正画像データＰ５
上記の意味は、基準画像データとして面内ムラ補正画像データＰ８を用いて隣接画像データである面内ムラ補正画像データＰ５に明度補正処理を行ない、生成された明度補正画像データ（出力画像データ）を明度補正画像データＰ５と呼ぶということである。
【００３５】
一方、基準画像データに、面内ムラ補正画像データではなく、明度補正画像データを設定するときの設定情報の記述方法を示す。識別番号Ｐ５が設定されている明度補正画像データを基準画像データに設定する場合、図６においてＰ５から矢印が出力されている識別番号Ｐ６が設定されている面内ムラ補正画像データが隣接画像データに設定される。同様に、識別番号Ｐ２、Ｐ４の面内ムラ補正画像データがそれぞれ隣接画像データに設定されることになる。ここでは、識別番号Ｐ６の面内ムラ補正画像データが隣接画像データに設定されている例を用いて説明する。隣接画像データＰ６に対して明度補正処理が行われて生成された明度補正画像データには、隣接画像データと同じ識別番号Ｐ６が設定される。以上のことが設定情報において以下のように表される。
【００３６】
＜設定２＞
基準画像データ：明度補正画像データＰ５
隣接画像データ：面内ムラ補正画像データＰ６
出力画像データ：明度補正画像データＰ６
この例は、基準画像データが、面内ムラ補正画像データではなく明度補正画像データとなっている例である。
【００３７】
以上のように、設定情報には面内ムラ補正画像データを基準画像データとして用いて隣接画像データの明度を補正する設定と、明度補正画像データを基準画像データとして用いて隣接画像データの明度を補正する設定とが含まれるのが特徴である。
【００３８】
図５のステップＳ５０１では、明度補正部３０３はこのような設定情報に基づいて基準画像データと隣接画像データとを選択する。なお、設定情報には、分割画像群の中の基点（出発点）となる画像を基準画像データとする設定が最初にそれぞれ含まれており、その後は図６に示すような矢印の濃い順にそれぞれの設定がなされているものとする。例えば、上記の＜設定１＞の設定を含む、識別番号Ｐ８を基準画像データとする４つの設定が最初に含まれており、その後に＜設定２＞の設定を含む識別番号Ｐ５を基準画像データとする３つの設定が含まれるものとする。ステップＳ５０１では、このように複数の設定が含まれる設定情報の中から１つの設定を用いて、基準画像データと隣接画像データとを選択するものとする。
【００３９】
次に、ステップＳ５０２で明度補正部３０３は、ステップＳ５０１で選択した、設定情報に設定されている基準画像データと隣接画像データとの２つの画像データの重複領域における画像データの対応点の検出ができたかを判定する。対応点が検出された場合はステップＳ５０３へ処理を進め、対応点が検出されなかった場合はステップＳ５０４へ処理を進める。
【００４０】
対応点は、基準画像データから検出される複数の特徴点と、隣接画像データから検出される複数の特徴点のうち、２つの画像データの対応する領域から検出された特殊な特徴点である。特徴点を検出する方法および画像データ間の特徴点から対応点を検出する方法としては、非特許文献１（ＳＩＦＴ：Ｓｃａｌｅ  Ｉｎｖａｒｉａｎｔ  Ｆｅａｔｕｒｅ  Ｔｒａｃｋｉｎｇ）を用いることができる。尚、対応点の検出方法は上記に限らず、２つの画像データから対応点を検出できるものならば所望の方法をとることができる。そのような方法として、非特許文献２（ＳＵＲＦ：Ｓｐｅｅｄｅｄ  Ｕｐ  Ｒｏｂｕｓｔ  Ｆｅａｔｕｒｅｓ）があげられる。
【００４１】
ステップＳ５０３で明度補正部３０３は、ステップＳ５０２において検出された対応点に基づいて、基準画像データの明るさに隣接画像データの明るさを合わせる明度補正処理を行ない、明度補正画像データを生成する。複数の対応点Ｍｎ（０＜ｎの整数）があるとき、以下の式１に示すように、明度補正推定値Ｃｏｒｒｅｃｔ１を算出する。
【００４２】
【数１】
0006478639.tif 000002
【００４３】
式１において、Ｓは基準画像データ、Ａは隣接画像データ、ｘ、ｙは画像データ上の座標値、ｄ１・ｄ２・ｄ３・ｄ４は対応点の座標値、ｍ、ｎはブロック画像データの範囲、ｂｋ１は第一のブロック画像データ、ｂｋ２は第二のブロック画像データを示す。Ｃは明度補正係数、Ｃｏｒｒｅｃｔ３はブロック画像データの差分絶対値和、Ｃｏｒｒｅｃｔ２はＣｏｒｒｅｃｔ３が最小になるときの明度補正係数Ｃ、Ｃｏｒｒｅｃｔ１は明度補正推定値であり、Ｃｏｒｒｅｃｔ２の平均値である。ブロック画像データは対応点の近傍の領域のデータである。
【００４４】
算出された明度補正推定値Ｃｏｒｒｅｃｔ１を隣接画像データＡに適用して以下の式２に示すように明度補正画像データＣＡを算出する。
【００４５】
【数２】
0006478639.tif 000003
【００４６】
このように、明度補正画像データは、基準画像データと隣接画像データとの対応点に基づいて得られた明度補正推定値を隣接画像データに適用することで得られた画像データであり、隣接画像データの明度補正が行なわれた画像データとなる。
【００４７】
一方、ステップＳ５０４で明度補正部３０３は、ステップＳ５０１で設定された隣接画像データに隣接する明度補正画像データが存在するか判定する。判定の結果、存在する（明度補正画像データが検出される）場合はＳ５０５へ処理を進め、存在しない（明度補正画像データが検出されない）場合はＳ５０６へ処理を進める。この処理の詳細については後述する。
【００４８】
ステップＳ５０５で明度補正部３０３は、ステップＳ５０４で検出された明度補正画像データを新たに基準画像データとして設定する。そして、ステップＳ５０２に戻り、この新たに設定した基準画像データ（明度補正画像データ）を用いて再度ステップＳ５０２で対応点の検出ができるか否かの判定を行なう。すなわち、基準画像データとして検出された明度補正画像データを再選択して再度の対応点検出の判定を行なう。
【００４９】
ステップＳ５０６で明度補正部３０３は、基準画像データと隣接画像データとの重複領域に基づいて、明度補正処理を行ない、明度補正画像データを生成する。すなわち、ステップＳ５０１で設定された隣接画像データに隣接する明度補正画像データが存在しない場合には、対応点が検出できていないものの、重複領域に基づく明度補正処理を行なうものとする。尚、ステップＳ５０６に処理が進んだときには対応点がある明度補正画像データがないということなので、異常終了として処理を終了させてもよいものとする。
【００５０】
ステップＳ５０７で明度補正部３０３は、設定情報に含まれている設定の処理手順が全て行なわれたを判定する。処理手順が全て行なわれていたら処理を終了して、行なわれていなければステップＳ５０１へ処理を進める。
【００５１】
以上が図５で示される処理フローチャート図の処理の説明である。ここで、図７を用いてステップＳ５０２、Ｓ５０４およびＳ５０５の処理の説明を補足する。図７は図６の一部の面内ムラ補正画像データ（識別番号Ｐ５、Ｐ６、Ｐ８、Ｐ９が設定される画像データ）を示している。
【００５２】
ステップＳ５０２において、識別番号Ｐ６が設定されている面内ムラ補正画像データについては下記の設定がなされているものとする。従って、明度補正部３０３は基準画像データである明度補正画像データＰ５と隣接画像データである面内ムラ補正画像データＰ６との間の重複領域における対応点を検出することを試みる。
【００５３】
＜設定３＞
基準画像データ：明度補正画像データＰ５
隣接画像データ：面内ムラ補正画像データＰ６
出力画像データ：明度補正画像データＰ６
しかし、ここではステップＳ５０２において明度補正画像データＰ５と面内ムラ補正画像データＰ６との間には対応点が検出されないとする。そこで、ステップＳ５０４において明度補正部３０３は、隣接画像データである面内ムラ補正画像データＰ６と対応点を取りうる画像データを再検索する。例えば、設定情報には図６に示すような各面内ムラ補正画像データの隣接関係を示す情報が含まれており、明度補正部３０３は、隣接関係を示す情報から面内ムラ補正画像データＰ６に隣接する面内ムラ補正画像データを特定する。そして、明度補正部３０３は、これまで処理した設定情報の設定を参照して、その特定した面内ムラ補正画像データを示す識別番号が出力画像データに含まれているものがあるかを判定することで再検索を行なう。ステップＳ５０５においては、明度補正画像データＰ９が再検索により検出されているものとする。そこで、明度補正部３０３は、設定情報に含まれる上記の＜設定３＞を以下の＜設定４＞のように書き換える。
【００５４】
＜設定４＞
基準画像データ：明度補正画像データＰ９
隣接画像データ：面内ムラ補正画像データＰ６
出力画像データ：明度補正画像データＰ６
以上のように設定情報を書き換えたので、その後のステップＳ５０２において、改めて新たな基準画像データである明度補正画像データＰ９と隣接画像データである面内ムラ補正画像データＰ６との間の重複領域における対応点を検出することを試みる。
【００５５】
このように、本実施例では、予め設定情報に記述されている２つの画像データで対応点が検出されない場合に、対応点を検出し得る画像データを用いて対応点の検出を試みる。
【００５６】
＜＜あおり補正処理の詳細＞＞
次に、ステップＳ４０４のあおり補正の詳細について説明する。あおり補正は、補正対象の被写体１０４のサイズ、カメラ１０１と被写体１０４との距離、カメラ１０１のセンササイズ、焦点距離を用いる。まず、分割画像データＩｍａｇｅ（）の生成過程は以下の式３で近似できる。
【００５７】
【数３】
0006478639.tif 000004
【００５８】
ここで、 Ｐｏｓ（ｘ，ｙ，ｚ）は被写体１０４の３次元的な位置を示しており、被写体のサイズやカメラとの距離から決定する。Ｖｉｅｗは、視点変換行列であり、カメラ１０１の位置、回転角度情報を示す。Ｐｒｏｊは、３次元から２次元への射影行列であり、カメラのセンササイズと焦点距離から決定する。Ｓｃｒｅｅｎ（）は、座標系を変換するのに用いられる。Ｘｏ、Ｙｏは二次元的な画素配置である。一方、被写体を正面から撮影した画像データＩｍａｇｅＶ（）の生成過程も以下の式４で近似できる。
【００５９】
【数４】
0006478639.tif 000005
【００６０】
ＶｉｅｗＶは、視点変換行列であり、被写体を正面から撮影した際のカメラ位置、撮影方向を示す。後のパラメータは、式３と同じである。ここで、式３と式４とをマージすることにより、変換式ＣｏｎｖＶｉｅｗ（）を算出できる。
【００６１】
【数５】
0006478639.tif 000006
【００６２】
これによって被写体を正面から撮影した画像データ、すなわち、あおり補正後の画像データを得ることができる。あおり補正処理の結果を図８に示す。図８（ａ）は分割画像データで、両端の画像データはあおりがついた状態で撮影され、台形に歪んでいるが、中央の画像データは正面から撮影されており、歪みがない。図８（ｂ）があおり補正後の画像データであり、両端の画像データの台形歪みが解消されている。
【００６３】
＜＜実施例１の効果＞＞
以上説明したように、本実施例では分割画像データにショットムラが存在する場合において、撮影画像データのショットムラを補正したのちに、補正後の画像データを合成する。これにより、画像データ全体でショットムラを含まず、かつ、画像データの間の繋ぎ目が良好な合成結果を得ることができる。このように、隣接する分割画像データ間の不自然な境界線模様を抑圧することができるので、より好適に合成した画像データの視聴が可能となる。
【００６４】
尚、本実施例では、撮影画像データの画素値から明度補正推定値を算出する例を説明した。しかし、ｓＲＧＢやＡｄｏｂｅＲＧＢなど標準的なＲＧＢ空間の画像データであれば、画像データをＣＩＥＬａｂ値やＣＩＥＸＹＺ値などに変換して、ＣＩＥＬａｂ値やＣＩＥＸＹＺ値などから明度補正推定値を算出してもよい。なお、ＣＩＥＸＹＺ値から得た明度補正推定値を被写体の画像データに適用する場合、ＣＩＥＸＹＺ値に変換した被写体の画像データに明度補正処理を施し、明度補正処理後のＣＩＥＸＹＺ値をＲＧＢ値に変換する。
【００６５】
尚、本実施例では、カメラ１０１は電動雲台１０２に載置されて、カメラ１０１をパン・チルトさせながら分割画像データを取得した。しかし、本実施例の画像処理装置は上記のシステムの構成に限定されることなく、分割画像データ間で重複領域が生じる他の撮影方法により取得された分割画像データに対して適応することができる。そのような撮影方法にパノラマ画像データを生成するためのパノラマ撮影方法があげられる。
【００６６】
［実施例２］
本実施例では、分割画像データに基準となる画像データと他の画像データとの距離情報を用いて明度補正を行なう。これにより実施例１よりも高精度な明度補正が可能となる。
【００６７】
本実施例においても図１で示される撮影システムを用いて分割画像データを取得する。取得された分割画像データは、図２（ａ）に示されるような構成を持つ。ただし、本実施例では、説明の便宜上、図２（ａ）に示すような、被写体をｘ方向に５分割、ｙ方向に３分割撮影した計１５枚の分割画像ではなく、被写体をｘ方向に５分割、ｙ方向に６分割撮影した計３０枚の分割画像を用いるものとする。また、画像処理装置１０３によって行われる画像処理は、図４に示される処理フローチャートに沿って行われる。本実施例では、図４に示される明度補正処理（Ｓ４０３）において行われる処理を中心に説明する。以下では、実施例１と重複する内容は説明を省略して、実施例２における特有の構成・処理についてのみ説明を行なう。
【００６８】
＜＜分割画像データ間の補正処理における距離情報を用いる効果＞＞
図９は本実施例により得られる効果を示す模式図である。図９（ａ）は、本実施例において入力される５×６の画像データ配列において、図中のＰ１５で示される画像データの位置（ｒ３行ｃ４列目の位置）を基点（出発点）として、距離情報を用いずに経路設定した場合の処理経路を示している。実施例１で説明したように、基準画像データが基点の分割画像データから、順次変更されながら明度補正処理が行なわれる。この基準画像データが順次変更される様子を本実施例では経路として説明する。尚、距離情報の詳細については「距離情報算出部の詳細」で後述する。図９（ｂ）は、図９（ａ）と同じ条件で距離情報を用いて経路設定した場合の処理経路を示している。
【００６９】
図９（ａ）では、距離情報を用いないため処理経路が長く最長で９回の処理になっている（Ｐ１５⇒Ｐ９、Ｐ９⇒Ｐ３、Ｐ３⇒Ｐ２、Ｐ２⇒Ｐ１、Ｐ１⇒Ｐ０、Ｐ０⇒Ｐ６、Ｐ６⇒Ｐ１２、Ｐ１２⇒Ｐ１８、Ｐ１８⇒Ｐ２４の９回）。これに対して、図９（ｂ）では、距離情報を用いるため処理経路を短く最長で５回の処理になっている（Ｐ１５⇒Ｐ１４、Ｐ１４⇒Ｐ１３、Ｐ１３⇒Ｐ１２、Ｐ１２⇒Ｐ１８、Ｐ１８⇒Ｐ２４の５回）。
【００７０】
処理経路が長いと、補正処理において発生した補正の累積誤差が大きくなる。例として画像データのビット深度が８であり、中間調（１２７／２５５）の輝度値を補正する場合をあげる。一回の補正処理において補正誤差ＣＥ＝０．１％が発生すると、図９（ａ）で行われる９回目の補正処理において伝播された累積誤差ＡＥは約０．９％となる。また、補正量ＣＡが５％であるとすると、出力される画素値ＯＩは１階調以上ずれる。
【００７１】
ＡＥ＝（１＋ＣＥ）9≒１．００９＝０．９％    （式６）
ＯＩ＝１２７×（１＋ＣＡ±ＣＥ）9≒１３３．３５±１．１４（階調）  （式７）
処理経路が短いと、補正処理において発生した補正の累積誤差が小さくなる。上と同じ例をあげると、図９（ｂ）で行われる５回目の補正処理において伝播された累積誤差ＡＥは約０．５％となる。また、出力される画素値ＯＩのずれは１階調未満となる。
【００７２】
ＡＥ＝（１＋ＣＥ）5≒１．００５＝０．５％    （式８）
ＯＩ＝１２７×（１＋ＣＡ±ＣＥ）5≒１３３．３５±０．６３（階調）  （式９）
このように分割画像データ間の補正処理において、距離情報を用いて経路設定することで処理精度を向上させることが可能である。
【００７３】
＜＜明度補正処理（Ｓ４０３）の詳細＞＞
図１０は本実施例における画像処理装置１０３の構成を示す図である。図２で説明した実施例１と同様の構成については同じ符号を付し、説明を省略することとする。本実施例における画像処理装置１０３は、実施例１の構成に加えて、基点画像位置設定部１００１、距離情報算出部１００２、処理コマンド生成部１００３を有する。また、本実施例の明度補正部１００４は、距離情報に基づいて生成された処理コマンドに基づいて明度補正を実行する。
【００７４】
基点画像位置設定部１００１は、複数の分割画像データのうち、処理経路を設定する際の基点（出発点）となる基点画像位置を設定する。なお、この分割画像データは、実施例１と同様に面内ムラ補正が行なわれた画像データのことであるが、ここでは簡略化のため、単に分割画像データとして説明を行なうものとする。基点画像位置設定部１００１は、分割画像データの配列数から、中心に位置する画像データの位置を基点画像位置に設定する。具体的には、５×６の画像データ配列が入力される場合、ｒ３行ｃ３列目のＰ１４の位置（あるいはｒ３行ｃ４列目のＰ１５の位置）の画像データの位置を基点画像位置に設定する。尚、上記の方法以外にも、メモリ３０７に予め記憶されている基点画像位置を設定してもよいものとする。また、図３において不図示のユーザー入力部から、ユーザーによって入力される基点画像位置を設定してもよいものとする。
【００７５】
距離情報算出部１００２は、入力される基点画像位置、分割画像データの行列のサイズ、及び分割画像データの重複領域における対応点の数とに基づいて距離情報を算出する。本処理部が算出する距離情報により、後段の処理コマンド生成部１００３において、処理経路が構築される。この構築される処理経路は、基本的には基点画像位置からの距離に基づくが、対応点がなく補正処理ができない経路は回避される。そのように構築された処理経路によって、明度補正部１００４は、明度補正処理を確実に実行することができる。
【００７６】
処理コマンド生成部１００３は、入力される基点画像位置と距離情報とに基いて処理経路を算出して、処理経路に基づいて明度補正処理を行なうための処理コマンドを生成する。尚、処理コマンドの詳細については「処理コマンド生成部の詳細」にて後述する。
【００７７】
明度補正部１００４は、入力される処理コマンドに基づいて、明るさの基準となる基準画像データと基準画像データに隣接する隣接画像データとを入力して、明度補正処理を行ない、基準画像データの明るさに基づいて、隣接画像データの明るさを補正する。尚、明度補正処理の詳細については「明度補正部の詳細」にて後述する。
【００７８】
以下では、距離情報算出部１００２、処理コマンド生成部１００３、明度補正部１００４の各処理部の詳細を説明する。
【００７９】
＜＜距離情報算出部の詳細＞＞
図１１は本実施例における距離情報算出部１００２における処理の例を示すフローチャート図である。なお、本実施例におけるフローチャートの処理についても、実施例１と同様にＲＡＭに読み出されたプログラムをＣＰＵが実行することで実現されるものとする。
【００８０】
ステップＳ１１０１において距離情報算出部１００２は、距離情報の生成処理を行なう。すなわち、入力される基点画像位置と、分割画像データの行列のサイズとに基づいて距離情報を生成する。
【００８１】
ステップＳ１１０２において距離情報算出部１００２は、ステップＳ１１０１で生成された距離情報の補正処理を行なう。すなわち、入力される分割画像データの重複領域における対応点の数に基づいて、生成された距離情報を補正する。
【００８２】
以下では、距離情報の生成処理Ｓ１１０１、距離情報の補正処理Ｓ１１０２の各処理の詳細を説明する。
【００８３】
＜＜距離情報の生成処理（Ｓ１１０１）の詳細＞＞
図１２は本実施例における距離情報の生成処理を示すフローチャート図である。図１３は図１２で示される処理フローの各処理の処理内容を示す模式図である。図１２と図１３を用いて距離情報の生成処理を説明する。
【００８４】
ステップＳ１２０１で距離情報算出部１００２は、入力される分割画像データの行列のサイズに基づいて隣接情報を算出する。分割画像データの行例のサイズとは、本実施例では、前述のように５×６の画像データ配列のことである。隣接情報は、分割画像データ同士の隣接状態を示すものである。図１３（ａ）のように、ある画像データの上下左右に位置する画像データ同士は隣接して、それ以外は隣接しない状態を表す。例として、図中のＰ１５で示される画像データの位置（ｒ３行ｃ４列目の位置）は、次のそれぞれの画像データの位置に隣接している。すなわち、Ｐ９（ｒ２行ｃ４列目の位置）、Ｐ１４（ｒ３行ｃ３列目の位置）、Ｐ１６（ｒ３行ｃ５列目の位置）、Ｐ２１（ｒ４行ｃ４列目の位置）で示されるそれぞれの画像データの位置に隣接している。これを図中では、Ｐ１５←→Ｐ９、Ｐ１５←→Ｐ１４、Ｐ１５←→Ｐ１６、Ｐ１５←→Ｐ２１、のように両矢印で隣接している状態を表す。
【００８５】
なお、図１３（ａ）で表される隣接情報を表１で示される隣接行列でも表すことができる。表１の縦方向が行を、横方向が列を表している。隣接行列のサイズは、５×６の画像データ配列の場合（５×６）×（５×６）＝３０×３０になる。表１において、行列の要素が１で表される、行で特定される画像データと列で特定される画像データとが隣接している状態であり、∞で表されるものが隣接されていない状態を表してる。例として、ｒ３−ｃ４行目の各要素のうち、ｒ２−ｃ４列目の要素、ｒ３−ｃ３列目の要素、ｒ３−ｃ５列目の要素、ｒ４−ｃ４列目の要素は、１でありそれ以外∞である。これは図１３（ａ）におけるＰ１５で示される画像データの位置（ｒ３行ｃ４列目の位置）は、Ｐ９、Ｐ１４、Ｐ１６、Ｐ２１で示されるそれぞれの画像データの位置に隣接していることに対応している。尚、Ｐ９はｒ２行ｃ４列目の位置であり、Ｐ１４はｒ３行ｃ３列目の位置であり、Ｐ１６はｒ３行ｃ５列目の位置であり、Ｐ２１はｒ４行ｃ４列目の位置である。つまり、ｒ３行ｃ４列に位置するＰ１５の画像データに注目すると、表１のｒ３−ｃ４行目の各要素のうち、１の値が入っている列の列名で特定される画像データが、このＰ１５の画像データと隣接していることを示している。つまり、表１は、行で特定される画像データと、列で特定される画像データとが隣接しているかを示している表である。
【００８６】
【表１】
0006478639.tif 000007
【００８７】
表１に示すような隣接行列は以下の式１０で求めることができる。式１０において、隣接行列ａｄｊ_ｍａｔ（ｍ,ｎ）はｍ行ｎ列目の隣接行列の要素値、ｉ１、ｉ２は分割画像データの行列のサイズの行数、ｊ１、ｊ２は分割画像データの行列のサイズの列数、＆＆は論理積、｜｜は論理和をそれぞれ表す。本実施例では、隣接行列のサイズは３０×３０であり、ｍ、ｎは０≦（ｍ、ｎ）＜３０での範囲で値を取り得る整数である。また、ｉ１、ｉ２は式１０で求められるものであるが、０から始まる隣接行列の要素に対応して０≦（ｉ１、ｉ２）＜４での範囲で値を取り得る整数である。同様に、ｊ１、ｊ２も０≦（ｊ１、ｊ２）＜５での範囲で値を取り得る整数となる。
【００８８】
【数６】
0006478639.tif 000008
【００８９】
ｉ１＝ｎ／分割画像データの行列の列のサイズ（余りは切り捨て）、
ｉ２＝ｍ／分割画像データの行列の列のサイズ（余りは切り捨て）、
ｊ１＝ｍｏｄ（ｎ、分割画像データの行列の列のサイズ）、
ｊ２＝ｍｏｄ（ｍ、分割画像データの行列の列のサイズ）  （式１０）
例えば、式１０に基づいて表１のｒ３−ｃ４行（ｍ＝１５）のうちの、ｒ２−ｃ４列（ｎ＝９）の要素を例に挙げる。このとき、ｉ１は１、ｉ２は２、ｊ１は３、ｊ２は３が得られる。このことは、ｊ１とｊ２が同じである、つまり、列が同じであるものの、ｉ１とｉ２とが１つずれている、すなわち、行が１つ異なっていることを意味している。従って、このａｄｊ＿ｍａｔ（１５、９）の場合には、同列でかつ行が１つ異なっているので隣接していることを示す「１」の値が要素に格納されることになる。
【００９０】
次に、ステップＳ１２０２で距離情報算出部１００２は、基点画像位置設定部１００１で設定された基点画像位置を入力し、入力された基点画像位置と分割画像データの行列サイズとに基づいて各画像データの重み係数ＷＣを算出する。重み係数は、分割画像データと同じサイズを有する行列である。図１３（ｂ）は、図中のＰ１５で示される画像データの位置（ｒ３行ｃ４列目の位置）に、基点画像位置を設定した際に算出される重み係数を表している。各画像データの重み係数は、基点画像位置からのＬ１距離に基づいて設定される。ここで本実施例におけるＬ１距離は、ある分割画像データの位置とその分割画像データに上下左右のいずれかに隣接する分割画像データの位置との距離を１と定義する。重み係数ＷＣを算出方法の例をあげる。図中のＰ１５（ｒ３行ｃ４列目の位置）の重み係数ＷＣは、基点画像位置からのＬ１距離が０なのでＷＣ（ｒ３、ｃ４）＝０に設定される。図中のＰ８（ｒ２行ｃ３列目の位置）の重み係数は、Ｐ１５（ｒ３行ｃ４列目の位置）とＰ８（ｒ２行ｃ３列目の位置）とのＬ１距離が２なのでＷＣ（ｒ２、ｃ３）＝２に設定される。図１３（ｂ）に示される他の重み係数についても上と同様の方法で算出される。
【００９１】
ステップＳ１２０３で距離情報算出部１００２は、ステップＳ１２０１で求めた隣接情報とステップＳ１２０２で求めた重み係数とに基づいて距離情報を算出する。図１３（ｃ）を用いて本処理ステップの処理内容を説明する。図中のＰ１５で示される画像データの位置（ｒ３行ｃ４列目の位置）と、Ｐ９で示される画像データの位置（ｒ２行ｃ４列目の位置）の場合を例に挙げる。この二つの画像データは隣接しており、またＰ１５の重み係数は０、Ｐ９の重み係数は１である。このため、当該部分（この二つの画像データ間）の距離情報値は２つ画像データの位置のそれぞれの重み係数の和の１と設定する。他の部分の距離情報値についても上と同様の方法で設定される。図１３（ｃ）と同じ状態を以下の表２で示される距離行列で表すことができる。距離行列のサイズは、隣接行列のサイズと同じで５×６の画像データ配列の場合（５×６）×（５×６）＝３０×３０になる。表２において、行列の要素が１以上で表されるものが重み係数によって距離情報値が算出されている状態であり、∞で表されるものが距離情報値が算出されていない状態を表してる。
【００９２】
【表２】
0006478639.tif 000009
【００９３】
表２に示すような距離行列は以下の式１１で求めることができる。式１１において、ｄｓｔ＿ｍａｔ（ｍ，ｎ）はｍ行ｎ列目の距離行列の要素値、ＷＣは重み係数をそれぞれ表す。それ以外の記号は式１０と同じである。
【００９４】
【数７】
0006478639.tif 000010
【００９５】
例えば、前述のように表２のｒ３−ｃ４行（ｍ＝１５）のうちの、ｒ２−ｃ４列（ｎ＝９）の要素を例に挙げる。このとき、前述のように、ｉ１は１、ｉ２は２、ｊ１は３、ｊ２は３となる。なお、ｉ１、ｉ２、ｊ１、ｊ２は、前述のように０から始まるので重み係数に合わせるようにそれぞれ１を加えると、ＷＣ（２、４）＋ＷＣ（３、４）となるので、ｒ２行目ｃ４列目の重み係数の１とｒ３行目ｃ４行目の重み係数の０とを加えた値の１が、ｒ３−ｃ４行（ｍ＝１５）のうちの、ｒ２−ｃ４列（ｎ＝９）の要素に設定されている。
【００９６】
＜＜距離情報の補正処理（Ｓ１１０２）の詳細＞＞
次に、このようにして算出された距離情報を補正するステップＳ１１０２の処理の詳細を説明する。図１４は本実施例における距離情報の補正処理を示すフローチャート図である。図１５は図１４で示される処理フローの処理内容を補足説明するための模式図である。図１４と図１５を用いて距離情報の補正処理を説明する。
【００９７】
図１４の処理においては、距離情報算出部１００２は、ステップＳ１１０１で算出された距離情報のうちの各要素を１つずつ抽出して順次処理を行なう。
【００９８】
ステップＳ１４０１で距離情報算出部１００２は、隣接情報のうちの、処理対象の要素に対応する２つの画像データを取得する。隣接行列ａｄｊ_ｍａｔ（ｍ,ｎ）＝１のとき、式１０に従い、ｉ１、ｉ２、ｊ１、ｊ２を算出して、分割画像データの行列から、Ｉ１（ｉ１、ｊ１）、Ｉ２（ｉ２、ｊ２）の２つの画像データを取得する。例えば、前述のようにｍ＝１５、ｎ＝９の場合には、ｉ１は１、ｉ２は２、ｊ１は３、ｊ２は３となる。ｉ１、ｉ２、ｊ１、ｊ２は、前述のように０から始まるので、分割画像データの行列に合わせるようにそれぞれ１を加えると、ｒ３行目ｃ４列目の画像データと、ｒ２行目ｃ４列目の画像データとの２つの画像データを取得することになる。尚、画像データを取得するために、隣接行列の代わりに距離行列を用いてもよい。その場合、距離行列ｄｓｔ_ｍａｔ（ｍ,ｎ）≠∞のとき、式１０に従い、ｉ１、ｉ２、ｊ１、ｊ２を算出して、分割画像データの行列から、Ｉ１（ｉ１、ｊ１）、Ｉ２（ｉ２、ｊ２）の２つの画像データを取得する。尚、ｍ、ｎの組み合わせは本処理ステップを行なう度に更新して、１つの組み合わせに対して本処理ステップを適用するのは１回になるように制御されるものとする。
【００９９】
ステップＳ１４０２で距離情報算出部１００２は、取得した２つの画像データＩ１（ｉ１、ｊ１）、Ｉ２（ｉ２、ｊ２）の重複領域における画像データの対応点を検出する。対応点を検出する方法としては、実施例１で説明したものと同様であるので、ここでの説明は省略する。
【０１００】
ステップＳ１４０３で距離情報算出部１００２は、ステップＳ１４０２で検出した対応点の数に基づき、評価値を算出する。図１５（ａ）は、入力される分割画像データの行列のうち、Ｐ１３（ｒ３行ｃ２列目の位置）、Ｐ１９（ｒ４行ｃ２列目の位置）、Ｐ２０（ｒ４行ｃ３列目の位置）に対応する画像データを表している。このとき、Ｐ１３とＰ１９に対応する画像データの重複領域では、対応点が検出されていないものとする。このため、評価値ＥＶ（ｒ３−ｃ２、ｒ４−ｃ２）＝０と算出する。また、Ｐ１９とＰ２０に対応する画像データの重複領域では対応点（黒丸で図示）が９つ検出されているものとする。このため、評価値ＥＶ（ｒ４−ｃ２、ｒ４−ｃ３）＝９と算出する。図１５（ｂ）は、算出される全ての評価値ＥＶを示している。このように評価値ＥＶは、ステップＳ１４０３の処理を繰り返し行なうことで距離情報に対応する数だけ算出される。
【０１０１】
ステップＳ１４０４で距離情報算出部１００２は、ステップＳ１４０３で算出した評価値に基づき、距離情報を補正する。以下の式１２のように、距離行列ｄｓｔ＿ｍａｔは、評価値ＥＶに基づき補正される。
【０１０２】
【数８】
0006478639.tif 000011
【０１０３】
つまり、式１２によれば、距離情報の要素である２つの画像データ間で対応する対応点が検出されない場合、その距離情報を無効とする処理を行なう。なお、式１２では対応点が全く検出されない場合にその距離情報を無効とする処理を行う例を示したが、所定の閾値を設け、検出された対応点の数が所定の閾値以下の場合にその距離情報を無効とする処理を行ってもよい。
【０１０４】
ステップＳ１４０５で距離情報算出部１００２は、距離情報の全要素について、上のステップＳ１４０１からＳ１４０４までの処理を行なったか判定する。全要素について処理を行なっていれば終了して、行なっていなければステップＳ１４０１へ処理を進める。
【０１０５】
図１５（ｃ）は、距離情報の補正処理によって補正された距離情報を表している。ＥＶ（ｒ３−ｃ２、ｒ４−ｃ２）＝０と算出されているので、ｒ３行ｃ２列目とｒ４行ｃ２列目に対応する距離情報は∞に補正され、図中では距離情報値が算出されていない状態になっている。また、表３は距離情報の補正処理によって補正された距離行列である。図１５（ｃ）に対応して、ｒ３−ｃ２行のｒ４−ｃ２列の要素と、ｒ４−ｃ２行のｒ３−ｃ２列の要素とが∞に補正される。
【０１０６】
【表３】
0006478639.tif 000012
【０１０７】
以上のように、距離情報の補正処理では、画像データの対応点の数に基づいて、予め算出されている距離情報を補正を行なう。これにより後述する処理コマンド生成部にて処理経路を生成する際に、対応点が検出できない処理経路を回避することが可能になる。
【０１０８】
＜＜処理コマンド生成部の詳細＞＞
次に、処理コマンド生成部１００３の処理について説明する。図１６は本実施例における処理コマンド生成処理を示すフローチャート図である。ステップＳ１６０１で処理コマンド生成部１００３は、入力される基点画像位置と距離情報とに基づいて処理経路を生成する。ステップＳ１６０２で処理コマンド生成部１００３は、ステップＳ１６０１で生成した処理経路に基づいて、明度補正処理を実行するための処理コマンドを生成する。以下では、各処理の詳細を説明する。
【０１０９】
＜＜処理経路の生成処理（Ｓ１６０１）の詳細＞＞
図１７は本実施例における処理経路の生成処理を示すフローチャート図である。図１８は図１７で示される処理フローの処理内容を補足説明するための模式図である。図１７と図１８を用いて処理コマンドの生成処理を説明する。
【０１１０】
ステップＳ１７０１で処理コマンド生成部１００３は、基点画像位置をｍ１とするとき、ｍ１のアクセス状態をアクセス済みに設定して、他の画像位置は全て未アクセスに設定する。具体的には、ｕｓｅｄ（ｍ＝ｍ１）＝ｔｒｕｅかつｕｓｅｄ（ｍ≠ｍ１）＝ｆａｌｓｅと設定する。例えば、図１８に示す基点画像位置がｒ３行目ｃ４行目のＰ１５である場合を考える。このとき、表３のｒ３−ｃ４行に対応する、ｕｓｅｄ（１５）＝ｔｒｕｅが設定されることになる。尚、アクセス状態はアクセス済み（ｕｓｅｄ（ｍ）＝ｔｒｕｅ）、未アクセス（ｕｓｅｄ（ｍ）＝ｆａｌｓｅ）の２つの状態があるものとする。
【０１１１】
ステップＳ１７０２で処理コマンド生成部１００３は、距離情報のうち、処理対象の要素に対応する２つの分割画像データにおいて、一方がアクセス済みに設定されていて、他方が未アクセスに設定されている距離情報を探索する。そして、そのうちの最小の距離情報を取得する。本ステップの最初の処理では、基点画像位置の画像データと、基点画像位置に隣接する画像データとが探索され、そのうちの最小の距離情報が取得される。なお、最小の距離情報が複数ある場合には、本ステップではそのうちの１つが取得され、その後のＳ１７０５を経て再度の本ステップの処理で他の最小の距離情報が取得されるものとする。本ステップにおいては、具体的には、ｕｓｅｄ（ｍ）＝ｔｒｕｅかつｕｓｅｄ（ｎ）＝ｆａｌｓｅとなる距離情報ｄｓｔ＿ｍａｔ（ｍ、ｎ）を検出する。検出したもののうち、ｍｉｎ＿ｃｏｓｔ＝ａｒｇｍｉｎ（ｄｓｔ＿ｍａｔ（ｍ、ｎ））が算出されるときのｄｓｔ＿ｍａｔ（ｍ＝ｍ２、ｎ＝ｎ２）を算出する。
【０１１２】
ステップＳ１７０３で処理コマンド生成部１００３は、ステップＳ１７０２で算出された距離情報ｄｓｔ＿ｍａｔ（ｍ＝ｍ２、ｎ＝ｎ２）、アクセス済み番号ｍ２、未アクセス番号ｎ２に基づいてグラフを作成する。
【０１１３】
ｇｒａｐｈ（ｉ）．ｓｒｃ＝ｍ２
ｇｒａｐｈ（ｉ）．ｄｓｔ＝ｎ２
ｇｒａｐｈ（ｉ）．ｃｏｓｔ＝ｄｓｔ＿ｍａｔ（ｍ＝ｍ２、ｎ＝ｎ２）（式１３）
上記は、ｍ２で特定される画像データからｎ２で特定される画像データへのグラフが作成されるとともに、距離情報も併せて配列に格納することを表している。式１３において、ｉは配列番号であり、初期値は０で、本処理ステップに入る度に１ずつ増加するものとする。
【０１１４】
ステップＳ１７０４で処理コマンド生成部１００３は、未アクセス番号ｎ２をアクセス済みに設定する。具体的には、ｕｓｅｄ（ｎ＝ｎ２）＝ｔｒｕｅと設定する。
【０１１５】
ステップＳ１７０５で処理コマンド生成部１００３は、全ての未アクセスの分割画像データがアクセス済みに設定されたかを判定して、全てアクセス済みに設定されれば終了して、未アクセスが残っていればステップＳ１７０２に処理を進める。
【０１１６】
以上の処理により生成されたグラフは、基点画像位置から距離情報値が小さい順に結ばれた処理経路となる。図１８（ａ）は、距離情報を補正しない（距離情報の補正処理を行なわない）場合に生成される処理経路の模式図を示している。一方、図１８（ｂ）は、距離情報を補正した場合に生成される処理経路の模式図を示している。二つの図を見比べると、どちらも基点画像位置から距離情報が近い順に処理経路が生成されることがわかる。従って、処理経路を短くすることができるので、累積誤差を削減することができる。また、図１８（ｂ）では、対応点が検出されないｒ３−ｃ２、ｒ４−ｃ２の経路を避けて処理経路が生成されていることがわかる。この処理経路を用いることにより、対応点を用いた明度補正処理が確実に行なえるようになる。
【０１１７】
＜＜処理コマンドの生成処理の詳細＞＞
次に、ステップＳ１６０２の処理コマンドの生成処理の詳細な処理を説明する。図１９は本実施例における処理コマンドの生成処理を示すフローチャート図である。なお、本実施例では、処理コマンドとして説明を行なうが、この処理コマンドの集まったものが実施例１で説明した設定情報に対応するものである。
【０１１８】
ステップＳ１９０１で処理コマンド生成部１００３は、ステップＳ１６０１で生成されたグラフから配列番号ｉの小さい順にグラフの要素ｇｒａｐｈ（ｉ）を取得する。配列番号ｉの初期値は０とする。すなわち、基点画像位置から近い順にグラフの要素を取得する。
【０１１９】
ステップＳ１９０２で処理コマンド生成部１００３は、ステップＳ１９０１で取得したグラフから基準画像データの番号ｍ３と隣接画像データの番号ｎ３を取得する。具体的には、取得したグラフｇｒａｐｈ（ｉ）において、ｍ３＝ｇｒａｐｈ（ｉ）．ｓｒｃ、ｎ３＝ｇｒａｐｈ（ｉ）．ｄｓｔのように、ｍ３とｎ３とを取得する。
【０１２０】
ステップＳ１９０３で処理コマンド生成部１００３は、ステップＳ１９０２で取得した基準画像データの番号ｍ３と、基点画像位置ｍ１とが一致するかどうか判定する。一致するならＳ１９０４へ処理を進めて、一致しないならＳ１９０５へ処理を進める。この判定処理は、実施例１で説明したような基準画像データを順次伝播させる際に、明度補正画像データを基準画像データとして用いるために行なうものである。すなわち、基準画像データが基点画像位置に位置する画像データでなければ、明度補正画像データを基準画像データとして用いるためである。
【０１２１】
ステップＳ１９０４で処理コマンド生成部１００３は、基準画像データの番号ｍ３に基づき、基準画像データへのパスを取得する。取得したパスは第１のパスとして一時的に記憶するものとする。
【０１２２】
ステップＳ１９０５で処理コマンド生成部１００３は、基準画像データの番号ｍ３に基づき、明度補正画像データへのパスを取得する。取得したパスは第１のパスとして一時的に記憶する。これらの第１のパスは、実施例１の設定情報で説明した「基準画像データ」を表す画像データへのアクセスパスを示すものである。すなわち、明度補正の際に「基準画像データ」として用いる画像データのパスのことである。このように、第１のパスは基点となる分割画像データ、または、基点となる分割画像データ以外の分割画像データの明度補正画像データが含まれる。
【０１２３】
ステップＳ１９０６で処理コマンド生成部１００３は、隣接画像データの番号ｎ３に基づき、隣接画像データへのパスを取得する。取得したパスは第２のパスとして一時的に記憶する。また、隣接画像データの番号ｎ３に基づき、明度補正画像データへのパスを取得する。取得したパスは第３のパスとして一時的に記憶する。第２のパスは、実施例１の設定情報で説明した「隣接画像データ」を表す画像データへのアクセスパスを示すものである。第３のパスは、実施例１の設定情報で説明した「出力画像データ」を表す画像データへのアクセスパスを示すものである。なお、ステップＳ１９０５に処理が進んだ場合には、基準画像データを表す第１のパスとして明度補正画像データが用いられることになる。第３のパスは、このステップＳ１９０５での処理において用いられることになる。すなわち、ステップＳ１９０５では、今回のステップＳ１９０５以前にステップＳ１９０６の処理で取得され、後述するステップＳ１９０７で生成された処理コマンドの第３のパスを参照して第１のパスを取得することになる。
【０１２４】
ステップＳ１９０７で処理コマンド生成部１００３は、第１のパス、第２のパス、第３のパスに基づいて処理コマンドを生成する。具体的には処理コマンドｃｏｍｍａｎｄ（ｉ）＝” [コマンド名] [第１のパス] [第２のパス] [第３のパス] ”という文字列を生成する。生成した文字列は一時的に記憶する。配列番号ｉ＝０の場合の具体例を挙げる。コマンド名は”明度補正”である。第１のパスは”Ｃ：￥ｄａｔａ０１５．ｂｍｐ”である。 第２のパスは”Ｃ：￥ｄａｔａ００９．ｂｍｐ”である。第３のパスは”Ｃ：￥ｄａｔａ＿ｃｏｒｒｅｃｔ＿００９．ｂｍｐ”である。この場合、ｃｏｍｍａｎｄ（０）＝”明度補正  Ｃ：￥ｄａｔａ０１５．ｂｍｐ  Ｃ：￥ｄａｔａ００９．ｂｍｐ  Ｃ：￥ｄａｔａ＿ｃｏｒｒｅｃｔ＿００９．ｂｍｐ”となる。なお、ｄａｔａ０１５は、図１８のＰ１５の画像データ（面内補正画像データ）を表しており、ｄａｔａ＿ｃｏｒｒｅｃｔ＿００９は、図１８のＰ９の明度補正画像データを表している。
【０１２５】
ステップＳ１９０８で処理コマンド生成部１００３は、入力されるグラフの要素を全て参照したかを判定する。判定の結果、全て参照したなら終了して、全て参照していないならステップＳ１９０１へ処理を進める。
【０１２６】
以上の処理ステップを行なうことで、図１８（ｂ）に示されるような処理経路となるように、処理コマンドが生成される。
【０１２７】
＜＜明度補正部の詳細＞＞
次に、本実施例における明度補正部１００４の詳細を説明する。本実施例における明度補正部１００４は、実施例１で説明した明度補正部３０３と同様の処理を行なうことが可能であるが、ここでは本実施例で説明した処理コマンドに応じた処理を説明する。図２０は本実施例における明度補正部１００４の生成処理を示すフローチャート図である。
【０１２８】
ステップＳ２００１で明度補正部１００４は、処理コマンド生成部１００３で生成された処理コマンドから配列番号ｉの小さい順に取得される、処理コマンドの要素ｃｏｍｍａｎｄ（ｉ）から基準画像データと隣接画像データを入力する。配列番号ｉの初期値は０である。具体的には、配列番号ｉ＝０のとき、ステップＳ１９０７で生成したｃｏｍｍａｎｄ（０）＝”明度補正  Ｃ：￥ｄａｔａ０１５．ｂｍｐ  Ｃ：￥ｄａｔａ００９．ｂｍｐ  Ｃ：￥ｄａｔａ＿ｃｏｒｒｅｃｔ＿００９．ｂｍｐ”を取得する。取得したものから第１のパス”Ｃ：￥ｄａｔａ０１５．ｂｍｐ”、および 第２のパス”Ｃ：￥ｄａｔａ００９．ｂｍｐ”を取得する。第１のパスに基づいて基準画像データを入力して、第２のパスに基づいて隣接画像データを入力する。
【０１２９】
ステップＳ２００２で処理コマンド生成部１００３は、基準画像データと隣接画像データの２つの画像データの重複領域における画像データの対応点を検出する。対応点の検出については実施例１で説明した通りである。尚、本処理ステップで対応点を検出せずに、Ｓ１４０２で検出した対応点のうち、本処理ステップで用いる基準画像データと隣接画像データに対応する対応点を入力するようにしてもよいものとする。
【０１３０】
ステップＳ２００３で明度補正部１００４は、ステップＳ２００２において検出された対応点に基づいて、基準画像データの明るさに隣接画像データの明るさを合わせる明度補正処理を行ない、明度補正画像データを生成する。実施例１と同様に、複数の対応点Ｍｎ（０＜ｎの整数）があるとき、式１に示すように、明度補正値を算出する。また、算出された明度補正推定値Ｃｏｒｒｅｃｔ１を用いて式２に示すように明度補正画像データＣＡを算出する。
【０１３１】
ステップＳ２００４で処理コマンド生成部１００３は、入力される処理コマンドを全て実行したかを判定する。判定の結果、全て実行したなら終了して、全て実行していないならステップＳ２００１へ処理を進める。
【０１３２】
以上のように、本実施例においては、明度補正処理において、距離情報に基づいて設定した処理経路により分割画像データ間の明度補正処理を行なう。これにより、補正処理の処理精度を向上させることが可能である。
【０１３３】
＜＜実施例２の効果＞＞
以上説明したように、本実施例では実施例１の効果に加えて、距離情報に基づき構築した処理経路に基づいて分割画像データ間の補正処理を行なうので、基準画像データからの処理経路を短くすることできる。これにより、補正処理において累積される誤差を少なくすることができるので、補正処理の処理精度を向上させることができる。また、補正された距離情報を用いることで対応点が検出できない画像データ間を避けるように処理経路を設定することが可能となる。
【０１３４】
［実施例３］
本実施例では、分割画像データ間の明度補正を並列処理にて行なう。これにより実施例１及び実施例２よりも高速な明度補正が可能となる。
【０１３５】
本実施例においても図１で示される撮影システムを用いて分割画像データを取得する。取得された分割画像データは、図２（ａ）に示されるような重複領域を持つ構成であり、図９（ａ）に示すようなデータであるものとする。また、取得された分割画像データは図１０に示される画像処理装置１０３によって画像処理が行われる。また、画像処理装置１０３によって行われる画像処理は、図４に示される処理フローチャートに沿って行われる。図４のステップＳ４０３に示される明度補正処理において行われる処理が、本実施例における特徴を示す。以下では、実施例１及び実施例２と重複する内容は説明を省略して、実施例３における特有の構成・処理についてのみ説明を行なう。
【０１３６】
＜＜分割画像データ間の補正処理における距離情報を用いる効果＞＞
図９は本実施例により得られる効果を示す模式図である。図９（ａ）、図９（ｂ）に示されている内容は実施例２と同じである。
【０１３７】
距離情報を用いない図９（ａ）では、基点位置のＰ１５で示される画像データの位置（ｒ３行ｃ４列目の位置）からの処理経路が２つである（Ｐ１５⇒Ｐ９、Ｐ１５⇒Ｐ２１の２つ）。またそれに続く処理経路が１つになっている（Ｐ９⇒Ｐ３、Ｐ２１⇒Ｐ２７それぞれ１つ）。またＰ３からの処理経路は２つ（Ｐ３⇒Ｐ２、Ｐ３⇒Ｐ４の２つ）になっている。このように、処理経路の数が少ないので、並列処理を行なう際に並列数を大きくすることができない。このため、分割画像データ全てに対して補正処理を行なう際に処理速度が遅くなる場合がある。
【０１３８】
これに対して、距離情報を用いる図９（ｂ）では、基準位置のＰ１５からの処理経路が４つである（Ｐ１５⇒Ｐ９、Ｐ１５⇒Ｐ１４、Ｐ１５⇒Ｐ１６、Ｐ１５⇒Ｐ２１の４つ）。またそれに続く処理経路は放射状に広がっており、処理経路は多い。このように、処理経路の数が多いので、並列処理を行なう際に並列数を大きくすることができる。このため、分割画像データ全てに対して補正処理を行なう際に処理速度を速くすることができる。
【０１３９】
このように分割画像データ間の補正処理において並列処理を行なう場合、距離情報を用いて経路設定することで処理速度を向上させることが可能である。
【０１４０】
＜＜処理コマンド生成部の詳細＞＞
図２１は本実施例における処理コマンド生成部１００３を示すフローチャート図である。図１８は図２１で示される処理コマンドのグループの生成処理を補足説明するための模式図である。図２１と図１８を用いて処理コマンドのグループの生成処理を説明する。
【０１４１】
ステップＳ１６０１及びＳ１６０２は、実施例２と同じ処理であるので説明を省略する。
【０１４２】
ステップＳ２１０１に置いて処理コマンド生成部１００３は、処理コマンドグループの生成処理を行なう。すなわち、ステップＳ１６０２で生成された処理コマンドを、距離情報に基づいてグループに分類することで処理コマンドグループを生成する。本ステップの処理の効果を図１８（ｂ）を用いて説明する。図１８（ｂ）に示されるように、基点画像位置からの距離に応じて処理コマンドはグループ分けされる。図中で例えばＰ１５で示される画像データの位置（ｒ３行ｃ４列目の位置）を基点画像位置とするとき、基点画像位置からのＬ１距離が１の処理経路は黒色の矢印で示され、１つの処理コマンドグループを示している。生成された処理コマンドグループを用いて並列処理を制御する。つまり、基点画像位置に距離が近い処理コマンドグループに含まれる処理コマンドを、基点画像位置に距離が遠い処理コマンドグループに含まれる処理コマンドよりも優先して実行する。これにより並列処理を行なう場合に基準画像データが確実に存在するようになる。このため、高速に明度補正処理が行える。
【０１４３】
以下では、ステップＳ２１０１の処理コマンドグループの生成処理の詳細を説明する。
【０１４４】
＜＜処理コマンドのグループの生成処理の詳細＞＞
図２２は本実施例におけるステップＳ２１０１の処理コマンドのグループの生成処理を示すフローチャート図である。
【０１４５】
ステップＳ２２０１で処理コマンド生成部１００３は、一次記憶距離情報値ｔｍｐ＿ｃｏｓｔに初期値を設定する。初期値にはＬ１距離の最小値の１を設定する。つまり、ｔｍｐ＿ｃｏｓｔ＝１と設定する。
【０１４６】
ステップＳ２２０２で処理コマンド生成部１００３は、入力されるグラフから配列番号ｉの小さい順にグラフの要素ｇｒａｐｈ（ｉ）を取得する。配列番号ｉの初期値は０である。
【０１４７】
ステップＳ２２０３で処理コマンド生成部１００３は、グラフの要素ｇｒａｐｈ（ｉ）から、距離情報値ｇｒａｐｈ（ｉ）．ｃｏｓｔを取得する。
【０１４８】
ステップＳ２２０４で処理コマンド生成部１００３は、距離情報値ｇｒａｐｈ（ｉ）．ｃｏｓｔと一次記憶距離情報値ｔｍｐ＿ｃｏｓｔとの大小を比較する。比較の結果、距離情報値ｇｒａｐｈ（ｉ）．ｃｏｓｔの方が大きければステップＳ２２０６へ処理を進めて、そうでなければステップＳ２２０５へ処理を進める。
【０１４９】
ステップＳ２２０５で処理コマンド生成部１００３は、処理コマンドグループｇｒｏｕｐ（ｊ）に処理コマンドの要素ｃｏｍｍａｎｄ（ｉ）を追加する。配列番号ｊの初期値は０である。
【０１５０】
ステップＳ２２０６で処理コマンド生成部１００３は、距離情報値ｇｒａｐｈ（ｉ）．ｃｏｓｔで一次記憶距離情報値ｔｍｐ＿ｃｏｓｔを更新する。つまり、ｔｍｐ＿ｃｏｓｔ＝ｇｒａｐｈ（ｉ）．ｃｏｓｔである。
【０１５１】
ステップＳ２２０７で処理コマンド生成部１００３は、処理コマンドグループｇｒｏｕｐ（ｊ）を更新する。具体的には配列番号ｊを１増加させる。
【０１５２】
Ｓ２２０８は、入力されるグラフの要素を全て参照したかを判定する。判定方法としては、配列番号ｉは本処理ステップに到達する度に１ずつ増加するものとして、配列番号ｉがグラフの要素数に達したかどうかで判定する方法があげられる。判定の結果、全て参照したなら終了して、全て参照していないならステップＳ２２０２へ処理を進める。
【０１５３】
＜＜明度補正部の詳細＞＞
図２３は本実施例における明度補正部１００４の処理を示すフローチャート図である。
【０１５４】
ステップＳ２３０１で明度補正部１００４は、処理コマンドグループｇｒｏｕｐ（ｊ）を更新する。配列番号ｊの初期値は０である。本処理ステップを経過する度に配列番号ｊを１ずつ増加させる。
【０１５５】
以下のＳ２３０２、Ｓ２００２、Ｓ２００３、及びＳ２３０３は、並列処理される。つまり、処理コマンドグループｇｒｏｕｐ（ｊ＝０）に４つの処理コマンドｃｏｍｍａｎｄ（ｉ＝０）、ｃｏｍｍａｎｄ（ｉ＝１）、ｃｏｍｍａｎｄ（ｉ＝２）、ｃｏｍｍａｎｄ（ｉ＝３）、が追加されている場合、各コマンドを並列処理により同時に実行する。尚、最大の並列数は画像処理装置のＣＰＵのコア数に依存する。コア数＝４ならグループ内の最大の並列数＝４であり、Ｓ２３０２、Ｓ２００２、Ｓ２００３、及びＳ２３０３は、並列数４で並列処理を行なうことができる。また、最大の並列数以下でも並列処理を行なえるものとする。
【０１５６】
ステップＳ２３０２で明度補正部１００４は、入力される処理コマンドから配列番号ｉの小さい順に取得される、処理コマンドの要素ｃｏｍｍａｎｄ（ｉ）から基準画像データと隣接画像データを入力する。具体例は、実施例２の「明度補正部の詳細」におけるステップＳ２００１と同じである。
【０１５７】
ステップＳ２００２及びＳ２００３では実施例２と同じ処理を行なう。
【０１５８】
ステップＳ２３０３で明度補正部１００４は、処理コマンドグループに含まれる処理コマンドを全て実行したかを判定する。判定の結果、全て実行したなら終了して、全て実行していないならＳ２３０２へ処理を進める。
【０１５９】
ステップＳ２３０４で明度補正部は、入力される処理コマンドグループの要素を全て参照したかを判定する。判定方法としては、配列番号ｊは本処理ステップに到達する度に１ずつ増加するものとして、配列番号ｊが処理コマンドグループの要素数に達したかどうかで判定する方法があげられる。判定の結果、全て参照したなら終了して、全て参照していないならＳ２３０１へ処理を進める。
【０１６０】
＜＜実施例３の効果＞＞
以上説明したように、本実施例では、実施例１及び実施例２で得られる効果に加えて、距離情報に基づいて設定した処理経路により、並列処理で分割画像データ間の明度補正処理を行なう。これにより、並列数を増やすことができるため、補正処理の処理速度を向上させることが可能である。
【０１６１】
［実施例４］
実施例１では、分割画像データを合成して合成画像データを生成した。本実施例では、１つのプロジェクタが１つの明度補正画像データを投影して、複数台のプロジェクタで複数の異なる明度補正画像データを投影する。
【０１６２】
これにより、本実施例では、複数台のプロジェクタによる分割画像データの投影において、分割画像データにショットムラが存在する場合に、撮影画像データのショットムラを補正する。補正した後に、複数台のプロジェクタによる分割画像データの投影することで、画像データの間の繋ぎ目が良好な合成結果を得ることができる。
【０１６３】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１６４】
３０１  入力部
３０２  面内ムラ補正部
３０３  明度補正部
３０４  あおり補正部
３０５  合成部
３０６  出力部
３０７  メモリ
【図１】
0006478639.tif 000013
【図２】
0006478639.tif 000014
【図３】
0006478639.tif 000015
【図４】
0006478639.tif 000016
【図５】
0006478639.tif 000017
【図６】
0006478639.tif 000018
【図７】
0006478639.tif 000019
【図８】
0006478639.tif 000020
【図９】
0006478639.tif 000021
【図１０】
0006478639.tif 000022
【図１１】
0006478639.tif 000023
【図１２】
0006478639.tif 000024
【図１３】
0006478639.tif 000025
【図１４】
0006478639.tif 000026
【図１５】
0006478639.tif 000027
【図１６】
0006478639.tif 000028
【図１７】
0006478639.tif 000029
【図１８】
0006478639.tif 000030
【図１９】
0006478639.tif 000031
【図２０】
0006478639.tif 000032
【図２１】
0006478639.tif 000033
【図２２】
0006478639.tif 000034
【図２３】
0006478639.tif 000035