しかしながら、携帯電話機の小型化は、その性能、コストに並び、各携帯電話機メーカの競争の焦点の1つであり、携帯電話機付属のカメラに、ぶれの方向やぶれ幅を取得する装置を設けることが現実的ではないため、特許文献1に提案されたような方法は、携帯カメラに適用することができない。
また、特許文献2に提案された方法は、ユーザにより小領域の指定を必要とするため、面倒である。さらに、写真画像には、顔などの主要被写体をアップにして撮像した被写界深度の浅い画像があり、このような被写界深度の浅い画像の場合、ボケていなくても、主要被写体以外の他の部分がボケている。ユーザにより指定された小領域が主要被写体以外の部分に位置すると、適切な劣化関数を求めることができず、補正した画像の画質は返って劣化してしまうという問題がある。
本発明は、上記事情に鑑み、特別な装置を撮像装置に設けることを必要とせずにデジタル写真画像におけるボケの補正を効率良く行うことを可能にすると共に、被写界深度の浅い画像に対しても適切な補正を行うことができる画像処理方法および装置並びにそのためのプログラムを提供することを目的とするものである。
本発明の第1の画像処理方法は、デジタル写真画像におけるボケを補正する画像処理方法において、
前記デジタル写真画像から主要被写体領域を抽出し、
該主要被写体領域の画像を用いて前記ボケを補正するためのパラメータを設定し、
設定された前記パラメータを用いて前記デジタル写真画像に対して補正を行うことを特徴とするものである。
本発明の第2の画像処理方法は、デジタル写真画像におけるボケを補正する画像処理方法において、
前記デジタル写真画像が被写界深度の浅い画像か否かを判別し、
被写界深度の浅い画像に判別された前記デジタル写真画像に対して、該デジタル写真画像から主要被写体領域を抽出し、該主要被写体領域の画像を用いて前記ボケを補正するためのパラメータを設定する一方、被写界深度の浅い画像に判別された画像以外の前記デジタル写真画像に対して、該デジタル写真画像全体を用いて前記ボケを補正するためのパラメータを設定し、
設定された前記パラメータを用いて前記デジタル写真画像に対して補正を行うことを特徴とするものである。
本発明の第3の画像処理方法は、デジタル写真画像におけるボケを補正する画像処理方法において、
前記デジタル写真画像から主要被写体領域を抽出し、
該主要被写体領域の画像を用いて前記ボケを補正するためのパラメータを設定して第1のパラメータとすると共に、前記デジタル写真画像全体または前記主要被写体領域以外の領域の画像を用いて前記ボケを補正するためのパラメータを設定して第2のパラメータとし、
前記デジタル写真画像が被写界深度の浅い画像である確信度を求め、
前記確信度が高いほど前記第1のパラメータの重みが大きくなるように前記第1のパラメータと前記第2のパラメータとを重付合算して前記ボケを補正するためのパラメータを取得し、
該パラメータを用いて前記デジタル写真画像に対して補正を行うことを特徴とするものである。
前記デジタル写真画像に、該デジタル写真画像を撮像した撮像装置のレンズのF値を含む付属情報が付属されている場合、本発明の画像処理方法は、前記付属情報を読み取って前記F値を取得し、該F値に基づいて前記デジタル写真画像が被写界深度の浅い画像か否かの判別または前記確信度を求める処理を行うことができる。
ここで、前記F値に基づいて前記デジタル写真画像が被写界深度の浅い画像か否かの判断を行う際に、例えば、前記デジタル写真画像の付属情報に含まれたF値が所定の閾値(例えば5.6)以下であれば、該デジタル写真画像が被写界深度の浅い画像であると判別することができ、前記F値が前記所定の閾値より大きければ、該デジタル写真画像が被写界深度の浅い画像ではないと判別することができる。
また、前記F値に基づいて前記デジタル写真画像が被写界深度の浅い画像である確信度を求める際に、例えば、最大確信度と最小確信度とを夫々100%と0%にして、所定の閾値(例えば2.8)以下のF値のデジタル写真画像の前記確信度を100%、この所定の閾値より大きい所定の閾値(例えば11)以上のF値のデジタル写真画像の前記確信度を0%、この2つの閾値の間の範囲(例えば2.8と11を除く2.8〜11の範囲)内のF値のデジタル写真画像の前記確信度を100%と0%を除いた100%から0%の間にあり、かつF値が大きいほど大きくなる値とするようにすればよい。
また、本発明の画像処理方法は、前記デジタル写真画像から抽出した主要被写体領域の画像および前記主要被写体領域以外の領域の画像に対して、複数の異なる方向毎にエッジを検出し、各前記方向における前記エッジの特徴量を取得し、該エッジ特徴量に基づいてボケ情報を取得するボケ情報取得処理を夫々施して夫々の前記ボケ情報を得、前記主要被写体領域の画像から取得された前記ボケ情報および前記主要被写体領域以外の領域の画像から取得された前記ボケ情報とを比較することによって、前記デジタル写真画像が被写界深度の浅い画像か否かの判別または前記確信度を求める処理を行うことができる。
ボケは画像中の点像の広がりを引き起こすため、ボケがある画像(以下ボケ画像という)には、点像の広がりに応じたエッジの広がりが生じる。すなわち、画像中におけるエッジの広がりの態様は画像中におけるボケと直接関係するものである。本発明におけるボケ情報取得処理は、この点に着目して、複数の異なる方向毎にエッジを検出し、各前記方向における前記エッジの特徴量に基づいて前記ボケ情報を求めるものである。
ここで、「エッジ特徴量」が、対象となる画像(以下略して対象画像という。ここではデジタル写真画像における主要被写体領域の画像または主要被写体領域以外の領域の画像となる)におけるエッジの広がりの態様と関係する特徴量を意味し、例えば、エッジの鮮鋭度、前記エッジの鮮鋭度の分布を含むものとすることができる。
「エッジの鮮鋭度」は、エッジの鮮鋭さを現すことができるものであれば如何なるパラメータを用いてもよく、例えば、図5のエッジプロファイルにより示されるエッジの場合、エッジ幅が大きいほどエッジの鮮鋭度が低いように、エッジ幅をエッジの鮮鋭度として用いることは勿論、エッジの明度変化の鋭さ(図5におけるプロファイル曲線の勾配)が高いほどエッジの鮮鋭度が高いように、エッジのプロファイル曲線の勾配をエッジの鮮鋭度として用いるようにしてもよい。
また、「ボケ情報」は、対象画像におけるボケの態様を表すことができる情報を意味し、ボケの方向に関するボケ方向情報とボケ幅とすることができる。「ボケ」は、無方向性のボケすなわちピンボケと、有方向性のボケすなわちぶれがあり、ぶれの場合は、ボケ方向がぶれ方向に相当し、ピンボケの場合において、その「ボケ方向」は「無方向」となる。また、「ボケ幅」とは、ボケ方向におけるボケの幅を意味し、例えば、ボケ方向におけるエッジのエッジ幅の平均値とすることができる。また、ボケが無方向性のピンボケの場合において、任意の1つの方向におけるエッジのエッジ幅をボケ幅としてもよいが、前記複数の異なる方向に含まれる全ての方向におけるエッジのエッジ幅の平均値とすることが好ましい。
さらに、本発明における対象画像は、ボケ画像に限らず、ピンボケもぶれもない通常画像(ピンボケもぶれもない被写界深度の浅いデジタル写真画像における主要被写体領域の画像が通常画像となり、主要被写体領域以外の領域の画像はピンボケ画像となる)もあり、このような通常画像は、無ボケ、すなわち「無方向」のボケ方向情報と「所定の閾値以下の」ボケ幅とからなるボケ情報を有することとする。
また、前記「複数の異なる方向」とは、対象画像におけるボケの方向を特定するための方向を意味し、ボケの方向に近い方向を含むことが必要であるため、その数が多ければ多いほど特定の精度が高いが、処理速度との兼ね合いに応じた適宜な個数、例えば、図4に示すような8方向を用いることが好ましい。
本発明の画像処理方法において、前記主要被写体領域の画像のボケ情報と前記主要被写体領域以外の領域の画像のボケ情報とを比較することによって前記デジタル写真画像が被写界深度の浅い画像か否かの判断を行う際に、例えば、主要被写体領域の画像のボケ情報が「無方向」と「所定の第1の閾値以下のボケ幅」であり、主要被写体領域以外の領域のボケ情報が「無方向」と「所定の第1の閾値以上のボケ幅」であれば、このデジタル写真画像を被写界深度の浅い画像であると判別することができる。なお、この場合、このデジタル写真画像はピンボケもぶれもない写真画像とすることができるが、ピンボケのある被写界深度の浅いデジタル写真画像の場合、主要被写体領域の画像のボケ情報が「無方向」と「所定の第1の閾値以上のボケ幅」となり、主要被写体領域以外の領域の画像のボケ情報が「無方向」と「主要被写体領域の画像におけるボケ幅より大きいボケ幅」となる。ぶれのある被写界深度の浅いデジタル写真画像の場合、主要被写体領域の画像と主要被写体領域以外の領域の画像のボケ方向情報として「有方向」となるが、ボケ幅にはやはり差が出る。逆に、被写界深度の浅い画像ではないデジタル写真画像の場合、主要被写体領域の画像のボケ情報と主要被写体領域以外の領域の画像のボケ情報とはそれほど差がないはずである。本発明の画像処理方法は、このような傾向に着目して、デジタル写真画像における主要被写体領域の画像のボケ情報と主要被写体領域以外の画像のボケ情報とを比較することによって、このデジタル写真画像が被写界深度の浅い画像か否かを判別することができる。
また、本発明の画像処理方法において、デジタル写真画像における主要被写体領域の画像のボケ情報と主要被写体領域以外の領域の画像のボケ情報とを比較することによって該デジタル写真画像が被写界深度の浅い画像である確信度の算出については、2つの領域のボケ情報の差異によって被写界深度の浅い画像か否かの2つのみの判別ではなく、この差異が大きいデジタル写真画像ほど被写界深度の浅い画像である確信度が大きいように前記確信度を算出すればよい。
さらに、本発明の画像処理方法は、前記デジタル写真画像を複数のブロックに分け、
各前記ブロックの画像に対して、複数の異なる方向毎にエッジを検出し、各前記方向における前記エッジの特徴量を取得し、該エッジ特徴量に基づいてボケ情報を取得するボケ情報取得処理を夫々施して夫々の前記ボケ情報を得、
各々の前記ブロックの画像から取得された前記ボケ情報を比較することによって、前記デジタル写真画像が被写界深度の浅い画像か否かの判別または前記確信度を求める処理を行うことができる。
被写界深度の浅い画像であれば、或いは被写界深度の浅い画像である確信度が高ければ、各々の前記ブロックを、グループ間のボケ情報の差異が所定の閾値以上で、夫々のグループ内の各ブロックのボケ情報の差異が少ない特徴を有する2つ以上のグループに分けることができる。これらのグループは、前記主要被写体領域の画像と主要被写体領域以外の画像に相当すると考えることができ、本発明の画像処理方法はこの点に着目して各ブロックの画像のボケ情報を比較することによって前記判別または前記確信度の算出を行うようにしてもよい。
本発明の画像処理方法において、前記ボケを補正するためのパラメータを設定する方法としては、前記パラメータを設定することに使用される画像(第1の画像処理方法においては主要被写体領域の画像、第2の画像処理方法においては主要被写体領域の画像とデジタル写真画像全体、第3の画像処理方法においては主要被写体領域の画像、およびデジタル写真画像全体または主要被写体領域以外の領域の画像)を用いて前記パラメータを設定することができれば如何なる方法(例えば、特許文献2記載の方法)でもよいが、本発明の画像処理方法は、前記パラメータを設定することに使用される画像に対して、複数の異なる方向毎にエッジを検出し、各前記方向における前記エッジの特徴量を取得し、該エッジ特徴量に基づいてボケ情報を取得するボケ情報取得処理を施し、前記ボケ情報に基づいて前記パラメータを設定することが好ましい。
前述したように、「ボケ」は、無方向性のボケすなわちピンボケと、有方向性のボケすなわちぶれがあり、ぶれの場合は、ボケ方向がぶれ方向に相当し、ピンボケの場合において、その「ボケ方向」は「無方向」となる。本発明の画像処理方法は、前記ボケ方向情報として、前記ボケが無方向性のピンボケ(ボケが無方向)か有方向性のぶれ(ボケが有方向)かを示す情報、およびぶれの場合の該ぶれの方向を示す情報を取得し、前記パラメータを設定する際に、ピンボケの場合には等方性補正用の等方性補正パラメータを、ぶれの場合には方向性補正用の方向性補正パラメータを設定するようにすることができる。
ここで、「等方性補正」とは、各方向に対して同等に作用する補正を意味し、「方向性補正」とは、所定の方向にのみ作用する補正あるいは方向により作用が異なる補正を意味する。一方、ボケが、エッジの広がりとして画像に現れるため、ボケを補正する方法としては、従来公知の、画像の鮮鋭度を向上させるための補正方法、例えば、USM(アン・シャープネス・マスキング)などを用いることができる。前記補正のパラメータを設定する際に、所用の補正方法に応じてパラメータを設定する。例えば、補正の方法としてUSMを用いる場合に、等方性補正パラメータとして等方性補正マスクを設定し、方向性補正のパラメータとしては前記ぶれ方向に作用する方向性補正マスクを設定するようにすればよい。さらに、ボケ情報に含まれるボケ幅に応じて補正マスクのサイズを設定してもよい。
また、前記ボケ情報によりボケをピンボケとぶれとに明確に分けることができない場合があり、ボケ画像には、ピンボケとぶれとの両方が存在する場合もある。このような場合に備え、本発明の画像処理方法は、ボケをピンボケかぶれかに決め付けず、ボケ方向におけるボケのぶれの程度の大小を示すぶれ度も前記ボケ情報として取得し、前記ぶれ度が高いほど、方向性補正の重みが高くなるように、等方性補正用の等方性補正パラメータと方向性補正用の方向性補正パラメータとを重み付け合算して前記パラメータを設定することが好ましい。
さらに、本発明の画像処理方法は、前記ボケの程度の大小を示すボケ度も前記ボケ情報として取得し、前記ボケ度が高いほど補正強度が大きくなるように前記パラメータを設定するようにしてもよい。
ここで、ボケ度が所定の閾値より小さい画像をボケがない通常画像とすることができるため、このような画像に対して「補正しない」ようなパラメータを設定して補正するようにしてもよいが(その結果、補正済み画像と元の画像とが同じである)、処理の効率性を高めるために、ボケ度が所定の閾値以上の前記デジタル写真画像に対してのみ、前記パラメータの設定および前記補正を行い、前記閾値よりボケ度の小さい画像に対しては前記パラメータの設定も、勿論補正もしないようにすることが好ましい。
また、デジタル写真画像を縮小して得た縮小画像は、原画像よりもエッジを検出しやすく、エッジの検出にかかる演算量が少ないので、本発明において、対象画像に対して縮小処理を施して得た縮小画像から前記エッジを検出することが好ましい。
さらに、強度の低いエッジは、ノイズである可能性が高く、また人間は強度の高いエッジの状態によりボケを認識するので、本発明において、対象画像に対して所定の閾値以上の強度を有するエッジのみを検出することが好ましい。
さらに、対象画像から検出された前記エッジのうち、無効なエッジを除去することが好ましい。なお、「無効なエッジ」とは、ボケ情報の取得に関連性が低いエッジや、ボケ情報の取得を困難にしたり、間違ったボケ情報を取得させたりする可能性のあるエッジを意味し、形状が複雑なエッジや、光源を含むエッジなどを挙げることができる。
本発明の第1の画像処理装置は、デジタル写真画像におけるボケを補正する画像処理装置であって、
前記デジタル写真画像から主要被写体領域を抽出する主要被写体抽出手段と、
該主要被写体領域の画像を用いて前記ボケを補正するためのパラメータを設定するパラメータ設定手段と、
該パラメータ設定手段により設定された前記パラメータを用いて前記デジタル写真画像に対して補正を行う補正手段とを有することを特徴とするものである。
本発明の第2の画像処理装置は、デジタル写真画像におけるボケを補正する画像処理装置であって、
前記デジタル写真画像から主要被写体領域を抽出する主要被写体抽出手段と、
前記デジタル写真画像が被写界深度の浅い画像か否かを判別する判別手段と、
前記判別手段により被写界深度の浅い画像に判別された前記デジタル写真画像に対して、前記主要被写体抽出手段により抽出された該デジタル写真画像の前記主要被写体領域の画像を用いて前記ボケを補正するためのパラメータを設定する一方、被写界深度の浅い画像に判別された画像以外の前記デジタル写真画像に対して、該デジタル写真画像全体を用いて前記ボケを補正するためのパラメータを設定するパラメータ設定手段と、
該パラメータ設定手段により設定された前記パラメータを用いて前記デジタル写真画像に対して補正を行う補正手段とを有することを特徴とするものである。
本発明の第3の画像処理装置は、デジタル写真画像におけるボケを補正する画像処理装置であって、
前記デジタル写真画像から主要被写体領域を抽出する主要被写体抽出手段と、
前記デジタル写真画像が被写界深度の浅い画像である確信度を求める確信度算出手段と、
前記主要被写体抽出手段により抽出された前記主要被写体領域の画像を用いて前記ボケを補正するためのパラメータを設定する第1のパラメータ設定手段と、
前記デジタル写真画像全体または前記主要被写体領域以外の領域の画像を用いて前記ボケを補正するためのパラメータを設定する第2のパラメータ設定手段と、
前記確信度算出手段により得られた前記確信度が高いほど前記第1のパラメータ設定手段により設定された前記パラメータの重みが大きくなるように前記第1のパラメータにより設定されたパラメータと前記第2のパラメータ設定手段により設定されたパラメータとを重付合算して統合パラメータを取得する統合パラメータ取得手段と、
該統合パラメータ取得手段により取得された前記統合パラメータを用いて前記デジタル写真画像に対して補正を行う補正手段とを有してなることを特徴とするものである。
本発明の画像処理装置は、前記デジタル写真画像を撮像した撮像装置のレンズのF値を含む付属情報が付属された前記デジタル写真画像の前記付属情報を読み取って前記F値を取得する付属情報読取手段を備え、
前記判別手段または前記確信度算出手段が、前記F値に基づいて前記デジタル写真画像が被写界深度の浅い画像か否かの判別または前記確信度を求める処理を行うものとすることができる。
本発明の画像処理装置は、対象画像に対して、複数の異なる方向毎にエッジを検出し、各前記方向における前記エッジの特徴量を取得し、該エッジ特徴量に基づいてボケ情報を取得するボケ情報取得手段を備え、
前記判別手段または前記確信度算出手段が、前記ボケ情報取得手段により前記主要被写体領域の画像および前記主要被写体領域以外の領域の画像を夫々前記対象画像にして取得された夫々の前記ボケ情報を比較することによって、前記デジタル写真画像が被写界深度の浅い画像か否かの判別または前記確信度を求める処理を行うものとすることができる。
本発明の画像処理装置は、前記デジタル写真画像を複数のブロックに分けるブロック分け手段と、
対象画像に対して、複数の異なる方向毎にエッジを検出し、各前記方向における前記エッジの特徴量を取得し、該エッジ特徴量に基づいてボケ情報を取得するボケ情報取得手段とを備え、
前記判別手段または前記確信度算出手段が、前記ボケ情報取得手段により各前記ブロックの画像を夫々前記対象画像にして取得された各々の前記ボケ情報を比較することによって、前記デジタル写真画像が被写界深度の浅い画像か否かの判別または前記確信度を求める処理を行うものとすることができる。
本発明の画像処理装置における前記パラメータ設定手段は、前記ボケを補正するためのパラメータを設定するために用いられる画像に対して、該画像における複数の異なる方向毎にエッジを検出し、各前記方向における前記エッジの特徴量を取得し、該エッジ特徴量に基づいてボケ情報を取得するボケ情報取得手段を備え、取得された前記ボケ情報に基づいて前記パラメータを設定するものであることが好ましい。
また、デジタル写真画像においては、主要被写体が2つ以上ある場合がある。例えば、複数の人間が写った1つの画像には、顔が重ならない限り人数分の顔部分が存在する。このようなデジタル写真画像の場合、主要被写体が複数抽出される。主要被写体領域の画像を用いてパラメータを設定するパラメータ設定手段(第1の画像処理装置のパラメータ設定手段、第2の画像処理装置のパラメータ設定手段、第3の画像処理装置の第1のパラメータ設定手段)は、抽出された全ての主要被写体領域の画像を用いてパラメータ(第3の画像処理装置の場合においては第1のパラメータ)を設定するようにしてもよいが、本発明の画像処理装置は、抽出された複数の主要被写体から1つの主要被写体を選択して、該選択された主要被写体を用いてパラメータを設定することが望ましい。すなわち、本発明の画像処理装置における前記主要被写体抽出手段は、前記デジタル写真画像から主要被写体領域の候補を抽出する主要被写体候補抽出手段と、該主要被写体候補抽出手段により抽出された複数の前記主要被写体候補から前記主要被写体の領域を選択する主要被写体選択手段とからなることが望ましい。
ここで、主要被写体選択手段は、具体的には、ボケ情報の解析など補正用のパラメータを設定する上で最も重要と思われる主要被写体候補、または撮像者が最も重要視すると思われる主要被写体候補を主要被写体として選択すればよい。例えば、複数の前記主要被写体候補から、サイズが最も大きい主要被写体候補を前記主要被写体として選択するようにしてもよいし、デジタル写真画像の最も中央部分に近い主要被写体候補を主要被写体として選択するようにしてもよい。
さらに、例えば、複数の前記主要被写体候補のうち、ユーザにより指示された主要被写体候補を主要被写体として選択するようにしてもよい。
また、パラメータ設定手段に用いられる画像(デジタル写真画像そのもの、主要被写体領域の画像、主要被写体領域以外の領域の画像)のサイズは様々である。これらの画像をそのままのサイズで用いてパラメータを設定するのでは、処理時間がかかり効率が良くないため、縮小処理を施してから用いることが望ましい。しかし、サイズの大きい画像とサイズの小さい画像に対して同じ縮小率で縮小するのでは、例えばパラメータを設定するためにエッジを抽出する処理において、抽出されるエッジ数が多いため、後にパラメータを設定するための解析などの時間も長くなり、効率が良くない。一方、処理時間を短縮するために、大きいサイズの画像に対して適切な縮小率で小さいサイズの画像を縮小するのでは、縮小されたが小さすぎて適切な解析ができず、ひいては適切なパラメータを設定することができないという問題がある。本発明の画像処理装置は、前記パラメータ設定手段により用いられる画像に対して縮小処理を施して縮小画像を得る縮小手段を備え、前記パラメータ設定手段が、前記縮小画像を用いて前記パラメータを設定するものであり、前記縮小手段が、前記パラメータ設定手段により用いられる前記主要被写体領域の画像のサイズに応じて、該サイズが大きいほど該画像に対する縮小強度を強めるように(逆にサイズが小さいほど該画像に対する縮小強度を弱める(縮小強度がゼロ、すなわち縮小しないことを含む)ように)前記縮小処理を施すものであることが好ましい。
また、ここでは、デジタル写真画像から抽出される主要被写体の領域の画像のサイズのばらつきが大きいことに着目し、縮小手段は主要被写体領域の画像に対して縮小処理を施す際に、そのサイズに応じて縮小強度を調整して縮小を行うようにしているが、パラメータ設定手段に用いられる他の画像(デジタル写真画像全体、主要被写体領域以外の領域の画像)に対して同じ調整を行って縮小を行っても勿論よい。
また、画像のサイズは、例えば画像を表す画像データの画素数とすることができる。
本発明の第1のプログラムは、デジタル写真画像におけるボケを補正する画像処理をコンピュータに実行させるプログラムであって、
前記画像処理が、前記デジタル写真画像から主要被写体領域を抽出する主要被写体抽出処理と、
該主要被写体領域の画像を用いて前記ボケを補正するためのパラメータを設定するパラメータ設定処理と、
該パラメータ設定処理により設定された前記パラメータを用いて前記デジタル写真画像に対して補正を行う補正処理とを有することを特徴とするものである。
本発明の第2のプログラムは、デジタル写真画像におけるボケを補正する画像処理をコンピュータに実行させるプログラムであって、
前記画像処理が、前記デジタル写真画像から主要被写体領域を抽出する主要被写体抽出処理と、
前記デジタル写真画像が被写界深度の浅い画像か否かを判別する判別処理と、
前記判別処理により被写界深度の浅い画像に判別された前記デジタル写真画像に対して、前記主要被写体抽出処理により抽出された該デジタル写真画像の前記主要被写体領域の画像を用いて前記ボケを補正するためのパラメータを設定する一方、被写界深度の浅い画像に判別された画像以外の前記デジタル写真画像に対して、該デジタル写真画像全体を用いて前記ボケを補正するためのパラメータを設定するパラメータ設定処理と、
該パラメータ設定処理により設定された前記パラメータを用いて前記デジタル写真画像に対して補正を行う補正処理とを有することを特徴とするものである。
本発明の第3のプログラムは、デジタル写真画像におけるボケを補正する画像処理をコンピュータに実行させるプログラムであって、
前記デジタル写真画像から主要被写体領域を抽出する主要被写体抽出処理と、
前記デジタル写真画像が被写界深度の浅い画像である確信度を求める確信度算出処理と、
前記主要被写体抽出処理により抽出された前記主要被写体領域の画像を用いて前記ボケを補正するためのパラメータを設定する第1のパラメータ設定処理と、
前記デジタル写真画像全体または前記主要被写体領域以外の領域の画像を用いて前記ボケを補正するためのパラメータを設定する第2のパラメータ設定処理と、
前記確信度算出処理により得られた前記確信度が高いほど前記第1のパラメータ設定処理により設定された前記パラメータの重みが大きくなるように前記第1のパラメータにより設定されたパラメータと前記第2のパラメータ設定処理により設定されたパラメータとを重付合算して統合パラメータを取得する統合パラメータ取得処理と、
該統合パラメータ取得処理により取得された前記統合パラメータを用いて前記デジタル写真画像に対して補正を行う補正処理とを有することを特徴とするものである。
前記画像処理は、前記デジタル写真画像を撮像した撮像装置のレンズのF値を含む付属情報が付属された前記デジタル写真画像の前記付属情報を読み取って前記F値を取得する付属情報読取処理を有し、前記判別処理または前記確信度算出処理が、前記F値に基づいて前記デジタル写真画像が被写界深度の浅い画像か否かの判別または前記確信度を求めるようにすればよい。
前記画像処理は、対象画像に対して、複数の異なる方向毎にエッジを検出し、各前記方向における前記エッジの特徴量を取得し、該エッジ特徴量に基づいてボケ情報を取得するボケ情報取得処理を有し、前記判別処理または前記確信度算出処理が、前記ボケ情報取得処理により前記主要被写体領域の画像および前記主要被写体領域以外の領域の画像を夫々前記対象画像にして取得された夫々の前記ボケ情報を比較することによって、前記デジタル写真画像が被写界深度の浅い画像か否かの判別または前記確信度を求める処理を行うようにすればよい。
前記画像処理は、前記デジタル写真画像を複数のブロックに分けるブロック分け処理と、対象画像に対して、複数の異なる方向毎にエッジを検出し、各前記方向における前記エッジの特徴量を取得し、該エッジ特徴量に基づいてボケ情報を取得するボケ情報取得処理とを有し、前記判別処理または前記確信度算出処理が、前記ボケ情報取得処理により各前記ブロックの画像を夫々前記対象画像にして取得された各々の前記ボケ情報を比較することによって、前記デジタル写真画像が被写界深度の浅い画像か否かの判別または前記確信度を求める処理を行うようにすればよい。
前記パラメータ設定処理は、前記ボケを補正するためのパラメータを設定するために用いられる画像に対して、該画像における複数の異なる方向毎にエッジを検出し、各前記方向における前記エッジの特徴量を取得し、該エッジ特徴量に基づいてボケ情報を取得するボケ情報取得処理を有し、取得された前記ボケ情報基づいて前記パラメータを設定することが好ましい。
本発明の第1の画像処理方法および装置並びにプログラムによれば、デジタル写真画像から主要被写体領域を抽出し、主要被写体領域の画像を用いてボケを補正するためのパラメータを設定してデジタル写真画像に対して補正を行うようにしているので、パラメータを設定するための領域の指定をユーザにさせる必要がない。特に、被写界深度の浅いデジタル写真画像の場合において、最も補正を必要とする主要被写体の領域の画像のみを用いて補正用のパラメータを設定することによって、補正の精度を高めることができる。また、主要被写体領域の画像を用いて補正用のパラメータを設定することによって、撮像時にぶれに関する情報を取得するための装置を設ける必要がないため、撮像装置を大型化することを避けることができ、特に小型化を必須条件とする携帯電話機付属のデジタルカメラの場合には、メリットが大きい。
本発明の第2の画像処理方法および装置並びにプログラムによれば、デジタル写真画像が被写界深度の浅い画像か否かを判別し、被写界深度の浅い画像に対して、主要被写体領域の画像を用いて補正用のパラメータを設定して補正するようにしているので、本発明の第1の画像処理方法および装置並びにプログラムと同様の効果を得ることができると共に、被写界深度の浅い画像ではないデジタル写真画像に対しては、デジタル写真画像全体を用いて補正用のパラメータを設定して補正を行うようにしているので、被写界深度の浅い画像ではないデジタル写真画像の補正精度を高めることができる。
本発明の第3の画像処理方法および装置並びにプログラムによれば、デジタル写真画像が被写界深度の浅い画像である確信度を算出し、この確信度が高いほど、主要被写体領域の画像を用いて設定したパラメータ(第1のパラメータ)の重みが高くなるように、第1のパラメータと、デジタル写真画像全体または主要被写体領域以外の領域の画像を用いて設定したパラメータ(第2のパラメータ)とを重み付け合算して得たパラメータを用いてデジタル写真画像を補正するようにしているので、第2の画像処理方法および装置並びにプログラムと同様の効果を得ることができると共に、被写界深度に対する判別に多少のずれがあっても、良い補正効果を得ることができる。
本発明の画像処理方法および装置並びにプログラムは、対象画像に対して、異なる方向毎に検出したエッジの特徴量に基づいてボケ情報を取得し、このボケ情報に基づいてパラメータを設定して補正を行うようにすると、ボケ情報なしに補正、評価処理を繰り返す方法に比べ、演算量が少ないため、処理が早く、効率が良い。
以下、図面を参照して、本発明の実施形態について説明する。
図1は、本発明の画像処理方法および装置並びにそのためのプログラムの第1の実施形態となる画像処理システムAの構成を示すブロック図である。図1に示す画像処理システムAは、携帯電話機付属のデジタルカメラ(以下携帯カメラという)により取得した写真画像(以下略して単に画像という)を記録した記録媒体1から画像を読み出して画像処理を行うものであり、記録媒体1には多数の画像からなる画像群が記録されているが、ここでは、この画像群のうちの1つの画像Dを例にして説明を行う。
図示のように、本実施形態の画像処理システムAは、記録媒体1から読み出された画像Dに対して例えば1/8の縮小率で縮小処理を行って画像Dの縮小画像dを得る縮小手段10aと、縮小画像dに対して主要被写体(ここでは例として顔)の検出を行うと共に、顔が検出されれば顔部分の画像(ここでは、顔部分の画像の縮小画像であるが、以下において顔部分の画像と顔部分の画像の縮小画像を符号により区別し、両方とも顔画像という)d0を抽出して後述するエッジ検出手段12に出力する一方、顔が検出されなければ縮小画像dをエッジ検出手段12に出力する顔抽出手段100と、顔抽出手段100からの顔画像d0および画像Dにおいて顔画像d0に対応する部分の画像D0、または縮小画像dおよび画像Dを用いて、図4に示す8つの異なる方向毎にエッジを検出するエッジ検出手段12と、エッジ検出手段12により検出されたエッジのうちの、無効なエッジを除去するエッジ絞込手段14と、エッジ絞込手段14により得られたエッジの特徴量Sを取得するエッジ特徴量取得手段16と、エッジ特徴量Sを用いて、ボケ方向およびボケ度Nを算出して画像Dがボケ画像か通常画像かを判別し、通常画像の場合には、後述する出力手段60に画像Dが通常画像であることを示す情報Pを送信して処理を終了する一方、ボケ画像の場合には、さらにぶれ度K、ボケ幅Lを算出して、ボケ度Nおよびボケ方向と共にボケ情報Qとして後述するパラメータ設定手段30に送信する解析手段20と、解析手段20からのボケ情報Qに基づいてボケ画像となる画像Dを補正するためのパラメータEを複数(E0、E1、E2、・・・)設定するパラメータ設定手段30と、パラメータE0、E1、E2、・・・を用いて画像Dに対して補正を行って、各パラメータに対応する補正済み画像D’0、D’1、D’2、・・・を得る補正手段40と、各々の補正済み画像D’0、D’1、D’2、・・・から目的画像D’を決定して出力手段60に出力する決定手段45と、解析手段20およびパラメータ設定手段30のための種々のデータベースを記憶した記憶手段50と、解析手段20から画像Dが通常画像であることを示す情報Pを受信した場合には画像Dを出力する一方、決定手段45から目的画像D’を受信した場合には目的画像D’を出力する出力手段60とを有してなる。
以下、図1に示す画像処理システムAの各構成について説明する。
まず、顔抽出手段100について説明する。
図10は、顔抽出手段100の詳細構成を示すブロック図である。図示のように、顔抽出手段100は、画像dから特徴量C0を算出する特徴量算出手段110と、後述する参照データH0により構成されるデータベース115と、特徴量算出手段110が算出した特徴量C0とデータベース115内の参照データH0とに基づいて、画像Dに人物の顔が含まれているか否かを識別すると共に、顔か含まれていれば顔画像d0を切り出してエッジ検出手段12に出力する一方、顔が含まれていなければ縮小画像dをエッジ検出手段に出力する顔検出手段120とを備えてなる。
顔抽出手段100の特徴量算出手段110は、顔の識別に用いる特徴量C0を縮小画像dから算出する。具体的には、勾配ベクトル(すなわち縮小画像d上の各画素における濃度が変化する方向および変化の大きさ)を特徴量C0として算出する。以下、勾配ベクトルの算出について説明する。まず、特徴量算出手段110は、縮小画像dに対して図11(a)に示す水平方向のエッジ検出フィルタによるフィルタリング処理を施して縮小画像dにおける水平方向のエッジを検出する。また、特徴量算出手段110は、縮小画像dに対して図11(b)に示す垂直方向のエッジ検出フィルタによるフィルタリング処理を施して縮小画像dにおける垂直方向のエッジを検出する。そして、縮小画像d上の各画素における水平方向のエッジの大きさHおよび垂直方向のエッジの大きさVとから、図12に示すように、各画素における勾配ベクトルKを算出する。
なお、このようにして算出された勾配ベクトルKは、図13(a)に示すような人物の顔の場合、図13(b)に示すように、目および口のように暗い部分においては目および口の中央を向き、鼻のように明るい部分においては鼻の位置から外側を向くものとなる。また、口よりも目の方が濃度の変化が大きいため、勾配ベクトルKは口よりも目の方が大きくなる。
そして、この勾配ベクトルKの方向および大きさを特徴量C0とする。なお、勾配ベクトルKの方向は、勾配ベクトルKの所定方向(例えば図12におけるx方向)を基準とした0から359度の値となる。
ここで、勾配ベクトルKの大きさは正規化される。この正規化は、縮小画像dの全画素における勾配ベクトルKの大きさのヒストグラムを求め、その大きさの分布が縮小画像dの各画素が取り得る値(8ビットであれば0〜255)に均一に分布されるようにヒストグラムを平滑化して勾配ベクトルKの大きさを修正することにより行う。例えば、勾配ベクトルKの大きさが小さく、図14(a)に示すように勾配ベクトルKの大きさが小さい側に偏ってヒストグラムが分布している場合には、大きさが0〜255の全領域に亘るものとなるように勾配ベクトルKの大きさを正規化して図14(b)に示すようにヒストグラムが分布するようにする。なお、演算量を低減するために、図14(c)に示すように、勾配ベクトルKのヒストグラムにおける分布範囲を例えば5分割し、5分割された頻度分布が図14(d)に示すように0〜255の値を5分割した範囲に亘るものとなるように正規化することが好ましい。
データベース115内を構成する参照データH0は、後述するサンプル画像から選択された複数画素の組み合わせからなる複数種類の画素群の夫々について、各画素群を構成する各画素における特徴量C0の組み合わせに対する識別条件を規定したものである。
参照データH0中の、各画素群を構成する各画素における特徴量C0の組み合わせおよび識別条件は、顔であることが分かっている複数のサンプル画像と顔でないことが分かっている複数のサンプル画像とからなるサンプル画像群の学習により、あらかじめ決められたものである。
なお、本実施形態においては、参照データH0を生成する際には、顔であることが分かっているサンプル画像として、30×30画素サイズを有し、図15に示すように、1つの顔の画像について両目の中心間の距離が10画素、9画素および11画素であり、両目の中心間距離において垂直に立った顔を平面上±15度の範囲において3度単位で段階的に回転させた(すなわち、回転角度が−15度,−12度,−9度,−6度,−3度,0度,3度,6度,9度,12度,15度)サンプル画像を用いるものとする。したがって、1つの顔の画像につきサンプル画像は3×11=33通り用意される。なお、図15においては−15度、0度および+15度に回転させたサンプル画像のみを示す。また、回転の中心はサンプル画像の対角線の交点である。ここで、両目の中心間の距離が10画素のサンプル画像であれば、目の中心位置はすべて同一となっている。この目の中心位置をサンプル画像の左上隅を原点とする座標上において(x1,y1)、(x2,y2)とする。また、図面上上下方向における目の位置(すなわちy1,y2)はすべてのサンプル画像において同一である。
また、顔でないことが分かっているサンプル画像としては、30×30画素サイズを有する任意の画像を用いるものとする。
ここで、顔であることが分かっているサンプル画像として、両目の中心間距離が10画素であり、平面上の回転角度が0度(すなわち顔が垂直な状態)のもののみを用いて学習を行った場合、参照データH0を参照して顔であると識別されるのは、両目の中心間距離が10画素で全く回転していない顔のみである。縮小画像dに含まれる可能性がある顔のサイズは一定ではないため、顔が含まれるか否かを識別する際には、後述するように縮小画像dを拡大縮小して、サンプル画像のサイズに適合するサイズの顔の位置を識別できるようにしている。しかしながら、両目の中心間距離を正確に10画素とするためには、縮小画像dのサイズを拡大率として例えば1.1単位で段階的に拡大縮小しつつ識別を行う必要があるため、演算量が膨大なものとなる。
また、縮小画像dに含まれる可能性がある顔は、図16(a)に示すように平面上の回転角度が0度のみではなく、図16(b)、(c)に示すように回転している場合もある。しかしながら、両目の中心間距離が10画素であり、顔の回転角度が0度のサンプル画像のみを使用して学習を行った場合、顔であるにも拘わらず、図16(b)、(c)に示すように回転した顔については識別を行うことができなくなってしまう。
このため、本実施形態においては、顔であることが分かっているサンプル画像として、図15に示すように両目の中心間距離が9,10,11画素であり、各距離において平面上±15度の範囲にて3度単位で段階的に顔を回転させたサンプル画像を用いて、参照データH0の学習に許容度を持たせるようにしたものである。これにより、後述する顔検出手段120において識別を行う際には、縮小画像dを拡大率として11/9単位で段階的に拡大縮小すればよいため、縮小画像dのサイズを例えば拡大率として例えば1.1単位で段階的に拡大縮小する場合と比較して、演算時間を低減できる。また、図16(b)、(c)に示すように回転している顔も識別することができる。
以下、図17のフローチャートを参照しながらサンプル画像群の学習手法の一例を説明する。
学習の対象となるサンプル画像群は、顔であることが分かっている複数のサンプル画像と、顔でないことが分かっている複数のサンプル画像とからなる。なお、顔であることが分かっているサンプル画像は、上述したように1つのサンプル画像につき両目の中心位置が9,10,11画素であり、各距離において平面上±15度の範囲にて3度単位で段階的に顔を回転させたものを用いる。各サンプル画像には、重みすなわち重要度が割り当てられる。まず、すべてのサンプル画像の重みの初期値が等しく1に設定される(S1)。
次に、サンプル画像における複数種類の画素群の夫々について識別器が作成される(S2)。ここで、夫々の識別器とは、1つの画素群を構成する各画素における特徴量C0の組み合わせを用いて、顔の画像と顔でない画像とを識別する基準を提供するものである。本実施形態においては、1つの画素群を構成する各画素における特徴量C0の組み合わせについてのヒストグラムを識別器として使用する。
図18を参照しながらある識別器の作成について説明する。図18の左側のサンプル画像に示すように、この識別器を作成するための画素群を構成する各画素は、顔であることが分かっている複数のサンプル画像上における、右目の中心にある画素P1、右側の頬の部分にある画素P2、額の部分にある画素P3および左側の頬の部分にある画素P4である。そして顔であることが分かっているすべてのサンプル画像について全画素P1〜P4における特徴量C0の組み合わせが求められ、そのヒストグラムが作成される。ここで、特徴量C0は勾配ベクトルKの方向および大きさを表すが、勾配ベクトルKの方向は0〜359の360通り、勾配ベクトルKの大きさは0〜255の256通りあるため、これをそのまま用いたのでは、組み合わせの数は1画素につき360×256通りの4画素分、すなわち(360×256)4通りとなってしまい、学習および検出のために多大なサンプルの数、時間およびメモリを要することとなる。このため、本実施形態においては、勾配ベクトルの方向を0〜359を0〜44と315〜359(右方向、値:0),45〜134(上方向値:1),135〜224(左方向、値:2),225〜314(下方向、値3)に4値化し、勾配ベクトルの大きさを3値化(値:0〜2)する。そして、以下の式を用いて組み合わせの値を算出する。
組み合わせの値=0(勾配ベクトルの大きさ=0の場合)
組み合わせの値=((勾配ベクトルの方向+1)×勾配ベクトルの大きさ(勾配ベクトルの大きさ>0の場合)
これにより、組み合わせ数が94通りとなるため、特徴量C0のデータ数を低減できる。
同様に、顔でないことが分かっている複数のサンプル画像についても、ヒストグラムが作成される。なお、顔でないことが分かっているサンプル画像については、顔であることが分かっているサンプル画像上における上記画素P1〜P4の位置に対応する画素が用いられる。これらの2つのヒストグラムが示す頻度値の比の対数値を取ってヒストグラムで表したものが、図18の一番右側に示す、識別器として用いられるヒストグラムである。この識別器のヒストグラムが示す各縦軸の値を、以下、識別ポイントと称する。この識別器によれば、正の識別ポイントに対応する特徴量C0の分布を示す画像は顔である可能性が高く、識別ポイントの絶対値が大きいほどその可能性は高まると言える。逆に、負の識別ポイントに対応する特徴量C0の分布を示す画像は顔でない可能性が高く、やはり識別ポイントの絶対値が大きいほどその可能性は高まる。ステップS2では、識別に使用され得る複数種類の画素群を構成する各画素における特徴量C0の組み合わせについて、上記のヒストグラム形式の複数の識別器が作成される。
続いて、ステップS2で作成した複数の識別器のうち、画像が顔であるか否かを識別するのに最も有効な識別器が選択される。最も有効な識別器の選択は、各サンプル画像の重みを考慮して行われる。この例では、各識別器の重み付き正答率が比較され、最も高い重み付き正答率を示す識別器が選択される(S3)。すなわち、最初のステップS3では、各サンプル画像の重みは等しく1であるので、単純にその識別器によって画像が顔であるか否かが正しく識別されるサンプル画像の数が最も多いものが、最も有効な識別器として選択される。一方、後述するステップS5において各サンプル画像の重みが更新された後の2回目のステップS3では、重みが1のサンプル画像、重みが1よりも大きいサンプル画像、および重みが1よりも小さいサンプル画像が混在しており、重みが1よりも大きいサンプル画像は、正答率の評価において、重みが1のサンプル画像よりも重みが大きい分多くカウントされる。これにより、2回目以降のステップS3では、重みが小さいサンプル画像よりも、重みが大きいサンプル画像が正しく識別されることに、より重点が置かれる。
次に、それまでに選択した識別器の組み合わせの正答率、すなわち、それまでに選択した識別器を組み合わせて使用して各サンプル画像が顔の画像であるか否かを識別した結果が、実際に顔の画像であるか否かの答えと一致する率が、所定の閾値を超えたか否かが確かめられる(S4)。ここで、組み合わせの正答率の評価に用いられるのは、現在の重みが付けられたサンプル画像群でも、重みが等しくされたサンプル画像群でもよい。所定の閾値を超えた場合は、それまでに選択した識別器を用いれば画像が顔であるか否かを十分に高い確率で識別できるため、学習は終了する。所定の閾値以下である場合は、それまでに選択した識別器と組み合わせて用いるための追加の識別器を選択するために、ステップS6へと進む。
ステップS6では、直近のステップS3で選択された識別器が再び選択されないようにするため、その識別器が除外される。
次に、直近のステップS3で選択された識別器では顔であるか否かを正しく識別できなかったサンプル画像の重みが大きくされ、画像が顔であるか否かを正しく識別できたサンプル画像の重みが小さくされる(S5)。このように重みを大小させる理由は、次の識別器の選択において、既に選択された識別器では正しく識別できなかった画像を重要視し、それらの画像が顔であるか否かを正しく識別できる識別器が選択されるようにして、識別器の組み合わせの効果を高めるためである。
続いて、ステップS3へと戻り、上記したように重み付き正答率を基準にして次に有効な識別器が選択される。
以上のステップS3からS6を繰り返して、顔が含まれるか否かを識別するのに適した識別器として、特定の画素群を構成する各画素における特徴量C0の組み合わせに対応する識別器が選択されたところで、ステップS4で確認される正答率が閾値を超えたとすると、顔が含まれるか否かの識別に用いる識別器の種類と識別条件とが確定され(S7)、これにより参照データH0の学習を終了する。
なお、上記の学習手法を採用する場合において、識別器は、特定の画素群を構成する各画素における特徴量C0の組み合わせを用いて顔の画像と顔でない画像とを識別する基準を提供するものであれば、上記のヒストグラムの形式のものに限られずいかなるものであってもよく、例えば2値データ、閾値または関数等であってもよい。また、同じヒストグラムの形式であっても、図18の中央に示した2つのヒストグラムの差分値の分布を示すヒストグラム等を用いてもよい。
また、学習の方法としては上記手法に限定されるものではなく、ニューラルネットワーク等他のマシンラーニングの手法を用いることができる。
顔検出手段120は、複数種類の画素群を構成する各画素における特徴量C0の組み合わせのすべてについて参照データH0が学習した識別条件を参照して、各々の画素群を構成する各画素における特徴量C0の組み合わせについての識別ポイントを求め、すべての識別ポイントを総合して縮小画像dに顔が含まれるか否かを識別する。この際、特徴量C0である勾配ベクトルKの方向は4値化され大きさは3値化される。本実施形態では、すべての識別ポイントを加算して、その加算値の正負によって識別を行うものとする。例えば、識別ポイントの総和が正の値である場合には縮小画像dには顔が含まれると判断し、負の値である場合には顔が含まれないと判断する。
ここで、縮小画像dのサイズは30×30画素のサンプル画像とは異なり、各種サイズを有するものとなっている可能性がある。また、顔が含まれる場合、平面上における顔の回転角度が0度であるとは限らない。このため、顔検出手段120は、図19に示すように、縮小画像dを縦または横のサイズが30画素となるまで段階的に拡大縮小するとともに平面上で段階的に360度回転させつつ(図19においては縮小する状態を示す)、各段階において拡大縮小された縮小画像d上に30×30画素サイズのマスクMを設定し、マスクMを拡大縮小された縮小画像d上において1画素ずつ移動させながら、マスク内の画像が顔の画像であるか否かの識別を行うことにより、縮小画像dに顔が含まれるか否かを識別する。そして、縮小画像dに顔が含まれるか否かの識別を拡大縮小および回転の全段階の縮小画像dについて行い、一度でも顔が含まれると識別された場合には、縮小画像dには顔が含まれると識別し、顔が含まれると識別された段階におけるサイズおよび回転角度の縮小画像dから、識別されたマスクMの位置に対応する30×30画素の領域を顔の画像d0として抽出してエッジ検出手段12に出力する一方、一度でも顔が含まれると識別されない場合には、縮小画像dには顔が含まれていないと識別し、縮小画像dをそのままエッジ検出手段12に出力する。
なお、参照データH0の生成時に学習したサンプル画像として両目の中心位置の画素数が9,10,11画素のものを使用しているため、縮小画像dを拡大縮小する時の拡大率は11/9とすればよい。また、参照データH0の生成時に学習したサンプル画像として、顔が平面上で±15度の範囲において回転させたものを使用しているため、縮小画像dは30度単位で360度回転させればよい。
なお、特徴量算出手段110は、縮小画像dの拡大縮小および回転という変形の各段階において特徴量C0を算出する。
顔抽出手段100は、このようにして縮小画像dに顔が含まれているか否か(すなわち画像Dに顔が含まれているか否か)を識別して、顔が含まれている場合には、抽出された顔画像d0をエッジ検出手段12に出力する一方、顔が含まれていない場合には縮小画像dをそのままエッジ検出手段12に出力する。
なお、顔画像d0が複数抽出された場合においては、顔抽出手段100は、抽出された全ての顔画像d0をエッジ検出手段12に出力する。
図2は、エッジ検出手段12の構成を示すブロック図である。図示のように、エッジ検出手段12は、選択手段11aと、第2の縮小手段13と、検出実行手段11bとを備えてなる。
選択手段11aは、顔抽出手段100から出力されてきた画像が1つ(1つのみの顔画像d0または縮小画像d)である場合には、この1つの画像をそのまま第2の縮小手段13に出力する一方、顔抽出手段100から複数の画像(顔画像d0)が出力されてきた場合には、複数の顔画像d0からエッジを抽出するのに用いる顔画像を選択して第2の縮小手段13に出力するものである。本実施形態において、エッジ検出手段12の選択手段11aは、複数の顔画像d0の夫々の画素数を確認し、画素数が最も多い顔画像d0を選択するものである。なお、選択手段11aから第2の縮小手段13に出力された画像は、以下画像d2という。
図3は、エッジ検出手段12における第2の縮小手段13の構成を示すブロック図である。図示のように、第2の縮小手段13は、縮小率βを決定する縮小率決定手段13aと、縮小率βを用いて縮小処理を実行する縮小実行手段13bとを備えてなる。
第2の縮小手段13に出力されてきた画像d2は3種類あり、夫々、顔抽出手段100から出力されてきた縮小画像d、顔抽出手段100から出力されてきた1つのみの顔画像d0、選択手段11aにより複数の顔画像d0から選択された顔画像d0である。縮小率決定手段13aは、この画像d2に対応する、縮小されていない画像(縮小画像dの場合には画像D、顔画像d0の場合には、画像Dにおける、顔画像d0に対応する領域の画像)の画素数に応じて下記のように縮小率βを決定する。
1.画素数が100万画素以下である場合、縮小率βを1に、すなわち縮小しないように決定する。
2.画素数が100万画素より大きく、200万画素以下である場合、縮小率βを1/2に決定する。
3.画素数が200万画素より大きく、300万画素以下である場合、縮小率βを1/4に決定する。
4.画素数が300万画素より大きく、400万画素以下である場合、縮小率βを1/8に決定する。
5.画素数が400万画素より大きく、600万画素以下である場合、縮小率βを1/16に決定する。
6.画素数が600万画素より大きい場合、縮小率βを1/32に決定する。
縮小率決定手段13aは、このように決定した縮小率βを縮小実行手段13bに出力する。
縮小実行手段13bは、縮小率決定手段13aにより決定された縮小率βを用いて、該当する画像d2の縮小されていない画像(前述のように、縮小画像dの場合には画像D、顔画像d0の場合には、画像Dにおける、顔画像d0に対応する領域の画像)を縮小して、エッジを検出するための縮小画像d3を得て検出実行手段11bに出力する。
検出実行手段11bは、まず、縮小画像d3を用いて、図4に示すような8方向毎に、所定の強度以上のエッジを検出し、これらのエッジの座標位置を得る。次に検出実行手段11bは、検出された各方向毎の各々のエッジの座標位置に基づいて、縮小画像d3の対応する、縮小されていない画像(以下概して対象画像という)を用いてこれらのエッジに対して、図5に示すようなエッジプロファイルを作成してエッジ絞込手段14に出力する。
エッジ絞込手段14は、エッジ検出手段12(具体的には、検出実行手段11b)から出力されてきたエッジのプロファイルに基づいて、複雑なプロファイル形状を有するエッジや、光源を含むエッジ(具体的には例えば一定の明度以上のエッジ)などの無効なエッジを除去し、残りのエッジのプロファイルをエッジ特徴量取得手段16に出力する。
エッジ特徴量取得手段16は、エッジ絞込手段14から出力されてきたエッジのプロファイルに基づいて、図5に示すようなエッジ幅を各エッジに対して求め、図6に示すようなエッジ幅のヒストグラムを図4に示された8つの方向毎に作成してエッジ幅と共にエッジ特徴量Sとして解析手段20に出力する。
解析手段20は、主として下記の2つの処理を行う。
1.対象画像におけるボケ方向、ボケ度Nを求めて、対象画像がボケ画像か通常画像かを判別する。
2.対象画像がボケ画像と判別された場合、ボケ幅L、ぶれ度Kを算出する。
ここで、1つ目の処理から説明する。
解析手段20は、対象画像におけるボケ方向を求めるために、まず、図4に示す8つの方向のエッジ幅のヒストグラム(以下略してヒストグラムという)に対して、互いに直交する2つの方向を1方向組として各方向組(1−5、2−6、3−7、4−8)のヒストグラムの相関値を求める。なお、相関値は求め方によって様々な種類があり、相関値が大きければ相関が小さい種類と、相関値の大小と相関の大小とが一致する、すなわち相関値が小さければ相関が小さい種類との2種類に大きく分けることができる。本実施形態において、例として、相関値の大小と相関の大小とが一致する種類の相関値を用いる。図7に示すように、画像中にぶれがある場合には、ぶれ方向のヒストグラムと、ぶれ方向と直交する方向のヒストグラムとの相関が小さい(図7(a)参照)のに対して、ぶれと関係ない直交する方向組または画像中にぶれがない(ボケがないまたはピンボケ)場合の直交する方向組では、そのヒストグラムの相関が大きい(図7(b)参照)。本実施形態の画像処理システムAにおける解析手段20は、このような傾向に着目し、4つの方向組に対して、各組のヒストグラムの相関値を求め、相関が最も小さい方向組の2つの方向を見つけ出す。画像Dにぶれがあれば、この2つの方向のうちの1つは、図4に示す8つの方向のうち、最もぶれ方向に近い方向として考えることができる。
図7(c)は、ぶれ、ピンボケ、ボケ(ピンボケおよびぶれ)なしの撮像条件で同じ被写体を撮像して得た夫々の画像に対して求められた、このぶれの方向におけるエッジ幅のヒストグラムを示している。図7(c)から分かるように、ボケのない通常画像は、最も小さい平均エッジ幅を有し、すなわち、上記において見付け出された2つの方向のうち、平均エッジ幅が大きい方は、最もぶれに近い方向のはずである。
解析手段20は、こうして、相関が最も小さい方向組を見付け、この方向組の2つの方向のうち、平均エッジ幅の大きい方をボケ方向とする。
次に、解析手段20は、対象画像のボケ度Nを求める。画像のボケ度は、画像中のボケの程度の大小を示すものであり、例えば、画像中に最もぼけている方向(ここでは上記において求められたボケ方向)の平均エッジ幅を用いてもよいが、ここでは、ボケ方向における各々のエッジのエッジ幅を用いて図8に基づいたデータベースを利用してより精度良く求める。図8は、学習用の通常画像データベースとボケ(ピンボケおよびぶれ)画像データベースを元に、画像中の最もぼけている方向(通常画像の場合には、この方向に対応する方向が望ましいが、任意の方向であってもよい)のエッジ幅分布のヒストグラムを作成し、ボケ画像における頻度と通常画像における頻度(図示縦軸)の比率を評価値(図示スコア)としてエッジ幅毎に求めて得たものである。図8に基づいて、エッジ幅とスコアとを対応付けてなるデータベース(以下スコアデータベースという)が作成され、記憶手段50に記憶されている。
解析手段20は、図8に基づいて作成され、記憶手段50に記憶されたスコアデータベースを参照し、対象画像のボケ方向の各エッジに対して、そのエッジ幅からスコアを取得し、ボケ方向の全てのエッジのスコアの平均値を対象画像のボケ度Nとして求める。求められた対象画像のボケ度Nが所定の閾値Tより小さければ、解析手段20は、対象画像を通常画像として判別すると共に、該対象画像のオリジナル画像である画像Dが通常画像であることを示す情報Pを出力手段60に出力することをもって、処理を終了する。
一方、対象画像のボケ度Nが閾値T以上であれば、解析手段20は、対象画像がボケ画像であると判別し、2つ目の処理に入る。
解析手段20は、2つ目の処理として、まず、対象画像のぶれ度Kを求める。
ボケ画像のボケにおけるぶれの程度の大小を示すぶれ度Kは、下記のような要素に基づいて求めることができる。
1.相関が最も小さい方向組(以下相関最小組)の相関値:この相関値が小さいほどぶれの程度が大きい
解析手段20は、この点に着目して、図9(a)に示す曲線に基づいて第1のぶれ度K1を求める。なお、図9(a)に示す曲線に応じて作成されたLUT(ルックアップテーブル)は、記憶手段50に記憶されており、解析手段20は、相関最小組の相関値に対応する第1のぶれ度K1を、記憶手段50から読み出すようにして第1のぶれ度K1を求める。
2.相関最小組の2つの方向のうち、平均エッジ幅が大きい方向の平均エッジ幅:この平均エッジ幅が大きいほどぶれの程度が大きい
解析手段20は、この点に着目して、図9(b)に示す曲線に基づいて第2のぶれ度K2を求める。なお、図9(b)に示す曲線に応じて作成されたLUT(ルックアップテーブル)は、記憶手段50に記憶されており、解析手段20は、相関最小組の平均エッジ幅が大きい方向の平均エッジ幅に対応する第2のぶれ度K2を、記憶手段50から読み出すようにして第2のぶれ度K2を求める。
3.相関最小組の2つの方向における夫々の平均エッジ幅の差:この差が大きいほどぶれの程度が大きい
解析手段20は、この点に着目して、図9(c)に示す曲線に基づいて第3のぶれ度K3を求める。なお、図9(c)に示す曲線に応じて作成されたLUT(ルックアップテーブル)は、記憶手段50に記憶されており、解析手段20は、相関最小組の2つの方向における夫々の平均エッジ幅の差に対応する第3のぶれ度K3を、記憶手段50から読み出すようにして第3のぶれ度K3を求める。
解析手段20は、このようにして第1のぶれ度K1、第2のぶれ度K2、第3のぶれ度K3を求めると共に、下記の式(1)に従って、K1、K2、K3を用いてボケ画像となる対象画像のぶれ度Kを求める。
K=K1×K2×K3 (1)
但し、K:ぶれ度
K1:第1のぶれ度
K2:第2のぶれ度
K3:第3のぶれ度
次に、解析手段20は、対象画像のボケ幅Lを求める。ここで、ぶれ度Kに関係なく、ボケ幅Lとしてボケ方向におけるエッジの平均幅を求めるようにしてもよいし、図4に示す8つの方向のすべてにおけるエッジの平均エッジ幅を求めてボケ幅Lとするようにしてもよい。
解析手段20は、ボケ画像である対象画像に対して求められたぶれ度K、ボケ幅Lをボケ度Nおよびボケ方向と共にボケ情報Qとしてパラメータ設定手段30に出力する。
本実施形態の画像処理システムAは、アン・シャープネス・マスキング(USM)補正方法で画像Dに対する補正を施すものであり、パラメータ設定手段30は、ボケ幅Lとボケ方向に応じて、ボケ幅Lが大きいほど補正マスクのサイズが大きくなるように、ボケ方向に作用する方向性補正用の1次元補正マスクM1を設定すると共に、ボケ幅Lに応じて、ボケ幅Lが大きいほど補正マスクのサイズが大きくなるように等方性補正用の2次元補正マスクM2を設定する。なお、各ボケ幅に対応する2次元補正マスク、および各ボケ幅とボケ方向に対応する1次元補正マスクはデータベース(マスクデータベースという)として記憶手段50に記憶されており、パラメータ設定手段30は、記憶手段50に記憶されたマスクデータベースから、ボケ幅Lとボケ方向に基づいて1次元補正マスクM1を、ボケ幅Lに基づいて2次元補正マスクM2を取得する。
次に、パラメータ設定手段30は、下記の式(2)に従って、方向性補正用の1次元補正パラメータW1および等方性補正用の2次元補正パラメータW2を設定する。
W1=N×K×M1
W2=N×(1−K)×M2 (2)
但し、W1:1次元補正パラメータ
W2:2次元補正パラメータ
N:ボケ度
K:ぶれ度
M1:1次元補正マスク
M2:2次元補正マスク
即ち、パラメータ設定手段30は、ボケ度Nが大きいほど等方性補正の強度と方向性補正の強度が強く、ぶれ度Kが大きいほど方向性補正の重みが大きくなるように補正パラメータW1とW2(合わせてパラメータE0とする)を設定する。
ここで、パラメータ設定手段30は、設定されたパラメータE0に対して、さらにボケ度N、ぶれ度Kおよび補正マスクM1、M2を夫々調整して、調整されたボケ度N、ぶれ度K、補正マスクM1、M2を用いて式(2)に従って補正パラメータE0と異なる複数の補正パラメータE1、E2、・・・を求める。
パラメータ設定手段30は、こうして求められた補正パラメータE(E0、E1、E2、・・・)を補正手段40に出力する。
補正手段40は、パラメータE0、E1、E2、・・・を画像Dに夫々適用して補正を施し、各補正パラメータに夫々対応する補正済み画像D’0、D’1、D’2、・・・を得る。
決定手段45は、補正手段40により得られた各々の補正済み画像を表示する図示しない表示手段と、表示された各々の補正済み画像からユーザ所望の補正済み画像を選択させるための図示しない入力手段とを備え、補正済み画像D’0、D’1、D’2、・・・からユーザにより選択された画像を目的画像D’として決定して出力手段60に出力する。
出力手段60は、解析手段20から画像Dが通常画像であることを示す情報Pを受信した場合には画像Dを出力する一方、決定手段45から目的画像D’を受信した場合には目的画像D’を出力するものである。本実施形態の画像処理システムAにおいて、出力手段60による「出力」は印刷であり、出力手段60は、通常画像の画像Dおよびボケ画像の画像Dを補正して得た目的画像D’を印刷してプリントを得るものであるが、記録媒体に記憶したり、ネットワーク上における画像保管サーバや、画像の補正を依頼した依頼者により指定されたネットワーク上のアドレスなどに送信したりするなどのものであってもよい。
図20は、本実施形態の画像処理システムAの動作を示すフローチャートである。図示のように、記録媒体1から読み出された画像Dは、まず、縮小手段10aにより1/8の縮小率で縮小されて縮小画像dとなる(S10)。顔抽出手段100は、縮小画像dに顔があるか否かを識別し(S11)、顔がある場合(S11:Yes)、縮小画像dから顔画像d0(複数ある場合は複数個)を抽出してエッジ検出手段12に出力する(S12)一方、顔がない場合(S11:No)には、縮小画像dをそのままエッジ検出手段12に出力する。エッジ検出手段12は、エッジの検出を行うのに当たり、まず、エッジを検出するための画像d2(顔抽出手段100から出力されてきた画像が1つである場合にはこの1つの画像、顔抽出手段100から複数の顔画像d0が出力されてきた場合には、複数の顔画像d0のうちの、画素数が最も多い顔画像d0)を選択すると共に、対象画像(画像d2が対応する、縮小されていない画像)の画素数に応じた縮小率で対象画像を縮小して縮小画像d3を得る。そして、エッジ検出手段12は、縮小画像d3を用いて、図4に示すような8方向毎に、所定の強度以上のエッジを検出し、これらのエッジの座標位置を得る。次にエッジ検出手段12は、検出された各方向毎の各々のエッジの座標位置に基づいて、縮小画像d3に対応する対象画像(縮小されていない画像)を用いてこれらのエッジに対して、図5に示すようなエッジプロファイルを作成してエッジ絞込手段14に出力する(S13)。エッジ絞込手段14は、エッジ検出手段12から送信されてきたエッジプロファイルに基づいて、無効なエッジを除去し、残りのエッジのプロファイルをエッジ特徴量取得手段16に出力する(S14)。エッジ特徴量取得手段16は、エッジ絞込手段14から送信された各々のエッジのプロファイルに基づいて各エッジの幅を求めると共に、図4に示す方向毎にエッジ幅のヒストグラムを作成して、各エッジの幅および各方向のエッジ幅のヒストグラムをエッジ特徴量Sとして解析手段20に出力する(S16)。解析手段20は、エッジ特徴量Sを用いて、まずボケ方向およびボケ度Nを算出すると共に、対象画像がボケ画像であるか通常画像であるかを判別する(S20、S25)。対象画像が通常画像であれば(S25:Yes)、解析手段20は、対象画像のオリジナル画像となる画像Dが通常画像であることを示す情報Pを出力手段60に出力し(S30)、出力手段60は、情報Pを受信すると、画像Dを印刷してプリントを得る(S35)。
一方、ステップS25において、対象画像がボケ画像に判別されると(S25:No)、解析手段20は、対象画像に対してさらにぶれ度K、ボケ幅Lを算出し、ステップS20において求められたボケ度Nおよびボケ方向と共にボケ情報Qとしてパラメータ設定手段30に出力する(S40、S45)。パラメータ設定手段30は、解析手段20からのボケ情報Qに基づいて、1次元補正パラメータW1と2次元補正パラメータW2を求める。求められた1対の補正パラメータW1、W2を補正パラメータE0とし、ボケ度N、ぶれ度K、補正マスクM1、M2のマスクサイズなどを調整してさらに複数の補正パラメータE1、E2、・・・を取得して、補正手段40に出力する(S50)。
補正手段40は、補正パラメータE0、E1、E2、・・・を画像Dに夫々適用して補正を施し、各補正パラメータに夫々対応する補正済み画像D’0、D’1、D’2、・・・を得る(S55)。
決定手段45は、補正手段40により得られた各々の補正済み画像を図示しない表示手段に表示させ、図示しない入力手段を介して、ユーザが選択された補正済み画像を目的画像D’として決定して出力手段60に出力する(S60)。
出力手段60は、決定手段45からの目的画像D’を印刷してプリントを得る(S70)。
このように、本実施形態の画像処理システムAによれば、デジタル写真画像からボケ情報を取得してボケを補正するようにしているので、撮影時に特別な装置を必要とせずに画像のボケを補正することができる。
また、取得したボケ情報に基づいて補正用のパラメータを設定して補正しているので、パラメータの設定、補正、評価、再設定、・・・の試行錯誤を繰り返す必要がなく、効率が良い。
また、デジタル写真画像における主要被写体(ここでは例として顔)領域の画像のみを用いてボケ情報取得するようにしているので、ボケ情報を取得するための領域の指定をユーザに指定させることを必要としないため、便利である。
さらに、主要被写体領域の画像を用いてボケ情報を取得してパラメータを設定するようにしているので、被写界深度の浅い画像の場合においても精度の良い補正を行うことができる。
図21は、本発明の第2の実施形態となる画像処理システムBの構成を示すブロック図である。なお、本実施形態の画像処理システムBは、図1に示す実施形態の画像処理システムAと比べ、縮小手段10bと10aが異なる点および判別手段200が追加された点を除けば、他の構成が同様であるため、ここでは、縮小手段10bおよび追加された判別手段200についてのみ説明すると共に、図中において、図1に示す画像処理システムAと同様な構成については同じ符号を付与する。
図21に示す実施形態の画像処理システムにおける判別手段200は、画像Dの付属情報を読み取り、該付属情報に基づいて画像Dが被写界深度の浅い画像であるか否かの判断を行うものである。具体的には、判別手段200は、備えられた読取手段210により画像Dの付属情報を読み取って画像Dを撮像したカメラのレンズのF値を取得し、このF値が所定の閾値(ここで例として5.6)以下であれば、画像Dが被写界深度の浅い画像であると判別する一方、F値が前述の所定の閾値より大きければ、画像Dが被写界深度の浅い画像ではないと判別すると共に、判別の結果を示す情報を縮小手段10bに出力する。なお、画像Dに付属情報がない、または画像Dの付属情報にF値が含まれていない場合においては、判別手段200は、F値がないことを示す判別の結果を縮小手段10bに出力する。
縮小手段10bは、画像Dに対して例えば1/8の縮小率で縮小処理を行って縮小画像dを得ると共に、判別手段200の判別の結果に応じて縮小画像dを顔抽出手段100またはエッジ検出手段12に出力する。具体的には、判別手段200からの判別の結果が、画像Dが被写界深度の浅い画像であることを示す情報または画像DのF値がないことを示す情報であれば、該画像Dの縮小画像dを顔抽出手段100に出力する一方、判別の結果が、画像Dが被写界深度の浅い画像ではないことを示す情報であれば、該画像Dの縮小画像dをエッジ検出手段12に出力する。
図22と図23は、図21に示す実施形態の画像処理システムBの動作を示すフローチャートである。図22に示すように、記録媒体1から読み出された画像Dは、まず、判別手段200により被写界深度の浅い画像であるか否かの判別がされる(S100〜S115)。具体的には、判別手段200における読取手段210は、画像Dに付属情報が付属されているか否かを調べ、付属情報がある場合には更に画像Dを撮像したカメラのレンズのF値があるか否かを調べる(S102)。画像Dに付属情報が付属されてない、または画像Dの付属情報にF値が含まれていない場合(S102:No)には、判別手段200は、「F値なし」の判別結果を縮小手段10bに出力する(S115)。一方、ステップS102において、画像Dに付属情報が付属されており、この付属情報にF値が含まれている場合(S102:Yes)には、判別手段200は、読取手段210により得られたF値を前述の閾値と比較し(S104)、F値がこの閾値以下であれば(S104:No)、画像Dが被写界深度の浅い画像であると判別する(S106)一方、F値がこの閾値より大きければ(S104:Yes)、画像Dが被写界深度の浅い画像ではないと判別する(S108)と共に、判別の結果を示す情報を縮小手段10bに出力する(S115)。
縮小手段10bは、画像Dに対して縮小処理を行って縮小画像dを得ると共に、判別手段200による判別の結果に基づいて、画像Dが被写界深度の浅い画像である、または画像DのF値がない(S122:Yes)場合には、該画像Dの縮小画像dを顔抽出手段100に出力する一方、画像Dが被写界深度の浅い画像ではない(S122:No)場合には、該画像Dの縮小画像dをそのままエッジ検出手段12に出力する。顔抽出手段100は、縮小手段10bからの縮小画像dに対して、顔があるか否かを識別し(S124)、顔がある場合(S124:Yes)には、縮小画像dから顔画像d0(複数がある場合には複数とも)を抽出してエッジ検出手段12に出力する(S126)一方、顔がない場合(S124:No)には、縮小画像dをそのままエッジ検出手段12に出力する。ステップS126以後の処理は処理Aとして図23のフローチャートに示している。
図23に示すように、エッジ検出手段12は、エッジの検出を行うのに当たり、まず、エッジを検出するための画像d2(顔抽出手段100から出力されてきた画像が1つである場合にはこの1つの画像、顔抽出手段100から複数の顔画像d0が出力されてきた場合には、複数の顔画像d0のうちの、画素数が最も多い顔画像d0)を選択すると共に、対象画像(画像d2が対応する、縮小されていない画像)の画素数に応じた縮小率で対象画像を縮小して縮小画像d3を得る。そして、エッジ検出手段12は、縮小画像d3を用いて、図4に示すような8方向毎に、所定の強度以上のエッジを検出し、これらのエッジの座標位置を得る。次にエッジ検出手段12は、検出された各方向毎の各々のエッジの座標位置に基づいて、縮小画像d3に対応する対象画像(縮小されていない画像)を用いてこれらのエッジに対して、図5に示すようなエッジプロファイルを作成してエッジ絞込手段14に出力する(S130)。エッジ絞込手段14は、エッジ検出手段12から送信されてきたエッジプロファイルに基づいて、無効なエッジを除去し、残りのエッジのプロファイルをエッジ特徴量取得手段16に出力する(S134)。エッジ特徴量取得手段16は、エッジ絞込手段14から送信された各々のエッジのプロファイルに基づいて各エッジの幅を求めると共に、図4に示す方向毎にエッジ幅のヒストグラムを作成して、各エッジの幅および各方向のエッジ幅のヒストグラムをエッジ特徴量Sとして解析手段20に出力する(S136)。解析手段20は、エッジ特徴量Sを用いて、まずボケ方向およびボケ度Nを算出すると共に、対象画像がボケ画像であるか通常画像であるかを判別する(S138、S140)。対象画像が通常画像であれば(S140:Yes)、解析手段20は、対象画像のオリジナル画像となる画像Dが通常画像であることを示す情報Pを出力手段60に出力し(S142)、出力手段60は、情報Pを受信すると、画像Dを印刷してプリントを得る(S146)。
一方、ステップS140において、対象画像がボケ画像に判別されると(S140:No)、解析手段20は、対象画像に対してさらにぶれ度K、ボケ幅Lを算出し、ステップS138において求められたボケ度Nおよびボケ方向と共にボケ情報Qとしてパラメータ設定手段30に出力する(S150、S155)。パラメータ設定手段30は、解析手段20からのボケ情報Qに基づいて、1次元補正パラメータW1と2次元補正パラメータW2を求める。求められた1対の補正パラメータW1、W2を補正パラメータE0とし、ボケ度N、ぶれ度K、補正マスクM1、M2のマスクサイズなどを調整してさらに複数の補正パラメータE1、E2、・・・を取得して、補正手段40に出力する(S160)。
補正手段40は、補正パラメータE0、E1、E2、・・・を画像Dに夫々適用して補正を施し、各補正パラメータに夫々対応する補正済み画像D’0、D’1、D’2、・・・を得る(S170)。
決定手段45は、補正手段40により得られた各々の補正済み画像を図示しない表示手段に表示させ、図示しない入力手段を介して、ユーザが選択された補正済み画像を目的画像D’として決定して出力手段60に出力する(S175)。
出力手段60は、決定手段45からの目的画像D’を印刷してプリントを得る(S180)。
このように、本実施形態の画像処理システムBによれば、図1に示す実施形態の画像処理システムAと同様の効果を得ることができると共に、デジタル写真画像が被写界深度の浅い画像か否かを判別し、被写界深度の浅い画像ではないと判別されたデジタル写真画像に対してのみデジタル写真画像全体を用いて補正用のパラメータを設定して補正を行うようにし、それ以外のデジタル写真画像に対しては主要被写体領域の画像を用いて補正用のパラメータを設定して補正するようにしているので、被写界深度の浅い画像ではないデジタル写真画像の補正精度を高めることができる。
図24は、本発明の第3の実施形態となる画像処理システムCの構成を示すブロック図である。図示のように、本実施形態の画像処理システムCは、記録媒体1から読み出された画像Dに対して縮小処理を行って画像Dの縮小画像dを得る縮小手段10cと、縮小画像dに対して主要被写体(ここでは例として顔)の検出を行うと共に、顔が検出されれば顔部分の画像(以下略して顔画像という)d0および顔部分以外の画像d1を夫々抽出して後述するエッジ検出手段12cに出力する一方、顔が検出されなければ縮小画像dをエッジ検出手段12cに出力する顔抽出手段100cと、顔抽出手段100cからの画像に基づいて得られた、エッジを検出するための縮小画像(その詳細については後述する)と、この縮小画像が対応する、縮小されていない画像(以下対象画像という)を用いて、エッジの検出を行うエッジ検出手段12cと、エッジ検出手段12cにより検出されたエッジのうちの、無効なエッジを除去するエッジ絞込手段14cと、エッジ絞込手段14cにより得られたエッジの特徴量(S0、S1、S’の3種類あるが、以下概して対象画像のエッジ特徴量Sという)を取得するエッジ特徴量取得手段16cと、エッジ特徴量Sを用いて、対象画像のボケ方向およびボケ度Nを算出して画像Dがボケ画像か通常画像かを判別し、通常画像の場合には、後述する出力手段60に画像Dが通常画像であることを示す情報Pを送信して処理を終了する一方、画像Dがボケ画像である場合には、さらに対象画像に対してぶれ度K、ボケ幅Lを算出して、ボケ度Nおよびボケ方向と共にボケ情報として後述するパラメータ設定手段30cおよび確信度算出手段250に送信する解析手段20cと、解析手段20cからのボケ情報に基づいてボケ画像となる画像Dを補正するためのパラメータを設定して後述するパラメータ統合手段260または補正手段40cに出力するパラメータ設定手段30cと、解析手段20cからのボケ情報に基づいて画像Dが被写界深度の浅い画像である確信度αを算出する確信度算出手段250と、パラメータ設定手段30cから出力されて来たパラメータを、確信度算出手段250により算出した確信度αに基づいて統合して統合パラメータを得て補正手段40cに出力するパラメータ統合手段260と、パラメータ設定手段30Cから出力して来たパラメータまたはパラメータ統合手段260から出力して来たパラメータを用いて画像Dに対して補正を行って補正済画像を得、該補正済み画像を目的画像D’として出力手段60に出力する補正手段40cと、解析手段20c、パラメータ設定手段30c、および確信度算出手段250のための種々のデータベースを記憶した記憶手段50cと、解析手段20cから画像Dが通常画像であることを示す情報Pを受信した場合には画像Dを出力する一方、補正手段40cから目的画像D’を受信した場合には目的画像D’を出力する出力手段60とを有してなる。
縮小手段10cは、図1に示す実施形態の画像処理システムAにおける縮小手段10aと同様のものであり、画像Dに対して例えば1/8の縮小率で縮小処理を行って縮小画像dを得るものである。
顔抽出手段100cは、縮小画像dに顔があるか否かを識別し、顔がある場合には顔画像d0(複数ある場合には、複数とも)を抽出してエッジ検出手段12cに出力する一方、顔がない場合には縮小画像dをエッジ検出手段12cに出力することにおいては、図1に示す実施形態の画像処理システムAにおける顔抽出手段100と同様であるが、顔がある場合には、顔画像d0のみならず、顔以外の部分の画像d1も抽出してエッジ検出手段12cに出力する。なお、縮小画像dに顔があるか否かの識別およびある場合の顔画像の抽出については、画像処理システムAの顔抽出手段100と同様であるので、ここで説明を省略する。
すなわち、エッジ検出手段12cに出力されてきた画像は、縮小画像dに顔が検出された場合には顔画像d0(1つのみの場合と複数の場合がある)および顔画像d0以外の縮小画像d1であり、縮小画像dに顔が検出されなかった場合には縮小画像dである。エッジ検出手段12cは、顔抽出手段100cから複数の顔画像d0が出力されてきた場合には(この場合、縮小画像d1も出力されている)この複数の顔画像d0のうち、画素数が最も多い顔画像d0を選択すると共に、選択されなかった他の顔画像d0を前述の縮小画像d1と合成して新たな縮小画像(以下説明上の便宜のため同じ符号d1を用いる)を得る。顔画像d0および縮小画像d1の両方(顔画像d0が1つのみの場合にはこの1つの顔画像d0と縮小画像d1、顔画像d0が複数ある場合には選択した顔画像d0と新たな縮小画像d1)、または縮小画像dに基づいて、それらに対応する、縮小されていない画像(顔画像D0および顔以外の画像D1、または画像D。以下対象画像という)の画素数に応じた縮小率で対象画像を縮小してエッジを検出するための縮小画像を得る。なお、縮小率の決定方法は、画像処理システムAにおけるエッジ検出手段12の縮小率決定手段13aと同じ方法を用いるので、ここで説明を省略する。エッジ検出手段12は、こうして得られた縮小画像を用いてエッジを抽出する処理、対象画像を用いてプロファイルを作成する処理を行うが、縮小画像dに顔が検出された場合において、エッジを検出するための画像が2つ(顔画像d0(D0)と顔以外の画像d1(D1))ある点を除けば、画像処理システムAにおけるエッジ検出手段12と同様に動作するので、ここで具体的な動作の説明を省略する。
エッジ絞込手段14c、エッジ特徴量取得手段16c、解析手段20cについても同様である。
こうして、縮小画像dに顔が検出された場合には顔画像D0と顔以外の部分の画像D1の夫々のエッジ特徴量S0、S1が取得されて解析手段20cに出力され、縮小画像dに顔が検出されなかった場合には、画像Dのエッジ特徴量S’が取得されて解析手段20cに出力される。
解析手段20cは、エッジ特徴量S0とS1をエッジ特徴量取得手段16cから出力されると、まず、エッジ特徴量S0に基づいて、エッジ特徴量S0と対応する顔画像D0におけるボケ方向、ボケ度Nを算出する。求められた顔画像D0のボケ度Nが所定の閾値Tより小さければ、解析手段20cは、顔画像D0が対応する画像Dを通常画像として判別すると共に、画像Dが通常画像であることを示す情報Pを出力手段60に出力することをもって、処理を終了する。一方、顔画像D0のボケ度Nが閾値T以上であれば、解析手段20cは、顔画像D0が対応する画像Dがボケ画像であると判別し、顔画像D0に対してさらにぶれ度K、ボケ幅Lを算出して顔画像D0のボケ情報Q0とすると共に、顔以外の部分の画像D1のエッジ特徴量S1を用いて画像D1におけるボケ方向、ボケ度N、ぶれ度K、ボケ幅Lを算出して顔以外の部分の画像D1のボケ情報Q1とする。
他方、解析手段20cは、エッジ特徴量S’が特徴量取得手段16cから出力されると、まず、エッジ特徴量S’に基づいて、画像Dにおけるボケ方向、ボケ度Nを算出する。求められた画像Dのボケ度Nが所定の閾値Tより小さければ、解析手段20cは、画像Dを通常画像として判別すると共に、画像Dが通常画像であることを示す情報Pを出力手段60に出力することをもって、処理を終了する。また、画像Dのボケ度Nが閾値T以上であれば、解析手段20cは、画像Dがボケ画像であると判別し、画像Dに対してさらにぶれ度K、ボケ幅Lを算出して画像Dのボケ情報Q’とする
解析手段20cは、このようにして顔画像D0のエッジ特徴量S0から算出したボケ情報Q0および顔以外の部分の画像D1のエッジ特徴量S1から算出したボケ情報Q1を確信度算出手段250とパラメータ設定手段30cに出力する一方、画像Dを用いて算出したボケ情報Q’をパラメータ設定手段30cにのみ出力する。
本実施形態の画像処理システムCは、前述の画像処理システムAおよび画像処理システムBと同じように、アン・シャープネス・マスキング(USM)補正方法で画像Dに対する補正を施すものであり、パラメータ設定手段30cは、解析手段20cからのボケ情報(Q0およびQ1、またはQ’)に基づいて、画像処理システムAと画像処理システムBにおけるパラメータ設定手段30と同じように、記憶手段50cを参照して画像Dを補正するためのパラメータを設定する。なお、パラメータ設定手段30cは、解析手段20cからボケ情報Q0とQ1が出力されてきた場合には、2つのボケ情報Q0とQ1とを夫々用いてパラメータEc0とEc1とを夫々設定してパラメータ統合手段260に出力する一方、ボケ情報Q’のみが出力されてきた場合には、ボケ情報Q’を用いてパラメータEcを設定して直接補正手段40cに出力する。
確信度算出手段250は、ボケ情報Q0とボケ情報Q1に基づいて、画像Dが被写界深度の浅い画像である確信度αを求める。なお、確信度算出手段250は、ボケ情報に含まれた全ての情報を用いて確信度αを算出するようにしてもよいが、ボケ情報の一部のみを用いて確信度αを算出するようにしてもよい。ここでは、例として、ボケ情報に含まれるボケ度Nのみを用いて確信度αを算出するようにする。具体的には、ボケ情報Q0に含まれるボケ度Nがボケ情報Q1に含まれるボケ度N以上である場合、およびボケ情報Q0に含まれるボケ度Nがボケ情報Q1に含まれるボケ度Nより小さいかつ2つのボケ度Nの差(すなわちボケ情報Q0に含まれるボケ度Nがボケ情報Q1に含まれるボケ度Nより小さい分、以下同じ)が所定の第1の閾値より小さい場合には確信度αを0%とし、2つのボケ度Nの差がこの第1の閾値より大きい所定の第2の閾値以上である場合には確信度αを100%とし、2つのボケ度Nの差が第1の閾値と第2の閾値との間にある場合には、この差が大きいほど確信度αが0%から100%の間で大きくなるように確信度αを算出する。なお、ボケ度の差と確信度αとの対応関係を示すテーブルは記憶手段50cに記憶されており、確信度算出手段250は、このテーブルを参照して確信度αを算出する。
パラメータ統合手段260は、パラメータ設定手段30cにより設定されたパラメータEc0とEc1、および確信度算出手段250により算出した確信度αを用いて下記の式(3)に従って統合パラメータE’cを算出して補正手段40cに出力する。
E’c=α×Ec0+(1−α)×Ec1 (3)
但し、E’c: 統合パラメータ
Ec0: 顔部分の画像d0を用いて設定したパラメータ
Ec1: 顔以外の部分の画像d1を用いて設定したパラメータ
α: 画像Dが被写界深度の浅い画像である確信度
式(3)から分かるように、パラメータ統合手段260は、画像Dが被写界深度の浅い画像である確信度αが高いほど、顔部分の画像D0を用いて設定したパラメータEc0の重みが大きくなるようにパラメータEc0とパラメータEc1とを重付合算して統合パラメータE’cを取得するものである。
補正手段40cは、パラメータ設定手段30cから出力されてきた、画像D全体を用いて設定したパラメータEc、またはパラメータ統合手段260から出力されてきた統合パラメータE’cを用いて画像Dに適用して補正を施し、補正済み画像D’を得る。
出力手段60は、画像システムAおよび画像システムBにおける出力手段60と同じであるので、ここでその説明を省略する。
図25と図26は、図24に示す画像処理システムCの動作を示すフローチャートである。図25に示すように、本実施形態の画像処理システムCにおいて、記録媒体1から読み出された画像Dは、まず、縮小手段10cにより縮小処理が施されて縮小画像dとなる(S200)。顔抽出手段100cは、縮小手段10cにより得られた縮小画像dに対して、顔があるか否かを識別し(S202)、顔がある場合(S202:Yes)には、縮小画像dから顔画像d0を抽出すると共に顔以外の部分の画像d1も抽出してエッジ検出手段12cに出力する一方、顔がない場合には(S202:No)、縮小画像dをそのままエッジ検出手段12cに出力する。
図26に示す処理Bは、エッジ検出手段12c、エッジ絞込手段14c、エッジ特徴量取得手段16cによる処理(S210〜S214)および解析手段20cの一部の処理(S216)からなる。図26に示すように、処理Bは、エッジ検出手段12cによるエッジの検出から始まり、エッジ検出手段12cは、まず、顔抽出手段100cから出力されてきた縮小画像に基づいて作成した新たな縮小画像を用いて、図4に示すような8方向毎に、所定の強度以上のエッジを検出し、これらのエッジの座標位置を得る。次にエッジ検出手段12cは、検出された各方向毎の各々のエッジの座標位置に基づいて、前述した新たな縮小画像に対応する対象画像(縮小されていない画像)を用いてこれらのエッジに対して、図5に示すようなエッジプロファイルを作成してエッジ絞込手段14cに出力する(S210)。エッジ絞込手段14cは、エッジ検出手段12cから送信されてきたエッジプロファイルに基づいて、無効なエッジを除去し、残りのエッジのプロファイルをエッジ特徴量取得手段16cに出力する(S212)。エッジ特徴量取得手段16cは、エッジ絞込手段14cから送信された各々のエッジのプロファイルに基づいて各エッジの幅を求めると共に、図4に示す方向毎にエッジ幅のヒストグラムを作成して、各エッジの幅および各方向のエッジ幅のヒストグラムをエッジ特徴量として解析手段20cに出力する(S214)。解析手段20cは、エッジ特徴量を用いて、まず、対象画像のボケ方向およびボケ度Nを算出する(S216)。
ここで、顔抽出手段100cから顔画像d0および顔以外の部分の画像d1が出力された場合には(図25のフローチャートにおけるS202:Yes、S204)、処理Bの対象画像が顔画像D0と顔以外の部分の画像D1の2つであり、エッジ特徴量取得手段16cにより夫々のエッジ特徴量S0、S1が算出され、解析手段20cにより夫々のボケ方向、ボケ度Nが算出される。また、顔抽出手段100cから縮小画像dが出力された場合には(図25のフローチャートにおけるS202:No)、処理Bの対象画像が画像Dのみであり、エッジ特徴量取得手段16cにより画像Dのエッジ特徴量S’が算出され、解析手段20cにより画像Dのボケ方向、ボケ度Nが算出される。
図25のフローチャートに戻り、解析手段20cは、処理BのステップS216において顔画像D0および顔以外の画像D1の夫々のボケ方向、ボケ度Nを算出すると、顔画像D0のボケ度Nに基づいて画像Dがボケ画像か通常画像かの判別を行い(S220)、
通常画像として判別した場合(S220:Yes)には、画像Dが通常画像であることを示す情報Pを出力手段60に出力する(S222)ことをもって処理を終了する一方、ボケ画像として判別した場合には(S220:No)、さらに顔画像D0および顔以外の部分の画像D1に対してぶれ度K、ボケ幅Lを算出して(S230)、夫々のボケ方向、ボケ度N、ぶれ度K、ボケ幅Lを合わせて得た夫々のボケ情報Q0、Q1を確信度算出手段250とパラメータ設定手段30cに出力する(S232)。パラメータ設定手段30cは、2つのボケ情報Q0、Q1を用いて夫々に対応するパラメータEc0、Ec1を設定してパラメータ統合手段260に出力し(S234)、これに並行して、確信度算出手段250は、ボケ情報Q0とQ1を用いて画像Dが被写界深度の浅い画像である確信度αを算出してパラメータ統合手段260に出力する(S236)。パラメータ統合手段260は、確信度αを用いてパラメータEc0とEc1を統合し、統合パラメータE’cを補正手段40cに出力する(S238)。
一方、解析手段20cは、処理BのステップS216において画像D(この場合、顔抽出手段100cにおいて顔が検出されていない)のボケ方向、ボケ度Nを算出すると、画像Dのボケ度Nに基づいて画像Dがボケ画像か通常画像かの判別を行い(S240)、通常画像として判別した場合(S240:Yes)には、画像Dが通常画像であることを示す情報Pを出力手段60に出力する(S222)ことをもって処理を終了する一方、ボケ画像として判別した場合には(S240:No)、さらに画像Dに対してぶれ度K、ボケ幅Lを算出して(S242)、ボケ方向、ボケ度Nと合わせてボケ情報Q’としてパラメータ設定手段30cに出力する(S244)。パラメータ設定手段30cは、画像Dのボケ情報Q’を用いてパラメータEcを設定して補正手段40cに出力する(S246)。
補正手段40cは、パラメータ統合手段260から出力されて来た統合パラメータE’c、またはパラメータ設定手段30cから出力されて来たパラメータE’cを画像Dに適用して補正を行い、補正済み画像を目的画像D’として出力手段60に出力する(S250)。
出力手段60は、解析手段20cから情報Pを受信する(S222)と、画像Dを印刷してプリントを得る(S224)と共に、補正手段40cから目的画像D’を受信すると、目的画像D’を印刷してプリントを得る(S260)。
このように、本実施形態の画像処理システムCによれば、画像Dが被写界深度の浅い画像である確信度αを算出し、この確信度αが高いほど、主要被写体領域の画像(ここでは顔画像d0)を用いて設定したパラメータEc0の重みが高くなるように、パラメータEc0と、顔以外の領域の画像D1を用いて設定したパラメータEc1とを重み付け合算して得たパラメータを用いて補正を行うようにしているので、前述した実施形態の画像処理システムAおよび画像処理システムBと同様の効果を得ることができると共に、被写界深度に対する判別に多少のずれがあっても、良い補正効果を得ることができる。
なお、本実施形態の画像処理システムCにおいては、主要被写体領域の画像を用いて設定したパラメータを、主要被写体領域以外の領域の画像を用いて設定したパラメータと重み付け合算するようにしているが、主要被写体領域以外の領域の画像の代わりにデジタル写真画像全体(画像処理システムCにおいては縮小画像d全体)を用いて設定したパラメータと重み付け合算するようにしてもよい。
なお、画像処理システムBにおいて、画像Dの付属情報に基づいて画像Dが被写界深度の浅い画像である否かの判別を行っているが、主要被写体領域の画像のボケ情報と、主要被写体領域以外の領域の画像のボケ情報とを比較することによってこの判別を行うようにしてもよい。同様に、画像処理システムCにおいて、画像Dの付属情報に基づいて画像Dが被写界深度の浅い画像である確信度を算出するようにしてもよい。
デジタル写真画像が被写界深度の浅い画像であるか否かの判別、またはデジタル写真画像が被写界深度の浅い画像である確信度の算出については、画像処理システムBとCにおいて用いられた方法に限らず、デジタル写真画像を複数のブロックに分割し、各ブロックの画像のボケ情報を比較することによって行うようにしてもよい。図27は、この方法を用いた実施形態の画像処理システムDの構成を示している。なお、図27に示す画像処理システムDは、例としてデジタル写真画像を複数のブロックに分割し、各ブロックの画像のボケ情報を比較することによってデジタル写真画像が被写界深度の浅い画像であるか否かの判別を行って画像処理を施すものであるが、各ブロックの画像のボケ情報を比較することによってデジタル写真画像が被写界深度の浅い画像である確信度を算出して画像処理を行ってもよい。
図27に示す実施形態の画像処理システムDは、図21に示す実施形態の画像処理システムBと比べ、画像Dが被写界深度の浅い画像であるか否かの判別を行う処理が異なる点を除けば、他の処理が略同様であるため、ここでは、画像処理システムDにおける、画像Dが被写界深度の浅い画像であるか否かの判別を行う処理についてのみその詳細を説明する。
図27には、画像Dが被写界深度の浅い画像であるか否かの判別を行う処理を点線により示している。図示のように、まず、縮小手段10dにより得られた画像Dの縮小画像dが判別手段200dにも出力される。判別手段200dは、縮小画像dを複数のブロックに分割するブロック分割手段210dを備えている。ここで、例として、縮小手段10dは、画像Dを200画素×150画素の縮小画像dに縮小するものであり、判別手段200dに備えられたブロック分割手段210dは、縮小画像dを20画素×15画素の計100個のブロックに分割するものであるとする。判別手段200dは、ブロック分割手段210dにより得られた100個のブロックの画像をエッジ検出手段12dに出力する。エッジ検出手段12dは、まずこれらのブロックの画像(縮小されている画像)に対して、図4に示すような8方向毎に、所定の強度以上のエッジを検出し、これらのエッジの座標位置を得る。次にエッジ検出手段12dは、検出された各方向毎の各々のエッジの座標位置に基づいて、画像Dにおいて、各ブロックの部分に夫々対応する部分の画像を用いてこれらのエッジに対して、図5に示すようなエッジプロファイルを作成してエッジ絞込手段14dに出力する。エッジ検出手段12dにより作成された各々のエッジプロファイルは、エッジ絞込手段14d、エッジ特徴量取得手段16d、解析手段20dの順に夫々の処理が施されて、最後に解析手段20dから、各々のブロックの画像のボケ情報が判別手段200dに出力される。ここで、解析手段20dにより各ブロックの画像のボケ情報を算出して判別手段200dに出力する際に、ボケ方向、ボケ度N、ぶれ度K、ボケ幅L全部を算出して出力するようにしてもよいが、ここでは、演算量を減らし、処理を早くするために、画像Dが被写界深度の浅いであるか否かを判別するためのボケ情報として、各ブロックの画像のボケ度Nのみを算出して判別手段200dに出力するとする。
判別手段200dは、各ブロックの画像のボケ情報(ここではボケ度Nのみ)を比較して、画像Dが被写界深度の浅い画像であるか否かの判別を行う。具体的には、下記の手法で判別を行う。
1.ボケ度Nの差が所定の閾値(閾値t1)以内のブロックを同じグループにするようにして各ブロックをグループ化する
2.1において得られたグループが1つしかなければ、画像Dが被写界深度の浅い画像ではないと判別する。グループが2以上あれば、相隣するブロックが4つ以上含まれたグループのみを抽出して、下記3の処理に進む。
3.2において抽出されたグループが1つ以下であれば、画像Dが被写界深度の浅い画像ではないと判別する。3において抽出されたグループが2つ以上であれば、これらのブロック毎の平均ボケ度N’0を夫々算出して処理5に進む。
5.3において抽出された2つ以上のグループから平均ボケ度N’0が最も小さいグループ(そのボケ度をN’minとする)を除いた他のグループの全てのブロックの平均ボケ度N’1を算出してN’minと比較し、N’1とN’minとの差の絶対値が所定の閾値(閾値t2とする)以下であれば、画像Dが被写界深度の浅い画像ではないと判別する一方、N’1とN’minとの差の絶対値が閾値t2より大きければ、画像Dが被写界深度の浅い画像であると判別する。
判別手段200dは、こうして画像Dが被写界深度の浅い画像であるか否かの判別を行い、判別の結果を縮小手段10dに出力する。
縮小手段10dが判別手段200dから判別の結果を受信した後の処理は、前述した画像処理システムBにおいて、縮小手段10bが判別手段200から判別の結果を受信した後の処理と同様であるので、ここで詳細な説明を省略する。
このように、本実施形態の画像処理システムDは、画像システムBと異なる判別方法で画像Dが被写界深度の浅い画像であるか否かの判別を行い、画像システムBと同様な効果を得ることができると共に、画像Dに付属情報がない、または画像Dの付属情報にF値が含まれていない場合においても判別を行うことができる。
以上、本発明の望ましい実施形態について説明したが、本発明の画像処理方法および装置並びにそのためのプログラムは、上述した実施形態に限られることがなく、本発明の主旨を逸脱しない限り、上述した各実施形態の構成を組み合わせたり、増減、変化を加えたりすることができる。
例えば、写真画像に顔が含まれているか否かの識別および顔画像の抽出については、上述した実施形態に用いられた方法に限られることがなく、従来公知の種々の技術を利用することができる。
また、図1に示す実施形態の画像処理システムAおよび画像処理システムBにおいては、パラメータ設定手段30は複数の補正パラメータを設定し、補正手段40は、これらの複数の補正パラメータを用いて補正を施して複数の補正済み画像を得、決定手段45は、ユーザが複数の補正済み画像から選択した補正済み画像を目的画像として決定するようにしているが、補正制御手段と確認手段とを設け、パラメータ設定手段においてまず1つのみの補正パラメータを設定し、補正手段も一度には1つの補正済み画像のみを得、確認手段は、補正済み画像をユーザに確認させ、補正制御手段は、ユーザによる確認の結果が該補正済み画像を目的画像とすることになるまでパラメータ設定手段による補正パラメータを設定し直す処理と、補正手段による、設定し直された補正パラメータを用いて補正を行って補正済み画像を得る処理、確認手段による確認を繰り返させるようにして目的画像を決定するようにしてもよい。またはパラメータの設定、補正の実行、確認の繰り返しをせずに、1つのみの補正済み画像をユーザに確認させ、ユーザに気に入らない場合には補正済み画像と対応する補正前の元の画像を目的画像として決定するようにしてもよい。
また、上述の実施形態の画像処理システムは、相関最小組の2つの方向のうち、平均エッジ幅が大きい方向をボケ方向としているが、例えば、相関最小組(相関値が1番目に小さい方向組)と、相関値が2番目に小さい方向組について、夫々ぶれ度を算出し、方向組の2つの方向のうち、平均エッジ幅が大きい方向をボケ方向とするようにして2つの方向組からボケ候補方向を夫々取得し、取得された2つのボケ候補方向を、算出された2つのぶれ度に応じて、ぶれ度が大きい方向組ほど、該方向組に含まれるボケ候補方向の重みが大きくなるように重み付けしてボケ方向を得るようにしてもよい。この場合、ボケ幅も、2つのボケ候補方向における夫々の平均エッジ幅を、ぶれ度が大きい方向組ほど、該方向組に含まれるボケ候補方向の平均エッジ幅の重みが大きくなるように重み付けしてボケ幅を得ることができる。
また、上述の実施形態の画像処理システムは、画像中のボケの有無に関わらず相関最小組の2つの方向のうち、平均エッジ幅が大きい方向をボケ方向にし、該ボケ方向に基づいてさらにボケ度を算出して、ボケ度に基づいて通常画像とボケ画像の判別を行い、ボケ画像として判別された画像に対してさらにぶれ度を求めるようにして補正パラメータの設定を行うようにしているが、例えば、相関最小組の相関値が所定の閾値T1以上であれば、該画像におけるボケが「無方向」とし(即ち、画像が通常画像かピンボケ画像である)、ボケ方向が「無方向」である画像に対して、ボケ度を求め、ボケ度が所定の閾値T2より小さい画像を通常画像として判別して補正しないようにする一方、ボケ度が所定の閾値T2以上の画像をピンボケ画像として判別して等方性補正用のパラメータのみを求めて補正を行うと共に、相関最小組の相関値がT1より小さい画像をぶれ画像として、相関最小組の平均エッジ幅の大きい方向をぶれ幅とするようにしてもよい。また、ぶれ画像に対して補正パラメータを設定する際に、ぶれ方向に作用する方向性補正パラメータのみを補正パラメータとして設定するようにしてもよいし、ぶれ度をさらに求め、ぶれ度に応じて等方性補正パラメータと方向性補正パラメータとを重み付け合算するようにして補正パラメータを設定するようにしてもよい。
また、上述の本実施形態の画像処理システムは、処理の効率を良くするために、デジタル写真画像が通常画像かボケ画像かを判別し、ボケ画像として判別された画像に対してのみぶれ度、ぶれ幅を算出してパラメータの設定や、補正を行うようにしているが、通常画像とボケ画像の判別をせず、全ての処理対象の画像に対して、ボケ度、ボケ幅、ぶれ度をボケ情報として算出し、ボケ情報に基づいてパラメータを設定して補正を行うようにしてもよい。通常画像のボケ度が小さいため、ボケ度に応じて設定された通常画像の補正パラメータは微小な補正を行う補正パラメータまたは補正しないパラメータとなり、ピンボケ画像のぶれ度が小さいため、ぶれ度に応じて等方性補正パラメータと方向性パラメータとを重み付け合算して補正パラメータを得る際に、方向性補正パラメータの重みが小さい乃至ゼロとなる。
また、上述した実施形態において、解析手段20、20c、20dは、図9に基づいて、前述した3つの要素に基づいてぶれ度を求めるようにしているが、ぶれ度を求める要素については増減があってもよい。例えば、前述した3つの要素のうちの2つのみを用いてもよく、要素を増やして、例えば相関最小組と、相関最小組と最も大きくずれた(図4に示す方向組の場合、45度ずれた)方向組との相関値の差も視野に入れてぶれ度を求めるようにしてもよい。
また、上述の実施形態において、解析手段20、20c、20dは、ボケ画像となる画像Dに対して、そのボケがピンボケかぶれかの区別をせず、ボケ画像として判別された画像であれば、ぶれ度を求めてぶれ度に応じた重み付け係数(本実施形態の画像処理システムにおいては、ぶれ度そのものを重み付け係数にしている)で当方性補正パラメータと方向性補正パラメータを重み付け合算して補正パラメータを得て補正するようにしているが、例えば、ぶれ度が所定の閾値より小さいボケ画像をピンボケ画像とし、ピンボケ画像に対しては等方性補正パラメータのみを設定して補正を行うようにしてもよい。
また、上述の実施形態の画像処理システムは、処理対象となるデジタル写真画像がボケ画像か通常画像かが知られていないことを前提にして、全てのデジタル写真画像に対して通常画像かボケ画像かの判別を行うようにしているが、ボケ画像のみを対象とする処理系、例えば顧客または操作者によりボケ画像に指定された画像を補正するような処理系などにおいては、通常画像とボケ画像の判別を行うことが必ずしも必要ではない。
また、上述の実施形態の画像処理システムは、画像の縮小から目的画像を出力するまでの処理を1つの装置において行っているが、本発明は、このような態様に限られることがなく、例えば、画像処理システムを解析装置と処理装置とに分け、解析装置は、補正パラメータを設定するまでの処理を行うと共に、設定された補正パラメータを画像の付属情報として画像に付属させて記録媒体に記録し、処理装置は、記録媒体から画像を読み出して、画像の付属情報となる補正パラメータを用いて補正を行うようにしてもよい。
さらに、このような態様において、解析装置は、ボケ情報を求めるまでの処理のみをし、このボケ情報を画像の付属情報として画像に付属させて記録媒体に記録し、処理装置は、記録媒体から画像を読み出して、画像の付属情報となるボケ情報に基づいて補正パラメータを設定して補正を行うようにしてもよい。
さらに、補正実行指示手段を設け、ボケ情報の取得までまたは補正パラメータの設定までの処理を行うが、補正実行指示手段から補正を実行するように指示されるまで補正を実行せず、補正を実行するように指示されてから補正を実行するようにしてもよい。
また、上述の実施形態の画像処理システムは、携帯カメラにより取得されたデジタル写真画像を対象としているが、本発明の画像処理方法および装置並びにそのためのプログラムは、携帯カメラにより取得されたデジタル写真画像に限らず、如何なるデジタル写真画像、例えば通常のデジタルカメラにより取得されたデジタル写真画像や、スキャナなどの読取装置で写真フィルムまたは紙などの印刷媒体に印刷された写真画像を読み取って得たデジタル写真画像にも適用することができる。
また、上述の実施形態の画像処理システムにおいて、画像から複数の顔領域が検出された場合、エッジ検出手段は、これらの複数の顔領域の画像から、最も画素数の多い画像を選択してエッジの検出に供するが、最も中央部分に位置する顔領域の画像を選択するようにしてもよい。さらに、検出された複数の顔領域の画像のうち、ユーザにより指示された画像を選択するようにしてもよく、この場合、検出された複数の顔領域の画像を候補画像として例えばモニタなどの表示装置に表示し、表示された複数の候補画像に対してユーザによりマウスなどの入力手段で指定された候補画像を選択するようにしてもよいし、顔検出の前または後にユーザに所望の位置をポインティングさせ、検出された複数の顔領域の画像のうち、ユーザによりポインティングされた位置に最も近い顔領域の画像を選択するようにしてもよい。
勿論、複数の顔領域の画像から1つのみを選択するのではなく、複数の顔領域全て、または全部ではないが1つ以上の領域の画像を選択するようにしてもよい。