(57)【要約】【課題】  被写体を複数の領域に分割して撮像することによって得られる画像の歪みを低減するための一手法を提供することを目的とする。【解決手段】  重複領域を含む複数の領域それぞれにおける被写体の光沢を表す複数の画像データを取得する第１取得手段と、前記複数の領域に対応する所定の領域に配置された基準板を撮像することによって、前記複数の画像データそれぞれの歪みを補正するための補正用画像データを取得する第２取得手段と、前記補正用画像データが表す補正用画像内に写り込んだ前記光源に対応する位置を前記補正用画像内において平行移動させるための移動量と、前記補正用画像内に写り込んだ前記光源の大きさを前記補正用画像内において拡大又は縮小するための倍率とを表す、前記複数の画像データそれぞれの補正に対応する幾何変換データを生成する生成手段と、を有することを特徴とする画像処理装置。【選択図】  図４
2018191050.tif 000002
【特許請求の範囲】
【請求項１】
被写体を隣り合った領域に重複領域を設けて複数の領域に分割し、光源からの光が照射された前記複数の領域それぞれを撮像することによって得られた複数の画像データの歪みを補正するための画像処理装置であって、
前記重複領域を含む前記複数の領域それぞれにおける前記被写体の光沢を表す前記複数の画像データを取得する第１取得手段と、
前記複数の領域に対応する所定の領域に配置された基準板を撮像することによって、前記複数の画像データそれぞれの歪みを補正するための補正用画像データを取得する第２取得手段と、
前記複数の画像データに基づいて、前記補正用画像データが表す補正用画像内に写り込んだ前記光源に対応する位置を前記補正用画像内において平行移動させるための移動量と、前記補正用画像内に写り込んだ前記光源の大きさを前記補正用画像内において拡大又は縮小するための倍率とを表す、前記複数の画像データそれぞれの補正に対応する幾何変換データを生成する第１生成手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記幾何変換データに基づいて、前記補正用画像データを補正する第１補正手段をさらに有することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１補正手段によって補正された前記補正用画像データに基づいて、前記複数の画像データを補正する第２補正手段をさらに有することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記幾何変換データと前記補正用画像データとに基づいて、前記複数の画像データを補正する補正手段をさらに有することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
補正された前記複数の画像データを合成することによって１つの画像を表す合成画像データを生成する第２生成手段をさらに有することを特徴とする請求項３又は請求項４に記載の画像処理装置。
【請求項６】
前記第１生成手段は、前記基準板が配置された前記所定の位置と前記複数の領域それぞれの位置とのずれの方向を、前記補正用画像内に写り込んだ前記光源に対応する位置を前記補正用画像内において平行移動させる方向として算出することによって、前記移動方向データを生成することを特徴とする請求項１乃至請求項５のいずれか一項に記載の画像処理装置。
【請求項７】
前記光源に関する情報を有する光源データを取得する第３取得手段と、
前記複数の画像データを得るために前記被写体を撮像した撮像装置に関する情報を有する撮像データを取得する第４取得手段と、
前記光源データと前記撮像データとに基づいて、前記補正用画像内に写り込んだ前記光源に対応する位置を前記補正用画像内において平行移動させる方向を表す移動方向データを生成する第３生成手段と、をさらに有し、
前記第１生成手段は、前記複数の画像データに基づいて、前記補正用画像内に写り込んだ前記光源に対応する位置を前記補正用画像内において前記移動方向データが表す前記方向へ平行移動させるための前記移動量と、前記補正用画像内に写り込んだ前記光源の大きさを前記補正用画像内において拡大又は縮小するための前記倍率とを表す、前記複数の画像データそれぞれの補正に対応する前記幾何変換データを生成することを特徴とする請求項１乃至請求項６のいずれか一項に記載の画像処理装置。
【請求項８】
前記第３取得手段は、面光源である前記光源の位置と前記光源の面法線の向きとを表す前記光源データを取得することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記第４取得手段は、前記撮像装置の位置と、前記撮像装置の光軸の向きと、前記撮像装置の焦点距離とを表す前記撮像データを取得することを特徴とする請求項７又は請求項８に記載の画像処理装置。
【請求項１０】
前記複数の画像データに基づいて、前記補正用画像内に写り込んだ前記光源に対応する位置を前記補正用画像内において平行移動させる方向を表す移動方向データを生成する第３生成手段をさらに有し、
前記第１生成手段は、前記複数の画像データに基づいて、前記補正用画像内に写り込んだ前記光源に対応する位置を前記補正用画像内において前記移動方向データが表す前記方向へ平行移動させるための前記移動量と、前記補正用画像内に写り込んだ前記光源の大きさを前記補正用画像内において拡大又は縮小するための前記倍率とを表す、前記複数の画像データそれぞれの補正に対応する前記幾何変換データを生成することを特徴とする請求項１乃至請求項６のいずれか一項に記載の画像処理装置。
【請求項１１】
前記第３生成手段は、前記複数の画像データが表す複数の画像のうち、前記重複領域を有する画像同士の重心のずれを算出し、前記重心のずれに基づいて、前記補正用画像内に写り込んだ前記光源に対応する位置を前記補正用画像内において平行移動させる方向を表す前記移動方向データを生成することを特徴とする請求項１０に記載の画像処理装置。
【請求項１２】
前記第１生成手段は、前記移動量と前記倍率とを用いて前記補正用画像データが補正された場合に、補正された前記補正用画像データを用いて補正された前記複数の画像データが表す複数の画像のうち前記重複領域を有する２つの画像について、前記重複領域における光沢の差分が所定の閾値以下となるように、前記移動量と前記倍率とを算出することを特徴とする請求項１乃至請求項１１のいずれか一項に記載の画像処理装置。
【請求項１３】
前記複数の画像データに基づいて、前記重複領域を表す重複領域データを生成する第４生成手段をさらに有し、
前記第１生成手段は、前記移動量と前記倍率とを用いて前記補正用画像データが補正された場合に、補正された前記補正用画像データを用いて補正された前記複数の画像データが表す複数の画像のうち前記重複領域を有する２つの画像について、前記重複領域データが表す前記重複領域における光沢の差分が所定の閾値以下となるように、前記移動量と前記倍率とを算出することを特徴とする請求項１２に記載の画像処理装置。
【請求項１４】
前記第１補正手段は、前記倍率に基づいて、前記補正用画像内に写り込んだ前記光源に対応する領域の大きさを拡大又は縮小し、前記移動量に基づいて、前記補正用画像内に写り込んだ前記光源の位置に対応する画素値を前記補正用画像内において平行移動させることによって前記補正用画像データを補正することを特徴とする請求項２に記載の画像処理装置。
【請求項１５】
前記第２補正手段は、前記複数の画像データの画素値を、前記第１補正手段によって補正された前記補正用画像データの画素値で除算することによって、前記複数の画像データを補正することを特徴とする請求項３に記載の画像処理装置。
【請求項１６】
前記第２生成手段は、補正された前記複数の画像データを、αブレンディングを用いて合成することによって前記合成画像データを生成することを特徴とする請求項５に記載の画像処理装置。
【請求項１７】
前記被写体は表面に凹凸を有する物体であって、
前記第４生成手段は、前記複数の画像データに基づいて、前記重複領域から前記凹凸によって生じる影に対応する領域を除いた領域を表す重複領域データを生成することを特徴とする請求項１３に記載の画像処理装置。
【請求項１８】
前記第４生成手段は、前記重複領域において所定の閾値以下となる画素値を有する領域を前記影に対応する領域とすることを特徴とする請求項１７に記載の画像処理装置。
【請求項１９】
コンピュータを請求項１乃至請求項１８のいずれか一項に記載の画像処理装置の各手段として機能させるためのプログラム。
【請求項２０】
被写体を隣り合った領域に重複領域を設けて複数の領域に分割し、光源からの光が照射された前記複数の領域それぞれを撮像することによって得られた複数の画像データの歪みを補正するための画像処理方法であって、
前記重複領域を含む前記複数の領域それぞれにおける前記被写体の光沢を表す前記複数の画像データを取得する第１取得ステップと、
前記複数の領域に対応する所定の領域に配置された基準板を撮像することによって、前記複数の画像データそれぞれの歪みを補正するための補正用画像データを取得する第２取得ステップと、
前記複数の画像データに基づいて、前記補正用画像データが表す補正用画像内に写り込んだ前記光源に対応する位置を前記補正用画像内において平行移動させるための移動量と、前記補正用画像内に写り込んだ前記光源の大きさを前記補正用画像内において拡大又は縮小するための倍率とを表す、前記複数の画像データそれぞれの補正に対応する幾何変換データを生成する生成ステップと、
を有することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の歪みを低減するための画像処理技術に関する。
【背景技術】
【０００２】
近年、光源からの光が照射された被写体を撮像することによって、当該被写体の反射特性を取得する方法が知られている。撮像によって被写体の反射特性を取得する際に、光源の配光特性や輝度ムラによって反射特性の取得精度が低下してしまうという課題があった。上記の課題を解決する方法として特許文献１の技術がある。特許文献１の技術では、被写体と、当該被写体と同一の位置に配置した鏡面を有する基準板とを撮像する。当該被写体を撮像することによって得られた撮像画像に対して、当該基準板を撮像することによって得られた撮像画像を用いたシェーディング補正を行うことによって、被写体の反射特性を高精度に取得している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−００２６０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一方で、被写体のサイズが大きい、又は、被写体の表面の詳細を高精度に取得したい場合には、被写体を複数の領域に分割して撮像し、撮像によって得られた分割画像にそれぞれシェーディング補正を施した後合成を行う。しかしながら、被写体と同一サイズの基準板を用意することができない場合がある。この場合、分割画像の画角と同一サイズの基準板を用いて各分割画像に対応するシェーディング補正用の画像を得る必要があるが、分割画像に対応する領域全てに正確に位置を合わせて基準板を配置することは困難である。また、被写体の一部領域に配置した基準板を撮像して得られた画像を用いて各分割画像のシェーディング補正をしようとすると、基準板の位置と分割画像に対応する領域の位置とのずれが生じる。この場合、被写体が傾いて配置されていると光源からの光が当たる位置が分割画像ごとに変わるため、各分割画像に適したシェーディング補正用の画像を得ることができないという課題がある。
【０００５】
本発明は、上記課題に鑑みてなされたものであり、被写体を複数の領域に分割して撮像することによって得られる画像の歪みを低減するための一手法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明に係る画像処理装置は、被写体を隣り合った領域に重複領域を設けて複数の領域に分割し、光源からの光が照射された前記複数の領域それぞれを撮像することによって得られた複数の画像データの歪みを補正するための画像処理装置であって、前記重複領域を含む前記複数の領域それぞれにおける前記被写体の光沢を表す前記複数の画像データを取得する第１取得手段と、前記複数の領域に対応する所定の領域に配置された基準板を撮像することによって、前記複数の画像データそれぞれの歪みを補正するための補正用画像データを取得する第２取得手段と、前記複数の画像データに基づいて、前記補正用画像データが表す補正用画像内に写り込んだ前記光源に対応する位置を前記補正用画像内において平行移動させるための移動量と、前記補正用画像内に写り込んだ前記光源の大きさを前記補正用画像内において拡大又は縮小するための倍率とを表す、前記複数の画像データそれぞれの補正に対応する幾何変換データを生成する第１生成手段と、を有することを特徴とする。
【発明の効果】
【０００７】
被写体を複数の領域に分割して撮像することによって得られる画像の歪みを低減するための一手法を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】被写体１０１を撮像する方法を説明するための模式図
【図２】画像処理装置１のハードウェア構成を示すブロック図
【図３】画像処理装置１の論理構成を示すブロック図
【図４】画像処理装置１が実行する処理の流れを示すフローチャート
【図５】重複領域データ生成部３０９が実行する処理の流れを示すフローチャート
【図６】移動方向データ生成部３１０が実行する処理の流れを示すフローチャート
【図７】幾何変換データ生成部３１１が実行する処理の流れを示すフローチャート
【図８】補正後画像データを説明するための図
【図９】重複領域データを説明するための図
【図１０】移動方向データを生成する処理を説明するための図
【図１１】光源位置Ｌ’ｉ，Ｌ’ｉ＋ｊを説明するための図
【図１２】補正用画像に写り込む光源の移動方向を表す式の係数を説明するための図
【図１３】幾何変換データを生成する処理を説明するための図
【図１４】画像処理装置１が実行する処理の結果を説明するための図
【図１５】画像処理装置１が実行する処理の流れを示すフローチャート
【図１６】影領域を説明するための図
【発明を実施するための形態】
【０００９】
以下、本発明の実施例について、図面を参照して説明する。尚、以下の実施例は本発明を限定するものではなく、また、以下の実施例で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。尚、同一の構成については、同じ符号を付して説明する。
【００１０】
［実施例１］
＜光学ユニット１０２を用いて被写体１０１を撮像する方法＞
図１（ａ）は、被写体１０１及び光学ユニット１０２を説明するための模式図である。被写体１０１は、絵の具の盛り上がりによる凹凸と塗布されたニスによる光沢とを表面に有する油彩画である。光学ユニット１０２は、撮像装置（カメラ）１０３と面光源１０４とが可動ステージに保持されたユニットである。光学ユニット１０２は、被写体１０１に対して略正対の位置に配置される。但し、被写体１０１の配置誤差により、被写体１０１の略平面が光学ユニット１０２の横方向のＸ軸に対して−Δθだけわずかに傾いているとする。図１（ａ）に示すように、光学ユニット１０２上には、光学ユニット１０２の位置Ｐｏｓ（ｉ）を原点Ｏとして、撮像装置１０３がＸ軸上の点Ｃの位置に配置され、面光源１０４がＸ軸上の点Ｌの位置に配置されている。撮像装置１０３は、光軸の向きを表すベクトルｎＣがｎｃ＝（１／√２，０，１／√２）となる向きで配置されている。面光源１０４は、面法線の向きを表すベクトルｎＬがｎＬ＝（０，０，１）となる向きで配置されている。尚、撮像装置１０３は、レンズ、絞り、シャッタ、光学ローパスフィルタ、カラーフィルタ、及び、ＣＭＯＳやＣＣＤなどのセンサから構成され、被写体１０１の光量を検知し、Ａ／Ｄ変換を経てデジタルデータを出力する。尚、面光源１０４は、Ｘ軸方向に１、Ｙ軸方向に１の大きさとする。また、本実施例における面光源１０４には、画面全体を白く表示（全白表示）させた液晶ディスプレイを用いる。また、面光源１０４として用いる液晶ディスプレイの輝度は画面内で均一であり、液晶ディスプレイの画面から放たれる光は等方的に拡がる拡散光である。
【００１１】
本実施例においては、図１（ｂ）のように、面光源１０４からの光が照射された被写体１０１を撮像することによる撮像画像データの取得と、可動ステージによる光学ユニット１０２の移動とを繰り返す。これにより、撮像装置１０３の画角よりサイズが大きい被写体１０１の光沢強度を取得する。具体的には、可動ステージをＸ軸方向に距離Δｘで４箇所、Ｙ軸方向に距離Δｙで４箇所の計１６箇所に逐次移動させることにより、各光学ユニット１０２の位置Ｐｏｓ（ｉ）における撮像画像データを取得する。尚、後述する画像処理装置１の処理において複数の画像データを重複領域で合成してつなぎ合わせるため、図１（ｂ）のように、各撮像画像データが表す領域が隣合う領域に重複領域を設けて撮像を行うようにする。
【００１２】
＜画像処理装置１のハードウェア構成＞
画像処理装置１のハードウェア構成を図２を用いて説明する。画像処理装置１は、例えばコンピュータであり、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３を備える。ＣＰＵ２０１は、ＲＡＭ２０３をワークメモリとして、ＲＯＭ２０２、ＨＤＤ（ハードディスクドライブ）２１３などに格納されたＯＳ（オペレーティングシステム）や各種プログラムを実行する。また、ＣＰＵ２０１は、システムバス２０８を介して各構成を制御する。尚、後述するフローチャートによる処理は、ＲＯＭ２０２やＨＤＤ２１３などに格納されたプログラムコードがＲＡＭ２０３に展開され、ＣＰＵ２０１によって実行される。ＶＣ（ビデオカード）２０４には、ディスプレイ２１５が接続される。汎用Ｉ／Ｆ（インターフェース）２０５には、シリアルバス２０９を介して、マウスやキーボードなどの入力デバイス２１０や光学ユニット１０２、画像形成装置２１１が接続される。ＳＡＴＡ（シリアルＡＴＡ）Ｉ／Ｆ２０６には、シリアルバス２１２を介して、ＨＤＤ２１３や各種記録メディアの読み書きを行う汎用ドライブ２１４が接続される。ＮＩＣ（ネットワークインターフェースカード）２０７は、外部装置との間で情報の入出力を行う。ＣＰＵ２０１は、ＨＤＤ２１３や汎用ドライブ２１４にマウントされた各種記録メディアを各種データの格納場所として使用する。ＣＰＵ２０１は、プログラムによって提供されるＵＩ（ユーザインターフェース）をディスプレイ２１５に表示し、入力デバイス２１０を介して受け付けるユーザ指示などの入力を受信する。また、ＣＰＵ２０１は、上述した方法によって被写体１０１の撮像を行うように光学ユニット１０２を制御する。
＜画像処理装置１の論理構成＞
図３は、本実施例における画像処理装置１の論理構成を示すブロック図である。第１取得部３０５は、入力端子３０１を介して、面光源１０４からの光を照射した被写体１０１を上述の方法で撮像することによって得られた複数の撮像画像データを取得する。取得した撮像画像データは、重複領域データ生成部３０９、幾何変換データ生成部３１１、補正後画像データ生成部３１２へ出力する。第２取得部３０６は、入力端子３０２を介して、面光源１０４からの光を照射した基準板を撮像することによって得られた、第１取得部３０５によって取得された撮像画像データに対してシェーディング補正を行うための補正用画像データを取得する。取得した補正用画像データは、幾何変換データ生成部３１１、補正後画像データ生成部３１２へ出力する。第３取得部３０７は、入力端子３０３を介して、被写体１０１を撮像する際の面光源１０４に関する情報を表す光源データを取得する。取得した光源データは、移動方向データ生成部３１０へ出力する。第４取得部３０８は、入力端子３０４を介して、被写体１０１を撮像する際の撮像装置１０３に関する情報を表す撮像データを取得する。取得した撮像データは、重複領域データ生成部３０９、移動方向データ生成部３１０、合成画像データ生成部３１３へ出力する。
【００１３】
重複領域データ生成部３０９は、複数の撮像画像データと撮像データとに基づいて、各撮像画像データ間で重複する領域を表す重複領域データを生成する。生成した重複領域データは、幾何変換データ生成部３１１、合成画像データ生成部３１３へ出力する。移動方向データ生成部３１０は、光源データと撮像データとに基づいて、補正用画像データが表す補正用画像内に写りこんだ光源に対応する位置を補正用画像内において平行移動させる方向を表す移動方向データを生成する。生成した移動方向データは、幾何変換データ生成部３１１に出力する。幾何変換データ生成部３１１は、複数の撮像画像データと補正用画像データと重複領域データと移動方向データとに基づいて、補正用画像データが表す補正用画像内に写りこんだ光源を幾何変換するための幾何変換データを生成する。生成した幾何変換データは補正後画像データ生成部３１２へ出力する。補正後画像データ生成部３１２は、幾何変換データを用いて、補正用画像データが表す補正用画像内に写りこんだ光源を幾何変換する。さらに、写りこんだ光源が幾何変換された補正用画像データを用いて撮像画像データをシェーディング補正することによって補正後画像データを生成する。生成した補正後画像データは、合成画像データ生成部３１３へ出力する。合成画像データ生成部３１３は、撮像データと補正後画像データと重複領域データとに基づいて、複数の補正後画像データを重複領域で合成することによって合成画像データを生成する。生成した合成画像データは出力端子３１４から出力する。
【００１４】
＜画像処理装置１が実行する処理の流れ＞
図４は、画像処理装置１が実行する処理を示すフローチャートである。詳細には、図４のフローチャートに示す手順を記述したコンピュータで実行可能なプログラムをＲＯＭ２０２からＲＡＭ２０３上に読み込んだ後に、ＣＰＵ２０１によって当該プログラムが実行される。以下、図４に示す各処理について説明する。
【００１５】
ステップＳ４０１において、第１取得部３０５は、入力端子３０１を介して、面光源１０４からの光を照射した被写体１０１を撮像することによって得られた複数の撮像画像データを取得する。ここで取得する撮像画像データは、被写体１０１の光沢を表す光沢情報の２次元分布を記述したデータであり、各位置（画素）における光沢情報を８ビットの画素値に変換したグレースケール画像として扱う。本実施例においては、カラー画像が各画素に有するＲＧＢ値などの色情報を輝度値に変換することによって得られたグレースケール画像を予めＨＤＤ２１３等の記憶装置に記憶させておき、当該記憶装置から当該グレースケール画像を取得する。グレースケール画像の各画素が有する光沢情報としての輝度値は、カラー画像のＧ値であってもよいし、Ｒ値，Ｇ値，Ｂ値について所定の重みによる加重平均の値であってもよい。尚、撮像装置１０３から直接グレースケール画像を取得してもよいし、カラー画像をステップＳ４０１においてグレースケール画像に変換してもよい。取得した複数の撮像画像データは、重複領域データ生成部３０９、幾何変換データ生成部３１１、補正後画像データ生成部３１２へ出力する。
【００１６】
ステップＳ４０２において、第２取得部３０６は、入力端子３０２を介して、面光源１０４からの光を照射した基準板を撮像することによって得られた補正用画像データを取得する。この補正用画像データは、第１取得部３０５によって取得された複数の撮像画像データそれぞれに対してシェーディング補正を行うための画像データである。本実施例においては、基準板を図１に示す光学ユニット１０２の位置Ｐｏｓ（１）における被写体１０１を撮像する画角と略同一の位置に配置し、当該基準板を撮像して得られた画像データを補正用画像データとして取得する。補正用画像データも、ステップＳ４０１で取得した複数の撮像画像データと同じような、各位置（画素）における光沢情報を８ビットの画素値に変換したグレースケール画像である。グレースケール画像の生成及び取得方法についても、ステップＳ４０１において取得した複数の撮像画像データと同様である。尚、基準板には、鏡面を有する平面鏡を用いる。また、基準板は、被写体１０１よりも小さく、ぞれぞれの位置における撮像の画角と略同一の大きさであるとする。取得した補正用画像データは、幾何変換データ生成部３１１、補正後画像データ生成部３１２へ出力する。
【００１７】
ステップＳ４０３において、第３取得部３０７は、入力端子３０３を介して、被写体１０１を撮像する際の面光源１０４に関する情報を表す光源データを取得する。面光源１０４に関する情報は、面光源１０４の位置を表す座標値及び、面光源１０４の面法線の方向を表すベクトルの値である。本実施例における面光源１０４の位置を表す座標値は、点Ｌ（１，０，０）であり、面光源１０４の面法線の方向を表すベクトルの値は、ｎＬ＝（０，０，１）である。取得した光源データは、移動方向データ生成部３１０へ出力する。
【００１８】
ステップＳ４０４において、第４取得部３０８は、入力端子３０４を介して、被写体１０１を撮像する際の撮像装置１０３に関する情報を表す撮像データを取得する。撮像装置１０３に関する情報は、撮像装置１０３の位置を表す座標値、撮像装置１０３の光軸の方向を表すベクトルの値及び、レンズの焦点距離である。本実施例における撮像装置１０３の位置を表す座標値は、点Ｃ（−１，０，０）であり、撮像装置１０３の光軸の方向を表すベクトルの値は、ｎＣ＝（１／√２，０，１／√２）である。また、３５ｍｍ判換算のレンズの焦点距離は５０ｍｍである。取得した撮像データは、重複領域データ生成部３０９、移動方向データ生成部３１０、合成画像データ生成部３１３へ出力する。
【００１９】
ステップＳ４０５において、重複領域データ生成部３０９は、複数の撮像画像データと撮像データとに基づいて、各撮像画像データ間で重複する領域を表す重複領域データを生成する。本ステップにおける処理の詳細は後述する。生成した重複領域データは、幾何変換データ生成部３１１、合成画像データ生成部３１３へ出力する。ステップＳ４０６において、移動方向データ生成部３１０は、光源データと撮像データとに基づいて、補正用画像データが表す補正用画像内に写りこんだ光源に対応する位置を補正用画像内において平行移動させる方向を表す移動方向データを生成する。本ステップにおける処理の詳細は後述する。生成した移動方向データは、幾何変換データ生成部３１１に出力する。ステップＳ４０７において、幾何変換データ生成部３１１は、複数の撮像画像データと補正用画像データと重複領域データと移動方向データとに基づいて、補正用画像データが表す補正用画像内に写りこんだ光源を幾何変換するための幾何変換データを生成する。本ステップにおける処理の詳細は後述する。生成した幾何変換データは補正後画像データ生成部３１２へ出力する。
【００２０】
ステップＳ４０８において、補正後画像データ生成部３１２は、幾何変換データを用いて、補正用画像データが表す補正用画像内に写りこんだ光源を幾何変換する。さらに、写りこんだ光源が幾何変換された補正用画像データを用いて撮像画像データをシェーディング補正することによって補正後画像データを生成する。具体的には、まず、ステップＳ４０７において算出した拡縮量に基づいて、補正用画像データが表す補正用画像内に写りこんだ光源の大きさを拡大又は縮小する。光源の大きさの拡大又は縮小は、写り込む光源の中心に対応する画素を中心に行う。具体的には、補正用画像の重心を、写り込む光源の中心として公知の方法によって算出し、拡大又は縮小を行う。また、光源の大きさの拡大又は縮小には公知のバイリニア法を用いるが、バイキュービック法や二アレストネイバー法などを用いてもよい。次に、ステップＳ４０７において算出した移動量に基づいて、補正用画像データが表す補正用画像内に写りこんだ光源の位置を平行移動させる。例えば、画像の横方向がＵ軸、画像の縦方向がＶ軸である場合の移動量（ｕ，ｖ）が（１０，１０）であった場合、補正用画像内の各画素をＵ軸方向に＋１０、Ｖ軸方向に＋１０移動させる。この場合、シェーディング補正における除算によって誤った補正をしないために、平行移動によって画素値のない左下の領域の画素値は１にしておく。次に、上述のように画素値が補正された補正用画像データを用いて、ステップＳ４０１において取得した複数の撮像画像データに対して公知のシェーディング補正による除算を行う。図８（ａ）は、シェーディング補正を行う前の撮像画像である。補正用画像（図８（ｂ））を移動量及び拡縮量に基づいて補正した画像が図８（ｃ）である。図８（ａ）の撮像画像の画素値を、図８（ｃ）の補正用画像の画素値で除算することによって、図８（ｄ）の補正後画像を得ることができる。生成した補正後画像データは、合成画像データ生成部３１３へ出力する。
【００２１】
ステップＳ４０９において、合成画像データ生成部３１３は、撮像データと補正後画像データと重複領域データとに基づいて、複数の補正後画像データを合成することによって、１つの合成画像を表す合成画像データを生成する。具体的には、まず、補正後画像データそれぞれに対して撮像データに基づいた公知の射影変換処理を行う。
【００２２】
以下において射影変換処理を説明する。まず、撮像装置１０３を原点Ｏに、（０，０，１）の向きに配置し、被写体１０１をｚ＝１の平面上に配置した場合の、撮像画像の画角四隅の画素位置に対応する被写体１０１上の三次元位置を以下の式（１）に従って算出する。
【００２３】
【数１】
2018191050.tif 000003
（Ｕ１，Ｖ１）〜（Ｕ４，Ｖ４）は、それぞれ画角四隅の左上、右上、右下、左下の画素位置である。本実施例においては、（Ｕ１，Ｖ１）＝（１，１）、（Ｕ２，Ｖ２）＝（２５６，１）、（Ｕ３，Ｖ３）＝（２５６，２５６）、（Ｕ４，Ｖ４）＝（１，２５６）である。（Ｘ１，Ｙ１，Ｚ１）〜（Ｘ４，Ｙ４，Ｚ４）は、それぞれ画角四隅の画素位置（Ｕ１，Ｖ１）〜（Ｕ４，Ｖ４）に対応する被写体１０１上の三次元位置である。本実施例においては、Ｚ１〜Ｚ４＝１である。ｆは撮像装置１０３のレンズの焦点距離である。ｃｘ，ｃｙは撮像画像上の光軸中心の画素位置であり、本実施例ではｃｘ＝ｃｙ＝１２８とする。次に、算出したｚ＝１の平面上の被写体１０１と撮像装置１０３とが正対する際の画角四隅の三次元位置から、撮像装置１０３の光学中心Ｃを原点、光軸ｎＣをｚ軸とする座標系（カメラ座標系）に変換した三次元位置を以下の式（２）に従って算出する。
【００２４】
【数２】
2018191050.tif 000004
（Ｘ１´，Ｙ１´，Ｚ１´）〜（Ｘ４´，Ｙ４´，Ｚ４´）は、被写体１０１と撮像装置１０３とが正対する際の画角四隅の三次元位置（Ｘ１，Ｙ１，Ｚ１）〜（Ｘ４，Ｙ４，Ｚ４）をカメラ座標系に変換した三次元位置である。Ｒｏｔ（φ，θ）は以下の式（３）に示す、三次元位置をＸ軸を中心とした反時計方向にφ回転させ、光学ユニット１０２のＹ軸を中心とした反時計方向にθ回転させる回転行列である。
【００２５】
【数３】
2018191050.tif 000005
本実施例においては、ｎｃ＝（１／√２，０，１／√２）なので、φ＝０°，θ＝４５°となる。
【００２６】
更に、以下の式（４）に従い、点Ｃの位置にｎＣの向きで配置した撮像装置１０３の撮像画像に写る三次元位置（Ｘ１´，Ｙ１´，Ｚ１´）〜（Ｘ４´，Ｙ４´，Ｚ４´）に対応する画素位置（ｕ１，ｖ１）〜（ｕ４，ｖ４）を算出する。
【００２７】
【数４】
2018191050.tif 000006
画素位置（Ｕ１，Ｖ１）〜（Ｕ４，Ｖ４）と画素位置（ｕ１，ｖ１）〜（ｕ４，ｖ４）とから、以下の式（５）を満たす射影変換行列Ｐｒｏｊを算出する。
【００２８】
【数５】
2018191050.tif 000007
Ｐｒｏｊは、以下の式（６）に示す、撮像画像の画素位置（ｕ，ｖ）を被写体１０１と撮像装置１０３とが正対する際の画素位置（Ｕ，Ｖ）に変換する３×３行列である。
【００２９】
【数６】
2018191050.tif 000008
射影変換行列Ｐｒｏｊは、ａ〜ｈの８個の未知パラメータで構成されており、以下の式（７）に従って各未知パラメータを算出する。
【００３０】
【数７】
2018191050.tif 000009
以上の射影変換処理により、撮像装置１０３が被写体１０１に対して傾いた角度で撮像した平面を、被写体１０１に対して正対した状態で撮像した場合の平面に射影することができる。
【００３１】
次に、射影変換処理を施した複数の補正後画像データのうち隣り合った画像データ同士を、対応する重複領域データが表す重複領域において合成する。合成には、公知のαブレンディング処理を用いる。合成によって得られた合成画像データは、出力端子３１４から出力する。出力先としては、ＨＤＤ２１３等の記憶装置でもよいし、画像形成装置２１１など他のデバイスでもよい。尚、合成によって得られた合成画像データは、８ｂｉｔのグレースケール画像データである。
【００３２】
＜重複領域データを生成する処理（Ｓ４０５）の流れ＞
以下では、ステップＳ４０５における重複領域データを生成する処理の詳細について図５のフローチャートを用いて説明する。
【００３３】
ステップＳ５０１において、ステップＳ４０１において取得した撮像画像データそれぞれを識別するための番号ｉについて、ｉ＝１に初期化する。ステップＳ５０２において、撮像画像データｉに対して撮像データに基づいた公知の射影変換処理を行う。射影変換は、上述した方法と同様の方法で行う。射影変換した撮像画像データｉはＲＯＭ２０２等に記憶する。ステップＳ５０３において、ｉ＞１を満たすか否かを判定する。ｉ＞１を満たす場合は、撮像画像データｉ−１と撮像画像データｉとの間の重複領域を算出できると判定し、ステップＳ５０４へ移行する。ｉ＞１を満たさない場合は、ステップＳ５０５へ移行する。
【００３４】
ステップＳ５０４において、射影変換した撮像画像データｉ−１と撮像画像データｉとの間で重複する領域を表す重複領域データＲ（ｉ）を生成する。本実施例においては図９に示すように、撮像画像のＸ軸方向の画角１５０ｍｍ、Ｙ軸方向の画角１００ｍｍに対し、撮像画像ｉと撮像画像ｉ−１との間で撮像装置１０３の位置がＸ軸方向に１２０ｍｍ移動している。従って、図９の斜線部に示す撮像画像ｉの左端から３０ｍｍ、撮像画像ｉ−１の右端から３０ｍｍの画素領域が重複領域として算出される。当該重複領域を表す重複領域データＲ（ｉ）は、撮像画像データｉと同じサイズの画像データであり、各画素に画素値として１又は０が記録されている。１は重複領域を表し、０は重複領域ではない領域を表す。生成した重複領域データＲ（ｉ）はＲＯＭ２０２等に記憶する。
【００３５】
ステップＳ５０５において、ｉ＝ｉ＋１に更新する。ステップＳ５０６において、ｉ＞Ｎを満たすか否かを判定する。Ｎは撮像画像データの総数である。ｉ＞Ｎを満たす場合は、全ての重複領域について重複領域データを生成したと判定し、ステップＳ４０６に移行する。ｉ＞Ｎを満たさない場合は、ステップＳ５０２に戻る。
【００３６】
＜移動方向データを生成する処理（Ｓ４０６）の流れ＞
以下では、ステップＳ４０６における移動方向データを生成する処理の詳細について図６のフローチャートを用いて説明する。本実施例においては、光学ユニットの位置Ｐｏｓ（ｉ）において撮像を行った場合の撮像画像に写り込む光源の中心位置と、Ｐｏｓ（ｉ＋ｊ）において撮像を行った場合の撮像画像の写り込む光源の中心位置とのずれの方向を移動方向として算出する。このずれは、上述したように、光学ユニット１０２に対する被写体１０１の略平面の傾きにより生じる。
【００３７】
ステップＳ６０１において、光学ユニット１０２の位置Ｐｏｓ（ｉ），Ｐｏｓ（ｉ＋ｊ）において被写体１０１と略同一の位置に配置した平面鏡に鏡像として写り込む光源の中心位置点Ｌ’ｉ，Ｌ’ｉ＋ｊを算出する。
【００３８】
具体的には、図１１に示すように、光学ユニット１０２の位置の原点Ｏを基準とした点Ｌ’ｉ，Ｌ’ｉ＋ｊの位置を以下の式（８）、式（９）に従い算出する。
【００３９】
【数８】
2018191050.tif 000010
【００４０】
【数９】
2018191050.tif 000011
Ｌｘ，Ｌｙは光源位置Ｌのｘ座標とｙ座標であり、本実施例においてはＬｘ＝１，Ｌｙ＝０である。Ｍｉ，Ｍｉ＋ｊは光学ユニットの位置Ｐｏｓ（ｉ），Ｐｏｓ（ｉ＋ｊ）における平面鏡の位置である。平面鏡の略平面がＸ軸に対して−Δθ傾いている為に、点Ｍｉ＋ｊが点Ｍｉよりも距離ｋだけ原点Ｏに近くなっている。算出した光源位置Ｌ’ｉ，Ｌ’ｉ＋ｊはＲＯＭ２０２等に記憶する。
【００４１】
ステップＳ６０２において、ステップＳ６０１において算出した光源位置から、撮像装置１０３の光学中心Ｃを原点、光軸ｎＣをｚ軸とする座標系（カメラ座標系）に変換した光源位置Ｌ’ｉＣＡＭ，Ｌ’ｉ＋ｊＣＡＭを式（１０）、式（１１）に従い算出する。
【００４２】
【数１０】
2018191050.tif 000012
【００４３】
【数１１】
2018191050.tif 000013
Ｒｏｔ（φ，θ）は以下の式（３）に示す回転行列である。本実施例においては、ｎｃ＝（１／√２，０，１／√２）なので、φ＝０°，θ＝４５°となる。算出した光源位置Ｌ’ｉＣＡＭ，Ｌ’ｉ＋ｊＣＡＭはＲＯＭ２０２等に記憶する。
【００４４】
ステップＳ６０３において、ステップＳ６０２において算出した光源位置Ｌ’ｉＣＡＭ，Ｌ’ｉ＋ｊＣＡＭの撮像画像上における画素位置Ｌ’ｉＵＶ，Ｌ’ｉ＋ｊＵＶを以下の式（１２）、式（１３）に従い算出する。
【００４５】
【数１２】
2018191050.tif 000014
【００４６】
【数１３】
2018191050.tif 000015
ｆは撮像装置１０３のレンズの焦点距離である。ｃｘ，ｃｙは撮像画像上の光軸中心の画素位置であり、本実施例においてはｃｘ＝ｃｙ＝１２８とする。算出した画素位置Ｌ’ｉＵＶ，Ｌ’ｉ＋ｊＵＶはＲＯＭ２０２等に記憶する。
【００４７】
ステップＳ６０４において、ステップＳ６０３において算出した画素位置Ｌ’ｉＵＶ，Ｌ’ｉ＋ｊＵＶから、以下の式（１４）に従い撮像画像上における光源の移動方向Ｌ’ｉＬ’ｉ＋ｊＵＶを算出する。
【００４８】
【数１４】
2018191050.tif 000016
ここで、φ＝０°，θ＝４５°とすると、撮像画像上における光源の移動方向Ｌ’ｉＬ’ｉ＋ｊＵＶは、以下の式（１５）のようになる。
【００４９】
【数１５】
2018191050.tif 000017
ここでΔθは光学ユニット１０２と被写体１０１の平行出しにおける配置誤差に伴う微小な傾きであるため、ｓｉｎΔθ≒０，ｃｏｓΔθ≒１と近似している。
Ｌｘ，Ｌｙは面光源１０４の位置Ｌのｘ座標とｙ座標であり、Ｌｘ＝１，Ｌｙ＝０である。Ｃｘ，Ｃｙは撮像装置１０３の位置Ｃのｘ座標とｙ座標であり、Ｃｘ＝−１，Ｃｙ＝０である。算出した光源の移動方向Ｌ’ｉＬ’ｉ＋ｊＵＶはＲＯＭ２０２等に記憶する。
【００５０】
ステップＳ６０５において、ステップＳ６０４において算出した光源の移動方向Ｌ’ｉＬ’ｉ＋ｊＵＶのｕ成分、ｖ成分から、以下の式（１６）に従い、光源の移動方向を表す直線式の係数α，βを算出する。
【００５１】
【数１６】
2018191050.tif 000018
尚、光源の移動方向を表す直線式は、以下の式（１７）に従い、原点を通る直線方程式として表すことができる。
【００５２】
【数１７】
2018191050.tif 000019
ここで、以下の式（１８）に示す係数Ｋが取り得る値について説明する。
【００５３】
【数１８】
2018191050.tif 000020
距離ｋは光学ユニット１０２の位置Ｐｏｓ（ｉ）とＰｏｓ（ｉ＋ｊ）との間における光学ユニットの位置から平面鏡までの距離の差分であり、０＜ｋ＜ｄ−Ｌｘ／２を満たす。従って、図１２に示すように０＜ｋ＜ｄ−Ｌｘ／２の範囲において係数Ｋは距離ｋに対して正の値をとる単調増加関数となる。光源の移動方向を表す直線式は式（１６）に示す方程式を満たし、Ｋ≠０なので、式（１５）で算出したα，βからＫを除算することにより、以下の式（１９）、式（２０）に示す、光源の移動方向を表す直線式の係数α、βを算出する。
【００５４】
【数１９】
2018191050.tif 000021
【００５５】
【数２０】
2018191050.tif 000022
Ｌｘ＝１，Ｌｙ＝０，Ｃｘ＝−１，Ｃｙ＝０であるため、α＝０となる。よって式（１７）は、ｖ＝０となり、撮像画像上における光源の移動方向はＵ軸方向となる。算出した光源の移動方向を表す直線式の係数α、βを移動方向データとしてＲＯＭ２０２等に記憶し、ステップＳ４０７に移行する。
【００５６】
＜幾何変換データを生成する処理（Ｓ４０７）の流れ＞
以下では、ステップＳ４０７における幾何変換データを生成する処理の詳細について図７のフローチャートを用いて説明する。尚、幾何変換データは、以下に示す拡縮量と移動量とを表すデータである。
【００５７】
ステップＳ７０１において、撮像画像データの番号ｉについて、ｉ＝２に初期化する。ステップＳ７０２において、補正用画像に写り込む光源の大きさを拡大又は縮小するための倍率（拡縮量）を設定する。所定の範囲１−ΔＴ＜Ｔ＜１＋ΔＴ内でシェーディング画像を拡縮させる倍率を拡縮量Ｔｉ−１，Ｔｉとして設定する。本実施例においては、Ｔｉ−１＝１，Ｔｉ＝１．１を初期値として設定する。設定した拡縮量Ｔｉ−１，ＴｉはＲＯＭ２０２等に記憶する。
【００５８】
ステップＳ７０３において、Ｕ軸上の所定の範囲−Δｕ＜ｕ＜＋Δｕ内で補正用画像内に写り込む光源を平行移動させる画素数を移動量（ｕｉ−１，ｖｉ−１），（ｕｉ，ｖｉ）として設定する。本実施例においては、ｕｉ−１＝０，ｕｉ＝１０を初期値として設定する。この初期値ｕｉ−１，ｕｉと光源の移動方向を表す直線式を特定するα，βとに基づいて、ｖｉ−１，ｖｉを算出する。具体的には、ｕｉ−１＝０，ｕｉ＝１０及びα，βを式（１７）に代入することによってｖｉ−１，ｖｉを算出する。尚、本実施例においては、Ｕ軸（画像の横方向）上の移動のみであるため、Ｖ軸（画像の縦方向）上の移動を表すｖｉ−１，ｖｉは使用しない。設定した移動量（ｕｉ−１，ｖｉ−１），（ｕｉ，ｖｉ）はＲＯＭ２０２等に記憶する。
【００５９】
ステップＳ７０４において、補正用画像に写り込む光源の大きさを拡縮量Ｔｉ−１，Ｔｉだけ光源を中心に拡縮させる。拡大又は縮小には、上述したように、公知のバイリニア法などを用いる。補正用画像に写り込む光源をＴｉ−１＝１に基づいて拡縮した結果を図１３（ａ）に示し、補正用画像に写り込む光源をＴｉ＝１．１に基づいて拡縮した結果を図１３（ｂ）に示す。補正用画像に写り込む光源の大きさを拡縮させた補正用画像データはＲＯＭ２０２等に記憶する。
【００６０】
ステップＳ７０５において、ステップＳ７０４において拡縮した光源を、移動量（ｕｉ−１，ｖｉ−１），（ｕｉ，ｖｉ）だけ補正用画像内で平行移動させる。補正用画像に写り込む光源を（ｕｉ−１，ｖｉ−１）＝（０，０）に基づいて平行移動した結果を図１３（ｃ）に示し、補正用画像に写り込む光源を（ｕｉ，ｖｉ）＝（１０，１０）に基づいて平行移動した結果を図１３（ｄ）に示す。拡縮した光源を平行移動させた補正用画像データはＲＯＭ２０２等に記憶する。
【００６１】
ステップＳ７０６において、撮像画像データｉ−１，ｉそれぞれに対して、写り込む光源を拡縮及び平行移動させた図１３（ｃ）、（ｄ）に示す補正用画像データを用いたシェーディング補正を行う。シェーディング補正を施した撮像画像データｉ−１，ｉはＲＯＭ２０２等に記憶する。
【００６２】
ステップＳ７０７において、重複領域データＲ（ｉ）に基づいて、シェーディング補正を施した撮像画像データｉ−１とシェーディング補正を施した撮像画像データｉとの重複領域における画素値の差分を算出する。具体的には、各画素の差分を算出し、当該各画素の差分を平均することによって差分値Ｄを算出する。差分値ＤはＲＯＭ２０２等に記憶する。
【００６３】
ステップＳ７０８において、差分値Ｄ＜Δｔｈを満たすか否かを判定する。差分＜Δｔｈを満たす場合は、ステップＳ４０９における合成処理によって重複領域に歪み（段差）を生じさせないために十分な拡縮量及び移動量を算出したと判定し、ステップＳ７０９に移行する。差分値Ｄ＜Δｔｈを満たさない場合は、ステップＳ７１１に移行し、ｕｉ及びＴｉを更新してステップＳ７０２に戻る。本実施例においては、ｕｉ＝ｕｉ＋５，Ｔｉ＝Ｔｉ＋０．１とするが、更新の値は上記の値に限定されない。尚、ステップＳ７０２に戻る際のｕｉとＴｉとの更新を片方のみ行ってもよいし、交互に行うようにしてもよい。
【００６４】
ステップＳ７０９において、ｉ＝ｉ＋１に更新する。ステップＳ７１０において、ｉ＞Ｎを満たすか否かを判定する。ｉ＞Ｎを満たす場合は、全ての撮像画像データに対応する幾何変換データを生成したと判定し、ステップＳ４０８に移行する。ｉ＞Ｎを満たさない場合は、ステップＳ７１２に移行し、初期値ｕｉ及びＴｉをそれぞれ１０及び１．１に初期化してステップＳ７０２に戻る。
【００６５】
＜画像処理装置１が実行する処理の結果について＞
図１４（ａ）は光沢を有する被写体を表す図である。被写体の顔に対応する領域は光沢強度が高く、服に対応する領域は光沢強度が中程度、背景に対応する領域は光沢強度が低くなっているとする。図１４（ｂ）に、本実施例における処理を施さずに、被写体を分割撮像することによって得られた複数の画像に通常のシェーディング補正を施した後合成した結果を示す。つまり、本実施例における幾何変換データによる補正用画像データの補正を行わずにシェーディング補正を行った場合の処理の結果である。この場合、Ｘ軸に対して被写体の略平面が−Δθ傾いている為に、各Ｐｏｓ（ｉ）におけるシェーディング補正の際の誤差が発生し、合成画像データ内における合成する前の画像の境界領域（重複領域）で段差（歪み）が生じている。
【００６６】
次に、図１４（ｃ）に、本実施例における処理を施して得られる合成画像データが表す合成画像を示す。本実施例においては、Ｐｏｓ（ｉ）の撮像画像データの重複領域内のシェーディング補正の誤差が所定の閾値以下となるように、補正用画像データを補正する。これにより、光学ユニットと被写体との間の傾きに伴うシェーディング補正の誤差が低減され、合成した際に図１４（ｂ）に示すような段差が生じない合成画像データを得ることができる。
【００６７】
以上に示した処理を施すことにより、被写体を複数の領域に分割して撮像することによって得られる画像の歪みを低減することができる。さらに、それら複数の画像を合成することによって生じる歪みを低減することができる。
【００６８】
＜変形例＞
本実施例においては、撮像装置１０３を点Ｃの位置にｎＣの向きで配置し、縦１、横１の大きさの面光源１０４を点Ｌの位置にｎＬの向きで配置したが、上記一例には限定されない。
【００６９】
本実施例においては、被写体１０１が油彩画であるとして説明したが、上記一例には限定されない。被写体１０１は油彩画のような凹凸を有している必要はなく、光沢についても、表面全面で正反射光（光沢）が取得できる被写体であればよい。
【００７０】
本実施例においては、基準板を鏡面を有する平面鏡としたが、鏡面に近い反射特性を有する基準板であれば鏡面を有していなくてもよい。
【００７１】
本実施例においては、光学ユニット１０２の移動方向に隣接する２枚の撮像画像データｉ−１，ｉ間で重複領域データを生成したが、上記一例には限定されない。例えば、撮像画像データｉに対して上下左右に隣接する撮像画像データと重複する領域を算出してもよい。
【００７２】
本実施例においては、光学ユニット１０２の移動方向に隣接する２枚の撮像画像データｉ−１，ｉからシェーディング補正の誤差が所定の閾値以下となる幾何条件データを生成したが、上記一例には限定されない。例えば、撮像画像データｉに対して上下左右に隣接する撮像画像データからシェーディング補正の誤差が所定の閾値以下となる幾何条件データを生成しても良い。
【００７３】
本実施例においては、被写体１０１の配置の誤差により被写体１０１の略平面がＸ軸に対して傾いている場合について説明したが上記一例には限定されない。例えば、被写体の略平面がＹ軸方向に対して傾いていても上記の処理を適用できる。この場合、被写体１０１の上下端間で被写体の略平面及び略平面上に写り込む光源位置のずれが生じるので、光源位置のずれから、補正用画像内に写り込む光源の平行移動方向を算出すれば良い。
【００７４】
本実施例においては、幾何変換データとして、補正用画像内に写り込む光源の移動量及び拡縮量を算出したが、上記一例には限定されない。例えば、被写体１０１の配置の誤差及び被写体１０１のたわみにより、被写体１０１の略平面がＸ軸及びＹ軸方向ともに傾いている場合がある。この場合、重複領域における各撮像画像間のシェーディング補正誤差が所定の閾値以下となる射影変換行列データを幾何変換データとして生成しても良い。
【００７５】
本実施例においては、処理の結果として合成画像データを出力する例を示したが、上記一例には限定されない。例えば、ステップＳ４０７までの処理を行って得られた幾何変換データを出力し、処理を終了してもよい。また、ステップＳ４０８までの処理を行って得られた補正後画像データを出力し、処理を終了してもよい。
【００７６】
本実施例においては、差分値Ｄ＜Δｔｈを満たした拡縮量と移動量とを幾何変換データとしたが、上記一例に限定されない。１−ΔＴ＜Ｔ＜１＋ΔＴ及び−Δｕ＜ｕ＜＋Δｕの範囲内で全ての拡縮量と移動量との組み合わせについて差分値Ｄを算出し、差分値Ｄが最少となる拡縮量と移動量との組み合わせを幾何変換データとしてもよい。
【００７７】
本実施例においては、ステップＳ４０８において補正後画像データを生成したが、上記一例には限定されない。例えば、ステップＳ７０８の処理において差分値Ｄ＜Δｔｈを満たした場合の拡縮量と移動量とによって補正されＲＯＭ２０２等に記憶された、補正後画像データを直接合成画像データ生成部３１３に出力してもよい。この場合、ステップＳ４０８の処理は行わない。
【００７８】
本実施例においては、ステップＳ４０６において、光源データと撮像データとに基づいて移動方向データを生成したが、上記一例には限定されない。例えば、第１取得部３０５が取得する複数の撮像画像データにおける重心の位置を算出し、隣合う画像同士の重心の位置のずれを表すベクトルを移動方向データとして算出してもよい。また、移動方向を特定する情報をユーザに入力させるＵＩ画面をディスプレイ２１５に表示させ、ユーザから受け付けた情報を移動方向データとしてもよい。
【００７９】
本実施例においては、ステップＳ４０８において、幾何変換データを用いて、補正用画像データが表す補正用画像内に写り込んだ光源を幾何変換する。その後、写り込んだ光源が幾何変換された補正用画像データを用いて撮像画像データをシェーディング補正することによって補正後画像データを生成したが、上記一例に限定されない。例えば、幾何変換データと補正用画像データとを用いて、一度に撮像画像データをシェーディング補正してもよい。
【００８０】
［実施例２］
＜実施例１との差分について＞
実施例１においては、微細な凹凸を有する被写体１０１を撮像することによって得られた複数の撮像画像データにおける歪みを低減する方法を説明した。本実施例においては、被写体１０１が凹凸の大きい物体である為に光源照明下で被写体を撮像する際に影が生じる場合であっても、分割撮像して得られた複数の撮像画像データの歪みを低減する方法について説明する。本実施例の処理の流れは、重複領域データを生成する処理（Ｓ４０５）以外は実施例１と同様であるため、説明を省略する。
【００８１】
＜重複領域データを生成する処理（Ｓ４０５）の流れ＞
以下、本実施例において重複領域データ生成部３０９が実行する重複領域データを生成する処理（Ｓ４０５）の詳細を図１５を用いて説明する。
【００８２】
ステップ５０１〜ステップＳ５０４は実施例１と同様の処理を行うため、説明を省略する。
【００８３】
ステップＳ１５０１において、撮像画像データｉ−１における重複領域データＲ（ｉ）が表す重複領域内の影領域Ｓ（ｉ，ｉ−１）を算出する。本実施例においては、図１６（ａ）に示す撮像画像データｉ−１における重複領域Ｒ（ｉ）内の画素値に対して、２値化処理により所定の閾値以下の領域を抽出する。この抽出された領域を、図１６（ｂ）に示す影領域Ｓ（ｉ，ｉ−１）とする。算出した影領域Ｓ（ｉ，ｉ−１）はＲＯＭ２０２等に記憶する。
【００８４】
ステップＳ１５０２において、撮像画像データｉにおける重複領域データＲ（ｉ）が表す重複領域内の影領域Ｓ（ｉ，ｉ）を算出する。本実施例においては、図１６（ｃ）に示す撮像画像データｉにおける重複領域Ｒ（ｉ）内の画素値に対して、２値化処理により所定の閾値以下の領域を抽出する。この抽出された領域を、図１６（ｄ）に示す影領域Ｓ（ｉ，ｉ）とする。光学ユニット１０２の位置Ｐｏｓ（ｉ−１）とＰｏｓ（ｉ）との違いにより、被写体の凹凸で影が生じる領域が変わる為、影領域Ｓ（ｉ，ｉ−１）とＳ（ｉ，ｉ）とは異なる領域となっている。算出した影領域Ｓ（ｉ，ｉ）はＲＯＭ２０２等に記憶する。
【００８５】
ステップＳ１５０３において、重複領域データＲ（ｉ）が表す重複領域から、ステップＳ１５０１で算出した影領域Ｓ（ｉ，ｉ−１）を除外する。つまり、重複領域データＲ（ｉ）の画素値が１である領域（重複領域）について、影領域Ｓ（ｉ，ｉ−１）に対応する領域の画素値を０にする。図１６（ｂ）に示す影領域Ｓ（ｉ，ｉ−１）を重複領域から除外することにより、図１６（ｅ）に示す重複領域を表す重複領域データＲ（ｉ）が生成される。影領域Ｓ（ｉ，ｉ−１）が除外された重複領域データＲ（ｉ）はＲＯＭ２０２等に記憶する。
【００８６】
ステップＳ１５０４において、ステップＳ１５０３において影領域Ｓ（ｉ，ｉ−１）が除外された重複領域データＲ（ｉ）から、ステップＳ１５０２において算出した影領域Ｓ（ｉ，ｉ）を除外する。つまり、重複領域データＲ（ｉ）の画素値が１である領域（重複領域）について、影領域Ｓ（ｉ，ｉ）に対応する領域の画素値を０にする。図１６（ｅ）に示す重複領域を表す重複領域データＲ（ｉ）から図１６（ｄ）に示す影領域Ｓ（ｉ，ｉ）を除外することにより、図１６（ｆ）に示す重複領域を表す重複領域データＲ（ｉ）が生成される。除外した重複領域Ｒ（ｉ）は所定の記憶領域に記憶する。
【００８７】
ステップ５０５及びステップＳ５０６は実施例１と同様の処理を行うため、説明を省略する。
【００８８】
以上のように、各光学ユニットの位置における撮像によって撮像画像に生じる影領域を算出して重複領域から除外することにより、影によるシェーディング補正の精度低下を抑制することができる。よって、被写体を複数の領域に分割して撮像することによって得られる画像の歪みを低減することができる。さらに、それら複数の画像を合成することによって生じる歪みを低減することができる。
【００８９】
［その他の実施例］
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９０】
１  画像処理装置
３０５  第１取得部
３０６  第２取得部
３１１  幾何変換データ生成部
【図１】
2018191050.tif 000023
【図２】
2018191050.tif 000024
【図３】
2018191050.tif 000025
【図４】
2018191050.tif 000026
【図５】
2018191050.tif 000027
【図６】
2018191050.tif 000028
【図７】
2018191050.tif 000029
【図８】
2018191050.tif 000030
【図９】
2018191050.tif 000031
【図１０】
2018191050.tif 000032
【図１１】
2018191050.tif 000033
【図１２】
2018191050.tif 000034
【図１３】
2018191050.tif 000035
【図１４】
2018191050.tif 000036
【図１５】
2018191050.tif 000037
【図１６】
2018191050.tif 000038