(57)【特許請求の範囲】
【請求項１】
第１のＰＳＦを用いたボケ補正で生じるオーバーシュート量を特定する第１特定部と、
前記第１特定部によって特定されたオーバーシュート量と、前記第１のＰＳＦを用いたボケ補正で生じるオーバーシュート量と当該オーバーシュートが生じる画素に適用すべきＰＳＦとを関連付ける情報と、を参照することによって、前記第１特定部によって特定されたオーバーシュート量に対応する第２のＰＳＦを特定する第２特定部と、を備えることを特徴とする処理装置。
【請求項２】
前記第２特定部は、前記第１特定部によって特定されたオーバーシュート量に応じてＰＳＦの幅を算出し、当該幅に応じたＰＳＦを前記第２のＰＳＦとして算出することを特徴とする請求項１記載の処理装置。
【請求項３】
前記第２特定部は、予め段階的な値に設定された複数のＰＳＦから、前記第１特定部によって特定されたオーバーシュート量に対応するＰＳＦを前記第２のＰＳＦとして選択することを特徴とする請求項１記載の処理装置。
【請求項４】
前記第２特定部は、予め段階的な値に設定された複数のＰＳＦから前記第１特定部によって特定されたオーバーシュート量に対応する複数のＰＳＦを選択し、選択された複数のＰＳＦから補間により前記第２のＰＳＦを特定することを特徴とする請求項１記載の処理装置。
【請求項５】
前記第２のＰＳＦを用いて、前記第１特定部によって特定されたオーバーシュート量が生じる画素に対してボケ補正を行う補正部を備えることを特徴とする請求項１〜４のいずれか一項に記載の処理装置。
【請求項６】
ボケ度合いの小さいＰＳＦを用いてボケ補正を行った結果と、ボケ度合いの大きいＰＳＦを用いてボケ補正を行った結果とを、前記第２のＰＳＦに応じた比率で加算した結果を、ボケ補正の結果として出力する補正部を備えることを特徴とする請求項１記載の処理装置。
【請求項７】
前記第１特定部は、前記第１のＰＳＦとして、前記第１のＰＳＦを用いたボケ補正の対象の画素のボケ度合いのＰＳＦよりも大きいＰＳＦを用いることを特徴とする請求項１〜６のいずれか一項に記載の処理装置。
【請求項８】
前記第１特定部は、画像における複数箇所におけるボケ度合いのＰＳＦを算出し、算出されたＰＳＦのうち最大のＰＳＦを前記第１のＰＳＦとして用いることを特徴とする請求項１〜６のいずれか一項に記載の処理装置。
【請求項９】
前記第１特定部は、元画像の微分輝度値にしきい値を設け、前記しきい値より小さく、かつ前記元画像の微分輝度値と補正画像微分輝度値の符号が逆の部分を算出し、算出結果を用いて前記オーバーシュート量を特定することを特徴とする請求項１〜８のいずれか一項に記載の処理装置。
【請求項１０】
第１のＰＳＦを用いたボケ補正で生じるオーバーシュート量を特定し、
前記特定されたオーバーシュート量と、前記第１のＰＳＦを用いたボケ補正で生じるオーバーシュート量と当該オーバーシュートが生じる画素に適用すべきＰＳＦとを関連付ける情報と、を参照することによって、前記特定されたオーバーシュート量に対応する第２のＰＳＦを特定する、ことを特徴とする処理方法。
【請求項１１】
コンピュータに、
第１のＰＳＦを用いたボケ補正で生じるオーバーシュート量を特定する処理と、
前記特定されたオーバーシュート量と、前記第１のＰＳＦを用いたボケ補正で生じるオーバーシュート量と当該オーバーシュートが生じる画素に適用すべきＰＳＦとを関連付ける情報と、を参照することによって、前記特定されたオーバーシュート量に対応する第２のＰＳＦを特定する処理と、を実行させることを特徴とする処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、処理装置、処理方法および処理プログラムに関する。
【背景技術】
【０００２】
ボケの程度を表すＰＳＦ（Ｐｏｉｎｔ  Ｓｐｒｅａｄ  Ｆｕｎｃｔｉｏｎ）を用いて画像のボケを補正する技術が開示されている。例えば、予め用意した複数の異なるＰＳＦを用いてボケ補正した画像群を生成し、当該画像群のボケの程度に合ったＰＳＦで補正した部分を用いて、異なるボケを補正した画像を生成する方法が開示されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１７６７３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、この方法では、ボケ補正に用いるべきＰＳＦが特定されていないため、用意したＰＳＦに応じた複数回のボケ補正を行い、ボケ補正を行った画像を組み合わせることになる。この場合、処理量が多くなる。
【０００５】
１つの側面では、本発明は、対象の画素のボケ補正に用いるべきＰＳＦを特定することができる処理装置、処理方法および処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
１つの態様では、処理装置は、第１のＰＳＦを用いたボケ補正で生じるオーバーシュート量を特定する第１特定部と、前記第１特定部によって特定されたオーバーシュート量と、前記第１のＰＳＦを用いたボケ補正で生じるオーバーシュート量と当該オーバーシュートが生じる画素に適用すべきＰＳＦとを関連付ける情報と、を参照することによって、前記第１特定部によって特定されたオーバーシュート量に対応する第２のＰＳＦを特定する第２特定部と、を備える。
【発明の効果】
【０００７】
対象の画素のボケ補正に用いるべきＰＳＦを特定することができる。
【図面の簡単な説明】
【０００８】
【図１】複数のＰＳＦを持つ例である。
【図２】複数のＰＳＦを持つ例のフローチャートである。
【図３】実施例１に係る処理装置の全体構成を例示するブロック図である。
【図４】（ａ）〜（ｃ）はボケ画像について説明する図である。
【図５】（ａ）および（ｂ）はオーバーシュートについて説明する図である。
【図６】（ａ）〜（ｃ）はボケ度合いを説明する図である。
【図７】（ａ）および（ｂ）は逆エッジ成分の算出を例示する図である。
【図８】（ａ）および（ｂ）は算出された逆エッジ成分を例示する図である。
【図９】（ａ）は逆エッジ成分を表し、（ｂ）は逆エッジ成分に対応するＰＳＦを表す図である。
【図１０】（ａ）〜（ｄ）はずれ量算出部、ＰＳＦ条件算出部および画像補正部の動作を表すフローチャートの一例である。
【図１１】変形例１を例示する図である。
【図１２】（ａ）〜（ｄ）はずれ量算出部、ＰＳＦ条件算出部および画像補正部の動作を表すフローチャートの一例である。
【図１３】変形例２を例示する図である。
【図１４】変形例３を例示する図である。
【図１５】変形例３を例示する図である。
【図１６】（ａ）〜（ｄ）ハローパスフィルタを用いる場合の効果を説明する図である。
【図１７】実施例２に係るフィルタ装置のブロック図である。
【図１８】フローチャートの一例である。
【図１９】フィルタ処理装置および制御装置のハードウェア構成を説明するためのブロック図である。
【発明を実施するための形態】
【０００９】
実施例の説明に先立って、画像のボケ補正の概要について説明する。
【００１０】
デジタルカメラなどで撮影した画像で、例えばフォーカスがずれて撮影したボケ画像を補正するニーズは多い。例えば、ボケ画像を、ボケの程度をあらわすＰＳＦを元の画像に畳み込んだ画像と仮定して、ボケを復元する手法が採用されている。いわゆるエッジ強調などもボケを改善する手段ではあるが、隣接の画素の情報で近似的に強調しているだけである。そこで、拡がりをもったボケに対してさらに精度よく復元するためには、ＰＳＦの情報を用いて復元する必要がある。
【００１１】
ボケ画像は、もともとボケが無い元の画像に対して、光学的な拡がりを持ったボケを畳み込みしたものとなっている。画像で考えると、ある１点の画素は、その周りの画素の情報を足し合わせた画像である。したがって、ボケを表す式は、下記式（１）のように表すことができる。「ｙ」はボケ画像であり、「ｘ」はボケの無い元の画像であり、「ｋ」はＰＳＦであり、「ｎ」はノイズである。また、「×」を「○」で囲んだ記号は、畳み込みを意味する。
【数１】
0006350205.tif 000002
【００１２】
ボケの復元には、空間周波数を用いる、空間逆フィルタを用いる、最小化で求めるなどの手法がある。しかしながら、より高精度なボケ補正としては、最小化として繰り返し演算で解く方法が好ましい。上記式（１）のｘを求める際に、逆問題として下記式（２）の誤差が最小となれば、元の画像に近い画像が得られる。
【数２】
0006350205.tif 000003
【００１３】
上記式（２）は、逆問題を解くときに解が一意的に決まらない不良設定問題となるので、条件として何らかの正則化項を追加した下記式（３）で表される誤差が最小となるようにｘが算出される。「λ」は重みであり、「Ｅ（ｘ）」は正規化項である。
【数３】
0006350205.tif 000004
【００１４】
このような繰り返し計算を行うことにより、高精度な補正画像を得ることができる。しかしながら、精度よく補正画像を得るためには、有る程度の繰り返し回数が必要となる。そこで、収束結果がしきい値より小さくなるまで計算を繰り返すか、もしくは繰り返し回数をあらかじめ決めておく。
【００１５】
例えば、微分フィルタを正則化項とすると、下記式（４）（５）のような例を用いることができる。「λ」は重み係数であり「α」は正規化項の係数である（例えば２，１，０．８など）。
【数４】
0006350205.tif 000005
【数５】
0006350205.tif 000006
【００１６】
上記式（４）が最小となるようなｘを算出することによって画像が算出される。より精度を高くするためには、ガウシアンであるα＝２の条件よりも、スパースであるα＝１，０．８の条件の方が好ましい。なお上記式（４）は、ＭＡＰ（ｍａｘｉｍｕｍ  ａ−ｐｏｓｔｅｒｉｏｒｉ）推定から算出した結果と同等である。このボケ補正を行うときには、ＰＳＦの大きさが既知であることが前提である。
【００１７】
実際のボケ画像では、ボケ関数ＰＳＦは未知である。ＰＳＦがボケ度合いを軽減する値でなければ、復元画像が違和感のある画像となる。ボケ度合いは画像全体で同じではなく、面内で異なることがある。例えば、被写体距離が異なる複数の人を撮影したときには、複数の人の間でボケ度合いが異なる場合が生じる。このような場合、同一のＰＳＦでボケ補正を行うと、違和感のある画像が生成される。
【００１８】
これを回避するために、図１で例示するように、例えば複数のＰＳＦを持つことが考えられる。この技術では、１枚のボケ画像に対して複数の異なるＰＳＦ（例えばＰＳＦ１〜ＰＳＦｎ）を準備する必要があり、異なるＰＳＦでボケ補正した複数枚のボケ補正画像から合成画像を得る必要がある。複数の異なるＰＳＦを準備し、その異なるＰＳＦで補正するためには、多くのメモリ領域が必要となり、補正に要する時間もかかる。精度よく補正する場合、正則化項を加えて、繰り返し補正をする必要があるが、その繰り返し回数がＰＳＦの個数分必要となり、計算量が増大する。また、領域分割が必要となり、その領域の境界判定が困難である。
【００１９】
複数の異なるＰＳＦを使う場合について、さらに説明する。複数の異なるＰＳＦをｋ１，ｋ２，ｋ３…とすると、下記式（６）のようにそれぞれのＰＳＦごとに最小化を行うことによってｘを求める必要がある。図２は、この場合に実行されるフローチャートの例である。
【数６】
0006350205.tif 000007
【００２０】
これらの最小化問題では、元の画像ｘを求めるためには、直接的にｘを求めることができない。そこで、まず各画素に、初期値を与えて全画素における誤差を求め、順次誤差が少なくなるように繰り返し計算を行う。このような繰り返し計算を行うことにより高精度な補正画像を得ることができる。しかしながら、精度よく補正を行うためには有る程度の繰り返し回数が必要となる。そこで、収束結果があるしきい値より小さくなるまで計算を繰り返すか、もしくはあらかじめ繰り返し回数を決めておく。このような繰り返しによる最小化がＰＳＦごとに複数回必要となる。例えば、高精度化を図るため、繰り返し回数が１０回程度で、ＰＳＦが５個とすると５０回繰り返し計算が必要となる。ＰＳＦの個数分繰り返す回数が必要となり、処理量が多くなる。またメモリも多く必要となる。
【００２１】
このように、ボケ補正に用いるべきＰＳＦが特定されていないと、処理量が多くなってしまう。以下の実施例では、対象の画素のボケ補正に用いるべきＰＳＦを特定することができる処理装置、処理方法、および処理プログラムについて説明する。
【実施例１】
【００２２】
以下、実施例１について詳述する。図３は、実施例１に係る処理装置１００の全体構成を例示するブロック図である。図３で例示するように、処理装置１００は、撮像部１０、アナログフロントエンド２０、フィルタ処理装置３０、制御装置４０、画像メモリ５０、後処理部６０、表示部７０などを備える。
【００２３】
撮像部１０は、レンズ１１、レンズ１２、絞り１３、レンズ１４、撮像素子１５、駆動制御装置１６などを備える。アナログフロントエンド２０は、Ａ／Ｄコンバータ２１、タイミングジェネレータ２２などを備える。フィルタ処理装置３０は、ＲＡＷメモリ３１、設定部３２、ずれ量算出部３３、ＰＳＦ条件算出部３４、画像補正部３５などを備える。
【００２４】
被写体で反射した光は、レンズ１１、レンズ１２、絞り１３、レンズ１４を介して撮像素子１５に入射される。撮像素子１５は、ＣＭＯＳカメラなどである。撮像素子１５が出力するアナログ信号は、Ａ／Ｄコンバータ２１に入力される。駆動制御装置１６は、制御装置４０からの制御信号に基づいて、絞り１３および撮像素子１５を駆動し、レンズ１１，１２，１４の位置を制御することによってフォーカス制御を行う。
【００２５】
タイミングジェネレータ２２は、制御装置４０からの制御信号に基づいて、撮像素子１５の駆動に用いられるタイミングパルスを生成し、撮像素子１５及びＡ／Ｄコンバータ２１へ出力する。Ａ／Ｄコンバータ２１は、入力されるタイミングパルスに応じてアナログ信号をデジタル信号に変換する。得られたデジタル信号は、ＲＡＷメモリ３１に記憶される。このデジタル信号は、ボケ画像に相当する。
【００２６】
設定部３２は、制御装置４０からの制御信号に基づいて、ずれ量算出部３３におけるＰＳＦのずれ量算出に係る設定を行う。また、設定部３２は、ＰＳＦ条件算出部３４におけるＰＳＦ条件算出に係る設定を行う。ずれ量算出部３３は、設定部３２による設定に従って、ＲＡＷメモリ３１に記憶されたボケ画像におけるＰＳＦのずれ量を算出する。ＰＳＦ条件算出部３４は、設定部３２による設定に従って、ずれ量算出部３３で算出されたずれ量を用いてＰＳＦ条件を算出する。画像補正部３５は、ＰＳＦ条件算出部３４で算出されたＰＳＦ条件を用いて、ボケ画像に対してボケ補正を行う。ボケ補正された画像は、画像メモリ５０に記憶されるとともに、後処理部６０に入力される。後処理部６０は、制御装置４０からの制御信号に基づいて、ボケ補正された画像に対して後処理を行い、表示部７０に入力する。表示部７０は、後処理がなされた画像データを出力する。
【００２７】
以下、ずれ量算出部３３およびＰＳＦ条件算出部３４の処理の詳細について説明する。まず、ボケを１次元で模式化すると、図４（ａ）で例示するように、元の波形（元の画像）に対して周辺画素の拡がりを足し合わせることによって、なまった波形（ボケ画像）が生成される。これは、図４（ｂ）で例示するように、なまった波形を、周辺画素の拡がりの情報を使って復元することによって、元の波形が復元されることを意味する。しかしながら、図４（ｃ）で例示するように、なまった波形に対して、周辺画素の元の拡がりよりも広い（ＰＳＦ幅が大きい）情報で復元すると、余分な周辺画素の情報も付加される。その結果、復元波形にオーバーシュートが生じることになる。なお、一例として、ＰＳＦ幅として、半値全幅、１／１０価幅などを用いることができる。
【００２８】
次に、ボケ画像に、ボケの度合いが異なる複数の領域が含まれる場合について説明する。図５（ａ）は、ボケ画像に３種類のボケ度合いが含まれる場合の波形を例示する図である。図５（ａ）において、横軸は画素値を表し、縦軸は輝度値の正規化値を表す。図５（ａ）において、小さい画素値におけるボケの領域を領域Ａとし、大きい画素値におけるボケの領域を領域Ｃとし、中間の画素値におけるボケの領域を領域Ｂとする。ボケの度合いは、領域Ａにおいて最も大きく、領域Ｃにおいて最も小さく、領域Ｂにおいて中程度となっている。画像のボケ度合いを図で表すと、図６（ａ）〜図６（ｃ）のようになる。
【００２９】
図５（ｂ）で例示するように、領域Ａのボケ度合いのＰＳＦで各領域のボケを補正すると、領域Ａにおいてはオーバーシュート（リンギング）はほとんど生じていない。これに対して、領域Ｂにおいてはオーバーシュートが大きくなり、領域Ｃにおいてはさらにオーバーシュートが大きくなる。すなわち、大きいボケ度合いのＰＳＦでボケ補正を行うと、ボケ度合いの小さい領域でのオーバーシュートが大きくなるのである。オーバーシュート量は、ボケ度合いに応じて連続的に変化するため、オーバーシュート量を特定することによって、画像面内の不均一な各画素のＰＳＦ分布条件を算出することができる。
【００３０】
次に、本発明者は、この連続的な変化量を繰り返しによる最小化の畳み込み処理条件に適応することを考えた。ボケ度合いに応じたオーバーシュート量は、各画素位置において異なる連続的な変化量となるので、各画素に異なる畳み込み処理条件（各画素のＰＳＦ条件）を全画素分算出することができる。そこで、本発明者は、各画素に畳み込み条件を変えつつ、全画素における最小化を行うことにより、最小化を一度で行うことができるという考えに気付いた。
【００３１】
そこで、ずれ量算出部３３は、画素に対して第１のＰＳＦを用いてボケ補正を行う際に生じるオーバーシュート量を特定する。この特定されるオーバーシュート量は、当該画素のボケ度合いのＰＳＦからのずれ量に相当する値である。本実施例においては、ずれ量算出部３３は、ボケ補正の全ての画素に対して同一の第１のＰＳＦを用いてボケ補正を行い、各画素におけるオーバーシュート量を特定する。この場合のボケ補正の手法として、上述の最小化を行ってもよいが、フーリエ変換などを行ってもよい。第１のＰＳＦは、特に限定されるものではないが、一例として設定部３２によって設定される。
【００３２】
一例として、ずれ量算出部３３は、オーバーシュート量の特定に、逆エッジ成分を用いる。図７（ａ）および図７（ｂ）は、逆エッジ成分の算出を例示する図である。図７（ａ）および図７（ｂ）で例示するように、上述したなまった波形（ボケ画像）や、余分な情報で補正した波形に対して微分を行うことによって、隣接する画素の輝度変化を示す波形が生成される。
【００３３】
さらに、図７（ａ）で例示するように、なまった波形（ボケ画像）を微分して得られた波形（第１の波形）と、予め設定されたしきい値とを比較し、第１の波形がしきい値よりも小さい部分（例えば、画像中の画素の位置）を取得する。なお、しきい値は、補正対象の画像の種類等により任意に設定することができるが、これに限定されるものではなく、予め固定値に設定してもよい。
【００３４】
さらに、図７（ｂ）で例示するように、上述したしきい値よりも小さい部分であって、余分な情報で補正された波形を微分した波形（第２の波形）を用いて、第１の波形と比較して逆符号の領域を取得する。これにより、画像補正のときに、画素の周りの情報をどの程度使うのがよいのか（つまり、ボケ度合いに見合った適切なＰＳＦの大きさ（幅））を判断することができる。
【００３５】
なお、逆符号の領域とは、例えば微分により得られる第１の波形および第２の波形のそれぞれの輝度値の微分値（エッジ成分）を、同じ画像中の画素の位置で比較したときに符号が逆となる領域である。この逆符号の領域を逆エッジ成分という。図７（ｂ）の例では、第２の波形がしきい値（０）よりも小さい部分であって輝度値の微分値が正（プラス）とは逆の負（マイナス）の領域が逆符号の領域となる。なお、逆符号の領域は、負の領域に限定されるものではなく、例えば微分した後の基準となる輝度値の微分値が負の場合には、正の領域が逆符号の領域となる。
【００３６】
また、逆符号の領域は、オーバーシュート量に応じて変動し、オーバーシュート量が増加すると、逆符号の領域の値も増加する。更に、逆符号の領域における輝度値の微分値(逆エッジ輝度値)は、ＰＳＦの大きさ（幅）に対して単調増加することから、この逆エッジ輝度値を用いて効率よく適切なＰＳＦを推定することができる。
【００３７】
図８（ａ）は、大きいボケ度合いのＰＳＦでボケ補正を行った場合のオーバーシュートを表し、図５（ｂ）と同じ図である。上述した手法により逆エッジ成分を検出すると、図８（ｂ）の結果が得られる。図８（ｂ）で例示するように、オーバーシュート量が少ないとエッジ成分が小さく、オーバーシュート量が多いとエッジ成分が大きくなる。すなわち、ボケ度合いが大きいほど逆エッジ成分が小さくなり、ボケ度合いが小さいほど逆エッジ成分が大きくなる。逆エッジ成分とＰＳＦとは相関関係を有するため、逆エッジ成分からボケ補正に用いるべきＰＳＦを算出することができる。図９（ａ）は逆エッジ成分を表し、図９（ｂ）は逆エッジ成分に対応するＰＳＦを表す。
【００３８】
ＰＳＦ条件算出部３４は、ずれ量算出部３３が算出したずれ量と、第１のＰＳＦを用いたボケ補正で生じるオーバーシュート量と当該オーバーシュート量が生じる画素に適用すべきＰＳＦとを関連付ける情報と、を参照する。それにより、ＰＳＦ条件算出部３４は、ずれ量算出部３３が算出したずれ量に対応するＰＳＦ条件を算出し、当該画素位置における畳み込み処理条件を算出する。本実施例においては、ＰＳＦ条件算出部３４は、各画素（ｉ行目ｊ列目）に対してずれ量算出部３３が算出したずれ量を相殺するＰＳＦを画素ごと（ｉ行目ｊ列目）に算出する。ＰＳＦを算出する関数として、例えばガウシアン関数、対称化指数関数などが挙げられる。また、ずれ量とＰＳＦとの関係のデータベースを用いてもよい。
【００３９】
ｉ行目ｊ列目のＰＳＦを、ｋｉｊとする。画像補正部３５は、下記式（７）の誤差が最小となるように最小化を行うことによって、ｉ行目ｊ列目の元の画像ｘｉｊを算出する。画像補正部３５は、これらの元の画像を合成することによって、ボケ画像を補正する。なお、複数の色（ＲＧＢ等）のそれぞれに対して補正を行ってもよく、輝度のみに対して補正を行ってもよい。
【数７】
0006350205.tif 000008
【００４０】
図１０（ａ）〜図１０（ｄ）は、以上のずれ量算出部３３、ＰＳＦ条件算出部３４および画像補正部３５の動作を表すフローチャートの一例である。図１０（ａ）で例示するように、ずれ量算出部３３およびＰＳＦ条件算出部３４は、各画素位置での畳み込み処理条件を算出する（ステップＳ１）。
【００４１】
図１０（ｂ）は、ステップＳ１の詳細を例示するフローチャートである。図１０（ｂ）で例示するように、ずれ量算出部３３は、各画素（ｉ行目ｊ列目）に対して第１のＰＳＦを用いてボケを補正する（ステップＳ１１）。次に、ずれ量算出部３３は、ステップＳ１１の結果を用いて各画素における逆エッジ成分を算出する（ステップＳ１２）。それにより、ずれ量算出部３３は、各画素において、各画素のボケ度合いのＰＳＦからのずれ量を特定する。次に、ＰＳＦ条件算出部３４は、画素ごとに、異なる条件での畳み込み処理条件を算出する（ステップＳ１３）。
【００４２】
次に、図１０（ａ）で例示するように、画像補正部３５は、ボケ画像の面内分布の比率を用いて繰り返し画像を補正する（ステップＳ２）。図１０（ｃ）は、ステップＳ２の詳細を例示するフローチャートである。図１０（ｃ）で例示するように、ＰＳＦ条件算出部３４および画像補正部３５は、最小化の繰り返し回数分、最小化処理を行う（ステップＳ２１）。ここでの最小化処理は、画素ごとに異なる条件の畳み込み処理である。最小化の繰り返し回数は、予め決めておいてもよく、誤差の収束条件を満たすまで行ってもよい。
【００４３】
図１０（ｄ）は、ステップＳ２１の詳細を例示するフローチャートである。図１０（ｄ）で例示するように、ＰＳＦ条件算出部３４は、対象とする画素の逆エッジ量の範囲にＰＳＦの関数の振幅値を決定する（ステップＳ３１）。次に、ＰＳＦ条件算出部３４は、ＰＳＦの関数の振幅値に応じて、ＰＳＦ関数からＰＳＦを算出する（ステップＳ３２）。ここで算出されるＰＳＦは、対象とする画素のボケ度合いのＰＳＦである。次に、画像補正部３５は、ステップＳ３２で算出されたＰＳＦを用いて対象とする画素の畳み込み演算を行う（ステップＳ３３）。それにより、画像補正部３５は、対象とする画素の誤差を算出する（ステップＳ３４）。ＰＳＦ条件算出部３４および画像補正部３５は、ステップＳ３１〜ステップＳ３４の処理を、各画素に対して行う。それにより、ＰＳＦ条件算出部３４および画像補正部３５は、全画素の誤差を算出する（ステップＳ３５）。
【００４４】
本実施例によれば、第１のＰＳＦを用いたボケ補正で生じたオーバーシュートに応じて、画素ごとにボケ補正に用いるべきＰＳＦをあらかじめ特定することができる。それにより、図３のフローチャートのように複数のＰＳＦ分の最小化を繰り返さなくてもよい。その結果、ボケ補正を行うに際して実行される処理量を低減することができる。また、記憶容量を削減できる。また、ボケ度合いに対して連続的な変化量を用いるため、複数に分かれたＰＳＦを設定する必要がなく、ボケ画像に対して領域分割しなくてもよい。
【００４５】
（変形例１）
例えば、図１１で例示するように、逆エッジ成分を複数段階の範囲に分け、各段階についてＰＳＦを固定してもよい。すなわち、逆エッジ成分の段階的範囲数と同数のＰＳＦを用いてもよい。それにより、ＰＳＦ条件算出部３４は、ずれ量算出部３３が算出するずれ量に相当する逆エッジ成分が含まれる範囲のＰＳＦを、対象とする画素のＰＳＦとして選択する。すなわち、ＰＳＦ条件算出部３４は、あらかじめ段階的な値に設定された複数のＰＳＦから、ずれ量に対応するＰＳＦを選択する。画像補正部３５は、ＰＳＦ条件算出部３４によって選択されたＰＳＦを用いてボケ画像を補正する。
【００４６】
図１２（ａ）は、この処理の詳細を例示するフローチャートである。図１２（ａ）のフローチャートは、図１０（ｄ）の代わりに実行される。図１２（ａ）で例示するように、ＰＳＦ条件算出部３４は、対象とする画素の逆エッジ成分の範囲に応じてＰＳＦを決定する（ステップＳ４１）。ここでは、図１１のように、複数段階のＰＳＦから逆エッジ成分に対応するＰＳＦが選択される。次に、画像補正部３５は、対象とする画素の畳み込み演算を行う（ステップＳ４２）。次に、画像補正部３５は、対象とする画素の誤差を算出する（ステップＳ４３）。ＰＳＦ条件算出部３４および画像補正部３５は、ステップＳ４１〜ステップＳ４３の処理を、各画素に対して行う。それにより、ＰＳＦ条件算出部３４および画像補正部３５は、全画素の誤差を算出する（ステップＳ４４）。本変形例によれば、画素ごとに異なるＰＳＦを記憶しなくてもよいため、記憶容量を低減できる。
【００４７】
（変形例２）
変形例１では、逆エッジ成分に対応させて複数段階のＰＳＦを用いたが、補間によって複数段階のＰＳＦの間のＰＳＦを算出してもよい。例えば、図１３で例示するように、互いに離間する逆エッジ成分に対応させて複数段階のＰＳＦをあらかじめ設定しておく。ＰＳＦ条件算出部３４は、対象とする画素の逆エッジ成分が複数段階のＰＳＦの間に位置する場合、当該逆エッジ成分に応じて当該位置を挟む２つのＰＳＦを用いた補間によってＰＳＦを算出する。画像補正部３５は、ＰＳＦ条件算出部３４によって算出されたＰＳＦを用いてボケ画像を補正する。例えば、複数段階のＰＳＦに９×９の要素を設定した場合、要素ごとの輝度値を補間する。
【００４８】
図１２（ｂ）は、この処理の詳細を例示するフローチャートである。図１２（ｂ）のフローチャートは、図１０（ｄ）の代わりに実行される。図１２（ｂ）で例示するように、ＰＳＦ条件算出部３４は、対象とする画素の逆エッジ成分の範囲に応じて複数のＰＳＦを決定する（ステップＳ５１）。ここでは、図１３のように、複数段階のＰＳＦから逆エッジ成分に対応するＰＳＦが選択される。次に、ＰＳＦ条件算出部３４は、逆エッジ量に応じて、選択された複数のＰＳＦから補間によりＰＳＦを算出する（ステップＳ５２）。
【００４９】
次に、画像補正部３５は、対象とする画素の畳み込み演算を行う（ステップＳ５３）。次に、画像補正部３５は、対象とする画素の誤差を算出する（ステップＳ５４）。ＰＳＦ条件算出部３４および画像補正部３５は、ステップＳ５１〜ステップＳ５４の処理を、各画素に対して行う。それにより、ＰＳＦ条件算出部３４および画像補正部３５は、全画素の誤差を算出する（ステップＳ５５）。本変形例によれば、画素ごとに異なるＰＳＦを記憶しなくてもよいため、記憶容量を低減できる。また、段階的なＰＳＦを用いる場合よりも精度が向上する。
【００５０】
（変形例３）
変形例２では、補間によってＰＳＦを算出したが、ＰＳＦ小での畳み込みの処理結果とＰＳＦ大での畳み込みの処理結果との比率を用いてボケを補正してもよい。図１４および図１５で例示するように、一例として、最大逆エッジ成分に対応する小さいボケ度合いのＰＳＦと最小逆エッジ成分に対応する大きいボケ度合いのＰＳＦとを予め設定しておく。ＰＳＦ条件算出部３４は、各画素の逆エッジ成分に相当するボケ度合いのＰＳＦを算出する。ＰＳＦ条件算出部３４は、上記小さいボケ度合いのＰＳＦと大きいボケ度合いのＰＳＦとの比率を変更することによって、算出されたＰＳＦと一致させる。ＰＳＦ条件算出部３４は、この場合の比率を画素ごとに算出する。
【００５１】
画像補正部３５は、図１４および図１５で例示するように、ＰＳＦ条件算出部３４が算出した比率で、最大逆エッジ成分に対応するＰＳＦでの畳み込み処理結果と最小逆エッジ成分に対応するＰＳＦでの畳み込み処理結果とを加算する。加算によって得られた結果を当該画素における補正後の画素とする。
【００５２】
例えば、下記式（８）の誤差を最小とするようなｘを元の画素として求めることができる。なお、下記式（８）において、ｋ１は、ボケ度合いの小さい（逆エッジ成分の大きい）ＰＳＦであり、ｋ２は、ボケ度合いの大きい（逆エッジ成分の小さい）ＰＳＦである。αｉｊは、ｉ行面ｊ列目の画素におけるｋ１の配分であり、βｉｊは、当該画素におけるｋ２の配分である。αｉｊおよびβｉｊは、当該画素の逆エッジ成分の大きさに応じて決まる値である。この配分を用いれば、最低限２個のＰＳＦを設定すればよい。
【数８】
0006350205.tif 000009
【００５３】
なお、β＝１−αとすることで、下記式（９）を用いてもよい。
【数９】
0006350205.tif 000010
【００５４】
図１２（ｃ）は、この処理の詳細を例示するフローチャートである。図１２（ｃ）のフローチャートは、図１０（ｄ）の代わりに実行される。図１２（ｃ）で例示するように、画像補正部３５は、小さいボケ度合いのＰＳＦで対象とする画素の畳み込み演算を行う（ステップＳ６１）。次に、画像補正部３５は、大きいボケ度合いのＰＳＦで対象とする画素の畳み込み演算を行う（ステップＳ６２）。
【００５５】
次に、ＰＳＦ条件算出部３４は、対象とする画素の逆エッジ成分に相当するボケ度合いのＰＳＦを算出する。ＰＳＦ条件算出部３４は、上記小さいボケ度合いのＰＳＦと大きいボケ度合いのＰＳＦとの比率を変更することによって、算出されたＰＳＦと一致させる。画像補正部３５は、この比率で、小さいボケ度合いのＰＳＦでの畳み込み処理結果と大きいボケ度合いのＰＳＦでの畳み込み処理結果とを互いに加算する（ステップＳ６３）。次に、画像補正部３５は、対象とする画素の誤差を算出する（ステップＳ６４）。ＰＳＦ条件算出部３４および画像補正部３５は、ステップＳ６１〜ステップＳ６４の処理を、各画素に対して行う。それにより、ＰＳＦ条件算出部３４および画像補正部３５は、全画素の誤差を算出する（ステップＳ６５）。本変形例によれば、画素ごとに異なるＰＳＦを記憶しなくてもよいため、記憶容量を低減できる。また、ＰＳＦを補間しなくてもよいため、処理量を低減できる。
【００５６】
さらに、ｋ１はボケ度合いの小さいＰＳＦであるため、ｋ１を小さくすることが可能である。例えば、ｋ１が、ボケが無い状態のＰＳＦであれば、下記式（１０）のように、ｋ１＝１としてもよい。この場合、畳み込みが減るため、処理量を削減することができる。
【数１０】
0006350205.tif 000011
【００５７】
図１２（ｄ）は、この処理の詳細を例示するフローチャートである。図１２（ｄ）のフローチャートは、図１０（ｄ）の代わりに実行される。図１２（ｄ）で例示するように、画像補正部３５は、大きいボケ度合いのＰＳＦで対象とする画素の畳み込み演算を行う（ステップＳ７１）。
【００５８】
次に、ＰＳＦ条件算出部３４は、対象とする画素の逆エッジ成分に相当するボケ度合いのＰＳＦを算出する。ＰＳＦ条件算出部３４は、大きいボケ度合いのＰＳＦの比率を変更することによって、算出されたＰＳＦと一致させる。画像補正部３５は、元の輝度に対して、大きいボケ度合いのＰＳＦでの畳み込み処理結果と当該比率と掛け合わせて加算する（ステップＳ７２）。次に、画像補正部３５は、対象とする画素の誤差を算出する（ステップＳ７３）。ＰＳＦ条件算出部３４および画像補正部３５は、ステップＳ７１〜ステップＳ７３の処理を、各画素に対して行う。それにより、ＰＳＦ条件算出部３４および画像補正部３５は、全画素の誤差を算出する（ステップＳ７４）。本変形例によれば、画素ごとに異なるＰＳＦを記憶しなくてもよいため、記憶容量を低減できる。また、畳み込みが減るため、処理量を削減することができる。
【００５９】
なお、逆エッジ成分はエッジ部分に集中していることから、上記各例において、ローパスフィルタ等を用いて逆エッジ成分を拡張してもよい。図１６（ａ）は、逆エッジ成分を表し、図１６（ｃ）は、ローパスフィルタで拡張された逆エッジ成分を表す。逆エッジ成分を拡張することで、オーバーシュート量の特定精度が向上する。その結果、図１６（ｄ）で例示するように、画像補正部３５による補正後の画像において、オーバーシュートをさらに低減することができる。比較のために、図１６（ｂ）に、逆エッジ成分を拡張しないで補正した画像のオーバーシュートを表す。
【実施例２】
【００６０】
図１７は、実施例２に係るフィルタ処理装置３０ａを例示するブロック図である。図１７で例示するように、フィルタ処理装置３０ａが実施例１に係るフィルタ処理装置３０と異なる点は、最大ＰＳＦ算出部３６がさらに設けられている点である。以下、実施例１と異なる点について説明する。
【００６１】
ＰＳＦでボケ補正を行う際にＰＳＦが小さいと、ボケの度合いが小さい画像領域についてはオーバーシュート量が小さくなり、逆エッジ成分を検出しにくくなる。したがって、逆エッジ成分を検出する際には、画素におけるボケ度合いのＰＳＦよりも大きいＰＳＦを第１のＰＳＦとして用いることが好ましい。
【００６２】
そこで、本実施例においては、最大ＰＳＦ算出部３６は、最大ＰＳＦを算出する。例えば、最大ＰＳＦとして、あらかじめ設定した最大ＰＳＦと定義することができる。ＰＳＦは有限の個数の要素で定義する必要があるので、ボケ補正には要素数のボケより大きいボケの補正には限界がある。そこで、限界のボケの大きさを最大ボケと定義し、このときのＰＳＦを最大ＰＳＦとして用いることができる。
【００６３】
図１８は、図１０（ｂ）の代わりに実行されるフローチャートである。図１８で例示するように、最大ＰＳＦ算出部３６は、上述のように最大ＰＳＦを算出する（ステップＳ８１）。次に、ずれ量算出部３３は、各画素（ｉ行目ｊ列目）に対して最大ＰＳＦを用いてボケを補正する（ステップＳ８２）。次に、ずれ量算出部３３は、ステップＳ８２の結果を用いて各画素における逆エッジ成分を算出する（ステップＳ８３）。それにより、ずれ量算出部３３は、各画素において、各画素のボケ度合いのＰＳＦからのずれ量を特定する。次に、ＰＳＦ条件算出部３４は、画素ごとに、異なる条件での畳み込み処理条件を算出する（ステップＳ８４）。
【００６４】
本実施例によれば、第１のＰＳＦとして各画素のＰＳＦよりも大きい最大ＰＳＦを用いてボケ補正を行うため、全画素のオーバーシュート量を精度良く特定することができる。それにより、全画素のボケ度合いのＰＳＦを算出することができる。
【００６５】
なお、最大ＰＳＦ算出部３６は、ボケ画像の複数箇所のＰＳＦの大きさを算出し、その中の最大のＰＳＦを第１のＰＳＦとして算出してもよい。当該複数箇所は、ボケ画像のある箇所をあらかじめ設定しておく（例えば５箇所）、あるいは顔画像だと顔認証でその箇所を設定するなどで決定する。各々の箇所のＰＳＦの大きさの算出は、上述の逆エッジ成分の算出により取得することができる。
【００６６】
（他の例）
図１９は、フィルタ処理装置３０および制御装置４０のハードウェア構成を説明するためのブロック図である。図１９で例示するように、フィルタ処理装置３０および制御装置４０は、ＣＰＵ２０１、ＲＡＭ２０２、記憶装置２０３、インタフェース２０４などを備える。これらの各機器は、バスなどによって接続されている。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１は、中央演算処理装置である。ＣＰＵ２０１は、１以上のコアを含む。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０２は、ＣＰＵ２０１が実行するプログラム、ＣＰＵ２０１が処理するデータなどを一時的に記憶する揮発性メモリである。記憶装置２０３は、不揮発性記憶装置である。記憶装置２０３として、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリなどのソリッド・ステート・ドライブ（ＳＳＤ）、ハードディスクドライブに駆動されるハードディスクなどを用いることができる。ＣＰＵ２０１が処理プログラムを実行することによって、処理装置１００内にフィルタ処理装置３０および制御装置４０が実現される。または、フィルタ処理装置３０および制御装置４０は、専用の回路などのハードウェアであってもよい。
【００６７】
なお、上記各例において、一例として、ずれ量算出部３３が、第１のＰＳＦを用いたボケ補正で生じるオーバーシュート量を特定する第１特定部として機能する。また、一例として、ＰＳＦ条件算出部３４および画像補正部３５が、第１特定部によって特定されたオーバーシュート量と、第１のＰＳＦを用いたボケ補正で生じるオーバーシュート量と当該オーバーシュートが生じる画素に適用すべきＰＳＦとを関連付ける情報と、を参照することによって、第１特定部によって特定されたオーバーシュート量に対応する第２のＰＳＦを特定する第２特定部として機能する。
【００６８】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００６９】
１０  撮像部
２０  アナログフロントエンド
３０  フィルタ処理装置
３１  ＲＡＷメモリ
３２  設定部
３３  ずれ量算出部
３４  ＰＳＦ条件算出部
３５  画像補正部
３６  最大ＰＳＦ算出部
４０  制御装置
５０  画像メモリ
６０  後処理部
７０  表示部
１００  処理装置
【図１】
0006350205.tif 000012
【図２】
0006350205.tif 000013
【図３】
0006350205.tif 000014
【図４】
0006350205.tif 000015
【図５】
0006350205.tif 000016
【図６】
0006350205.tif 000017
【図７】
0006350205.tif 000018
【図８】
0006350205.tif 000019
【図９】
0006350205.tif 000020
【図１０】
0006350205.tif 000021
【図１１】
0006350205.tif 000022
【図１２】
0006350205.tif 000023
【図１３】
0006350205.tif 000024
【図１４】
0006350205.tif 000025
【図１５】
0006350205.tif 000026
【図１６】
0006350205.tif 000027
【図１７】
0006350205.tif 000028
【図１８】
0006350205.tif 000029
【図１９】
0006350205.tif 000030