(57)【要約】【課題】合成する画像の数にかかわりなく、正確な合成を行うことが可能で、また、色ムラの発生を抑止することが可能な画像処理装置、カメラ装置、画像処理方法、およびプログラムを提供する。【解決手段】選択した複数の画像を境界が重なるようにして、各境界においてブロックマッチングを行って各境界について合成を行って所定のパラメータを抽出し、当該パラメータに基づいて合成対象の全ての境界についてブロックマッチングを行い、すべての境界について同時並列的にブロックマッチングの結果の評価を行い、すべての境界の誤差が小さくなるように光軸の方向を更新して誤差を小さくしていくようにして合成を行う合成処理部１４２を有する。【選択図】図１
2008117235.tif 000002
【特許請求の範囲】
【請求項１】
一点から方向を変えて複数回撮影した画像を１枚に合成する機能を有する合成処理部を有し、
前記合成処理部は、
選択した複数の画像を境界が重なるようにして、各境界においてブロックマッチングを行って各境界について合成を行って所定のパラメータを抽出し、当該パラメータに基づいて合成対象の全ての境界についてブロックマッチングを行い、すべての境界について同時並列的にブロックマッチングの結果の評価を行い、すべての境界の誤差が小さくなるように光軸の方向を更新して誤差を小さくしていくようにして合成を行う
画像処理装置。
【請求項２】
前記合成処理部は、
前記パラメータを抽出するときは、ひとつの境界に少なくとも３個のブロックマッチングを行い、最低４枚の境界について合成を行い、これが正確になるように補正係数を決めて行く
請求項１記載の画像処理装置。
【請求項３】
前記合成処理部は、
パラメータが決まった後は、すべての境界に少なくとも１個のブロックマッチングを行い、すべての境界について同時並列的にブロックマッチングの結果の評価を行い、すべての境界の誤差が小さくなるように光軸の方向を更新して誤差を小さくしていく
請求項１記載の画像処理装置。
【請求項４】
前記合成処理部は、
パラメータが決まった後は、すべての境界に少なくとも１個のブロックマッチングを行い、すべての境界について同時並列的にブロックマッチングの結果の評価を行い、すべての境界の誤差が小さくなるように光軸の方向を更新して誤差を小さくしていく
請求項２記載の画像処理装置。
【請求項５】
前記合成処理部は、
基準画像を除く画像を平行移動して最も誤差が小さくなるように収束させる
請求項１記載の画像処理装置。
【請求項６】
前記合成処理部は、
基準画像を除く画像を平行移動して最も誤差が小さくなるように収束させる
請求項４記載の画像処理装置。
【請求項７】
前記合成処理部は、
合成対象のすべての部分画像に対して周辺減光補正、コントラスト強調、彩度強調、ガンマ補正を一様に行う機能を有する
請求項１記載の画像処理装置。
【請求項８】
前記合成処理部は、
合成対象のすべての部分画像に対して周辺減光補正、コントラスト強調、彩度強調、ガンマ補正を一様に行う機能を有する
請求項４記載の画像処理装置。
【請求項９】
前記合成処理部は、
合成後において、隣接する画像間の色の違いを減少させるため、すべての部分画像に対して色補正を独立に行う機能を有する
請求項１記載の画像処理装置。
【請求項１０】
前記合成処理部は、
合成後において、隣接する画像間の色の違いを減少させるため、すべての部分画像に対して色補正を独立に行う機能を有する
請求項８記載の画像処理装置。
【請求項１１】
前記合成処理部は、
合成後において、隣接する画像間の色の不連続を検知限界以下まで減少させるための色補正機能を有する
請求項１記載の画像処理装置。
【請求項１２】
合成処理部は、
合成後において、隣接する画像間の色の不連続を検知限界以下まで減少させるための色補正機能を有する
請求項１０記載の画像処理装置。
【請求項１３】
撮像素子と、
前記撮像素子に被写体像を結像する光学系と、
前記撮像素子の出力画像信号を処理する画像処理装置と、を有し、
前記画像処理装置は、
一点から方向を変えて複数回撮影した画像を１枚に合成する機能を有する合成処理部を有し、
前記合成処理部は、
選択した複数の画像を境界が重なるようにして、各境界においてブロックマッチングを行って各境界について合成を行って所定のパラメータを抽出し、当該パラメータに基づいて合成対象の全ての境界についてブロックマッチングを行い、すべての境界について同時並列的にブロックマッチングの結果の評価を行い、すべての境界の誤差が小さくなるように光軸の方向を更新して誤差を小さくしていくようにして合成を行う
カメラ装置。
【請求項１４】
前記合成処理部は、
基準画像を除く画像を平行移動して最も誤差が小さくなるように収束させる
請求項１３記載のカメラ装置。
【請求項１５】
前記合成処理部は、
合成対象のすべての部分画像に対して周辺減光補正、コントラスト強調、彩度強調、ガンマ補正を一様に行う機能を有する
請求項１３記載のカメラ装置。
【請求項１６】
前記合成処理部は、
合成後において、隣接する画像間の色の違いを減少させるため、すべての部分画像に対して色補正を独立に行う機能を有する
請求項１３記載のカメラ装置。
【請求項１７】
前記合成処理部は、
合成後において、隣接する画像間の色の不連続を検知限界以下まで減少させるための色補正機能を有する
請求項１３記載のカメラ装置。
【請求項１８】
一点から方向を変えて複数回撮影した画像を１枚に合成する画像処理方法であって、
選択した複数の画像を境界が重なるようにして、各境界においてブロックマッチングを行って各境界について合成を行って所定のパラメータを抽出するステップと、
前記パラメータに基づいて合成対象の全ての境界についてブロックマッチングを行うステップと、
すべての境界について同時並列的にブロックマッチングの結果の評価を行うステップと、
すべての境界の誤差が小さくなるように光軸の方向を更新して誤差を小さくしていくようにして合成を行うステップと
を有する画像処理方法。
【請求項１９】
一点から方向を変えて複数回撮影した画像を１枚に合成するため、コンピュータに、
選択した複数の画像を境界が重なるようにして、各境界においてブロックマッチングを行って各境界について合成を行って所定のパラメータを抽出する機能と、
前記パラメータに基づいて合成対象の全ての境界についてブロックマッチングを行う機能と、
すべての境界について同時並列的にブロックマッチングの結果の評価を行う機能と、
すべての境界の誤差が小さくなるように光軸の方向を更新して誤差を小さくしていくようにして合成を行う機能と
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の画像を合成する機能を有する画像処理装置、カメラ装置、画像処理方法、およびプログラムに関するものである。
【背景技術】
【０００２】
広画角で高精細の写真を作るために、カメラを望遠にして一点から方向を変えて複数回撮影する方法が知られている。
【０００３】
これらの画像を合成する方法として、レンズ補正係数を求め、求めたレンズ補正係数に基づいて合成処理を行う等の方法が提案されている（たとえば、特許文献１，２，３参照）。
【０００４】
特許文献１に開示された技術では、撮像した２枚の画像に基づいて、これらの画像間で対する複数の対応点の座標を求め、２枚の画像間の幾何変換係数を算出し、対応点の座標と幾何変換係数とに基づいてレンズ歪み係数を算出する。
【０００５】
特許文献２に開示された技術では、各入力画像の紙面や被写体に対する傾き角度を求め、この傾き角度に基づいて各入力画像の傾きを補正し、補正後の入力画像、または補正後の入力画像のデータ量を削減した画像を用いて２つの画像の重なり位置を検出し、検出された重なり位置において２つの入力画像を結合する。
【０００６】
特許文献３に開示された技術では、複数の画像データのそれぞれに対して画像合成の基点を指定し、この基点に基づいて画像のスケールおよび回転角を算出し、算出したスケールおよび回転角を用いて画像データを縮小および回転し結合する。
【特許文献１】特許第３５５７１６８号公報
【特許文献２】特開２００３−２５９１１０号公報
【特許文献３】特開２００１−３５８９３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところが、上記した技術においては、レンズ歪補正係数を求めるためには、キャリブレーションという作業が必要であり、煩雑であった。
また、上記技術においては、２枚の画像を合成することを前提としており、１列だけでなく、多くの枚数、たとえば数千枚の画像をつなぐ場合に誤差が累積して、いわゆるしわ寄せが発現し、正確な合成が困難であるという不利益がある。
レンズの特性に起因する色ムラが目立つという不利益がある。
【０００８】
本発明は、合成する画像の数にかかわりなく、正確な合成を行うことが可能で、また、色ムラの発生を抑止することが可能な画像処理装置、カメラ装置、画像処理方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明の第１の観点の画像処理装置は、一点から方向を変えて複数回撮影した画像を１枚に合成する機能を有する合成処理部を有し、前記合成処理部は、選択した複数の画像を境界が重なるようにして、各境界においてブロックマッチングを行って各境界について合成を行って所定のパラメータを抽出し、当該パラメータに基づいて合成対象の全ての境界についてブロックマッチングを行い、すべての境界について同時並列的にブロックマッチングの結果の評価を行い、すべての境界の誤差が小さくなるように光軸の方向を更新して誤差を小さくしていくようにして合成を行う。
【００１０】
本発明の第２の観点のカメラ装置は、撮像素子と、前記撮像素子に被写体像を結像する光学系と、前記撮像素子の出力画像信号を処理する画像処理装置と、を有し、前記画像処理装置は、一点から方向を変えて複数回撮影した画像を１枚に合成する機能を有する合成処理部を有し、前記合成処理部は、選択した複数の画像を境界が重なるようにして、各境界においてブロックマッチングを行って各境界について合成を行って所定のパラメータを抽出し、当該パラメータに基づいて合成対象の全ての境界についてブロックマッチングを行い、すべての境界について同時並列的にブロックマッチングの結果の評価を行い、すべての境界の誤差が小さくなるように光軸の方向を更新して誤差を小さくしていくようにして合成を行う。
【００１１】
本発明の第３の観点は、一点から方向を変えて複数回撮影した画像を１枚に合成する画像処理方法であって、選択した複数の画像を境界が重なるようにして、各境界においてブロックマッチングを行って各境界について合成を行って所定のパラメータを抽出するステップと、前記パラメータに基づいて合成対象の全ての境界についてブロックマッチングを行うステップと、すべての境界について同時並列的にブロックマッチングの結果の評価を行うステップと、すべての境界の誤差が小さくなるように光軸の方向を更新して誤差を小さくしていくようにして合成を行うステップとを有する。
【００１２】
本発明の第４の観点は、一点から方向を変えて複数回撮影した画像を１枚に合成するため、コンピュータに、選択した複数の画像を境界が重なるようにして、各境界においてブロックマッチングを行って各境界について合成を行って所定のパラメータを抽出する機能と、前記パラメータに基づいて合成対象の全ての境界についてブロックマッチングを行う機能と、すべての境界について同時並列的にブロックマッチングの結果の評価を行う機能と、すべての境界の誤差が小さくなるように光軸の方向を更新して誤差を小さくしていくようにして合成を行う機能とを実行させるためのプログラムである。
【００１３】
本発明によれば、合成処理部において、選択した複数の画像を境界が重なるようにして、各境界においてブロックマッチングを行う。そして、各境界について合成を行って所定のパラメータを抽出する。
抽出したパラメータに基づいて合成対象の全ての境界についてブロックマッチングを行う。そして、すべての境界について同時並列的にブロックマッチングの結果の評価を行いすべての境界の誤差が小さくなるように光軸の方向を更新して誤差を小さくしていくようにして合成を行う。
【発明の効果】
【００１４】
本発明によれば、合成する画像の数にかかわりなく、正確な合成を行うことが可能で、また、色ムラの発生を抑止することが可能である。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施形態を図面に関連付けて説明する。
【００１６】
図１は、本発明の実施形態に係る画像処理装置を採用したカメラ装置の構成例を示すブロック図である。
【００１７】
本カメラ装置１０は、図２に示すように、自動あるいは手動により、一点から方向を変えて複数回撮影した多数の画像（図２においては、１６×８＝１２８枚）を得ることが可能で、これらの多数、たとえば数千枚の画像をしわ寄せなく正確に合成を行うことができるように構成されている。
【００１８】
本実施形態に係るカメラ装置１０は、光学系１１、撮像素子１２、アナログフロントエンド回路１３、デジタル信号処理部（ＤＳＰ）１４、画像メモリ１５、表示装置１６等を含んで構成されている。
【００１９】
光学系１１は、被写体像を撮像素子１２の撮像面に結像させる。
【００２０】
撮像素子１２は、たとえばＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）またはＣＭＯＳ（Ｃｏｍｐｌｙｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）デバイスで構成され、半導体基板上にマトリックス状に配列した光センサにより光学系１１による被写体像を検出して信号電荷を生成し、同信号電荷を垂直信号線や水平信号線を介して読み出して被写体の画像信号を出力する。
【００２１】
ＡＦＥ回路１３は、たとえば撮像素子１２からの画像信号に含まれる固定パターンノイズを除去し、自動利得制御の動作により信号レベルを安定化してデジタル信号処理部１４に出力する。
【００２２】
デジタル信号処理部１４は、ＡＦＥ回路１３の出力信号に対して色補正処理、複数画像の合成処理、自動露光制御、オートホワイトバランス制御等を行うための回路である。
【００２３】
デジタル信号処理部１４は、主としてＡＦＥ回路１３からのアナログ画像信号をデジタル信号に変換するアナログデジタルコンバータ（ＡＤＣ）１４１の他に、一点から方向を変えて複数回撮影した多数の画像をしわ寄せなく正確に合成を行うことができるように構成した精密合成処理部１４２を有している。
そして、精密合成処理部１４２は、第１色補正機能部１４３、合成機能部１４４、および第２色補正機能部１４５を含んで構成されている。
【００２４】
このように、本実施形態に係るデジタル信号処理部１４は、一点から方向を変えて複数回撮影した画像を、色ムラを補正して１枚に精密合成する機能（たとえばソフトウェア）を有している。
以下、本実施形態の精密合成の特徴な機能部分を具体的に説明する。
【００２５】
第１色補正機能部１４３は、レンズ歪補正係数などのパラメータを抽出するときは、ひとつの境界に少なくとも３個のブロックマッチング（ＢＭ）を行い、最低４枚の境界について合成を行い、これが正確になるようにレンズ歪補正係数を決めていく。換言すれば、第１色補正機能部１４３は、原画像からレンズ歪み補正係数などにパラメータを抽出する。
そして、第１色補正機能部１４３は、すべての部分画像に一様に周辺減光補正、コントラスト強調、彩度強調、ガンマ補正を行う。
【００２６】
合成機能部１４４は、第１色補正機能部１４３でレンズ歪補正係数などのパラメータが決まり、周辺減光補正、コントラスト強調、彩度強調、ガンマ補正を行った後、すべての境界に少なくとも１個（本実施形態では３個）のＢＭ（ブロックマッチング）を行い、すべての境界について同時にＢＭ結果の評価を行い、すべての境界の誤差が小さくなるように光軸の方向を更新して誤差を小さくしていき複数の画像の合成を精密に行う。
【００２７】
第２色補正機能部１４５は、合成機能部１４４で精密合成された複数の画像のうち、隣接する画像間の色の違いを減少させるため、すべての部分画像に対して独立に行う色（ムラ）補正を行う。
また、第２色補正機能部１４５は、隣接する画像間の色の不連続を検知限界以下まで減少させるための色補正を行う。
【００２８】
ここで、精密合成処理部１４２における精密合成処理の原理的な概念を説明する。
【００２９】
本実施形態においては、基本的に、フーリエ解析(Fourier analysis)に基づく位相相関技術(phase correlation technique)を採用している。
つまり、空間的関数のシフトがスペクトル領域における位相のみ変化するというフーリエシフト定理に基づいて技術を採用している。
つまり、２つの関数ｆ１およびｆ２が次の関係を満足しているとする。
【００３０】
［数１］
ｆ２（ｘ、ｙ）＝ｆ１（ｘ＋ｘｔ，ｙ＋ｙｔ）
【００３１】
また、次のようなスペクトル特性を有する。
【００３２】
［数２］
Ｆ２（ｕ，ｖ）＝Ｆ１（ｕ，ｖ）ｅｘｐ（−２πｉ（ｕｘｔ＋ｖｙｔ））
【００３３】
この式は、等価的に、相互電力スペクトル（Cross-Power Spectrum : CPS）を用いて次のように書き換えることができる。
【００３４】
【数３】
2008117235.tif 000003
【００３５】
ここで、Ｆ２＊は複素関数Ｆ２の共役関数である。
実際、画像は、図３に示すように、２つの画像の相互電力スペクトルのようなビット雑音である。
したがって、相互電力スペクトル(ＣＰＳ)のピークを探り出し、それからトランスレーション（平行移動）パラメータ（ｘｔ，ｙｔ）を引き出すことが望ましい。
【００３６】
図３は、相互電力スペクトル(ＣＰＳ)を用いたトランスレーションにおけるステッチング画像を示す図である。
図３（Ａ）は２つの画像のステッチングの結果を示している。２次元のトランスレーションは、図３（Ｂ）に示すように、相互電力スペクトル(ＣＰＳ)のピーク検出によって得られる。ここで、相互電力スペクトル（ＣＰＳ）が読み可能であれば画像は完全に整合する。
ノイズの多い画像は、最高のピークを検出することが困難であることから、いくつかのピークから選択するようにしても良い。
【００３７】
次に、ＢＭ（ブロックマッチング）を用いてパラメータを抽出する原理について、図４〜図１１に関連付けて説明する。
ここで、ＢＭは上述した相互電力スペクトル（ＣＰＳ）のピークを引き出す機能を含む。
【００３８】
まず、図４に示すように、条件のよい４枚の画像ＩＭ０，ＩＭ１，ＩＭ２，ＩＭ３を選択する。
たとえば左下が第０の画像ＩＭ０、その右が第１の画像ＩＭ１、左上が第２の画像ＩＭ２、その右が第３の画像ＩＭ３とする。これらの画像ＩＭ０〜ＩＭ３は、隣接する画像間の境界で重なり部分を含むように配置される。
図４において、境界部分に配置した矩形で示すものがブロックＢＬＫである。
このような配置条件で、ＢＭ（ブロックマッチング）を行う。
そして、上下左右の４つの境界ＢＤＲ０１，ＢＤＲ０２，ＢＤＲ１３，ＢＤＲ２３から、レンズ歪み、画角、チルト角などの情報を取り出す。
【００３９】
ＢＭ（ブロックマッチング）についてさらに説明する。
ＢＭは、たとえば図５に示すように、一つの境界で３箇所について行う。
レンズ歪みがあると、ＢＭの結果は図６に示すように弓なりになる。
チルト角が正しくないと、ＢＭの結果は図７に示すような、図中の左右方向に傾いたような誤差が生じる。
レンズ歪みの中心が縦にずれていると、図８に示すように、上下の境界で左右の伸縮が起きる。左右の境界で上下の伸縮が起きているときは、レンズ歪みの中心が横にずれているときである。
上に向くにつれて画像が回転する場合、図９に示すように、上下方向に傾いたような誤差が生じる。メカニカルなチルト軸に対してカメラが正面を向いていないときに、図９のようになる。
これらの誤差が最小となるように各種パラメータを決める。
これにより、どこの４枚をつないでも、誤差を小さくすることができる。
【００４０】
たとえばファースト位相相関マッチング(fast phase correlation matching)を適用して画像における対応するＢＭを行う。ベクトル変位（ｘｉｊ，ｙｉｊ）を得、３個のブロックの変位の振舞いを解析することにより、各パラメータを定量化することができる。
【００４１】
以上の４枚のＢＭ（ブロックマッチング）を行った後、図１０（Ａ），（Ｂ）に示すように、多くの枚数に拡張し、すべての境界について同時にＢＭ結果の評価を行い、すべての境界の誤差が小さくなるように光軸の方向を更新して誤差を小さくしていき複数の画像の合成を精密に行う。
この場合、基準画像を１枚決め、それ以外の画像を平行移動して最も誤差が小さくなる位置に収束させる。
【００４２】
精密合成処理は、以下の基本的処理に従って行う。それを箇条書き的に示す。
平行移動で最適位置を求め、移動する。
この場合、ループを回す。
移動すべき量の総和を示すパラメータ fxy を 0.0 にする。
上下左右（縦横）のすべての画像について行う。
基準画像は動かさない。
ＢＭの結果、隣接画像との位置関係が得られているのでこれに基づいて動かすべき量を計算する。
その方法は、真上と右隣のものを加え、真下と左隣のものを引いて平均を作り、f[y][x].x, f[y][x].y とする。
その８０％を現在の画像の中心位置に加えて新しい画像の中心位置とする。
fxy に、すべての画像の移動すべき量の絶対値の総和を入れる。
この移動によって上下の位置関係、左右の位置関係がどう改善されるかを計算する。
fxy はこの移動を繰り返すことにより、だんだん小さくなる性質を持っている。
言い換えると、これ以上移動することができない状態に収束する。
fxy が十分小さくなったら終了する。
【００４３】
ここで、何千枚つないでもしわ寄せが起こらない画像合成の具体的な処理の一例を説明する。
ここでは、４枚の画像について考察する。
【００４４】
たとえば図４に示すように、左下が第０の画像ＩＭ０、その右が第１の画像ＩＭ１、左上が第２の画像ＩＭ２、その右が第３の画像ＩＭ３とする。
第０の画像ＩＭ０は動かさない。すなわち、第０の画像ＩＭ０を基準画像とする。
ＢＭ（ブロックマッチング）の結果の横の成分を bx1[0]、bx1[1]、bx2[0]、bx2[1]とする。
縦の成分も独立に行うが、ここでは横のみを扱うことにする。
bx1は左右、bx2は上下である。［］の中の数字は０が下または左である。
基準画像ＩＭ０に対して右または上の画像が右または上にあるとき、ＢＭ結果は正の値となる。
今、極端な例として、一か所だけ異常な値があったときを想定し、bx1[0]=10、bx1[1]=0、bx2[0]=0、bx2[1]=0とする。
【００４５】
ここで、１段目の左右が１０画素ずれていて、その他３箇所の境界では全くずれていないときを考える。
もし、第０の画像ＩＭ０と第１の画像ＩＭ１のＢＭ結果から第１の画像ＩＭ１の位置を決め、第１の画像ＩＭ１と第３の画像ＩＭ３のＢＭ結果から第３の画像ＩＭ３の位置を決め、第２の画像ＩＭ２と第３の画像ＩＭ３のＢＭ結果から第２の画像ＩＭ２の位置を決めていくと、第０の画像ＩＭ０と第２の画像ＩＭ２の位置関係に１０画素という大きな値がしわ寄せとして生じてしまう。
【００４６】
本実施形態の方式では、このようなとき、１０という異常な値の影響が２．５ずつに分散されることを示す。なお、この処理は、一部を後述するプログラムに沿って処理される。
xypos2()で隣接画像との位置関係から平行に移動すべき量を求める。
最初、第１の画像ＩＭ１は−５画素移動するべきと計算される。
move() で平行に移動する。
実際に移動させる量はその８０％の４画素である。
第０の画像ＩＭ０以外の各画像ＩＭ１，ＩＭ２，ＩＭ３の移動量は pox[1]=4、pox[2]=0、pox[3]=0  となる。
このことにより、ＢＭ結果bx1[0]は１０から６に変化する。
それに伴い、bx2[1]は０から４に変化する。
２回目、第１の画像ＩＭ１は−１画素移動するべきと計算される。
第３の画像ＩＭ３は−２画素移動するべきと計算される。
その８０％、0.8を加算するとpox[1]=4.8となる。
以下、３回目、．．．と計算し、３２回目に、移動すべき量の総和が fxy が ０．００１画素を下回るため、終了となる。
このとき、平行に移動すべき画素数は７．５，２．５，５．０となり、各画像の位置関係も、
bx1[0]=10、bx1[1]=0、bx2[0]=0、bx2[1]=0であったものが、
bx1[0]=2.5、bx1[1]=-2.5、bx2[0]=-2.5、bx2[1]=2.5となって、誤差が分散されていることがわかる。
【００４７】
以下に、ii= 32,  fxy= 0.00083  fxy が 0.001 以下になったときの回数とその値を示す。
【００４８】
n     ix    fx[n]     fy[n] 
0   0  0.000000  0.000000  
1   2 -0.000244  0.000000  
2   2 -0.000244  0.000000  
3   2 -0.000344  0.000000  
n     pox[n]       poy[n]    fz[n]  平行に移動すべき画素数
0       0.00       0.00    
1       7.50       0.00    
2       2.50       0.00    
3       5.00       0.00    
【００４９】
以下には、プログラム例の一部を示す。
【００５０】
−−プログラムの一部（ここから）−−−−−−−−−−−−−−−−
clrpos();            // 平行に移動すべき量[pixel] pox[],fzx[],rolla[] に 0 を入れる。
for (ii=0;ii<1000;ii++){
xypos2();        // 隣接画像との位置関係から平行に移動すべき量を求める。
if (fxy<0.001){break;}
move();          // 平行に移動する。
}
fprintf(inf,"ii=%3d,  fxy=%8.5f  fxy が 0.001 以下になったときの回数とその値\n",ii,fxy);
xypos();        // 隣接画像との位置関係から平行に移動すべき量を求める。
move();        // 平行に移動する。
dsppos();      // 補正量を表示する。
angle();      // 補正量を角度にし、 qq[n],pp[n] を更新する。
dsppos();      // 補正量を表示する。
dsperr();      // 各小画像対の誤差が １ を超えるものを表示する。
step();        // qq[n],pp[n] からステップ角を作る。
−−プログラムの一部（ここまで）−−−−−−−−−−−−−−−−
【００５１】
また、主なサブルーチンを以下に示す。
【００５２】
−−主なサブルーチン−−−−−−−−−−−−−−−−
void xypos2(){    // 隣接画像との位置関係から平行に移動すべき量 fx[n],fy[n] を求め、
// 平行に移動できないフラグ fz[n] を求める。（fprintf 削除）
int m,n,m2,n2,h,v,ix;
double cx,cy;
//fprintf(inf," n     ix    fx[n]     fy[n]\n");
fxy=0;
for (v=0;v<ny;v++){          // すべての画像について
for (h=0;h<nx;h++){
m=(nx-1)*v+h;            // 左右の境界
n=nx*v+h;                // 上下の境界
ix=0;
if ((0<skip[h][v])||((v==(ny-1)/2)&&(h==(nx-1)/2))){ // 中央の画像と確定済みフラグの画像は動かさない。
fx[n]=0;fy[n]=0;fz[n]=4;        // fz[n] は平行に移動できないフラグ
if (skip[h][v]==2){fz[n]=2;}    // 確定済みフラグの画像は２とする。
}else{
cx=0;cy=0;
if (v!=0){                      // 最下段ではないとき
n2=n-nx;                    // 真下
if (0<fok2[n2]){
ix++;
cx-=bx2[n2];            // 真下のものを引く
cy-=by2[n2];
}
}
if (v!=ny-1){                    // 最上段ではないとき
if (0<fok2[n]){
ix++;
cx+=bx2[n];              // 自分のものをたす
cy+=by2[n];
}
}
if (h!=0){                        // 最左端でないとき
m2=m-1;                      // 左隣り
if (0<fok1[m2]){
ix++;
cx-=bx1[m2];              // 左隣りのものを引く
cy-=by1[m2];
}
}
if (h!=nx-1){                      // 最右端でないとき
if (0<fok1[m]){
ix++;
cx+=bx1[m];                // 自分のものをたす
cy+=by1[m];
}
}
if(ix==0){
fx[n]=0;fy[n]=0;fz[n]=1;
}else{
fx[n]=cx/ix;
fy[n]=cy/ix;
fz[n]=0;
}
fxy+=fabs(fx[n])+fabs(fy[n]);
}
}
}
}
//******************************************
void move(){          // 平行に移動する。
int m,n,h,v;
for (v=0;v<ny;v++){        // 画像の中心位置（画素）
for (h=0;h<nx;h++){
n=nx*v+h;
if (fz[n]==0){    // 周囲から隔絶されていないとき
pox[n]+=-fx[n]*0.8;
poy[n]+=-fy[n]*0.8;
}
}
}
for (v=0;v<ny;v++){        // 左右の位置関係
for (h=0;h<nx-1;h++){
m=nx*v+h;
n=(nx-1)*v+h;
bx1[n]+=-(fx[m]-fx[m+1])*0.8;
by1[n]+=-(fy[m]-fy[m+1])*0.8;
}
}
for (v=0;v<ny-1;v++){        // 上下の位置関係
for (h=0;h<nx;h++){
n=nx*v+h;
bx2[n]+=-(fx[n]-fx[n+nx])*0.8;
by2[n]+=-(fy[n]-fy[n+nx])*0.8;
}
}
}
//******************************************
【００５３】
次に、本実施形態に係る第１色補正機能部１４３の色補正処理の具体的な例を説明する。
【００５４】
［色補正処理の流れ］
周辺減光補正係数をＢ，Ｇ，Ｒそれぞれに与え、２次、４次、６次をbk2,bk4,bk6, gk2,gk4,gk6, rk2,rk4,rk6とする。
固定分をm_botとする。
中心のズレには画素数を与え、m_xo, m_yoとする。
単位は画素数であり、最後に等倍の画像に適用するときは変更が必要である。比率にすることでもよい。
黒レベル、白レベル はコントラスト強調のときに使い、m_black,m_whiteとする。
ガンマはm_gammaとする。
彩度はm_satとする。
各画像の明度を個別に補正する係数のファイル MEIHOSEI.DAT の値を mei[n][k]とする。
nは画像番号、kは３色の番号、width , height は画像のサイズ（単位：画素）を示す。
【００５５】
これらのパラメータを次のように演算して画素値を決めている。
全ての画像について、全ての画素について行う。
注目する座標(xp,yp)から周辺減光特性の中心までの距離distを求める。
【００５６】
xc = width / 2 + m_xo
yc = height / 2 + m_yo
dist=sqrt((xp-xc) * (xp-xc) + (xp-xc) * (xp-xc))
【００５７】
各色の周辺減光の補正倍率 yy[i] は次のようになる。
【００５８】
n1 = 2 * dist / height
n2 = n1 * n1
yy[0] = ( ( bk6 * n2 + bk4 ) * n2 + bk2 ) * n2 + 1
yy[1] = ( ( gk6 * n2 + gk4 ) * n2 + gk2 ) * n2 + 1
yy[2] = ( ( rk6 * n2 + rk4 ) * n2 + rk2 ) * n2 + 1
【００５９】
補正前の画像メモリから画素値 B,G,R を取り出す。
輝度信号yと色差信号cb,crに分離する。
【００６０】
Y = 0.114 * B + 0.587 * G + 0.299 * R
cb = B - y
cr = R - y
【００６１】
色差信号 cb,cr の飽和度を強調して B,G,R に変換する。
【００６２】
c[0] = m_sat * cb + y
c[2] = m_sat * cr + y
c[1] = ( y - 0.114 * c[0]  0.299 * c[2] ) / 0.587
【００６３】
コントラストの強調倍率 gain は次のようになる。
【００６４】
gain = 255 / ( m_white - m_black )
【００６５】
３色について（k=0〜2）コントラストを強調する。
【００６６】
ch = gain * ( c[k] - m_black )
【００６７】
m_gamma が １ でないとき、chを０〜２５５に制限してから、次のようにガンマを補正する。
【００６８】
ch = pow( ch / 255 , 1 / m_gamma )
【００６９】
次に周辺減光補正をする。
【００７０】
ch = yy[k] * ( ch + m_bot ) - m_bot
【００７１】
個別に明度補正する。
【００７２】
ch = ( 1000 + mei[n][k] / 1000 * ch + 0.5 ) 
【００７３】
ch を０〜２５５に制限してから１バイトの数に変換する。
３色についてここまで実行すると、色補正済みのＢＭＰ（ビットマップ）ができる。
【００７４】
本実施形態においては、以上の色補正、画像合成を行った後、前述したように、第２色補正機能部１４５が、合成機能部１４４で精密合成された複数の画像のうち、隣接する画像間の色の違いを減少させるため、すべての部分画像に対して独立（個別）に行う色（ムラ）補正を行う。
また、第２色補正機能部１４５は、隣接する画像間の色の不連続を検知限界以下まで減少させるための色補正を行う。
【００７５】
ここで、個別の色むら補正について説明する。図１１〜図１５に関連付けて説明する。
【００７６】
図１１は、合成画像の空の部分を左端から右端まで画素値をグラフに示した図である。
図１２は、図１１のグラフを２次の補正係数を適当に与えて補正した後のグラフを示す図である。
図１３は、図１２のグラフにパラメータを追加した後のグラフを示す図である。
【００７７】
図１１に示すように、レンズの周辺減光特性を示す弓なりの曲線（カーブ）が３色独立に得られる。
２次の補正係数を適当に与えて補正した後の図１２に示すようなグラフを見ると、簡単に適正な補正係数に到達することができる。この場合、弓なりはなくなったが、いずれの画像も図中右側が明るいという現象が発現する。
これは、周辺減光特性はレンズの中心から距離の関数として扱っていたが、中心がずれていると考えられる。
パラメータを追加すると、図１３に示すように、右側が明るいという現象はなくなる。
しかし、各画像の色がまちまちであることが残っている。
そこて、個別に色補正ができるように補正係数ファイルを作成し、グラフが滑らかになるように係数を与えることで、空の色の不連続は全く見えなくなる。
【００７８】
図１４は、個別の色補正について説明するための図である。
図１５（Ａ）、（Ｂ）は、境界を滑らかに自動補正する方法を説明するための図である。
【００７９】
図１４の例においては、３×３の９個の画像ＩＭ０〜ＩＭ８の中心にある画像ＩＭ４の周辺部に隣接する画像ＩＭ０〜ＩＭ３、ＩＭ５〜ＩＭ８に向かいあうように、８個の方形、たとえば正方形のブロックＢＬＫ４０〜ＢＬ４８（ＢＬＫ４５を除く）を配置するともに、他の画像に正方形のブロックＢＬＫ０１、ＢＬＫ１１、ＢＬＫ２１、ＢＬＫ３１、ＢＬＫ５１、ＢＬＫ６１、ＢＬＫ７１、ＢＬＫ８１を置き、各々のブロックの輝度値を取得する。
【００８０】
そして、対応するブロック間で輝度値の差が最小となるように画像の画素値を補正する。
周辺減光補正にグラデーションエラーが僅かでも残っていると縦または横にだんだん明るさが変わっていく現象が発生する。
この誤差を評価関数として、グラデーションエラーを除くことができる。
【００８１】
図１５の例は、画像ＩＭ４には正方形のブロックが２０個配置されている。
図１５（Ａ），（Ｂ）に示すように、境界を滑らかに自動補正するには、ブロックＰ，Ｑの画素値の平均値を目標値とし、画像ＩＭ４とＩＭ５の中心Ａ，Ｂの画素値は変えずに目標値Ｔに向かって２次の曲線で補正する。
【００８２】
以下に、図１４および図１５に関連する自動色ムラ補正の具体例について説明する。
【００８３】
［第１の処理内容］
パラメータを取り込む。
サイズデータ（SIZE.DAT）を読む。
kidolpf() で、境界に８個の正方形を置き、そこの輝度値を取得する。
nlpf は正方形のサイズ
kidobgr[][][][]  （BGR,i,j,位置）に入る。
すべての画像についてを行う。
movey() でkidobgr[][][][]を輝度信号に変え、BGRの３つとも同じ値を入れる。
move() で、kidobgr[][][][] をkidobgr2[][][][]にコピーしておく。
（この後、kidobgr[][][][] は不変だが、kidobgr2[][][][] は変化する。）
Kidoer2() で、kidobgr2[][][][] から輝度値の誤差 kidosa[][][] を取得する。
kidosa[][][] はある画像が周囲の画像との差を減らす方向に変更すべき量である。
Kidosamax はすべての画像の kidosa[][][] の最大値である。
相手の画像の対応する領域の輝度値との差を平均したものであり、隅の場合、相手は斜め隣りの画像とする。
meiclr() で、明度補正係数 meiho[][][] に０を入れる。
ここからは繰り返しである。
meiadd() で、meiho[][][] に kidosa[][][] の半分を加算する。
ただし、基準の画像の輝度だけは変えない。
inten() で、kidobgr[][][][] に meiho[][][] で補正して kidobgr2[][][][] を作る。
（これを行う度に kidobgr2[][][][] も meiho[][][] も正しい値に近づく。）
kidoer2() で、kidobgr2[][][][] から輝度値の誤差 kidosa[][][] を取得する。
（これを行う度に kidosa[][][] が ０ に近づく。）
kidosamax < 0.1 となるまで繰り返す（kidosamax は kidosa[][][] の絶対値の最大値を示す）。
なお、meihodc[l] は明度補正係数の平均値を示し、meihox[l] は明度補正係数の横の偏り、meihoy[l] は明度補正係数の縦の偏りを示す。
周辺減光補正の中心のズレが正しくないときは明度補正係数の縦横の偏りが大きくなるのでこの数値が０に近づくように変更してやり直す。
meihox[l], meihoy[l] が０に近ければ全域にわたってほぼフラットになっている。
【００８４】
［第２の処理内容］
色の不連続を極限まで排除して境界を滑らかに色補正する。
パラメータを取り込む。
サイズデータ（SIZE.DAT）を読む。
kidolpf20A() で境界に２０個の正方形を置く。
kidolpf20() で境界に２０個の正方形を置き、そこの画素値を取得する。
nlpf は正方形のサイズ
kidobgr[][][][]  （BGR,i,j,位置）に １００倍した値で入る。
すべての画像についてを行う。
kidoer2C() で周辺微調整倍率 kidohi[h][i][j][20] を取得する。
自分の画素値と相手の画素値との平均値を目標値とする。
自分の画素値から目標値に達するまでの倍率を１０００倍したものである。
recdata12C() で kidodata.txt を作る。
recdata13C() で kidohi[h][i][j][20] の１０倍を shuuhen.txt に書く。
【００８５】
shuuhen.txt に書かれた周辺微調整倍率を使って各画像の色を補正する。
このデータは２０個の離散的な値である。これらをつなぐ直線上の値は比例配分で決める。
この画像処理の手順は以下のようになる。
【００８６】
すべての画素 P(x1,y1) について、
中央の画素値 O(0,0) は変更しない。
O から P を通って境界線との交点 を Q(x2,y2) とする。
Q をはさむ２つの周辺微調整倍率のデータから直線補完する。
画素値が中心からの距離の２乗に比例して変化すると仮定した関数を使う。
この処理を各種の色補正と同時に行い、MEI の中に書き出す。
以下、滑らか色補正の中の特徴的な処理の一例の内容を詳述する。
【００８７】
MEIHOSEI.DAT から補正値を入力する。
SHUUHEN.TXT から滑らか補正の値 shu[n][h][i] を入力する。
（n:画像番号  h:20点  i=0:x  i=1:y  i=2:B  i=3:G  i=4:R）
黒レベル、ガンマ、白レベル、彩度倍率、周辺減光係数、MEIHOSEI.DAT を与えて補正を行う。
ｘ も ｙ も画像の中心を原点とし、すべての画素について演算する。
ang は( ys , xs )と原点とを結ぶ直線の方向を示す。
【００８８】
ang = atan2( ys , xs )
【００８９】
原点から ang の方向に延ばした直線が境界線と交わるとき、２０個の点のうち、最も近い  ２点 poia , poib を探す。
２点 poia , poib を結ぶ直線を y = a11 * x + b11 として a11,b11 を求める。 
この直線と、原点から ang の方向に延ばした直線の交点の座標を求め、 xq , yq とする。
xq , yq が poia , poib からどの位離れているかを示す、比例配分用の係数 k11 を求める。（poia に近いと ０、poib に近いと １ になる。）
境界部分の BGR の倍率 gq[w] を poia , poib の倍率から比例配分で求める。
色補正倍率が原点からの距離の２乗に比例する y = 1 + k22 * r*r の式に乗ると仮定する。
境界部分の倍率が gq[w] なので係数 k22[w] が次式で求められる。
【００９０】
k22[w] = ( gq[w]  1 ) / ( xq*xq + yq*yq )            
【００９１】
任意の位置 (xs,ys) の色補正倍率 gp[w] は次式となる。
【００９２】
gp[w] = 1 + k22[w] * ( xs*xs + ys*ys )
【００９３】
次に、上記構成による一例の精密合成処理の一例を説明する。
【００９４】
（１）原画像を縮小する。
（２）縮小した画像を精密合成無しで円筒に射影して合成する。
この円筒の中心は２軸アクティブ雲台の回転中心である。
たとえば、メモリの制約がある場合には、縦軸を高さではなく、緯度として扱う。
すべての原画像の光軸方向の経度、緯度のデータをテキストファイルを初期値として与える。
（３）周辺減光補正を行い、補正係数を求める。
すべての原画像がしかるべき位置に置かれた状態で、ＲＧＢ成分毎に輝度値のグラフを作り、重複領域内の輝度値に高周波成分の少ない部分をピックアップする。
青空や白壁などが自動で検出される。
高周波成分の多い部分では周辺減光特性を正しく検出できないからである。
周辺減光補正関数は画面の中心から横縦に (x1,y1) だけずれた位置を基準とし、そこからの距離に対して２次と４次の係数を与えた４次関数とする。
重複領域内の輝度値の差が最小になるようにこの関数の係数を変化させる。
（４）画像毎の明度補正を行い、補正係数を求める。
周辺減光補正が完璧に行われていても見た目がきれいにならない場合がある。
たとえば蛍光灯下で速いシャッター速度で撮影したときなど、隣接する画像に輝度差が生じている場合、これを補正する。
明るい画像でも暗い画像でも一様に誤差が減っていくような補正関数を用いる必要がある。
（５）ここまでで得られた補正係数で、縮小していない原画像に対して周辺減光補正と画像毎の明度補正を施すのだが、最終出力画像にコントラスト強調、ガンマ補正、色の濃さ強調を行う場合、一括して行う。
ここから精密合成を始めるのだが、周辺減光補正、画像毎の明度補正、コントラスト強調、ガンマ補正、色の濃さ強調の各処理をした画像で位置関係を求めて行く。
ここから原画像を使う。
（６）中央部の条件の良い４枚を選択し、上下左右の隣接画像の重複部の位置関係を画像マッチングにより求める。
（７）このデータからレンズ歪み、見下ろす角度、画角、パンチルタのステップ角などを求める。
（８）上部と下部でそれぞれ条件の良い４枚を選択し、上下左右の隣接画像の重複部の位置関係を画像マッチングにより求める。
（９）このデータから画角、パンチルタのステップ角の誤差や素性をより正確に求める。
【００９５】
ここで、条件が良いという意味はパララックスの影響が無視できる遠方で、奥行きも少なく、かつ、動くものが無く、コントラストの強い平坦でない画像であることである。
ここまでの作業ですべての画像に共通のパラメータが得られているので、全体のステッチングを始める。
【００９６】
たとえば１０２枚もの画像を端から１枚ずつつないで行く方法ではすぐにしわ寄せが溜まって破綻してしまう。
１０２枚の画像の８０箇所の境界すべてを同時に監視してその誤差が最小になるように各画像の位置を調整して行く。
ここで障害になるのが条件の悪い境界の存在である。
もし、すべての境界が好条件ならば、これまでに得られたパラメータで処理すればほぼ完全に誤差が除去される。
その理由はただ１個のカメラで撮影しているからである。
１０２枚の画像の８０箇所もの境界がすべて好条件であることなど殆どあり得なく、いたるところに悪条件の部分が含まれている。
【００９７】
悪条件とは（ａ）空や壁など、輝度値が平坦な場合、（ｂ）漣の水面、風にそよぐ木の葉、はためく旗、流れる滝、流れる雲など、常時動いている場合、（ｃ）人や車や鳥など動くものがあって、重複領域の片方にしか写っていない、または位置が異なる場合、（ｄ）雲が太陽を隠すことで、明るさが変化したり影のつき方が変わっている場合。（ｅ）近距離に柵などが写っていてそれがパララックスのためにずれが生じている場合、などである。
これらの悪条件の部分を正確に把握し、確実に排除して、正しい位置関係を示すデータのみによって収束していくようにすることが最も重要である。
【００９８】
左右の重複領域の幅は水平画素数２５６０の約１０％で２５０画素程度である。
その領域の縦のサイズはほぼ垂直画素数１９２０画素程度である。
この領域を ６４×６４の領域を１単位としてＢＭ（ブロックマッチング）を行う。
この左右の２枚を縦横に平行移動のみで合わせる場合は重複領域の中に有意なブロックが１個以上存在すれば良い。
この重複領域の上部と下部で位置関係が左右にずれている場合は見下ろす角がずれていたりしていることを意味する。
この重複領域の上部と下部で位置関係が上下にずれている場合は左右の縦のサイズが異なっていることを意味する。
この重複領域の上部と下部とその中間で位置関係が直線でなく弓なりになっている場合はレンズ歪みの影響である。
したがって、レンズ歪を検出するためには重複領域の長辺方向に最低３個の有意なブロックが必要である。
【００９９】
（１０）ここでは左右の重複領域はその長辺方向に４つのブロックを、上下の重複領域はその長辺方向に５つのブロックをそれぞれ配置する。
（１１）横軸を重複領域の長辺方向、縦軸をＢＭ（ブロックマッチング）の結果の位置ずれ、としてグラフを作り、これを最小二乗法で放物線とみなしてその係数を求める。
２次の係数はレンズ歪補正によってほぼ０になっている。
１次の係数もメカニカルの素性や画角、ステップ角、見下ろす角度などが正しく設定されていればほぼ０になっている。
０次の係数はメカニカルの精度が有限であるための誤差を含んでいる。
たとえば所定のカメラに４００ｍｍの望遠レンズを付けた場合は１画素は１／９６８度だから１／１００度の誤差があれば１０画素のずれを生じる。
（１２）この０次の係数を使って、すべての画像の方向を変更し、全体の誤差を減少させて行く。
【０１００】
以上説明したように、本実施形態によれば、レンズ歪補正係数などのパラメータを抽出するときは、ひとつの境界に少なくとも３個のブロックマッチング（ＢＭ）を行い、最低４枚の境界について合成を行い、これが正確になるようにレンズ歪補正係数を決め、原画像からレンズ歪み補正係数などのパラメータを抽出し、すべての部分画像に一様に行う周辺減光補正、コントラスト強調、彩度強調、ガンマ補正を行う第１色補正機能部１４３と、レンズ歪補正係数などのパラメータが決まり、周辺減光補正、コントラスト強調、彩度強調、ガンマ補正を行った後、すべての境界に少なくとも１個（本実施形態では３個）のＢＭ（ブロックマッチング）を行い、すべての境界について同時にＢＭ結果の評価を行い、すべての境界の誤差が小さくなるように光軸の方向を更新して誤差を小さくしていき複数の画像の合成を精密に行う合成機能部１４４と、合成機能部１４４で精密合成された複数の画像のうち、隣接する画像間の色の違いを減少させるため、すべての部分画像に対して独立に行う色（ムラ）補正を行い、また、隣接する画像間の色の不連続を検知限界以下まで減少させるための色補正を行う第２色補正機能部１４５とを有することから、以下の効果を得ることができる。
合成する画像の数にかかわりなく、正確な合成を行うことが可能で、また、色ムラの発生を抑止することができる。
そして、レンズ歪補正係数を実写画像から抽出することができたため、厄介なキャリブレーションの作業が不要になり、精度も格段に向上する。
何１０００枚つないでもしわ寄せが出ない方法により、撮影枚数を気にすることなく、必要な範囲を必要な解像度で撮影することができるようになる。
【０１０１】
なお、本実施形態では、第１色補正機能部１４３の処理、合成機能部１４５の処理、第２色補正機能部１４６の順に行うような例を説明したが、これに限定されるものではなく、たとえばある程度精密合成を行った後に色補正を行う等、種々の態様が可能である。
【図面の簡単な説明】
【０１０２】
【図１】本発明の実施形態に係る画像処理装置を採用したカメラ装置の構成例を示すブロック図である。
【図２】本実施形態に係るカメラ装置において広角撮影を行った場合を概念的に示す図である。
【図３】相互電力スペクトル(ＣＰＳ)を用いたトランスレーションにおけるステッチング画像を示す図である。
【図４】ブロックマッチング（ＢＭ）でパラメータを抽出する処理を説明するための図であって、条件の４枚の画像を選択する処理を示す図である。
【図５】ブロックマッチング（ＢＭ）でパラメータを抽出する処理を説明するための図であって、一つの境界で３箇所のＢＭを行う例を示す図である。
【図６】ブロックマッチング（ＢＭ）でパラメータを抽出する処理を説明するための図であって、レンズ歪があるとＢＭの結果が弓なりになることを示す図である。
【図７】ブロックマッチング（ＢＭ）でパラメータを抽出する処理を説明するための図であって、チルト角が正しくないと左右方向の誤差が生じる例を示す図である。
【図８】ブロックマッチング（ＢＭ）でパラメータを抽出する処理を説明するための図であって、左右の境界で上下の伸縮が起きているときに横にずれができる例を示す図である。
【図９】ブロックマッチング（ＢＭ）でパラメータを抽出する処理を説明するための図であって、画像が回転する場合に生じる誤差の例を示す図である。
【図１０】ブロックマッチング（ＢＭ）でパラメータを抽出する処理後に多くの枚数に拡張して平行移動を行って最も誤差が小さくなるようにする処理を説明するための図である。
【図１１】合成画像の空の部分を左端から右端まで画素値をグラフに示した図である。
【図１２】図１１のグラフを２次の補正係数を適当に与えて補正した後のグラフを示す図である。
【図１３】図１２のグラフにパラメータを追加した後のグラフを示す図である。
【図１４】個別の色補正について説明するための図である。
【図１５】境界を滑らかに自動補正する方法を説明するための図である。
【符号の説明】
【０１０３】
１０・・・カメラ装置、１１・・・光学系、１２・・・撮像素子、１３・・・アナログフロントエンド回路（ＡＦＥ）、１４・・・デジタル信号処理部（ＤＳＰ）、１４１・・・アナログデジタル変換器、１４２・・・精密合成処理部、１４３・・・第１色補正機能部、１４４・・・精密合成機能部、１４５・・・第２色補正機能部、１５・・・画像メモリ。
【図１】
2008117235.tif 000004
【図２】
2008117235.tif 000005
【図３】
2008117235.tif 000006
【図４】
2008117235.tif 000007
【図５】
2008117235.tif 000008
【図６】
2008117235.tif 000009
【図７】
2008117235.tif 000010
【図８】
2008117235.tif 000011
【図９】
2008117235.tif 000012
【図１０】
2008117235.tif 000013
【図１１】
2008117235.tif 000014
【図１２】
2008117235.tif 000015
【図１３】
2008117235.tif 000016
【図１４】
2008117235.tif 000017
【図１５】
2008117235.tif 000018