(57)【要約】  勾配検出部１３は、入力画像の各画素について画素値の勾配を検出する。ぶれ幅検出部１４は、入力画像の各画素位置におけるぶれ幅を検出する。補正領域特定部１５は、勾配検出部１３により検出された勾配およびぶれ幅検出部１４により検出されたぶれ幅に基づいて、補正を行うべき領域を特定する。補正部１６は、補正領域特定部１５により特定された領域内の画素の画素値を補正する。
2010021009.tif 000002
【特許請求の範囲】
【請求項１】
入力画像の各画素について画素値の勾配を検出する勾配検出部と、
前記入力画像の各画素位置におけるぶれ幅を検出するぶれ幅検出部と、
前記勾配検出部により検出された勾配および前記ぶれ幅検出部により検出されたぶれ幅に基づいて、補正を行うべき領域を特定する補正領域特定部と、
前記補正領域特定部により特定された領域の画素の画素値を補正する補正部、
を有する画像補正装置。
【請求項２】
請求項１に記載の画像補正装置であって、
前記入力画像内のエッジを検出するエッジ検出フィルタをさらに備え、
前記勾配検出部は、前記エッジ検出フィルタの演算結果を利用して、各画素について画素値の勾配を算出する
ことを特徴とする画像補正装置。
【請求項３】
請求項１に記載の画像補正装置であって、
前記入力画像内のエッジを検出するエッジ検出フィルタをさらに備え、
前記ぶれ幅検出部は、前記エッジ検出フィルタの演算結果を利用して、各画素位置におけるぶれ幅を検出する
ことを特徴とする画像補正装置。
【請求項４】
請求項３に記載の画像補正装置であって、
前記ぶれ幅検出部は、前記エッジ検出フィルタの演算結果に基づいて各画素位置における画素値の勾配の方向を算出し、前記勾配の方向が同じまたは略同じである画素が連続している数に基づいてぶれ幅を算出する
ことを特徴とする画像補正装置。
【請求項５】
請求項２〜４のいずれか１つに記載の画像補正装置であって、
前記エッジ検出フィルタのサイズは、前記入力画像のサイズに応じて決定されることを特徴とする画像補正装置。
【請求項６】
請求項２〜４のいずれか１つに記載の画像補正装置であって、
前記エッジ検出フィルタは、Sobelフィルタであることを特徴とする画像補正装置。
【請求項７】
請求項１に記載の画像補正装置であって、
前記補正領域特定部は、前記勾配検出部により検出された勾配が勾配しきい値よりも大きく、かつ、前記ぶれ幅検出部により検出されたぶれ幅がぶれ幅しきい値よりも小さい領域を、補正を行うべき領域として特定する
ことを特徴とする画像補正装置。
【請求項８】
請求項７に記載の画像補正装置であって、
前記ぶれ幅しきい値は、前記入力画像のサイズに応じて決定されることを特徴とする画像補正装置。
【請求項９】
請求項１に記載の画像補正装置であって、
前記補正部は、エッジをシャープにする輪郭補正を行うことを特徴とする画像補正装置。
【請求項１０】
請求項１に記載の画像補正装置であって、
前記補正部は、輪郭強調を行うことを特徴とする画像補正装置。
【請求項１１】
入力画像の各画素について画素値の勾配を検出し、
前記入力画像の各画素位置におけるぶれ幅を検出し、
前記勾配検出部により検出された勾配および前記ぶれ幅検出部により検出されたぶれ幅に基づいて、補正を行うべき領域を特定し、
前記特定された領域の画素の画素値を補正する、
ことを特徴とする画像補正方法。
【請求項１２】
コンピュータに、
入力画像の各画素について画素値の勾配を検出する勾配検出手順、
前記入力画像の各画素位置におけるぶれ幅を検出するぶれ幅検出手順、
前記勾配検出手順により検出された勾配および前記ぶれ幅検出手順により検出されたぶれ幅に基づいて、補正を行うべき領域を特定する補正領域特定手順、
前記補正領域特定手順により特定された領域の画素の画素値を補正する補正手順、
を実行させるための画像補正プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像補正装置および画像補正方法に係わり、例えば、画像のぶれを補正するための画像補正装置および画像補正方法に適用することができる。
【背景技術】
【０００２】
撮影された画像の手ぶれ（ここでは、被写体の移動によるぶれを含まないものとする）を補正する技術として、例えば、画像内のオブジェクトまたはテクスチャのエッジをシャープにする方法が知られている。【０００３】
画像内のオブジェクトまたはテクスチャのエッジにおいては、通常、画素値（輝度、濃度など）が急激に変化する。図１に示すプロファイルは、エッジにおける画素値（ここでは、輝度レベル）の変化を示している。また、このプロファイルの横軸は、画素の位置を表している。なお、エッジにおいては、輝度レベルが傾斜（すなわち、ランプ）しているので、本明細書ではエッジが存在する領域を「ランプ領域」と呼ぶことがある。【０００４】
エッジをシャープにするためには、例えば、図１に示すように、輝度レベルが中心レベルよりも低い領域（Ａ領域）では、各画素の輝度レベルは下げられる。一方、輝度レベルが中心レベルよりも高い領域（Ｂ領域）では、各画素の輝度レベルは上げられる。なお、ランプ領域の外側では、輝度レベルの補正は行われない。このような補正により、ランプ領域の幅が狭められ、エッジがシャープになる。この方法は、例えば、非特許文献１に記載されている。【０００５】
また、関連する技術として、特許文献１には、一部の領域のみがぼけている画像において、ぼけ補正を行う画像処理方法が記載されている。すなわち、エッジ検出手段は、縮小画像において８つの異なる方向毎にエッジを検出する。ブロック分割手段は、縮小画像を１６分割する。解析手段は、各ブロックの画像がぼけ画像であるか否かを判断すると共に、ぼけ画像であるブロック画像のぼけ情報（ぼけ幅Ｌ、ぶれ度、ぼけ方向）を検出する。パラメータ設定手段は、ぼけ情報に基づいて、補正パラメータを設定すると共に、ぼけ幅Ｌに応じて補正強度αを設定する。【０００６】
ところが、すべてのエッジをシャープにすると、不自然な画像が得られることがある。また、この場合、不必要な補正が行われるので、処理時間の増大を招くこともある。さらに、ぶれ幅に応じて補正強度を設定する方法では、エッジの輝度の変化が過剰に急峻に補正されてしまい、「影」が目立ち過ぎたり、人の顔の凹凸が強調されて皺にみえてしまうことがある。すなわち、ぶれ補正により画質が劣化することがある。
【特許文献１】特開２００５−３３２３８１号公報
【非特許文献１】J.-G Leu, Edge sharpening through ramp width reduction, Image and Vision Computing 18 (2000) 501-514
【発明の開示】
【０００７】
本発明の課題は、画質を劣化させることなく、ぶれを適切に補正する画像補正装置および画像補正方法を提供することである。
実施形態の画像補正装置は、入力画像の各画素について画素値の勾配を検出する勾配検出部と、前記入力画像の各画素位置におけるぶれ幅を検出するぶれ幅検出部と、前記勾配検出部により検出された勾配および前記ぶれ幅検出部により検出されたぶれ幅に基づいて、補正を行うべき領域を特定する補正領域特定部と、前記補正領域特定部により特定された領域の画素の画素値を補正する補正部、を有する。
【０００８】
この画像補正装置は、前記入力画像内のエッジを検出するエッジ検出フィルタをさらに備えるようにしてもよい。この場合、エッジ検出フィルタのサイズは、例えば、入力画像のサイズに応じて決定される。そして、勾配検出部は、エッジ検出フィルタの演算結果を利用して、各画素について画素値の勾配を算出する。また、ぶれ幅検出部は、エッジ検出フィルタの演算結果を利用して、各画素位置におけるぶれ幅を検出する。
【０００９】
上記構成の画像補正装置において、前記補正領域特定部は、例えば、前記勾配検出部により検出された勾配が勾配しきい値よりも大きく、かつ、前記ぶれ幅検出部により検出されたぶれ幅がぶれ幅しきい値よりも小さい領域を、補正を行うべき領域として特定する。
【図面の簡単な説明】
【００１０】
【図１】エッジをシャープにする方法を説明する図である。
【図２】実施形態の画像補正装置の構成を示す図である。
【図３】３×３Sobelフィルタの構成を示す図である。
【図４】５×５Sobelフィルタの構成を示す図である。
【図５】補正領域特定部の動作を説明する図である。
【図６】実施形態の画像補正方法を示すフローチャートである。
【図７】画像内で定義される輝度レベルの勾配の方向を示す図である。
【図８】輝度レベルの勾配の方向に基づいてぶれ幅を検出する方法を説明する図である。
【図９】ぶれ補正装置の動作を示すフローチャートである。
【図１０】画素濃度指数ＩHを計算するためのフィルタを示す図である。
【図１１】画素濃度指数ＩMを計算するためのフィルタを示す図である。
【図１２】画素濃度指数ＩLを計算するためのフィルタを示す図である。
【図１３】勾配指数ＧHを計算するためのフィルタを示す図である。
【図１４】勾配指数ＧLを計算するためのフィルタを示す図である。
【図１５】第１の実施例の原画像を示す図である。
【図１６】実施形態の方法による補正画像である。
【図１７】他の方法による補正画像である。
【図１８】図１６の補正画像において補正された画素を示す図である。
【図１９】図１７の補正画像において補正された画素を示す図である。
【図２０】第２の実施例の原画像を示す図である。
【図２１】実施形態の方法による補正画像である。
【図２２】他の方法による補正画像である。
【図２３】実施形態の画像補正装置に係わるハードウェア構成を示す図である。
【発明を実施するための最良の形態】
【００１１】
図２は、実施形態の画像補正装置の構成を示す図である。実施形態の画像補正装置１は、特に限定されるものではないが、例えば、電子カメラにより得られた画像を補正する。また、画像補正装置１は、基本的に、手ぶれを補正するものとする。手ぶれは、例えば、画像の撮影時に撮影装置が動くことによって発生する。また、手ぶれに起因する画像の劣化は、主に、画像内のオブジェクトまたはテクスチャのエッジにおいて発生する。よって、画像補正装置１は、エッジをシャープにすることによって、及び／又は、輪郭を強調することによって、手ぶれを補正する。【００１２】
画像補正装置１は、エッジ検出部１１、フィルタ選択部１２、勾配検出部１３、ぶれ幅検出部１４、補正領域特定部１５、補正部１６を備える。エッジ検出部１１は、この実施例ではSobelフィルタであり、入力画像の各画素についてフィルタ演算を行う。このフィルタ演算により、入力画像内のオブジェクトまたはテクスチャのエッジが検出される。また、エッジ検出部１１は、サイズの異なる複数のSobelフィルタを備えている。この実施例では、図３に示す１組の３×３Sobelフィルタ、及び図４に示す１組の５×５Sobelフィルタを備えている。１組のSobelフィルタは、Ｘ方向SobelフィルタおよびＹ方向Sobelフィルタである。【００１３】
Sobelフィルタは、対象画素およびその近傍の画素の画素値（例えば、輝度レベル値）を用いてフィルタ演算を行う。すなわち、３×３Sobelフィルタは、対象画素およびその周辺の８画素（合計、９画素）の輝度レベル値を用いてフィルタ演算を行う。５×５Sobelフィルタは、対象画素およびその周辺の２４画素（合計、２５画素）の輝度レベル値を用いてフィルタ演算を行う。このフィルタ演算により、各画素についての画素値の勾配が算出される。【００１４】
フィルタ選択部１２は、入力画像のサイズ応じて、エッジ検出部１１において使用すべきSobelフィルタを決定する。入力画像のサイズは、例えば、画素数により定義される。この場合、特に限定されるものではないが、入力画像のサイズが１Ｍピクセル以下であれば３×３Sobelフィルタが選択され、入力画像のサイズが１Ｍピクセルよりも大きければ５×５Sobelフィルタが選択される。そして、エッジ検出部１１は、フィルタ選択部１２により選択されたSobelフィルタを用いて入力画像に対してフィルタ演算を行う。なお、画像サイズが大きくなると、一般に、ぶれ領域も大きくなる。したがって、入力画像のサイズに応じてSobelフィルタのサイズを変えることにより、適切なエッジ検出が可能になる。【００１５】
勾配検出部１３は、入力画像の各画素について画素値の勾配を検出する。この実施例では、勾配検出部１３は、エッジ検出部１１によるフィルタ演算の結果を利用して、入力画像の各画素について輝度レベル値の勾配を算出する。ぶれ幅検出部１４は、エッジ検出部１１によるフィルタ演算の結果を利用して、各画素位置におけるぶれ幅を算出する。【００１６】
補正領域特定部１５は、勾配検出部１３により検出された勾配およびぶれ幅検出部１４により検出されたぶれ幅の双方に基づいて、補正を行うべき領域を特定する。補正部１６は、補正領域特定部１５により特定された領域の画素の画素値を補正する。なお、補正部１６は、例えば、エッジをシャープにする輪郭補正、及び／又は、輪郭強調を行う。【００１７】
図５は、補正領域特定部１５の動作を説明する図である。補正領域特定部１５は、上述したように、勾配検出部１３により検出された勾配およびぶれ幅検出部１４により検出されたぶれ幅の双方に基づいて、補正を行うべき領域を特定する。ここで、ぶれ幅が大きい領域（領域１、２）においては、エッジのシャープ化などの手ぶれ補正を行うと、画質が劣化することがある。また、画素値の勾配が小さい領域（領域１、３）では、手ぶれ補正を行うと、補正後の画像が不自然になるか、補正による画質の改善効果が小さい。【００１８】
したがって、実施形態の画像補正装置１においては、勾配検出部１３により検出された勾配が勾配しきい値よりも大きく、かつ、ぶれ幅検出部１４により検出されたぶれ幅がぶれ幅しきい値よりも小さい領域（すなわち、領域４）が、補正を行うべき領域として特定される。そして、特定された領域に属する画素の画素値が補正される。この結果、補正後の画像が不自然になることはなく、また、補正による画質の改善効果も大きい。さらに、領域１〜３に属する画素について補正を行わないため、補正を行うべき画素数が少なくなるので、処理時間が短くなると共に、補正演算を行うプロセッサの負荷が小さくなる。【００１９】
ぶれ幅しきい値は、特に限定されるものではないが、例えば、入力画像のサイズに応じて定義される。一例としては、フレームのＸ方向の画素数の１パーセントがぶれ幅しきい値と定義される。この場合、例えば、５Ｍピクセル画像（２５６０×１９２０画素）においては、ぶれ幅しきい値は２５画素である。すなわち、ある画素位置において検出されたぶれ幅が２５画素幅以下であれば、その画素位置は領域３、４に属し、ある画素位置において検出されたぶれ幅が２５画素幅よりも大きければ、その画素位置は領域１、２に属することになる。なお、ぶれ幅しきい値は、他の基準に基づいて定義するようにしてもよい。例えば、実験またはシミュレーションにおいてぶれ幅しきい値を変えながら補正後の画像をモニタし、最適な画像（例えば、人の目で見て最も自然な画像）が得られるようにぶれ幅しきい値を決定するようにしてもよい。【００２０】
勾配しきい値は、特に限定されるものではないが、例えば、実験またはシミュレーションにより決定される。この場合、勾配しきい値を変えながら補正後の画像をモニタし、最適な画像（例えば、人の目で見て最も自然な画像）が得られるように勾配しきい値が決定される。また、勾配しきい値は、画像のノイズを考慮して決定するようにしてもよい。すなわち、例えば、画像のノイズが画素値の勾配として表れる場合には、そのノイズに対して手ぶれ補正が行われてしまう。この場合、ノイズが強調されてしまい、原画像よりも補正後の画像の画質の方が劣化してしまう。このため、ノイズが大きい画像においては、通常時よりも勾配しきい値を大きくするようにしてもよい。あるいは、ノイズが小さい画像においては、通常時よりも勾配しきい値を小さくするようにしてもよい。【００２１】
このように、実施形態の画像補正装置１においては、図５に示す領域１〜３に属する画素については画素値の補正を行わないので、補正により画像が不自然になったり、或いは補正により画質が劣化することはない。さらに、画像補正のための演算量が少なくなり、消費電力も少なくなる。【００２２】
なお、画像補正装置１は、例えばエッジ検出部１１の前段に、入力画像を平滑化するための平滑化フィルタを備えてもよい。この場合、平滑化フィルタのサイズは、入力画像のサイズに応じて決めるようにしてもよい。平滑化フィルタを設ければ、入力画像のノイズを除去または低減することができる。【００２３】
図６は、実施形態の画像補正方法を示すフローチャートである。以下、このフローチャートを参照しながら、実施形態の画像補正方法を詳しく説明する。
＜エッジの検出＞
ステップＳ１では、入力画像の画像データが入力される。画像データは、各画素の画素値（この実施例では、輝度レベル値）を含んでいる。ステップＳ２では、エッジ検出部１１が使用すべきSobelフィルタのサイズが決定される。Sobelフィルタのサイズは、上述したように、入力画像のサイズに応じて決定される。そして、ステップＳ３において、ステップＳ２で決められたフィルタを用いて、入力画像の各画素についてSobelフィルタ演算が実行される。なお、Sobelフィルタ演算は、Ｘ方向およびＹ方向それぞれについて行われる。【００２４】
Sobelフィルタは、図３および図４に示すように、対象画素の周辺の画素の輝度レベル値を利用して、輝度レベルの変化量（すなわち、輝度レベルの勾配）を計算する。輝度レベルが一定の領域では、Sobelフィルタの演算結果は、ゼロまたはゼロに近い小さな値になる。ところが、Ｘ方向において輝度レベルが大きくなっていく領域では、Ｘ方向Sobelフィルタによる演算結果が正の値となる。また、Ｘ方向において輝度レベルが小さくなっていく領域では、Ｘ方向Sobelフィルタによる演算結果が負の値となる。Ｙ方向においても同様である。ここで、画像内のオブジェクトまたはテクスチャのエッジ領域では、一般に、輝度レベルが大きくまたは急峻に変化する。したがって、エッジ領域では、Sobelフィルタの演算結果の値が大きくなる。すなわち、Sobelフィルタによる演算結果からエッジを検出することができる。【００２５】
＜輝度レベルの勾配の検出＞
ステップＳ４では、入力画像の各画素について、輝度レベルの勾配が算出される。輝度レベルの勾配gradMagは、下記（１）式で算出される。なお、「gradＸ」はＸ方向Sobelフィルタの演算結果であり、「gradＹ」はＹ方向Sobelフィルタの演算結果である。【００２６】
2010021009.tif 000003
あるいは、演算量を少なくするためには、上記（１）式の代わりに、下記（２）式で勾配を算出するようにしてもよい。【００２７】
2010021009.tif 000004
ステップＳ５では、各画素について得られた勾配gradMagが勾配しきい値と比較される。そして、勾配gradMagが勾配しきい値よりも大きければ、その画素は補正対象と判定される。一方、勾配gradMagが勾配しきい値以下であれば、その画素は補正対象でないと判定される。【００２８】
画素の輝度レベルが、例えば、８ビットのデジタルデータで表される場合、輝度レベル値は「０」〜「２５５」で表される。また、勾配しきい値は、特に限定されるものではないが、例えば、輝度レベルの最大値の１０パーセント程度とする。この場合、勾配しきい値は「２５」である。なお、勾配しきい値を決定する方法は、特に限定されるものではなく、上述のように実験またはシミュレーション等により決めるようにしてもよい。【００２９】
＜ぶれ幅の検出＞
ぶれ幅を検出する方法は、特に限定されるものではないが、ここでは下記の方法で各画素位置におけるぶれ幅を検出する。【００３０】
ステップＳ６では、Sobel演算の結果を利用して、各画素について、勾配の方向を求める。勾配の方向「PixDirection(θ)」は、下記（３）式で求められる。なお、「gradＸ」がゼロに近いとき（例えば、gradＸ＜10-6）は、「PixDirection＝−π／２」とする。【００３１】
2010021009.tif 000005
さらに、各画素について、勾配の方向が、図７に示すZone１〜Zone８の何れに属するのかを判定する。なお、Zone１〜Zone８は、以下の通りである。
Zone１：０≦PixDirection＜π／４  且つ  gradＸ＞０
Zone２：π／４≦PixDirection＜π／２  且つ  gradＹ＞０
Zone３：−π／２≦PixDirection＜−π／４  且つ  gradＹ＜０
Zone４：−π／４≦PixDirection＜０  且つ  gradＸ＜０
Zone５：０≦PixDirection＜π／４  且つ  gradＸ＜０
Zone６：π／４≦PixDirection＜π／２  且つ  gradＹ＜０
Zone７：−π／２≦PixDirection＜−π／４  且つ  gradＹ＞０
Zone８：−π／４≦PixDirection＜０  且つ  gradＸ＞０
ステップＳ７では、各画素位置における輝度レベルの勾配の方向が同じまたは略同じである画素が連続している数に基づいてぶれ幅が検出される。各画素位置における輝度レベルの勾配の方向は、ステップＳ６で得られたZone１〜Zone８により表される。【００３２】
図８は、輝度レベルの勾配の方向に基づいてぶれ幅を検出する方法を説明する図である。なお、以下の説明では、「輝度レベルの勾配の方向」を「勾配方向θ」と呼ぶことがある。また、図８に示す「１」は、勾配方向θが図７に示すZone１に属していることを表している。Zone２〜Zone８については省略されている。【００３３】
図８に示す例では、Ｘ方向において、勾配方向θがZone１に属している画素が１０個連続して並んでいる。また、Y方向においては、勾配方向θがZone１に属している画素が７個連続して並んでいる。さらに、斜め方向においても、勾配方向θがZone１に属している画素がそれぞれ７個連続して並んでいる。ここで、手ぶれ画像では、オブジェクトまたはテクスチャのエッジ領域の勾配方向θがほぼ同じになるはずである。換言すれば、同じ勾配方向θの画素が連続している領域は、手ぶれ画像におけるエッジ領域と考えられる。また、同じ勾配方向θの画素が連続している領域の幅（すなわち、勾配方向θが同じ画素が連続している個数）は、手ぶれによるぶれ幅に相当する。【００３４】
ステップＳ８では、ステップＳ７による検出結果を利用して補正対象領域を特定する。換言すれば、ステップＳ７による検出結果を利用して、補正を行うべきでない画素が特定される。一実施例においては、勾配方向θが同じである画素が連続して並んでいる数（以下、連続画素数Ｃ）が、所定のしきい値と比較される。ここで、図８に示す実施例において、上記しきい値を「８」とする。そうすると、Ｘ方向において連続画素数Ｃが「１０」であり、上記しきい値よりも大きい。この場合、注目画素Ｐの左側に並ぶ４個の画素（Ｑ１〜Ｑ４）、および注目画素Ｐの右側に並ぶ５個の画素（Ｑ５〜Ｑ９）は、補正対象から除外される。【００３５】
なお、ぶれ幅を検出する方法は、特に限定されるものではなく、他の方法で検出するようにしてもよい。例えば、連写により得られる複数の画像を利用して手ぶれ補正を行う場合には、連写画像間の動きベクトルの大きさに基づいてぶれ幅を算出するようにしてもよい。この場合、例えば、動きベクトルの大きさが、入力画像の横幅の１パーセントを超えた場合に、ぶれ幅がぶれ幅しきい値を越えたと判定される。【００３６】
＜ぶれ補正処理＞
ステップＳ９では、ステップＳ２〜Ｓ８において特定された領域に属する画素について補正処理を行う。ここで、ステップＳ４〜Ｓ５では、輝度レベルの勾配が勾配しきい値よりも大きい画素が特定されている。すなわち、図５に示す領域２、４に属する画素が特定されている。また、ステップＳ６〜Ｓ８では、ぶれ幅がぶれ幅しきい値よりも大きい領域が特定されている。すなわち、図５に示す領域３、４に属する画素が特定されている。したがって、図５に示す領域４に属する画素についてのみ、輝度レベルの補正が行われる。【００３７】
このように、ステップＳ４〜Ｓ５において、領域１、３に属する画素が除外される。ここで、領域１、３に属する画素に対して手ぶれ補正を行うと、画像が不自然になる可能性が高い。したがって、領域１、３に属する画素について補正を行わないことにより、画像が不自然になることが回避され、さらに、画像補正に係る処理時間が短くなる。また、ステップＳ６〜Ｓ８において領域Ａ、Ｂに属する画素が除外される。この結果、副作用が発生し得る画素についての補正が行われなくなるので、画質の劣化を防ぎながら、手ぶれを補正することができる。【００３８】
以下、ステップＳ９の補正方法を、図９に示すフローチャートを参照しながら具体的に説明する。なお、以下の補正処理は、ステップＳ２〜Ｓ８において特定された領域に属する画素について行われる。【００３９】
ステップＳ１１では、各画素について評価指数ＩH、ＩM、ＩL、ＧH、ＧM、ＧLを算出する。ステップＳ１２では、各画素について、評価指数ＩH、ＩM、ＩLを利用して、ぶれ範囲に属しているか否かを判定する。ぶれ範囲に属していると判定された画素について、ステップＳ１３〜Ｓ１５が実行される。【００４０】
ステップＳ１３では、対象画素についての評価指数ＧH、ＧM、ＧLを利用して、その対象画素の輝度を補正すべきか否かを判定する。補正が必要な場合には、ステップＳ１４において、評価指数ＩH、ＩM、ＩL、ＧH、ＧM、ＧLを利用して補正量を算出する。そして、ステップＳ１５では、算出された補正量に従って、原画像を補正する。【００４１】
なお、図９に示すステップＳ１１〜Ｓ１５は、エッジのランプ領域（輝度レベル値が傾斜している領域）の幅を狭くすることで、そのエッジをシャープにする処理に相当する。以下、ステップＳ１１〜Ｓ１５の処理を説明する。【００４２】
＜評価指数の算出（ステップＳ１１）＞
図６に示す手順によって特定された各画素（すなわち、図５に示す領域４に属する各画素）について、画素濃度指数ＩH、ＩM、ＩLを算出する。画素濃度指数ＩH、ＩM、ＩLは、上記（３）式で求められる勾配の方向に依存する。ここで、一実施例として、勾配の方向がZone１（０≦θ＜π／４）に属する場合の画素濃度指数ＩH、ＩM、ＩLを算出する例を示す。以下では、画素(i, j)の勾配方向を「θ(i, j)」と呼ぶことにする。【００４３】
まず、「θ＝０」に対して下式を定義する。なお、「P(i, j)」は、座標(i, j)に位置する画素の輝度値を表す。「P(i, j+1)」は、座標(i, j+1)に位置する画素の輝度値を表す。他の画素についても同様である。
ＩH(0)＝0.25×{P(i+1, j+1)＋2×P(i, j+1)＋P(i−1, j+1)}
ＩM(0)＝0.25×{P(i+1, j)＋2×P(i, j)＋P(i−1, j)}
ＩL(0)＝0.25×{P(i+1, j−1)＋2×P(i, j−1)＋P(i−1, j−1)}
同様に、「θ＝π／４」に対して下式を定義する。
ＩH(π/4)＝0.5×{P(i+1, j)＋P(i, j+1)}
ＩM(π/4)＝0.25×{P(i+1, j−1)＋2×P(i, j)＋P(i−1, j+1)}
ＩL(π/4)＝0.5×{P(i, j−1)＋P(i−1, j)}【００４４】
ここで、Zone１における３つの画素濃度指数は、それぞれ「θ＝０」の画素濃度指数および「θ＝π／４」の画素濃度指数を利用する線形補間により算出される。すなわち、Zone１における３つの画素濃度指数は、下式により算出される。
ＩH,Zone1＝ＩH(0)×ω＋ＩH(π/4)×(1−ω)
ＩM,Zone1＝ＩM(0)×ω＋ＩM(π/4)×(1−ω)
ＩL,Zone1＝ＩL(0)×ω＋ＩL(π/4)×(1−ω)
ω＝１−{4×θ(i, j)}／π
Zone２〜Zone８の画素濃度指数についても、同様の手順で算出することができる。すなわち、「θ＝０、π/4、π/2、3π/4、π、−3π/4、−π/2、−π/4」に対して、それぞれ画素濃度指数が算出される。これらの画素濃度指数は、それぞれ、平滑化された画像の各画素の輝度値に３×３フィルタ演算を行うことにより得られる。図１０、図１１、図１２は、それぞれ画素濃度指数ＩH、ＩM、ＩLを得るためのフィルタの構成を示す図である。【００４５】
これらのフィルタを用いることにより、所定の８方向の画素濃度指数ＩH、ＩM、ＩLを算出することができる。そして、各Zoneの画素濃度指数ＩHは、対応する２方向の画素濃度指数ＩHを利用して、下式により算出される。
ＩH,Zone1＝ＩH(0)×w15＋ＩH(π/4)×(1−w15)
ＩH,Zone2＝ＩH(π/2)×w26＋ＩH(π/4)×(1−w26)
ＩH,Zone3＝ＩH(π/2)×w37＋ＩH(3π/4)×(1−w37)
ＩH,Zone4＝ＩH(π)×w48＋ＩH(3π/4)×(1−w48)
ＩH,Zone5＝ＩH(π)×w15＋ＩH(−3π/4)×(1−w15)
ＩH,Zone6＝ＩH(−π/2)×w26＋ＩH(−3π/4)×(1−w26)
ＩH,Zone7＝ＩH(−π/2)×w37＋ＩH(−π/4)×(1−w37)
ＩH,Zone8＝ＩH(0)×w48＋ＩH(−π/4)×(1−w48)
なお、w15、w26、w37、w48は、それぞれ、下指示により表される。
W15＝１−4θ／π
W26＝4θ／π−１
W37＝−１−4θ／π
W48＝１＋4θ／π【００４６】
また、各Zoneの画素濃度指数ＩMは、対応する２方向の画素濃度指数ＩMを利用して、下式により算出される。
ＩM,Zone1＝ＩM(0)×w15＋ＩM(π/4)×(1−w15)
ＩM,Zone2＝ＩM(π/2)×w26＋ＩM(π/4)×(1−w26)
ＩM,Zone3＝ＩM(π/2)×w37＋ＩM(3π/4)×(1−w37)
ＩM,Zone4＝ＩM(π)×w48＋ＩM(3π/4)×(1−w48)
ＩM,Zone5＝ＩM(π)×w15＋ＩM(−3π/4)×(1−w15)
ＩM,Zone6＝ＩM(−π/2)×w26＋ＩM(−3π/4)×(1−w26)
ＩM,Zone7＝ＩM(−π/2)×w37＋ＩM(−π/4)×(1−w37)
ＩM,Zone8＝ＩM(0)×w48＋ＩM(−π/4)×(1−w48)【００４７】
同様に、各Zoneの画素濃度指数ＩLは、対応する２方向の画素濃度指数ＩLを利用して、下式により算出される。
ＩL,Zone1＝ＩL(0)×w15＋ＩL(π/4)×(1−w15)
ＩL,Zone2＝ＩL(π/2)×w26＋ＩL(π/4)×(1−w26)
ＩL,Zone3＝ＩL(π/2)×w37＋ＩL(3π/4)×(1−w37)
ＩL,Zone4＝ＩL(π)×w48＋ＩL(3π/4)×(1−w48)
ＩL,Zone5＝ＩL(π)×w15＋ＩL(−3π/4)×(1−w15)
ＩL,Zone6＝ＩL(−π/2)×w26＋ＩL(−3π/4)×(1−w26)
ＩL,Zone7＝ＩL(−π/2)×w37＋ＩL(−π/4)×(1−w37)
ＩL,Zone8＝ＩL(0)×w48＋ＩL(−π/4)×(1−w48)【００４８】
このように、各画素について画素濃度指数ＩH、ＩM、ＩLを算出する際には、下記の手順が行われる。
（ａ）勾配方向θを算出する
（ｂ）θに対応するZoneを検出する
（ｃ）検出されたZoneに対応する１組のフィルタを用いてフィルタ演算を行う。たとえば、θがZone１に属する場合には、図１０に示すフィルタを用いてＩH(0)、ＩH(π/4)が算出される。ＩM、ＩLについても同様である。
（ｄ）上記（ｃ）で得られる１組の演算結果およびθに基づいて、ＩH、ＩM、ＩLを算出する【００４９】
次に、各画素について勾配指数ＧH、ＧM、ＧLを算出する。勾配指数ＧH、ＧM、ＧLは、画素濃度指数ＩH、ＩM、ＩLと同様に、上記（３）式で求められる勾配の方向に依存する。したがって、画素濃度指数と同様に、まず、Zone１（０≦θ＜π／４）における勾配指数ＧH、ＧM、ＧLを算出する例を示す。【００５０】
「θ＝０」に対して下式を定義する。なお、「gradMag(i, j)」は、座標(i, j)に位置する画素の勾配の大きさを表す。また、「gradMag(i+1, j)」は、座標(i+1, j)に位置する画素の勾配の大きさを表す。他の画素についても同様である。
ＧH(0)＝gradMag(i, j+1)
ＧM(0)＝gradMag(i, j)
ＧL(0)＝gradMag(i, j−1)
同様に、「θ＝π／４」に対して下式を定義する。
ＧH(π/4)＝0.5×{gradMag(i+1, j)＋gradMag (i, j+1)}
ＧM(π/4)＝gradMag(i, j)
ＧL(π/4)＝0.5×{gradMag(i, j−1)＋gradMag (i−1, j)}【００５１】
ここで、Zone１における勾配指数は、「θ＝０」の勾配指数および「θ＝π／４」の勾配指数を利用する線形補間により算出される。すなわち、Zone１における勾配指数は、下式により算出される。
ＧH,Zone1＝ＧH(0)×ω＋ＧH(π/4)×(1−ω)
ＧM,Zone1＝ＧM(0)×ω＋ＧM(π/4)×(1−ω)＝gradMag(i, j)
ＧL,Zone1＝ＧL(0)×ω＋ＧL(π/4)×(1−ω)
ω＝１−{4×θ(i, j)}／π
このように、勾配指数ＧMは、勾配の方向θに依存することなく、常に「gradMag(i, j)」である。即ち、各画素の勾配指数ＧMは、勾配の方向θに係わりなく、上述した（１）式または（２）式により算出される。【００５２】
Zone２〜Zone８の勾配指数についても、同様の手順で算出することができる。すなわち、「θ＝０、π/4、π/2、3π/4、π、−3π/4、−π/2、−π/4」に対して、それぞれ勾配指数が算出される。これらの勾配指数は、それぞれ、平滑化された画像の各画素の勾配の大きさgradMagに３×３フィルタ演算を行うことにより得られる。図１３および図１４は、それぞれ勾配指数ＧH、ＧLを得るためのフィルタの構成を示す図である。【００５３】
このようなフィルタ演算により所定の８方向の勾配指数ＧH、ＧLが得られる。そして、各Zoneの勾配指数ＧHは、対応する２方向の勾配指数ＧHを利用して、下式により算出される。
ＧH,Zone1＝ＧH(0)×w15＋ＧH(π/4)×(1−w15)
ＧH,Zone2＝ＧH(π/2)×w26＋ＧH(π/4)×(1−w26)
ＧH,Zone3＝ＧH(π/2)×w37＋ＧH(3π/4)×(1−w37)
ＧH,Zone4＝ＧH(π)×w48＋ＧH(3π/4)×(1−w48)
ＧH,Zone5＝ＧH(π)×w15＋ＧH(−3π/4)×(1−w15)
ＧH,Zone6＝ＧH(−π/2)×w26＋ＧH(−3π/4)×(1−w26)
ＧH,Zone7＝ＧH(−π/2)×w37＋ＧH(−π/4)×(1−w37)
ＧH,Zone8＝ＧH(0)×w48＋ＧH(−π/4)×(1−w48)
なお、w15、w26、w37、w48は、それぞれ、下指示により表される。
W15＝１−4θ／π
W26＝4θ／π−１
W37＝−１−4θ／π
W48＝１＋4θ／π【００５４】
同様に、各Zoneの勾配指数ＧLは、対応する２方向の勾配指数ＧLを利用して、下式により算出される。
ＧL,Zone1＝ＧL(0)×w15＋ＧL(π/4)×(1−w15)
ＧL,Zone2＝ＧL(π/2)×w26＋ＧL(π/4)×(1−w26)
ＧL,Zone3＝ＧL(π/2)×w37＋ＧL(3π/4)×(1−w37)
ＧL,Zone4＝ＧL(π)×w48＋ＧL(3π/4)×(1−w48)
ＧL,Zone5＝ＧL(π)×w15＋ＧL(−3π/4)×(1−w15)
ＧL,Zone6＝ＧL(−π/2)×w26＋ＧL(−3π/4)×(1−w26)
ＧL,Zone7＝ＧL(−π/2)×w37＋ＧL(−π/4)×(1−w37)
ＧL,Zone8＝ＧL(0)×w48＋ＧL(−π/4)×(1−w48)【００５５】
このように、各画素について勾配指数ＧH、ＧM、ＧLを算出する際には、下記の手順が行われる。
（ａ）勾配の大きさgradMagを算出する
（ｂ）gradMagからＧMを算出する
（ｃ）勾配の方向θを算出する
（ｄ）θに対応するZoneを検出する
（ｅ）検出されたZoneに対応する１組のフィルタを用いてフィルタ演算を行う。たとえば、θがZone１に属する場合には、図１３に示すフィルタを用いてＧH(0)、ＧH(π/4)が算出される。ＧLについても同様である。
（ｆ）上記（ｅ）で得られる１組の演算結果およびθに基づいて、ＧH、ＧLを算出する
以上説明したように、ステップＳ１１においては、各画素について評価指数（画素濃度指数ＩH、ＩM、ＩLおよび勾配指数ＧH、ＧM、ＧL）が算出される。そして、これらの評価指数は、ぶれ範囲の検出、および補正量の算出のために使用される。【００５６】
＜ぶれ範囲の検出（ステップＳ１２）＞
各画素について、それぞれ下記（４）式の条件を満たすか否かをチェックする。なお、（４）式は、対象画素が輝度スロープの途中に位置していることを示している。
ＩH＞ＩM＞ＩL  ・・・（４）
画素濃度指数が（４）式を満たす画素は、ぶれ範囲に属している（或いは、エッジ上に配置されている）と判定される。すなわち、（４）式を満たす画素は、補正が必要であると判定される。一方、画素濃度指数が（４）式を満たしていない画素は、ぶれ範囲に属していないと判定される。すなわち、（４）式を満たしていない画素は、補正が必要でないと判定される。なお、図１に示すランプ領域内の画素は、基本的に、上記（４）式により、ぶれ範囲に属すると判定される。【００５７】
＜補正量の算出（ステップＳ１３〜Ｓ１４）＞
各画素について、下記のケース１〜３を満たすかチェックする。
ケース１：ＧH＞ＧM＞ＧL
ケース２：ＧH＜ＧM＜ＧL
ケース３：ＧH＜ＧM  且つ  ＧL＜ＧM
ケース１は、輝度の勾配が急峻になっていくことを表している。したがって、ケース１に属する画素は、図１に示すエッジのランプ領域において、輝度レベルが中心レベルよりも低い領域（Ａ領域）に属していると考えられる。一方、ケース２は、輝度の勾配が緩やかになっていくことを表している。したがって、ケース２に属する画素は、輝度レベルが中心レベルよりも高い領域（Ｂ領域）に属していると考えられる。なお、ケース３は、対象画素の勾配が、隣接画素の勾配よりも高いことを表している。すなわち、ケース３に属する画素は、輝度レベルが中心レベルまたはその近傍領域（Ｃ領域）に属していると考えられる。そして、補正対象として抽出された各画素について、それぞれ輝度レベルの補正量を算出する。【００５８】
画素がケース１に属する場合（すなわち、画素がランプ領域内の低輝度領域に位置する場合）、その画素の輝度の補正量Leveldownは、下式で表される。なお、「Ｓ」は補正因子であり、「θ」は上述の（３）式で得られる。【００５９】
2010021009.tif 000006
画素がケース２に属する場合（すなわち、画素がランプ領域内の高輝度領域に位置する場合）、その画素の輝度の補正量Levelupは、下式で表される。【００６０】
2010021009.tif 000007
画素がケース３に属する場合（すなわち、画素がランプ領域内の中心領域に位置する場合）、補正量はゼロである。なお、画素がケース１〜３のいずれにも属さない場合にも、補正量はゼロである。【００６１】
＜補正（ステップＳ１５）＞
原画像の各画素の画素値（例えば、輝度レベル）を補正する。ここで、画素（i, j）について補正により得られる画素データImage(i, j)は、下式で得られる。「Originai(i, j)」は、原画像の画素（i, j）の画素データである。
ケース１：Image(i, j)＝Originai(i, j)−Leveldown(i, j)
ケース２：Image(i, j)＝Originai(i, j)＋Levelup(i, j)
他のケース：Image(i, j)＝Originai(i, j)
なお、実施形態の画像補正装置１は、上述したぶれ補正の代わりに、或いは上述したぶれ補正と共に、輪郭強調を行うこともできる。輪郭強調は、特に限定されるものではないが、例えば、アンシャープマスクにより実現される。アンシャープマスクは、原画像とその平滑化画像との間の差分iDiffValue(i, j)を算出する。この差分は、変化の方向も表す。そして、係数iStrengthを用いてこの差分を調整し、その調整された差分を原画像に加える。これにより、輪郭が強調される。【００６２】
アンシャープマスクの計算式は、下記の通りである。なお、「iStrength」は、輪郭強調の強度を表す定数である。
補正値NewValue(i, j)＝Original(i, j)＋iDiffValue(i, j)×iStrength
このように、実施形態の画像補正方法においては、手ぶれ補正のための演算量を少なくすることができる。【００６３】
＜実施形態の画像補正による効果＞
図１５〜図１９は、第１の実施例を説明する図である。図１５は、原画像を示す。図１６は、実施形態の補正方法による補正画像を示す。図１７は、図５に示す領域１に属する画素について補正を行った画像を示す。図１６に示すように、実施形態の補正方法によれば、輪郭のぼけが修正されている。一方、図１７に示す補正画像においては、硯の陰が強調されて不自然である。【００６４】
図１８および図１９は、輝度レベルが補正された画素を示している。図１８および図１９において、輝度レベルが補正された画素は白色で表されている。ここで、図１８および図１９は、それぞれ図１６および図１７に対応する。このように、実施形態の補正方法によれば、輝度レベルを補正が行われる画素の数が少なくなる。【００６５】
図２０〜図２２は、第２の実施例を説明する図である。図２０は、原画像を示す。図２１は、実施形態の補正方法による補正画像を示す。図２２は、図５に示す領域３に属する画素について補正を行った画像を示す。図２１に示すように、実施形態の補正方法によれば、輪郭のぼけが修正されている。一方、図２２に示す補正画像においては、顔の表面の凹凸が強調されて不自然である。なお、特に図示しないが、図５に示す領域２に属する画素について補正を行った場合には、エッジの形状が不自然になることがある。【００６６】
＜ハードウェア構成＞
図２３は、実施形態の画像補正装置１に係わるハードウェア構成を示す図である。図２３において、ＣＰＵ１０１は、メモリ１０３を利用して画像補正プログラムを実行する。記憶装置１０２は、例えばハードディスクであり、画像補正プログラムを格納する。なお、記憶装置１０２は、外部記録装置であってもよい。メモリ１０３は、例えば半導体メモリであり、ＲＡＭ領域およびＲＯＭ領域を含んで構成される。【００６７】
読み取り装置１０４は、ＣＰＵ１０１の指示に従って可搬型記録媒体１０５にアクセスする。可搬性記録媒体１０５は、例えば、半導体デバイス（ＰＣカード等）、磁気的作用により情報が入出力される媒体、光学的作用により情報が入出力される媒体を含むものとする。通信インタフェース１０６は、ＣＰＵ１０１の指示に従って、ネットワークを介してデータを送受信する。入出力装置１０７は、この実施例では、カメラ、表示装置、ユーザからの指示を受け付けるデバイス等に相当する。【００６８】
実施形態に係わる画像補正プログラムは、例えば、下記の形態で提供される。
（１）記憶装置１０２に予めインストールされている。
（２）可搬型記録媒体１０５により提供される。
（３）プログラムサーバ１１０からダウンロードする。
そして、上記構成のコンピュータで画像補正プログラムを実行することにより、実施形態に係わる画像補正装置が実現される。
【図１】
2010021009.tif 000008
【図２】
2010021009.tif 000009
【図３】
2010021009.tif 000010
【図４】
2010021009.tif 000011
【図５】
2010021009.tif 000012
【図６】
2010021009.tif 000013
【図７】
2010021009.tif 000014
【図８】
2010021009.tif 000015
【図９】
2010021009.tif 000016
【図１０】
2010021009.tif 000017
【図１１】
2010021009.tif 000018
【図１２】
2010021009.tif 000019
【図１３】
2010021009.tif 000020
【図１４】
2010021009.tif 000021
【図１５】
2010021009.tif 000022
【図１６】
2010021009.tif 000023
【図１７】
2010021009.tif 000024
【図１８】
2010021009.tif 000025
【図１９】
2010021009.tif 000026
【図２０】
2010021009.tif 000027
【図２１】
2010021009.tif 000028
【図２２】
2010021009.tif 000029
【図２３】
2010021009.tif 000030
【手続補正書】
【提出日】平成22年10月14日(2010.10.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
入力画像の各画素について画素値の勾配を検出する勾配検出部と、
前記入力画像の各画素位置におけるぶれ幅を検出するぶれ幅検出部と、
前記勾配検出部により検出された勾配および前記ぶれ幅検出部により検出されたぶれ幅に基づいて、補正を行うべき領域を特定する補正領域特定部と、
前記補正領域特定部により特定された領域の画素の画素値を補正する補正部、
を有する画像補正装置。
【請求項２】
請求項１に記載の画像補正装置であって、
前記入力画像内のエッジを検出するエッジ検出フィルタをさらに備え、
前記勾配検出部は、前記エッジ検出フィルタの演算結果を利用して、各画素について画素値の勾配を算出する
ことを特徴とする画像補正装置。
【請求項３】
請求項１に記載の画像補正装置であって、
前記入力画像内のエッジを検出するエッジ検出フィルタをさらに備え、
前記ぶれ幅検出部は、前記エッジ検出フィルタの演算結果を利用して、各画素位置におけるぶれ幅を検出する
ことを特徴とする画像補正装置。
【請求項４】
請求項３に記載の画像補正装置であって、
前記ぶれ幅検出部は、前記エッジ検出フィルタの演算結果に基づいて各画素位置における画素値の勾配の方向を算出し、前記勾配の方向が同じまたは略同じである画素が連続している数に基づいてぶれ幅を算出する
ことを特徴とする画像補正装置。
【請求項５】
請求項２〜４のいずれか１つに記載の画像補正装置であって、
前記エッジ検出フィルタのサイズは、前記入力画像のサイズに応じて決定されることを特徴とする画像補正装置。
【請求項６】
請求項２〜４のいずれか１つに記載の画像補正装置であって、
前記エッジ検出フィルタは、Sobelフィルタであることを特徴とする画像補正装置。
【請求項７】
請求項１に記載の画像補正装置であって、
前記補正領域特定部は、前記勾配検出部により検出された勾配が勾配しきい値よりも大きく、かつ、前記ぶれ幅検出部により検出されたぶれ幅がぶれ幅しきい値よりも小さい領域を、補正を行うべき領域として特定する
ことを特徴とする画像補正装置。
【請求項８】
請求項７に記載の画像補正装置であって、
前記ぶれ幅しきい値は、前記入力画像のサイズに応じて決定されることを特徴とする画像補正装置。
【請求項９】
請求項１に記載の画像補正装置であって、
前記補正部は、エッジをシャープにする輪郭補正を行うことを特徴とする画像補正装置。
【請求項１０】
入力画像の各画素について画素値の勾配を検出し、
前記入力画像の各画素位置におけるぶれ幅を検出し、
前記勾配検出部により検出された勾配および前記ぶれ幅検出部により検出されたぶれ幅に基づいて、補正を行うべき領域を特定し、
前記特定された領域の画素の画素値を補正する、
ことを特徴とする画像補正方法。
【請求項１１】
コンピュータに、
入力画像の各画素について画素値の勾配を検出する勾配検出手順、
前記入力画像の各画素位置におけるぶれ幅を検出するぶれ幅検出手順、
前記勾配検出手順により検出された勾配および前記ぶれ幅検出手順により検出されたぶれ幅に基づいて、補正を行うべき領域を特定する補正領域特定手順、
前記補正領域特定手順により特定された領域の画素の画素値を補正する補正手順、
を実行させるための画像補正プログラム。
【国際調査報告】
2010021009.tif 000031
2010021009.tif 000032
2010021009.tif 000033
2010021009.tif 000034