(57)【要約】【課題】  レンズ収差補正に伴って低下した解像度の復元処理を、より高画質かつ低コストで実現する為の技術を提供すること。【解決手段】  撮影パラメータと、撮影パラメータが設定されたときのレンズの収差特性を示すレンズ収差特性値と、のセットを、異なる収差特性毎に作成し、それぞれのセット中の撮影パラメータを用いて撮影を行う。撮影したそれぞれの撮像画像に対して、対応するレンズ収差特性値を用いて収差補正を行う。それぞれの収差補正済み撮像画像を用いて１枚の基準画像を生成し、それぞれの収差補正済み撮像画像と基準画像とから、それぞれの収差補正済み撮像画像に対応する推定画像を生成する。そして、それぞれの収差補正前の撮像画像とそれぞれの収差補正済み撮像画像に対応する推定画像との差分に基づいて、１枚の出力画像を生成する。【選択図】  図１
2011254335.tif 000002
【特許請求の範囲】
【請求項１】
撮像装置であって、
撮影準備指示を受けると、撮影を行うために設定される撮影パラメータと、該撮影パラメータが設定されたときのレンズの収差特性を示すレンズ収差特性値と、のセットを、異なる収差特性ごとに作成する作成手段と、
前記撮影準備指示を受けた後に撮影開始指示を受けると、前記作成手段が作成したそれぞれのセット中の撮影パラメータを用いて撮影を行うことで、それぞれの撮影パラメータに対応する撮像画像を取得する撮影手段と、
前記撮影手段が撮影したそれぞれの撮像画像に対して、該撮像画像の撮影時に前記撮影手段が用いた撮影パラメータとセットになっているレンズ収差特性値を用いて収差補正を行う手段と、
それぞれの収差補正済み撮像画像を用いて１枚の基準画像を生成し、該それぞれの収差補正済み撮像画像と前記基準画像とから、該それぞれの収差補正済み撮像画像に対応する推定画像を生成し、該それぞれの収差補正前の撮像画像と該それぞれの収差補正済み撮像画像に対応する推定画像との差分に基づいて、１枚の出力画像を生成する生成手段とを備え、
前記生成手段は、
撮影されたＮ（Ｎ＞１）枚の撮像画像を収差補正した収差補正済み撮像画像１  〜  収差補正済み撮像画像Ｎを用いて基準画像Ｘを生成する手段と、
前記基準画像Ｘと、収差補正済み撮像画像ｉ（１≦ｉ≦Ｎ）と、の間の相対的な位置ずれを表す行列Ｍｉを求め、該求めた行列Ｍｉと、前記基準画像Ｘと、前記収差補正済み撮像画像ｉにおいて収差補正による歪曲を表す行列Ｄｉと、の積演算を行うことで、前記収差補正済み撮像画像ｉに対する推定画像Ｙｉを求める計算手段と、
前記推定画像Ｙｉと前記収差補正前の撮像画像ｉとの差分を示す行列と、前記行列Ｍｉと、前記行列Ｄｉと、の積演算を行い、該積演算の結果を全てのｉについて合計した結果を示す行列Δを求める演算手段と、
前記行列Δを前記基準画像Ｘに加えることで前記基準画像Ｘを更新する更新手段と、
前記計算手段、前記演算手段、前記更新手段、による一連の動作を繰り返して行わせることで繰り返して更新された前記基準画像Ｘを、前記出力画像として生成する繰り返し手段と
を備えることを特徴とする撮像装置。
【請求項２】
前記撮影パラメータは、ｆ値、焦点距離、レンズの種類、ピント位置、を含むことを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記生成手段は、前記収差補正済み撮像画像１  〜  収差補正済み撮像画像Ｎの平均画像を前記基準画像Ｘとして求めることを特徴とする請求項１又は２に記載の撮像装置。
【請求項４】
前記繰り返し手段は、
前記推定画像Ｙｉと前記収差補正済み撮像画像ｉとの差分を示す行列を全てのｉについて合計した合計結果を示す行列の各要素の値が閾値以下となるまで、前記計算手段、前記演算手段、前記更新手段、による一連の動作を繰り返して行わせることを特徴とする請求項１乃至３の何れか１項に記載の撮像装置。
【請求項５】
前記繰り返し手段は、前記計算手段、前記演算手段、前記更新手段、による一連の動作を、予め定められた回数だけ繰り返して行わせることを特徴とする請求項１乃至３の何れか１項に記載の撮像装置。
【請求項６】
前記作成手段が作成するそれぞれのセットのうち１つを基準セットとした場合、該基準セットいがいのセット中の撮影パラメータで特定される被写体深度は、前記基準セット中の撮影パラメータで特定される被写体深度に対して予め定められた割合以上の割合を占めることを特徴とする請求項１乃至５の何れか１項に記載の撮像装置。
【請求項７】
撮像装置の制御方法であって、
撮影準備指示を受けると、撮影を行うために設定される撮影パラメータと、該撮影パラメータが設定されたときのレンズの収差特性を示すレンズ収差特性値と、のセットを、異なる収差特性ごとに作成する作成工程と、
前記撮影準備指示を受けた後に撮影開始指示を受けると、前記作成工程で作成したそれぞれのセット中の撮影パラメータを用いて撮影を行うことで、それぞれの撮影パラメータに対応する撮像画像を取得する撮影工程と、
前記撮影工程で撮影したそれぞれの撮像画像に対して、該撮像画像の撮影時に前記撮影工程で用いた撮影パラメータとセットになっているレンズ収差特性値を用いて収差補正を行う工程と、
それぞれの収差補正済み撮像画像を用いて１枚の基準画像を生成し、該それぞれの収差補正済み撮像画像と前記基準画像とから、該それぞれの収差補正済み撮像画像に対応する推定画像を生成し、該それぞれの収差補正前の撮像画像と該それぞれの収差補正済み撮像画像に対応する推定画像との差分に基づいて、１枚の出力画像を生成する生成工程とを備え、
前記生成工程では、
撮影されたＮ（Ｎ＞１）枚の撮像画像を収差補正した収差補正済み撮像画像１  〜  収差補正済み撮像画像Ｎを用いて基準画像Ｘを生成する工程と、
前記基準画像Ｘと、収差補正済み撮像画像ｉ（１≦ｉ≦Ｎ）と、の間の相対的な位置ずれを表す行列Ｍｉを求め、該求めた行列Ｍｉと、前記基準画像Ｘと、前記収差補正済み撮像画像ｉにおいて収差補正による歪曲を表す行列Ｄｉと、の積演算を行うことで、前記収差補正済み撮像画像ｉに対する推定画像Ｙｉを求める計算工程と、
前記推定画像Ｙｉと前記収差補正前の撮像画像ｉとの差分を示す行列と、前記行列Ｍｉと、前記行列Ｄｉと、の積演算を行い、該積演算の結果を全てのｉについて合計した結果を示す行列Δを求める演算工程と、
前記行列Δを前記基準画像Ｘに加えることで前記基準画像Ｘを更新する更新工程と、
前記計算工程、前記演算工程、前記更新工程、による一連の動作を繰り返して行わせることで繰り返して更新された前記基準画像Ｘを、前記出力画像として生成する繰り返し工程と
を備えることを特徴とする撮像装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はレンズ収差補正処理による解像度の低下を抑制するための技術に関するものである。
【背景技術】
【０００２】
近年、カメラで撮影した画像に対し、撮影時のレンズの特性値を用いてレンズ収差と呼ばれる画像劣化を復元する処理が注目されている。レンズ収差のうち、特に歪曲収差と倍率色収差は、本来像を結ぶべき像高と、実際にレンズを通して得られる像高のずれから生じることが知られている。ここで像高とは、光軸からの距離を指す。これらの収差を補正する方法の１つに、像高が正しい位置になるように各画素の座標を変換する方法がある。
【０００３】
デジタル画像であるビットマップデータの場合、処理前の座標が処理後の座標に対応するとは限らない。したがって、座標変換を伴う画像の変形処理は、一般に変形後の座標を変形前の座標に変換し、その座標に応じて隣接画素を補間処理することで、変形後の画素値を算出する。このような変形処理を適用した場合、特にレンズ収差補正処理では画像の端部が大きく引き伸ばされることになり、座標の移動量が大きいほど、解像度も大きく低下することが知られている。
【０００４】
従来、このような解像度低下への対策として、低下した解像度を回復する超解像(super resolution)処理が知られている。超解像処理とは、複数の低解像度の画像を入力とし、より画素数の多い超解像度の画像を生成する技術である。１枚の低解像度画像を拡大する場合、低解像度画像に含まれる信号の周波数帯域が限られるため、向上させられる解像度には限界がある。そこで、複数枚の低解像度画像を用いて高解像度画像を生成する。この技術を応用することで、レンズ収差補正に伴って低下した解像度の復元処理を実現することが出来る。例えば特許文献１では、撮像系による劣化過程から評価関数を決定し、補正結果を得る方法について述べられている。
【０００５】
超解像の解法にはさまざまな方法が提案されている。例えば、複数フレームの位置ずれを有する低解像度画像を合成して、高解像度な画像を生成する撮像手法が提案されている（非特許文献１）。
【０００６】
その他の超解像技術としては、ＭＡＰ(Maximum  A  Posterior、最大事後確率)推定に基づく方法が有名である（非特許文献２）。ＭＡＰ推定法とは、予め設定した確率密度関数に応じ、事後確率が最大となる画像を推定する方法である。ＭＡＰ推定法を超解像処理に応用する場合には、二乗誤差に高解像度画像の確率情報を付加した評価関数を最小化するような高解像度画像を推定するという捉え方もできる。ＭＡＰ推定法を用いた超解像処理とはつまり、高解像度画像に対する先見情報を利用して、事後確率を最大化する最適化問題として高解像度画像を推定する処理である。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−１９７３５４号公報
【非特許文献】
【０００８】
【非特許文献１】Sung C. P., Min K. P. ,”Super-Resolution Image Reconstruction: A Technical Overview”, 米国 IEEE Signal Proc. Magazine, 第26巻, 第3号, p.21-36，2003年
【非特許文献２】R. R. Schulz, R. L. Stevenson, “Extraction  of high-resolution frames from video sequences”, IEEE  Trans. Image Processing,  第5巻,  p.996-1011,  1996年
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従来技術で用いる複数画像は、手ぶれなどを利用した撮影により取得するため、画像全体において均一な位置ずれを持つ。そのため、超解像処理を適用すると画像全体の解像度が同程度に回復される。しかしながら、レンズ収差補正処理による解像度低下の割合は像高に依存し、画像内で均一ではない。したがって、位置ずれを有する複数画像を用いて超解像処理を行った場合、画像内において解像度が不均一になる。
【００１０】
本発明はこのような問題に鑑みてなされたものであり、レンズ収差補正に伴って低下した解像度の復元処理を、より高画質かつ低コストで実現する為の技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。即ち、撮像装置であって、撮影準備指示を受けると、撮影を行うために設定される撮影パラメータと、該撮影パラメータが設定されたときのレンズの収差特性を示すレンズ収差特性値と、のセットを、異なる収差特性ごとに作成する作成手段と、前記撮影準備指示を受けた後に撮影開始指示を受けると、前記作成手段が作成したそれぞれのセット中の撮影パラメータを用いて撮影を行うことで、それぞれの撮影パラメータに対応する撮像画像を取得する撮影手段と、前記撮影手段が撮影したそれぞれの撮像画像に対して、該撮像画像の撮影時に前記撮影手段が用いた撮影パラメータとセットになっているレンズ収差特性値を用いて収差補正を行う手段と、それぞれの収差補正済み撮像画像を用いて１枚の基準画像を生成し、該それぞれの収差補正済み撮像画像と前記基準画像とから、該それぞれの収差補正済み撮像画像に対応する推定画像を生成し、該それぞれの収差補正前の撮像画像と該それぞれの収差補正済み撮像画像に対応する推定画像との差分に基づいて、１枚の出力画像を生成する生成手段とを備え、前記生成手段は、撮影されたＮ（Ｎ＞１）枚の撮像画像を収差補正した収差補正済み撮像画像１  〜  収差補正済み撮像画像Ｎを用いて基準画像Ｘを生成する手段と、前記基準画像Ｘと、収差補正済み撮像画像ｉ（１≦ｉ≦Ｎ）と、の間の相対的な位置ずれを表す行列Ｍｉを求め、該求めた行列Ｍｉと、前記基準画像Ｘと、前記収差補正済み撮像画像ｉにおいて収差補正による歪曲を表す行列Ｄｉと、の積演算を行うことで、前記収差補正済み撮像画像ｉに対する推定画像Ｙｉを求める計算手段と、前記推定画像Ｙｉと前記収差補正前の撮像画像ｉとの差分を示す行列と、前記行列Ｍｉと、前記行列Ｄｉと、の積演算を行い、該積演算の結果を全てのｉについて合計した結果を示す行列Δを求める演算手段と、前記行列Δを前記基準画像Ｘに加えることで前記基準画像Ｘを更新する更新手段と、前記計算手段、前記演算手段、前記更新手段、による一連の動作を繰り返して行わせることで繰り返して更新された前記基準画像Ｘを、前記出力画像として生成する繰り返し手段とを備えることを特徴とする。
【発明の効果】
【００１２】
本発明の構成によれば、レンズ収差補正に伴って低下した解像度の復元処理を、より高画質かつ低コストで実現することができる。
【図面の簡単な説明】
【００１３】
【図１】レンズ交換式一眼レフデジタルカメラの回路構成を示す図。
【図２】（ａ）はカメラの斜視図、（ｂ）はカメラの垂直断面図。
【図３】カメラによる一連の撮像動作を示す図。
【図４】複数の撮影パラメータを決定する処理のフローチャート。
【図５】複数の撮影パラメータを決定する処理のフローチャート。
【図６】複数の撮影パラメータを決定する処理のフローチャート。
【図７】レンズ特性値データベース４０４に登録されているテーブルの構成を示す図。
【図８】歪曲収差補正処理の概要を示す図。
【図９】歪曲収差補正処理のフローチャート。
【図１０】歪曲補正画素値算出処理を説明する図。
【図１１】出力画像の生成処理のフローチャート。
【図１２】（ａ）は被写体深度を説明する図、（ｂ）は画像生成処理の概念図。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の１つである。
【００１５】
［第１の実施形態］
通常、デジタルカメラは、撮影準備状態においてレンズの種類、焦点距離、ピント位置、ｆ値などの要素の組み合わせを１つ決定する。以下の各実施形態では、この組み合わせを複数個決定し、それぞれの組み合わせ毎に露光を行うことで、レンズ収差特性の異なる複数の撮影画像を得る。そして、これらの撮影画像を用いて、高画質な出力画像を得る。なお、露光は１つの組み合わせについて１回行っても良いし、指定された露光時間が経過するまでの間に複数個の組み合わせを切り替えながら時分割露光してもよい。
【００１６】
説明を簡単にするために、本実施形態では、レンズ収差補正処理として歪曲補正処理を行う。しかし、歪曲補正と同様に、理想像高と撮影時の像高との間のずれによって生じる収差に対する補正処理には倍率色収差補正があり、これを含めても構わないことは言うまでも無い。先ず、本実施形態に係る撮像装置としての、レンズ交換式一眼レフデジタルカメラの回路構成について、図１を用いて説明する。
【００１７】
マイクロコンピュータ１０２は、撮像素子（本実施形態ではＣＣＤ）１１８から出力される画像に対する各種の処理や、ＬＣＤモニタ装置１１７の表示制御をはじめ、カメラを構成する各部の動作制御を行う。
【００１８】
スイッチ（ＳＷ１）１０５は、レリーズボタン２１４（図２（ａ））の半押し状態でオンになり、スイッチ（ＳＷ１）１０５がオンの状態になるとマイクロコンピュータ１０２は撮影準備指示が入力されたものとし、カメラの状態を撮影準備状態に移行する。
【００１９】
スイッチ（ＳＷ２）１０６は、レリーズボタン２１４が最後まで押された状態（全押し状態）でオンになる。スイッチ（ＳＷ２）１０６がオンの状態になるとマイクロコンピュータ１０２は撮影開始指示が入力されたものとし、カメラを構成する各部の動作制御を行うことで、撮影動作を開始させる。
【００２０】
レンズ制御回路１０７は、撮影レンズ３００（図２（ｂ））との通信、およびＡＦ（オートフォーカス）時の撮影レンズ３００の駆動制御や絞り羽根の駆動制御を行う。外部表示制御回路１０８は、外部表示装置（ＯＬＣ）１０９や、ファインダ内の表示装置（不図示）の動作制御を行う。スイッチセンス回路１１０は、カメラに設けられた電子ダイヤル１１１を含む多数のスイッチ類からの信号をマイクロコンピュータ１０２に伝える。
【００２１】
ストロボ発光調光制御回路１１２は、Ｘ接点１１１ａを介して接地されており、外部ストロボの動作制御を行う。測距回路１１３は、ＡＦのための被写体に対するデフォーカス量を検出する。測光回路１１４は、被写体の輝度を測定する。
【００２２】
シャッター制御回路１１５はシャッターの動作制御を行い、撮像素子１１８に対して適正な露光を行う。ＬＣＤモニタ装置１１７とバックライト照明装置１１６は、様々なメニュー画面や撮像画像などの表示を行うための表示装置を構成している。
【００２３】
外部記憶装置１１９は、カメラ本体に着脱可能なハードディスクドライブ装置や半導体メモリカード等で構成されている。また、マイクロコンピュータ１０２には、Ａ／Ｄ変換器１２３、バッファメモリ１２４、ＤＳＰ等により構成されている画像処理回路１２５、が接続されている。もちろん、マイクロコンピュータ１０２に接続されている要素は以上のものに限定するものではなく、以下に説明する各処理を実現するための様々なハードウェアが接続されていても良い。
【００２４】
次に、カメラの外観について、図２（ａ）の斜視図、図２（ｂ）の垂直断面図を用いて説明する。図２（ａ）において、カメラ２００の本体の上部には、ファインダ観察用の接眼窓２１１、ＡＥ（自動露出）ロックボタン２１２、ＡＦの測距点選択ボタン２１３、撮影操作のために操作するレリーズボタン２１４が設けられている。また、電子ダイヤル１１１、撮影モード選択ダイヤル２１７、外部表示装置１０９も設けられている。電子ダイヤル１１１は、他の操作ボタンと併用してカメラに数値を入力したり、撮影モードを切り換えたりするための多機能信号入力装置である。また、外部表示装置１０９は、液晶表示装置から構成され、シャッタースピード、絞り、撮影モードなどの撮影条件や、他の情報を表示する。
【００２５】
また、カメラ２００の本体の背面には、撮影された画像や各種設定画面などを表示するＬＣＤモニタ装置１１７、ＬＣＤモニタ装置１１７をオン／オフするためのモニタスイッチ２２１、十字配置スイッチ２１６、メニューボタン２２４が設けられている。
【００２６】
十字配置スイッチ２１６は、上下左右に配された４つのボタンと、中央に配されたＳＥＴボタンを有し、ユーザがＬＣＤモニタ装置１１７に表示されるメニュー項目などの選択や実行をカメラに指示するために用いられる。この指示はマイクロコンピュータ１０２に入力される。
【００２７】
メニューボタン２２４は、ＬＣＤモニタ装置１１７にカメラの各種設定を行うためのメニュー画面を表示させるためのボタンである。例えば、撮影モードを選択、設定する時は、このメニューボタン２２４を押した後、十字配置スイッチ２１６の上下左右のボタンを操作して希望のモードを選択し、希望のモードが選択された状態でＳＥＴボタンを押すことにより設定が完了する。
【００２８】
本実施形態のＬＣＤモニタ装置１１７は透過型であるため、ＬＣＤモニタ装置１１７の駆動だけでは画像を視認することはできず、必ずその裏面にはバックライト照明装置１１６が必要である。ＬＣＤモニタ装置１１７とバックライト照明装置１１６とは、このようにして画像表示装置を構成している。
【００２９】
図２（ｂ）に示すように、撮像光学系の撮影レンズ３００は、カメラ２００の本体に対してレンズマウント３０２を介して着脱可能である。図２（ｂ）において３０１は撮影光軸、３０３はクイックリターンミラーである。
【００３０】
クイックリターンミラー３０３は撮影光路中に配置され、撮影レンズ３００からの被写体光をファインダ光学系に導く位置（図２（ｂ）に示す位置、斜設位置と呼ぶ）と撮影光路外に退避する位置（退避位置と呼ぶ）との間で移動可能である。
【００３１】
図２（ｂ）において、ピント板３０４上にはクイックリターンミラー３０３からファインダ光学系に導かれる被写体光が結像される。３０５はファインダの視認性を向上させるためのコンデンサレンズ、３０６はペンタゴナルダハプリズムであり、ピント板３０４およびコンデンサレンズ３０５を通った被写体光をファインダ観察用の接眼レンズ３０８および測光センサ３０７に導く。
【００３２】
３０９、３１０はそれぞれシャッターを構成する後幕と先幕で、後幕３０９、先幕３１０の開放によって後方に配置されている固体撮像素子である撮像素子１１８が必要時間だけ露光される。撮像素子１１８によって画素毎の電気信号に変換された撮像画像は、Ａ／Ｄ変換器１２３や画像処理回路１２５などによって処理され、画像データとして外部記憶装置１１９等に格納される。
【００３３】
撮像素子１１８はプリント基板３１１に保持されている。このプリント基板３１１の後方には、もう一枚のプリント基板である表示基板３１５が配置されている。この表示基板３１５の反対側の面にＬＣＤモニタ装置１１７およびバックライト照明装置１１６が配置されている。３１７は電池（携帯用電源）である。外部記憶装置１１９及び電池３１７は、カメラ本体に対して着脱可能である。
【００３４】
次に、本実施形態に係るカメラによる一連の撮像動作について、図３を用いて説明する。マイクロコンピュータ１０２は、撮影準備状態に移行すると、レンズ収差特性が異なる複数の撮影パラメータ４０５を、マイクロコンピュータ１０２内のＲＯＭなどに格納されているレンズ特性値データベース４０４から取得する。
【００３５】
ここで、レンズ特性値データベース４０４には、撮影パラメータとこの撮影パラメータに応じたレンズ収差特性値とのセットが、様々な撮影パラメータ毎に保持されている。然るに、マイクロコンピュータ１０２は、レンズ特性値データベース４０４から複数の撮影パラメータ４０５を取得する場合、互いに異なるレンズ収差特性値とセットになっている撮影パラメータ４０５を取得する。撮影パラメータの取得処理については以下で詳細に説明する。なお、レンズ制御回路１０７やシャッター制御回路１１５、測距（ＡＦ）回路１１３から、実際の撮影時の値を、撮影パラメータ４０５として取得しても良い。
【００３６】
そして上記の撮影機構である撮影部４０１により、それぞれの撮影パラメータ４０５を用いた撮影を行うことで、それぞれの撮影パラメータ４０５に応じた撮像画像４０６を得る。即ち、それぞれの撮像画像は、互いにレンズ収差特性が異なる撮像画像となっている。
【００３７】
マイクロコンピュータ１０２の機能部としての補正部４０２は、画像処理回路１２５を用いて、それぞれの撮像画像４０６についてレンズ収差補正処理を行い、それぞれの撮像画像４０６のレンズ収差補正済み撮像画像（補正画像）４０７を生成する。レンズ収差補正処理では、レンズ収差特性値を用いる。例えば、撮像画像Ｘについてレンズ収差補正処理を行う場合、この撮像画像Ｘの撮影時に用いた撮影パラメータとセットになってレンズ特性値データベース４０４に格納されているレンズ収差特性値を用いる。
【００３８】
マイクロコンピュータ１０２の機能部としての画像生成部４０３は、撮像画像４０６毎に生成した補正画像４０７を用いて、画像周辺まで解像度が低下しない１枚の画像（出力画像）４０８を生成する（画像生成処理）。
【００３９】
撮影部４０１から得られるそれぞれの撮影画像４０６は、互いにレンズ収差特性が異なるので、それぞれの補正画像４０７内に映っている被写体が同一であっても、被写体を構成する各画素の画素値は、補正画像４０７毎に異なってしまう。これは、被写体を構成する画素の画素値は像高に応じて異なる値となることに起因する。然るに、解像度を回復するために必要な「互いにレンズ収差特性が異なる複数の撮像画像」は、カメラを三脚などに固定した状態で撮影を行っても取得することができる。
【００４０】
＜互いにレンズ収差特性が異なるような撮影パラメータの取得について＞
上記の通り、撮影パラメータには、レンズの種類、焦点距離、ピント位置、ｆ値等の要素が含まれている。本実施形態では、撮影パラメータに含まれるそれぞれの要素の値を微少に変化させ、対応するレンズ収差特性を比較することにより、以降で用いる複数の撮影パラメータを決定する。
【００４１】
マイクロコンピュータ１０２が、以降の処理で用いる複数の撮影パラメータを決定する処理について、同処理のフローチャートを示す図４（ａ）を用いて説明する。まず、レリーズボタン２１４が半押しされたことをマイクロコンピュータ１０２が検知すると、カメラの状態を撮影準備状態に移行する。そしてその後、ステップＳ５０１ではマイクロコンピュータ１０２は、通常のデジタルカメラと同様にして、１つの撮影パラメータを確定させる。即ち、上記各要素の値を決定する。ステップＳ５０１で確定させた撮影パラメータを、以下では基準セットと呼称する。
【００４２】
次にステップＳ５０２ではマイクロコンピュータ１０２は、基準セットに対応するレンズ収差特性値を、レンズ特性値データベース４０４から取得する。次にステップＳ５０３では、マイクロコンピュータ１０２は、基準セットに含まれている何れかの要素の値を微少量だけ変化させた撮影パラメータ（変動セット）を生成する。そしてステップＳ５０４ではマイクロコンピュータ１０２は、変動セットに対応するレンズ収差特性値を、レンズ特性値データベース４０４から取得する。
【００４３】
次にステップＳ５０５ではマイクロコンピュータ１０２は、ステップＳ５０２で取得したレンズ収差特性値と、ステップＳ５０４で取得したレンズ収差特性と、を比較し、互いに同じであるか否かを判断する。この判断の結果、同じと判断した場合には処理をステップＳ５０６に進め、同じではないと判断した場合には処理をステップＳ５０７に進める。
【００４４】
ステップＳ５０６ではマイクロコンピュータ１０２は、変動セットに含まれている何れかの要素の値を微少量だけ変化させてこの変動セットを更新する。そして処理をステップＳ５０４に進め、この更新した変動セットに対応するレンズ収差特性値をレンズ特性値データベース４０４から取得する。一方、ステップＳ５０７ではマイクロコンピュータ１０２は、基準セット及び変動セットとを自身が有するメモリ等に格納する。
【００４５】
ここで、図４（ａ）のフローチャートに従った処理を、具体例を挙げて説明する。以降の説明では、レンズ収差特性値は、レンズ収差補正後の像高に対するレンズ収差補正前の像高であるものとして説明する。
【００４６】
レンズ特性値データベース４０４には図７（ａ）に示す如く、レンズの種類毎に、ｆ値、焦点距離、ピント位置、の組み合わせに応じたレンズ収差特性値がテーブル形式で登録されている。
【００４７】
ここで、ステップＳ５０１でマイクロコンピュータ１０２が、{レンズの種類=L0, 焦点距離=d2, ピント位置=x0, ｆ値=2.0}を基準セットとして確定したとする。この場合、ステップＳ５０２ではマイクロコンピュータ１０２は、この基準セットに対応するレンズ収差特性値６０１を、このテーブルから取得することになる。図７（ｂ）に、レンズ収差特性値６０１を示す。
【００４８】
そして、ステップＳ５０３においてマイクロコンピュータ１０２が、基準セット中のｆ値から０．２を減じた撮影パラメータ{レンズの種類=L0, 焦点距離=d2, ピント位置=x0, ｆ値=１．８}を変動セットとして生成したとする。この場合、ステップＳ５０４ではマイクロコンピュータ１０２は、この変動セット{レンズ種類=L0, 焦点距離=d2, ピント位置=x0, ｆ値=1.8}に対応するレンズ収差特性値６０２を、このテーブルから取得することになる。図７（ｃ）に、レンズ収差特性値６０２を示す。
【００４９】
次にステップＳ５０５ではマイクロコンピュータ１０２は、基準セットに対応するレンズ収差特性値６０１と変動セットに対応するレンズ収差特性値６０２とを比較する。図７（ｂ）と図７（ｃ）とを比較すると、同じ理想像高に対する補正前像高がレンズ収差特性値６０１とレンズ収差特性値６０２とで異なるので、基準セットと変動セットとは両者のレンズ収差特性が異なると判定される。然るにこの場合、処理はステップＳ５０７に進み、ステップＳ５０７でマイクロコンピュータ１０２は、この基準セットと変動セットとを、自身が有するメモリなどに格納する。なお、ステップＳ５０５では、基準セットと変動セットのレンズ収差特性値について、像高のずれの最大値や平均値などの代表値を比較し、その差が充分に大きい場合に両者のレンズ収差特性が異なると判定するようにしてもよい。
【００５０】
また、上述の例では、ステップＳ５０３において基準セットのｆ値に微少量を加えて変動セットを作成したが、他の要素を微少に変化させて変動セットを生成してもよい。例えば、基準セット中の焦点距離が3mである場合、これに微少量０．０５mを加えて、撮影距離が3.05mである変動セットを作成してもよい。また、基準セットおよび変動セットに対応するレンズ収差特性値がレンズ特性値データベース４０４内に存在しない場合も考えられる。その場合は、近傍の撮影パラメータ値に対するレンズ収差特性値からの補間により、対応するレンズ収差特性値を求めればよい。
【００５１】
本実施形態のカメラは、レリーズボタン２１４が全押しされると、以上で得られた基準セット、変動セットに基づいて撮影動作を行い、基準セットに従って撮像された撮像画像、変動セットに従って撮像された撮像画像を得る。なお、本実施形態では変動セットを１つのみ作成する例について説明したが、同様の手法で基準セット中の要素に対する変化量を変化させて２つ以上のレンズ収差特性の異なる変動セットを作成してもよい。その場合、得られる撮像画像のバリエーションが増える（レンズ収差特性が異なる画像が多く得られる）ため、後の画像生成処理をより高精度に行うことが可能となる。
【００５２】
＜レンズ収差補正処理について＞
以下では、それぞれの撮像画像に対して行うレンズ収差補正処理について説明する。上記の通り、本実施形態では、レンズ収差補正処理の一例として、歪曲収差補正処理を行う。先ず、歪曲収差補正処理の概要について、図８を用いて説明する。図８（ａ）には、樽形に歪んだ撮像画像に対して歪曲収差補正を行う場合について示しており、図８（ｂ）には、糸巻形に歪んだ撮像画像に対して歪曲収差補正を行う場合について示している。
【００５３】
歪曲収差は画素位置の移動を伴う補正であり、像高毎に複雑に移動量が変化する。倍率色収差も同様に画素位置の移動を伴う補正であるが、入力光の波長によってずれ方が異なるために生じる。これらのレンズ収差は一般的に光軸を中心とした回転対称になることが多く、画素毎に像高を算出し、レンズ収差特性値から像高に応じた画素位置の補正量を算出するのは処理が冗長になってしまう。そこで、図８（ｃ）に示すようにレンズ収差特性値をスプライン補間してテーブルを生成し、これを参照しながらレンズ収差補正処理を適用する。図８（ｃ）中の破線は、レンズ収差補正前後の像高が一致する場合を示している。この図の場合、補間したカーブがこの破線よりも上を通っているので樽形歪となり、レンズ収差補正後の画像は、像高が高いほど引き伸ばされる。
【００５４】
歪曲収差補正処理について、同処理のフローチャートを示す図９（ａ）を用いて説明する。上記の通り、この処理は、マイクロコンピュータ１０２の機能部としての補正部４０２が、画像処理回路１２５を用いて行う処理である。
【００５５】
先ず、ステップＳ９０１では、補正対象撮像画像を撮像する際に用いた撮影パラメータとセットになってレンズ特性値データベース４０４に格納されているレンズ収差特性値を取得する。
【００５６】
次に、ステップＳ９０２では、補正対象撮像画像の撮影時の情報を用いて、補正対象撮像画像の画素ピッチを取得する。画素ピッチとは画素と画素との間の距離のことであり、本実施形態では、撮像素子上でのミリ単位の距離で表す。
【００５７】
次に、ステップＳ９０３では、補正対象撮像画像の画像サイズ（幅fwピクセル、高さfhピクセル）を用いて以下の式を計算し、歪曲補正ルックアップテーブルサイズfsを算出する。fsは、フィット表示用画像の中心から頂点までのピクセル単位での距離である。
【００５８】
fs = √(( (fw／2)×(fw／2) )＋((fh／2)×(fh／2) ))      （１）
ステップＳ９０４では、ステップＳ９０１で得たレンズ収差特性値、即ち、理想像高毎の補正前像高をスプライン補間し、ステップＳ９０３で求めたサイズの歪曲補正ルックアップテーブルを作成する。ここで、歪曲補正ルックアップテーブルの入力は補正対象撮像画像の中心画素位置からのピクセル単位の距離で、出力は歪曲補正後の画像の中心からのピクセル単位の距離である。
【００５９】
ステップＳ９０５では、歪曲補正後の画像の各画素に対して、図１０に示す歪曲補正画素値算出処理を実行する。全ての画素について画素値を算出した後、本処理を終了する。
【００６０】
歪曲補正画素値算出処理の詳細について、図９（ｂ）のフローチャートを用いて説明する。歪曲補正画素値算出処理は、幅fwピクセル、高さfhピクセルの歪曲補正後の画像中の指定画素位置(i,j)における画素の画素値を、ステップＳ９０４で作成した歪曲補正ルックアップテーブルを用いて算出する処理である（図１０）。
【００６１】
先ず、ステップＳ１００１では、歪曲補正後の画像の中心画素位置から画素位置(i,j)までのピクセル単位の距離（像高）を求める。次に、ステップＳ１００２では、歪曲補正ルックアップテーブルを用いて像高に応じた補正量（歪曲補正前の像高）を求める。像高は整数値にならない場合があるが、その場合は線形補間で補正量を算出する。
【００６２】
ステップＳ１００３では、ステップＳ１００２で求めた補正量を用いて、歪曲補正後の画像上における画素位置(i,j)に対応する、補正対象撮像画像上での画素位置を、以下の式を計算することで求める。
【００６３】
I’(i,j) = r’ × I(i,j)／r              （２）
ここで、I(i,j)は画像中心から歪曲補正後の画素位置(i,j)への方向ベクトル、I’(i,j)は画像中心から画素位置(i,j)を歪曲補正する前の画素位置への方向ベクトルである。また、rは歪曲補正後の画素位置(i,j)におけるピクセル単位での像高、r’は歪曲補正ルックアップテーブルを用いて算出した歪曲補正前の画素位置(i,j)におけるピクセル単位での像高とする。
【００６４】
そしてステップＳ１００４では、補正対象撮像画像上でI’(i,j)に相当する画素位置の近傍における画素位置の画素の画素値をバイリニア補間して画素位置(i,j)における画素の画素値を決定する。
【００６５】
なお、レンズ収差補正処理については上記の処理以外にも様々な方法があり、本実施形態では何れを用いても良い。これらの方法は何れも周知の技術であるため、これ以上の説明は省略する。
【００６６】
＜出力画像の生成処理＞
次に、出力画像の生成処理について説明する。出力画像の生成処理は、以下の２つの処理から成る。
【００６７】
（１）  複数のレンズ収差補正済み撮像画像から生成される基準画像と、それぞれのレンズ収差補正済み撮像画像との相対的な位置ずれを求める処理
（２）  複数のレンズ収差補正済み撮像画像、それぞれのレンズ収差補正済み撮像画像について求めた位置ずれ、基準画像、を用いて出力画像を生成する処理
なお、何れの処理も、マイクロコンピュータ１０２の機能部としての画像生成部４０３が、画像処理回路１２５を用いて行う処理である。先ず、位置ずれを求める為の処理について説明する。
【００６８】
＜相対的な位置ずれを求める処理について＞
先ずは、撮影されたＮ（Ｎ＞１）枚の撮像画像を収差補正したレンズ収差補正済み撮像画像１〜レンズ収差補正済み撮像画像Ｎを用いて基準画像Ｘを生成する。本実施形態では、レンズ収差補正済み撮像画像１〜レンズ収差補正済み撮像画像Ｎの平均画像を基準画像として求めるが、基準画像の生成方法についてはこれに限定するものではない。例えば、レンズ収差補正済み撮像画像１〜レンズ収差補正済み撮像画像Ｎのそれぞれに対して重み付けした結果の合計（合計結果）を基準画像Ｘとしても良い。
【００６９】
そして次に、基準画像Ｘと、レンズ収差補正済み撮像画像ｉ（１≦ｉ≦Ｎ）と、の間の相対的な位置ずれを求める。ここでは、基準画像Ｘ、レンズ収差補正済み撮像画像ｉのそれぞれを所定サイズのブロック毎に分割する。そして、基準画像Ｘ内の着目ブロックと最も類似するレンズ収差補正済み撮像画像ｉ内のブロックを特定し、着目ブロックの位置から特定したブロックの位置に対する動きベクトルを求める。そして各ブロックについて求めた動きベクトルから、画像間の動きベクトルをアフィンパラメータとして求める。即ち、基準画像Ｘの画像内容がレンズ収差補正済み撮像画像ｉ内でどのようにずれているのかをアフィンパラメータとして求める。
【００７０】
ブロック毎の動きベクトルの算出には、ブロック内の画素間の差分二乗和や差分絶対値和を評価値に用いた、一般的なブロックマッチングの方法を用いる。すなわち、基準画像Ｘ内の着目ブロックと、レンズ収差補正済み撮像画像ｉ内の各ブロックとの間で、ブロック内の画素値の差分を求め、求めた差分が最も小さいレンズ収差補正済み撮像画像ｉ内のブロックの位置を特定する。そして基準画像Ｘ内の着目ブロックの位置から、レンズ収差補正済み撮像画像ｉ内で特定したブロックの位置への動きベクトルを求める。基準画像Ｘ内の各ブロックについてこのような動きベクトルを求めると、次に、この求めたそれぞれの動きベクトルから、アフィンパラメータの検出を行う。
【００７１】
ここで、アフィンパラメータを検出する処理について説明する。基準画像Ｘの中心画素位置が（ｘ，ｙ）であり、動きベクトルの算出結果から、レンズ収差補正済み撮像画像ｉの中心画素位置が（ｘ’，ｙ’）に移動したとすると、これらの関係は、下記式（３）のように表すことができる。
【００７２】
｜ｘ’｜  ｜ａ  ｂ  ｃ｜  ｜ｘ｜
｜ｙ’｜＝｜ｄ  ｅ  ｆ｜・｜ｙ｜      （３）
｜  １｜  ｜０  ０  １｜  ｜１｜
ここで、３×３の行列がアフィン変換行列である。行列の各要素がアフィンパラメータであり、ａ＝１，ｂ＝０，ｄ＝０，ｅ＝１のとき、この変換は平行移動となり、ｃが水平方向の移動量、ｆが垂直方向の移動量となる。また、回転角θでの回転移動は、ａ＝ｃｏｓθ，ｂ＝−ｓｉｎθ，ｄ＝ｓｉｎθ，ｅ＝ｃｏｓθで表すことができる。式（３）は一般化した行列の形式で式（４）のように表現することができる。
【００７３】
ｘ’＝Ａ・ｘ      （４）
ここでｘとｘ’は３×１の行列、Ａは３×３の行列である。動きベクトルがｎ個であった場合、基準画像Ｘ内の座標は以下の式（５）のように、３×１の行列ｘｉ（１≦ｉ≦Ｎ）を要素にもつｎ×１の行列で表現できる。
【００７４】
Ｘ＝（ｘ１，ｘ２，ｘ３，…，ｘｎ）Ｔ      （５）
同様に、移動後の座標値も以下の式（６）のようにｎ×１の行列で表現できる。
【００７５】
Ｘ’＝（ｘ１’，ｘ２’，ｘ３’，…，ｘｎ’）Ｔ      （６）
よって、ｎ個の動きベクトルに対しては、式（７）のような表現となる。
【００７６】
Ｘ’＝Ａ・Ｘ      （７）
即ち、式（７）におけるアフィン行列Ａを求めれば、それが基準画像Ｘとレンズ収差補正済み撮像画像ｉとの間の位置ずれ量を示す情報となる。式（７）を変形すると、アフィン行列Ａは式（８）のように求まる。
【００７７】
Ａ＝Ｘ’・ＸＴ・（Ｘ’・ＸＴ）−１      （８）
この方式では、動き量が、アフィン変換のパラメータで表現できるため、カメラを保持しているときに起こるシフトぶれ以外にも、面内方向でのロールぶれや前後方向のズームぶれなどにも対応することが可能である。
【００７８】
＜出力画像を生成する処理について＞
次に、複数のレンズ収差補正済み撮像画像、それぞれのレンズ収差補正済み撮像画像について求めた位置ずれ、基準画像、を用いて出力画像を生成する処理について説明する。先ず、基準画像Ｘと、収差補正済み撮像画像ｉ（１≦ｉ≦Ｎ）と、の間の相対的な位置ずれを表す行列Ｍｉを求める。行列Ｍｉは、基準画像Ｘとレンズ収差補正済み撮像画像ｉとの間の位置ずれを示すアフィンパラメータを用いて求めることができる。
【００７９】
先ず、基準画像Ｘ（レンズ収差補正済み撮像画像ｉ）の画像サイズを横Ｐ画素、縦Ｑ画素とすると、基準画像Ｘ中の各画素の画素値ｐ（ｋ、ｌ）  （１≦ｋ≦Ｐ、１≦ｌ≦Ｑ）を（ｋ＋ｌ×Ｐ）番目の要素とする（Ｐ×Ｑ）行１列の列ベクトルＸを生成する。このとき、行列Ｍｉは、（Ｐ×Ｑ）行（Ｐ×Ｑ）列の行列である。
【００８０】
行列Ｍｉ中の各要素の求め方は、レンズ収差補正済み撮像画像ｉについて求めたアフィンパラメータを用いて基準画像Ｘ中の画素位置を変換した場合に、その変換先の位置に応じて異なる。即ち、レンズ収差補正済み撮像画像ｉ上の画素位置、レンズ収差補正済み撮像画像ｉ上の画素位置間、の何れに変換されるのかに応じて、行列Ｍｉ中の各要素の求め方は異なる。
【００８１】
先ず、レンズ収差補正済み撮像画像ｉについて求めたアフィンパラメータを用いて基準画像Ｘ中の画素位置を変換した場合に、この画素位置がレンズ収差補正済み撮像画像ｉ上の画素位置に変換される場合について説明する。
【００８２】
Ｍｉ・Ｘの演算結果である（Ｐ×Ｑ）行１列の列ベクトルを列ベクトルＺとし、列ベクトルＺ中の（ｋ＋ｌ×Ｐ）番目の要素が、レンズ収差補正済み撮像画像ｉ中の画素位置（ｋ、ｌ）に対応しているものとする。そして、列ベクトルＸ中の要素（要素α）に対応する画素位置が、列ベクトルＺ中の要素（要素β）に対応する画素位置に変換されるとする。この場合、行列Ｍｉにおいてβ行内の各要素を、α列目の要素のみを１、それ以外を０、として決定する。このように、列ベクトルＸ中の各要素に対応する列ベクトルＺの要素が上記のアフィンパラメータを用いれば分かるので、これにより、行列Ｍｉを構成する各要素の値を求めることができる。
【００８３】
次に、レンズ収差補正済み撮像画像ｉについて求めたアフィンパラメータを用いて基準画像Ｘ中の画素位置を変換した場合に、この画素位置がレンズ収差補正済み撮像画像ｉ上の画素位置間に変換される場合について説明する。
【００８４】
列ベクトルＸ中の要素（要素α）に対応する画素位置が、列ベクトルＺ中の要素（要素β）に対応する画素位置の近傍画素位置（整数では表現できない座標値）に変換されるとする。そして、列ベクトルＺ中の要素βに対応する画素位置の画素値が、列ベクトルＸ中の要素α１〜αｖが示す画素値に対して適当な重み付けした和として表現可能であるとする。
【００８５】
この場合、行列Ｍｉにおいてβ行内の各要素を、α１〜αｖ列目のそれぞれの要素を、対応する重み値とし、それ以外を０、として決定する。このように、列ベクトルＸ中の各要素に対応する列ベクトルＺの要素が上記のアフィンパラメータを用いれば分かるので、これにより、行列Ｍｉを構成する各要素の値を求めることができる。
【００８６】
そして以上のようにして行列Ｍｉを生成した後、次に以下の式を計算することで、レンズ収差補正済み撮像画像ｉに対応する推定画像Ｙｉを生成する。
【００８７】
Ｙｉ＝Ｄｉ・Ｍｉ・Ｘ＋ｎｉ
ここで、Ｄｉは、撮影時の像高と理想像高のずれ量から算出される、レンズ収差補正による局所的な拡大処理の倍率を反映した行列である。行列Ｄｉは、レンズ収差補正済み撮像画像ｉを撮影するために用いた撮影パラメータに対応するレンズ収差特性値から周知の計算で求めることができる。また、ｎｉはノイズ項で、適当な値を用いる。もちろん、ｎｉ＝０としても良い。この場合、Ｄｉ、Ｍｉ、Ｘの積演算のみでＹｉを求めることになる。
【００８８】
以上のような推定画像Ｙｉ生成処理を、ｉ＝１〜Ｎについて行うことで、それぞれのレンズ収差補正済み撮像画像に対応する推定画像を生成することができる。そして、この生成した推定画像Ｙｉとレンズ収差補正前の撮像画像ｉとの差分をｉ＝１〜Ｎについて合計した和を極小化するように列ベクトルＸ（基準画像Ｘ）を更新することで、最終的に出力する１枚の出力画像（列ベクトルＸ）を生成する。
【００８９】
このような出力画像の生成処理について、図１１のフローチャートを用いて説明する。ステップＳ１１０１では上記の通り、収差補正済み撮像画像１〜レンズ収差補正済み撮像画像Ｎを用いて基準画像Ｘを生成する。そして、この生成した基準画像Ｘと、それぞれのレンズ収差補正済み撮像画像と、を用いて、それぞれのレンズ収差補正済み撮像画像についてアフィンパラメータを求める。
【００９０】
次に、ステップＳ１１０２では、それぞれのレンズ収差補正済み撮像画像について求めた位置ずれ、基準画像、を用いて出力画像を生成する。ステップＳ１１０２における処理の詳細を図１１（ｂ）のフローチャートを用いて説明する。
【００９１】
ステップＳ１１０４では先ず、基準画像Ｘと、レンズ収差補正済み撮像画像ｉと、の間の相対的な位置ずれを表す行列Ｍｉを求める処理を、ｉ＝１〜Ｎについて行う。行列Ｍｉを求める処理は上述の通りである。
【００９２】
次に、ステップＳ１１０４では、ｉ＝１〜ＮについてＹｉ＝Ｄｉ・Ｍｉ・Ｘ＋ｎｉを計算することで、ｉ＝１〜Ｎについて推定画像Ｙｉを生成する。そして、レンズ収差補正前の撮像画像ｉ中の各画素の画素値ｐ（ｋ、ｌ）  （１≦ｋ≦Ｐ、１≦ｌ≦Ｑ）を（ｋ＋ｌ×Ｐ）番目の要素とする（Ｐ×Ｑ）行１列の列ベクトルＷｉを生成する。そして、（Ｄｉ・Ｍｉ）−１・（Ｙｉ−Ｗｉ）をｉ＝１〜Ｎについて合計した結果を、（Ｐ×Ｑ）行１列の列ベクトルΔ（行列Δ）として求める（演算）。なお、（Ｄｉ・Ｍｉ）Ｔ・（Ｙｉ−Ｗｉ）に対して、ｉ毎に重み付けを行っても良い。その場合、それぞれに対する重み値の合計値が１になるようにする。
【００９３】
そしてステップＳ１１０５では、列ベクトルＸに対して列ベクトルΔを加算することで、この列ベクトルＸを更新する。なお、列ベクトルΔを構成する各要素に対して一定の値を乗じてこの列ベクトルΔを更新し、更新後の列ベクトルΔを列ベクトルＸに加算するようにしても良い。
【００９４】
次に、ステップＳ１１０６では、列ベクトルＸの更新処理を完了させるか否かを判断する。この判断基準には様々なものを用いることができる。例えば、（Ｙｉ−Ｗｉ）の絶対値をｉ＝１〜Ｎについて合計した結果を示す列ベクトルを構成する各要素の値が閾値以下であれば、更新処理を完了すると判断しても良い。なお、（Ｙｉ−Ｗｉ）の絶対値に対して、ｉ毎に重み付けを行っても良い。その場合、それぞれに対する重み値の合計値が１になるようにする。
【００９５】
また、列ベクトルΔを構成する各要素の絶対値が閾値以下であれば、更新処理を完了すると判断しても良い。また、更新前の列ベクトルＸを構成する各要素と、更新後の列ベクトルＸを構成する各要素との間の差分の絶対値の合計値が閾値以下であれば、更新処理を完了すると判断しても良い。
【００９６】
何れにせよ、更新処理を完了させると判断した場合には、この時点での列ベクトルＸを、最終的な出力画像を示す列ベクトルとして出力する。出力先については特に限定するものではない。一方、更新処理を未だ完了させないと判断した場合には、処理をステップＳ１１０４に戻す。また、更新処理回数を予め設定しておき、この設定した更新処理回数だけステップＳ１１０４，Ｓ１１０５の処理を繰り返すようにしても良い。
【００９７】
以上の説明により、本実施形態によれば、レンズ収差特性が異なるように撮影パラメータを決定することで、画素値がレンズ収差に応じて異なる複数の補正画像を取得することができる。そしてこれらの補正画像を用いて上記の処理を行うことで、レンズ収差補正処理によって低下した解像度を、その低下の割合に応じて高精度に回復することができる。
【００９８】
［第２の実施形態］
第１の実施形態では、基準セットに含まれている何れかの要素の値を微少量だけ変化させることで変動セットを生成した。本実施形態では、基準セット中の幾つかの要素の近傍値を示す要素群をレンズ特性値データベース４０４から特定し、この特定した要素群で構成される変動セットを生成する。変動セットの生成以外については、第１の実施形態と同様である。
【００９９】
通常、レンズ特性値データベース４０４には、データ量削減の観点から、代表的なレンズ収差特性値とそれに対する撮影パラメータのみが格納されている。ここで、代表的なレンズ収差特性値とは、例えば、レンズの特性の変極点に相当する値である。このとき、レンズ特性値データベース４０４に格納されている撮影パラメータの前後では、レンズ収差特性が大きく変化すると考えられる。そこで本実施形態では、レンズ特性値データベース４０４に格納されている撮影パラメータを跨ぐように、変動セットの撮影パラメータを作成する。これにより、繰り返し処理を行うことなく、基準セットと充分に特性の異なる変動セットを得ることができる。
【０１００】
マイクロコンピュータ１０２が、以降の処理で用いる複数の撮影パラメータを決定する処理について、同処理のフローチャートを示す図４（ｂ）を用いて説明する。まず、レリーズボタン２１４が半押しされたことをマイクロコンピュータ１０２が検知すると、カメラの状態を撮影準備状態に移行する。そしてその後、ステップＳ５０１では第１の実施形態と同様、マイクロコンピュータ１０２は、基準セットを確定させる。
【０１０１】
ステップＳ５０８ではマイクロコンピュータ１０２は、基準セット中の１以上の要素の値の近傍値を有する。例えば、ステップＳ５０１で{レンズ種類=L1, 焦点距離=d1, ピント位置=x1, ｆ値=5.0}を基準セットして確定させたとする。この場合、ステップＳ５０８では、ｆ値＝５．０の近傍値をレンズ特性値データベース４０４から探索して取得する。そして、この検索の結果、ｆ値＝2.4、4.0、6.3、8.0が得られたとする。この場合、変動セットに対応するレンズ収差特性は、ｆ値＝4.0とｆ値＝6.3に対応するレンズ収差特性の補間により算出されることとなる。そこで、ステップＳ５０９では、基準セットと変動セットのｆ値が4.0または6.3を跨ぐように、例えばｆ値＝3.2あるいは7.1として変動セットを作成する。変動セットのｆ値を3.2とした場合には、そのレンズ収差特性はｆ値＝2.4とｆ値＝4.0に対応するレンズ収差特性の補間により算出される。したがって、そのレンズ収差特性は基準セットと異なるものとなる。同様に、変動セットのｆ値を7.1とした場合には、そのレンズ収差特性にはｆ値＝6.3とｆ値＝8.0に対応するレンズ収差特性が反映され、基準セットおよびｆ値を3.2とした変動セットとは異なるレンズ収差特性となる。
【０１０２】
以上の説明により、本実施形態によれば、変動セットの決定を、より高速かつ効果的に行うことが可能となる。なお、本実施形態においては近傍値を跨ぐように変動セットを作成したが、他の方法を用いて近傍値から変動セットを作成することも可能である。例えば、隣り合う近傍値に対するレンズ収差特性が大きく異なる場合には、それらの近傍値の間を異なる割合で補間して変動セットを作成しても、基準セットと充分にレンズ収差特性の異なる変動セットを得ることができる。
【０１０３】
［第３の実施形態］
第１，２の実施形態では、レンズ収差特性のみに着目して撮影パラメータを決定する方法について説明した。しかしながら、一般に撮影パラメータが異なると被写界深度も異なる。ここで、被写界深度とはあるピント位置に対し、その前後の位置において同時にピントが合っていると見なすことのできる許容範囲である。上述した変動セットの作成方法では、変動セットを用いて撮影した画像において、主要被写体が被写界深度から外れてボケてしまう可能性がある。そこで本実施形態では、レンズ収差特性だけでなく被写界深度も考慮して撮影パラメータを決定する方法について説明する。なお、レンズ収差補正、画像生成については第１，２の実施形態と同様であるため、説明は省略する。
【０１０４】
焦点距離を変動させた場合の被写界深度について、図１２（ａ）を用いて説明する。通常の撮影においては、主要被写体にピントが合うように撮影パラメータが決定される。例えば、図１２（ａ）に示すＡの位置に主要被写体がある場合、この位置にピントを合わせるため、被写界深度は範囲１２０１となる。このときの焦点距離d1対し、焦点距離がd0、d2の場合は被写界深度がそれぞれ範囲１２０２，１２０３であるので、いずれの焦点距離で撮影しても、主要被写体が被写界深度内に位置する。すなわち、焦点距離をd0、d1、d2と変化させて撮影すると、レンズ収差特性を変化させながら主要被写体にピントの合った複数の画像を得ることができる。しかしながら、図１２（ａ）の焦点距離d3のように、被写界深度の範囲１２０４が被写界深度の範囲１２０１と重複しない場合、焦点距離d3で撮影した画像において主要被写体は必ずボケてしまう。その結果、後の画像生成処理において復元可能な解像度の限界が低下するという問題が発生する。そこで本実施形態では、基準セットと変動セットについて被写界深度の少なくとも一部が重複するように変動セットを作成することにより、主要被写体が被写界深度から外れることを防止する。
【０１０５】
マイクロコンピュータ１０２が複数の撮影パラメータを決定する処理について、同処理のフローチャートを示す図５を用いて説明する。なお、ステップＳ５０１からステップＳ５０７の各ステップにおける処理は、第１の実施形態で説明したとおりであるので、これについての説明は省略する。
【０１０６】
ステップＳ５１０ではマイクロコンピュータ１０２は、基準セットに対応する被写体深度を、レンズ特性値データベース４０４から取得する。本実施形態では、被写体深度は、レンズ収差特性値と同様に、撮影パラメータ毎に対応する被写体深度をレンズ特性値データベース４０４に予め登録しておく。然るに、１つの撮影パラメータが決定すると、ステップＳ５１０では、この決定した撮影パラメータに対応する被写体深度をレンズ特性値データベース４０４から取得することができる。
【０１０７】
次に、ステップＳ５１１ではマイクロコンピュータ１０２は、変動セットに対応する被写体深度を、レンズ特性値データベース４０４から取得する。ステップＳ５１２ではマイクロコンピュータ１０２は、ステップＳ５１０で取得した被写体深度と、ステップＳ５１１で取得した被写体深度と、を比較し、それぞれの被写体深度で重なっている範囲を求める。そしてこの求めた範囲が、ステップＳ５１０で取得した被写体深度に対して予め定められた割合以上を占める場合、それぞれの被写体深度は充分に重複していると判断し、処理はステップＳ５０７に進む。一方、予め定められた割合未満を占める場合には、それぞれの被写体深度は充分には重複していないと判断し、処理はステップＳ５０６に進む。ステップＳ５１２からステップＳ５０６に進んだ場合、ステップＳ５０６では、焦点距離やｆ値などの被写界深度に大きく影響を与える要素に変動量を加えることが望ましい。
【０１０８】
なお、２つ以上の変動セットを作成する場合、ステップＳ５０５において基準セットだけでなく他の変動セットともレンズ収差特性が異なるか否かを判定するように構成する。そして、各変動セットについてステップＳ５０４〜ステップＳ５１２の間の処理を繰り返し行えばよい。
【０１０９】
以上の説明により、本実施形態によれば、変動セットを用いて撮影した画像において主要被写体が被写界深度から外れることを防止し、より高精度な出力画像を生成することが可能となる。なお、撮影の際に赤外線センサなどを用いて撮影画像の画素ごとに被写体までの距離を取得しておき、得られた距離が被写界深度内である画素のみを用いて後の画像生成処理を行えば、より高解像度の出力画像を生成することも可能である。
【０１１０】
なお、本実施形態では、変動セットを第１の実施形態と同様にして作成したが、第２の実施形態と同様にして作成しても良い。この場合の基準セット、変動セットの作成処理のフローチャートを図６に示す。この場合、変動セットの初期値に関してレンズ収差特性が充分に基準セットと異なることが期待できるため、その分繰り返し回数を低減することができる。
【０１１１】
［第４の実施形態］
第１の実施形態では、MAP推定法に代表されるループ処理を含む高解像度画像生成手法を用いて出力画像を生成する方法について説明した。本実施形態では、ループ処理を含まない出力画像の生成方法について説明する。なお、撮影パラメータ決定、および、レンズ収差補正については、第１乃至３の実施形態と同様であるため、これについての説明は省略する。
【０１１２】
図１２（ｂ）に、本実施形態における画像生成処理の概念図を示す。前述したように、撮影部４０１ではそれぞれレンズ収差特性が異なるように複数の撮影画像を取得する。そのため、補正部４０２のレンズ収差補正処理において、補正前の画像上での座標P’n(i,j)は撮影画像ごとに異なる。したがって、第１の実施形態で述べたステップＳ１００４の処理において、補間に用いる近傍の画素までの距離も撮影画像ごとに異なる。ここで、ある処理対象座標とその最近傍画素までの距離Dnが大きいほど、補間の結果得られる画像の解像度が低下することが一般に知られている。そこで本実施形態では、複数の補正画像上の同一座標に関して、最近傍画素までの距離Dnが最小である画素値を選択することにより、解像度の低下を抑制して出力画像を生成する。例えば図１２（ｂ）に示す例の場合、最近傍画素までの距離はD1が最小であるため、補正画像１上の画素P1(i,j)の値を出力画像の座標(i,j)における画素値とする。
【０１１３】
図１１（ｃ）は、本実施形態における出力画像の生成処理を示すフローチャートである。第１の実施形態とは異なり、ループ処理は行わない。まずステップＳ１１０７で、補正部４０２で得られた各補正画像上の画素Pn(i,j)について、予めレンズ収差補正の際に記憶装置１１９などに記憶しておいた最近傍画素までの距離Dnを取得する。次に、ステップＳ１１０８で、得られた距離Dnが最小である画素を選択し、その画素値を出力画像の座標(i,j)における画素値とする。以上の処理を全ての座標に対して行うことにより、出力画像を生成する。以上により、出力画像の生成をより高速に行うことが可能となる。
【０１１４】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2011254335.tif 000003
【図２】
2011254335.tif 000004
【図３】
2011254335.tif 000005
【図４】
2011254335.tif 000006
【図５】
2011254335.tif 000007
【図６】
2011254335.tif 000008
【図７】
2011254335.tif 000009
【図８】
2011254335.tif 000010
【図９】
2011254335.tif 000011
【図１０】
2011254335.tif 000012
【図１１】
2011254335.tif 000013
【図１２】
2011254335.tif 000014