(57)【要約】【課題】画像構造の保存性を維持しつつ、有彩色部の一部で残留する白傷・黒傷の突出点を効果的に除去すること。【解決手段】画像処理装置１００は、複数の色成分からなり、１つの画素に１つの色成分を有する複数の画素からなる画像データを入力する画像入力手段１０３と、画像データの１つの処理対象画素に対し、該処理対象画素を除く周辺画素で異なる色成分間の画素値の変化量を複数の画素の間で算出する画素値変化量算出手段１０３と、複数の画素の間で算出された画素値変化量の分布幅を算出する分布幅算出手段１０３と、算出された画素値変化量の分布幅が所定の閾値よりも小さな値を示すとき、処理対象画素は緩やかに変化する画像領域に存在すると判別し、算出された画素値変化量の分布幅が所定の閾値よりも大きな値を示すとき、処理対象画素は激しく変化する画像領域に存在すると判別する判別手段１０３と、を備える。【選択図】図１
2014127746.tif 000002
【特許請求の範囲】
【請求項１】
複数の色成分からなり、１つの画素に１つの色成分を有する複数の画素からなる画像データを入力する画像入力手段と、
前記画像データの１つの処理対象画素に対し、該処理対象画素を除く周辺画素で異なる色成分間の画素値の変化量を複数の画素の間で算出する画素値変化量算出手段と、
前記複数の画素の間で算出された画素値変化量の分布幅を算出する分布幅算出手段と、
前記算出された画素値変化量の分布幅が所定の閾値よりも小さな値を示すとき、処理対象画素は緩やかに変化する画像領域に存在すると判別し、前記算出された画素値変化量の分布幅が所定の閾値よりも大きな値を示すとき、処理対象画素は激しく変化する画像領域に存在すると判別する判別手段と、
を備えたことを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記画像データの１つの処理対象画素に対し、該処理対象画素と同じ色成分を有する複数の周囲の同色画素と、前記複数の周囲の同色画素よりも前記処理対象画素に近接して存在する、前記処理対象画素とは異なる色成分を有する複数の周囲の異色画素からなる第１のグループの画素値の中から最大値を算出する第１のグループの最大値算出手段と、
前記画像データの１つの処理対象画素に対し、該処理対象画素と同じ色成分を有する複数の周囲の同色画素からなる第２のグループの画素値の中から最大値を算出する第２のグループの最大値算出手段と、
前記判別手段によって前記処理対象画素が緩やかに変化する画像領域に存在すると判別された場合は、前記第２のグループの最大値算出手段で算出された最大値を用いて前記処理対象画素を補正し、前記判別手段によって前記処理対象画素が激しく変化する画像領域に存在すると判別された場合は、前記第１のグループの最大値算出手段で算出された最大値を用いて前記処理対象画素を補正する補正手段と、
をさらに備えることを特徴とする画像処理装置。
【請求項３】
請求項１に記載の画像処理装置において、
前記画像データの１つの処理対象画素に対し、該処理対象画素と同じ色成分を有する複数の周囲の同色画素と、前記複数の周囲の同色画素よりも前記処理対象画素に近接して存在する、前記処理対象画素とは異なる色成分を有する複数の周囲の異色画素からなる第１のグループの画素値の中から最小値を算出する第１のグループの最小値算出手段と、
前記画像データの１つの処理対象画素に対し、該処理対象画素と同じ色成分を有する複数の周囲の同色画素からなる第２のグループの画素値の中から最小値を算出する第２のグループの最小値算出手段と、
前記判別手段によって前記処理対象画素が緩やかに変化する画像領域に存在すると判別された場合は、前記第２のグループの最小値算出手段で算出された最小値を用いて前記処理対象画素を補正し、前記判別手段によって前記処理対象画素が激しく変化する画像領域に存在すると判別された場合は、前記第１のグループの最小値算出手段で算出された最小値を用いて前記処理対象画素を補正する補正手段と、
をさらに備えることを特徴とする画像処理装置。
【請求項４】
請求項１に記載の画像処理装置において、
前記分布幅算出手段は、前記複数の画素の間で算出された複数の画素値変化量に対して、それらの間の変化量を分布幅として算出することを特徴とする画像処理装置。
【請求項５】
請求項１に記載の画像処理装置において、
前記分布幅算出手段は、複数の画素の間で算出された複数の画素値変化量の内、変化量の最大値と最小値を求め、その間の変化量を分布幅として算出することを特徴とする画像処理装置。
【請求項６】
請求項１に記載の画像処理装置において、
前記画像が少なくとも３種類の色成分からなるとき、
前記画素値変化量算出手段は、少なくとも３種類の異なる色成分間の画素値変化量を算出することを特徴とする画像処理装置。
【請求項７】
請求項１に記載の画像処理装置において、
前記判別手段は、前記所定の閾値にノイズのゆらぎ幅に基づく値を設定することを特徴とする画像処理装置。
【請求項８】
請求項１に記載の画像処理装置において、
前記判別手段は、前記緩やかに変化する画像領域をグラデーション部ないしは平坦部に属する領域と判別し、前記激しく変化する画像領域をテキスチャ部に属する領域と判別することを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関する。
【背景技術】
【０００２】
固体撮像素子を長時間露光すると、蓄積時間に対して正比例せずに、周辺画素よりも突出して明るくなる画素や周辺画素よりも突出して暗くなる画素が多数現れてくる。これらは一般に白傷（hot pixel）、黒傷（cold pixel）と呼ばれ、露光時間が長くなるほど、また撮像感度が高くなるほど出現する画素の割合が多くなってくる性質をもつ。これらの欠陥画素を補正するのに通常、MaxフィルタとMinフィルタが用いられる。すなわち、周囲画素の最大値と最小値を計算して、処理対象画素の画素値が周囲画素の最大値や最小値よりも突出していればこれらの値で置き換える。特許文献１には、Bayer配列のようなカラーの単板撮像素子の入力面に対して、Max,Minフィルタを用いて直接Bayer面の段階で白傷、黒傷補正をする方法が開示されている。Bayer面上で処理対象画素を中心に５×５画素の範囲に含まれる同色画素の周辺８点の画素値を用いてMax,Minフィルタが構成される。
【０００３】
しかしながら、特許文献１の方法では、参照する同色画素が最近接画素よりも離れて存在するため、空間分解能の低いフィルタ特性とならざるをえない。したがって、突出点は除去するものの、画像の構造破壊が極めて大きい結果しか得られないという問題があった。そこで、本出願人と同一発明者による特許文献２には、同色画素も参照しつつ、同時にそれより近接して存在する異色画素も用いて空間分解能の高いMax,Minフィルタを構成する方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第７２０２８９４号明細書
【特許文献２】特開２０１１−１３５５６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献２の方法によれば、通常、長時間露光の撮影に用いられる夜景などの撮影頻度の多いシーンでは、有効に突出点を除去しつつ、画像の構造破壊を防止する機能が実現できる。しかしながら、マクベスチャートのような有彩色部を多く含むシーンを敢えて長時間露光によって撮影すると、有彩色のカラーパッチの領域で、元の白傷や黒傷の突出点よりは随分と強度が減衰されているものの、突出点が依然として残留して見える場合が、特に彩度の高い領域で発生するという問題があった。
【課題を解決するための手段】
【０００６】
本発明による画像処理装置は、複数の色成分からなり、１つの画素に１つの色成分を有する複数の画素からなる画像データを入力する画像入力手段と、画像データの１つの処理対象画素に対し、該処理対象画素を除く周辺画素で異なる色成分間の画素値の変化量を複数の画素の間で算出する画素値変化量算出手段と、複数の画素の間で算出された画素値変化量の分布幅を算出する分布幅算出手段と、算出された画素値変化量の分布幅が所定の閾値よりも小さな値を示すとき、処理対象画素は緩やかに変化する画像領域に存在すると判別し、算出された画素値変化量の分布幅が所定の閾値よりも大きな値を示すとき、処理対象画素は激しく変化する画像領域に存在すると判別する判別手段と、を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、画像構造の保存性を維持しつつ、有彩色部の一部で残留する白傷・黒傷の突出点を効果的に除去し得る。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施の形態によるカメラの構成を例示するブロック図である。
【図２】制御装置が実行する補正処理の流れを説明するフローチャートである。
【図３】処理対象の周辺画素の値を用いて最大値と最小値を算出する場合の参照画素位置を示す図である。
【図４】図４(a)は、Ｒ／ＢサイトにおいてＲＧ間の色差Ｃｒを算出する場合の参照画素位置を例示する図、図４(b)は、Ｒ／ＢサイトにおいてＢＧ間の色差Ｃｂを算出する場合の参照画素位置を例示する図、図４(c)は、Ｒ／ＢサイトにおいてＲＢ間の色差Ｃｇを算出する場合の参照画素位置を例示する図、図４(d)は、ＧサイトにおいてＲＧ間の色差Ｃｒを算出する場合の参照画素位置を例示する図、図４(e)は、ＧサイトにおいてＢＧ間の色差Ｃｂを算出する場合の参照画素位置を例示する図、図４(f)は、ＧサイトにおいてＲＢ間の色差Ｃｇを算出する場合の参照画素位置を例示する図である。
【図５】Max,Minフィルタ処理の流れを例示するフローチャートである。
【図６】画素値の作業用変数を説明する図である。
【図７】コンピュータを例示する図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して本発明を実施するための形態について説明する。図１は、本発明の一実施の形態による画像処理装置を搭載するカメラの構成を例示するブロック図である。カメラ１００は、操作部材１０１と、撮像素子１０２と、制御装置１０３と、メモリカードスロット１０４と、モニタ１０５とを備えている。操作部材１０１は、使用者によって操作される種々の入力部材、例えば電源ボタン、レリーズボタン、ズームボタン、十字キー、決定ボタン、再生ボタン、削除ボタンなどを含んでいる。
【００１０】
撮像素子１０２は、ＣＭＯＳイメージセンサーなどによって構成される。撮像素子１０２は、不図示のレンズにより結像される被写体像を撮像する。そして、撮像によって得られた画像信号を制御装置１０３へ出力する。
【００１１】
制御装置１０３は、メモリ、およびその他の周辺回路により構成され、カメラ１００が行う撮影動作を制御する。制御装置１０３を構成するメモリには、ＳＤＲＡＭやフラッシュメモリが含まれる。ＳＤＲＡＭは揮発性のメモリであって、制御装置１０３がプログラム実行時にプログラムを展開するためのワークメモリとして使用される。また、ＳＤＲＡＭは、データを一時的に記憶するためのバッファメモリとしても使用される。一方、フラッシュメモリは不揮発性のメモリであって、制御装置１０３が実行するプログラムのデータや、プログラム実行時に読込まれる種々のパラメータなどが記録されている。
【００１２】
メモリカードスロット１０４は、記憶媒体としてのメモリカードを挿入するためのスロットである。制御装置１０３は、撮影処理を行なうことによって生成した画像ファイルを、メモリカードスロット１０４に挿入されているメモリカードへ書込んで記録する。また、制御装置１０３は、メモリカードスロット１０４に挿入されているメモリカード内に記録されている画像ファイルを読込む。
【００１３】
モニタ１０５は、カメラ１００の背面に搭載された液晶モニタ（背面モニタ）である。当該モニタ１０５には、メモリカードに記録されている画像ファイルに基づく再生画像や、カメラ１００を設定するための設定メニューなどが表示される。また、使用者が操作部材１０１を操作してカメラ１００を撮影モードに設定すると、制御装置１０３は、撮像素子１０２から時系列で取得した画像の表示用画像データをモニタ１０５に出力する。これによってモニタ１０５にスルー画が表示される。
【００１４】
本実施形態では、撮像素子１０２を単板式カラー撮像素子によって構成し、その撮像面にはＲ（赤）、Ｇ（緑）、およびＢ（青）のカラーフィルタがBayer配列されているものとする。すなわち、撮像素子１０２から制御装置１０３に出力される画像データはＲＧＢ表色系で示されるものとし、この画像データを構成する各々の画素には、ＲＧＢの何れか１つの色成分の色情報が存在する。
【００１５】
本実施形態は、上記カメラ１００の制御装置１０３が実行する白傷および黒傷に対する欠陥画素補正処理に特徴を有するので、以下の説明はこの補正処理を中心に行う。図２は、制御装置１０３が実行する補正処理の流れを説明するフローチャートである。図２のステップＳ１０において、制御装置１０３は、撮像素子１０２からBayer画像データを読み出す。これにより、制御装置１０３には、光量に対して線型階調のBayer画像データが入力される。
【００１６】
その後、制御装置１０３はステップＳ２０へ進み、ホワイトバランス補正を行う。例えば、制御装置１０３は、ＲＧＢ間のホワイトバランス・ゲインがＲ／Ｇ＝ｋ１、Ｂ／Ｇ＝ｋ２のとき、Bayer面のＲ画素にはｋ１倍のゲインを、Ｂ画素にはｋ２倍のゲインを掛ける。その後、ステップＳ３０へ進む。
【００１７】
ステップＳ３０において、制御装置１０３は白傷と黒傷を補正する。本説明では、ホワイトバランス補正の済んだBayer画像データをSin［i,j］で表す。制御装置１０３は、Sin［i,j］に突出点除去フィルタを掛けて補正したデータSout［i,j］を出力するものとする。ここでは、Bayer面上の色成分毎に異なるフィルタを定義する例を示す。ただし、Ｒ／Ｂ画素では同じパターンとなる。
【００１８】
＜データコピー＞
制御装置１０３は、次式（１）によりデータコピーを行う。
Sout［i,j］＝Sin［i,j］                    ・・・（１）
【００１９】
＜Max,Minフィルタ＞
制御装置１０３は、以下の手順でMax,Minフィルタを掛けて白傷・黒傷補正を行う。図３は、例えば５×５画素の範囲の中心に処理対象画素があるとき、周辺画素の値を用いて最大値と最小値を算出する場合の参照画素位置を示す図である。ここで、中心画素がBayer面上のＲないしはＢに該当するときをＲ／Ｂサイトと呼び、中心画素がＧに該当するときをＧサイトと呼ぶ。
【００２０】
図３(a)は、Ｒ／Ｂサイトにおいて同色画素のみで最大値と最小値を算出する場合の参照画素位置を例示する図、図３(b)はＲ／Ｂサイトにおいて異色画素込みで最大値と最小値を算出する場合の参照画素位置を例示する図、図３(c)はＧサイトにおいて同色画素のみで最大値と最小値を算出する場合の参照画素位置を例示する図、図３(d)はＧサイトにおいて異色画素込みで最大値と最小値を算出する場合の参照画素位置を例示する図である。
【００２１】
「発明が解決しようとする課題」の項で述べたように、異色画素込みのMax,Minフィルタを掛けても突出点が残留する領域は、有彩色部の平面的な画像構造をしている領域である。有彩色部かつテキスチャ部では、このような影響は画像構造と区別がつかなくなって影響がないといえる。したがって、見分けなければならないのは、有彩色部でグラデーション部領域や平坦部領域をなす画像構造のところである。このような領域は、緩やかにしか画像構造が変化しないので、空間分解能の低い同色のみのMax,Minフィルタを用いても空間構造破壊を生じることはない。ゆえに、まず、Bayer面上でそこが有彩色部のグラデーション部や平坦部に相当する領域か否かを判定する。
【００２２】
図４は、上記５×５画素の範囲において処理対象画素が中央にあるとき、処理対象画素周辺の画像領域が、テキスチャ構造なのか、平坦構造やグラデーション構造なのかを判別するために演算する相関量の算出を説明する図である。図４(a)は、Ｒ／ＢサイトにおいてＲＧ間の色差Ｃｒを算出する場合の参照画素位置を例示する図、図４(b)は、Ｒ／ＢサイトにおいてＢＧ間の色差Ｃｂを算出する場合の参照画素位置を例示する図、図４(c)は、Ｒ／ＢサイトにおいてＲＢ間の色差Ｃｇを算出する場合の参照画素位置を例示する図、図４(d)は、ＧサイトにおいてＲＧ間の色差Ｃｒを算出する場合の参照画素位置を例示する図、図４(e)は、ＧサイトにおいてＢＧ間の色差Ｃｂを算出する場合の参照画素位置を例示する図、図４(f)は、ＧサイトにおいてＲＢ間の色差Ｃｇを算出する場合の参照画素位置を例示する図である。
【００２３】
本実施形態では、対象画素周辺の画像領域が有彩色部のグラデーション部や平坦部に相当する領域か否かを判定するため、図４(a)〜図４(f)の棒線で結ばれた隣り合う画素の間で差分の絶対値をとることによって相関量を計算し、隣接画素間に変動があるか否かの指標を得る。しかしながら、困難なのは、Bayer面上の隣接画素間の相関量であるため、この指標は有彩色部の平坦部であっても大きな値をとり得るし、そこがテキスチャやエッジ部の画像構造領域であっても大きな値をとり得るので、異なる色成分間の画素値差分をとるだけでは、区別がつかないという点である。
【００２４】
そこで、本実施形態はこの２つを区別するため、新たに隣接画素間差分の差分をとるという、異なる色成分間で求めた色差に対する一次微分（色差の勾配）をとるような演算を行う。そうすると、有彩色部で平坦な領域にある画像は、Ｒ,Ｇ,Ｂの値がバラバラであっても、局所領域のＲ,Ｇ,Ｂ値が似ているため、色差の更なる差分値は一斉に零に近い値をとることになる。一次微分の演算であるので、有彩色部のグラデーション部であっても、色差の勾配は零に近い値をとる。その結果、有彩色部の平坦部とグラデーション部の色差の勾配値は、ノイズのゆらぎ程度に変動するだけの零に近い値に一斉に整列することになる。
【００２５】
一方で、テキスチャ部領域にある場合は、Ｒ,Ｇ,Ｂ値が画素毎に完全に異なる値をとっているので、色差の勾配をとってみても、その大きな変動は残ったままとなる。したがって、隣接画素間の差分で求めた色差に対して、もう一度微分演算を行えば、Ｒ,Ｇ,Ｂ値が大きく変動している領域であっても、そこが有彩色部でグラデーションないしは平坦部領域なのか、テキスチャ部領域なのかを区別することができる。
【００２６】
上述した色差の勾配が小さくなる領域は、有彩色部に限らず、無彩色部もグラデーション部ないしは平坦部に該当する。また、色差の勾配が大きくなる領域は、テキスチャ部領域であれば有彩色部も無彩色部も該当する。グラデーション部や平坦部は画像構造が緩やかに変化する領域であり、Max,Minフィルタを掛けるときに空間分解能が低くても画像構造を破壊する可能性は低い。一方のテキスチャ部領域では、Max,Minフィルタを掛けるときに高い空間分解能を維持する必要がある。したがって、グラデーション部と平坦部に相当する領域では、同色画素のみのMax,Minフィルタを使用し、テキスチャ部に相当する領域では異色画素込みのMax,Minフィルタを使用すると、上記問題を解決することができる。以下にその詳細を説明する。
【００２７】
図５は、Max,Minフィルタ処理の流れを例示するフローチャートである。図５のステップＳ３２１において、制御装置１０３はレジスタのセットを行う。制御装置１０３は、Ｒサイト、ＢサイトおよびＧサイトのそれぞれにおいて、図６および数式群（２）によって、頻繁に参照する画素値の作業用の変数を設定する。図６は、５×５の画素範囲を例示する図であり、中央の「ctr」が処理対象位置に対応する。
【００２８】
ctr = Sin[i,j]
n1 = Sin[i-1,j]
n2 = Sin[i+1,j]
n3 = Sin[i,j-1]
n4 = Sin[i,j+1]
m1 = Sin[i-1,j-1]
m2 = Sin[i-1,j+1]
m3 = Sin[i+1,j-1]
m4 = Sin[i+1,j+1]
s1 = Sin[i-2,j]
s2 = Sin[i+2,j]
s3 = Sin[i,j-2]
s4 = Sin[i,j+2] 
t1 = Sin[i-2,j-2]
t2 = Sin[i-2,j+2]
t3 = Sin[i+2,j-2]
t4 = Sin[i+2,j+2]
o1 = Sin[i-2,j-1]
o2 = Sin[i-2,j+1]
o3 = Sin[i-1,j-2]
o4 = Sin[i-1,j+2]
o5 = Sin[i+1,j-2]
o6 = Sin[i+1,j+2]
o7 = Sin[i+2,j-1]
o8 = Sin[i+2,j+1]                           ・・・（２）
【００２９】
図５のステップＳ３２２において、制御装置１０３は各サイトで２種類の最大値の算出を行う。具体的には、Ｒサイト、Ｂサイトにおいてそれぞれ同色画素のみの最大値max_same と、異色画素込みの最大値max_diff とを次式（３）〜（６）により算出し、Ｇサイトにおいて同色画素のみの最大値max_same と、異色画素込みの最大値max_diff とを次式（７）〜（１０）により算出する。
【００３０】
−Ｒ／Ｂサイト−
max1= MAX{ s1, s2, s3, s4, t1, t2, t3, t4 }   ・・・（３）
max2= MAX{ m1, m2, m3, m4, n1, n2, n3, n4, o1, o2, o3, o4, o5, o6, o7, o8 }・（４）
同色画素のみの最大値 max_same の算出
max_same = max1                               ・・・（５）
異色画素込みの最大値 max_diffの算出
max_diff = MAX{ max2, max_same }              ・・・（６）
ただし、大文字で示すMAXは、最大値を返す関数である。
【００３１】
−Ｇサイト−
max1= MAX{ s1, s2, s3, s4, m1, m2, m3, m4 }   ・・・（７）
max2= MAX{n1, n2, n3, n4, o1, o2, o3, o4, o5, o6, o7, o8 }・・（８）
同色画素のみの最大値 max_same の算出
max_same = max1                               ・・・（９）
異色画素込みの最大値 max_same の算出
max_diff = MAX{ max2, max_same }              ・・・（１０）
ただし、大文字で示すMAXは、最大値を返す関数である。
【００３２】
図５のステップＳ３２３において、制御装置１０３は各サイトで２種類の最小値の算出を行う。具体的には、Ｒサイト、Ｂサイトにおいてそれぞれ同色画素のみの最小値min_same と、異色画素込みの最小値min_diff とを次式（１１）〜（１４）により算出し、Ｇサイトにおいて同色画素のみの最小値min_same と、異色画素込みの最小値min_diff とを次式（１５）〜（１８）により算出する。
【００３３】
−Ｒ／Ｂサイト−
min1= MIN{ s1, s2, s3, s4, t1, t2, t3, t4 }  ・・・（１１）
min2= MIN{ m1, m2, m3, m4, n1, n2, n3, n4, o1, o2, o3, o4, o5, o6, o7, o8 }
・・・（１２）
同色画素のみの最小値の算出
min_same = min1                              ・・・（１３）
異色画素込みの最小値の算出
min_diff = MIN{ min2, min_same }             ・・・（１４）
ただし、大文字で示すMINは、最小値を返す関数である。
【００３４】
−Ｇサイト−
min1= MIN{ s1, s2, s3, s4, m1, m2, m3, m4 }  ・・・（１５）
min2= MIN{ n1, n2, n3, n4, o1, o2, o3, o4, o5, o6, o7, o8 }・・（１６）
同色画素のみの最小値の算出
min_same = min1                              ・・・（１７）
異色画素込みの最小値の算出
min_diff = MIN{ min2, min_same }             ・・・（１８）
ただし、大文字で示すMINは、最小値を返す関数である。
【００３５】
図５のステップＳ３２４において、制御装置１０３は各サイトで画素間色差の計算を行う。具体的には、Ｒサイト、ＢサイトおよびＧサイトのそれぞれにおいて、処理対象画素周辺の隣接画素間の差分の絶対値をとることによって、周辺領域の色差を算出する。複数の画素間差分をとることによって、複数の色差が算出されるので、それらの色差値の最大値と最小値を予め次のステップのために計算しておく。色差の種類は、ＲＧ間の色差Ｃｒと、ＢＧ間の色差Ｃｂと、ＲＢ間の色差Ｃｇとの３種類を定義し、それぞれの中で最大値と最小値を求める。
【００３６】
制御装置１０３は、Ｒ／Ｂサイトにおいて、図６および数式群（１９）によって、ＲＧ間の色差Ｃｒを求める。制御装置１０３はさらに、次式（２０）によって色差Ｃｒの最大値cr_maxを求め、次式（２１）によって最小値cr_minを求める。
−Ｒ／Ｂサイト−
/* Cr */
cr[ 0] = |t1-o1|
cr[ 1] = |s1-o1|
cr[ 2] = |s1-o2|
cr[ 3] = |t2-o2|
cr[ 4] = |s1-n1|
cr[ 5] = |t1-o3|
cr[ 6] = |s3-o3|
cr[ 7] = |s3-o5|
cr[ 8] = |t3-o5|
cr[ 9] = |s3-n3|
cr[10]= |t2-o4|
cr[11]= |s4-o4|
cr[12]= |s4-o6|
cr[13]= |t4-o6|
cr[14]= |s4-n4|
cr[15]= |t3-o7|
cr[16]= |s2-o7|
cr[17]= |s2-o8|
cr[18]= |t4-o8|
cr[19]= |s2-n2|                             ・・・（１９）
【００３７】
/* max search of Cr */
cr_max = cr[0]
for( k=0; k<20; k++){ cr_max = MAX( cr_max, cr[k] ) } ・・・（２０）
ただし、大文字で示すMAXは、最大値を返す関数である。
【００３８】
/* min search of Cr */
cr_min = cr[0]
for( k=0; k<20; k++){ cr_min = MIN( cr_min, cr[k] ) } ・・・（２１）
ただし、大文字で示すMINは、最小値を返す関数である。
【００３９】
制御装置１０３は、Ｒ／Ｂサイトにおいて、図６および数式群（２２）によって、ＢＧ間の色差Ｃｂを求める。制御装置１０３はさらに、次式（２３）によって色差Ｃｂの最大値cb_maxを求め、次式（２４）によって最小値cb_minを求める。
−Ｒ／Ｂサイト−
/* Cb */
cb[ 0] = |m1-o3|
cb[ 1] = |m1-n1|
cb[ 2] = |m2-n1|
cb[ 3] = |m2-o4|
cb[ 4] = |m3-o5|
cb[ 5] = |m3-n2|
cb[ 6] = |m4-n2|
cb[ 7] = |m4-o6|
cb[ 8] = |m1-o1|
cb[ 9] = |m1-n3|
cb[10]= |m3-n3|
cb[11]= |m3-o7|
cb[12]= |m2-o2|
cb[13]= |m2-n4|
cb[14]= |m4-n4|
cb[15]= |m4-o8|                             ・・・（２２）
【００４０】
/* max search of Cb */
cb_max = cb[0]
for( k=0; k<16; k++){ cb_max = MAX( cb_max, cb[k] ) } ・・・（２３）
ただし、大文字で示すMAXは、最大値を返す関数である。
【００４１】
/* min search of Cb */
cb_min = cb[0]
for( k=0; k<16; k++){ cb_min = MIN( cb_min, cb[k] ) } ・・・（２４）
ただし、大文字で示すMINは、最小値を返す関数である。
【００４２】
制御装置１０３は、Ｒ／Ｂサイトにおいて、図６および数式群（２５）によって、ＲＢ間の色差Ｃｇを求める。制御装置１０３はさらに、次式（２６）によって色差Ｃｇの最大値cg_maxを求め、次式（２７）によって最小値cg_minを求める。
−Ｒ／Ｂサイト−
/* Cg */
cg[ 0] = |t1-m1|
cg[ 1] = |t2-m2|
cg[ 2] = |t3-m3|
cg[ 3] = |t4-m4|
cg[ 4] = |s1-m1|
cg[ 5] = |s3-m1|
cg[ 6] = |s4-m4|
cg[ 7] = |s2-m4|
cg[ 8] = |s1-m2|
cg[ 9] = |s4-m2|
cg[10]= |s3-m3|
cg[11]= |s2-m3|                             ・・・（２５）
【００４３】
/* max search of Cg */
cg_max = cg[0]
for( k=0; k<12; k++){ cg_max = MAX( cg_max, cg[k] ) } ・・・（２６）
ただし、大文字で示すMAXは、最大値を返す関数である。
【００４４】
/* min search of Cg*/
cg_min = cg[0]
for( k=0; k<12; k++){ cg_min = MIN( cg_min, cg[k] ) } ・・・（２７）
ただし、大文字で示すMINは、最小値を返す関数である。
【００４５】
制御装置１０３は、Ｇサイトにおいて、図６および数式群（２８）によって、ＲＧ間の色差Ｃｒを求める。制御装置１０３はさらに、次式（２９）によって色差Ｃｒの最大値cr_maxを求め、次式（３０）によって最小値cr_minを求める。
−Ｇサイト−
/* Cr */
cr[ 0] = |o3-m1|
cr[ 1] = |n1-m1|
cr[ 2] = |n1-m2|
cr[ 3] = |o4-m2|
cr[ 4] = |o5-m3|
cr[ 5] = |n2-m3|
cr[ 6] = |n2-m4|
cr[ 7] = |o6-m4|
cr[ 8] = |o3-t1|
cr[ 9] = |o3-s3|
cr[10]= |o5-s3|
cr[11]= |o5-t3|
cr[12]= |o4-t2|
cr[13]= |o4-s4|
cr[14]= |o6-s4|
cr[15]= |o6-t4|
cr[16]= |n1-s1|
cr[17]= |n1-s2|                             ・・・（２８）
【００４６】
/* max search of Cr */
cr_max = cr[0]
for( k=0; k<18; k++){ cr_max = MAX( cr_max, cr[k] ) } ・・・（２９）
ただし、大文字で示すMAXは、最大値を返す関数である。
【００４７】
/* min search of Cr */
cr_min = cr[0]
for( k=0; k<18; k++){ cr_min = MIN( cr_min, cr[k] ) } ・・・（３０）
ただし、大文字で示すMINは、最小値を返す関数である。
【００４８】
制御装置１０３は、Ｇサイトにおいて、図６および数式群（３１）によって、ＢＧ間の色差Ｃｂを求める。制御装置１０３はさらに、次式（３２）によって色差Ｃｂの最大値cb_maxを求め、次式（３３）によって最小値cb_minを求める。
−Ｇサイト−
/* Cb */
cb[ 0] = |o1-m1|
cb[ 1] = |n3-m1|
cb[ 2] = |n3-m3|
cb[ 3] = |o7-m3|
cb[ 4] = |o2-m2|
cb[ 5] = |n4-m2|
cb[ 6] = |n4-m4|
cb[ 7] = |o8-m4|
cb[ 8] = |o1-t1|
cb[ 9] = |o1-s1|
cb[10]= |o2-s1|
cb[11]= |o2-t2|
cb[12]= |o7-t3|
cb[13]= |o7-s2|
cb[14]= |o8-s2|
cb[15]= |o8-t4|
cb[16]= |n3-s3|
cb[17]= |n4-s4|                             ・・・（３１）
【００４９】
/* max search of Cb */
cb_max = cb[0]
for( k=0; k<18; k++){ cb_max = MAX( cb_max, cb[k] ) } ・・・（３２）
ただし、大文字で示すMAXは、最大値を返す関数である。
【００５０】
/* min search of Cb */
cb_min = cb[0]
for( k=0; k<18; k++){ cb_min = MIN( cb_min, cb[k] ) } ・・・（３３）
ただし、大文字で示すMINは、最小値を返す関数である。
【００５１】
制御装置１０３は、Ｇサイトにおいて、図６および数式群（３４）によって、ＲＢ間の色差Ｃｇを求める。制御装置１０３はさらに、次式（３５）によって色差Ｃｇの最大値cg_maxを求め、次式（３６）によって最小値cg_minを求める。
−Ｇサイト−
/* Cg */
cg[ 0] = |o3-o1|
cg[ 1] = |o6-o8|
cg[ 2] = |o4-o2|
cg[ 3] = |o5-o7|
cg[ 4] = |n1-o1|
cg[ 5] = |n1-n4|
cg[ 6] = |o6-n4|
cg[ 7] = |o3-n3|
cg[ 8] = |n2-n3|
cg[ 9] = |n2-o8|
cg[10]= |n1-o2|
cg[11]= |n1-n3|
cg[12]= |o5-n3|
cg[13]= |o4-n4|
cg[14]= |n2-n4|
cg[15]= |n2-o7|                             ・・・（３４）
【００５２】
/* max search of Cg */
cg_max = cg[0]
for( k=0; k<16; k++){ cg_max = MAX( cg_max, cg[k] ) } ・・・（３５）
ただし、大文字で示すMAXは、最大値を返す関数である。
【００５３】
/* min search of Cg*/
cg_min = cg[0]
for( k=0; k<16; k++){ cg_min = MIN( cg_min, cg[k] ) } ・・・（３６）
ただし、大文字で示すMINは、最小値を返す関数である。
【００５４】
図５のステップＳ３２５において、制御装置１０３は各サイトで色差の勾配計算を行う。具体的には、ステップＳ３２４で求めた複数の画素間色差の値がＣｒ,Ｃｂ,Ｃｇそれぞれの種類毎にどのような値に分布するのか分布幅を見積もる。これは予め求めておいたそれぞれの色差の種類毎の最大値と最小値の間の差分によって簡易に求めることができる。
【００５５】
これらの分布幅は、局所領域（本実施形態の場合５×５画素の範囲）内において画素間差分をとることによって求めた色差値の相互の値の間で一次微分を求めているのと同等の役割を果たす。すなわち、一次微分の演算を行うと、グラデーション部に相当する色差の値は、色差値が一定の値に揃っていると考えられるので、一斉に値が零に向かうことになる。また、平坦部の色差値も無彩色部では初めから零に近い値を持つし、有彩色部も一定値であるので、一次微分によって、グラデーション部も平坦部も有彩色・無彩色に関係なく、テキスチャ部と区別することができるようになる。
【００５６】
このとき、有彩色部の緩やかな変化部かテキスチャ部かの判別性能を上げるために、３種類の色差Ｃｒ,Ｃｂ,Ｃｇの全てについて考慮し、それらの平均によって色差の勾配 dＣを見積もることにする。
【００５７】
具体的には、次式（３７）により色差Ｃｒについての勾配dＣｒを求め、次式（３８）により色差Ｃｂについての勾配dＣｂを求め、次式（３９）により色差Ｃｇについての勾配dＣｇを求める。そして、色差の勾配 dＣを次式（４０）によって算出する。このように、制御装置１０３は、Ｒサイト、ＢサイトおよびＧサイトにおいてそれぞれ色差の最大値と最小値との間の差分の平均値（すなわち色差の勾配 dＣ）を得る。
【００５８】
dCr = cr_max - cr_min                            ・・・（３７）
dCb = cb_max - cb_min                            ・・・（３８）
dCg = cg_max - cg_min                            ・・・（３９）
dC = ( dCr + dCb + dCg )/3                       ・・・（４０）
【００５９】
図５のステップＳ３２５において、制御装置１０３は、各サイトで最大値と最小値の切り替え設定を行う。色差の勾配が、ノイズの揺らぎ幅σと比べて小さな値を示すとき、そこはグラデーション部ないしは平坦部であると判断することができる。他方、ノイズの揺らぎ幅σと比べて十分大きな変動をしているとき、そこにはテキスチャ等のエッジ構造が存在すると推測することができる。すなわち、テキスチャ部は、ノイズ振幅に対する統計異常を示す信号領域で、色差の勾配値は大きな分布幅を持っていると考えられるという統計的な判断基準を入れる。
【００６０】
制御装置１０３は、こうして統計的に判断された画像構造の分類に基づいて、緩やかに変化するグラデーション部や平坦部では同色画素のみのMax,Minフィルタを使用し、急激に変化するテキスチャ部では空間的な分解能の信頼性の高い異色画素込みのMax,Minフィルタを使用する。この設定は次式（４１）で表される。
if ( dC <= Th_flat )   { max = max_same,   min = min_same }
else                   { max = max_diff,      min = min_diff }・・（４１）
ここに、閾値Th_flatの値は、ノイズ振幅（ノイズのゆらぎ幅σ）の６倍の６σ程度に設定する。
【００６１】
図５のステップＳ２３６において、制御装置１０３は、統計判別による最大値と最小値への置き換えを行う。処理対象画素が周辺画素に対して突出しているか否かの判断は、単に最大値や最小値に比べて突出しているかを判断するのではなく、画像構造の非破壊性を高めるため、特許文献２に示されているように階調方向に関する統計異常を検知して適応的に最大値・最小値への置き換えを行うのか否かの判断を行う方式を採用する。
【００６２】
制御装置１０３は、次式（４２）〜（４４）により最大値と最小値へ置き換える。
Th = ( max - min ) * α                  ・・・（４２）
if ( Sin[i,j] > max + Th )    Sout[i,j] = max + Th'  ・・・（４３）
if ( Sin[i,j] < min - Th )    Sout[i,j] = min + Th'  ・・・（４４）
ここに、定数倍αの値は０〜１の範囲の値をとるが、通常１に設定するとよい。それ以外の代表的設定値は、１／２,１／３,１／６である。また、Th'=０〜Thの範囲の値をとる。すなわちTh'はThの関数である。通常Th'=０でよい。
【００６３】
制御装置１０３は、その後ステップＳ４０（図２）へ進み、色補間処理（Demosaicking）を実行する。すなわち、白傷・黒傷の突出点が除去されたBayer面に対して、各画素位置にＲＧＢ３色を生成する公知の色補間処理を施す。その後、図２による処理を終了する。
【００６４】
以上説明した実施形態によれば、次の作用効果が得られる。
（１）画像データの画素値を補正する制御装置１０３は、複数の色成分Ｒ,Ｇ,Ｂからなり、１つの画素に１つの色成分を有する複数の画素からなる画像データを入力する制御装置１０３と、画像データの１つの処理対象画素に対し、該処理対象画素を除く周辺画素で異なる色成分間の画素値の変化量を複数の画素の間で算出する制御装置１０３と、複数の画素の間で算出された画素値変化量の分布幅（勾配）を算出する制御装置１０３と、算出された画素値変化量の分布幅（勾配）が所定の閾値よりも小さな値を示すとき、処理対象画素は緩やかに変化する画像領域に存在すると判別し、算出された画素値変化量の分布幅（勾配）が所定の閾値よりも大きな値を示すとき、処理対象画素は激しく変化する画像領域に存在すると判別する制御装置１０３と、を備える。これにより、画像構造の保存性を維持しつつ、有彩色部の一部で残留する白傷・黒傷の突出点を除去する際に好適な判別、すなわち、画像構造の変化が緩やかか、あるいは激しいかの判別を適切に行える。この判別結果を、例えばMax, Minフィルタの切替え条件に用いることで、白傷・黒傷の突出点を効果的に除去し得る。
【００６５】
（２）上記（１）の制御装置１０３は、画像データの１つの処理対象画素に対し、該処理対象画素と同じ色成分を有する複数の周囲の同色画素と、複数の周囲の同色画素よりも処理対象画素に近接して存在する、処理対象画素とは異なる色成分を有する複数の周囲の異色画素からなる第１のグループの画素値の中から最大値max_diffを算出する制御装置１０３と、画像データの１つの処理対象画素に対し、該処理対象画素と同じ色成分を有する複数の周囲の同色画素からなる第２のグループの画素値の中から最大値max_sameを算出する制御装置１０３と、制御装置１０３によって処理対象画素が緩やかに変化する画像領域に存在すると判別された場合は、制御装置１０３で算出された最大値max_sameを用いて処理対象画素を補正し、制御装置１０３によって処理対象画素が激しく変化する画像領域に存在すると判別された場合は、制御装置１０３で算出された最大値max_diffを用いて処理対象画素を補正する制御装置１０３と、をさらに備える。これにより、画像構造の変化が緩やかな場合に同色画素のみMaxフィルタに切替え、画像構造の変化が激しい場合に異色画素込みのMaxフィルタに切替えて補正するため、白傷の突出点を効果的に除去できる。
【００６６】
（３）上記（１）の制御装置１０３は、画像データの１つの処理対象画素に対し、該処理対象画素と同じ色成分を有する複数の周囲の同色画素と、複数の周囲の同色画素よりも処理対象画素に近接して存在する、処理対象画素とは異なる色成分を有する複数の周囲の異色画素からなる第１のグループの画素値の中から最小値min_diffを算出する制御装置１０３と、画像データの１つの処理対象画素に対し、該処理対象画素と同じ色成分を有する複数の周囲の同色画素からなる第２のグループの画素値の中から最小値min_sameを算出する制御装置１０３と、制御装置１０３によって処理対象画素が緩やかに変化する画像領域に存在すると判別された場合は、制御装置１０３で算出された最小値min_sameを用いて処理対象画素を補正し、制御装置１０３によって処理対象画素が激しく変化する画像領域に存在すると判別された場合は、制御装置１０３で算出された最小値min_diffを用いて処理対象画素を補正する制御装置１０３と、をさらに備える。これにより、画像構造の変化が緩やかな場合に同色画素のみMinフィルタに切替え、画像構造の変化が激しい場合に異色画素込みのMinフィルタに切替えて補正するため、黒傷の突出点を効果的に除去できる。
【００６７】
（４）上記（１）の制御装置１０３は、複数の画素の間で算出された複数の画素値変化量（画素間色差）に対して、それらの間の変化量（一次微分）を分布幅として算出する。これにより、画像構造の変化が緩やかか、あるいは激しいかの判別を適切に行える。
【００６８】
（５）上記（１）の制御装置１０３は、複数の画素の間で算出された複数の画素値変化量（画素間色差）の内、変化量（一次微分）の最大値と最小値を求め、その間の変化量を分布幅（勾配）として算出する。これにより、最大値と最小値の差分算出という簡易な演算で分布幅（勾配）を求められる。
【００６９】
（６）上記（１）の制御装置１０３は、画像が少なくとも３種類の色成分Ｒ,Ｇ,Ｂからなるとき、制御装置１０３は、少なくとも３種類の異なる色成分間の画素値変化量Ｃｒ、Ｃｂ、Ｃｇを算出する。これにより、有彩色部における画像構造の変化が緩やかか、あるいは激しいかの判別性能を高められる。
【００７０】
（７）上記（１）の制御装置１０３は、所定の閾値にノイズのゆらぎ幅σに基づく値を設定するので、平坦部やグラデーションに含まれるノイズのゆらぎ幅を考慮した上での平坦部がグラデーション部に属するのかテキスチャ部に属するのかの統計的な判別を適切に行える。
【００７１】
（８）上記（１）の制御装置１０３は、緩やかに変化する画像領域をグラデーション部ないしは平坦部に属する領域と判別し、激しく変化する画像領域をテキスチャ部に属する領域と判別するので、画像構造を適切に判別できる。
【００７２】
（変形例）
上述した実施形態では、デジタルカメラ１００に画像処理装置を搭載する例を説明したが、画像処理装置をパーソナルコンピュータによって構成するようにしてもよい。図２、図５に例示したフローチャートの処理を行うプログラムを図７に示すコンピュータ２００に実行させることにより、画像処理装置を構成してもよい。プログラムをパーソナルコンピュータ２００に取込んで使用する場合には、パーソナルコンピュータ２００のデータストレージ装置にプログラムをローディングした上で、当該プログラムを実行させることによって画像処理装置として使用する。
【００７３】
パーソナルコンピュータ２００に対するプログラムのローディングは、プログラムを格納したＣＤ−ＲＯＭなどの記憶媒体２０４をパーソナルコンピュータ２００にセットして行ってもよいし、ネットワークなどの通信回線２０１を経由する方法でパーソナルコンピュータ２００へローディングしてもよい。通信回線２０１を経由する場合は、通信回線２０１に接続されたサーバー（コンピュータ）２０２のハードディスク装置２０３などにプログラムを格納しておく。プログラムは、記憶媒体２０４や通信回線２０１を介する提供など、種々の形態のコンピュータプログラム製品として供給することができる。以上説明した変形例によれば、上記実施形態と同様の作用効果が得られる。
【００７４】
以上の説明はあくまで一例であり、上記の実施形態の構成に何ら限定されるものではない。
【符号の説明】
【００７５】
１００…カメラ
１０１…操作部材
１０２…撮像素子
１０３…制御装置
１０５…モニタ
２００…パーソナルコンピュータ
【図１】
2014127746.tif 000003
【図２】
2014127746.tif 000004
【図３】
2014127746.tif 000005
【図４】
2014127746.tif 000006
【図５】
2014127746.tif 000007
【図６】
2014127746.tif 000008
【図７】
2014127746.tif 000009