(58)【調査した分野】(Int.Cl.,DB名)
前記補正手段は、前記複数の第2の領域のそれぞれの前記第1の領域に対する相関量のうち、相関が高いことを表す相関量に基づいて定まる画素の値を用いて得られる補正値ほど割合が大きくなるように合成することを特徴とする請求項8記載の画像処理装置。
前記補正手段は、前記複数の第2の領域のそれぞれの前記第1の領域に対する相関量のうち、前記第1の領域と画素値の変化傾向との差が小さい第2の領域についての相関量に基づいて定まる画素の値を用いて得られる補正値ほど割合が大きくなるように合成することを特徴とする請求項8記載の画像処理装置。
【発明を実施するための形態】
【0011】
以下、本発明の例示的な実施形態を、添付の図面に基づいて詳細に説明する。なお、以下の実施形態では本発明を撮像装置に適用した例について説明するが、本発明に係る画像処理装置には撮影ならびに撮影画像の記録に関する機能など、撮像装置に特有の構成は必須ではない。本発明は撮影によって得られた画像データと、その撮影に用いられた撮像素子の欠陥画素に関する情報が取得可能な任意の電子機器において実施可能である。また、撮像装置とは、デジタルカメラのような撮影を主な機能とする装置に限らず、撮像機能を有する任意の電子機器を意味する。
【0012】
●(第1の実施形態)
図1(a)は、本発明の実施形態に係る画像処理装置の一例である撮像装置100の機能構成例を示すブロック図である。
撮像装置100はデジタルカメラ、デジタルビデオカメラなど、被写体を撮影し、被写体の画像を表すデータ(画像データ)を取得する装置である。光学系101は、レンズ、シャッター、絞りを有し、CPU103の制御によって被写体光学像を撮像素子102に結像させる。CCDもしくはCMOSイメージセンサなどの撮像素子102は、結像された被写体光学像を各画素で光電変換し、アナログ画像信号に変換する。CPU103は、アナログ画像信号をデジタル画像信号(画像データ)に変換し、ホワイトバランス調整や色補間処理などのいわゆる現像処理や、符号化処理などを適用する。CPU103はプログラムを実行して各機能ブロックを制御することにより、撮像装置100の様々な機能を実現する。
【0013】
一次記憶装置104は例えばRAMのような揮発性記憶装置であり、CPU103のワークエリアなど、一時的なデータ記憶領域として用いられる。二次記憶装置105は例えばEEPROMのような不揮発性記憶装置であり、撮像装置100を制御するためのプログラム(ファームウェア)、CPU103が実行するプログラム、各種の設定情報などを記憶する。
【0014】
例えば半導体メモリカードである記憶媒体106は、撮影によって得られた画像データを予め定められた形式のデータファイルとして記憶する。記憶媒体106は撮像装置100から取り外し可能であり、記憶媒体106のアクセス機能を有する他の装置、例えばパーソナルコンピュータなどによっても利用可能である。つまり、撮像装置100は記憶媒体106へのアクセス機能を有し、記憶媒体106に対するデータの読み書きが行えればよい。
【0015】
表示部107は、撮影時のビューファインダー画像の表示、撮影した/記憶媒体106から読み出した画像の表示、対話的な操作のためのユーザインタフェースの表示などに用いられる。操作部108は、例えばボタン、スイッチ、レバー、タッチパネルなどの入力デバイスを有し、撮像装置100に対して使用者が各種の指示や設定を行うことを可能にする。なお、音声入力や視線入力のような、物理的な操作を必要としない入力方法を実現する構成も操作部108に含まれる。
【0016】
通信装置109は、撮像装置100が外部装置と制御コマンドやデータの送受信を行うことを可能にする。外部機器との通信に用いるプロトコルに特に制限は無いが、例えばPTP(Picture Transfer Protocol)であってよい。なお、通信装置109は、例えばUSB(Universal Serial Bus)ケーブルなどの有線接続により外部機器と通信を行ってもよし、無線LANなどの無線接続により外部機器と通信を行ってもよい。また、外部装置とは直接接続されてもよいし、サーバを経由したりインターネットなどのネットワークを介して接続されてもよい。
【0017】
図2(a)は本実施形態における撮像素子102の画素配置例を示している。撮像素子102は原色ベイヤー配列のカラーフィルターを有している。具体的には、水平2画素×垂直2画素の4画素を繰り返し単位として、左上の画素が赤(R)画素、右上と左下の画素が緑(G)画素、右下の画素が青(B)画素という配列を有する。
図2(a)では、欠陥画素を中心としたごく一部の画素について示しているが、他の部分についても同様の配列を有している。なお、「欠陥画素」は撮像素子が有するものであるが、撮像素子の画素と撮影で得られる画像の画素とは対応関係にあるため、以下の説明においては、欠陥画素に対応する画像中の画素のことも欠陥画素と呼ぶ。
【0018】
次に、本実施形態における欠陥画素の補正動作の概要について説明する。ここでは
図2(a)のように、R画素が欠陥画素となっているものとする。まず、
図2(a)のような画像が得られた際に、補正対象となる欠陥画素を通るライン(着目ライン)から、欠陥画素を含む、そのラインの特徴を表す複数の画素を抽出し、抽出した画素から構成される特徴画素列を生成する(
図2(b))。ここでは例として、着目ラインが水平ラインであり、欠陥画素と同じ水平座標上にある、欠陥画素と同色の画素の画素を抽出して特徴画素列を生成する例を示している。なお、ここでは着目ライン上の欠陥画素と欠陥画素の前後2つの同色画素を特徴画素として抽出した例を示したが、特徴画素の抽出方法はこれに限定されない。
【0019】
次に、着目ラインと平行な別のライン(参照ライン)上に存在する画素から、そのラインの特徴を表す複数の画素を抽出し、抽出した画素から構成される特徴画素列を生成する(
図2(c))。ここでは例として、着目ラインから2画素分上方に参照ラインを設定し、参照ライン上の画素のうち、欠陥画素と同色の画素を抽出して特徴画素列を生成する例を示している。後述する相関量の算出を行うため、参照ラインから抽出する特徴画素の数は、着目ラインから抽出する特徴画素の数より多い。
【0020】
なお、本実施形態において、参照ラインは欠陥画素と同色の画素がライン上に存在するように設定する。従って、ベイヤー配列のR画素、B画素のように、繰り返し単位が2画素である場合、着目ラインとの距離が繰り返し単位の倍数(2n[画素]。nは1以上の整数)となるように参照ラインを設定する。
【0021】
着目ラインおよび参照ラインから生成した特徴画素列の各画素値と、特徴画素列の画素値から生成した波形の例を
図2(d)に示す。このようにして着目ラインと参照ラインについて特徴画素列から2つの波形を生成した後、複数の相対的な位置(シフト量)について相関量を求めることで、2つの波形の相関が最も高くなるシフト量および方向を求める。
【0022】
例えば
図2(e)に示したように、着目ラインの特徴画素列の波形を+2(右方向に2画素分)シフトすることによって参照ラインの特徴画素列の波形との相関が最も強くなるとする。特徴画素列はベイヤー配列における同色画素から構成しているため、シフト量(+2)×2が元の画素配列における画素座標の差に相当する。従って、参照ラインにおいて欠陥画素と最も相関の高い画素は、
図2(f)に示すように、欠陥画素の水平座標+4(右方向に4画素)に位置することが分かる。
【0023】
このため、例えば最も簡単な方法としては、欠陥画素と最も相関の高い画素の値を欠陥画素の値として用いることにより、欠陥画素の補正を行うことができる。
【0024】
次に、
図3に示すフローチャートを用いて、上述した本実施形態の欠陥画素補正を
図1(a)に示した撮像装置100でどのように実現するかについて説明する。
まず、S301においてCPU103は、処理対象の画像データを取得する。ここで、画像データは、撮影によって取得してもよいし、記憶媒体106に記録されている画像データを読み出すことによって取得してもよい。あるいは通信装置109を通じて外部装置から取得してもよい。なお、ここで取得する画像データは欠陥画素の補正がなされていない状態であり、例えばRAW画像データである。
【0025】
CPU103は取得した画像データを例えば一次記憶装置104に読み込む。そして、CPU103は、画像データの各画素を走査しながら、S302で欠陥画素と判定された着目画素についてS302からS307までの処理を適用する。なお、
図3の例では、画像データの各着目画素について欠陥画素かどうかS302で判別しているが、欠陥画素の位置情報を用いて、欠陥画素について順次S303〜S307について処理を行ってもよい。
【0026】
欠陥画素の情報は、例えば撮像装置100の製造時に二次記憶装置105に記憶されている欠陥画素情報であってよい。また、例えば撮像装置100の起動時などに特定の条件で撮影した画像から撮像素子102の欠陥画素を検出し、その位置情報を二次記憶装置105に記憶しておくようにしてもよい。この際、製造時に記憶されている情報を、その後の検出処理で得られた欠陥画素情報で更新してもよい。また、欠陥画素情報は付加情報として画像データに記録されていてもよい。
【0027】
以下、欠陥画素と判定された画素について行うS303以降の処理について説明する。第1の生成手段としてのCPU103はS303において、着目ラインの特徴画素列(第1の画素列)を生成する。例えば
図2(b)を用いて説明したような、欠陥画素と同じ水平座標上にある、欠陥画素と同色の画素を抽出して特徴画素列を生成する処理であってよい。なお、他の実施形態で説明するように、特徴画素の抽出は他の方法で行ってもよい。
【0028】
次に、第2の生成手段としてのCPU103はS304において参照ラインの特徴画素列(第2の画素列)を生成する。ここでも、例えば
図2(c)を用いて説明したような、着目ラインの2画素上方に設定した参照ライン上に位置する、欠陥画素と同色の画素を抽出して特徴画素列を生成する処理であってよい。
【0029】
S305で相関算出手段としてのCPU103は、欠陥画素の補正にどの画素の値を参照するのが適しているかを判定するため、着目ラインと参照ラインから生成した特徴画素列の相対的な位置を変えながら、相関が最大になるシフト量を検出する。
【0030】
図4を用いてS305における相関量算出処理の具体例について説明する。
図4は着目ラインの特徴画素列に対して参照ラインの特徴画素列をX画素(Xは整数であり、正は右方向、負は左方向を表す)シフトさせた時の相関量の算出例を模式的に示している。CPU103は、各シフト量(相対的な位置)において矢印でつないだ画素値同士の差異を合計する。例えば、相関を算出する画素数を2W+1(Wは正の整数)、着目ラインの特徴画素列のインデックスi(
図4参照)における画素値をTi、参照ラインの特徴画素列のインデックスiにおける画素値をRiとする。この時、シフト量Xの時の相関量Sxは以下の式により算出される。
【数1】
【0031】
つまり、相関量Sxが小さいほど高い相関を表す。なお、これまで説明した方法では、着目ラインから欠陥画素を含む特徴画素を抽出して特徴画素列を生成していた。そのため、相関値の算出において欠陥画素(T0)の値は利用できない。従って、例えばi=0の時のみ式(1)で加算する相関量を0として相関量Sxを求める。
【0032】
所定範囲内の複数のシフト量について算出した相関
量Sxのうち、最小の相関
量Sxが得られたシフト量Xから、欠陥画素を補正するための参照画素の位置を判定することが可能となる。例えば、シフト量X=+2における相関量Sxが最小値となった場合、同色画素で2画素右(参照ライン上で、欠陥画素よりも4画素右)にある画素を参照画素と判定する。
【0033】
図5(a)は、S305における相関量算出処理の具体例を示すフローチャートである。まず、CPU103はS1701において、開始インデックスとなる−WをXに代入した後、S1702において、最小相関量Smin、及び最小相関量となる時のシフト量Xminの初期化を行う。その後、CPU103はS1703からS1706までの処理を、S1705でXをインクリメントしながら実行していく。
【0034】
S1703でCPU103は、算出した相関量Sxが、その時点における最小相関量Sminより小さいかどうか判定し、Sx<Sminであれば処理をS1704に進め、Sx≧Sminであれば処理をS1705に進める。なお、最初に相関量Sxを算出した場合(ここでは、X=−Wの場合)、CPU103はS1704に処理を進める。
【0035】
S1704でCPU103は、最小相関量Sminを現在の相関量Sxで更新する。また、最小相関量Sminに対応するシフト量Wminを現在のXの値で更新する。そしてS1705でCPU103はXをインクリメントし、S1706でシフト範囲全体について処理を行ったか判定する。CPU103は、シフト範囲全体で処理を行っていれば処理を終了し、まだ処理していないデータが存在すれば処理をS1703に戻す。以上の処理により、シフト範囲内における最小相関量Sminと、最小相関量が得られるシフト量Wminを得ることができる。
【0036】
なお、
図5(a)に示した相関値算出処理の方法は単なる一例であり、同様の結果が得られる他の任意の方法を用いることができる。例えば、シフト量Xは必ずしも最小値からインクリメントする必要はなく、各シフト量に対する相関値が算出できれば任意の順序で値を変更することができる。また、シフト量ごとの相関値を全て記憶しておき、最後に最小相関値に対応するシフト量を選択してもよい。
【0037】
このように、特徴画素列の相関量から参照画素の位置を判定したら、補正値算出手段としてのCPU103はS306において補正値を算出する。最も単純な場合、補正値は参照画素の値であってよいが、他の方法で補正値を算出してもよい。例えば、参照画素の値と、参照画素の周辺画素の値から算出した色差等の特徴量を用いて欠陥画素を補正してもよい。
【0038】
S306において補正値を算出すると、補正手段としてのCPU103はS307において、補正値を用いて欠陥画素を補正する。その後、CPU103は画素走査が完了したかどうかの判定を行い、走査が完了するまでS302からS307までを繰り返し実行する。
【0039】
なお、本実施形態においては、水平方向に着目ラインおよび参照ラインを設定した例を説明したが、着目ラインおよび参照ラインを設定する角度に制限はなく、垂直方向や斜め方向など、任意の方向に設定することができる。
【0040】
また、本実施形態においては、欠陥画素を通る着目ラインの2画素分上方に参照ラインを設定したが、他の距離や方向に参照ラインを設定してもよい。例えば着目ラインの2画素下方に参照ラインを設定してもよいし、参照ラインを着目ラインの2画素上方と2画素下方の両方に設定し、各参照ライン上で判定した参照画素から算出した補正値を平均化して用いることもできる。このように、着目ラインに直交する方向(垂直方向)に複数の参照ラインを設定し、各参照ライン上で算出した補正値を用いることで、垂直方向の信号レベルの変化も反映させた精度の高い補間を行うことができる。また、着目ラインに対して同一方向に複数の参照ラインを設定する場合よりも、着目ラインを挟んだ両側に参照ラインを設定したほうが、着目ラインの近くに多くの参照ラインを設定でき、精度の高い補間を行うことができる。
【0041】
さらに、本実施形態においてはベイヤー配列のR画素が欠陥画素であった場合の例を示しているが、欠陥画素がB画素やG画素であっても同様に適用することができる。
【0042】
以上説明したように本実施形態によれば、欠陥画素を含む着目ラインと参照ラインの相関量に基づいて参照画素を決定する。そのため、被写体の形状によらず、欠陥画素の補正に適した参照画素を判定することができる。また、参照範囲を広げながらも、誤補正の弊害を軽減することが可能となる。
【0043】
●(第2の実施形態)
第1の実施形態においては、ベイヤー配列におけるR画素やB画素のように、カラーフィルターの繰り返し単位の中に1画素だけ含まれる画素が欠陥画素である場合の補正方法を説明した。本実施形態では、ベイヤー配列におけるG画素のように、各画素ラインに含まれる画素が欠陥画素である場合の補正方法に関する。
【0044】
ベイヤー配列のR画素やB画素が欠陥画素の場合、繰り返し単位が2画素であるため、欠陥画素と同色の画素が隣接する画素ラインには存在せず、最低でも2画素離れた位置に存在するため、着目ラインから2画素離れた画素ラインに参照ラインを設定した。しかし、例えば
図6(a)のように、G画素が欠陥画素となっている場合は、隣接する画素ラインに同色画素が存在する。そのため、
図6(c)に示すように、参照ラインを着目ラインに平行で1画素離れた画素ラインに設定することができる。
【0045】
このように、隣接画素ラインに参照ラインを設定可能な場合は、着目ラインと参照ラインの距離が近いため、2画素離れた画素ラインに参照ラインを設定する場合よりも高精度の相関量が算出可能となる。ただし、ベイヤー配列ではG画素の座標が隣接画素ラインでは1画素ずれているため、特徴画素列間の相関が最も高くなる(相関
量Sxが最小となる)シフト量Xから参照画素位置を求める場合にこのずれを考慮する必要がある。
【0046】
例えば特徴画素列が
図6(b)および(c)に示すように生成された場合、シフト量0において欠陥画素に対応する画素は参照ラインにおいて欠陥画素より1画素水平座標が小さい(左方向)の画素となる。従って、シフト量Xが得られた場合、参照ライン上の水平座標が(X×2−1)だけ欠陥画素からずれた画素を参照画素と判定する。例えばシフト量X=2の場合に相関が最高となった場合、
図6(d)に示すように、参照ライン上で欠陥画素の水平座標から(2×2−1)=+3画素、すなわち右方向に3画素離れた画素を参照画素と判定する。
【0047】
本実施形態によれば、欠陥画素と同色の画素が隣接画素ラインに存在する場合に、より精度良く欠陥画素を補正することが可能になる。なお、欠陥画素が何色の画素であるのかについては、欠陥画素の位置情報と対応付けて記憶されていてもよいし、位置情報とは別に記憶されている情報を用いて割り出してもよい。なお、撮影に用いられた撮像素子が備えるカラーフィルターの配色パターンの情報は、例えば二次記憶装置105に記憶しておいてもよいし、画像データの付加情報から取得してもよい。従って、カラーフィルターの配色パターンと欠陥画素が何色の画素かとに応じて、第1の実施形態と本実施形態を選択的に実行するように構成することも可能である。
【0048】
●(第3の実施形態)
第1および第2の実施形態においては欠陥画素が孤立している場合の補正方法を説明した。本実施形態では、同色の欠陥画素が連続して存在する場合の補正方法を説明する。このような欠陥画素が生じるのは、製造誤差や経年変化だけでなく、
図7(a)に示すように、撮像素子に焦点検出用の画素を配置した場合がある。焦点検出用画素は、位相差検出方式の焦点検出を行うための信号を生成するため、受光範囲が通常の画素より狭く形成されたり、カラーフィルターが設けられないなど、得られる画素値が通常の画素とは異なる。従って、このような焦点検出用画素も、
図7(b)に示すように同色画素が連続して欠陥画素であるものと見なして補正する必要がある。
【0049】
上述の実施形態と同様に着目ラインが水平方向であるとすると、第1の実施形態で説明したような、着目ライン上に存在する欠陥画素および欠陥画素と同色画素から特徴画素列を生成する方法は使用できない。
【0050】
そこで本実施形態では、上述の実施形態と異なる方法で、着目ラインおよび参照ラインの特徴画素列を生成する。具体的には、CPU103は
図3のS303における着目ラインに対する特徴画素列の生成処理において、
図7(c)のように、欠陥画素と同じ水平座標上にある、欠陥画素とは”異なる”色の画素を特徴画素として抽出する。ここでは、ベイヤー配列のカラーフィルターを用いており、欠陥画素がR画素であるため、着目ラインからはG画素を抽出して特徴画素列を生成する。
【0051】
また、欠陥画素がR画素であるため、CPU103は第1の実施形態と同様、カラーフィルターの繰り返し単位である2画素分離れた位置(ここでは上方)に参照ラインを設定する。そして、CPU103はS304において、着目ラインと同様、参照ライン上の、欠陥画素とは”異なる”色の画素を特徴画素として抽出し、特徴画素列を生成する(
図7(d))。参照ラインのカラーフィルターの色配列は着目ラインと同一であるため、参照ラインについても着目ラインと同色のG画素を抽出して特徴画素列が生成される。
【0052】
そして、特徴画素列間の相関量が最小となるシフト量が検出されたら、欠陥画素からこのシフト量に対応する位置の画素を参照画素として補正を行う。欠陥画素の位置をシフト量0として参照画素を決定するため、参照画素は欠陥画素と同色画素になる。
【0053】
なお、連続する欠陥画素がベイヤー配列のG画素のように隣接画素ラインに同色画素が存在する場合も、着目ラインと参照ラインの特徴画素列が同色画素で構成されるように参照ラインを設定する。
【0054】
また、本実施形態においては、欠陥画素と異なる色の画素の値をそのまま利用して特徴画素列を生成しているが、例えば隣接画素を含めた複数の画素の平均画素値を用いるようにしてもよい。
以上説明したように、本実施形態においても、上述した実施形態と同様の効果を実現することができる。
【0055】
なお、ここでは同色画素の欠陥画素が連続する場合に、欠陥画素と異なる色の画素を用いて補正するものとして説明したが、孤立する欠陥画素を補正する場合においても、本実施形態と同様の補正を実行してもよい。例えば、第1の実施形態において、着目ラインおよび参照ライン上のG画素を特徴画素として抽出するように構成してもよい。
【0056】
●(第4の実施形態)
上述の実施形態においては、参照画素が着目ラインから垂直方向にカラーフィルターの繰り返し単位1つ分もしくは隣接する画素ラインに設定した参照ラインから得られる場合について説明した。つまり、着目ラインと参照ラインとが水平方向に有意に高い相関を有している場合であった。
【0057】
しかし、水平に近い角度の繰り返しパターンを有する、
図8(a)に示す被写体の場合、着目ラインから垂直方向にカラーフィルターの繰り返し単位1つ分もしくは隣接する画素ラインが有意に高い相関を有さない。なお、
図8(a)では第3の実施形態のように欠陥画素が連続している場合を示しているが、孤立した欠陥画素の場合でも同様の問題が生じる。
【0058】
このように、水平に近い角度を有する被写体に含まれる着目ラインと、被写体に含まれない参照ラインとを用いた場合、特徴画素列を水平方向にシフトして相関量を求めても、かなり広範囲にシフト量を変化させないと、適切な参照画素が判定できる可能性は小さい。適切でない参照画素を用いて欠陥画素を補正すると、本来の画素値とは大きく異なった画素値に誤補正されてしまう。特に繰り返し形状を持つ被写体においては、誤補正も繰り返し発生し、被写体が本来持っていない繰り返しパターンを生成してしまう。
【0059】
図8(a)に示したような、水平に近い繰り返し形状を持つ被写体に欠陥画素が含まれる場合には、水平方向の探索範囲を拡げるよりも垂直方向の探索方向を拡げた方が適切な参照画素(欠陥画素と同じもしくは近い値を持つ画素)を見つけやすい。しかし、単純に垂直方向に探索範囲を広げた場合、
図8(b)に示したように、着目ラインと参照ラインとの距離が大きくなるため、特徴画素列間の相関量の精度が低下する場合がある。例えば、欠陥画素から垂直方向に4画素離れた位置の画素では、欠陥画素と異なる被写体が写っている場合である。このような場合、異なる被写体の画素値を参照して欠陥画素を誤補正してしまうことになりうる。そこで、本実施形態においては垂直方向に参照範囲を広げつつ、誤補正を抑制することのできる補正方法を提供する。
【0060】
図9は本実施形態における欠陥画素補正の概要を模式的に示す図である。処理1001と1002は、それぞれ着目ラインからの距離が異なる参照ラインAおよびBを用いて第3の実施形態と同様にして参照画素を判定する処理を示している。処理1001では着目ラインの2画素上の画素ラインを参照ラインAに設定し、処理1002では着目ラインの4画素上の画素ラインを参照ラインBに設定している。そして、それぞれの参照ライン上で判定した参照画素を用いて最終的な補正値を求め、欠陥画素の補正に用いる。
【0061】
図10は本実施形態における処理の流れを示したフローチャートであり、
図3と同様の処理については同様の参照数字を付してある。
図3と
図10との比較から明らかなように、第3の実施形態(欠陥画素が孤立している場合は第1の実施形態)の処理を参照ラインA,Bそれぞれについて実行し、得られた補正値を合成して欠陥画素の補正値を得る。
【0062】
本実施形態の特徴は異なる参照ラインの各々について算出された補正値を、S1110において合成することにある。CPU103はS1110において、参照ラインAから算出した補正値Qaと参照ラインBから算出した補正値Qbとを合成する。ここで、合成率をα(0≦α≦1)とした時、最終的な補正値Qは以下の式により算出される。
Q=α×Qa+(1−α)×Qb (2)
【0063】
次に、合成率αの決定手法として、異なる評価基準を用いる3つの例を説明する。
1番目に、最小相関量に応じた合成率αの決定について説明する。この場合、S305A及びS305Bの相関量算出処理で得られた相関量を利用し、参照ラインAについての最小相関量Saと、参照ラインBについての最小相関量Sbとの差分の大きさに応じて合成率αを決定する。最小相関量の差分をSsubとすると、
Ssub=Sa−Sb (3)
である。最小相関量の差分Ssubと合成率αとの関係例を
図11(a)に示す。上述の通り、相関量は小さいほど2つの特徴画素列の相関が高いことを示すため、差分相関量Ssubが小さいほど参照ラインAから算出された補正値Qaの割合(合成率α)を大きくする。また、差分相関量Ssubが大きいほど合成率αを小さくして、参照ラインBから算出された補正値Qbの割合(1−α)を大きくする。
【0064】
2番目に、着目画素における方向検出結果に応じた合成率αの決定について説明する。本実施形態は水平に近い繰り返し形状を持つ被写体に特に有効であるため、例えば欠陥画素周辺における被写体の方向検出結果を用いて合成率αを決定する。方向検出の手法に制限はないが、例えば単純な方法として、
図11(b)のように、欠陥画素に隣接する画素の値G
R,G
U,G
L,G
Dとした場合、横度Hは、
H=|G
U−G
D|―|G
L−G
R| (4)
として算出することが可能である。
【0065】
横度Hは値が大きいほど水平方向の被写体である可能性が高いことを示す。この横度Hは欠陥画素の隣接画素値から求めているため、横度Hが大きいということは、欠陥画素が被写体の水平方向に近いエッジ部分に存在する可能性が高いことを示す。従って、横度Hが大きい場合には、着目ラインより離れた参照ラインの方が信頼度が高いと考えられる。
【0066】
従って、
図11(c)に示すように、横度Hが小さいほど、近い参照ラインAから算出された補正値Qaの割合(合成率α)を大きくし、横度Hが大きいほど合成率αを小さくして遠い参照ラインBから算出された補正値Qbの割合(1−α)を大きくする。
【0067】
3番目に、着目ラインと参照ラインのデータの傾きの差異に応じた合成率αの決定について説明する。例えば
図12(a)のような被写体であった場合、レンズの収差特性等の影響により、
図12(a)中の領域Xと領域Bの光学的な特性は近いのに対し、領域Xと領域Aの光学的な特性は異なっている場合がある。
【0068】
例えば着目ライン、参照ラインA、参照ラインBから生成した特徴画素列が
図12(b)のような画素値を有する場合、式(1)により算出される相関量Sxは着目ラインAの特徴画素列の方が小さくなる。しかし、前述のとおり参照ラインAが通っている領域Aと、着目ラインが通っている領域Xの光学的な特性は異なっている場合があるため、この場合は参照ラインBで求められた補正値を用いる方がよい。
【0069】
光学的な特性が異なるかどうかの判定は、例えば各ラインの特徴画素列の両端の画素値を結んだ直線の傾きの差の大きさのような、特徴画素列の画素値の変化傾向の差異に基づいて行うことができる。例えば、
図12(b)の例では、光学的な特性が近い着目ラインと参照ラインBの特徴画素列の両端の画素値を結んだ直線は似た傾きを有する。一方、光学的な特性が異なる参照ラインAの特徴画素列の両端の画素値を結んだ直線の傾きは負であり、着目ラインについて得られた傾きとは大きく異なる。このような、着目ラインと参照ラインの特徴画素列の画素値の変化傾向の差異を表す指標Gは、例えば以下の式により算出することが可能である。
【数2】
【0070】
指標Gは、特徴画素列の両端の画素値を結んだ直線の傾きの差を表すため、値が小さいほど、参照ラインと着目ラインの特徴画素列の画素値が同様の変化をしていることを表す。そして、着目ラインと参照ラインAとについて求めた指標Ga、及び着目ラインと参照ラインBとについて求めた指標Gbの差
Gsub=Ga−Gb
に応じて合成率αを決定することができる。具体的には、
図11(d)に示すように、Gsubの値が小さいほど参照ラインAから算出された補正値Qaの割合(合成率α)を大きくし、Gsubの値が大きいほど合成率αを小さくして参照ラインBから算出された補正値Qbの割合(1−α)を大きくする。
【0071】
なお、各ラインの特徴画素列の画素値の変化傾向を考慮する場合、微分値の差分を求めることにより相関量を算出してもよい。この場合、相関量は以下の式(6)によって求められる。
【数3】
【0072】
なお、
図11(a),(c),(d)に示した合成率αの値と各評価基準の値との関係は単なる一例であり、他の関係によって合成率αを決定してもよい。また、上述した3つの評価基準とは異なる評価基準に基づいて合成率α
を決定してもよい。また、複数の異なる評価基準に基づいて決定した合成率の1つを選択して用いたり、加重平均して用いたりすることもできる。この場合の選択や重みは、画像から得られる被写体の特徴量などに応じて決定することができる。
また、参照ラインを2つ用いる場合について説明したが、3つ以上用いてもよい。また、着目ラインの上方だけでなく下方にも参照ラインを設定するようにしてもよい。
【0073】
以上説明したように本実施形態によれば、着目ラインからの距離が異なる複数の参照ラインを設定し、各参照ラインについて求めた補正値から最終的な補正値を求めるようにした。そのため。1つの参照ラインから参照画素を決定する場合よりも様々な被写体に対して適切な参照画素もしくは補正値を求めることが可能になり、欠陥画素をより適切に補正することが可能になる。
特に、被写体が着目ラインの方向と近い方向のエッジを有する場合や、繰り返し形状を有する場合であっても、誤補正を抑制し、欠陥画素の補正精度を高めることができる。
【0074】
●(第5の実施形態)
次に、本発明の第5の実施形態について説明する。第1の実施形態において、
図5(a)を用いて、相関量Sxが最小となるシフト量Xを求める方法の例を説明した。
図5(a)の処理において、シフト範囲内で得られる相関量Sxが一定の場合、S1703の条件が満たされることがない(最初に相関量Sxを算出した場合を除く)ため、結果として得られるXminは初期値(−W)となる。この場合、シフト量によらず同一の相関量が算出されているにもかかわらず、シフト範囲において欠陥画素から最も離れた位置の画素を参照して欠陥画素を補正することになる。
【0075】
例えば、
図5(b)のように、G値は似ているがR値が異なる被写体A、Bが存在しており、被写体Aが写ったR画素が欠陥画素である場合を想定する。この場合に、第3の実施形態で説明したような、着目ライン上の、欠陥画素とは異なる色の画素を特徴画素として抽出する方法を用いたとする。
図5(b)に示す水平範囲が参照範囲とした場合、被写体A,BのG値は同一であるため、各シフト量Xにおける相関量Sxは同一となる。従って、
図5(a)の処理を行うと、参照ライン上で欠陥画素から最も離れた、
図5(b)の左上の画素を参照して補正値が算出される。しかし、この画素には被写体Bが写っており、Rの値は被写体Aと異なるため、欠陥画素の補正精度が低下する。本実施形態においてはこのような問題を軽減可能な補正方法に関する。
【0076】
具体的には、相関量Sxが最小となるシフト量の検出処理(
図3のS305)を第1の実施形態(および第3の実施形態)とは異ならせる。
図5(c)は本実施形態における、相関量算出処理の具体例を示すフローチャートであり、
図5(a)と同様の処理には同様の参照数字を付して重複する説明を省略する。
【0077】
S1702で変数の初期化が終わると、S1710でCPU103は、現在のシフト量Xが0以下か正かを判定し、シフト量Xが0以下であれば処理をS1711に、正であれば処理をS1712に進める。
【0078】
S1711でCPU103は、現在の相関
量Sxが最小相関量Smin以下かどうか判定し、現在の相関
量Sxが最小相関量Smin以下ならS1704へ、現在の相関
量Sxが最小相関量Sminより大きければS1705へ、処理を進める。なお、Xが初期値(=−W)の場合、CPU103はS1704へ処理を進める。S1711の判定処理により、現在の相関
量Sxが最小相関量Sminと等しい場合には最小相関量Sminに対応するシフト量Xminが更新される。
【0079】
一方、S1712でCPU103は、現在の相関
量Sxが最小相関量Smin
未満かどうか判定し、現在の相関
量Sxが最小相関量Smin未満ならばS1704へ、現在の相関
量Sxが最小相関量Smin以上ならばS1705へ、処理を進める。S1712の判定処理により、現在の相関
量Sxが最小相関量Sminと等しい場合には最小相関量Sminに対応するシフト量Xminは更新されない。
【0080】
この結果、シフト範囲全体に渡って同一の相関
量Sxが得られた場合、シフト量が負から0になるまでは最小相関量Sminに対応するシフト量Xminが更新され、シフト量が正の範囲では最小相関量Sminに対応するシフト量Xminが更新されない。従って、相関量算出処理において得られるシフト量Xminは0となる。このように、本実施形態によれば、最小相関量Sminが得られるシフト量が複数存在する場合、絶対値の最も小さなシフト量が検出される。
【0081】
シフト量の絶対値が低いほど、欠陥画素を補正するための参照画素と、欠陥画素との距離が近くなるため、本実施形態の相関量算出処理により、相関が強く、可能な範囲で欠陥画素に最も近い位置にある画素を参照して補正値を算出することが可能となる。
【0082】
なお、
図5(c)に示した相関値算出処理の方法は単なる一例であり、同様の結果が得られる他の任意の方法を用いることができる。例えば、シフト量Xは必ずしも最小値からインクリメントする必要はなく、各シフト量に対する相関値が算出できれば任意の順序で値を変更することができる。また、最小相関値が得られたシフト量を全て記憶しておき、対応する参照ライン上の画素位置が欠陥画素から最も近くなるシフト量を選択してもよい。
【0083】
以上説明したように、本実施形態によれば、複数のシフト量に対して同一の相関量が得られた場合、それら複数のシフト量のうち絶対値が最も小さいものが記憶されるように相関量を演算する。そのため、例えばシフト範囲全体で同一の相関量が得られた場合にはシフト量0が最小相関値に対応するシフト量として検出され、欠陥画素からの距離が近い画素を参照した補正が可能になる。
【0084】
(その他の実施形態)
以上、本発明を例示的な実施形態について説明したが、本発明はこれらの実施形態に限定されず、特許請求の範囲に規定される範囲内で種々の変形及び変更が可能である。
【0085】
上述の実施形態では、着目ラインを水平方向に設定した場合についてのみ説明したが、他の方向に設定してもよい。例えば、欠陥画素付近に被写体のエッジが存在することが検出された場合には、エッジと交わる方向に着目ラインを設定するなど、被写体の特徴に応じた方向に着目ラインを設定してもよい。
【0086】
また、画像の撮像条件や特徴の解析結果に応じて上述の実施形態の複数を選択的に用いたり組み合わ
せて用いたりしてもよい。
また、上述の実施形態では原色ベイヤー配列のカラーフィルターを備えた撮像素子で撮影された画像の補正について説明したが、他のタイプの繰り返しパターンを有するカラーフィルターを備えた撮像素子で撮影された画像の補正も同様に行うことができる。
【0087】
図1(b)は、実施形態に係る別の画像処理装置の例としての情報処理装置200の機能構成例を示すブロック図である。
図1(b)において、表示部201は、撮影画像の表示や対話的な操作のためのユーザインタフェースの表示などに用いられる。操作部202は、例えばキーボード、マウス、タッチパッドなど、情報処理装置200に対して使用者が各種の指示や設定を行うことを可能にする。CPU203はOSやアプリケーションプログラムを実行して各機能ブロックを制御することにより、上述した実施形態に係る欠陥画素補正処理を実現する。
【0088】
一次記憶装置204は例えばRAMのような揮発性記憶装置であり、CPU203のワークエリアなど、一時的なデータ記憶領域として用いられる。二次記憶装置205は例えばハードディスクドライブ、SSD、EEPROMのような不揮発性記憶装置であり、OSやファームウェア、アプリケーションプログラム、各種の設定情報などを記憶する。
【0089】
通信装置206は、情報処理装置200が外部装置と制御コマンドやデータの送受信を行うことを可能にする。なお、通信装置206は、例えばUSB(Universal Serial Bus)ケーブルなどの有線接続により外部機器と通信を行ってもよ
いし、無線LANなどの無線接続により外部機器と通信を行ってもよい。また、外部装置とは直接接続されてもよいし、サーバを経由したりインターネットなどのネットワークを介して接続されてもよい。
【0090】
また、通信装置206は、撮像装置100の記憶媒体106のような着脱可能な記録媒体をアクセスする機能を備えていてもよい。撮像装置から取り外した記録媒体を通信装置206に装着することで、記録媒体から画像データを情報処理装置200に読み込むことができる。
【0091】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。