以下、添付の図面に従って、本発明を実施するための最良の形態について説明する。なお、この実施の形態により本発明が限定されるものではない。
図1は、本発明に係る画像処理方法を適用した撮像装置の構成を示した構成図である。
本発明の撮像装置に用いるレンズは、単焦点レンズであり、かつ撮像装置にレンズが固定されているなどして使用されるレンズが特定されている。
100は、概ね円筒形状を有した単焦点レンズである。単焦点レンズ100は、内部にフォーカスレンズ101及び絞り102を備えている。
101は、フォーカス時に移動するフォーカスレンズである。フォーカスレンズ101は、フォーカス制御部112によって駆動を制御される。
102は、絞りである。絞り102は、絞り制御部113によって駆動を制御される。
103は、フィルタである。フィルタ103は、赤外線などの撮像素子にとって不要な波長の光線を反射若しくは吸収するものやローパスフィルタなどである。
104は、撮像素子である。撮像素子104は、単焦点レンズ100とフィルタ103を通して入射した光を画像信号に変換するCMOSやCCDである。
105はCDS回路である。かかるCDSとはCorrelated Double Samplingの略であり、相関二重サンプリングを示す。CDS回路105は、相関二重サンプリングを行い、CCDの内部で走査転送する際に生じるリセットノイズを、信号のフィードスルー部分の電圧とデータ部分の電圧の差分を検出し、この差分をキャンセルすることでリセットノイズを除去し、正確な信号レベルを計算するものである。
106は、可変電気アンプである。可変電気アンプ106は、信号電荷の増幅を行う。
107は、画像信号変換部である。画像信号変換部107は、撮像素子104の検出した画像信号の増幅を行う可変電気アンプやアナログである画像信号をデジタル信号の画像データへ変換するAD変換機などを備える。
108は、画像処理部である。画像処理部108は、撮影された画像信号に各種処理を施す。画像処理部108は、補正項調整計算回路108a及び補正回路108bを備える。
補正項調整計算回路108aは、CPU111からの撮影条件と補正テーブル記憶装置201に記憶された補正テーブルとから補正項Gを計算する。なお、補正項調整計算回路108aは、計算手段に該当する。
補正回路108bは、補正項調整計算回路108aにて計算された補正項Gから画像データ全体の各画素に与えるべきゲインを計算し、計算されたゲインをそれぞれの画素の信号値に乗算除算することでシェーディング補正を行う。なお、補正回路108bは、補正手段に該当する。
109は、表示装置である。表示装置109は、例えば液晶や有機ELなどを用いる。
110は、撮影した画像データを記憶するための記憶装置である。記憶装置110は、例えば撮像装置に着脱自在なSDメモリカード(登録商標)、マルチメディアカード(登録商標)、xDピクチャカード(登録商標)、スマートメディア(登録商標)などの記録媒体を用いる。
111は、CPUである。CPU111は、フォーカス制御部112、絞り制御部113の駆動制御を行う。また、CPU111は撮影時のフォーカスレンズ位置、絞り径などの撮影条件を読み出す。
201は、補正テーブル記憶装置である。補正テーブル記憶装置201は、補正テーブル計算回路301が計算したブロックごとのゲインの集合である、補正テーブルを記憶する。補正テーブルは、補正テーブル記憶装置201に図4a、図4bのように、絞り径とフォーカスレンズ位置が関連付けられたテーブルの形式で記憶されている。なお、補正テーブル記憶装置201は、記憶手段に該当する。
301は、補正テーブル計算回路である。補正テーブル計算回路301は、ブロックごとのゲインの集合である補正テーブルを計算する。補正テーブルの具体的な計算方法は、フォーカスレンズ位置と絞り径を変更して撮影することで予め取得した一定光源の画像データを図5のような形でむらを補正するのに十分な数の複数のブロックに分割し、ブロックごとに信号値の平均値を計算し、得られる信号値の色信号比が全画面で均一となるように、各ブロックに与えるべきゲインをブロックの信号値の平均値の逆数として求める。
次に、本発明における撮像装置の行う画像データ補正処理について説明する。画像データ補正処理は、大きく分けると個体調整の工程、補正テーブルの調整計算の工程、補正の工程の3つの工程から構成される。以下にこの3つの工程を順に追って説明する。
第1の実施例について説明する。
最初に、個体調整の工程について説明する。
個体調整の工程は、カメラの個体ごとに最適な補正テーブルを記録させる工程である。個体調整の工程は図2のフローチャートに従って行う。
今後、使用する文字列について説明する。撮影時の絞り径をF、フォーカスレンズ位置をDとする。実際に撮影した画像データに適用する補正項を補正項Gとする。
ステップ#1は、フォーカスレンズ位置を設定する。フォーカスレンズ位置の設定順序は、最短撮影距離MOD、無限遠INFの順である。初めてステップ#1を実行する場合、フォーカスレンズ位置は、最短撮影距離MODへ設定する。ステップ#6から戻ってきてステップ#1を実行する場合、フォーカスレンズ位置は、無限遠INFへ設定する。
ステップ#2は、レンズの絞り径を設定する。レンズの絞り径の設定順序は、F8.0、F4.0、F2.8の順である。
ステップ#1にて、フォーカスレンズ位置を設定した後、ステップ#2を実行する場合、レンズの絞り径はF8.0へ設定する。ステップ#5から戻ってきてステップ#2を実行する場合、戻ってきた際のレンズの絞り径がF8.0であれば、F4.0へ設定を変更する。同様にレンズの絞り径が、F4.0であれば、F2.8へ設定を変更する。
ステップ#3は、ステップ#1とステップ#2にて設定したレンズの条件で、一定光源を撮影して画像データを取得する。
ステップ#4は、補正テーブル計算回路301が、ステップ#3にて取得した画像データから各ブロックのゲインを計算する。そして、補正テーブル記憶装置201は、計算したゲインを記憶する。ゲインの計算方法は、後述する。
ゲインの計算方法は、補正テーブル計算回路301が、ステップ#3において取得した画像データを図5に示すような形で、むらを補正するために複数のブロックに分割する。分割したブロックごとに与えるべきゲインは、ブロックごとでの信号値の色信号比が全画面で均一となるように、ブロックごとでの信号値の平均値を逆数として、この逆数の比率として求める。計算されたブロックごとのゲインの集合である補正テーブルは、図4aのようにそれぞれのフォーカスレンズ位置と絞り径に対応した補正テーブルとして、補正テーブル記憶装置201に記憶される。
また、補正項Gにてレンズなどの光学系の特性による撮像面へ入射する光量の非均一性も補正する場合は、ブロックごとの信号値の平均値と画面中心のブロックの平均値に対する比率の逆数としてゲインを計算する。
また、補正項Gにて撮像面の受光特性の非均一性のみを補正する場合は、ブロックごとの信号値の平均値と画面中心のブロックの平均値に対する比率の逆数としてゲインを計算した後、個体調整の工程において使用される光学系から撮像面へ入射する光量と当該ブロック位置の撮像素子中心に対する比率の逆数を除算することで計算することが可能である。
ステップ#5は、補正テーブル計算回路301が、指定した全ての絞り径でゲインを取得したか否かを判断する。第1の実施例における全ての絞り径は、F8.0、F4.0、F2.8の3種類を想定している。
例えば、ステップ#5の補正テーブル計算回路301は、絞り径がF8.0であると、絞り径の設定順から絞り径がF4.0とF2.8でのゲインを取得していないと判断する。つまり、指定した全ての絞り径でのゲインを取得していないと判断する。全ての絞り径でのゲインを取得していないと判断した場合は、ステップ#2へ戻り、一段大きな絞り径をF4.0に設定し、以降のステップを進める。
補正テーブル計算回路301の判断時の絞り径が、F4.0の場合も同様である。但し、この場合、設定する絞り径は、F2.8となる。
第1の実施例は、ゲインを得る絞り径がF8.0、F4.0、F2.8の順のため、絞り径がF2.8の時のゲインを取得した場合は、ステップ#5の補正テーブル計算回路301は、3種類の全ての絞り径でのパターンでデータを取得していると判断する。ステップ#6へ進む。
ステップ#6は、補正テーブル計算回路301が全てのフォーカスレンズ位置にてゲインを取得したか否かを判断する。第1の実施例における全てのフォーカスレンズ位置とは、最短撮影距離MODと無限遠INFの2種類を想定している。ステップ#1のフォーカスレンズ位置の設定順序は、最短撮影距離MOD、無限遠INFの順となる。
例えば、ステップ#1でフォーカスレンズ位置を最短撮影距離MODに設定して、各ステップを進み、ステップ#6へ進む。補正テーブル計算回路301は、フォーカスレンズ位置を確認する。確認してフォーカスレンズ位置が最短撮影距離MODであった場合、無限遠INFでのゲインを取得していないと判断する。つまり、全てのフォーカスレンズ位置でのゲインを取得していないと判断する。
ステップ#6で補正テーブル計算回路301が、全てのフォーカスレンズ位置でのゲインを取得していないと判断した場合は、ステップ#1に戻り、フォーカスレンズの位置を無限遠INFに設定を変更する。そして、ステップ#2、ステップ#3、ステップ#4、ステップ#5とステップを進める。
ステップ#6で補正テーブル計算回路301が、無限遠INFでのゲインを取得していると判断した場合、補正テーブル計算回路301は、全てのフォーカスレンズ位置でのゲインを取得したと判断する。ステップ#7へ進む。
ステップ#7は、これまでステップ#1からステップ#4までの間に取得した全てのフォーカスレンズ位置と全ての絞り径においての6パターンのゲインをそれぞれフォーカスレンズ位置と絞り径とを関連付けて補正テーブル記憶装置201に記憶し、補正テーブルを作成する。全てのフォーカスレンズ位置と全ての絞り径において補正テーブルの作成が完了すると、個体調整の工程は、終了する。補正項調整計算の工程へ進む。
ここで、シェーディング補正のための補正項を計算する基となる補正テーブルのパラメータとして、フォーカスレンズ位置と絞り径とを選択した理由を述べる。
本発明に用いる光学系の単焦点かつ単一のレンズの場合、シェーディングに影響を及ぼす主な要因は、フォーカスレンズ位置と絞り径となる。例えば、同じ絞り径であったとしても、フォーカスレンズ位置が異なればシェーディングも異なる。また、同じフォーカスレンズ位置であったとしても、絞り径が異なれば同様にシェーディングも異なる。なぜなら、絞り径やフォーカスレンズ位置が変わることで、入射角度などの光学的特性が変化し、撮像素子へ到達する光も変化することとなる。この変化に伴い、画像に現れるシェーディングも変化するからである。よって、本発明ではフォーカスレンズ位置と絞り径とをシェーディング補正を行う補正項を計算する基となる補正テーブルのパラメータに選択した。
次に、補正項調整計算の工程について説明する。
補正項調整計算の工程は、補正テーブルを実際に撮影した画像データに用いるのに最適な補正項Gに調整する工程である。図3は補正項調整工程のフローチャートである。
個体調整の工程終了後、補正を施される画像データを撮影する。すると、ステップ#11は、フォーカス制御部112、絞り制御部113からそれぞれ撮影時のフォーカスレンズ位置D、絞り径Fを読み出す。
ステップ#12は、ステップ#11にて読み出した撮影時のフォーカスレンズ位置D及び絞り径Fの逆数を用いて補正項Gの計算に必要な補正テーブルを補正テーブル記憶装置201から読み出す。
図4aは、実際に撮影した画像データに用いる補正項Gを計算する際に読み出す4つの補正テーブルの選出方法を示す概念図である。
撮影時の絞り径の逆数を縦軸に、同じく撮影時のフォーカスレンズ位置を横軸に取る図4aのような二次元平面を考える。この二次元平面上に補正テーブル記憶装置201に記憶されている複数の補正テーブルに対応する撮影時のフォーカスレンズ位置D及び撮影時の絞り径Fをプロットし、隣り合う点を破線で結び、破線のようなブロックを考える。ステップ#12は、この二次元平面上に撮影時のフォーカスレンズ位置D及び撮影時の絞り径Fの逆数をプロットし、補正テーブル記憶装置201に記憶されている補正テーブルの中からその点を含むようなブロックを構成する4つの点に対応する補正テーブルを読み出す。
ステップ#13は、ステップ#12にて読み出した4つの補正テーブルに対して、撮影時のフォーカスレンズ位置D及び絞り径Fを用いて、各ブロックのゲインごとに補間演算を行い、実際に撮影した画像データに用いる補正項Gを計算する。具体的な方法は、後述する。
図6に示すフローチャートを用いて図3のステップ#13に記載の撮影時補正項計算について詳しく説明する。
補正テーブルから実際に撮影した画像データに用いる補正項Gを得るまでの流れを説明する。
ステップ#12にて読み出した補正テーブルを用いて仮補正項GFを計算する。この仮補正項GFを用いて計算することで、実際に撮影した画像データに用いる補正項Gを求める。
仮補正項GFは、読み出した4つの補正テーブルの中から絞り径が同じ2つの補正テーブルを用いて計算する。よって、読み出した4つの補正テーブルから絞り径の異なる2つの仮補正項GFが計算されることとなる。この2つの仮補正項GFから後述する計算式を用いて実際に撮影した画像データに用いる補正項Gを計算する。
また、仮補正項GFは、フォーカスレンズ位置を考慮したものとなっている。具体的には、いずれの絞り径Fであろうとも撮影時のフォーカスレンズ位置Dは、最短撮影距離MODと無限遠INFの間のどこかである。故に、最短撮影距離MODと無限遠INFの補正項テーブルから補間計算することで、撮影時のフォーカスレンズ位置Dが反映された仮補正項GFを計算することが可能である。
今後、使用する文字列について説明する。撮影時の絞り径をF、フォーカスレンズ位置をDとする。実際に撮影した画像データに適用する補正項を補正項Gとする。補正項Gを計算する際に用いる絞り径がF2.8の時の仮補正項GFをGF2.8、絞り径がF4.0の時の仮補正項GFをGF4.0、絞り径がF8.0の時の仮補正項GFをGF8.0、とする。絞り径Fの仮補正項GFを計算する際に用いる2つの補正テーブルのうち絞り径Fの無限遠INFをINF_GF、絞り径Fの最短撮影距離MODをMOD_GFとする。
補正テーブルを用いて仮補正項GFを求める計算と仮補正項GFを用いて補正項Gを求める計算は、補正項調整計算回路108aによって行われる。
ステップ#600は、ステップ#12にて読み出した2つの補正テーブルの絞り径と撮影時の絞り径Fとフォーカスレンズ位置Dを取得する。
ステップ#601は、ステップ#600にて取得した2つの補正テーブルの絞り径について仮補正項G
Fを以下の数1を用いて計算する。計算によってG
F2.8、G
F4.0、G
F8.0のうちの補正項Gを計算するのに必要な2つの仮補正項G
Fを得ることができる。
以後のステップ#602、ステップ#604、ステップ#606では、撮影時の絞り径Fを判別している。これは、撮影時の絞り径Fによって補正項Gを計算するために用いる式が変わるためである。
具体的には、絞り径Fによって補正項Gを計算するために用いる式が変わるのは、絞り径Fによって、選択する補正テーブルが変わるためである。補正テーブル記憶装置201に記憶されている補正テーブルの中から絞り径Fに適切な補正テーブルを選択し、補正テーブルにより補間計算の式を変更することで精度よく補正項Gを求めることが可能となるからである。
ステップ#602は、ステップ#600にて取得した、撮影時の絞り径Fを判別する。絞り径Fの逆数が、1/絞り径F=1/2.8を満たす場合は、ステップ#603へ進む。満たさない場合は、ステップ#604へ進む。
ステップ#603は、撮影した画像データに適用する補正項Gは、ステップ#601にて計算したGF2.8に決定する。補正項Gの計算が終了する。撮影時補正項計算工程も終了し、次の補正の工程へ進む。仮補正項GF2.8が、補正項Gに決定する理由は、撮影時の絞り径Fが、F2.8であった場合、調整工程にて補正テーブルとして取得した際の撮影条件と等しい。故に、そのまま仮補正項GF2.8を補正項Gとすることが可能となるからである。
ステップ#604は、ステップ#600にて取得した、撮影時の絞り径Fを判別する。絞り径Fの逆数が、1/絞り径F≧1/4.0を満たす場合は、ステップ#605へ進む。満たさない場合は、ステップ#606へ進む。
ステップ#605は、以下の数2を用いて補正項Gを計算して求める。計算結果を撮影した画像データに適用する補正項Gへ決定する。補正項Gの計算が終了する。撮影時補正項計算工程も終了し、次の補正の工程へ進む。
ステップ#606は、ステップ#600にて取得した、撮影時の絞り径Fを判別する。絞り径Fの逆数が、1/絞り径F≧1/8.0を満たす場合は、ステップ#607へ進む。満たさない場合は、ステップ#608へ進む。
ステップ#607は、以下の数3を用いて補正項Gを計算して求める。計算結果を撮影した画像データに適用する補正項Gへ決定する。補正項Gの計算が終了する。撮影時補正項計算工程も終了し、次の補正の工程へ進む。
ステップ#608は、撮影した画像データに適用する補正項Gをステップ#601にて計算したGF8.0に決定する。補正項Gの計算が終了する。撮影時補正項計算工程も終了し、次の補正の工程へ進む。
補正項GにGF8.0を決定する理由としては、撮影時の絞り径Fが、F8.0であった場合、レンズのデータによっては、絞り径がF8.0からF16.0までは、光学的要因などから周辺光量の落ち量が変わらないからである。故に、絞り径がF8.0からF16.0の場合、各絞り径の補正項Gを求めるのにF8.0の補正テーブルを用いることが可能である。
但し、ステップ#608は、以下の数4を用いて補正項Gを計算して求めてもよい。なぜなら、図9に示すような周辺光量の落ち量を示す場合、絞り径がF8.0からF16.0までの周辺光量の落ち量はほぼ横ばいであるが、実際に撮影された画像への周辺光量落ちによる影響度合いによっては、以下の数4と補正テーブル記憶装置201に記憶してある補正テーブルを用いて、補正項Gを求めるので記憶量を増やすことなく求めることが可能であるからである。
上記どちらの方法で補正項を求めるかは、適宜判断すればよい。
ステップ#608で、以下の数4を用いて補正項Gを計算して求めた場合、計算結果を撮影した画像データに適用する補正項Gへ決定する。補正項Gの計算が終了する。撮影時補正項計算工程も終了し、次の補正の工程へ進む。
最後に、補正の工程について説明する。
補正の工程は、補正項Gの調整計算の工程で計算され、実際に撮影した画像データに適用する補正項Gから、各画素に最適な形に調整して撮影した画像データの各画素に与えるべきゲインを計算し、各画素の値に乗算する工程である。また、与えるべきゲインは、2パターンある。
第1のパターンと第2のパターンは、シェーディング補正する範囲が異なる。具体的には、第1のパターンは、撮像面の受光特性の非均一性に加え、レンズなどの光学系の特性による撮像面へ入射する光量の非均一性を含めたシェーディングを補正する。第2のパターンは、撮像面の受光特性の非均一性を起因としたシェーディングのみ補正する。
撮像面の受光特性の非均一性を起因とするとする周辺光量落ちを、撮像面を起因とする周辺光量落ち量とする。レンズなどの光学系の特性による撮像面へ入射する光量の非均一性を起因とした周辺光量落ち量を、光学を起因とする周辺光量落ち量とする。
第1のパターンについて具体的に説明する。
ステップ#7で補正テーブルとして補正テーブル記憶装置201に記憶させたゲインは、撮像面を起因とする周辺光量落ち量と光学を起因とする周辺光量落ち量と両方を含めたシェーディングを補正することを考慮して設定されたものである。
従って、補正項Gから求めた実際に撮影した画像に適用するゲインも撮像面を起因とする周辺光量落ち量と光学を起因とする周辺光量落ち量と両方を含めたシェーディングを補正することを考慮されたゲインとなる。
図8は、実際に撮影した画像データに適用する補正項Gから、実際に撮影した画像データの各画素に与えるゲインを計算する方法を示す概念図である。
実際に撮影した画像データの各画素に与えるべきゲインは、ゲインを計算する画素の座標を中心に置く4つのブロックに対応するゲインを、座標を重みパラメータとした補間計算をすることで得られる。例えば、図8に示すように、実際に撮影した画像の左からi番目、上からj番目のブロックの座標を(i,j)とする。このブロックの中心の座標を(X(i),Y(j))とする。次に、ブロックの中心の座標に適用するゲイン量をG(i,j)とする。この場合、ブロック(i,j)内にある画素の座標を(x,y)とすると、撮影した画像データの画素(x,y)に与えるゲインg(x,y)は以下の数5に従って補正回路108によって計算される。
以上に述べたように計算によって求めた実際に撮影した画像データの各画素に与えるべきゲインをそれぞれの画素の値に乗算する。これにより、補正の工程が終了する。
次に、第2のパターンについて具体的に説明する。
第2のパターンは、ステップ#7で補正テーブルとして補正テーブル記憶装置201に記憶させたゲインが、第1のパターンと異なる。第2のパターンのゲインは、補正テーブル記憶装置201にゲインを記憶する前に、レンズデータより撮像素子の中心からの距離と周辺光量の落ち量との関係を求めた関数を用いてゲインに乗算する。乗算したゲインを補正テーブル記憶装置201に記憶する。その後のプロセスは、第1のパターンと同様に進める。その結果、第2のパターンでは、撮像面の受光特性の非均一性のみを補正することとなる。
次に、レンズデータより撮像素子の中心からの距離と周辺光量の落ち量との関係を求めた関数について説明する。
レンズの周辺光量の落ち量は、撮像素子の中心から離れていくにつれて増えていくという特性がある。また、レンズは回転対称である。以上の2点から、例えば、撮像素子上の像高が5割の地点であれば、いずれの地点であろうとも周辺光量の落ち量は、等しい量となる。以上のことから、レンズデータより周辺光量の落ち量は、撮像素子の中心からの距離によって求めることができる。各絞り径ごとの撮像素子の中心からの距離と周辺光量の落ち量との関係を関数として求めておくことで、絞り径から適用する関数を選択し、選択した関数を用いて撮像素子の中心からの距離により周辺光量の落ち量を求めることが可能である。求めた周辺光量の落ち量は、光学を起因とする周辺光量落ち量となる。
また、以上の関数から求めた光学を起因とする周辺光量落ち量が、ゲインに占める割合を求める。なぜなら、乗算前のゲイン(=第1のパターンのゲイン)は、撮像面を起因とする周辺光量落ち量と光学を起因とする周辺光量落ち量との両方の周辺光量落ち量を補正するゲインである。求めた割合を全体から減算して、残った割合をゲイン(=第1のパターンのゲイン)に乗算することで撮像面の受光特性の非均一性のみを補正するゲイン(=第2のパターンのゲイン)となる。
ゲインへの乗算は、個体調整工程のステップ#6の全ての絞り径と全てのフォーカスレンズ位置でのゲインを取得後で、ステップ#7の補正テーブル記憶装置201に記憶する前に、パソコンなどの外部機器で行うことが望ましい。
具体的には、撮像装置をパソコンなどの外部機器に接続しておきステップ#6までに取得した全ての絞り径と全てのフォーカスレンズ位置でのゲインを一度外部機器へ送り外部機器で前述した乗算を行う。乗算を行ったゲインは、撮像装置へ戻されて補正テーブル記憶装置201に記憶される。こうすることで、撮像装置の記憶に要する容量を増やすことがなくて済む。
以上のことから、この関数を用いて補正テーブル記憶装置201に記憶する前のゲイン(=第1のパターンのゲイン)に乗算することで、ゲインは、撮像面の受光特性の非均一性を起因としたシェーディングのみ補正するゲインとなる。
そして計算された補正項Gのゲインを各画素の値に乗算し、補正の工程を終了する。かかる処理は第1のパターンと同じであるため、説明を省略する。
そして、第1のパターン、第2のパターンのいずれかにおいて補正の工程が終了すると、補正された撮影画像データは、画像処理108により、ホワイトバランス補正、ノイズ処理、ガンマ補正などを施され、表示装置109や記録装置110に出力される。
次に、第2の実施例における画像データ補正処理を行う撮像装置について説明する。
第2の実施例の画像データ補正処理を行う撮像装置の要部構造と制御系は、第1の実施例の撮像装置と同様のため、構成に関する説明は省略する。
第2の実施例における個体調整の工程について説明する。
第2の実施例においても、実際に撮影した画像データ補正は、大きく分けて個体調整の工程、補正項Gの調整計算の工程、補正の工程の3つの工程からなる。補正の工程に関しては、第1の実施例と全く同様の処理であるため、説明を省略する。
第2の実施例の説明を行うために使用する文字列は、第1の実施例と同様である。
第2の実施例の撮像装置に用いるレンズは、第1の実施例の撮像装置に用いるレンズと同様に単焦点レンズであり、かつ撮像装置にレンズが固定されているなどして使用されるレンズが特定されている。
前述したように、個体調整の工程とは、カメラの個体ごとに最適な補正項を記録させる工程である。個体調整の工程は、図2のフローチャートに従って行う。
ステップ#1は、レンズのフォーカスレンズ位置を設定する。フォーカスレンズ位置の設定順序は、最短撮影距離MOD、最短撮影距離MODと無限遠INFの間である中間撮影距離MID、無限遠INFの順である。初めてステップ#1を実行する場合、フォーカスレンズ位置は、最短撮影距離MODへ設定する。ステップ#6から戻ってきてステップ#1を実行する場合、戻ってきた際のフォーカスレンズ位置が、最短撮影距離MODであれば、中間撮影距離MIDへ設定を変更する。同じくフォーカスレンズ位置が、中間撮影距離MIDであれば、無限遠INFへ設定を変更する。
ステップ#2は、レンズの絞り径を設定する。レンズの絞り径の設定順序は、F8.0、F4.0、F2.8の順である。ステップ#1にて、フォーカスレンズ位置を設定した後、ステップ#2を実行する場合、レンズの絞り径はF8.0へ設定する。ステップ#5から戻ってきてステップ#2を実行する場合、戻ってきた際のレンズの絞り径がF8.0であれば、F4.0へ設定を変更する。同様にレンズの絞り径が、F4.0であれば、F2.8へ設定を変更する。
ステップ#3は、ステップ#1とステップ#2にて設定したレンズの条件で、一定光源を撮影して画像データを取得する。
ステップ#4は、ステップ#3にて取得した画像データから補正テーブル計算回路301が、各ブロックのゲインを計算する。補正テーブル記憶装置201は、計算したゲインを記憶する。ゲインの計算方法は、第一の実施例と同様であるので省略する。
ステップ#5は、補正テーブル計算回路301が、指定した全ての絞り径でゲインを取得したか否かを判断する。第2の実施例における全ての絞り径は、F8.0、F4.0、F2.8の3種類を想定している。
例えば、ステップ#5の補正テーブル計算回路301は、絞り径がF8.0であると、絞り径の設定順から絞り径がF4.0とF2.8でのゲインを取得していないと判断する。つまり、指定した全ての絞り径でのゲインを取得していないと判断する。全ての絞り径でのゲインを取得していないと判断した場合は、ステップ#2へ戻り、絞り径をF4.0に設定し、以降のステップを進める。
補正テーブル計算回路301の判断時の絞り径が、F4.0の場合も同様である。但し、この場合、設定する絞り径は、F2.8となる。
第2の実施例は、ゲインを得る絞り径がF8.0、F4.0、F2.8の順のため、絞り径がF2.8の時のゲインを取得した場合は、3種類の全ての絞り径でのパターンでゲインを取得していると判断し、ステップ#6へ進む。
ステップ#6は、補正テーブル計算回路301が全てのフォーカスレンズ位置にてゲインを取得したか否かを判断する。第2の実施例における全てのフォーカスレンズ位置とは、最短撮影距離MODと中間撮影距離MIDと無限遠INFの3種類を想定している。ステップ#1のフォーカスレンズ位置の設定順序は、最短撮影距離MOD、中間撮影距離MID、無限遠INFの順となる。
例えば、ステップ#1でフォーカスレンズ位置を最短撮影距離MODに設定して、各ステップを進み、ステップ#6へ進む。補正テーブル計算回路301は、フォーカスレンズ位置を確認する。確認したフォーカスレンズ位置が、最短撮影距離MODであった場合、中間撮影距離MIDと無限遠INFでのゲインを取得していないと判断する。確認したフォーカスレンズ位置が、中間撮影位置MIDであった場合、無限遠INFでのゲインを取得していないと判断する。つまり、これらの場合には、全てのフォーカスレンズ位置でのゲインを取得していないと判断する。
ステップ#6で補正テーブル計算回路301が、全てのフォーカスレンズ位置でのゲインを取得していないと判断した場合は、ステップ#1に戻り、フォーカスレンズの位置を最短撮影距離MODであった場合には、中間撮影距離MIDへ、中間撮影距離MIDであった場合には、無限遠INFに設定を変更する。そして、ステップ#2、ステップ#3、ステップ#4、ステップ#5とステップを進める。
ステップ#6で補正テーブル計算回路301が、無限遠INFでのゲインを取得していると確認した場合、補正テーブル計算回路301は、全てのフォーカスレンズ位置での補正テーブルを取得したと判断する。ステップ#7へ進む。
ステップ#7は、これまでステップ#1からステップ#4までの間に取得した全てのフォーカスレンズ位置と全ての絞り径においての9パターンのゲインをそれぞれフォーカスレンズ位置と絞り径とを関連付けて補正テーブル記憶装置201に記憶し、補正テーブルを作成する。全てのフォーカスレンズ位置と全ての絞り径において補正テーブルの作成が完了すると、個体調整の工程は、終了する。補正項調整計算の工程へ進む。
次に、補正項調整計算の工程について説明する。
補正項調整計算の工程は、補正テーブルを実際に撮影した画像データに用いるのに最適な補正項Gに調整する工程である。図3は補正項調整工程のフローチャートである。
個体調整の工程終了後、補正を施される画像データを撮影する。すると、ステップ#11は、フォーカス制御部112、絞り制御部113が、それぞれ撮影時のフォーカスレンズ位置D、絞り径Fを読み出す。
ステップ#12は、ステップ#11にて読み出した撮影時のフォーカスレンズ位置D及び絞り径Fの逆数を用いて補正項Gの計算に必要な補正テーブルを補正テーブル記憶装置201から読み出す。
図4bは、実際に撮影した画像データに用いる補正項Gを計算する際に読み出す4つの補正テーブルの選出方法を示す概念図である。
撮影時の絞り径の逆数を縦軸に、同じく撮影時のフォーカスレンズ位置を横軸に取る図4bのような二次元平面を考える。この二次元平面上に補正テーブル記憶装置201に記憶されている複数の補正テーブルに対応する撮影時のフォーカスレンズ位置D及び撮影時の絞り径Fをプロットし、隣り合う点を破線で結び、破線のようなブロックを考える。ステップ#12は、この二次元平面上に撮影時のフォーカスレンズ位置D及び撮影時の絞り径Fの逆数をプロットし、補正テーブル記憶装置201に記憶されている補正テーブルの中からその点を含むようなブロックを構成する4つの点に対応する補正テーブルを読み出す。
ステップ#13は、ステップ#12にて読み出した4つの補正テーブルに対して、撮影時のフォーカスレンズ位置D及び絞り径Fの逆数を用いて、各ブロックのゲインごとに補間演算を行い、実際に撮影した画像データに用いる補正項Gを計算する。具体的な方法は、後述する。
図7に示すフローチャートを用いて図3のステップ#13に記載の撮影時補正項計算について詳しく説明する。
補正テーブルから実際に撮影した画像データに用いる補正項Gを求めるまでの流れを説明する。
ステップ#12にて読み出した補正テーブルを用いて仮補正項GFを計算する。この仮補正項GFを用いて計算することで、実際に撮影した画像データに用いる補正項Gを求める。
仮補正項GFは、読み出した4つの補正テーブルの中から絞り径が同じ2つの補正テーブルを用いて計算する。よって、読み出した4つの補正テーブルから絞り径の異なる2つの仮補正項GFが計算されることとなる。この2つの仮補正項GFから後述する計算式を用いて実際に撮影した画像データに用いる補正項Gを計算する。
今後、説明を行う際の文字列について説明する。撮影時の絞り径をF、フォーカスレンズ位置をDとする。実際に撮影した画像データに適用する補正項を補正項Gとする。補正項Gを計算する際に用いる絞り径がF2.8の時の仮補正項GFをGF2.8、絞り径がF4.0の時の仮補正項GFをGF4.0、絞り径がF8.0の時の仮補正項GFをGF8.0、とする。絞り径Fの仮補正項GFを計算する際に用いる2つの補正テーブルのうち絞り径Fの無限遠INFをINF_GF、絞り径Fの中間撮影距離MIDをMID_GF、絞り径Fの最短撮影距離MODをMOD_GFとする。
ステップ#700は、ステップ#12にて読み出した2つの補正テーブルの絞り径と撮影時の絞り径Fとフォーカスレンズ位置Dを取得する。
ステップ#701は、取得したフォーカスレンズ位置Dが最短撮影距離MODと中間撮影距離MIDの間であるか否かを判別する。この判別により、補正項GFを計算するために用いる補正テーブルが変わる。故に、仮補正項GFを計算するのに用いる式も変わる。そこで、取得したフォーカスレンズ位置Dが、最短撮影距離MODと中間撮影距離MIDの間であれば、ステップ#702へ進む。中間撮影距離MIDと無限遠INFの間であれば、ステップ#703へ進む。
また、仮補正項GFは、フォーカスレンズ位置を考慮したものとなっている。具体的には、いずれの絞り径Fであろうとも撮影時のフォーカスレンズ位置Dは、最短撮影距離MODと中間撮影距離MIDの間、又は中間撮影距離MIDと無限遠INFの間のどちらかに位置する。故に、フォーカスレンズ位置Dが、どの位置であるかを判別することで、補正項Gを補間計算に用いる補正テーブルを補正テーブル記憶装置201から選択し、撮影時のフォーカスレンズ位置が反映された補正項Gを補正テーブルから補間計算することが可能となり、補正項の精度向上につながる。
ステップ#702は、ステップ#700にて取得した2つの異なる補正テーブルの絞り径について仮補正項G
Fを以下の数6を用いて計算する。計算によってG
F2.8、G
F4.0、G
F8.0のうち補正項Gを計算するのに必要な2つの仮補正項G
Fを求めることができる。ステップ#704へ進む。
ステップ#703は、ステップ#700にて取得した2つの異なる補正テーブルの絞り径について仮補正項G
Fを以下の数7を用いて計算する。計算によってG
F2.8、G
F4.0、G
F8.0のうち補正項Gを計算するのに必要な2つの仮補正項G
Fを求めることができる。ステップ#704へ進む。
以後のステップ#704、ステップ#706、ステップ#708では、撮影時の絞り径Fを判別している。これは、撮影時の絞り径Fによって補正項Gを計算するために用いる式が変わるためである。補正項Gを計算するための式が変わるのは、第1の実施例と同様である。
ステップ#704は、ステップ#700にて取得した、撮影時の絞り径Fを判別する。絞り径Fの逆数が、1/絞り径F=1/2.8を満たす場合は、ステップ#705へ進む。満たさない場合は、ステップ#706へ進む。
ステップ#705は、撮影した画像データに適用する補正項Gをステップ#700にて計算したGF2.8に決定する。これにより、補正項Gの計算が終了する。また、撮影時補正項計算工程も終了し、次の補正の工程へ進む。撮影時の絞り径Fが、F2.8であった場合、調整工程にて補正テーブルとして取得した際の撮影条件と等しい。故に、そのまま仮補正項GFを補正項Gとすることが可能となる。
ステップ#706は、ステップ#700にて取得した、撮影時の絞り径Fを判別する。絞り径Fの逆数が、1/絞り径F≧1/4.0を満たす場合は、ステップ#707へ進む。満たさない場合は、ステップ#708へ進む。
ステップ#707は、以下の数2を用いて補正項Gを計算して求める。計算結果を撮影した画像データに適用する補正項Gへ決定する。これにより、補正項Gの計算が終了する。また、撮影時補正項計算工程も終了し、次の補正の工程へ進む。
ステップ#708は、ステップ#700にて取得した、撮影時の絞り径Fを判別する。絞り径Fの逆数が、1/絞り径F≧1/8.0を満たす場合は、ステップ#709へ進む。満たさない場合は、ステップ#710へ進む。
ステップ#709は、以下の数3を用いて補正項Gを計算して求める。計算結果を撮影した画像データに適用する補正項Gへ決定する。これにより、補正項Gの計算が終了する。また、撮影時補正項計算工程も終了し、次の補正の工程へ進む。
ステップ#710は、撮影した画像データに適用する補正項Gをステップ#702又はステップ#703にて計算したGF8.0に決定する。補正項Gの計算が終了する。撮影時補正項計算工程も終了し、次の補正の工程へ進む。
GF8.0に決定する理由としては、第1の実施例と同じであるので省略する。
但し、ステップ#710は、第1の実施例と同じ理由から以下の数4を用いて補正項Gを計算して求めてもよい。計算結果を撮影した画像データに適用する補正項Gへ決定する。これにより、補正項Gの計算が終了する。また、撮影時補正項計算工程も終了し、次の補正の工程へ進む。
第2の実施例における補正の工程は、第1実施例の補正の工程と全く同じ処理であるため、説明は省略する。
本発明の第1の実施例と第2の実施例では、仮補正項GFを求めるに際して、ステップ#601の数1、ステップ#702の数6、ステップ#703の数7などの式中のフォーカスレンズ位置D、最短撮影距離MOD、中間撮影距離MID、無限遠INFなどには、距離情報の値を入れる。具体的には、パルス数などである。
次に、本発明で補正テーブルのパラメータとして、絞り径とフォーカスレンズ位置とを選択した理由について述べる。
絞り径とフォーカスレンズ位置をパラメータとすることで、従来の発明に比べて、補正項を求めるまでの計算を減らすことが可能となるからである。
次に、計算を減らすことが可能である理由を述べる。
パラメータに光線角を選択した場合、撮影時の設定条件や使用したレンズの光学的特性など複数の条件から計算により光線角を求める必要がある。一方、パラメータにフォーカスレンズ位置を選択した場合、フォーカスレンズ位置を読み出せばよいので、こうした計算が必要ない。これにより、撮影者が画像処理の為に処理時間を要することでストレスを感じることなく撮影された画像の確認までを行うことが可能となる。
次に、本発明の第1の実施例と第2の実施例では、補正項Gを得る補正テーブルの絞り径にF2.8、F4.0、F8.0の3点を選択した。しかしながら、絞り径の選択は、この値に限定されるものでないことは言うまでもない。絞り径の選択には、レンズの周辺光量や光線角などの光学的特性が変わる絞り径を選択することが望ましい。
本発明の第1の実施例と第2の実施例にて想定するレンズは、選択可能な絞り径の範囲が、F2.8からF16.0を選択できるものとしている。つまり、最大絞り径はF2.8、最小絞り径はF16.0となる。ある特定の周辺画素における各絞り径の周辺光量の落ち量をレンズのデータから計算すると図9に示すようになる。図9を見て分かるように、周辺光量の落ち量の変化する絞り径を、変化絞り径とする。絞り径F4.0を変化絞り径1、絞り径F5.6を変化絞り径2、絞り径F8.0を変化絞り径3とする。
F2.8からF16.0まで全ての絞り径の周辺光量の落ち量が線形的に変化するのであれば、補正テーブルに記憶する絞り径をF2.8とF16.0とすることで、F2.8とF16.0の補正項は言うに及ばず、他の絞り径の時の補正項はF2.8とF16.0の内分点として、補間計算から求めることが可能である。しかし、図9に示すようになると、補間計算から求めた補正項では、精度がよくない。そこで、補正テーブルに記憶する絞り径をF2.8とF16.0から変更する必要がある。
図9を見ると分かるように、変化絞り径3であるF8.0からF16.0までの周辺光量の落ち量は、ほぼ横ばいである。よって、F8.0からF16.0までの補正項には、変化絞り径3F8.0の補正項を用いることが可能であるので、記憶する絞り径に変化絞り径3であるF8.0を選択した。F8.0を選択したもう一つの理由は、後述する。
次に、絞り径がF2.8から変化絞り径3のF8.0までの間について考える。F2.8からF8.0の周辺光量の落ち量は、変化絞り径1のF4.0と変化絞り径2のF5.6の2か所を境に変化しているのが分かる。故に、F2.8からF8.0の間の絞り径について補間計算をして求めた補正項では、精度がよくない。
そこで、データベースに記憶する絞り径の候補として変化絞り径1のF4.0と変化絞り径2のF5.6が挙げられる。変化絞り径2のF5.6を選択した場合、絞り径F5.6から変化絞り径F8.0までは、周辺光量の落ち量が線形的に落ちているので、精度を維持することが可能である。しかし、絞り径F2.8と変化絞り径3のF5.6までを補間計算した場合は、F4.0周辺で周辺光量の落ち量が変化するので、補間計算の結果と実際の落ち量に差が生じるため、補正項の精度が維持できない。
次に、変化絞り径1のF4.0を選択した場合、絞り径がF2.8とF4.0の間の絞り径に適用する補正項を計算する際には、F2.8とF4.0のデータベースを用いて補間計算しても精度を維持することが可能である。また、F4.0からF8.0についても同様である。この時に、F8.0でなくF16.0を記憶していると、F4.0からF8.0の補正項を補間計算することで求めた補正項の精度がよくない。故に、F8.0を選択した。
ここで、変化絞り径1のF4.0と変化絞り径2のF5.6の両方を記憶した場合、個体調整の工程での作業量の増加、補正テーブルの記憶に使用する記憶容量の増加などが生じる。よって、本発明の第1の実施例と第2の実施例では、変化絞り径の中からF4.0とF8.0を選択した。
以上のことから、本発明の第1の実施例と第2の実施例の補正テーブルに記憶する絞り径は、F2.8とF4.0とF8.0とした。
今回は、F8.0からF16.0まで周辺光量の落ち量が横ばいであることから、F8.0の補正テーブルを用いて各絞り径の補正項を計算していたが、周辺光量の落ち量や撮影した画像によっては、F4.0とF8.0の補正テーブルを用いてF8.0からF16.0まで各絞り径の補正項を外分点として計算することで求めることも可能である。
記憶した補正テーブルの絞り径(本発明の実施例では、F2.8からF8.0まで)の範囲外の絞り径(本発明の実施例では、F8.0からF16.0まで)の補正項を求める方法として、求める絞り径の補正項を外分点とすることで、補正テーブルの絞り径から計算にて求めることが可能である。
補正テーブルの絞り径の範囲外の絞り径の補正項を求めるのに、補正テーブルの絞り径の補正項を用いるのか、外分点として計算から求めるのか、どちらを選択するかは、適宜設計者が判断することが可能である。
本発明の実施例では、データベースに記憶した絞り径の関係から外分点として絞り側を求める例示をしたが、データベースに記憶する絞り径によっては、開放側も同様に外分点として求めることが可能であることは言うまでもない。
以上に述べたように、周辺光量の低下を考慮して絞り径を選択することで、光学特性に合わせた過不足のないゲインを得ることが可能となる。よって、周辺光量落ち以上のゲインを加えたり、ゲインの不足などによる画質劣化を招くことがなくなり、精度の良いシェーディング補正をおこなうことが可能となる。
また、絞り径は、選択する絞り径の数が少ない方が、個体調整の工程での作業量や実際の画像に適用する補正項を計算する際の計算量などが少なくて済む。
以上のことから、絞り径の選択や選択する絞り径の数は、撮像装置に用いる光学系などによって適宜変更することは言うまでもない。
次に、撮影時のフォーカスレンズ位置Dは、最短撮影距離MODと無限遠INFの間であるので、最短撮影距離MODと無限遠INFの内分点となる。よって、本発明の第1の実施例と第2の実施例は、ともに補正項Gを求める補正テーブルのフォーカスレンズ位置に最短撮影距離MODと無限遠INFとを含めて記憶している。これは、補正項Gを計算するための仮補正項GFを求める数1からもわかるように、仮補正項GFは、同じ絞り径の最短撮影距離MODと無限遠INFから内分することで計算される。
本発明の第1の実施例と第2の実施例では、絞り径の設定順序は、F8.0、F4.0、F2.8の順で各ステップを進めた。しかし、本発明はこの順序に限定されないことは言うまでもない。
同様に、フォーカスレンズ位置についても最短撮影距離MOD、無限遠INFの順で各ステップを進めた。しかし、本発明はこの順序に限定されないことは言うまでもない。