(57)【特許請求の範囲】
【請求項１】
被写体像を光電変換し、画像信号を生成する撮像手段と、
前記撮像手段より得られる画像信号から、前記撮像手段の撮像画面内における異物の位置及び大きさの情報である異物情報を検出する異物検出手段と、
ライブビュー動作の開始が指示されてからライブビュー画像が表示装置に表示されるまでの間に、前記撮像素子を露出オーバーの状態に露光させて、前記撮像手段に白飛び画像を生成させ、該白飛び画像から前記異物情報の補助となる補助異物情報を検出する補助異物情報検出手段と、
を備えることを特徴とする撮像装置。
【請求項２】
前記補助異物情報は、前記異物検出手段によって検出された異物情報の検証に用いられることを特徴とする請求項１に記載の撮像装置。
【請求項３】
被写体像を光電変換し、画像信号を生成する撮像手段を備える撮像装置を制御する方法であって、
前記撮像手段より得られる画像信号から、前記撮像手段の撮像画面内における異物の位置及び大きさの情報である異物情報を検出する異物検出工程と、
ライブビュー動作の開始が指示されてからライブビュー画像が表示装置に表示されるまでの間に、前記撮像素子を露出オーバーの状態に露光させて、前記撮像手段に白飛び画像を生成させ、該白飛び画像から前記異物情報の補助となる補助異物情報を検出する補助異物情報検出工程と、
を備えることを特徴とする撮像装置の制御方法。
【請求項４】
請求項３に記載の制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＣＤやＣＭＯＳセンサ等の撮像素子を用いた撮像装置における、光学ローパスフィルター等の表面に付着した異物による画質劣化を抑制する技術に関する。
【背景技術】
【０００２】
従来より、デジタルカメラにおいては、光学系内（特に撮像素子の前方に配置されたローパスフィルタなどの光学素子の表面）にゴミ等の異物が付着すると、撮影された画像にそれらの異物の影が写り込み、画像の品質が低下するという問題がある。
【０００３】
この問題を解決するために、振動手段を用いて撮像素子に付着した異物をふるい落として除去する技術が提案されている（特許文献１参照）。
【０００４】
さらに、次のような方法も提案されている。まず、白壁等の一様な被写体を撮影し、ほぼ光学系内の異物のみが写りこんだ画像を撮影する。そして、その画像から光学系内の異物の位置や大きさの情報であるゴミ補正データを作成し、それに基づき本撮影した画像の補正処理を行って、画像の品質を向上させる（特許文献２参照）。
【特許文献１】特開平０７−１５１９４６号公報
【特許文献２】特開２００４−２２２２３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ゴミの位置情報は、ユーザが意識して情報の取得作業を行わなければならない。ユーザが行う作業としては、たとえばメニュー画面からゴミ位置検出モードを選択し、一様な白壁等を撮影するといった方法が考えられる。ゴミの位置情報は、ユーザによってこのような操作が行われたときに更新される。つまりユーザがこのような操作を意識的に行わない限りゴミの位置情報は更新されない。
【０００６】
一方、ゴミの位置は時間の経過とともに変化するので、ゴミ位置の検出の頻度は高いほどよい。ユーザがゴミ位置の検出のための操作を行わないときでも、ゴミ位置の検出の機会をとらえ、ゴミ位置情報を取得し、ゴミ位置情報の鮮度を保つのが望ましい。
【０００７】
従って、本発明は上述した課題に鑑みてなされたものであり、その目的は、ユーザが意識しない間でもゴミ位置の検出の機会を捉え、ゴミ位置情報を取得し、ゴミの位置情報の品質を向上させることである。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明に係わる撮像装置は、被写体像を光電変換し、画像信号を生成する撮像手段と、前記撮像手段より得られる画像信号から、前記撮像手段の撮像画面内における異物の位置及び大きさの情報である異物情報を検出する異物検出手段と、ライブビュー動作の開始が指示されてからライブビュー画像が表示装置に表示されるまでの間に、前記撮像素子を露出オーバーの状態に露光させて、前記撮像手段に白飛び画像を生成させ、該白飛び画像から前記異物情報の補助となる補助異物情報を検出する補助異物情報検出手段と、を備えることを特徴とする。
【０００９】
また、本発明に係わる撮像装置の制御方法は、被写体像を光電変換し、画像信号を生成する撮像手段を備える撮像装置を制御する方法であって、前記撮像手段より得られる画像信号から、前記撮像手段の撮像画面内における異物の位置及び大きさの情報である異物情報を検出する異物検出工程と、ライブビュー動作の開始が指示されてからライブビュー画像が表示装置に表示されるまでの間に、前記撮像素子を露出オーバーの状態に露光させて、前記撮像手段に白飛び画像を生成させ、該白飛び画像から前記異物情報の補助となる補助異物情報を検出する補助異物情報検出工程と、を備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ユーザがゴミ位置検出のための操作を行わない間でも、ゴミ位置検出の機会を捉え、時間の経過とともに変化するゴミ位置の変化に追従する頻度を上げ、ゴミ位置情報の鮮度を保つことができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明をレンズ交換式デジタル一眼レフカメラに適用した実施形態について、添付図面を参照して詳細に説明する。
【００１２】
（第１の実施形態）
本実施形態では、カメラ本体でゴミを検出して、ゴミ補正データを画像データに添付し、カメラ外部の画像処理装置で、画像データに添付されたゴミ補正データを用いて画像処理により画像データからゴミ除去処理を行なう場合について説明する。
【００１３】
図１は、本発明の第１の実施形態に係る撮像装置としてのレンズ交換式一眼レフデジタルカメラの回路構成を示すブロック図である。
【００１４】
図１において、マイクロコンピュータ４０２は、被写体像を光電変換する撮像素子（本実施形態ではＣＣＤ）４１８が出力する画像データの処理や、ＬＣＤモニタ装置４１７の表示制御をはじめ、カメラ全体の動作を制御する。
【００１５】
スイッチ（ＳＷ１）４０５は、レリーズボタン１１４（図２参照）の半押し状態でオンになり、スイッチ（ＳＷ１）４０５がオンすると本実施形態のデジタルカメラは撮影準備状態になる。スイッチ（ＳＷ２）４０６は、レリーズボタン１１４が最後まで押された状態（全押し状態）でオンし、スイッチ（ＳＷ２）４０６がオンすると本実施形態のデジタルカメラは撮影動作を開始する。
【００１６】
レンズ制御回路４０７は、撮影レンズ２００（図３参照）との通信およびＡＦ（オートフォーカス）時の撮影レンズ２００の駆動制御や絞り羽根の駆動制御を行う。
【００１７】
また図１において、外部表示制御回路４０８は、外部表示装置（ＯＬＣ）４０９や、ファインダ内の表示装置（不図示）の制御を行う。スイッチセンス回路４１０は、カメラに設けられた電子ダイヤル４１１を含む多数のスイッチ類の信号をマイクロコンピュータ４０２に伝える。
【００１８】
ストロボ発光調光制御回路４１２は、Ｘ接点４１２ａを介して接地されており、外部ストロボの制御を行う。測距回路４１３は、ＡＦのための被写体に対するデフォーカス量を検出する。測光回路４１４は、被写体の輝度を測定する。
【００１９】
なお、測光回路４１４が測定した輝度を基にして、マイクロコンピュータ４０２は、最適な露光条件の設定や、白飛びの露光条件の設定を行う。
【００２０】
シャッター制御回路４１５はシャッターの制御を行い、撮像素子に対して適正な露光や白飛びになるような露光を行う。
【００２１】
ＬＣＤモニタ装置４１７とバックライト照明装置４１６は、画像表示装置を構成している。記録装置４１９は例えばカメラ本体に着脱可能なハードディスクドライブや半導体メモリカード等である。
【００２２】
また、マイクロコンピュータ４０２には、Ａ／Ｄコンバータ４２３、バッファメモリ４２４、ＤＳＰなどからなる画像処理回路４２５、撮像素子内の所定画素そのものに欠陥があることを記憶している画素欠陥位置メモリ４２６が接続されている。また、ゴミによる画像不良を起こしている撮像素子内の画素位置を記憶しているゴミ位置メモリ４２７も接続されている。なお、画素欠陥位置メモリ４２６およびゴミ位置メモリ４２７は不揮発性メモリを用いることが好ましい。また、画素欠陥位置メモリ４２６とゴミ位置メモリ４２７は、同一メモリ空間の異なるアドレスを用いて記憶しても良い。
【００２３】
また、４２８は、マイクロコンピュータ４０２が実行するプログラム等を記憶する不揮発性のメモリである。
【００２４】
図２は、本実施形態に係るデジタルカメラの外観を示す斜視図、図３は図２の垂直断面図である。
【００２５】
図２において、カメラ本体１００の上部には、ファインダ観察用の接眼窓１１１、ＡＥ（自動露出）ロックボタン１１２、ＡＦの測距点選択ボタン１１３、撮影操作をするためのレリーズボタン１１４が設けられている。また、電子ダイヤル４１１、撮影モード選択ダイヤル１１７、および外部表示装置４０９も設けられている。電子ダイヤル４１１は、他の操作ボタンと併用してカメラに数値を入力したり、撮影モードを切り換えたりするための多機能信号入力装置である。また、外部表示装置４０９は、液晶表示装置から構成され、シャッタースピード、絞り、撮影モードなどの撮影条件や、他の情報を表示する。
【００２６】
また、カメラ本体１００の背面には、撮影された画像や各種設定画面などを表示するＬＣＤモニタ装置４１７、ＬＣＤモニタ装置４１７をオン／オフするためのモニタスイッチ１２１、十字配置スイッチ１１６、およびメニューボタン１２４が設けられている。
【００２７】
十字配置スイッチ１１６は、上下左右に配された４つのボタンと、中央に配されたＳＥＴボタンを有し、ユーザがＬＣＤモニタ装置４１７に表示されるメニュー項目などの選択や実行をカメラに指示するために用いられる。
【００２８】
メニューボタン１２４は、ＬＣＤモニタ装置４１７にカメラの各種設定を行うためのメニュー画面を表示させるためのボタンである。例えば、撮影モードを選択、設定する時は、このメニューボタン１２４を押した後、十字配置スイッチ１１６の上下左右のボタンを操作して希望のモードを選択し、希望のモードが選択された状態でＳＥＴボタンを押すことにより設定が完了する。
【００２９】
このメニューボタン１２４と十字配置スイッチ１１６は、通常のゴミ取得モードの設定や、ライブビュー開始時にゴミ情報を取得するかの選択などに使用される。
【００３０】
本実施形態のＬＣＤモニタ装置４１７は透過型であるため、ＬＣＤモニタ装置の駆動だけでは画像を視認することはできず、必ずその裏面には図３に示すようにバックライト照明装置４１６が必要である。このようにＬＣＤモニタ装置４１７とバックライト照明装置４１６は画像表示装置を構成している。
【００３１】
図３に示すように、撮像光学系である撮影レンズ２００はカメラ本体１００に対してレンズマウント２０２を介して着脱可能である。図３において２０１は撮影光軸、２０３はクイックリターンミラーである。
【００３２】
クイックリターンミラー２０３は撮影光路中に配置され、撮影レンズ２００からの被写体光をファインダ光学系に導く位置（図３に示す位置、斜設位置と呼ぶ）と撮影光路外に退避する位置（退避位置と呼ぶ）との間で移動可能である。
【００３３】
図３において、ピント板２０４上にはクイックリターンミラー２０３からファインダ光学系に導かれる被写体光が結像される。２０５はファインダの視認性を向上させるためのコンデンサレンズ、２０６はペンタゴナルダハプリズムであり、ピント板２０４およびコンデンサレンズ２０５を通った被写体光をファインダ観察用の接眼レンズ２０８および測光センサ２０７に導く。
【００３４】
２０９、２１０はそれぞれシャッターを構成する後幕と先幕で、これら後幕２０９、先幕２１０の開放によって後方に配置されている固体撮像素子である撮像素子４１８が必要時間だけ露光される。撮像素子４１８によって画素毎の電気信号に変換された撮影画像は、Ａ／Ｄコンバータ４２３や画像処理回路４２５などによって処理され、画像データとして記録装置４１９に記録される。なお、撮像素子４１８の前方には、光学ローパスフィルタ等の光学素子４１８ａが配置されており、この光学素子４１８ａの表面に付着したゴミ等の異物の影が撮影画像に写り込む。
【００３５】
マイクロコンピュータ４０２の制御により、後幕２０９、先幕２１０を開放したままの状態で電子シャッターが実現される。
【００３６】
撮像素子４１８はプリント基板２１１に保持されている。このプリント基板２１１の後方には、もう一枚のプリント基板である表示基板２１５が配置されている。この表示基板２１５の反対側の面にＬＣＤモニタ装置４１７およびバックライト照明装置４１６が配置されている。
【００３７】
４１９は画像データを記録する記録装置、２１７は電池（携帯用電源）である。この記録装置４１９および電池２１７は、カメラ本体に対して着脱可能である。
【００３８】
（通常のゴミ検出処理）
図４は、本実施形態に係るデジタルカメラにおけるゴミ検出処理（ゴミによって画像不良が生じている画素位置の検出処理）を説明するフローチャートである。当該処理は、マイクロコンピュータ４０２がメモリ４２８に記憶されたゴミ検出処理プログラムを実行することにより実施される。
【００３９】
ゴミ検出処理は、ゴミ検出用画像（異物検出用画像）を撮像することにより行われる。ゴミ検出処理を行う場合、面光源装置の出射面や白い壁などの均一な色を持つ面にレンズ２００の撮影光軸２０１を向けてカメラを設置し、ゴミ検出の準備を行なう。
【００４０】
準備が終了した後、例えば十字配置スイッチ１１６からゴミ検出処理の開始が指示されると、マイクロコンピュータ４０２は、まず絞りの設定を行う。撮像素子近傍のゴミはレンズの絞り値によって結像状態が変わり、レンズの瞳位置によって位置が変化する。したがって、ゴミ補正データ（異物情報）にはゴミの位置や大きさに加え、検出時の絞り値とレンズの瞳位置を保持する必要がある。
【００４１】
ただし、ゴミ補正データを作成する段階で、異なるレンズを用いたとしても常に同じ絞り値を使うことを予め決めておけば、必ずしもゴミ補正データ内に絞り値を保持する必要はない。また、瞳位置に関してもライトユニットを用いたり、特定のレンズのみの使用を許可することで、同様に必ずしもゴミ補正データ内に瞳位置を保持する必要はなくなる。つまり、ゴミ補正データを作成する段階において、使用するレンズを複数許したり、絞り込む絞り値を適宜変更する場合には、検出時の絞り値とレンズの瞳位置を、ゴミ補正データ内に保持する必要があると言える。なお、ここで瞳位置とは、射出瞳の撮像面（焦点面）からの距離をいう。
【００４２】
通常のゴミ検出処理においては、ユーザが白壁などの一様な被写体を撮影して、壁のしみなどが写りこまない限界として、Ｆ２２を指定する（ステップＳ２１）。
【００４３】
次にマイクロコンピュータ４０２はレンズ制御回路４０７に対し、撮影レンズ２００の絞り羽根制御を行わせ、ステップＳ２１で指定された絞り値に絞りを設定する（ステップＳ２２）。さらに、フォーカス位置を無限遠に設定する（ステップＳ２３）。
【００４４】
撮影レンズの絞り値とフォーカス位置が設定されると、ゴミ検出モードでの撮影を実行する（ステップＳ２４）。ステップＳ２４で行う撮像処理ルーチンの詳細に関しては図１１を用いて後に説明する。撮影された画像データは、バッファメモリ４２４に格納される。
【００４５】
撮影が終了すると、撮影時の絞り値とレンズ瞳位置を取得する（ステップＳ２５）。画像処理回路４２５にバッファメモリ４２４に記憶されている撮影画像の各画素に対応するデータを呼び出す（ステップＳ２６）。画像処理回路４２５は、図８に示す処理を行い、撮像画面内のゴミが存在する画素の位置と大きさを取得する（ステップＳ２７）。ステップＳ２７で取得したゴミが存在する画素の位置と大きさ、およびステップＳ２５で取得した絞り値とレンズ瞳位置情報を、ゴミ位置メモリ４２７に登録する（ステップＳ２８）。
【００４６】
ここで、ステップＳ２８において、予め画素欠陥位置メモリ４２６に記録されている製造時からの不良画素（画素欠陥）の位置と、読み出した画素データの位置を比べて画素欠陥であるかどうかを確認する。そして、画素欠陥によるものでは無いと判断された領域のみ、ゴミ位置メモリ４２７に位置を登録しても良い。
【００４７】
ゴミ位置メモリ４２７に格納されるゴミ補正データのデータ形式例を図７に示す。図７に示した通り、ゴミ補正データには、検出用画像撮影時の、レンズ情報とゴミの位置、大きさの情報が格納される。このゴミ補正データは、通常撮影時に画像データの撮影時情報と共に画像に付加し、後に説明するゴミ除去処理で利用する。
【００４８】
具体的には、検出画像撮影時のレンズ情報として、検出画像撮影時における実際の絞り値（Ｆ値）と、そのときのレンズ瞳位置を格納する。続いて記憶領域に検出したゴミ領域の数（整数値）を格納し、これに続き、個々の具体的なゴミ領域のパラメータを、ゴミ領域の数だけ繰返して格納する。ゴミ領域のパラメータは、ゴミの半径（例えば２バイト）、有効画像領域における中心のｘ座標（例えば２バイト）、おなじく中心のｙ座標（例えば２バイト）の３つの数値のセットである。
【００４９】
ゴミ位置メモリ４２７の大きさ等によりゴミ補正データサイズに制限がある場合、ステップＳ２７で得たゴミ領域の先頭から優先してデータを格納する。これは、ステップＳ２７のゴミ領域取得ルーチン内では、後述するようにゴミ領域を、目立つゴミの順にソートするからである。
【００５０】
（ゴミ領域取得ルーチン）
次に、図８から図１０を用いて、ステップＳ２７で行うゴミ領域取得ルーチンの詳細について説明する。
【００５１】
図９に示すように、呼び出した画像データをメモリ上に展開し、予め定められたブロック単位で処理を行う。これは、レンズやセンサ特性に起因する周辺減光に対応するためである。周辺減光とは、レンズの中央部に比べ周辺部の輝度が落ちてしまう現象であり、レンズの絞りを小さくすることである程度軽減されることが知られている。しかし、絞りを絞った状態でも、撮影画像に対して予め定められたスレッショルド値でゴミ位置の判定を行うと、レンズによっては周辺部のゴミが正確に検出できなくなるという問題がある。そこで、画像をブロック分割して周辺減光の影響を軽減する。
【００５２】
単純にブロック分割すると、ブロックとブロックの間でスレッショルド値が異なる場合、ブロック間をまたぐゴミの検出結果がずれてしまうという問題がある。そこで、ブロック間をオーバーラップさせ、オーバーラップ領域を構成するブロックのいずれかでゴミと判定された画素をゴミ領域として扱う。
【００５３】
ブロック内のゴミ領域判定は、図８に示す処理の流れで行う。まず、ブロック内の最大輝度Ｌmax、平均輝度Ｌaveを算出し、次式を用いてブロック内のスレッショルド値Ｔ１を算出する。
【００５４】
Ｔ１＝Ｌave×０.６＋Ｌmax×０.４
次に、スレッショルド値を超えない画素をゴミ画素とし（ステップＳ６１）、ゴミ画素によって構成される孤立領域を各々一つのゴミ領域ｄｉ（ｉ＝０，１，…，ｎ）とする（ステップＳ６２）。図１０に示すように、ゴミ領域毎に、ゴミ領域を構成する画素の水平方向の座標の最大値Ｘmaxおよび最小値Ｘmin、垂直方向の座標の最大値Ｙmaxおよび最小値Ｙminを求め、ゴミ領域ｄｉのサイズを表す半径ｒｉを次式によって算出する（ステップＳ６３）。
【００５５】
ｒｉ＝√[｛（Ｘmax−Ｘmin）／２｝2＋｛（Ｙmax−Ｙmin）／２｝2]
Ｘmax、Ｘmin、Ｙmax、Ｙminとｒｉの関係を、図１０に示す。
【００５６】
その後ステップＳ６４で、ゴミ領域毎の平均輝度値を算出する。
【００５７】
ゴミ位置メモリ４２７のサイズによる制限などにより、ゴミ補正データのデータサイズが制限されている場合がある。このような場合に対応するために、ゴミ位置情報を、大きさやゴミ領域の平均輝度値によってソートする（ステップＳ６５）。本実施形態では、ｒｉの大きい順にソートする。ｒｉが等しい場合、平均輝度値の低い順にソートする。このようにすることで、目立つゴミを優先してゴミ補正データに登録することが出来る。なお、ソート済みのゴミ領域をＤｉ、ゴミ領域Ｄｉの半径をＲｉとする。
【００５８】
なお、予め定められたサイズより大きいゴミ領域がある場合、ソートの対象から外し、ソート済みゴミ領域リストの末尾に配置しても良い。大きいゴミ領域については、後に補間処理をするとかえって画質を低下させる場合があり、補正対象の優先順位としては最下位として扱うことが望ましいからである。
【００５９】
（補助ゴミデータ用画像生成ルーチン）
次に、図５を用いて、補助ゴミデータ検出用（補助異物情報検出用）の白飛び画像の生成について説明する。
【００６０】
本実施形態では、ユーザが意図的にカメラにゴミ検出を行わせる以外に、この意図的なゴミ検出と次の意図的なゴミ検出の間に、ライブビュー動作に連動して補助ゴミ検出用画像（補助ゴミデータ用画像）を取得しゴミ検出処理を行う。このゴミ検出処理を補助ゴミデータの取得処理と呼ぶことにする。補助ゴミデータの取得処理を行うことにより、ゴミ検出処理の頻度が高まり、ゴミ補正データのアップデートをより迅速に行うことができる。
【００６１】
補助ゴミデータ用画像の生成処理は、図４のステップＳ２１からステップＳ２４までの処理に置き換わるものである。つまり、処理を開始するきっかけが、通常のゴミ補正データ用の画像生成においてはユーザによる白壁等の撮影操作であるのに対し、補助ゴミデータ用画像の生成においてはライブビューの開始である点が異なる。
【００６２】
まず、ライブビューが開始される（ステップＳ７１）と、クイックリターンミラー２０３をミラーアップする（ステップＳ７２）。シャッターを構成する後幕２０９および先幕２１０をオープンし（ステップＳ７３）、撮像素子４１８を起動する（ステップＳ７４）。ここでゴミの検出の設定がなされているかを見て、設定されている場合はステップＳ７６に進み、白飛ばし（露出をオーバーにした撮影）が可能か判定する。ゴミ検出に進む設定がされていない場合はステップＳ８１に進み、適正な露光に設定する。ゴミの検出の設定は、ユーザがメニューボタン１２４と十字配置スイッチ１１６を操作することで設定可能である。設定された情報は、カメラ内の不図示のメモリに記録される。
【００６３】
ステップＳ７６において白飛ばしが可能かどうか判断する。判断のためにマイクロコンピュータ４０２は測光回路４１４で測定された輝度を用いる。輝度が高ければ高いほど、短い露光時間で白飛びを達成できる。反対に、輝度が低すぎると露光時間を長くとらなければならない。マイクロコンピュータ４０２は、この露光時間を元に、白飛び画像を取得するのに適切な状態であるかを判断する。つまり白飛ばしが可能か否か判断する。
【００６４】
なお、ここで白飛び画像を取得するのは、露出オーバーでも光学素子４１８ａに付着した異物の影は写るので、白飛び画像を撮影することにより、光学素子４１８ａに付着した異物のみが写った画像を得ることができるからである。そして、この白飛び画像からゴミ位置データを取得することができる。
【００６５】
ステップＳ７６で白飛ばしが可能であると判断された場合はステップＳ７７に進み、ゴミを写りこませるために絞り羽根を絞る。ここではＦ２２に設定するものとする。白飛ばしが不可能であると判断された場合はステップＳ８１に進み、露光値は適正値に設定される。
【００６６】
ステップＳ７７で絞りをＦ２２に設定したら、デフォーカスし（ステップＳ７８）、マイクロコンピュータ４０２による電子シャッターで白飛びが起きるように露光し（ステップＳ７９）、補助ゴミデータ検出用の画像を得る（ステップＳ８０）。
【００６７】
補助ゴミデータ検出用の画像を得たら、適正な露光値に再設定し（ステップＳ８１）、通常のフレームの取り込みを開始する（ステップＳ８２）。最後に、ＬＣＤモニタ装置４１７でライブビュー表示を開始する（ステップＳ８３）。
【００６８】
このように、補助ゴミデータ用画像生成処理は、ライブビューを開始したあとＬＣＤモニタ装置４１７にライブビュー画像を出すまでの間に行われるため、ユーザから見ると、ライブビュー開始のための処理待ちと区別がつかない。つまりユーザが意識することなく補助ゴミデータを生成できる。
【００６９】
さらに、補助ゴミデータ用画像の生成処理はユーザに意識させてもよいことは言うまでもない。つまり、ライブビューを開始した直後にＬＣＤモニタ装置４１７にゴミ補正のためのデータを取得中である旨のメッセージを表示し、ユーザが意識的に一様な被写体を撮影するように促せば、より品質の高い補助ゴミデータ用画像が得られる。
【００７０】
取得した補助ゴミデータ用画像に対しては、通常のゴミ補正データを生成する場合と同様にして、図８に示すゴミ領域取得ルーチンを行い、補助ゴミデータを生成し、ゴミ位置メモリ４２７に登録する。
【００７１】
（差分生成ルーチン）
図６は、通常のゴミ補正データと補助ゴミデータで補正データが重複しないようにするための処理を示すフローチャートである。
【００７２】
まず、補助ゴミデータの取得工程で得られたゴミ情報をひとつ選択する（ステップＳ４１）。通常のゴミ補正データの中に、ステップＳ４１で選択されたゴミ情報と一致するものがないか検索する（ステップＳ４２）。検索の結果、一致するものが見つかった場合は、その一致する補助ゴミデータのゴミ情報は、補助ゴミデータ候補より消去される。つまり補助ゴミデータとして保存されない（ステップＳ４４）。補助ゴミデータの次のゴミ情報を選択し（ステップＳ４５）、同様の処理を、全てのゴミ情報について繰り返す。
【００７３】
なお、ゴミ情報の一致判断は、座標と半径から導かれる面の接触を判断してもよいし、座標の距離に閾値をつけて判断してもよい。たとえば座標の距離の閾値を５画素以内とすれば、補助ゴミデータのゴミ情報の座標が（Ｘ，Ｙ）＝（１００画素，１００画素）で、通常のゴミ補正データに（Ｘ，Ｙ）＝（１００画素，１０５画素）という情報が存在すれば、この補助ゴミデータのゴミ情報は、補助ゴミデータとして保存されない。
【００７４】
（撮像処理ルーチン）
次に、図１１に示すフローチャートを用いて、図４のステップＳ２４で行われる撮像処理ルーチンの詳細について説明する。当該処理はマイクロコンピュータ４０２がメモリ４２８に記憶された撮像処理プログラムを実行することにより実施される。
【００７５】
この撮像処理ルーチンが実行されると、ステップＳ２０１でマイクロコンピュータ４０２は、図３に示すクイックリターンミラー２０３を作動させ、いわゆるミラーアップを行い、撮影光路外にクイックリターンミラー２０３を退避させる。
【００７６】
次に、ステップＳ２０２で撮像素子での電荷蓄積を開始し、次のステップＳ２０３では図３に示したシャッターの先幕２１０、後幕２０９をそれぞれ走行させて露光を行う。そして、ステップＳ２０４で撮像素子の電荷蓄積を終了し、次のステップＳ２０５で撮像素子から画像信号を読み出してＡ／Ｄコンバータ４２３および画像処理回路４２５で処理した画像データをバッファメモリ４２４に一次記憶する。
【００７７】
次のステップＳ２０６で撮像素子から全ての画像信号の読み出しが終了すると、ステップＳ２０７でクイックリターンミラー２０３をミラーダウンし、クイックリターンミラーを斜設位置に戻して一連の撮像動作を終了する。
【００７８】
ステップＳ２０８にて、通常撮影かゴミ検出用画像撮影かを判断し、通常撮影時にはステップＳ２０９へ進んで撮影時のカメラ設定値等と共に図７に示したゴミ補正データを画像データに関連付けて記録装置４１９に記録する。
【００７９】
具体的には、例えば、撮影時のカメラ設定値等が記録される画像ファイルのヘッダ領域であるＥｘｉｆ領域にゴミ補正データを追記することで、関連付けを実現することができる。または、ゴミ補正データをファイルとして独立して記録し、画像データにはそのゴミ補正データファイルへのリンク情報のみを記録することで関連付けを実現することも可能である。ただし、画像ファイルとゴミ補正データファイルを別々に記録すると、画像ファイルの移動時に、リンク関係が消失する場合があるので、ゴミ補正データは画像データと一体的に保持することが望ましい。
【００８０】
（ゴミ除去処理）
次に、ゴミ除去処理の流れについて説明する。ゴミ除去処理は、デジタルカメラ本体ではなく、別途用意した画像処理装置上で行う。
【００８１】
図１２は、画像処理装置のシステム構成の概略を示した図である。
【００８２】
ＣＰＵ１００１は、システム全体の動作をコントロールし、一次記憶部１００２に格納されたプログラムの実行などを行う。一次記憶部１００２は、主にメモリであり、二次記憶部１００３に記憶されたプログラムなどを読み込んで格納する。二次記憶部１００３は、例えばハードディスクなどがこれに該当する。一般に一次記憶部の容量は二次記憶部の容量より小さく、一次記憶部に格納しきれないプログラムやデータなどは二次記憶部に格納される。また、長時間記憶しなくてはならないデータなども二次記憶部に格納される。本実施形態では、プログラムを二次記憶部１００３に格納し、プログラム実行時に一次記憶部１００２に読み込んでＣＰＵ１００１が実行処理を行う。
【００８３】
入力デバイス１００４とは例えば、システムのコントロールに用いるマウスやキーボードの他、画像データの入力に必要なカードリーダー、スキャナ、フィルムスキャナなどがこれに該当する。出力デバイス１００５とは例えば、モニタやプリンタなどが考えられる。この装置の構成方法は他にも様々な形態が考えられるが、本発明の主眼ではないので説明を省略する。
【００８４】
画像処理装置には、複数のプログラムを並列実行可能なオペレーティングシステムが搭載され、操作者はＧＵＩを使ってこの装置上で動作するプログラムの操作が可能である。
【００８５】
図１３は、画像処理装置における画像編集プログラムのＧＵＩ（Graphical User Interface）を示す図である。ウィンドウにはクローズボタン１１００とタイトルバー１１０１が備えられ、クローズボタン１１００を押すことでプログラムを終了する。ファイルを画像表示領域１１０２にドラッグアンドドロップすることで補正対象画像を指定し、補正対象画像が決定された場合、タイトルバー１１０１にファイル名を表示した後、画像表示領域１１０２に対象画像をＦiｔ表示する。実行ボタン１１０３を押すと、後述するゴミ除去処理を実行し、処理後の画像を画像表示領域１１０２に表示する。ステップ実行ボタン１１０４を押すと後述するゴミ除去処理のステップ実行を行い、全てのゴミ領域に対して処理が終了した時点で処理後の画像を画像表示領域１１０２に表示する。保存ボタン１１０５を押すと、処理後の画像を保存する。
【００８６】
画像処理装置におけるゴミ除去処理の流れを、図１４に示す。
【００８７】
まず、デジタルカメラ内又はデジタルカメラから取り外された記録装置４１９からゴミ補正データが添付された通常撮影画像データを画像処理装置に取り込んで、一次記憶部１００２又は二次記憶部１００３に記憶する（ステップＳ９０）。
【００８８】
次に、通常撮影された画像データ（ゴミ除去処理を行う対象となる画像）から、ステップＳ２０９で撮影画像に付与されたゴミ補正データを抽出する（ステップＳ９１）。さらに、補助ゴミデータが存在するか確認し（ステップＳ９２）、存在すれば読み取り（ステップＳ９３）、通常のゴミ補正データと結合する（ステップＳ９４）。結合は、通常のゴミ補正データと補助ゴミデータそれぞれの座標、大きさ、絞り値、瞳位置を単純なデータ列として保持してもよいし、通常のゴミ補正データと補助ゴミデータを別々に保持してもよい。
【００８９】
次に、ステップＳ９１〜Ｓ９４で抽出したゴミ補正データから座標列Ｄｉ（ｉ＝１，２，…ｎ）、半径列Ｒｉ（ｉ＝１，２，…，ｎ）、絞り値ｆ１とレンズ瞳位置Ｌ１を得る（ステップＳ９５）。ここでＲｉは、図８のステップＳ６５で算出した座標Ｄｉのゴミの大きさである。ステップＳ９６で、通常撮影された画像の撮影時の絞り値ｆ２とレンズ瞳位置Ｌ２を取得し、ステップＳ９７でＤｉを次式で変換する。ここで、ｄは画像中心から座標Ｄｉまでの距離、Ｈは撮像素子４１８の表面とゴミとの距離であるとする。変換後の座標Ｄｉ’と変換後の半径Ｒｉ’は例えば次式で定義する。
【００９０】
Ｄｉ’（ｘ，ｙ）＝（Ｌ２×（Ｌ１−Ｈ）×ｄ／（（Ｌ２−Ｈ）×Ｌ１））×Ｄｉ（ｘ，ｙ）
Ｒｉ’＝（Ｒｉ×ｆ１／ｆ２＋３）              （１）
ここでの単位はピクセルであり、Ｒｉ’についての「＋３」はマージン量である。
【００９１】
ステップＳ９８で座標Ｄｉ’、半径Ｒｉ’で示される領域内のゴミを検出し、必要に応じて補間処理を適用する。補間処理の詳細については後述する。ステップＳ９９で全ての座標についてゴミ除去処理を適用したかどうかを判定し、全ての座標について処理が終わっていれば処理を終了し、そうでなければステップＳ９８に戻る。
【００９２】
（補間ルーチン）
次に、ゴミ領域の補間処理の詳細について述べる。補間ルーチンの流れを示すフローチャートを図１５に示す。まずステップＳ１２０１で、ゴミ領域判定を行う。ゴミ領域とは、次の条件全てを満たす領域とする。
（１）図１４のステップＳ９７で算出した中心座標Ｄｉ’、半径Ｒｉ’（式（１）で求められたＤｉ’，Ｒｉ’）に含まれる画素の平均輝度Ｙaveと最高輝度Ｙmaxを用いて次式で求められるスレッショルド値Ｔ２より暗い領域。
【００９３】
Ｔ２＝Ｙave×０.６＋Ｙmax×０.４
（２）上記の中心座標Ｄｉ’、半径Ｒｉ’の円と接しない領域。
（３）（１）で選択された輝度の低い画素によって構成される孤立領域に対し、図８中のステップＳ６３と同様の方法で算出した半径値がl１画素以上、l２画素未満である領域。
（４）円の中心座標Ｄｉを含む領域。
【００９４】
本実施形態では、l１は３画素、l２は３０画素とする。このようにすることで、孤立した小領域だけをゴミ領域として扱うことが可能になる。また、レンズ瞳位置が正確に取得できない場合には、（４）の条件は幅を持たせても良い。例えば、着目領域が座標ＤｉからＸ方向、Ｙ方向に夫々±３画素の範囲の座標を含めば、ゴミ領域と判定するなどという条件が考えられる。
【００９５】
ステップＳ１２０２で、このような領域があればステップＳ１２０３へ進みゴミ領域補間を行い、存在しない場合は処理を終了する。ステップＳ１２０３で実行するゴミ領域補間処理は、公知の欠損領域補間法で行う。公知の欠損領域補間法には例えば、特開２００１−２２３８９４号公報に開示されているパターン置換がある。特開２００１−２２３８９４号公報では赤外光を用いて欠損領域を特定しているが、本実施形態ではステップＳ１２０１で検出したゴミ領域を欠損領域として扱い、パターン置換によりゴミ領域を周囲の正常画素で補間する。パターン置換で埋められない画素については、パターン補間後の画像データに対し、補間対象画素に最も近い順に正常画素をｐ個選択し、その平均色を用いて補間する。
【００９６】
このように画像にゴミ補正データを添付することで、ゴミ補正用画像データと撮影画像データの対応を意識する必要が無くなるという利点がある。また、ゴミ補正データが位置、大きさ、変換用データ（絞り値、レンズの瞳位置の距離情報）で構成されるコンパクトなデータであるので、撮影画像データサイズが極端に大きくなることもない。また、ゴミ補正データで指定された画素を含む領域だけを補間処理することにより、誤検出の確率を大幅に低減することが可能になる。
【００９７】
さらに本実施形態では、ゴミ補正データを取得してから次のゴミ補正データを取得するまでの間に、補助ゴミデータを取得するので、時間の経過とともに変化するゴミ位置の変化に追従する頻度を上げ、ゴミ位置情報の鮮度を保つことができる。
【００９８】
（第２の実施形態）
上記の第１の実施形態では、補助ゴミデータを取得したらゴミ補正データとの差分をとり、保存してあとから利用したが、補助ゴミデータはゴミ補正データの検証として利用してもよい。すなわち、補助ゴミデータとゴミ補正データの差異の程度を測定し、ゴミ補正データの鮮度を知ることができる。
【００９９】
図１６は補助ゴミデータでゴミ補正データの検証を行う方法の例を説明するフローチャートである。
【０１００】
まず、ゴミ補正データと補助ゴミデータの差異を数えるカウンタをゼロにリセットする（ステップＳ１０１）。次にゴミ補正データをロードし（ステップＳ１０２）、データの中からひとつゴミ座標情報を抽出する（ステップＳ１０３）。ステップＳ１０４で、抽出した座標からそのゴミの半径以内の距離に補助ゴミデータのゴミ座標が含まれていなかったら、ステップＳ１０５に進み、差異を数えるカウンタをカウントアップする。補助ゴミデータのゴミ座標が含まれていたらステップＳ１０６に進む。ステップＳ１０６ではゴミ補正データの全データを調査完了したかを判定し、全データを調査完了していたらステップＳ１０７に進み、差異のカウントをメモリ４２８などに保存するなどして、参照できるようにする。調査完了していない場合はステップＳ１０３に戻り、次のゴミ補正データをひとつ抽出する。
【０１０１】
このようにして生成した差異データは、差異のカウントが一定値以上になったらユーザに警告するなどの利用が考えられ、ゴミ補正データの鮮度の向上に寄与する。
【０１０２】
（他の実施形態）
また、各実施形態の目的は、次のような方法によっても達成される。すなわち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行する。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、本発明には次のような場合も含まれる。すなわち、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【０１０３】
さらに、次のような場合も本発明に含まれる。すなわち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【０１０４】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明した手順に対応するプログラムコードが格納されることになる
また、第一の実施例および第二の実施例では、ゴミ位置情報生成用の画像からゴミ位置情報を生成し、保存するが、ゴミ位置情報生成用の画像を保存しておき、ＰＣなどでゴミ位置情報を抽出して利用することも可能なことは言うまでもない。
【０１０５】
さらに、ゴミ位置情報生成用の画像は、静止画として保存可能なことはさることながら、動画のフレームとして保存してもよいことは言うまでもない。
【図面の簡単な説明】
【０１０６】
【図１】本発明の第１の実施形態に係る撮像装置としてのレンズ交換式デジタル一眼レフカメラの回路構成を示すブロック図である。
【図２】第１の実施形態に係るデジタルカメラの外観斜視図である。
【図３】第１の実施形態に係るデジタルカメラの内部構造を示す垂直断面図である。
【図４】第１の実施形態に係るデジタルカメラにおけるゴミ検出処理を説明するフローチャートである。
【図５】第１の実施形態に係るデジタルカメラにおけるライブビュー開始時の白飛び画像取得処理を説明するフローチャートである。
【図６】第１の実施形態に係るデジタルカメラにおける補助ゴミデータからゴミ補正データと重なるデータを外す処理を説明するフローチャートである。
【図７】ゴミ補正データのデータ形式例を示す図である。
【図８】図４のステップＳ２７で行われるゴミ領域取得ルーチンの詳細を説明する図である。
【図９】図８のステップＳ６２で行われるゴミ領域判定処理の処理単位を示す図である。
【図１０】図８のステップＳ６３で行われるゴミ領域サイズ算出の概要を示す図である。
【図１１】図４のステップＳ２４で行われる撮像処理ルーチンの詳細を説明するフローチャートである。
【図１２】画像処理装置のシステム構成の概略を示した図である。
【図１３】画像処理装置におけるＧＵＩの例を示す図である。
【図１４】ゴミ除去処理の詳細を説明するフローチャートである。
【図１５】補間ルーチンの詳細を説明するフローチャートである。
【図１６】第２の実施形態に係るデジタルカメラにおけるゴミ補正データの検証処理の例を説明するフローチャートである。
【図１】
0005094571.tif 000002
【図２】
0005094571.tif 000003
【図３】
0005094571.tif 000004
【図４】
0005094571.tif 000005
【図５】
0005094571.tif 000006
【図６】
0005094571.tif 000007
【図７】
0005094571.tif 000008
【図８】
0005094571.tif 000009
【図９】
0005094571.tif 000010
【図１０】
0005094571.tif 000011
【図１１】
0005094571.tif 000012
【図１２】
0005094571.tif 000013
【図１３】
0005094571.tif 000014
【図１４】
0005094571.tif 000015
【図１５】
0005094571.tif 000016
【図１６】
0005094571.tif 000017