以下、図面を参照しながら本発明の実施の形態について説明する。
図5は、本発明の撮像装置1の一実施の形態の構成を示すブロック図である。
撮像装置1は、例えば、デジタルスチルカメラ、デジタルビデオカメラ、撮像機能付き携帯電話機、撮像機能付きパーソナルコンピュータである。撮像装置1は、固体撮像素子を使用した撮像機能を有するのもであれば、いずれの装置であってもよい。
撮像部11は、光学レンズ(図示せず)および撮像素子(図示せず)などから構成される。
また、図示していないが、撮像部11には、必要に応じて、絞り、メカニカルシャッタ、赤外線カットフィルタ、またはローパスフィルタなどが組み合わされて、配置される。
光学レンズは、被写体に反射した光(の像)を集め、集めた光を撮像素子に結像させる。
撮像素子は、例えば、CCDまたはCMOS(Complementary Metal Oxide Semiconductor)センサなどから構成され、光学レンズなどを通して入力された光を光電変換することにより、光をアナログ信号に変換し、変換後に生成されたアナログ信号をA/D変換部(Analog/Digital Converter)12に供給する。
なお、撮像素子は、CCDまたはCMOSセンサに限らず、画素を単位として画像の信号を生成するものであれば足りる。
A/D変換部12は、撮像部11から供給されたアナログ信号をディジタル信号に変換し、変換により生成されたディジタル信号を画素欠陥処理部13に供給する。
以下、生成されたディジタル信号を画像データと称する。
画素欠陥処理部13は、信号処理部14から供給された画像データを基に、画像データに含まれる画素から孤立点を検出し、画像データに画素の欠陥としての孤立点を示すマーク(以下、画素欠陥マークと称する)を付加し、画素欠陥マークを含む画像データを信号処理部14に供給する。
ここで、孤立点とは、撮像素子の画素欠陥などにより、周辺の画素とは異なる特性を示す点として検出される画像データ上の画素をいう。
信号処理部14は、画素欠陥処理部13から供給された画素欠陥マークが付加された画像データを基に、画像データを補正すると共に、画像データに信号処理を適用して、補正および信号処理をした画像データを記憶部15に供給する。
記憶部15は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、PROM(Programmable Read Only Memory)、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electronically Erasable and Programmable Read Only Memory)、またはフラッシュメモリなどから構成され、信号処理部14から供給された画像データを記憶する。
画素欠陥処理部13は、画素欠陥マーク部21、画素欠陥検出部22、および画素欠陥情報記憶部23を含むように構成される。
画素欠陥マーク部21は、後述する画素欠陥情報記憶部23から供給される画素欠陥の座標を基に、A/D変換部12から供給される画像データに含まれる画素の孤立点を検出し、検出した孤立点に画素の欠陥を示す情報を挿入し、画素欠陥マークを含む画像データを信号処理部14に供給する。
ここで、画素欠陥を示す情報は、所定の値のビットからなり、画素値を示す画素データにそのビットが挿入される。例えば、画素データの先頭の2ビットに画素欠陥を示すビットを挿入し、画素データの下位の2ビットを消去するように、画素データの2ビットをビットシフトさせて画素データに画素欠陥を示す情報が挿入される。
信号処理部14の前で補正をした場合、一度検出した孤立点は、二度目以降補正されてしまい、動的な検出をすることができないが、このように、画素欠陥マーク部21が、画素に画素欠陥を示す情報を挿入するだけで、実際の補正の処理は後述する補正部32が行うようにすることで、動的な検出をすることが可能となる。
画素欠陥検出部22は、信号処理部14から供給される画像データを基に、画像データに含まれる画素の孤立点を検出し、検出した孤立点の位置を示す座標を画素欠陥情報記憶部23に供給する。
画素欠陥情報記憶部23は、例えば、RAM、ROM、PROM、EPROM、EEPROM、またはフラッシュメモリなどから構成され、画素欠陥検出部22から供給された孤立点の位置を示す座標を記憶する。
信号処理部14は、ラインバッファ31、補正部32、および画像処理部33を含むように構成される。
ラインバッファ31は、例えば、FIFO(First In First Out)構造のメモリから構成され、画素欠陥マーク部21から供給される画像データを基に、画像データを行単位で信号処理する。ラインバッファ31は、行単位の画像データを補正部32に供給すると共に、画素欠陥検出部22に供給する。
画素欠陥検出部22の画素欠陥の検出の処理においては、画素欠陥の誤検出を防止するために、検出の対象となる画素の周辺画素の情報を必要とするが、周辺画素の情報を取得するために必要な複数のラインバッファは、信号処理部14でもともと持っているラインバッファ31を流用するため、大規模なラインメモリの増設を必要としない。
例えば、ラインバッファ31は5本のラインを持っているが、信号処理部14は、通常4本のラインバッファを持っており、画素欠陥検出部22において、5本のラインバッファが必要な場合には、1本のラインバッファを増設すればよい。
補正部32は、ラインバッファ31から供給される画素欠陥マークを含む画像データを基に、画素欠陥マークの付された画素を補正し、補正した画像データを画像処理部33に供給する。
補正部32の補正処理の方法は、例えば、隣接する画素の画素値の平均値を算出し、その平均値を孤立点の画素値として置換してもよいし、隣接する画素の画素値を、そのまま孤立点の画素値として置換してもよい(いわゆる、前値ホールド)。
また、補正処理の方法は、上述した例に限定されるものではない。
画像処理部33は、例えば、CPU(Central Processing Unit)またはDSP(Digital Signal Processor)などから構成され、補正部32から供給される補正された画像データを基に、画像データに画像信号処理を実行し、画像信号処理をした画像データを記憶部15に供給する。
ここで、画像信号処理は、画像データのエッジを強調するなどして、画像データを最適化する処理を実行する。
画素欠陥検出部22は、傾き抽出部41および画素欠陥判定部42を含むように構成される。
傾き抽出部41は、ラインバッファ31から供給された画像データを基に、隣接する同色の画素同士の画素値の傾きを抽出し、抽出した傾きを画素欠陥判定部42に供給する。例えば、傾き抽出部41は、ラインバッファ31から供給された画像データを基に、隣接する同色の画素同士の画素値の差分を、画素値の傾きとして抽出する。
画素欠陥判定部42は、傾き抽出部41から供給された画像データに含まれる画素の傾きを基に、画素の孤立点の判定をし、孤立点であると判定された画素の位置を示す座標を画素欠陥情報記憶部23に供給する。
画素欠陥判定部42は、さらに、孤立点候補検出部51、孤立点検出部52、および孤立点推定部53を含むように構成される。
孤立点候補検出部51は、傾き抽出部41から供給された傾きを示す値の符号および傾きを示す値の絶対値を基に、画像データに含まれる孤立点の候補を検出し、検出した孤立点の候補を孤立点検出部52に供給する。
孤立点検出部52は、孤立点候補検出部51から供給された孤立点の候補、並びに孤立点の候補の周辺の画素の傾きを示す値の符号および傾きを示す値の絶対値を基に、孤立点の候補に含まれる孤立点を検出し、検出した孤立点を孤立点推定部53に供給する。
孤立点推定部53は、孤立点検出部52から供給された孤立点、並びに孤立点の色と異なる色の画素であって、孤立点に隣接する画素の傾きを示す値の符号および傾きを示す値の絶対値を基に、孤立点に含まれる画素欠陥と推定される孤立点を検出し、検出した画素欠陥と推定される孤立点の位置を示す座標を画素欠陥情報記憶部23に供給する。
次に、同色の隣接する画素同士の画素値の傾きの検出について、図6を参照して説明する。
図6は、画素欠陥検出部22の詳細を示すブロック図である。
画素欠陥検出部22は、傾き抽出部41および画素欠陥判定部42を含むように構成される。
さらに、傾き抽出部41には、ラインバッファ31から画像データを行単位で入力される。図中のラインL1乃至L5は、それぞれ、画像データの各行を示す。例えば、図6のラインL1は、図1中の1行目の画素からなり、ラインL2は、図1中の2行目の画素からなり、同様にラインL3乃至L5は、それぞれ、図1中の3行目乃至5行目のそれぞれの画素からなる。
遅延素子101−1−1は、ラインバッファ31より供給される画像データのラインL1の画素1画素分遅延させて、遅延した画素(以下、画素nと称する)を遅延素子101−1−2および差分検出部102−1に供給する。
ここで、遅延素子101−1−1は、画像データを遅延させる素子、いわゆる遅延素子であり、例えば、DフリップフロップまたはDラッチなどから構成される。同様に、後述する遅延素子101−1−2、遅延素子101−1−3、および遅延素子103−1−1乃至103−1−7もDフリップフロップまたはDラッチなどから構成される。
さらに、後述する遅延素子101−2−1乃至遅延素子101−5−3、および遅延素子103−2−1乃至103−5−7もDフリップフロップまたはDラッチなどから構成される。
遅延素子101−1−2は、遅延素子101−1−1から供給された画素を1画素分遅延させて、遅延した画素(以下、画素n−1と称する)を遅延素子101−1−3に供給する。
遅延素子101−1−3は、遅延素子101−1−2から供給された画素を1画素分遅延させて、遅延した画素(以下、画素n−2と称する)を差分検出部102−1に供給する。
したがって、差分検出部102には、画像データのラインL1の画素が1画素分遅延された画素nと、画素データのラインL1の画素が3画素分遅延された画素n−2とが供給されることになる。
差分検出部102−1は、遅延素子101−1−1から供給される画素nおよび遅延素子101−1−3から供給される画素n−2を基に、画素nと画素n−2との画素値の差分を画素値の傾きとして検出し、検出した傾きを遅延素子103−1−1に供給する。
ここで、画素値の傾きとして、同色の隣接する画素同士の傾きが検出される。すなわち、同色の画素の傾きを検出するために、遅延素子101−1−1乃至101−1−3により画素が遅延される。例えば、図1のBayer配列のGreen画素において、Green画素AとGreen画素3との傾きまたはGreen画素3とGreen画素Bとの傾きなどを検出するために画素が遅延される。
遅延素子103−1−1は、差分検出部102−1から供給される傾きを1画素分遅延させて、1画素分遅延した傾き(以下、傾きnと称する)を遅延素子103−1−2および画素欠陥判定部42に供給する。
遅延素子103−1−2は、遅延素子103−1−1から供給される傾きnを1画素分遅延させて、2画素分遅延した傾き(以下、傾きn−1と称する)を遅延素子103−1−3および画素欠陥判定部42に供給する。
遅延素子103−1−3は、遅延素子103−1−2から供給される傾きn−1を1画素分遅延させて、3画素分遅延した傾き(以下、傾きn−2と称する)を遅延素子103−1−4および画素欠陥判定部42に供給する。
遅延素子103−1−4は、遅延素子103−1−3から供給される傾きn−2を1画素分遅延させて、4画素分遅延した傾き(以下、傾きn−3と称する)を遅延素子103−1−5および画素欠陥判定部42に供給する。
遅延素子103−1−5は、遅延素子103−1−4から供給される傾きn−3を1画素分遅延させて、5画素分遅延した傾き(以下、傾きn−4と称する)を遅延素子103−1−6および画素欠陥判定部42に供給する。
遅延素子103−1−6は、遅延素子103−1−5から供給される傾きn−4を1画素分遅延させて、6画素分遅延した傾き(以下、傾きn−5と称する)を遅延素子103−1−7および画素欠陥判定部42に供給する。
遅延素子103−1−7は、遅延素子103−1−6から供給される傾きn−5を1画素分遅延させて、7画素分遅延した傾き(以下、傾きn−6と称する)を画素欠陥判定部42に供給する。
すなわち、画素欠陥判定部42には、それぞれ1画素分乃至7画素分遅延された、7つの傾きが供給されることになる。
遅延素子101−2−1乃至101−2−3、差分検出部102−2、および遅延素子103−2−1乃至103−2−7は、遅延素子101−1−1乃至101−1−3、差分検出部102−1、および遅延素子103−1−1乃至103−1−7と同様に構成され、ラインL2について、それぞれ1画素分乃至7画素分遅延した、7つの傾きを生成して、生成したそれぞれ1画素分乃至7画素分遅延した7つの傾きを画素欠陥判定部42に供給する。
遅延素子101−3−1乃至101−3−3、差分検出部102−3、および遅延素子103−3−1乃至103−3−7は、遅延素子101−1−1乃至101−1−3、差分検出部102−1、および遅延素子103−1−1乃至103−1−7と同様に構成され、ラインL3について、それぞれ1画素分乃至7画素分遅延した、7つの傾きを生成して、生成したそれぞれ1画素分乃至7画素分遅延した7つの傾きを画素欠陥判定部42に供給する。
遅延素子101−4−1乃至101−4−3、差分検出部102−4、および遅延素子103−4−1乃至103−4−7は、遅延素子101−1−1乃至101−1−3、差分検出部102−1、および遅延素子103−1−1乃至103−1−7と同様に構成され、ラインL4について、それぞれ1画素分乃至7画素分遅延した、7つの傾きを生成して、生成したそれぞれ1画素分乃至7画素分遅延した7つの傾きを画素欠陥判定部42に供給する。
遅延素子101−5−1乃至101−5−3、差分検出部102−5、および遅延素子103−5−1乃至103−5−7は、遅延素子101−1−1乃至101−1−3、差分検出部102−1、および遅延素子103−1−1乃至103−1−7と同様に構成され、ラインL5について、それぞれ1画素分乃至7画素分遅延した、7つの傾きを生成して、生成したそれぞれ1画素分乃至7画素分遅延した7つの傾きを画素欠陥判定部42に供給する。
このように、画素欠陥判定部42には、ラインL1乃至ラインL5のそれぞれについて、それぞれ1画素分乃至7画素分遅延された、7つの傾きが供給されることになる。
すなわち、傾き抽出部41は、ラインL1乃至L5より供給される画像データを基に、同色の隣接する画素同士の画素値の傾きを抽出し、抽出した傾きを画素欠陥判定部42に供給する。
以下、複数のラインの複数の画素についての画素値の傾きを、画素の特徴量とも称する。
画素欠陥判定部42の孤立点候補検出部51、孤立点検出部52、および孤立点推定部53は、画素の特徴量に含まれる、ラインL1の傾きn乃至n−6、ラインL2の傾きn乃至n−6、ラインL3の傾きn乃至n−6、ラインL4の傾きn乃至n−6、およびラインL5の傾きn乃至n−6を基に、後述する画素欠陥検出の処理を実行する。
なお、同色の隣接する画素同士の画素値の傾きの抽出は、例えば、Bayer配列の場合、図1乃至図3に示すGreen画素、Blue画素、およびRed画素について、それぞれ実行される。
図7は、Bayer配列のGreen画素の傾きの抽出を示す図である。
図7で示される例において、格子状の編目に交わった点上の円中に“G”の文字が記されている円はGreen画素を示し、濃色のGreen画素は、図1のBayer配列のGreen画素0乃至6と同様の配置となっている。
また、横方向のラインにおける、1行目のラインは、図6のラインL1に対応し、同様に、2行目乃至5行目のラインは、それぞれ、図6のラインL2乃至L5に対応する。すなわち、図7において、1行目のライン(ラインL1)の、“G”の文字が記されている画素は、図1のGreen画素1に対応し、図7において、2行目のライン(ラインL2)の左側の、“G”の文字が記されている画素は、図1のGreen画素0に対応し、図7において、2行目のラインの、右側の“G”の文字が記されている画素は、図1のGreen画素2に対応する。
同様に、図7において、3行目のライン(ラインL3)の、“G”の文字が記されている画素は、図1のGreen画素3に対応し、図7において、4行目のライン(ラインL4)の左側の、“G”の文字が記されている画素は、図1のGreen画素4に対応し、図7において、4行目のラインの、右側の、“G”の文字が記されている画素は、図1のGreen画素6に対応する。また、図7において、5行目のライン(ラインL5)の、右側の、“G”の文字が記されている画素は、図1のGreen画素5に対応する。
以下、図1のBayer配列のGreen画素も参照しながら説明する。
Bayer配列のGreen画素は、奇数および偶数行において、上下方向に互い違いに並ぶようになっており、図7に示すように、奇数行である、1行目のライン、3行目のライン、および5行目のラインのGreen画素は、水平方向に1画素の間隔で並んでいる。また、偶数行である、2行目のラインおよび4行目のラインのGreen画素は、水平方向に1画素の間隔で並んでいる。
上述したように、それぞれ水平方向に隣り合うGreen画素同士で傾きが抽出される。図7中の“傾き”とは、それぞれ水平方向に隣り合うGreen画素同士の傾きを示す。例えば、図1のGreen画素3の傾きとして、Green画素AおよびGreen画素3、並びにGreen画素3およびGreen画素Bの傾きが抽出される。
例えば、Green画素3について、孤立点を検出する場合、Green画素3の傾きとして、Green画素AおよびGreen画素3、並びにGreen画素3およびGreen画素Bの傾きが抽出され、Green画素3の傾きが孤立点の候補の特徴を備えているとき、Green画素3の周辺の画素として、Green画素0、Green画素1、Green画素2、Green画素4、Green画素5、およびGreen画素6について、傾きが抽出される。Green画素0、Green画素1、Green画素2、Green画素4、Green画素5、およびGreen画素6の傾きを基に、Green画素3が孤立点であるかが判定される。
さらに、図示は省略するが、Green画素3について、孤立点を検出する場合、Green画素3の隣接する画素および周辺の画素であって、異なる色の画素である、Blue画素またはRed画素について、傾きが抽出される。
以上のように、傾き抽出部41は、同色の隣接する画素同士の画素値の傾きを抽出する。例えば、Bayer配列のGreen画素の場合、図7に示すような関係で傾きが抽出される。
図8は、撮像素子の動的欠陥検出を説明するフローチャートである。
ステップS1において、撮像部11は、被写体を撮像することで画像を取り込み、撮像した被写体の画像のアナログ信号をA/D変換部12に供給する。
ステップS2において、A/D変換部12は、撮像部11から供給された画像のアナログ信号をディジタル信号である画像データに変換する。A/D変換部12は、変換により生成されたディジタル信号である画像データを画素欠陥マーク部21に供給する。
ステップS3において、画素欠陥マーク部21は、画素欠陥情報記憶部23に記憶されている孤立点の座標データを取得し、取得した座標データおよびA/D変換部12から供給された画像データを基に、画素欠陥判定の処理を実行する。画素欠陥判定の処理の詳細は図9を参照して後述する。
画素欠陥マーク部21は、画素欠陥判定の処理の結果得られた画素欠陥を示す情報(マーク)を含む画像データをラインバッファ31に供給する。
ステップS4において、ラインバッファ31は、画素欠陥マーク部21から供給された画素欠陥を示す情報を含む画像データを、順に記憶し、記憶した順に、補正部32および傾き抽出部41に供給する。例えば、5本のラインを有するラインバッファ31の場合、画像データが5ライン(ラインL1乃至L5)毎であって、画素毎に、補正部32および傾き抽出部41に供給される。
ステップS5において、画素欠陥検出部22は、ラインバッファ31から供給された画像データを基に、画素欠陥検出の処理を実行する。撮像素子の画素欠陥を示す画像データの孤立点が検出された場合、画素欠陥情報記憶部23は、孤立点を示す座標を記憶する。画素欠陥検出の処理の詳細は図11を参照して後述する。
ステップS6において、補正部32は、ラインバッファ31から供給された画素欠陥を示す情報を含む画像データを基に、画像データに含まれるマークされた画素を補正する。
補正部32は、補正した画像データを画像処理部33に供給する。
ステップS7において、画像処理部33は、補正部32から供給された画像データを基に、ホワイトバランスの処理、ゲイン調整の処理、またはノイズ除去の処理などの画像処理を実行し、画像処理した画像データを記憶部15に供給する。
ステップS8において、記憶部15は、画像処理部33から供給される画像データを自分に記憶し、処理は終了する。
図8のステップS3に対応する、画素欠陥判定の処理の詳細について、図9のフローチャートを参照して説明する。
ステップS101において、画素欠陥マーク部21は、画素欠陥情報記憶部23に記憶されている孤立点の座標データを読み出す。
図10は、孤立点の座標データの例を示す図である。
図10で示される孤立点の座標データの例において、孤立点である座標の位置を示す、“座標”が格納されている。すなわち、孤立点の座標データには、画素欠陥検出部22により検出された孤立点の座標が格納されている。
例えば、図10で示される孤立点の座標データの例において、“1”である番号に対して、1番目の孤立点である画素の“(x1,y1)”である座標が記録されている。また、“2”である番号に対して、2番目の孤立点である画素の“(x2,y2)”である座標が記録されている。また、“3”である番号に対して、3番目の孤立点である画素の“(x3,y3)”である座標が記録されている。さらに、“4”である番号に対して、4番目の孤立点である画素の“(x4,y4)”である座標が記録されている。
このように、孤立点の座標データには、画素欠陥検出部22により検出された孤立点のそれぞれに対して、孤立点の座標が格納されている。
例えば、画素欠陥マーク部21は、画素欠陥情報記憶部23に記憶されている孤立点の座標データをすべて読み出し、一時的に画素欠陥マーク部21に備えるバッファなどに孤立点の座標データを記憶し、その記憶した孤立点の座標データを基に、後述するステップS102の処理を実行する。
また、孤立点の座標データの読み出しの処理は、上述した例に限定されるものではない。例えば、孤立点の座標データを画素欠陥情報記憶部23から適宜読み出して、後述するステップS102の処理を実行するようにしてもよい。
ステップS102において、画素欠陥マーク部21は、画素欠陥情報記憶部23から読み出した座標データを基に、画素欠陥を示す座標データが含まれるか否か判定する。
ステップS102において、画素欠陥を示す座標データが含まれると判定された場合、ステップS103に進み、画素欠陥マーク部21は、座標データで示される位置の画素の画素データに画素欠陥を示す情報を挿入して、画素欠陥を示す情報を含む画像データをラインバッファ31に供給する。
画素欠陥を示す情報は、通常の画素値を示す画素データに現れるパターンと異なる、所定のビット数の所定のパターンからなり、例えば、画素データ、そのパターンのビットを挿入することで画素がマークされる。
一方、ステップS102において、画素欠陥を示す座標データが含まれないと判定された場合、ステップS103の処理はスキップされ、画像データのみがラインバッファ31に供給され、処理は終了する。
このように、画素欠陥マーク部21は、画素に画素欠陥を示す情報をマークをするのみで、補正は、補正部32が実行するようにすることで、画素欠陥を動的に検出することが可能となる。
図8のステップS5に対応する、画素欠陥検出の処理の詳細について、図11のフローチャートを参照して説明する。
ステップS201において、傾き抽出部41は、ラインバッファ31から供給される画像データを基に、画像データに含まれる画素の特徴量を抽出する。
ステップS202において、画素欠陥判定部42の孤立点候補検出部51は、傾き抽出部41から供給される画素の特徴量を基に、孤立点の候補を検出する。例えば、ステップS202において、孤立点候補検出部51は、傾き抽出部41から供給される画素の特徴量を基に、検出の対象である画素の傾きから、孤立点の候補を検出する。孤立点候補の検出の処理の詳細は後述する。
孤立点候補検出部51は、孤立点候補の検出の処理の結果得られた、孤立点の候補を孤立点検出部52に供給する。
ステップS203において、画素欠陥判定部42の孤立点検出部52は、傾き抽出部41から供給される画素の特徴量および孤立点候補検出部51から供給される孤立点の候補を基に、孤立点を検出する。例えば、ステップS203において、孤立点検出部52は、傾き抽出部41から供給される画素の特徴量および孤立点候補検出部51から供給される孤立点の候補を基に、検出の対象である画素の周辺の画素であって、検出の対象である画素と同色の画素の傾きによって、孤立点の候補から孤立点を検出する。孤立点の検出の処理の詳細は後述する。
孤立点検出部52は、孤立点の検出の処理の結果得られた、孤立点を示す情報を孤立点推定部53に供給する。
ステップS204において、画素欠陥判定部42の孤立点推定部53は、傾き抽出部41から供給される画素の特徴量および孤立点検出部52から供給される孤立点を基に、画素欠陥と推定される孤立点を検出する。例えば、ステップS204において、孤立点推定部53は、傾き抽出部41から供給される画素の特徴量および孤立点検出部52から供給される孤立点を基に、検出の対象である画素の周辺の画素であって、検出の対象である画素と異なる色の画素の傾きによって、孤立点から、さらに画素欠陥と推定される孤立点を検出する。画素欠陥と推定される孤立点の検出の処理の詳細は後述する。
孤立点推定部53は、画素欠陥と推定される孤立点の検出の処理の結果得られた、画素欠陥と推定される孤立点の位置を示す座標を画素欠陥情報記憶部23に供給する。
なお、ステップS201乃至S204の処理を順次説明したが、実際の処理においては、ステップS201乃至S204の処理は、同時(並列)に実行される。
ステップS205において、画素欠陥情報記憶部23は、孤立点推定部53から供給される画素欠陥と推定される孤立点の位置を示す座標を自分に記憶して、処理は終了する。
図11のステップS202に対応する、孤立点の候補の検出の処理の詳細について、図12のフローチャートを参照して説明する。
ステップS301において、孤立点候補検出部51は、検出の対象である画素について、同色の隣接する画素同士の画素の画素値の傾きを示す値の符号が異なり、かつ画素値の傾きを示す値の絶対値はスレッショルド以上であるか否かを判定する。
ここで、スレッショルドとは、いわゆる閾値である。
ステップS301において、同色の隣接する画素同士の画素の特徴量に含まれる傾きを示す値の符号が異なり、かつ画素の特徴量に含まれる傾きを示す値の絶対値はスレッショルド以上であると判定された場合、ステップS302に進み、孤立点候補検出部51は、判定された画素を孤立点の候補として検出し、処理は終了する。
このように、ステップS301の条件により孤立点の候補の判定をするため、例えば、単なる急峻なエッジは、片方の傾きを示す値の絶対値の値が小さく、スレッショルド以下となるため、孤立点の候補としての特徴を備えていないため、誤検出を防ぐことができる。
次に、図13および図14を参照して、ステップS301における、孤立点の候補の判定について説明する。
図13は、隣接する同色の画素との傾きおよびスレッショルドの関係を示すグラフである。
図13のグラフの縦軸は、画素値を示し、縦軸の値が大きいほど画素が明るいことを示す。横軸は、画素の位置を示し、画素欠陥の対象となる画素である“検出点”を中心として、“検出点”の左右に隣接する同色の画素を、“同色−1”および“同色+1”で示す。
図13の“検出点”を図1の“Green画素3”とした場合、図13の“同色−1”は、図1の“Green画素A“となり、図13の“同色+1”は、図1の“Green画素B“となる。すなわち、“同色−1”、“検出点”、および“同色+1”は、画像データの同一の行における連続する同色の画素である。
図13のグラフの“同色−1”の画素値と“検出点”の画素値との傾きを示す値の符号は“正”であり、“検出点”の画素値と“同色+1”の画素値との傾きを示す値の符号は“負”であるので、傾きを示す値の符号が異なる。
傾きを示す値の符号が“正”である場合、傾きを示す直線は右上がりとなる。また、傾きを示す値の符号が“負”である場合、傾きを示す直線は右下がりとなる。
また、“同色−1”と“検出点”と傾きを示す値の絶対値は、スレッショルド以上であり、“検出点”と“同色+1”と傾きを示す値の絶対値の差は、スレッショルド以上である。
したがって、ステップS301の条件を満たすので、ステップS302において、図13の“検出点”は、孤立点の候補として検出される。
図14は、隣接する同色の画素との傾きおよびスレッショルドの関係を示すグラフである。
図14の縦および横方向の軸は、図13と同様でありその説明は省略する。
図14のグラフの“同色−1”の画素値と“検出点”の画素値との傾きを示す値の符号は“負”であり、“検出点”の画素値と“同色+1”の画素値との傾きを示す値の符号は“負”であるので、傾きを示す値の符号が同一となる。
したがって、ステップS301の条件を満たさないので、図14の“検出点”は、孤立点の候補として検出されない。
次に、図15を参照して、ステップS301において、孤立点の候補であると判定されるパターンについて説明する。
図15は、孤立点の候補であると判定されるパターンを示すグラフである。
図15Aおよび図15Bのグラフの縦軸は、画素値を示し、縦軸の値が大きいほど画素が明るいことを示す。横軸は、画素の位置を示し、“検出点”を中心として、“検出点”の左右に隣接する同色の画素を、“同色−1”および“同色+1”で示す。
また、図15Aおよび図15Bの“検出点”を図1の“Green画素3”とした場合、図15Aおよび図15Bの“同色−1”は、図1の“Green画素A“となり、図15Aおよび図15Bの“同色+1”は、図1の“Green画素B“となる。すなわち、“同色−1”、“検出点”、および“同色+1”は、画像データの同一の行における連続する同色の画素である。
図15Aのグラフの“同色−1”と“検出点”との画素値の傾きを示す値の符号は“正”(傾きを示す直線は右上がり)であり、“検出点”と“同色+1”との画素値の傾きを示す値の符号は“負”(右下がり)である。また、“検出点”と“同色−1”との傾きを示す値の絶対値(例えば、画素値の差の絶対値)は、スレッショルド以上であり、“検出点”と“同色+1”との傾きを示す値の絶対値(例えば、画素値の差の絶対値)は、スレッショルド以上である。
したがって、ステップS301において、図15Aの“検出点”は、孤立点の候補として判定される。
すなわち、孤立点の候補として判定されるパターンとして、図15Aに示されるように逆V字型(山型)の線151で表されるパターン(以下、逆V字型パターンと称する)がある。図15Aに示されるパターンは、例えば“白点”として検出される。
図15Bのグラフの“同色−1”と“検出点”との画素値の傾きを示す値の符号は“負”(傾きを示す直線は右下がり)であり、“検出点”と“同色+1”との画素値の傾きを示す値の符号は“正”(傾きを示す直線は右上がり)である。また、“検出点”と“同色−1”との傾きを示す値の絶対値(例えば、画素値の差の絶対値)は、スレッショルド以上であり、“検出点”と“同色+1”との傾きを示す値の絶対値(例えば、画素値の差の絶対値)は、スレッショルド以上である。
したがって、ステップS301において、図15Bの“検出点”は、孤立点の候補として判定される。
すなわち、孤立点の候補として判定されるパターンとして、図15Bに示されるようにV字型(谷型)の線152で表されるパターン(以下、V型パターンと称する)がある。図15Bに示されるパターンは、例えば“黒点”として検出される。
以上のように、孤立点の候補として判定されるのは、逆V字型の線151で表されるパターンまたはV字型の線152で表されるパターンが現れる場合である。
ここで、孤立点の候補でも、周辺の画素の画素値によっては、孤立点とならない場合があり、その孤立点とならないパターンを図16乃至図18を参照して説明する。
図16は、1画素の幅の縦の線の画像における孤立点の候補を含む画素のパターンを示す図である。
図16の3次元の縦および横方向は、画像の方向を示し、縦横の平面上にある四角柱は、それぞれ、同色の画素を示す。また、3次元の高さ方向は、四角柱で示される画素の画素値を示し、高い四角柱ほど明るい画素であることを示す。図16中の線Aは、1画素の幅の縦の線である。
画素201乃至209は、同色の画素を示す。また、画素202と画素201との画素値の差は、スレッショルド以上であり、画素202と画素203との画素値の差もスレッショルド以上である。また、画素205と画素204との画素値の差は、スレッショルド以上であり、画素205と画素206との画素値の差もスレッショルド以上である。さらに、画素208と画素207との画素値の差は、スレッショルド以上であり、画素208と画素209との画素値の差もスレッショルド以上である。
ここで、画素205を“検出点”とした場合、隣接する同色の画素である画素204および画素206との関係において、孤立点の候補の検出をしたとき、画素205と画素204との傾きの符号は“負”であり、かつ画素値の差(の絶対値)は、スレッショルド以上である。また、画素205と画素206との傾きの符号は、“正”であり、かつ画素値の差(の絶対値)は、スレッショルド以上であるので、画素205は、上述したように、孤立点の候補として検出される。
しかし、1画素の幅の縦の線を撮像した画像であるから、画素205が孤立点の候補であると検出された場合でも、画素205は、孤立点とすべきではない。このような場合、画素205の周辺の画素である画素202および画素208において、図15Bを参照して説明した、V字型の線152で表されるパターンが現れる。
次に、図17は、1画素の幅の斜めの線の画像における孤立点の候補を含む画素のパターンを示す図である。
図17の3次元の縦、横、および高さ方向の軸、並びに四角柱は、図16と同様でありその説明は適宜省略する。図17中の線Aは、1画素の幅の斜めの線である。
画素221乃至229は、同色の画素を示し、図中の画素値の低い画素(画素223、画素225、および画素227)は、一次候補の孤立点を示す。
ここで、画素225を“検出点”とした場合、画素225は、孤立点の候補として検出される。
図17で示される場合も、1画素の幅の斜めの線を撮像した画像であるから、画素225は、孤立点とすべきではない。このような場合、画素225の周辺の画素である画素223および画素227において、図15Bを参照して説明した、V字型の線152で表されるパターンが現れる。
そこで、孤立点の候補であると検出された場合でも、周辺の画素において、図15Aまたは図15Bを参照して説明した、逆V字型の線151で表わされるパターンまたはV字型の線152で表わされるパターンが現れたとき、その候補は孤立点とされない。
次に、図18は、線の幅が一定ではなく、ある画素で線が交差している線の画像における孤立点の候補を含む画素のパターンを示す図である。
図18の3次元の縦、横、および高さ方向の軸、並びに四角柱は、図16および図17と同様でありその説明は適宜省略する。図18中の線Aは、線の幅が一定ではなく、ある画素で線が交差している線である。
画素241乃至255は、同色の画素を示し、画素248は、孤立点の候補として検出される。なお、図中には、画素248は表されていないが、画素247と画素249との間の太線Aに隠れた箇所に、画素248が配置されている。
図18で示される場合も、線の幅が一定ではなく、ある画素で線が交差している線の画像であるから、画素248は、孤立点とすべきではない。すなわち、図18から、孤立点の候補であると検出された場合でも、周辺の画素において、所定のパターンが現れたとき、その候補は孤立点とすべきではないことがわかる。
以上のように、例えば、1画素の幅の縦の線、1画素の幅の斜めの線、および線の幅が一定ではなく、ある画素で線が交差している線を撮像した画像から、正常な画素を誤って孤立点として検出しないようにするため、孤立点の候補から、周辺画素の傾きを基に、孤立点が検出される。
図11のステップS203に対応する、孤立点の検出の処理の詳細について、図19のフローチャートを参照して説明する。
ステップS401において、画素欠陥判定部42の孤立点検出部52は、上述したように、候補に対する周辺画素を選択する。
例えば、図1中のGreen画素3が候補である場合、孤立点検出部52は、Green画素0、Green画素1、Green画素2、Green画素4、Green画素5、およびGreen画素6である周辺画素を選択する。
例えば、図2中のBlue画素3が候補である場合、孤立点検出部52は、Blue画素0、Blue画素1、Blue画素2、Blue画素4、Blue画素5、およびBlue画素6である周辺画素を選択する。また、例えば、図3中のRed画素3が候補である場合、孤立点検出部52は、Red画素0、Red画素1、Red画素2、Red画素4、Red画素5、およびRed画素6である周辺画素を選択する。
ステップS402において、孤立点検出部52は、選択した周辺画素の傾きをパターンに分類する。
図20は、周辺画素の傾きのパターン示す図である。
図20Aおよび図20Bのグラフの縦軸は、画素値を示し、縦軸の値が大きいほど画素が明るいことを示す。横軸は、画素の位置を示し、周辺画素である“周辺点”を中心として、“周辺点”の左右に隣接する同色の画素を、“同色−1”および“同色+1”で示す。
また、図20Aおよび図20Bの“周辺点”を図1の“Green画素1”とした場合、図20Aおよび図20Bの“同色−1”は、図1の“Green画素1“の左側の斜線の四角で示される画素となり、図20Aおよび図20Bの“同色+1”は、図1の“Green画素1“の右側で示される画素となる。すなわち、“同色−1”、“周辺点”、および“同色+1”は、画像データの同一の行における連続する同色の画素である。
図20Aのグラフの“同色−1”と“周辺点”との画素値の傾きの符号は“正”(傾きを示す直線は右上がり)であり、“周辺点”と“同色+1”との画素値の傾きの符号は“負”(傾きを示す直線は右下がり)である。また、“周辺点”と“同色−1”との傾きを示す値の絶対値(例えば、画素値の差の絶対値)は、スレッショルド以上であり、“周辺点”と“同色+1”との傾きを示す値の絶対値(例えば、画素値の差の絶対値)は、スレッショルド以上である。
すなわち、図20Aの“周辺点”の傾きのパターンは、逆V字型(山型)の線301となり、逆V字型のパターンである。
図20Bのグラフの“同色−1”と“周辺点”との画素値の傾きの符号は“負”(傾きを示す直線は右下がり)であり、“周辺点”と“同色+1”との画素値の傾きの符号は“正”(傾きを示す直線は右上がり)である。また、“周辺点”と“同色−1”との傾きを示す値の絶対値(例えば、画素値の差の絶対値)は、スレッショルド以上であり、“周辺点”と“同色+1”との傾きを示す値の絶対値(例えば、画素値の差の絶対値)は、スレッショルド以上である。
すなわち、図20Bの“周辺点”の傾きのパターンは、V字型(谷型)の線302となり、V字型のパターンである。
ここで、周辺画素(“周辺点”)の特徴を検出する場合のスレッショルドは、“検出点”を検出する場合のスレッショルドと同じでもよく、または“検出点”を検出する場合よりも低く設定することができる。例えば、周辺画素のスレッショルドを“検出点”のスレッショルドの1/4に設定することができる。
このように、“周辺点”を検出する場合、スレッショルドを低く設定することで、“周辺点”が検出されやすくなるので、“検出点”の検出の感度をよくすることができる。
図21は、周辺画素の傾きの他のパターンを示す図である。
図21の縦および横方向の軸は、図20と同様でありその説明は省略する。
図21Aのグラフの“同色−1”と“周辺点”との画素値の傾きの符号は“正”であり、“周辺点”と“同色+1”との画素値の傾きが“0”である。また、“周辺点”と“同色−1”との傾きを示す値の絶対値は、スレッショルド以上であり、“周辺点”と“同色+1”との傾きを示す値の絶対値は、“0”である。
したがって、図21Aの周辺画素の傾きのパターンは、線321で表わされるパターン(以下、右屋根パターンと称する)に分類される。
図21Bのグラフの“同色−1”と“周辺点”との画素値の傾きの符号は“正”であり、“周辺点”と“同色+1”との画素値の傾きの符号が“正”である。また、“周辺点”と“同色−1”との傾きを示す値の絶対値は、スレッショルド以上であり、“周辺点”と“同色+1”との傾きを示す値の絶対値もスレッショルド以上である。
したがって、図21Bの周辺画素の傾きのパターンは、線322で表されるパターン(以下、右上がりパターンと称する)に分類される。
図21Cのグラフの“同色−1”と“周辺点”との画素値の傾きは“0”であり、“周辺点”と“同色+1”との画素値の傾きの符号が“正”である。また、“周辺点”と“同色−1”との傾きを示す値の絶対値は、“0”であり、“周辺点”と“同色+1”との傾きを示す値の絶対値は、スレッショルド以上である。
したがって、図21Cの周辺画素の傾きのパターンは、線323で表されるパターン(以下、左底パターンと称する)に分類される。
図21Dのグラフの“同色−1”と“周辺点”との画素値の傾きは“0”であり、“周辺点”と“同色+1”との画素値の傾きの符号が“正”である。また、“周辺点”と“同色−1”との傾きを示す値の絶対値は、“0”であり、“周辺点”と“同色+1”との傾きを示す値の絶対値は、スレッショルド以上である。
したがって、図21Dの周辺画素の傾きのパターンは、線324で表されるパターン(以下、左屋根パターンと称する)に分類される。
図21Eのグラフの“同色−1”と“周辺点”との画素値の傾きの符号は“負”であり、“周辺点”と“同色+1”との画素値の傾きの符号が“負”である。また、“周辺点”と“同色−1”との傾きを示す値の絶対値は、スレッショルド以上であり、“周辺点”と“同色+1”との傾きを示す値の絶対値もスレッショルド以上である。
したがって、図21Eの周辺画素の傾きのパターンは、線325で表されるパターン(以下、左上がりパターンと称する)に分類される。
図21Fのグラフの“同色−1”と“周辺点”との画素値の傾きの符号は“負”であり、“周辺点”と“同色+1”との画素値の傾きは“0”である。また、“周辺点”と“同色−1”との傾きを示す値の絶対値は、スレッショルド以上であり、“周辺点”と“同色+1”との傾きを示す値の絶対値は、“0”である。
したがって、図21Fの傾きのパターンは、線326で表されるパターン(以下、右底パターンと称する)に分類される。
以上のように、周辺画素の傾きのパターンが分類される。なお、図20または図21のいずれのパターンにも分類されない場合、周辺画素の傾きのパターンは、該当パターン無しとされる。
このように、ステップS402において、孤立点検出部52は、周辺画素の傾きをパターンに分類する。
ステップS403において、孤立点検出部52は、周辺画素の傾きのパターンが、縦または斜めの線の画像におけるパターンの組み合わせの1つに該当するか否かを判定する。
図22は、1つのラインに1つの周辺画素が存在する場合の、縦の線の画像における周辺画素の傾きのパターン(の組み合わせ)を示す図である。
点線401は、候補周辺のラインであり、点線401の中の四角は、画像データに含まれる画素を示す。
1つのラインに1つの周辺画素が存在する場合の、縦の線の画像における周辺画素の傾きのパターンは、線301で示される逆V字パターンか、または、線302で示されるV型パターンである。
以下、図23乃至図26を参照して、1つのラインに複数の周辺画素が存在する場合の、斜めの線の画像における周辺画素の傾きのパターン(の組み合わせ)を説明する。
図23の点線411は、候補周辺のラインであり、点線411の中の四角は、画像データに含まれる画素を示す。
斜めの線の画像である場合、候補の周辺の1つのラインに2つの周辺画素が存在するとき、その周辺画素の傾きのパターンが、線301で示される逆V字型パターンとなる組み合わせがある。すなわち、候補の周辺のラインのいずれかの画素に逆V字型パターンが現れる場合が該当する。
斜めの線の画像である場合、候補の周辺の1つのラインに2つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第2の組み合わせは、点線412で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、右上がりのパターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、左上がりのパターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに2つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第3の組み合わせは、点線413で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、右上がりパターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、V型パターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに2つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第4の組み合わせは、点線414で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、V字型パターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、左上がりパターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに2つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第5の組み合わせは、点線415で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、V字型パターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、V字型パターンとなる組み合わせである。
図24の点線431は、候補の周辺のラインであり、点線431の中の四角は、画像データに含まれる画素を示す。
斜めの線の画像である場合、候補の周辺の1つのラインに2つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第6の組み合わせは、候補の周辺のラインのいずれかの画素における傾きのパターンが、線302で示されるV字型パターンとなる組み合わせがある。すなわち、候補の周辺のラインのいずれかの画素にV字型パターンが現れる場合が該当する。
斜めの線の画像である場合、候補の周辺の1つのラインに2つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第7の組み合わせは、点線432で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、左上がりパターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、右上がりパターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに2つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第8の組み合わせは、点線433で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、左上がりパターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、逆V字型パターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに2つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第9の組み合わせは、点線434で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、逆V字型パターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、右上がりパターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに2つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第10の組み合わせは、点線435で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、逆V字型パターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、逆V字型パターンとなる組み合わせである。
図25の点線451は、候補の周辺のラインであり、点線451の中の四角は、画像データに含まれる画素を示す。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第1の組み合わせは、候補の周辺のラインのいずれかの画素における傾きのパターンが、線301で示される逆V字型パターンとなる組み合わせである。すなわち、候補の周辺のラインのいずれかの画素に逆V字型パターンが現れる場合が該当する。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第2の組み合わせは、点線452で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、右上がりパターンであり、候補の周辺のラインの中央側の画素における傾きのパターンが、左上がりパターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、任意のパターンとなる組み合わせである。
図25および図26において、黒い四角は、傾きのパターンが、任意のパターンであることを示す。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第3の組み合わせは、点線453で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、右上がりパターンであり、候補の周辺のラインの中央側の画素における傾きのパターンが、V字型パターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、任意のパターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第4の組み合わせは、点線454で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、V字型パターンであり、候補の周辺のラインの中央側の画素における傾きのパターンが、左上がりパターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、任意のパターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第5の組み合わせは、点線455で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、V字型パターンであり、候補の周辺のラインの中央側の画素における傾きのパターンが、V字型パターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、任意のパターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第6の組み合わせは、点線456で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、任意のパターンであり、候補の周辺のラインの中央側の画素における傾きのパターンが、右上がりパターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、左上がりパターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第7の組み合わせは、点線457で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、任意のパターンであり、候補の周辺のラインの中央側の画素における傾きのパターンが、右上がりパターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、V字型パターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第8の組み合わせは、点線458で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、任意のパターンであり、候補の周辺のラインの中央側の画素における傾きのパターンが、V字型パターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、左上がりパターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第9の組み合わせは、点線459で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、逆V字型パターンであり、候補の周辺のラインの中央側の画素における傾きのパターンが、逆V字型パターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、任意のパターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第10の組み合わせは、点線460で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、右上がりパターンであり、候補の周辺のラインの中央側の画素における傾きのパターンが、平らパターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、左上がりパターンとなる組み合わせである。
ここで、平らパターンとは、傾きを示す値の絶対値のいずれもスレッショルド未満であるパターンである。図25および図26において、横線は、平らパターンを示す。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第11の組み合わせは、点線461で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、右上がりパターンであり、候補の周辺のラインの中央側の画素における傾きのパターンが、平らパターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、V字型パターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第12の組み合わせは、点線462で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、V字型パターンであり、候補の周辺のラインの中央側の画素における傾きのパターンが、平らパターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、左上がりパターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第13の組み合わせは、点線463で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、V字型パターンであり、候補の周辺のラインの中央側の画素における傾きのパターンが、平らパターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、V字型パターンとなる組み合わせである。
図26の点線471は、候補周辺のラインであり、点線471の中の四角は、画像データにふくまれる画素を示す。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第14の組み合わせは、候補の周辺のラインのいずれかの画素における傾きのパターンが、線302で示されるV字型パターンとなる組み合わせである。すなわち、候補周辺のラインのいずれかの画素にV字型パターンが現れる場合が該当する。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第15の組み合わせは、点線472で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、左上がりパターンであり、候補の周辺のラインの中央側の画素における傾きのパターンが、右上がりパターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、任意のパターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第16の組み合わせは、点線473で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、左上がりパターンであり、候補の周辺のラインの中央側の画素における傾きのパターンが、逆V字型パターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、任意のパターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第17の組み合わせは、点線474で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、逆V字型パターンであり、候補の周辺のラインの中央側の画素における傾きのパターンが、右上がりパターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、任意のパターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第18の組み合わせは、点線475で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、逆V字型パターンであり、候補の周辺のラインの中央側の画素における傾きのパターンが、逆V字型パターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、任意のパターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第19の組み合わせは、点線476で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、任意のパターンであり、候補の周辺のラインの中央側の画素における傾きのパターンが、左上がりパターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、右上がりパターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第20の組み合わせは、点線477で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、任意のパターンであり、候補の周辺のラインの中央側の画素における傾きのパターンが、左上がりパターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、逆V字型パターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第21の組み合わせは、点線478で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、任意のパターンであり、候補の周辺のラインの中央側の画素における傾きのパターンが、左上がりパターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、逆V字型パターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第22の組み合わせは、点線479で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、V字型パターンであり、候補の周辺のラインの中央側の画素における傾きのパターンが、V字型パターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、任意のパターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第23の組み合わせは、点線480で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、左上がりパターンであり、候補の周辺のラインの中央側の画素における傾きのパターンが、平らパターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、右上がりパターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第24の組み合わせは、点線481で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、左上がりパターンであり、候補の周辺のラインの中央側の画素における傾きのパターンが、平らパターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、逆V字型パターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第25の組み合わせは、点線482で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、逆V字型パターンであり、候補の周辺のラインの中央側の画素における傾きのパターンが、平らパターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、右上がりパターンとなる組み合わせである。
斜めの線の画像である場合、候補の周辺の1つのラインに3つの周辺画素が存在するとき、その周辺画素の傾きのパターンの第26の組み合わせは、点線483で示されるように、候補の周辺のラインの左側の画素における傾きのパターンが、逆V字型パターンであり、候補の周辺のラインの中央側の画素における傾きのパターンが、平らパターンであり、候補の周辺のラインの右側の画素における傾きのパターンが、逆V字型パターンとなる組み合わせである。
ステップS403において、孤立点検出部52は、周辺画素の傾きの傾きのパターンが、図22乃至図26を参照して説明した、縦または斜めの線の画像におけるパターンの組み合わせの1つに該当するか否かを判定する。
ステップS403において、周辺画素の傾きパターンが、縦または斜めの線の画像におけるパターンの組み合わせの1つの該当しないと判定された場合、縦または斜めの線の画像が撮像されていないので、ステップS404に進み、孤立点検出部52は、候補を孤立点として検出して、処理は終了する。
一方、ステップS403において、周辺画素の傾きのパターンが、縦または斜めの線の画像におけるパターンの組み合わせの1つの該当すると判定された場合、縦または斜めの線の画像が撮像されているので、ステップS404はスキップされ、候補は孤立点とされずに、処理は終了する。
次に、図11のステップS204に対応する、画素欠陥と推定される孤立点の検出の処理の詳細について、図27のフローチャートを参照して説明する。
ステップS501において、孤立点推定部53は、ステップS203の孤立点の検出の処理により検出された孤立点に隣接する検出された孤立点の色と異なる色の画素が、孤立点であるか否かを判定する。
ステップS501において、孤立点の検出の処理により検出された孤立点に隣接する、検出された孤立点の色と異なる色の画素が、孤立点ではないと判定された場合、ステップS502に進み、孤立点推定部53は、判定された孤立点を画素欠陥と推定される孤立点として検出し、処理は終了する。
一方、ステップS501において、孤立点の検出の処理により検出された孤立点に隣接する検出された孤立点の色と異なる色の画素が、孤立点であると判定された場合、孤立点推定部53は、判定された孤立点を画素欠陥と推定される孤立点としては検出せず、ステップS502の処理はスキップされ、処理は終了する。
ここで、ステップS501において、画素欠陥と推定される孤立点としては検出されないパターンについて、図28を参照して説明する。
図28は、隣接する異なる色の画素が共に孤立点となるパターンを示す図である。
図28で示される画素の配列は、図1乃至図3を参照して説明した、Bayer配列の画素の配列である。
図28の“G”の符号が付された斜線の円柱は、Green画素を示す。また、“B”の符号が付されたひし形の模様の円柱は、Blue画素を示す。ただし、図28において、1行のBlue画素だけが、示されている。
Green画素501は、ステップS202の孤立点の候補およびステップS203の孤立点の検出の処理により、孤立点として検出された画素である。同様に、Blue画素511も孤立点として検出された画素である。
この場合、1画素または2画素の大きさの画像オブジェクトを含む画像データであると推定され、Green画素501およびBlue画素511は欠陥画素ではないと推定される。
したがって、図28で示される例において、隣接するGreen画素501およびBlue画素511は、それぞれの色で単独に検出した場合には、孤立点としての性質を有するが、隣接する異なる色の画素が共に孤立点となっているので、画素欠陥と推定される孤立点としては検出されない。
すなわち、図28のGreen画素501およびBlue画素511は、ステップS502の処理において、画素欠陥と推定される孤立点としては検出されない。
このように、検出しようとしている画素に隣接する画素であって、異なる色の画素の傾きを利用することにより、孤立点から、より正確に、画素欠陥と推定される孤立点を検出することができる。
次に、図8のステップS6に対応する、画素欠陥補正の処理の詳細について、図29のフローチャートを参照して説明する。
ステップS601において、補正部32は、ラインバッファ31から供給される画像データを読み込む。
ステップS602において、補正部32は、読み込んだ画像データの画素データに画素欠陥を示す情報が挿入されているか否かを判定する。
ステップS602において、読み込んだ画像データの画素データに画素欠陥を示す情報が挿入されていると判定された場合、ステップS603に進み、補正部32は、画素欠陥を示すマークが挿入されている画素(画素データ)を補正する。補正部32は、補正した画素を含む画像データを画像処理部33に供給して、処理は終了する。
ステップS602において、読み込んだ画像データの画素データに画素欠陥を示す情報が挿入されていないと判定された場合、画素欠陥は無いので、ステップS603は、スキップされ、画素データを補正しない。補正部32は、画像データを画像処理部33に供給して、処理は終了する。
ここで、補正の処理は、例えば、隣接する画素の画素値の平均値を算出し、その平均値を孤立点の画素値として置換してもよいし、隣接する画素の画素値を、そのまま孤立点の画素値として置換してもよい。
また、補正処理の方法は、上述した例に限定されるものではない。
このように、補正部32が画素欠陥を示すマークが挿入されている画素を補正することで、画素欠陥を動的に検出することが可能となる。
図30は、本発明に係る撮像装置1の一実施の形態の他の構成を示すブロック図である。図5に示す場合と同様の部分には、同一の符号が付してあり、その説明は適宜省略する。
画素欠陥検出部22は、傾き抽出部41、画素欠陥判定部42、およびスレッショルド設定部601を含むように構成される。
さらに、スレッショルド設定部601は、スレッショルド調整部621、上限下限設定部622、および上限下限調整部623を含む。
スレッショルド設定部601は、スレッショルドの値を設定し、設定したスレッショルドの値を画素欠陥判定部42に供給する。画素欠陥判定部42は、スレッショルド設定部601から供給されたスレッショルドを基に、孤立点を検出する。
スレッショルド調整部621は、周辺画素の傾きを示す値を基に、スレッショルドを調整し、調整したスレッショルドを画素欠陥判定部42の孤立点候補検出部51に供給する。
または、スレッショルド調整部621は、上限下限設定部622により設定される孤立点の検出点数の上限値および下限値、および孤立点の検出点数を基に、スレッショルドを調整し、調整したスレッショルドを画素欠陥判定部42の孤立点候補検出部51に供給する。
上限下限設定部622は、孤立点の検出点数の上限値および下限値を設定する。
上限下限調整部623は、スレッショルド調整部621により調整されたスレッショルドを基に、孤立点の検出点数を基に、検出点数の上限値および下限値を調整する。
図31は、周辺画素の傾きを基に調整される、スレッショルドの調整の例を示すグラフである。
図31のグラフの縦軸は、検出スレッショルドの値を示し、縦軸の値が大きいほどスレッショルドの値が大きくなることを示す。横軸は、周辺画素の高周波成分を示し、横軸の値が大きいほど周辺画素の高周波成分が大きくなることを示す。
ここで、検出スレッショルドの値がAとなる場合をスレッショルドA、検出スレッショルドの値がBとなる場合をスレッショルドB、および検出スレッショルドの値がCとなる場合をスレッショルドCと称する。
また、高周波成分とは、色が急激に変化する画像データをいい、例えば、ぎざぎざの画像に見える。
スレッショルドAは、上限下限設定部622により設定される基準スレッショルドである。
スレッショルドBおよびスレッショルドCは、スレッショルドAを基に設定される。例えば、スレッショルドBは、スレッショルドAの150%の値として設定され、スレッショルドCは、スレッショルドAの70%の値として設定される。
ここで、スレッショルドをスレッショルドA、スレッショルドB、スレッショルドCの三段階とし、スレッショルドBは、スレッショルドAの150%の値、スレッショルドCは、スレッショルドAの70%として説明したが、上述した例に限定されるものではない。
スレッショルド調整部621は、周辺画素の高周波成分を基に、スレッショルドA、スレッショルドB、またはスレッショルドCの3段階にスレッショルドを調整することで、画素欠陥判定部42において、最適なスレッショルドで孤立点の検出をさせることができる。
例えば、周辺画素に含まれる高周波成分が多い場合、画像に含まれる高周波成分により、画素の孤立点として検出される可能性が高くなり、基準スレッショルドで孤立点を検出すると、画素欠陥ではない画素を含む、より多くの孤立点が検出されてしまう。そこで、周辺画素に含まれる高周波成分が多い場合、スレッショルド調整部621は、スレッショルドをスレッショルドBに調整することで、画素欠陥ではない画素が孤立点として検出されにくくして、より適正な数の孤立点を検出できるようにする。すなわち、周辺画素にスレッショルドAを超えるような傾きを示す値が多く検出された場合、孤立点も同様の特徴となる可能性があるので、スレッショルドAからスレッショルドBにスレッショルドの値を上げることで、孤立点を検出する感度を下げて、誤検出を回避することができる。
逆に、周辺画素に含まれる高周波成分が少ない場合、画像がいわゆる平坦なので、スレッショルドを小さくしても、誤検出が少なく、画素欠陥である孤立点をより正確に検出することができるようになる。そこで、周辺画素に含まれる高周波成分が少ない場合、スレッショルド調整部621は、検出スレッショルドをスレッショルドCに調整することで、画素欠陥である孤立点をより正確に検出できるようにする。すなわち、周辺画素にスレッショルドAを超えるような傾きを示す値が存在しないまたは少ない場合、撮像された画像データには、孤立点となりうる画素が少ないため正確な検出が容易になるので、スレッショルドAからスレッショルドCにスレッショルドの値を下げることで、孤立点の感度を上げて、画素欠陥の検出を容易にすることができる。
以上のような、スレッショルドの調整は、周辺の同色の画素を基に、孤立点の検出する処理において実行される。
図32は、スレッショルドを調整する場合の、画素欠陥検出の処理の詳細を説明するフローチャートである。
ステップS701の処理は、図11におけるステップS201の処理と同様であり、その説明は省略する。
ステップS702において、画素欠陥判定部42の孤立点候補検出部51は、ステップS202の処理と同様に、基準スレッショルドおよび傾き抽出部41から供給される画素の特徴量を基に、孤立点の候補を検出する。例えば、ステップS702において、孤立点候補検出部51は、図31のスレッショルドAおよび傾き抽出部41から供給される画素の特徴量を基に、孤立点の候補を検出する。
ステップS703において、画素欠陥判定部42の孤立点検出部52は、ステップS203の処理と同様に、基準スレッショルドおよび傾き抽出部41から供給される画素の特徴量、および孤立点候補検出部51から供給される孤立点の候補を基に、孤立点を検出する。例えば、ステップS703において、孤立点検出部52は、図31のスレッショルドA、傾き抽出部41から供給される画素の特徴量、および孤立点候補検出部51から供給される孤立点の候補を基に、孤立点を検出する。
ステップS704において、孤立点検出部52は、周辺画素の高周波成分が、予め定めた第1の閾値より多い、または第2の閾値より少ないか否かを判定する。
例えば、ステップS704において、孤立点検出部52は、傾きのパターンが、V字型パターンまたは逆V字型パターンに分類される周辺画素の数を算出して、算出された周辺画素の数が、予め定めた第1の閾値より多い、または第2の閾値より少ないか否かを判定する。
また、ステップS704において、孤立点検出部52は、傾きのパターンがV字型パターン、逆V字型パターン、右上がりパターン、または左上がりパターンに分類される周辺画素の数を算出して、算出された周辺画素の数が、予め定めた第1の閾値より多い、または第2の閾値より少ないか否かを判定する。
なお、第1の閾値および第2の閾値は、任意に設定することができる。
ステップS704において、周辺画素の高周波成分が、予め定めた第1の閾値より多いか、または第2の閾値より少ないと判定された場合、ステップS705に進み、スレッショルド調整部621は、スレッショルドの値を調整する。
ここで、特定の傾きのパターンの周辺画素の数が多かった場合、スレッショルド調整部621は、例えば、図31のスレッショルドAからスレッショルドBにスレッショルドの値を調整する。この場合、孤立点の感度が下がるので、誤検出を回避することができる。
また、周辺画素の検出数が存在しないまたは少ない場合、スレッショルド調整部621は、例えば、図31のスレッショルドAからスレッショルドCにスレッショルドの値を調整する。
この場合、孤立点の感度が上がるので、画素欠陥より正確に検出することができる。
ステップS706において、画素欠陥判定部42の孤立点候補検出部51は、調整されたスレッショルドおよび画素の特徴量を基に、孤立点の候補を検出する。ステップS707において、画素欠陥判定部42の孤立点検出部52は、調整されたスレッショルド、画素の特徴量、ステップS706において検出された孤立点の候補を基に、孤立点を検出し、ステップS708に進む。
一方、ステップS704において、周辺画素の高周波成分が、予め定めた第1の閾値以下であり、かつ第2の閾値以上であると判定された場合、手続きは、ステップS708に進む。この場合、図11の画素欠陥検出の処理と同様の処理となる。
また、ステップS708およびステップS709の処理のそれぞれは、図11におけるステップS204およびステップS205の処理のそれぞれと同様であり、その説明は省略する。
このように、周辺画素の特徴によりスレッショルドを調整して、再度孤立点を検出することで、孤立点をより正確に検出することができる。
スレッショルドは、周辺画素の特徴からその値を調整するだけでなく、1つのフレームにおける孤立点の検出点数から、次のフレームにおけるその値を調整することができる。
次に、1つのフレームにおける孤立点の検出点数から、次のフレームにおけるスレッショルドを調整する本発明の実施の形態について説明する。
図33は、孤立点の検出点数と検出スレッショルドとの関係を示すグラフである。
図33のグラフの縦軸は、孤立点の検出点数を示し、縦軸の値が大きいほど、より多い孤立点の検出点数を示す。横軸は、スレッショルドの値を示し、横軸の値が大きいほど、より大きいスレッショルドの値を示す。
図中の曲線は、画像データの1フレームにおける孤立点の検出点数とスレッショルドとの関係を示す曲線である。画像データの1フレームにおける孤立点の検出点数とスレッショルドとの関係を示す曲線は、任意に定めることができる。
検出点数上限および検出点数下限を定めることにより、画像データの1フレームにおける孤立点の検出点数とスレッショルドとの関係を示す曲線から、スレッショルドの取り得る範囲を定めることができる。
スレッショルドの取り得る範囲を定め、この範囲においてスレッショルドを決定するようにしたのは、固体撮像素子においては、固体撮像素子自身の温度の変動または印可される電圧の変動などによって、後発的に画素欠陥が現れるので、ある程度の誤検出を、避けることはできないが、これにより数が変化する画素欠陥をより正確に、より確実に検出できるようにするためである。
また、レンズおよびローパスフィルタを介して撮像素子によって撮像された実際の画像に孤立点が存在する場合、実際の画像が欠陥画祖にかぶってしまい、孤立点としての特徴を失ってしまう場合なども、誤検出が生じてしまうが、スレッショルドを決定するようにすれば、画素欠陥をより正確に、より確実に検出できるようになる。
例えば、検出点数上限を“50”と設定し、検出点数下限を“20”と設定して、スレッショルドAを設定した場合、スレッショルドAを設定後、実際に撮像した1フレームの画像データにおいて検出点数が“80”だったとき、検出点数が検出点数上限よりも多い値であったので、曲線をスレッショルドの値を大きくするようにすることで、スレッショルドをより大きな値に調整して、次のフレームの画像データにおける検出点数を検出点数上限“50”および検出点数下限“20”に近づけることができる。
また、例えば、検出点数上限を“50”と設定し、検出点数下限を“20”と設定して、スレッショルドAを設定した場合、スレッショルドAを設定後、実際に撮像した1フレームの画像データにおいて検出点数が“10”だったとき、検出点数が検出点数下限よりも少ない値であったので、曲線をスレッショルドの値を小さくするようにすることで、スレッショルドをより小さな値に調整して、次のフレームにの画像データにおける検出点数を検出点数上限“50”および検出点数下限“20”に近づけることができる。
ここで、検出点数の上限および下限の範囲に収まるように制御した検出スレッショルドが、図31を参照して説明した基準スレッショルドである、図31のスレッショルドAとなる。さらに、上述したように、図31のスレッショルドBおよび図31のスレッショルドCが、図31のスレッショルドAを基に設定され、この3段階のスレッショルドを選択することで、最適なスレッショルドで孤立点の検出をすることができる。
また、1回目の撮像の場合には、スレッショルドの値を決定することができないので、初期値が予め定められおり、2回目以降の撮像の場合には、1回前に撮像した画像データを基に、スレッショルドの値が設定される。
このように、1フレームの画素データに含まれる孤立点の検出点数を基に、孤立点の検出点数が上限および下限に収まるように、スレッショルドを調整し、最適なスレッショルドで孤立点の検出をするので、より確実に、より正確に画素欠陥を検出できる。
図34は、1つのフレームにおける孤立点の検出点数から、次のフレームにおけるスレッショルドを調整する場合の、撮像素子の動的欠陥検出の処理を説明するのフローチャートである。
ステップS801において、上限下限設定部622は、孤立点の検出点数の上限値および下限値を設定する。
ステップS802乃至ステップS806の処理のそれぞれは、図8におけるステップS1乃至ステップS5の処理のそれぞれと同様であり、その説明は省略する。
ステップS807において、スレッショルド調整部621は、1フレームの画像データにおいて検出された孤立点の検出点数が、上限値を超えているか、または下限値未満であるか否かを判定する。
ステップS807において、1フレームの画像データにおいて検出された孤立点の検出点数が、上限値を超えているか、または下限値未満であるかと判定された場合、ステップS808に進み、スレッショルド調整部621は、1フレームの画像データにおいて検出された孤立点の検出点数を基に、スレッショルドを調整する。その後、手続は、ステップS809に進む。
例えば、1フレームの画像データにおいて検出された孤立点の検出点数が上限値を超えていると判定された場合、ステップS808において、スレッショルド調整部621は、より少ない孤立点が検出されるように、スレッショルドの値を大きくするように、スレッショルドを調整する。
また、例えば、1フレームの画像データにおいて検出された孤立点の検出数が、下限値未満であると判定された場合、ステップS808において、スレッショルド調整部621は、より多くの孤立点が検出されるように、スレッショルドの値を小さくするように、スレッショルドを調整する。
ステップS807において、1フレームの画像データにおいて検出された孤立点の検出点数が、上限値以下であり、かつ下限値以上であると判定された場合、スレッショルドを調整する必要はないので、ステップS808の処理はスキップされ、手続はきは、ステップS809に進む。
ステップS809乃至ステップS811の処理のそれぞれは、図8におけるステップS6乃至ステップS8の処理のそれぞれと同様であり、その説明は省略する。
以上のように、1つのフレームにおける孤立点の検出から、次のフレームにおけるスレッショルドを調整することにより、後発的に画素欠陥の数が変化した場合などであっても、より正確に、より確実に、画素欠陥としての孤立点を検出することができるようになる。
さらに、1つのフレームにおける孤立点の検出点数によって調整されたスレッショルドから、次のフレームにおける検出点数上限および検出点数下限の値を調整することができる。
次に、1つのフレームにおける孤立点の検出点数によって調整されたスレッショルドから、次のフレームにおける検出点数上限および検出点数下限の値を調整する本発明の実施の形態について説明する。
図35は、検出点数の上限値および下限値の調整を説明するグラフである。
図35のグラフの縦軸は、孤立点の検出点数を示し、縦軸の値が大きいほど、より多い数の検出点数の値を示す。横軸は、スレッショルドの値を示し、横軸の値が大きいほど、より大きいスレッショルドの値を示す。
図35中のケース1検出点数上限およびケース1検出点数下限は、対となる上限および下限であり、ケース2検出点数上限およびケース2検出点数下限は、対となる上限および下限であり、ケース3検出点数上限およびケース3検出点数下限は、対となる上限および下限である。
また、画像データの1フレームにおける孤立点の検出点数とスレッショルドとの関係を示す、図中のケース1、ケース2、およびケース3の3本の曲線は、個々に任意に定めることができる。
例えば、画像データの1フレームにおける孤立点の検出点数が、想定した値より多すぎる場合、スレッショルドの値を大きくするように制御することで、想定した値に近づけることができるが、設定されている検出点数の上限値および下限値を基に、スレッショルドの値を大きくしても、スレッショルドの値を充分大きくすることができず、検出された孤立点に、画素欠陥ではない正常な画素が多数ふくまれてしまうことが考えられる。
また、例えば、画像データの1フレームにおける孤立点の検出点数が、想定した値よりも少なすぎる場合、スレッショルドの値を小さくするように制御することで、想定した値に近づけることができるが、設定されている検出点数の上限値および下限値を基に、スレッショルドの値を小さくしても、スレッショルドの値を充分小さくすることができず、本来検出されなければならない検出点が見逃されていることが考えられる。
このような、見逃しおよび誤検出に対応するため、検出点数の上限値および下限値を変更する。
画像データの1フレームにおける孤立点の検出点数が、想定した検出点の上限値および下限値である、ケース1検出点数上限およびケース1検出点数下限の範囲内である場合、ケース1の曲線を基にスレッショルドが定められ、ケース1の曲線上でスレッショルドが設定され、スレッショルドが大きく変化しないので、検出点の上限値および下限値は、変更されず、ケース1検出点数上限およびケース1検出点数下限のままとされる。
次に、画像データの1フレームにおける孤立点の検出点数が、想定した値より少なすぎる場合について説明する。画像データの1フレームにおける孤立点の検出点数が、想定した検出点数の下限値である、ケース1検出点数下限未満である場合、ケース3の曲線を基にスレッショルドが定められる。ケース3の曲線を基に定められたスレッショルドが、予め定めた第1の閾値より小さい場合、または前回のスレッショルドとケース3の曲線を基に定められたスレッショルドとの差が予め定めた第2の閾値より大きい場合、スレッショルドの値が充分小さくされていないと判定され、検出点の上限値および下限値は、ケース3検出点数上限およびケース3検出点数下限に変更される。
変更されたケース3検出点数上限およびケース3検出点数下限、並びに、ケース3の曲線を基に、再度、スレッショルドが調整される。
このようにすることで、スレッショルドの値を充分小さくすることができ、本来検出されなければならない検出点の見逃しを防止して、画素欠陥としての孤立点を確実に検出することができるようになる。
次に、画像データの1フレームにおける孤立点の検出点数が、想定した値より多すぎる場合について説明する。画像データの1フレームにおける孤立点の検出点数が想定した検出点数の上限値である、ケース1検出点数上限を超える場合、ケース2の曲線を基にスレッショルドが定められる。ケース2の曲線を基に定められたスレッショルドが、予め定められた第3の閾値より大きい場合、または前回のスレッショルドとケース2の曲線を基に定められたスレッショルドとの差が予め定めた第4の閾値より大きい場合、スレッショルドの値が充分大きくされていないと判定され、検出点の上限値および下限値は、ケース2検出上限およびケース2検出点数下限に変更される。
変更されたケース2検出点数上限およびケース2検出点数下限、並びに、ケース2の曲線を基に、再度、スレッショルドが調整される。
このようにすることで、スレッショルドの値を充分大きくすることができ、画素欠陥ではない正常な画素が孤立点として検出されてしまうことを防止して、画素欠陥としての孤立点を確実に検出することができるようになる。
このように、調整されたスレッショルドを基に、さらに、検出点数の上限値および下限値の調整をすることで、より正確に、より確実に、画素欠陥としての孤立点を検出することができる。
図36は、撮像素子の動的欠陥検出の処理を説明するフローチャートである。
ステップS901乃至ステップS908の処理のそれぞれは、図34におけるステップS801乃至ステップS808の処理のそれぞれと同様であり、その説明は省略する。
ステップS909において、上限下限調整部623は、ステップS908の処理で調整されたスレッショルドが、第1の閾値を超えているか、または第1の閾値より小さい第2の閾値未満であるか否かを判定する。
ステップS909において、調整されたスレッショルドが、第1の閾値を超えているか、または第1の閾値より小さい第2の閾値未満であるか否かを判定する。
ステップS909において、調整されたスレッショルドが、第1の閾値を超えているか、または第1の閾値より小さい第2の閾値未満であると判定された場合、スレッショルドが充分に大きくされていないか、またはスレッショルドが充分に小さくされていないので、ステップS910に進み、上限下限調整部623は、検出点数の上限値および下限値を調整する。
ステップS911において、スレッショルド調整部621は、調整された検出点数の上限値および下限値を基に、スレッショルドを調整して、ステップS912に進む。
ステップS912乃至ステップS914の処理のそれぞれは、図34におけるステップS809乃至ステップS811の処理のそれぞれと同様であり、その説明は省略する。
このように、調整されたスレッショルドを基に、さらに、検出点数の上限値および下限値の調整することで、より正確に、より確実に、画素欠陥としての孤立点を検出することができる。
次に、画素の孤立点としての検出回数を基に、画素を画素欠陥とする本発明の実施の形態について説明する。
図37は、本発明に係る撮像装置1の一実施の形態の他の構成を示すブロック図である。図5に示す場合と同様の部分には、同一の符号が付してあり、その説明は適宜省略する。
画素欠陥検出部22は、傾き抽出部41、画素欠陥判定部42、およびカウンタ701を含むように構成される。
図37の画素欠陥判定部42は、傾き抽出部41から供給された画像データに含まれる画素の傾きを基に、フレーム毎に、画素の孤立点を判定をし、孤立点であると判定された画素の位置を示す座標をカウンタ701に供給する。
カウンタ701は、画素欠陥判定部42から供給された、フレーム毎の、孤立点であると判定された画素の位置を示す座標を基に、画素毎に、その画素の座標に対応させて、孤立点として検出された回数である検出回数、および孤立点として検出されなかった回数である消失回数を算出する。カウンタ701は、図37の画素欠陥判定部42を介して、算出した検出回数および消失回数を画素欠陥情報記憶部23に供給する。
画素欠陥情報記憶部23は、座標に対応する、検出回数および消失回数を検出回数テーブルとして記憶する。
図37の画素欠陥マーク部21は、画素欠陥情報記憶部23の検出回数テーブルに記憶されている、画素毎の検出回数が所定の閾値以上であるか否かを判定し、検出回数が閾値以上であると判定された場合、検出回数が閾値以上であると判定された画素であると確定する。図37の画素欠陥マーク部21は、画像データの画素データのうち、欠陥画素であると確定した画素の画素データに欠陥を示す情報を挿入し、欠陥を示す情報を挿入した画像データをラインバッファ31に供給する。
なお、検出回数テーブルは、画素欠陥判定部42に記憶するようにしてもよく、また、カウンタ701に記憶するようにしてもよい。
さらに、カウンタ701は、検出回数算出部721、消失回数算出部722、および回数設定部723を含む。
検出回数算出部721は、画素欠陥判定部42から供給された、フレーム毎の、孤立点であると判定された画素の位置を示す座標を基に、画素欠陥情報記憶部23から取得した検出回数テーブルに含まれる、画素が孤立点として検出された回数である検出回数をインクリメント(1を加算)することにより、検出回数を算出する。
消失回数算出部722は、画素欠陥判定部42から供給された、フレーム毎の、孤立点であると判定された画素の位置を示す座標を基に、画素欠陥情報記憶部23から取得した検出回数テーブルに含まれる、画素が孤立点として検出された回数である消失回数をインクリメント(1を加算)することにより、消失回数を算出する。
回数設定部723は、検出回数と消失回数との関係を基に、画素欠陥情報記憶部23から取得した検出回数テーブルに含まれる検出回数または消失回数に初期値を設定する。
図38は、孤立点の検出回数テーブルの例を示す図である。
図38で示される孤立点の検出回数テーブルの例において、“画素の位置を示す座標”と共に、座標に対応させて、“検出回数”および“消失回数”が配置される。すなわち、検出回数テーブルには、画素欠陥判定部42により孤立点であると判定された画素の座標、検出回数、および消失回数が格納されている。
例えば、画素の位置を特定する“(x1,y1)”である座標に対応して、“5”である検出回数、および“0”である消失回数が記憶されている。また、“(x2,y2)”である座標に対応して、“1”である検出回数、および“1”である消失回数が記憶されている。また、“(x3,y3)”である座標に対応して、“5”である検出回数、および“2”である消失回数が記憶されている。さらに、“(x4,y4)”である座標に対応して、“1”である検出回数、および“0”である消失回数が記憶されている。
以上の検出回数テーブルが画素欠陥記情報憶部23に記憶される。
図39は、検出回数テーブルにおける検出回数および消失回数の算出、並びに検出回数および消失回数への初期値の設定を説明する図である。
図39の上段は、検出回数の変化を示すグラフ(検出回数グラフ)であり、図39の下段は、消失回数の変化を示すグラフ(消失回数グラフ)である。
検出回数グラフの縦軸は、検出回数を示し、横軸は、撮像するフレームの枚数(以下、撮像枚数と称する)を示しており、太い実線は、検出回数の値を示す。また、消失回数グラフの縦軸は、消失回数を示し、横軸は、撮像枚数を示しており、細い実線は、消失回数の値を示す。
また、図中の一点鎖線は、画素欠陥を確定するための閾値(以下、欠陥確定閾値と称する)を示し、図中の二点鎖線は、検出回数を初期値にするための閾値(以下、欠陥削除閾値と称する)を示す。
例えば、画素確定閾値には、5が設定され、欠陥削除閾値には、3が設定される。なお、欠陥確定閾値または欠陥削除閾値は、任意の値とすることができる。
以下、ある画素の検出回数および消失回数の増減について、検出回数および消失回数が、共に0である状態から、撮像枚数を増加させながら説明する。
1回目および2回目の撮像において、この画素は、孤立点として検出されていないので、検出回数および消失回数は、0のままである。
3回目の撮像において、この画素が孤立点として検出されたため、検出回数に1が加算されて、検出回数は1となる。
4回目の撮像において、この画素が孤立点として検出されたため、検出回数に1がさらに加算されて、検出回数は2となる。
5回目の撮像において、この画素が孤立点として検出されなかったため、検出回数は2とされ、消失回数に1が加算されて、消失回数は1となる。
6回目の撮像において、この画素が孤立点として検出されなかったため、検出回数は2のままとされ、消失回数に1がさらに加算されて、消失回数は2となる。
7回目の撮像において、この画素が孤立点として検出されたため、検出回数に1がさらに加算されて、検出回数は3となり、線751で示すように、消失回数に初期値が設定されて、消失回数は0となる。
8回目の撮像において、この画素が孤立点として検出されたため、検出回数に1がさらに加算されて、検出回数は4となる。
9回目の撮像において、この画素が孤立点として検出されたため、検出回数に1が加算されて、検出回数は5となる。ここで、上述したように、欠陥確定閾値には、5が設定されており、検出回数が欠陥確定閾値以上になったので、この画素は、画素欠陥であると確定され、9回目の撮像において、初めて実際にこの画素の補正が実行される。
さらに、10回目の撮像において、この画素が孤立点として検出されなかったため、検出回数は5のままとされ、消失回数に1が加算されて、消失回数は1となる。また、検出回数は欠陥確定閾値以上なので、10回目の撮像においてもこの画素の補正が実行される。
11回目の撮像において、この画素が孤立点として検出されなかったため、検出回数は5のままとされ、消失回数に1がさらに加算されて、消失回数は2となる。また、検出回数は、欠陥確定閾値以上なので、11回目の撮像においてもこの画素の補正が実行される。
12回目の撮像において、この画素が孤立点として検出されなかったため、検出回数は5とされ、消失回数に1がさらに加算され、消失回数に1がさらに加算されて、消失回数は3となる。また、検出回数は欠陥確定閾値以上なので、12回目の撮像においてもこの画素の補正が実行されるが、欠陥削除閾値には3が設定されており、消失回数が欠陥削除閾値以上になったので、線752に示すように、検出回数および消失回数に初期値が設定され、検出回数および消失回数は0となる。
図40は、画素の孤立点としての検出回数を基に、画素を画素欠陥とする場合の、画素欠陥検出の処理を説明するフローチャートである。
ステップS1001乃至ステップS1004の処理のそれぞれは、図11におけるステップS201乃至ステップS204の処理のそれぞれと同様であり、その説明は省略する。
ステップS1005において、カウンタ701は、ステップS1001乃至ステップS1004の処理によって孤立点が検出された場合、画素欠陥情報記憶部23から検出回数テーブルを読み出す。
ステップS1006において、カウンタ701は、検出回数テーブルを更新する、カウントの処理を実行する。カウントの処理の詳細は後述する。
ステップS1007において、カウンタ701は、座標、検出回数、および消失回数を含む検出回数テーブルを画素欠陥情報記憶部23に供給し、画素欠陥情報記憶部23は、画素欠陥判定部42から供給された座標、検出回数、および消失回数を含む検出回数テーブルを記憶して、処理は終了する。
図41は、画素毎に実行される、カウントの処理の詳細を説明するフローチャートである。
ステップS1101において、カウンタ701は、画素欠陥判定部42から供給された孤立点を示す座標を基に、ステップS1004の処理において、画素が孤立点として検出されたか否かを判定する。
ステップS1101において、画素が孤立点として検出されたと判定された場合、ステップS1102に進み、検出回数算出部721は、検出回数テーブルの、画素の座標に対応する検出回数に1を加算する。
ステップS1103において、消失回数算出部722は、検出回数テーブルの、画素の座標に対応する消失回数に初期値を設定して、処理は終了する。
一方、ステップS1101において、孤立点として検出されないと判定された場合、ステップS1104に進み、消失回数算出部722は、画素の座標に対応する消失回数に1を加算する。
ステップS1105において、回数設定部723は、画素の座標に対応する消失回数が欠陥削除閾値以上であるか否かを判定する。
ステップS1105において、消失回数が欠陥削除閾値以上であると判定された場合、ステップS1106に進み、回数設定部723は、検出回数および消失回数に、例えば、0である初期値を設定し、処理は終了する。
ステップS1105において、消失回数が欠陥削除閾値以上でないと判定された場合、ステップS1106の処理はスキップされ、処理は終了する。
以上のようにして、カウントした検出回数および消失回数は、画素欠陥判定の処理の判定の条件として使用する。以下、この場合の画素欠陥判定の処理を説明する。
図42は、画素欠陥判定の処理を説明するフローチャートである。
ステップS1201において、画素欠陥マーク部21は、画素欠陥情報記憶部23に記憶されている孤立点の検出回数テーブルを読み出す。
ここで、検出回数テーブルとは、図38を参照して説明した、孤立点の座標、検出回数、および消失回数を含むデータである。
例えば、画素欠陥マーク部21は、画素欠陥情報記憶部23に記憶されている検出回数テーブルをすべて読み出し、一時的に記憶するバッファなどに検出回数テーブルを記憶し、その記憶した検出回数テーブルを基に、後述するステップS1202の処理を実行する。
また、検出回数テーブルの読み出しの処理は、上述した例に限定されるものではない。例えば、検出回数テーブルを画素欠陥情報記憶部23から順次読み出して、後述するステップS1202の処理を実行するようにしてもよい。
ステップS1202において、画素欠陥マーク部21は、画素欠陥情報記憶部23から読み出した検出回数テーブルを基に、検出回数テーブルに座標が記憶され、かつ座標に対応する検出回数が欠陥確定閾値以上であるか否か判定する。
ステップS1202において、検出回数テーブルに座標が記憶され、かつ座標に対応する検出回数が欠陥確定閾値以上であると判定された場合、ステップS1203に進み、画素欠陥マーク部21は、その座標で示されるの画素の画素データに画素欠陥を示す情報を挿入して、画素欠陥を示す情報を含む画像データをラインバッファ31に供給して処理は終了する。
画素欠陥を示す情報は、通常の画素値を示す画素データに現れるパターンと異なる、所定のビット数の所定のパターンからなり、例えば、画素データに、そのパターンのビットを挿入することで画素がマークされる。
一方、ステップS1202において、検出回数テーブルに座標が記憶され、かつ座標に対応する検出回数が欠陥確定閾値以上でないと判定された場合、画素にマークする必要がないので、ステップS1203の処理はスキップされ、画像データのみをラインバッファ31に供給し、処理は終了する。
このように、孤立点の検出において、デジタルカメラおよび撮像される像が完全に固定されていない場合、孤立点は、一時的なものであるといえる。したがって、長い時間における、複数枚(複数のフレーム)の画像データを観察することで、孤立点の誤検出および見逃しを回避することができる。すなわち、これらの事象に対応するために、検出回数および消失回数を記録している。
以上のように、画素欠陥の検出に“検出点”の周辺の画素を使用することで、画素欠陥を、より確実に、より正確に検出することができる。また、遮光する機能を持ち合わせたデジタルカメラであっても、起動時に毎回画素欠陥を検出すると起動時間が遅くなるので、本発明を用いることで起動時に画素欠陥検出をしなくても撮像しながら画素欠陥を検出して画質劣化を防ぐことができる。
また、光を遮断する機能を有さないデジタルカメラであっても、工場出荷後の後発画素欠陥による画質劣化を防ぐことができる。さらに、本発明によれば、撮像素子の温度特性または電圧特性に起因する起動中に発生する後発画素欠陥を補正し、画質劣化を防ぐことができる。その結果、後発画素欠陥による画質劣化をより少なくすることができる。
なお、固体撮像素子のカラーフィルタ配列をBayer配列の例で説明したが、Bayer配列に限らず、例えば、インタライン配列またはGストライプRB市松配列などとすることもできる。
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
図43は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータの構成の例を示すブロック図である。CPU(Central Processing Unit)701は、ROM(Read Only Memory)702、または記録部708に記録されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)703には、CPU701が実行するプログラムやデータなどが適宜記憶される。これらのCPU701、ROM702、およびRAM703は、バス204により相互に接続されている。
CPU701にはまた、バス704を介して入出力インタフェース705が接続されている。入出力インタフェース705には、キーボード、マウス、マイクロホンなどよりなる入力部706、ディスプレイ、スピーカなどよりなる出力部707が接続されている。CPU701は、入力部706から入力される指令に対応して各種の処理を実行する。そして、CPU701は、処理の結果得られた画像等を出力部707に出力する。
入出力インタフェース705に接続されている記録部708は、例えばハードディスクなどで構成され、CPU701が実行するプログラムや各種のデータを記録する。通信部709は、インターネット、その他のネットワークを介して外部の装置と通信する。この例の場合、通信部207は、入力画像を取得するか、または出力画像を出力する、外部とのインタフェースとして動作する。
また、通信部709を介してプログラムを取得し、記録部708に記録してもよい。
入出力インタフェース705に接続されているドライブ710は、磁気ディスク721、光ディスク722、光磁気ディスク723、或いは半導体メモリ724などが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記録部708に転送され、記録される。
一連の処理をさせるプログラムが格納されている記録媒体は、図43に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク721(フレキシブルディスクを含む)、光ディスク722(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク723(MD(Mini-Disc)(商標)を含む)、若しくは半導体メモリ724などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM702や、記録部708に含まれるハードディスクなどで構成される。
なお、上述した一連の処理を実行させるプログラムは、必要に応じてルータ、モデムなどのインタフェースを介して、ローカルエリアネットワーク、インターネット、ディジタル衛星放送といった、有線または無線の通信媒体を介してコンピュータにインストールされるようにしてもよい。
また、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
1 撮像装置, 11 撮像部, 12 A/D変換部, 13 画素欠陥処理部, 14 信号処理部, 15 記憶部, 21 画素欠陥マーク部, 22 画素欠陥検出部, 23 画素欠陥情報記憶部, 31 ラインバッファ, 32 補正部, 33 画像処理部, 41 傾き抽出部, 42 画素欠陥判定部, 51 孤立点候補検出部, 52 孤立点検出部, 53 孤立点推定部, 601 スレッショルド設定部, 621 スレッショルド調整部, 622 上限下限設定部, 623 上限下限調整部, 701 カウンタ, 721 検出回数算出部, 722 消失回数算出部, 723 回数設定部