(57)【要約】【課題】  電子カメラ等で撮影された画像データから、ゴミの影響等を適切に除去することが可能な画像処理装置および画像処理プログラムを提供すること。【解決手段】  電子カメラ１で撮影した画像を、画像処理プログラムを有するＰＣ（パソコン）３１に入力する。ＰＣ３１は、入力された画像について複数のサイズからなるエッジ検出フィルタを使用してエッジ検出をし、エッジでない領域を平坦部領域として抽出する。抽出された平坦部領域について、着目画素の値と使用されたエッジ検出フィルタのサイズに対応する画素範囲の周辺の画素の値の平均値との相対比を算出して透過率マップを作成する。作成した透過率マップを使用して平坦部領域の画像を補正し、ゴミの影などを除去する。【選択図】        図４
2005079856.tif 000002
【特許請求の範囲】
【請求項１】
撮像素子により撮影された撮影画像を取得する画像取得手段と、
前記取得した画像のエッジ部からの距離に応じて、前記撮影画像の欠陥情報を作成する欠陥情報作成手段とを備えることを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記欠陥情報作成手段は、異なるサイズからなる複数個の画素範囲のいずれかの画素範囲の画素を参照して前記欠陥情報を作成し、前記エッジ部からの距離に応じて前記複数個の画素範囲を使い分けることを特徴とする画像処理装置。
【請求項３】
撮像素子により撮影された複数の画素からなる撮影画像を取得する画像取得手段と、
前記取得した撮影画像において、異なるサイズからなる複数個のエッジ抽出フィルタを使用してエッジ部を検出するエッジ部検出手段と、
前記複数個のエッジ抽出フィルタを使用して検出されたエッジ部に関する情報に基づき、前記撮影画像の欠陥情報を作成する欠陥情報作成手段とを備えることを特徴とする画像処理装置。
【請求項４】
請求項３に記載の画像処理装置において、
前記欠陥情報作成手段は、異なるサイズからなる複数個の画素範囲のいずれかの画素範囲の画素を参照して前記欠陥情報を作成し、前記複数個のエッジ抽出フィルタを使用して検出されたエッジ部に関する情報に基づき前記複数個の画素範囲を使い分けることを特徴とする画像処理装置。
【請求項５】
請求項４に記載の画像処理装置において、
前記欠陥情報作成手段が参照する前記複数個の画素範囲と前記複数個のエッジ抽出フィルタは、サイズの大きさ順に一対一の対応関係にあることを特徴とする画像処理装置。
【請求項６】
請求項４から５のいずれかに記載の画像処理装置において、
前記各々の画素範囲のサイズは、対応する前記エッジ抽出フィルタのサイズと相互に実質的に比例関係にあることを特徴とする画像処理装置。
【請求項７】
請求項４から６のいずれかに記載の画像処理装置において、
前記欠陥情報作成手段は、着目画素の値と該着目画素を含む前記画素範囲の複数の画素の値の平均値とに基づいて、前記着目画素の欠陥情報を作成することを特徴とする画像処理装置。
【請求項８】
請求項３から６のいずれかに記載の画像処理装置において、
前記欠陥情報作成手段は、前記エッジ部検出手段のいずれかのサイズのエッジ抽出フィルタにより検出されたエッジ部でない領域を該サイズに対応する平坦部として抽出し、該サイズに対応する前記画素範囲の画素を参照して前記欠陥情報を作成することを特徴とする画像処理装置。
【請求項９】
請求項８に記載の画像処理装置において、
前記欠陥情報作成手段は、前記抽出された平坦部が前記エッジ抽出フィルタの複数のサイズに対応する平坦部として抽出されている場合、このエッジ抽出フィルタの複数のサイズに対応する複数の前記画素範囲のうちサイズが最も大きい画素範囲の画素を参照して前記欠陥情報を作成することを特徴とする画像処理装置。
【請求項１０】
請求項３に記載の画像処理装置において、
前記撮像素子により撮影された一様な基準画像を取得する基準画像取得手段と、
前記基準画像の欠陥情報を作成する基準画像欠陥情報作成手段とをさらに備え、
前記エッジ部検出手段は、前記基準画像の欠陥情報を参照しながら前記検出されたエッジ部の一部をエッジ部から除外することを特徴とする画像処理装置。
【請求項１１】
請求項１０に記載の画像処理装置において、
前記エッジ部検出手段は、前記除外されたエッジ部について、前記除外されたエッジ部周辺のエッジ検出結果に基づいて前記除外されたエッジ部を再度エッジ部とするか否かの判断を行うことを特徴とする画像処理装置。
【請求項１２】
請求項１０に記載の画像処理装置において、
前記エッジ部検出手段は、前記除外されたエッジ部である画素について、前記除外されたエッジ部である画素周辺の画素においてエッジ部である画素が所定割合以上存在する場合、前記除外されたエッジ部である画素を再度エッジ部である画素とすることを特徴とする画像処理装置。
【請求項１３】
請求項１〜１０のいずれかに記載の画像処理装置の機能をコンピュータに実行させるための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子カメラ等で撮影した画像データにおいて、ゴミ等の影響を除去する画像処理装置に関する。
【背景技術】
【０００２】
従来、ビデオカメラの製造時に光学系に混入したゴミの影響を補正するため、事前に各絞り値毎の白パターンを撮影して補正情報を記録しておく技術が、特開平９−５１４５９号公報に開示されている。
【０００３】
【特許文献１】特開平９−５１４５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、工場出荷時の事前データによる補正は、射出瞳の変わる光学系やゴミの経時変化に対処できない。
【課題を解決するための手段】
【０００５】
請求項１の発明は、画像処理装置に適用され、撮像素子により撮影された撮影画像を取得する画像取得手段と、取得した画像のエッジ部からの距離に応じて、撮影画像の欠陥情報を作成する欠陥情報作成手段とを備えることを特徴とするものである。
請求項２の発明は、請求項１に記載の画像処理装置において、欠陥情報作成手段は、異なるサイズからなる複数個の画素範囲のいずれかの画素範囲の画素を参照して欠陥情報を作成し、エッジ部からの距離に応じて複数個の画素範囲を使い分けることを特徴とするものである。
請求項３の発明は、画像処理装置に適用され、撮像素子により撮影された複数の画素からなる撮影画像を取得する画像取得手段と、取得した撮影画像において、異なるサイズからなる複数個のエッジ抽出フィルタを使用してエッジ部を検出するエッジ部検出手段と、複数個のエッジ抽出フィルタを使用して検出されたエッジ部に関する情報に基づき、撮影画像の欠陥情報を作成する欠陥情報作成手段とを備えることを特徴とするものである。
請求項４の発明は、請求項３に記載の画像処理装置において、欠陥情報作成手段は、異なるサイズからなる複数個の画素範囲のいずれかの画素範囲の画素を参照して欠陥情報を作成し、複数個のエッジ抽出フィルタを使用して検出されたエッジ部に関する情報に基づき複数個の画素範囲を使い分けることを特徴とするものである。
請求項５の発明は、請求項４に記載の画像処理装置において、欠陥情報作成手段が参照する複数個の画素範囲と複数個のエッジ抽出フィルタは、サイズの大きさ順に一対一の対応関係にあることを特徴とするものである。
請求項６の発明は、請求項４から５のいずれかに記載の画像処理装置において、各々の画素範囲のサイズは、対応するエッジ抽出フィルタのサイズと相互に実質的に比例関係にあることを特徴とするものである。
請求項７の発明は、請求項４から６のいずれかに記載の画像処理装置において、欠陥情報作成手段は、着目画素の値と該着目画素を含む画素範囲の複数の画素の値の平均値とに基づいて、着目画素の欠陥情報を作成することを特徴とするものである。
請求項８の発明は、請求項３から６のいずれかに記載の画像処理装置において、欠陥情報作成手段は、エッジ部検出手段のいずれかのサイズのエッジ抽出フィルタにより検出されたエッジ部でない領域を該サイズに対応する平坦部として抽出し、該サイズに対応する画素範囲の画素を参照して欠陥情報を作成することを特徴とするものである。
請求項９の発明は、請求項８に記載の画像処理装置において、欠陥情報作成手段は、抽出された平坦部がエッジ抽出フィルタの複数のサイズに対応する平坦部として抽出されている場合、このエッジ抽出フィルタの複数のサイズに対応する複数の画素範囲のうちサイズが最も大きい画素範囲の画素を参照して欠陥情報を作成することを特徴とするものである。
請求項１０の発明は、請求項３に記載の画像処理装置において、撮像素子により撮影された一様な基準画像を取得する基準画像取得手段と、基準画像の欠陥情報を作成する基準画像欠陥情報作成手段とをさらに備え、エッジ部検出手段は、基準画像の欠陥情報を参照しながら検出されたエッジ部の一部をエッジ部から除外することを特徴とするものである。
請求項１１の発明は、請求項１０に記載の画像処理装置において、エッジ部検出手段は、除外されたエッジ部について、除外されたエッジ部周辺のエッジ検出結果に基づいて除外されたエッジ部を再度エッジ部とするか否かの判断を行うことを特徴とするものである。
請求項１２の発明は、請求項１０に記載の画像処理装置において、エッジ部検出手段は、除外されたエッジ部である画素について、除外されたエッジ部である画素周辺の画素においてエッジ部である画素が所定割合以上存在する場合、除外されたエッジ部である画素を再度エッジ部である画素とすることを特徴とするものである。
請求項１３の発明は、画像処理プログラムに適用され、請求項１〜１２のいずれかに記載の画像処理装置の機能をコンピュータに実行させるものである。
【発明の効果】
【０００６】
本発明は、以上説明したように構成するので、次のような効果を奏する。電子カメラ等で撮影された画像内に含まれるゴミの影響等の欠陥情報を適宜手軽な方法で適切に取得することができる。特に、光学的条件および経時変化に左右されることなく、最も視覚的に目立つ平坦部領域の欠陥情報をエッジ近傍まで高品質に取得することができる。
【発明を実施するための最良の形態】
【０００７】
−第１の実施の形態−
（電子カメラおよびパーソナルコンピュータの構成）
図１は、交換レンズ方式の一眼レフ電子スチルカメラ（以下、電子カメラと言う）の構成を示す図である。電子カメラ１は、カメラ本体２とマウント式交換レンズからなる可変光学系３を有する。可変光学系３は、内部にレンズ４と絞り５を有する。レンズ４は複数の光学レンズ群から構成されるが、図では代表して１枚のレンズで表し、そのレンズ４の位置を主瞳位置と言う（以下、単に瞳位置と言う）。可変光学系３は、ズームレンズであってもよい。瞳位置は、レンズ種やズームレンズのズーム位置によって決まる値である。焦点距離によって変わることもある。
【０００８】
カメラ本体２は、シャッター６、光学フィルターやカバーガラスなどの光学部品７、撮像素子８を有する。可変光学系３は、カメラ本体２のマウント部９に対して着脱可能である。また、可変光学系３は、マウント部９を介して、瞳位置に関する情報、絞り値に関する情報等の光学的パラメータを電子カメラ１の制御部１７（図２）に送信する。絞り値は、例えばＦ２．８〜Ｆ２２まで変化する。
【０００９】
符号１０は、撮像素子８前部の光学部品７の表面に付着したゴミを示す。可変光学系３の絞り値や瞳位置を変化させて、撮影画像に写り込んだゴミ影の変化を評価する実験を行った結果、以下の２つの事実が判った。
（１）絞り値によってゴミ影の大きさと光の透過率が変わる。
（２）レンズの瞳位置によってゴミ位置がずれる。
この２つの実験事実から固定位置に付着したゴミであっても、レンズの撮影条件（絞り値と瞳位置）が変化する度にゴミの写り込み方が変化していることがわかる。このような可変な光学系に対して、ゴミの影響を除去する手法を以下に示す。
【００１０】
図２は、電子カメラ１のブロック図とＰＣ（パーソナルコンピュータ）３１および周辺装置を示す図である。ＰＣ３１は、画像処理装置として機能し、電子カメラ１から画像データを取得し後述するゴミの影響除去処理をする。
【００１１】
電子カメラ１は、可変光学系３、光学部品７、シャッター６（図２では図示省略）、撮像素子８、アナログ信号処理部１２、Ａ／Ｄ変換部１３、タイミング制御部１４、画像処理部１５、操作部１６、制御部１７、メモリ１８、圧縮／伸長部１９、表示画像生成部２０、モニタ２１、メモリカード用インタフェース部２２、外部インタフェース部２３を備える。
【００１２】
撮像素子８は、可変光学系３を通して被写体を撮像し、撮像された被写体像に対応する画像信号（撮像信号）を出力する。撮像素子８は、複数の画素から構成される矩形形状の撮像領域を有し、各画素に蓄積された電荷に対応するアナログ信号である画像信号を、画素単位で順次、アナログ信号処理部１２に出力する。撮像素子８は、例えば単板式カラーＣＣＤなどで構成される。アナログ信号処理部１２は、内部にＣＤＳ（相関２重サンプリング）回路や、ＡＧＣ（オートゲインコントロール）回路などを有し、入力された画像信号に対して所定のアナログ処理を行う。Ａ／Ｄ変換部１３は、アナログ信号処理部１２で処理されたアナログ信号をデジタル信号に変換する。タイミング制御部１４は、制御部１７により制御され、撮像素子８、アナログ信号処理部１２、Ａ／Ｄ変換部１３、画像処理部１５の各動作のタイミングを制御する。
【００１３】
メモリカード用インタフェース部２２は、メモリカード（カード状のリムーバブルメモリ）３０とのインタフェースをとる。外部インタフェース部２３は、所定のケーブルや無線伝送路を介してＰＣ３１等の外部装置とのインタフェースをとる。操作部１６は、レリーズボタンやモード切り換え用の選択ボタン等に相当する。モニタ２１は、各種メニューを表示したり、撮像素子８で撮像した被写体像やメモリカードに格納された画像データに基づく再生画像を表示したりする。操作部１６の出力は制御部１７に接続され、モニタ２１には表示画像生成部２０の出力が接続される。画像処理部１５は、例えば、画像処理専用の１チップ・マイクロプロセッサで構成される。
【００１４】
Ａ／Ｄ変換部１３、画像処理部１５、制御部１７、メモリ１８、圧縮／伸長部１９、表示画像生成部２０、メモリカード用インタフェース部２２、外部インタフェース部２３は、バス２４を介して相互に接続されている。
【００１５】
ＰＣ３１には、モニタ３２やプリンタ３３等が接続されており、ＣＤ−ＲＯＭ３４に記録されたアプリケーションプログラムが予めインストールされている。また、ＰＣ３１は、不図示のＣＰＵ、メモリ、ハードディスクの他に、メモリカード３０とのインタフェースをとるメモリカード用インタフェース部（不図示）や所定のケーブルや無線伝送路を介して電子カメラ１等の外部装置とのインタフェースをとる外部インタフェース部（不図示）を備える。
【００１６】
図２のような構成の電子カメラ１において、操作部１６を介し、操作者によって撮影モードが選択されてレリーズボタンが押されると、制御部１７は、タイミング制御部１４を介して、撮像素子８、アナログ信号処理部１２、Ａ／Ｄ変換部１３に対するタイミング制御を行う。撮像素子８は、可変光学系３により撮像領域に結像された光学像に対応する画像信号を生成する。その画像信号は、アナログ信号処理部１２で所定のアナログ信号処理が行われ、アナログ処理後画像信号としてＡ／Ｄ変換部１３へ出力される。Ａ／Ｄ変換部１３では、アナログ処理後の画像信号をディジタル化し、画像データとして、画像処理部１５に供給する。
【００１７】
本実施の形態の電子カメラ１では、撮像素子８において、単板式カラー撮像素子の最も代表的なＲ（赤）、Ｇ（緑）、Ｂ（青）のカラーフィルタがベイア配列されている場合を例にとり、画像処理部１５に供給される画像データはＲＧＢ表色系で示されるものとする。画像データを構成する各々の画素には、ＲＧＢの何れか１つの色成分の色情報が存在する。ここで、撮像素子８を構成する１つの光電変換素子を画素と言うが、この画素に対応した画像データの１単位も画素と言う。また、画像も複数の画素から構成される概念である。
【００１８】
画像処理部１５は、このような画像データに対し、補間、階調変換や輪郭強調などの画像処理を行う。このような画像処理が完了した画像データは、必要に応じて、圧縮／伸長部１９で所定の圧縮処理が施され、メモリカード用インタフェース部２２を介してメモリカード３０に記録される。画像処理が完了した画像データは、圧縮処理を施さずにメモリカード３０に記録してもよい。
【００１９】
画像処理が完了した画像データは、メモリカード３０を介してＰＣ３１に提供される。外部インターフェース２３および所定のケーブルや無線伝送路を介してＰＣ３１に提供してもよい。画像処理が完了した画像データは、補間処理が完了し、各画素にはＲＧＢのすべての色成分の色情報が存在するものとする。
【００２０】
（ゴミの影響除去処理）
次に、撮影した各画像データにおいて、ゴミの影響を除去する処理について説明する。電子カメラの光路途中に含まれるゴミは一般にぼけており、通常のエッジ検出フィルタに掛からない程度のシミが多数含まれる。ゴミは大きなゴミから小さなゴミまで種々あり、Ｆ値依存性が大きい。小さなゴミは絞り込んだ状態でもこのような状況にあり、開放側では消滅している。一方、大きなごみは開放側でこのような状況にある。この性質を利用して第１の実施形態では、一様照明の参照画像なしに、補正対象画像自身の中からゴミを自己抽出し、自己補正する方式を採用する。
【００２１】
ゴミの自己抽出は、後述するカーネルを使って透過率データを得る。正確なゴミの透過率信号を得るには平坦部でカーネルを使用する必要があり、平坦部を検出するためまず初めにエッジフィルタで補正対象画像の画像構造を調べる。ここで平坦部とは、画像内で部分的に一様な領域のことをいう。本実施の形態では、グラデーションやレンズの周辺減光を含む完全に一様ではない青空、一様に近い壁面なども一様な領域として検出される。また、一様な領域として検出された平坦部の画像にグラデーションやシェーディングなどが含まれていても、透過率を計算する際、グラデーションやシェーディングなどによる影響を受けないような演算がなされる。
【００２２】
（電子カメラ側の動作）
図３は、第１の実施の形態における、電子カメラ１側の撮影手順について説明する図である。１）瞳位置Ｐ１、絞り値Ａ１で通常撮影１０１を行い、補正対象画像データ１を出力する。２）瞳位置Ｐ２、絞り値Ａ２で通常撮影１０２を行い、補正対象画像データ２を出力する。３）瞳位置Ｐ３、絞り値Ａ３で通常撮影１０３を行い、補正対象画像データ３を出力する。４）瞳位置Ｐ４、絞り値Ａ４で通常撮影１０４を行い、補正対象画像データ４を出力する。第１の実施の形態では一様面撮影を行わない。
【００２３】
（画像処理装置側動作）
＜補正対象画像に対する処理＞
図４は、画像処理装置であるＰＣ３１で行う処理のフローチャートを示す図である。ステップＳ１１では、輝度面の生成処理を行う。ステップＳ１２では、エッジ検出処理を行う。ステップＳ１３では、エッジ領域の拡大処理をする。ステップＳ１４では、平坦部の分類処理を行う。ステップＳ１５では、自己ゲイン抽出処理を行う。ステップＳ１６では、自己ゲイン補正処理を行う。以下、各ステップの詳細について説明する。
【００２４】
１）輝度面の生成（ステップＳ１１）
図４のステップＳ１１では、輝度面の生成を行う。補正対象画像データの各画素[i,j]について、次の式（１）を使用して、ＲＧＢ信号から輝度信号Ｙを生成する。[i,j]は画素の位置を示す。
Y[i,j]=(R[i,j]+2*G[i,j]+B[i,j])/4 ...(1)
ＲＧＢ各面で個別に解析することも可能であるが、基本的にゴミ影の影響は信号の減衰を生じるのみで、色成分に関係ない。従って、ここでは全ての情報を有効に使いつつ、ランダムノイズの影響を低減させることが可能な輝度成分への変換を行っている。また、そうすることにより、ＲＧＢ３面から輝度成分単面だけの解析で済み、高速化が図れる。輝度成分生成比率は上記に限らず、R:G:B=0.3:0.6:0.1等であってもよい。
【００２５】
２）エッジ検出（ステップＳ１２）
エッジ抽出フィルタを輝度面に掛けて、補正対象画像内の平坦部とエッジ部の分離を行う。光路途中に含まれるゴミの画像内への写り込みは非常にコントラストの低いゴミ影となって現れるため、従来技術のようなエッジ抽出フィルタで検出されない場合が多い。この事実を逆に利用すると、エッジ抽出フィルタで抽出されるエッジ部は、ゴミではなく基本的に画像内のエッジであると多くの箇所で仮定できる。この画像内のエッジとゴミとの区別を更によくするために初めに輝度面に対する階調補正処理を行う。
【００２６】
２−１）輝度面のガンマ補正
補正対象画像が線形階調のまま入力されて、上述の輝度面が生成されているものとする。このとき、入力信号をY(0≦Y≦Ymax)、出力信号をY'(0≦Y'≦Y'max)とし、例えば次式（２）のような階調変換を施す。なお、γ=0.4,0.5,0.6等である。
【数１】
2005079856.tif 000003
【００２７】
この変換は、低輝度側の中間調のコントラストを上げ、高輝度側のコントラストを下げる処理である。すなわち、ゴミ影は暗いところでは目立ちにくく明るいところで目立つため、明るいところのゴミ影のコントラストはこの変換によって下がり、一方の通常の画像エッジは主に中間調に分布するため相対的にコントラストを上げている。したがって、ゴミ影と通常エッジのコントラストの分離度が良くなる。さらにY'の量子ゆらぎに起因するショットノイズを全階調にわたって均一に扱えるように変換するには、誤差伝播則から考えてγ＝0.5にとるのが最もよい。なお、上記式（２）はべき乗関数になっている。また、γ＝0.5は、べき乗関数が平方根関数となっている。
【００２８】
入力画像に最終出力用のガンマ補正処理が掛かっているとき、上記変換に近いガンマ補正処理がなされている場合はこの処理を飛ばしてもよい。また、逆ガンマ補正を行って線形階調に戻してから、上記処理を行えば、より分離機能が得られる。
【００２９】
２−２）エッジ検出演算
次に、ガンマ補正のなされた輝度面に対して、図５および以下の式（３）〜（６）に示すような複数のフィルタサイズからなる微分フィルタを用いてエッジ検出（抽出）を行う。図５は、式（３）〜（６）の複数の微分フィルタの方位をまとめて表した図である。50x50画素程度にまで広がったゴミも扱えるように後述するカーネルを最大80x80程度にとる。それに合わせて、ここでは約２倍の最大160x160の微分フィルタを容易する。更に大きなゴミのサイズを扱うには、この類推で大きなサイズの微分フィルタを増やせばよい。また、これより小さいサイズのごみしか想定しないのであれば、広域型のフィルタから順次削っていけばよい。広域型のフィルタは全て、青空のようなグラデーション部をエッジ認定しないように2次微分型とした。gradはグラジエント（１次微分）、lapはラプラシアン（２次微分）を意味する。
【００３０】
a)±K1x±K1範囲のエッジ検出フィルタ
gradK1=(|Y'[i-K1,j-K1]-Y'[i,j]|+|Y'[i+K1,j+K1]-Y'[i,j]|
+|Y'[i-K1,j+K1]-Y'[i,j]|+|Y'[i+K1,j-K1]-Y'[i,j]|
+|Y'[i-K1,j]-Y'[i,j]|+|Y'[i+K1,j]-Y'[i,j]|
+|Y'[i,j-K1]-Y'[i,j]|+|Y'[i,j+K1]-Y'[i,j]|)/8  ...(3)
b)±K2x±K2範囲のエッジ検出フィルタ
lapK2=|8*Y'[i,j]
-Y'[i-K2,j]-Y'[i+K2,j]-Y'[i,j-K2]-Y'[i,j+K2]
-Y'[i-K2,j-K2]-Y'[i+K2,j+K2]-Y'[i-K2,j+K2]-Y'[i+K2,j-K2]|/8  ...(4)
c)±K3x±K3範囲のエッジ検出フィルタ
lapK3=|8*Y'[i,j]
-Y'[i-K3,j]-Y'[i+K3,j]-Y'[i,j-K3]-Y'[i,j+K3]
-Y'[i-K3,j-K3]-Y'[i+K3,j+K3]-Y'[i-K3,j+K3]-Y'[i+K3,j-K3]|/8  ...(5)
d)±K4x±K4範囲のエッジ検出フィルタ
lapK4=|8*Y'[i,j]
-Y'[i-K4,j]-Y'[i+K4,j]-Y'[i,j-K4]-Y'[i,j+K4]
-Y'[i-K4,j-K4]-Y'[i+K4,j+K4]-Y'[i-K4,j+K4]-Y'[i+K4,j-K4]|/8  ...(6)
ここで、K1<K2<K3<K4であり、K1=1〜10、K4は80程度の値をとるものとする。すなわち、演算対象の画素範囲のサイズが順次大きくなっている。例えば±K1x±K1とは、着目画素を中心として±K1の範囲を意味し、K1=10とすると21x21画素範囲のフィルタとなる。
【００３１】
上記のエッジ検出フィルタは、高速化のため間引いて定義しているが、より精度を上げるには、中心画素と±Kix±Ki(i=1,2,3,4)内の全画素との差分をとるようにしてもよい。
【００３２】
上記のようなエッジ検出フィルタの特徴として、ワイヤのような面積率の小さいエッジはどのサイズのフィルタもエッジからワイヤの幅と同程度の僅かな距離までしかエッジとして認識しないという特性をもつ。また、構造物のような面積率の大きなエッジに対しては大きなサイズのフィルタほど段階的にエッジから離れたところまでエッジとして認識するという特性をもつ。従って、青空中に電線等があっても、青空の大部分の面積は広域フィルタによる平坦性が保証される。
【００３３】
２−３）エッジマップの生成
平坦性を保証する範囲をK1xK1,K2xK2,K3xK3,K4xK4の4段階に分けて、次の式等（７）〜（１８）を使用してエッジ分類を行う。それぞれに対応するエッジマップをEdgePK1,EdgePK2,EdgePK3,EdgePK4とする。
sumK1=gradK1                        ...(7)
sumK2=(gradK1+lapK2)/2              ...(8)
sumK3=(gradK1+lapK2+lapK3)/3        ...(9)
sumK4=(gradK1+lapK2+lapK3+lapK4)/4  ...(10)
【００３４】
if  sumK1=<Th_edge  EdgePK1[i,j]=0  ...(11)
else                EdgePK1[i,j]=1  ...(12)
if  sumK2=<Th_edge  EdgePK2[i,j]=0  ...(13)
else                EdgePK2[i,j]=1  ...(14)
if  sumK3=<Th_edge  EdgePK3[i,j]=0  ...(15)
else                EdgePK3[i,j]=1  ...(16)
if  sumK4=<Th_edge  EdgePK4[i,j]=0  ...(17)
else                EdgePK4[i,j]=1  ...(18)
【００３５】
処理(11)により、±K1x±K1画素範囲で変動幅Th_edge内の平坦部を検出しているので、K1xK1の画素範囲で変動幅Th_edge/2の平坦部を検出していると言える。処理(12)により、±K2x±K2画素範囲で変動幅Th_edge内の平坦部を検出しているので、K2xK2の画素範囲で変動幅Th_edge/2の平坦部を検出していると言える。処理(13)により、±K3x±K3画素範囲で変動幅Th_edge内の平坦部を検出しているので、K3xK3の画素範囲で変動幅Th_edge/2の平坦部を検出していると言える。処理(14)により、±K4x±K4画素範囲で変動幅Th_edge内の平坦部を検出しているので、K4xK4の画素範囲で変動幅Th_edge/2の平坦部を検出していると言える。
【００３６】
ここで、閾値Th_edgeの値は、Y'が256階調で表されているとき、例えば撮影感度がISO200程度のときは、3〜6程度の値をとる。
【００３７】
３）エッジ領域の拡大（Ｓ１３）
本実施の形態では、エッジフィルタで平坦性を保証するサイズは後述するカーネルサイズと同じサイズあるいは広いサイズになっているので、基本的にはエッジ領域の拡大は不要である。しかし、エッジマップに若干の連続性を与えるため、エッジマップの拡大処理を行う。これはエッジマップの画素単位の急激な変化を抑える働きがあり、また、エッジ検出を間引きフィルタによって行っていることにも対応するものである。EdgePK1,EdgePK2,EdgePK3,EdgePK4の全てに10x10程度の拡大を行う。以下にEdgePK1の7x7拡大処理の例について示す。他のエッジマップも同様である。
横方向±3画素拡大処理
slpf = EdgePK1[i,j]+EdgePK1[i,j-1]+EdgePK1[i,j-2]+EdgePK1[i,j-3]
+EdgePK1[i,j+1]+EdgePK1[i,j+2]+EdgePK1[i,j+3]
if    slpf=0    tmp[i,j]=0
else            tmp[i,j]=1
縦方向±3画素拡大処理
slpf = tmp[i,j]+tmp[i-1,j]+tmp[i-2,j]+tmp[i-3,j]
+tmp[i+1,j]+tmp[i+2,j]+tmp[i+3,j]
if    slpf=0    EdgePK1[i,j]=0
else            EdgePK1[i,j]=1
【００３８】
４）平坦部分類（Ｓ１４）
以上のようにして求めた4種類のエッジマップから平坦部マップを作成する。平坦部マップはエッジ部からの距離情報を表しているともいえる。以下の処理の例では、EdgePK4から処理をしているので、広域型のエッジフィルタでも狭域型のエッジフィルタの複数で平坦性が保証されている場合は、後述するゴミ抽出能力が高い広域型のカーネルができるだけ採用されるように広域の平坦性に分類する。すなわち、複数のエッジフィルタで平坦性が保障されている領域においては、対応する後述するカーネルのうち最も大きなサイズのカーネルを使用して後述するゲイン（ゴミの透過率信号）が抽出されるようになっている。
if  EdgePK4[i,j]=0                flatP[i,j]=4 (K4xK4画素範囲で平坦)
else{
if  EdgePK3[i,j]=0           flatP[i,j]=3 (K3xK3画素範囲で平坦)
else{
if  EdgePK2[i,j]=0      flatP[i,j]=2 (K2xK2画素範囲で平坦)
else{
if  EdgePK1[i,j]=0 flatP[i,j]=1 (K1xK1画素範囲で平坦)
else               flatP[i,j]=0 (エッジ上)
}
}
}
【００３９】
flatP[i,j]=4で分類される平坦部を平坦部4、flatP[i,j]=3で分類される平坦部を平坦部3、flatP[i,j]=2で分類される平坦部を平坦部2、flatP[i,j]=1で分類される平坦部を平坦部1という。
【００４０】
５）自己ゲイン抽出（Ｓ１５）
５−１）複数カーネルによるゲイン抽出
平坦性が保証された領域に、輝度の局所平均と着目画素との比（ゲイン、相対比）をとる演算を行えば、ゴミの透過率情報が抽出できる。この演算子をカーネルと呼ぶ。局所平均をとる範囲の定義の仕方により異なるカーネルサイズが定義できるが、ゴミの透過率情報を得るには局所平均値がゴミの影響を含まない程度に十分大きい必要があるため、一般に大サイズのカーネルほどゴミ抽出能力は高い。しかし、広域で平坦性が保証されている必要があるため、エッジ近傍では採用することができない。そこで、エッジ近傍では多少能力が落ちても、エッジのぎりぎり近くまで滑らかにゴミが除去されるように、エッジに近づくほど小さいサイズのカーネルを使いながらゴミの透過率情報を収集する。ここではK4xK4カーネル、K3xK3カーネル、K2xK2カーネル、K1xK1カーネルの4種を用意し、それぞれに対応したサイズで平坦性が保証されている場合に利用可能とする。上記カーネルのK1,K2,K3,K4は、エッジ検出フィルタのK1,K2,K3,K4と一致する。ただし、完全に一致していなくてもよく、実質的に一致していればよい。
【００４１】
まず、初期化処理を行う。
gmap_self[i,j]=1    すべての画素[i,j]に対して
【００４２】
次に、平坦部1に対して、K1xK1カーネルを使用してゲインを抽出する。
if  flatP[i,j]=1  {
ave=Σ{Y[i+m,j+n]}/(K1*K1)
m=0,±1,±2,...,±(K1)/2
n=0,±1,±2,...,±(K1)/2
gmap_self[i,j]=Y[i,j]/ave
}
【００４３】
次に、平坦部2に対して、K2xK2カーネルを使用してゲインを抽出する。
if    flatP[i,j]=2    {
ave=Σ{Y[i+m,j+n]}/(K2*K2)
m=0,±1,±2,...,±K2/2
n=0,±1,±2,...,±K2/2
gmap_self[i,j]=Y[i,j]/ave
}
【００４４】
次に、平坦部3に対して、K3xK3カーネルを使用してゲインを抽出する。
if    flatP[i,j]=3    {
ave=Σ{Y[i+m,j+n]}/(K3*K3)
m=0,±1,±2,...,±K3/2
n=0,±1,±2,...,±K3/2
gmap_self[i,j]=Y[i,j]/ave
}
【００４５】
次に、平坦部4に対して、K4xK4カーネルを使用してゲインを抽出する。
if    flatP[i,j]=4    {
ave=Σ{Y[i+m,j+n]}/(K4*K4)
m=0,±1,±2,...,±K4/2
n=0,±1,±2,...,±K4/2
gmap_self[i,j]=Y[i,j]/ave
}
【００４６】
ここで、局所平均はカーネルサイズの全領域でとっているが、処理の高速化のため間引いた代表値による平均をとってもよい。また、カーネルの形は正方型に限らず、矩形型で定義しても良い。そのときは、エッジ検出フィルタも矩形型となる。
【００４７】
図６は、上述したエッジ検出から平坦部分類までの処理と複数カーネルによるゲイン抽出処理を、カーネル割り当ての観点から説明するフローチャートである。ステップＳ４１では、対象画素についてK4xK4画素範囲で平坦性が保証されたものか否かを判断する。判断が肯定されると、ステップＳ４２に進みK4xK4カーネルを使用してゲイン抽出を行う。判断が否定されると、ステップＳ４３に進む。ステップＳ４３では、対象画素についてK3xK3画素範囲で平坦性が保証されたものか否かを判断する。判断が肯定されると、ステップＳ４４進みK3xK3カーネルを使用してゲイン抽出を行う。判断が否定されると、ステップＳ４５に進む。ステップＳ４５では、対象画素についてK2xK2画素範囲で平坦性が保証されたものか否かを判断する。判断が肯定されると、ステップＳ４６進みK2xK2カーネルを使用してゲイン抽出を行う。判断が否定されると、ステップＳ４７に進む。ステップＳ４７では、対象画素についてK1xK1画素範囲で平坦性が保証されたものか否かを判断する。判断が肯定されると、ステップＳ４８進みK1xK1カーネルを使用してゲイン抽出を行う。判断が否定されると、ステップＳ４８に進む。ステップＳ４８では、対象画素は平坦部ではなく、エッジであると判断されてゲイン抽出は行われない。
【００４８】
上述のカーネルで相対比を演算する処理を、局所的規格化処理（ゲイン抽出処理）と呼んでもよい。着目画素の輝度と着目画素周辺の局所的領域の画素の平均輝度（局所平均）との比（相対比）をとっているので、規格化される。図７は、平坦部の輝度面に対して局所的規格化処理を施した様子を示す図である。図７（ａ）は、輝度面内のある横方向に並ぶ画素の輝度信号を示す図である。符号４１と符号４２は、ゴミにより輝度信号が低下していることを示す。図７（ｂ）は、図７（ａ）の輝度信号に対して、上述した局所的規格化処理を施して得られた図である。すなわち、局所的な範囲で画素値の規格化処理を行ったものである。符号４３、４４は、図７（ａ）の符号４１、４２に対応し、ゴミが存在する個所の透過率を示す。このように、平坦部の一様面データに含まれるグラデーション、シェーディング等の不均一性は排除され、ゴミ影による透過率の低下のみを抽出することができる。これにより、ゴミの位置と透過率の程度が同時に分かる。
【００４９】
５−２）3σ判定
抽出された平坦部の透過率信号には、輝度信号のランダムノイズ成分が含まれているため、これとゴミによる異常な透過率の低下とを区別するため、得られたゲインマップ（透過率マップ）内で統計解析を行い、3σ判定を行って区別する。図７における符号４５部分を拡大した符号４６は、この細かいランダムノイズがある様子を示している。得られたゲインマップの全面について、平均値Ｍを次式（１９）により求め、標準偏差σを次式（２０）により求める。図８は、ゲインマップ（透過率マップ）のヒストグラムを示す図である。
【数２】
2005079856.tif 000004
【数３】
2005079856.tif 000005
【００５０】
ここで、和をとる[i,j]はflatP[i,j]>0のゲイン抽出画素とし、Nはその総画素数を表す。正規分布するランダムデータは±3σの範囲を集めれば99.7%になるので、ほぼ正確にランダムノイズの影響を除外することができる。±3σから外れる透過率は、ほとんど統計的な誤差では説明できない異常な信号であり、ゴミ影による透過率の低下による現象を表していると考えられる。この異常部分は、ゴミ影の場合、通常1より小さな値となる。従って、±3σ内のゲインおよび１より大きなゲインを強制的に１にセットし、その他のいわゆるゴミの影響を受けていると思われる画素のゲインを上述の計算された値のままとする。
if  |gmap_self[i,j]-M|≦3σ  gmap_self[i,j]=1
else if  gmap_self[i,j]>1    gmap_self[i,j]=1
else                         gmap_self[i,j]=gmap_self[i,j]
なお、判定に使う平均値Mは常に1に近い値をとるため、1に置き換えてもよい。
【００５１】
５−３）ゲインマップのLPF処理
次の自己ゲイン補正で、補正領域のランダム性が失われてしまわないように、次の式（２１）で表される若干のローパスフィルタを掛けておく。
gmap_self[i,j]={4*gmap_self[i,j]
+2*(gmap_self[i-1,j]+gmap_self[i+1,j]+gmap_self[i,j-1]+gmap_self[i,j+1])
+1*(gmap_self[i-1,j-1]+gmap_self[i-1,j+1]+gmap_self[i+1,j-1]
+gmap_self[i+1,j+1])}/16  ...(21)
【００５２】
６）自己ゲイン補正（Ｓ１６）
次に、次式（２２）〜（２４）に示すように、補正対象画像のR,G,B値各々に対してゲイン（透過率）の逆数を掛け算して、ゲイン補正を行う。
R[i,j]=R[i.j]/gmap_self[i,j]  ...(22)
G[i,j]=G[i.j]/gmap_self[i,j]  ...(23)
B[i,j]=B[i.j]/gmap_self[i,j]  ...(24)
【００５３】
このようにして、一様面の基準画像データがなくても、補正対象画像自身のゴミを自己抽出して補正することができる。すなわち、１つの撮影画像内で上記したように平坦性が保証できる所定の条件を満たす領域を抽出する。抽出した平坦領域の欠陥情報を自ら抽出し、自ら補正する。従って、瞳位置や絞り値などが変化する可変光学系の影響を全く加味する必要性がない。特に、膨大な数を占める小さなゴミ影の除去に威力を発揮する。さらに、視覚的に目立ちやすい平坦部領域のゴミをエッジ近傍まで滑らかに除去することができる。
【００５４】
なお、本実施の形態では、複数のサイズのエッジフィルタを使用してエッジを検出し、その結果に基づき平坦度合を分類し、分類した平坦度合に応じて複数のカーネルを使い分けている。このことは、撮影画像のエッジ部からの距離に応じて複数のカーネルを使い分けていると言える。エッジ部に近い領域ほど、小さいサイズのカーネルを使用し、エッジ部から離れるにつれて大きなサイズのカーネルを使用している。小さいサイズのカーネルでは、大きなゴミに対しては補正痕が残るという欠点を有するが、エッジ近辺まで近寄って補正することができるという長所を有し、小さなゴミに対しては補正痕の問題を生じない。大きなサイズのカーネルは、エッジ近辺まで近寄れないが大きなゴミも含めてきれいに補正することができる。従って、エッジ近辺では、大きなゴミに対して少々欠点を有するが、小さなカーネルで少しでもゴミの影響を補正し、エッジから離れたところでは、大きなカーネルで確実にゴミの影響を補正する。
【００５５】
また、本実施の形態の複数のエッジフィルタと複数のカーネルは、サイズの大きさ順に一対一の対応関係にあり、エッジ抽出フィルタのサイズとカーネルのサイズはほぼ（実質的に）比例関係にあると言える。
【００５６】
−第２の実施の形態−
第２の実施形態では、第１の実施形態での自己抽出法に加え、若干ユーザーの負荷はかかるが、ゴミ参照用に一日から一月に一回程度一様な基準画像を撮影した画像を利用して、ゴミ除去性能を更に上げる方式である。第１の実施の形態では、エッジマップ抽出において大きなゴミはエッジとして抽出されてしまい、補正がなされない場合がある。第２の実施の形態では、このような問題を改善するものである。なお、基準画像は、完全に一様な白基準データではなく、青空、一様に近い壁面、グレーチャート、無地の紙面などを撮影して代用するものとする。この場合の基準画像は、レンズの周辺減光や被写体のグラデーション、撮像素子のシェーディングなどが含まれていてもよい。基準画像は、実際に身近な場所で容易に撮影できる状況で取得できる場合を想定しており、厳密な一様性は要求せず、画像処理側のアルゴリズムで一様なものに変換する。基準画像と補正対象画像の光学的条件（瞳位置とF値）の違いは画像処理側で対処する。
【００５７】
なお、電子カメラ１および画像処理装置としてのＰＣ３１の構成は、第１の実施の形態と同様であるので、その説明を省略する。
【００５８】
（電子カメラ側の動作）
図９は、第２の実施の形態における、電子カメラ１側の撮影手順について説明する図である。１）瞳位置Ｐ０、絞り値Ａ０で一様面撮影２０１を行い、基準画像データ０を出力する。２）瞳位置Ｐ１、絞り値Ａ１で通常撮影２０２を行い、補正対象画像データ１を出力する。３）瞳位置Ｐ２、絞り値Ａ２で通常撮影２０３を行い、補正対象画像データ２を出力する。４）瞳位置Ｐ３、絞り値Ａ３で通常撮影２０４を行い、補正対象画像データ３を出力する。すなわち、まず、電子カメラ１を空や壁面に向けて一様な面の撮影を行い（一様面撮影）、その後、電子カメラ１を撮影したい被写体に向けて随時撮影する（通常撮影）。
【００５９】
ここで、基準画像の絞り値Ａ０は、可変光学系３に用意された可変な範囲の中で最も絞り込んだ状態で撮影するものとする。最も絞り込んだ絞り値は、標準的なレンズでは例えばＦ２２程度である。一方、補正対象画像の絞り値は、基準画像と同じか、それより開放側であるものとする。
【００６０】
一様面撮影は、ゴミの付着状態が変化しないかぎり省くことができる。一様面撮影の挿入回数が多いに越したことはないが、通常は一日一回程度のデータでもあれば、有効なゴミデータになりうる。一様面撮影を行うか否かの判断は、撮影者に委ねられる。しかし、先に行った一様面撮影があまりにも時間的に離れている場合は、その一様面撮影による基準データは信頼性に欠ける場合も生じる。従って、通常撮影から所定時間内の一様面撮影の基準画像データのみを使用するようにしてもよい。また、必ずしも一様面撮影を先に行う必要はない。後に行った一様面撮影の基準画像データを使用してもよい。一様面撮影が、通常撮影の前後に複数ある場合は、時間的に最も近い一様面撮影の基準画像データを使用するようにしてもよい。あるいは、新規付着ゴミの可能性を気にするのであれば、撮影前後の２番目に近いものまでの中からどちらかを選択するようにしてもよい。
【００６１】
（画像処理装置側動作）
第２の実施の形態において、画像処理装置であるＰＣ３１に入力される基準画像データと補正対象画像データには、瞳位置と絞り値が識別できるデータが埋め込まれているものとする。瞳位置データは、撮影データに埋め込まれたレンズの種類、ズーム位置、焦点位置の記録データから換算テーブルを使って算出してもよい。図１０は、ＰＣ３１で行う処理の流れを示すフローチャートである。
【００６２】
＜基準画像に対する処理＞
１）輝度面生成（Ｓ２１）
ステップＳ２１の輝度面生成は、第１の実施の形態と同様に行う。
【００６３】
２）透過率マップの生成（ゲインマップ抽出）（Ｓ２２）
ステップＳ２２では、以下の処理からなる透過率マップの生成（ゲインマップ抽出）を行う。
２−１）局所的規格化処理（ゲイン抽出処理）
基準画像データは、上述したように必ずしも完全に一様なものでない。従って、生成した輝度面も完全に一様ではない。このような輝度面に対して、局所的な画素値の規格化（正規化）処理を行って、各画素の透過率信号T[i,j]を、次式（２５）を使用して算出する。すなわち、着目画素[i,j]の値とこの画素を含む局所範囲の画素平均値との相対比を各々の画素についてとる。これにより一様面データに含まれるグラデーション、シェーディング等の不均一性はアルゴリズム的に問題なく排除され、肝心のゴミ影による透過率の低下のみを抽出することができる。このようにして求めた画像全面の透過率を透過率マップ（ゲインマップ）と言う。透過率マップは、基準画像の欠陥情報を示すものである。なお、画素値とは、各画素における色成分の色信号（色情報）や輝度信号（輝度情報）の値である。例えば、１バイトで表される場合、０〜２５５の値を取る。
【数４】
2005079856.tif 000006
【００６４】
ここで、局所平均を取る範囲(2a+1)x(2b+1)画素は、ゴミ径より大きめにとる。理想的には面積的にゴミ影よりも3倍程度以上の広さを取れば、正確な透過率データが得れらる。ａは着目画素[i,j]を中心に左右に広がる画素数、ｂは着目画素[i,j]を中心に上下に広がる画素数を示す。例えば、撮像素子８の画素ピッチを１２ｕｍとし、撮像面とゴミ付着面との距離を１．５ｍｍとすると、絞り値Ｆ２２のとき、巨大なゴミの直径は１５画素程度、絞り値Ｆ４のとき、巨大なゴミの直径は４０画素程度となる。従って、ａ＝４０、ｂ＝４０とし、局所平均を取る範囲は８１×８１画素範囲のように設定するとよい。これは、一例であり、他の画素数による画素範囲であってもよい。基準画像においてゲインを求める場合は、カーネルサイズは１種類とする。
【００６５】
ゴミ影は絞り値に大きく依存し、小さなゴミは絞りを開けるとすぐに消滅するが、大きなゴミは絞りを開放側にしても影は薄くなりながらも大きな面積を占めることがある。撮像素子の画素ピッチ幅にもよるが、開放側で数十画素に渡って丸いゴミ影ができる場合があり、そのときは非常に広い範囲で局所平均をとる必要性が出る。そのため、処理を高速化する場合は、間引いた画素で代表して処理しても問題ない。
【００６６】
この(2a+1)x(2b+1)画素の範囲で相対比を演算する処理を、第１の実施の形態の平坦部における相対比の演算と同様に、局所的規格化処理（ゲイン抽出処理）と呼ぶ。(2a+1)x(2b+1)画素の範囲で相対化演算するフィルタのことを、ゲイン抽出カーネルと呼ぶ。局所的規格化処理については、第１の実施の形態の図７の説明と同様である。このように、一様面データに含まれるグラデーション、シェーディング等の不均一性は排除され、ゴミ影による透過率の低下のみを抽出することができる。これにより、ゴミの位置と透過率の程度が同時に分かる。
【００６７】
２−２）透過率マップの統計解析
前述の局所的規格化処理により得られた透過率マップの画像全面について、第１の実施の形態の平坦部と同様に、平均値Ｍを次式（２６）により求め、標準偏差σを次式（２７）により求める統計解析を行う。なお、Nx,Nyは、ｘ方向、ｙ方向の総画素数を表す。
【数５】
2005079856.tif 000007
【数６】
2005079856.tif 000008
【００６８】
２−３）閾値判定
基本的に透過率マップに占めるゴミ信号の面積的な割合は非常に小さく、２−３）で統計解析した結果は、透過率信号の量子論的揺らぎに伴うランダムノイズ（ショットノイズ）を評価していることになる。透過率マップのヒストグラムをとると、平均値Ｍ（Ｍはほぼ１に近い値）を中心に標準偏差σの正規分布した形となる。第１の実施の形態の図８を参照。この揺らぎの範囲はゴミ影による透過率の変化を受けていないと考えられるため、強制的に透過率を１に設定してよい。すなわち、次の処理（２８）（２９）により閾値判定を行う。
if    |T[i,j]-M|≦3σ    then  T[i,j]=1       ...(28)
else                           T[i,j]=T[i,j]  ...(29)
【００６９】
正規分布するランダムデータは、±３σの範囲を集めれば９９．７％になるので、ほぼ正確にランダムノイズの影響を除外することができる。±３σから外れる透過率は、ほとんど統計的な誤差では説明できない異常な信号であり、ゴミ影による透過率の低下による現象を表していると考えられる。この異常部分は、ゴミ影の場合、通常１より小さな値となる。このことは、第１の実施の形態で説明したのと同様である。
【００７０】
しかし、割合は少ないが１より大きな値を示すものもある。これはゴミ影の影響ではなく、オプティカルローパスフィルタ等の脈理（屈折率の不均一）で生じた欠陥が入射光を強めあったり弱めあったりする干渉縞を起こした場合などに見られる現象である。これにより、光路途中に含まれるゴミ以外の光学部材の欠陥検出にもこの方法は利用することができる。また、撮像素子内の画素欠陥の影響もこの手法で判別可能である。ゴミは、撮像素子８に近い方がボケずに残りやすいが、撮影レンズ上のゴミが相当ボケて写り込んだ場合でも精度よく判別可能である。
【００７１】
なお、ゴミ影の影響のみを取り除く場合は、以下の処理（３０）（３１）（３２）により閾値判定するとよい。
if    |T[i,j]-M|≦3σ    then  T[i,j]=1       ...(30)
else if    T[i,j]>1            T[i,j]=1       ...(31)
else                           T[i,j]=T[i,j]  ...(32)
判定に使う平均値Ｍは常に１に近い値をとるため、１に置き換えてもよい。
【００７２】
このようにして、欠陥の画素位置を表すマップ情報（Ｔ＝１か否かで判断）と、欠陥の度合いを表す透過率情報の２種類の欠陥情報が同時に得られることになる。なお、上述の透過率マップは局所的な相対ゲインを表していることからゲインマップと呼んでもよい。
【００７３】
通常、ゴミ等の欠陥検出は、エッジ検出用の微分フィルタで行う。しかし、光路途中のゴミを対象とする場合、光学的にぼけるため非常に周辺とのコントラストが低いゴミ影となって現れる。このような場合、微分フィルタでは非常に感度が悪くほとんど検知できないことが多い。しかし、上記説明したように、透過率の統計的性質を用いた判定法を用いると、非常に高感度のゴミ検出が可能となり、目的の光路途中の異物による影響補正が可能となる。
【００７４】
３）透過率マップの瞳位置変換（Ｓ２３）
ステップＳ２３では、透過率マップの瞳位置変換を行う。基準画像と補正対処画像の瞳位置が相互に異なっているとき、基準画像のゴミ位置を、補正対象画像の瞳位置から見たときに出現すると予測されるゴミ位置に瞳位置変換する。図１１は、瞳位置が変化するとゴミ影の位置が変化する様子を示す図である。図１１（ａ）は、瞳位置とゴミと撮像素子８の撮像面との関係を示す図である。図１１（ｂ）は、瞳位置の変化に伴い撮像面上でゴミ影が移動している様子を示す図である。
【００７５】
図１１から明らかなように、瞳位置が異なると画像内に写り込むゴミの位置は、光軸５１すなわち画像の中心から動径方向にずれる。ここで、画像内の光軸５１から距離rの位置にあるゴミが、動径方向にずれる量Δrを見積もる。基準画像の瞳位置をP0、補正対象画像の瞳位置をP0'、撮像面から距離lの位置にゴミが付着しているとすると、Δrは、次式（３３）により計算することができる。
【数７】
2005079856.tif 000009
ただし、距離lは光学部品の厚みを空気中の光路長に換算した値である。
【００７６】
基準画像の透過率マップT[i,j]を、極座標[r,θ]上で次式（３４）により[r',θ]に変位させ、座標[i,j]上の透過率マップT'[i,j]に変換する。
【数８】
2005079856.tif 000010
ずれ量Δrは、光軸５１から距離が遠くになるに従い大きくなる。実際の画像の周辺部では、瞳位置の値によっては数十画素に及ぶこともある。
【００７７】
４）透過率マップのＦ値変換（Ｓ２４）
ステップＳ２４では、透過率マップのＦ値変換を行う。基準画像と補正対処画像の絞り値が相互に異なっているとき、基準画像のゴミ径と透過率を、補正対象画像のより開放側絞り値でのゴミ径と透過率にＦ値変換する。図１２は、絞り値であるＦ値が変化するとゴミ影の大きさが変化する様子を示す図である。図１２（ａ）は、Ｆ値が大きい場合、図１２（ｂ）は、Ｆ値が小さい場合を示す。図１２から明らかなように、Ｆ値の定義式（Ｆ＝焦点距離／レンズの有効口径）を、相似関係にある撮像面からゴミ付着位置までの距離lとゴミ広がりΓに当てはめると次式（３５）が成立する。
【数９】
2005079856.tif 000011
【００７８】
ｌを撮像素子の画素ピッチａ［ｍｍ／ｐｉｘｅｌ］で割り算すると、ゴミ径は画素数で表記できる。このようにして、絞りがＦ値のとき、点像のゴミは幅Γの大きさに広がることが予測できる。
【００７９】
一方、その点像の分布関数は、絞り値内で開口したレンズの各入射角度から均等に点像ゴミに光を当ててゴミ影を広げていると考えられるので、完全に一様な広がりを持つ関数と想定してよい。したがって、Ｆ値変換には、フィルタ幅Γ画素で表される一様なローパスフィルタ処理を掛けることによって、ゴミ径と透過率を正確に予測するＦ値変換が可能となる。ローパスフィルタは直径がΓの円形状の非分離型フィルタが普通と考えられるが、処理の高速化を念頭に、縦Γ、横Γの正方状の分離型フィルタでも問題ない。
【００８０】
例えば、ｌ＝０．５ｍｍ、ａ＝５μｍ／ｐｉｘｅｌの場合にＦ２２の透過率マップを、Ｆ１６、Ｆ１１、Ｆ８、Ｆ５．６、Ｆ４に変換する場合に当てはめると、正方状の分離型フィルタの一次元フィルタ係数は図１０ような形式に表される。図１３の一次元フィルタ係数を使用して、縦横それぞれフィルタリングをする。なお、絞り値Ｆ１６の一次元フィルタ係数は、両端に０．５の係数を持ち、７つの係数を有する。これは、偶数幅の広がりを着目画素を中心に左右上下に均等に広がる奇数幅の範囲でフィルタリングをするためである。図１４は、絞り値Ｆ１６フィルタを２次元フィルタで表した図である。
【００８１】
上記の変換処理を行うことにより、基準画像の透過率マップは、補正対象画像の瞳位置、Ｆ値の状態の透過率マップに変換される。すなわち、基準画像の透過率マップは、補正対象画像が撮影される光学的条件下で生成される透過率マップと等価な透過率マップが生成される。
【００８２】
５）ゴミの種別分類（Ｓ２５）
ステップＳ２５では、次に示す処理により、透過率信号の大きさからゴミを分別して、大きいゴミは後述のエッジマップの修正に反映させる。分類結果をゴミマップdmapに代入する。
if        T[i,j]=1     dmap[i,j]=0（ゴミなし）
else if   T[i,j]>0.94  dmap[i,j]=1（小さいゴミ）
else                   dmap[i,j]=2（大きなゴミ）
dmap=2についてはエッジマップの修正時に漏れがないように7x7程度の若干の領域拡大処理を加えておく。
【００８３】
６）ゴミ領域拡大処理（Ｓ２６）
ステップＳ２６では、瞳位置変換で想定される誤差分だけゴミマップを拡大しておくことで、許容誤差内の領域にはゴミが含まれるようなゴミマップにする。ここでは、例えば±3画素の誤差を見込む。
if  dmap[i,j]=1  dmap[i±m,j±n]=1
if  dmap[i,j]=2  dmap[i±m,j±n]=2
m=1,2,3、n=1,2,3
【００８４】
＜補正対象画像に対する処理＞
１）輝度面の生成（Ｓ３１）
ステップＳ３１の輝度面の生成は、第１の実施の形態と同様である。
２）エッジ検出（Ｓ３２）
ステップＳ３２のエッジ検出は、第１の実施の形態と同様である。
【００８５】
３）エッジマップからゴミ領域除外（Ｓ３３）
ゴミ影の多くはコントラストが低いためエッジ抽出されないが、中には大きなゴミでコントラストの高いものがあり、エッジ抽出されてしまうことがある。特に絞り込んで撮影された補正対象画像内で幾つかのゴミ影に発生する。これらのゴミ影がエッジ領域としてゲイン抽出領域の指定から外れることを防ぐため、次に示す処理により、基準画像を使用して生成したゴミマップ情報を利用してゴミ位置は強制的にエッジ部から除外する処理を行う。ここで、あまり大きくエッジ領域を削ることを防ぐため、前述の瞳位置変換誤差分のゴミマップの拡大処理を行う前のゴミマップを利用することにする。
if  dmap[i,j]=2  {EdgePK1[i,j]=0, EdgePK2[i,j]=0,
EdgePK3[i,j]=0, EdgePK4[i,j]=0}
模式的にこの操作を「EdgePxx'=EdgePxx-Dust(dmap=2)」と記述すると分かりやすい。
【００８６】
４）エッジマップの周辺同化処理（ゴミくりぬき部の補正）（Ｓ３４）
エッジマップがいびつにゴミ部のみくりぬかれた（除外された）状態は不自然なので、エッジマップ内での周辺同化処理を行う。例えば、背景が青空のような一様な画像であれば、ステップＳ２５のゴミマップ情報を使用して、エッジマップから大きなゴミによるエッジ部をくりぬいてもなんら問題が生じない。むしろ、くりぬく必要がある。しかし、背景が模様や構造のある画像である場合に、ステップＳ２５のゴミマップ情報によりゴミがあるとしてその部分をエッジマップからくりぬくと、周辺の実際の模様や構造との関係から不自然な補正処理を行うことになる。従って、エッジ部でないと判断された画素が、その周辺の画素にエッジ画素が多数あると判断される場合は、その画素を再度エッジ部とするようにする。
【００８７】
エッジマップの周辺同化処理は、次に示す処理により行う。具体的には、例えば図１５に示すような着目画素に対する周辺８画素（図１５の黒丸の画素、図１５は着目画素[i,j]=[0,0]に対して第４象限のみを示す）のうち４個を超える画素がエッジの場合、着目画素もエッジとする。４個を超えるとは周辺８画素のうちエッジである画素数が過半数あることを意味する。すなわち、周辺画素にエッジの画素が過半数存在する場合は、着目画素もエッジとする。水平方向垂直方向の８画素目の画素を見ているのは、ステップＳ２５でdmap=2について7x7程度の若干の領域拡大処理を加えているので、2倍程度大きい８画素先を見るようにしている。以下の処理は全画素について行ってもよいし、dmap=2でエッジくり抜きをした画素のみに限定してもよい。
データコピー
tmp[i,j]=EdgePK1[i,j]  すべての画素[i,j]に対して
周辺同化処理
if  tmp[i,j]=0{
sum = tmp[i-8,j]+tmp[i+8,j]+tmp[i,j-8]+tmp[i,j+8]
+tmp[i-8,j-8]+tmp[i+8,j+8]+tmp[i-8,j+8]+tmp[i+8,j-8]
if   sum>4              EdgePK1[i,j]=1
}
【００８８】
５）エッジ領域の拡大（Ｓ３５）
ステップＳ３５のエッジ領域の拡大は、第１の実施の形態のステップＳ１３と同様に行う。
６）平坦部分類（Ｓ３６）
ステップＳ３６の平坦部分類は、第１の実施の形態のステップＳ１４と同様に行う。
【００８９】
７）ゴミ抽出領域の特定（Ｓ３７）
平坦部でかつゴミ領域と特定されている領域に限定して、ゴミ除去を行うのが補正対象画像の誤った補正を防ぐ観点から最も合理的である。したがって、この両条件を満たす領域情報を、次の処理により平坦マップに代入する。すなわち、ゴミ領域でないと判断された領域は平坦部でないというようにして、次の処理に進む。dmap[i,j]は、ステップＳ２６のゴミ領域拡大処理を経た後の結果を使用する。ステップＳ２６の処理によって瞳位置変換精度の誤差分だけゴミ周辺にゲイン抽出領域を広げることにより、平坦部において漏れなくゴミ抽出することが可能となる。
if  dmap[i,j]=0  flatP[i,j]=0
【００９０】
８）自己ゲイン抽出（Ｓ３８）
ステップＳ３８の自己ゲイン抽出は、第１の実施の形態のステップＳ１５のうち、複数カーネルによるゲイン抽出処理（局所的規格化処理）（５−１）とゲインマップのローパス（LPF）処理（５−３）のみを第１の実施の形態と同様に行う。3σ判定処理（５−２）は、ステップＳ３７の処理により既にゴミ近傍に限定されているので不要である。
【００９１】
ローパス処理は、gmap_self[i,j]に含まれる画素[i,j]のゆらぎ成分を除去する。本実施の形態では、ゴミ位置の局所領域のみに限定して、統計解析による閾値処理を介さないで、自己ゲイン抽出による自己ゲイン補正を行うので、このローパス処理は重要な処理となる。すなわち、ローパス処理前は画素値と透過率値gmap_self[i,j]が同じ方向にゆらいでいるため、ローパス処理をしないで後述の自己ゲイン補正すると、画像はその局所領域のみ全体的にのっぺりとなりやすい。そこで、gmap_self[i,j]のゆらぎ成分を取り除いてやれば、画素値が持つゆらぎ成分を失わずに済み、周辺部との粒状性の連続性が保てるようになる。これは、特に高感度画像のような乱雑性が多い場合に威力を発揮する。ここで、ローパスフィルタは、第１の実施の形態よりももう少し強めに設計してもかまわないし、ローパスフィルタの影響を受けやすい大きなゴミ部分（gmap_self[i,j]の値が１に比べかなり小さい所）だけはローパスフィルタ処理を外すようにしても構わない。
【００９２】
９）自己ゲイン補正（Ｓ３９）
ステップＳ３９の自己ゲイン補正は、第１の実施の形態のステップＳ１６と同様に行う。
【００９３】
こうして第２の実施形態では、視覚的に目立ちやすい平坦部領域のあらゆるゴミを漏れなく、エッジ近傍まで滑らかに除去することができる。
【００９４】
また、基準画像の透過率マップの瞳位置変換精度が悪くても、補正対象画像自身からゴミの透過率情報を抽出するので、全くずれのないきれいな補正が可能となる。なお、自己ゲインの抽出は、ステップＳ３７で特定された自己ゲイン抽出領域に限って行われる。従って、補正処理もこの範囲に限ってのみ行われ、処理の負荷が軽減される。
【００９５】
また、基準画像のゴミマップ情報を有効に利用することによって、補正対象画像内の大きなゴミから小さなゴミまであらゆるゴミを漏れなく自己抽出することが可能となる。
【００９６】
上記説明した第１、第２の実施の形態の画像処理装置では、電子カメラで任意の使用時刻、任意の使用条件で撮影した画像おいて生じたゴミ等の影響による黒染み等の欠陥を、適切に補正し、高品質な画像を再現することができる。
【００９７】
なお、上記第２の実施の形態では、撮影者が一様に近いと考える基準画像を撮影して、その撮影した基準画像に局所的規格処理等を施して透過率マップを作成していた。しかし、撮影者が一様に近いと考える基準画像に小さな模様等がある場合もある。これは、基本的に被写体をボカして撮影することで対処できる。例えば、紙をレンズの最短撮影距離よりも至近位置において撮影したりすればよい。たとえ、小さな模様があっても(2a+1)x(2b+1)サイズのゲイン抽出カーネルより広い範囲でゆるやかに変化する像にボケれば十分に目的を達成することのできる一様に近い基準画像になり得る。
【００９８】
また、上記第２の実施の形態では、ステップＳ３７で自己ゲイン抽出領域の特定をし、ステップＳ３８では限定された範囲で補正を行うようにした。このように補正範囲をゴミ領域を含む周辺範囲（近傍領域）に限定する手法は、上記第１の実施の形態においても適用することも可能である。第１の実施の形態では、求められた透過率マップからゴミを特定し、その周辺領域を求めればよい。
【００９９】
また、上記実施の形態では、ベイア配列のＲＧＢ表色系の例を説明したが、最終的に補間処理がなされるものであれば、カラーフィルタの配置方法には全く依存しないことは言うまでもない。また、他の表色系（例えば補色表色系）であっても同様である。
【０１００】
また、上記実施の形態では、交換レンズ方式の一眼レフ電子スチルカメラの例を説明したが、必ずしもこの内容に限定する必要はない。非交換レンズ方式のカメラにも本発明は適用できる。瞳位置や絞り値は、適宜公知な手法で取得すればよい。
【０１０１】
また、上記実施の形態では、電子スチルカメラ１で撮影した画像データを処理する例を説明したが、必ずしもこの内容に限定する必要はない。本発明は、動画を扱うビデオカメラで撮影した画像データにも適用できる。また、カメラつき携帯電話などで撮影した画像データにも適用できる。さらに、コピー機やスキャナー等にも適用できる。すなわち、撮像素子を使用して撮像したあらゆる画像データに対して、本発明を適用することができる。
【０１０２】
また、上記実施の形態では、電子カメラ１で撮影した画像データをＰＣ（パソコン）３１で処理してゴミの影響を除去する例を説明したが、必ずしもこの内容に限定する必要はない。電子カメラ１上で、そのようなプログラムを備えてもよい。また、プリンターや投影装置などにそのようなプログラムを備えてもよい。すなわち、画像データを扱うあらゆる装置に、本発明は適用することができる。
【０１０３】
ＰＣ３１で実行するプログラムは、ＣＤ−ＲＯＭなどの記録媒体やインターネットなどのデータ信号を通じて提供することができる。図１６はその様子を示す図である。ＰＣ３１は、ＣＤ−ＲＯＭ３４を介してプログラムの提供を受ける。また、ＰＣ３１は通信回線４０１との接続機能を有する。コンピュータ４０２は上記プログラムを提供するサーバーコンピュータであり、ハードディスク４０３などの記録媒体にプログラムを格納する。通信回線４０１は、インターネット、パソコン通信などの通信回線、あるいは専用通信回線などである。コンピュータ４０２はハードディスク４０３を使用してプログラムを読み出し、通信回線４０１を介してプログラムをＰＣ３１に送信する。すなわち、プログラムをデータ信号として搬送波にのせて、通信回線４０１を介して送信する。このように、プログラムは、記録媒体や搬送波などの種々の形態のコンピュータ読み込み可能なコンピュータプログラム製品として供給できる。
【０１０４】
上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【図面の簡単な説明】
【０１０５】
【図１】交換レンズ方式の電子カメラの構成を示す図である。
【図２】電子カメラのブロック図とパーソナルコンピュータ（ＰＣ）および周辺装置を示す図である。
【図３】第１の実施の形態における、電子カメラ側の撮影手順について説明する図である。
【図４】第１の実施の形態における、ＰＣで行う処理の流れを示すフローチャートである。
【図５】複数の微分フィルタの方位をまとめて表した図である。
【図６】エッジ検出から平坦部分類までの処理と複数カーネルによるゲイン抽出処理を、カーネル割り当ての観点から説明するフローチャートである。
【図７】輝度面に対して局所的規格化処理を施した様子を示す図である。
【図８】透過率マップのヒストグラムを示す図である。
【図９】第２の実施の形態における、電子カメラ側の撮影手順について説明する図である。
【図１０】第２の実施の形態における、ＰＣで行う処理の流れを示すフローチャートである。
【図１１】瞳位置が変化するとゴミ影の位置が変化する様子を示す図である。
【図１２】絞り値であるＦ値が変化するとゴミ影の大きさが変化する様子を示す図である。
【図１３】各絞り値に対する一次元フィルタ係数を示す図である。
【図１４】絞り値Ｆ１６における透過率マップに変換するフィルタを２次元フィルタで表した図である。
【図１５】エッジマップの周辺同化処理の様子を示す図である。
【図１６】プログラムを、ＣＤ−ＲＯＭなどの記録媒体やインターネットなどのデータ信号を通じて提供する様子を示す図である。
【符号の説明】
【０１０６】
１  電子カメラ
２  カメラ本体
３  可変光学系
４  レンズ
５  絞り
６  シャッター
７  光学部品
８  撮像素子
９  マウント部
１２  アナログ信号処理部
１３  Ａ／Ｄ変換部
１４  タイミング制御部
１５  画像処理部
１６  操作部
１７  制御部
１８  メモリ
１９  圧縮／伸長部
２０  表示画像生成部
２１、３２  モニタ
２２  メモリカード用インタフェース部
２３  外部インタフェース部
２４  バス
３０  メモリカード
３１  ＰＣ（パーソナルコンピュータ）
３３  プリンタ
３４  ＣＤ−ＲＯＭ
【図１】
2005079856.tif 000012
【図２】
2005079856.tif 000013
【図３】
2005079856.tif 000014
【図４】
2005079856.tif 000015
【図５】
2005079856.tif 000016
【図６】
2005079856.tif 000017
【図７】
2005079856.tif 000018
【図８】
2005079856.tif 000019
【図９】
2005079856.tif 000020
【図１０】
2005079856.tif 000021
【図１１】
2005079856.tif 000022
【図１２】
2005079856.tif 000023
【図１３】
2005079856.tif 000024
【図１４】
2005079856.tif 000025
【図１５】
2005079856.tif 000026
【図１６】
2005079856.tif 000027