(57)【特許請求の範囲】
【請求項１】
画像データを入力する入力手段と、
前記入力手段により入力された画像データが表す画像のうち局所光領域の位置を特定する特定手段と、
前記局所光領域に基づく領域に対応する画像データに対してぼかし処理を施す処理手段と、
を有し、
前記処理手段は、前記特定手段により特定された局所光領域の位置が前記入力手段により入力された画像データが表す画像の中心から離れる場合、ぼかし処理を施す領域の形状を楕円形とし、前記画像の中心から離れるに従って前記ぼかし処理を施す領域の楕円形の扁平率を大きくすることを特徴とする画像処理装置。
【請求項２】
前記画像データが表す画像が高さ（ｈｅｉｇｈｔ）と幅（ｗｉｄｔｈ）で表されるものとした場合、前記ぼかし処理を施す領域は、長辺Ｒ０、短辺Ｒ（ｘ，ｙ）の楕円形としたとき、Ｒ（ｘ，ｙ）が以下の式（１）で規定される
Ｒ（ｘ，ｙ）＝Ｒ０×（ｗｉｄｔｈ−（ｌ／２））／ｗｉｄｔｈ    （１）
（ただし、ｌ＝（ｘ２＋ｙ２）１／２）
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記ぼかし処理を施す領域は、扁平方向が前記画像の中心を中心として回転する楕円形とすることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記処理手段は、前記画像の中心と前記局所光領域とを結ぶ直線と、前記画像データが表す画像のｘ軸と、のなす角度分回転した楕円形とすることを特徴とする請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
画像データを入力する入力手段と、
前記入力手段により入力された画像データが表す画像のうち局所光領域の位置を特定する特定手段と、
前記局所光領域に基づく領域に対応する画像データに対してぼかし処理を施す処理手段と、
を有し、
前記処理手段は、前記特定手段により特定された局所光領域の位置が前記入力手段により入力された画像データが表す画像の中心から離れる場合、ぼかし処理を施す領域は、扁平方向が前記画像の中心を中心として回転する楕円形とすることを特徴とする画像処理装置。
【請求項６】
前記処理手段は、前記画像の中心と前記局所光領域とを結ぶ直線と、前記画像データが表す画像のｘ軸と、のなす角度分回転した楕円形とすることを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記処理手段は、前記特定手段より特定された局所光領域の位置が前記入力手段により入力された画像データが表す画像の中心から離れるに従ってぼかし処理を施す領域のサイズを大きくすることを特徴とする請求項１〜６のいずれか１項に記載の画像処理装置。
【請求項８】
前記画像データが表す画像が高さ（ｈｅｉｇｈｔ）と幅（ｗｉｄｔｈ）で表されるものとした場合、前記ぼかし処理を施す領域は、長辺Ｒ’（ｘ，ｙ）、短辺Ｒ（ｘ，ｙ）の楕円形としたとき、Ｒ（ｘ，ｙ）が以下の式（１）で規定され、Ｒ’（ｘ，ｙ）が以下の式（２）で規定される
Ｒ（ｘ，ｙ）＝Ｒ０×（ｗｉｄｔｈ−（ｌ／２））／ｗｉｄｔｈ    （１）
Ｒ’（ｘ，ｙ）＝Ｒ０×ｃｏｓｈ（Ｚ）      （２）
（ただし、Ｚ＝ｌ／（ｗｉｄｔｈ）×π／２，ｌ＝（ｘ２＋ｙ２）１／２，Ｒ０は固定値）
ことを特徴とする請求項７に記載の画像処理装置。
【請求項９】
画像データを入力する入力手段と、
前記入力手段により入力された画像データが表す画像のうち局所光領域の位置を特定する特定手段と、
前記局所光領域に基づく領域に対応する画像データに対してぼかし処理を施す処理手段と、
を有し、
前記処理手段は、前記特定手段により特定された局所光領域の位置が前記入力手段により入力された画像データが表す画像の中心から離れるに従ってぼかし処理を施す領域のサイズを大きくすることを特徴とする画像処理装置。
【請求項１０】
前記画像データが表す画像が高さ（ｈｅｉｇｈｔ）と幅（ｗｉｄｔｈ）で表されるものとした場合、前記ぼかし処理を施す領域は、長辺Ｒ’（ｘ，ｙ）、短辺Ｒ（ｘ，ｙ）の楕円形としたとき、Ｒ（ｘ，ｙ）が以下の式（１）で規定され、Ｒ’（ｘ，ｙ）が以下の式（２）で規定される
Ｒ（ｘ，ｙ）＝Ｒ０×（ｗｉｄｔｈ−（ｌ／２））／ｗｉｄｔｈ    （１）
Ｒ’（ｘ，ｙ）＝Ｒ０×ｃｏｓｈ（Ｚ）      （２）
（ただし、Ｚ＝ｌ／（ｗｉｄｔｈ）×π／２，ｌ＝（ｘ２＋ｙ２）１／２，Ｒ０は固定値）
ことを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記処理手段は、前記特定手段により特定された局所光領域の位置が前記画像の中心に近づくに従ってぼかし処理を施す領域の形状を円形に近付けることを特徴とする請求項１〜１０のいずれか１項に記載の画像処理装置。
【請求項１２】
前記局所光領域を囲む拡大領域を設定する設定手段を有し、
前記局所光領域に基づく領域は、前記局所光領域と前記設定手段により設定された拡大領域とを含むことを特徴とする請求項１〜１１のいずれか１項に記載の画像処理装置。
【請求項１３】
入力された画像データが表す画像のうち局所光領域の位置を特定する特定工程と、
前記局所光領域に基づく領域に対応する画像データに対してぼかし処理を施す処理工程と、
を有し、
前記処理工程では、前記特定工程において特定された局所光領域の位置が前記入力された画像データが表す画像の中心から離れる場合、ぼかし処理を施す領域の形状を楕円形とし、前記画像の中心から離れるに従って前記ぼかし処理を施す領域の楕円形の扁平率を大きくすることを特徴とする画像処理方法。
【請求項１４】
入力された画像データが表す画像のうち局所光領域の位置を特定する特定工程と、
前記局所光領域に基づく領域に対応する画像データに対してぼかし処理を施す処理工程と、
を有し、
前記処理工程では、前記特定工程において特定された局所光領域の位置が前記入力された画像データが表す画像の中心から離れる場合、ぼかし処理を施す領域は、扁平方向が前記画像の中心を中心として回転する楕円形とすることを特徴とする画像処理方法。
【請求項１５】
入力された画像データが表す画像のうち局所光領域の位置を特定する特定工程と、
前記局所光領域に基づく領域に対応する画像データに対してぼかし処理を施す処理工程と、
を有し、
前記処理工程では、前記特定工程において特定された局所光領域の位置が前記入力された画像データが表す画像の中心から離れるに従ってぼかし処理を施す領域のサイズを大きくすることを特徴とする画像処理方法。
【請求項１６】
請求項１〜１２のいずれか１項に記載の画像処理装置の各手段をコンピュータにより実現するためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力された画像データに所定の処理を施す画像処理装置、画像処理方法およびプログラムに関する。
【背景技術】
【０００２】
従来、デジタルカメラによって撮影を行う際、主な被写体にピントを合わせ、背景をぼかす撮影手法が知られている。このような撮影手法において、点光源をぼかすことにより、当該点光源に対応する部分において玉ボケを生じさせ、幻想的な効果のある画像を得ることができる。このような玉ボケはデジタルカメラのレンズの光学的特性により生ずるものである。なお、点光源とはある程度の大きさを有した局所的な光の存在する領域を指す。
【０００３】
また、画像データを取り込み、画像処理によって玉ボケを生じたような画像に加工するものが知られている（特許文献１、２参照）。
【０００４】
特許文献１は、画像内の光源領域に対して、予め用意された複数のフィルタのいずれかを選択することで、光源領域をぼかす際の大きさまたは形状を変える手法を開示している。特許文献２は、背景ぼかし処理に際して高輝度部分の強調処理を行う手法を開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−００３８５８号公報
【特許文献２】特開２００９−２１８７０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
実際にデジタルカメラ等で撮影して得た画像中の玉ボケ領域は、レンズの光学的特性により画角内の位置に応じて異なるものとなる。しかしながら、特許文献１、２では処理対象の画像内の位置によらず一様にぼかし処理を行うものである。従って、レンズで撮影することによって得られるぼかし画像を再現できない。
【０００７】
本発明は以上のような課題に鑑みてなされたものであり、レンズを用いて撮影することによって得られるぼかし画像を、画像データを処理することによって得ることのできる画像処理装置、画像処理方法およびプログラムを提供するものである。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明の画像処理装置は、画像データを入力する入力手段と、前記入力手段により入力された画像データが表す画像のうち局所光領域の位置を特定する特定手段と、前記局所光領域に基づく領域に対応する画像データに対してぼかし処理を施す処理手段と、を有し、前記処理手段は、前記特定手段により特定された局所光領域の位置が前記入力手段により入力された画像データが表す画像の中心から離れる場合、ぼかし処理を施す領域の形状を楕円形とし、前記画像の中心から離れるに従って前記ぼかし処理を施す領域の楕円形の扁平率を大きくする。また、本発明の他の画像処理装置は、画像データを入力する入力手段と、前記入力手段により入力された画像データが表す画像のうち局所光領域の位置を特定する特定手段と、前記局所光領域に基づく領域に対応する画像データに対してぼかし処理を施す処理手段と、を有し、前記処理手段は、前記特定手段により特定された局所光領域の位置が前記入力手段により入力された画像データが表す画像の中心から離れる場合、ぼかし処理を施す領域の形状を楕円形とし、前記ぼかし処理を施す領域は、扁平方向が前記画像の中心を中心として回転する楕円形とする。さらに、本発明の他の画像処理装置は、画像データを入力する入力手段と、前記入力手段により入力された画像データが表す画像のうち局所光領域の位置を特定する特定手段と、前記局所光領域に基づく領域に対応する画像データに対してぼかし処理を施す処理手段と、を有し、前記処理手段は、前記特定手段により特定された局所光領域の位置が前記入力手段により入力された画像データが表す画像の中心から離れるに従ってぼかし処理を施す領域のサイズを大きくする。
【発明の効果】
【０００９】
本発明によれば、レンズを用いて撮影することによって得られるぼかし画像を、画像データを処理することによって得ることができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態の画像処理装置の構成を示すブロック図である。
【図２】実施形態の処理の流れを示すフローチャートである。
【図３】点光源検出の処理の流れを示すフローチャートである。
【図４】レンズを通して入力される光の結像の様子を示す図である。
【図５】点光源ぼかし処理を説明するための図である。
【図６】背景ぼかし処理の流れを示すフローチャートである。
【図７】点光源ぼかしの形状を点光源の位置に応じて変更する例を示す図である。
【図８】点光源ぼかしの大きさを点光源の位置に応じて変更する例を示す図である。
【図９】点光源検出の処理の流れを示すフローチャートである。
【図１０】適応的２値化処理の流れを示すフローチャートである。
【図１１】輝度値毎の画素数を示すヒストグラムである。
【図１２】２値化処理の流れを示すフローチャートである。
【図１３】処理対象の画像内における点光源候補の領域群を示す図である。
【図１４】境界線追跡法によるクラスタリング処理を説明するための図である。
【図１５】点光源を抽出する処理の流れを示すフローチャートである。
【図１６】色相に応じた重みを説明するための図である。
【図１７】２値化処理の流れを示すフローチャートである。
【図１８】撮影シーンに応じた重みを説明するための図である。
【図１９】２値化処理の流れを示すフローチャートである。
【図２０】２値化処理の流れを示すフローチャートである。
【図２１】ＩＳＯ感度に応じた重みを説明するための図である。
【図２２】Ｆ値に応じたサイズ閾値を説明するための図である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態の一例について図面を用いて説明する。これはあくまで実施の１つの形態を例として示したものであり、本発明は以下の実施形態に限定されるものではない。なお、以下で扱う点光源はある程度の大きさを持った光に対応する画像もその範疇とするため局所光ともいう。
【００１２】
＜実施例１＞
図１は、実施形態の画像処理装置のハードウェア構成例を示すブロック図である。本画像処理装置は、例えば汎用的なパーソナルコンピュータ（ＰＣ）に所定のソフトウェアをインストールすることにより実現可能である。図１において、ＣＰＵ（中央演算装置）１００は、以下のフローチャートで示される処理に対応するプログラムに従って画像処理装置を制御する。ＲＯＭ１０１は、ＣＰＵ１００により実行されるプログラムを記憶する。ＲＡＭ１０２は、ＣＰＵ１００によるプログラムの実行時に、各種情報を一時的に記憶したり、画像処理装置の処理に関する設定情報を記憶したりする。ハードディスク（ＨＤ）１０３は、処理対象の画像データ（画像ファイル）やパターン識別用のパラメータなどを保存するための記憶媒体である。またＨＤ１０３は以下のフローチャート等で示される処理に対応するプログラムも記憶する。ディスプレイ１０４は、ユーザに提示すべき情報を表示する。ユーザインタフェース（ＵＩ）１０５は、ユーザによる操作を受け付ける。ＵＩ１０５にはマウス等のポインティングデバイスやキーボードなどを含む。外部インタフェース（Ｉ／Ｆ）は、画像処理装置に外部装置を接続するためのインタフェースである。外部装置としては、原稿上の画像を読み取る画像スキャナ、画像データを記憶可能なメモリデバイス、画像を撮影可能なデジタルカメラなどが含まれる。画像処理装置は外部Ｉ／Ｆ１０６を介して処理対象の画像データを取得可能である。制御バス／データバス１１０は上記各部とＣＰＵ１００とを接続し互いに通信可能にする。
【００１３】
次に図１の画像処理装置において、入力された画像データが表す画像に対してぼかし処理を施すための処理について説明する。図２はこの処理の流れを示すフローチャートである。ここで行うぼかし処理では、画像内の特定のオブジェクトにはピントが合った状態とし、背景となるオブジェクトに対してぼかしが入ったような画像に加工する。そして画像に含まれる点光源に対応する箇所に対しては点光源のぼかしに適した点光源ぼかし処理を施す。これらの処理は、実際にカメラのレンズを通して撮影した場合の風合いを擬似的に再現するための処理である。実際にカメラで撮影する際、主な被写体にピントを合わせ、背景のぼかしを行う場合、絞りを大きく開き、被写界深度を浅くすることでピントが合う範囲を狭める。あるいは望遠レンズやマクロレンズを用いて同様な効果をもたらすことができる。この場合、点光源については玉ボケが生じるが、この玉ボケの領域についてはレンズの光学特性により、領域内の中心部分より周辺部の方が輝度が高くなる。以下に示す処理ではこのような撮影手法で背景ぼかしを行った場合の画像を画像データの加工により再現する。そして、以降の処理はＲＯＭ１０１またはＨＤ１０３に記憶されているプログラムをＲＡＭ１０２にロードし、それをＣＰＵ１００が実行することによりなされる処理である。処理対象の画像データは外部Ｉ／Ｆ１０６を介して画像処理装置内に取り込まれ、ＨＤ１０３に記憶される。そして、ユーザがＵＩ１０５によって当該画像データを指定し、ぼかし処理の実行を指示することにより以下の図２に示す処理が開始される。処理対象の画像データは、デジタルカメラやデジタルビデオで撮影されたもの、アナログカメラで撮影して得た画像をスキャナで読み取ることによって得たものなどがある。処理対象の画像データはこれらの方法以外、画像処理アプリケーションで作成されたものなど種々の方法以外で取得された画像データを用いることができる。また、処理対象の画像データが表す画像には点光源（円とは限らない）に相当する領域が少なくとも１か所は含まれ、それには玉ボケが生じていない、あるいはあまり大きくは玉ボケが生じていないものである場合、以下の処理による効果が大きい。
【００１４】
まずＳ２０１では、入力された画像データから点光源に対応する領域を検出する。処理対象の画像データは入力された画像データが表す画像（画角）全域、または当該画像のうちユーザによって指定された範囲などである。また、処理対象の画像データを印刷処理する場合、印刷対象となる範囲としてもよい。次にＳ２０２において入力された画像データに対するぼかし処理を行う。このときのぼかし方法は画像データを平滑化する方法を用いる。具体的には、平均値フィルタやガウシアンフィルタなどのローパス系のフィルタ処理、画像データを空間周波数領域に変換し、高周波成分を除去する処理、画像を縮小後に拡大する処理などを用いる。このとき、ぼかし処理はＳ２０１で検出された点光源及び主要被写体以外の背景部分についてぼかし処理を行う。背景部分の特定については、中央部分に存在するオブジェクトを主要被写体として自動で検出したり、ユーザによりＵＩ１０５を介して指定されたオブジェクトを主要被写体として抽出し、残った部分を背景部分として扱う。そしてＳ２０２ではこの背景部分から点光源として検出された部分を取り除いた部分に対してぼかし処理を行う。
【００１５】
次にＳ２０３においてＳ２０１で検出された点光源領域に対して点光源ぼかし処理を行う。なお、ここでいう点光源とは所定の大きさを持ち、周囲の輝度より高い輝度を持つ光の画像のことである。Ｓ２０１で点光源領域が検出できなかった場合はＳ２０３の処理は省略される。
【００１６】
次にＳ２０１の詳細について図３を用いて説明する。点光源検出処理では、処理対象の画像データの中から孤立した光源領域を検出する。まず光源であると判断するために、所定の輝度閾値Ｙｔｈを決定する。ここでは一例として、輝度閾値Ｙｔｈは予め決められた一定の輝度値とする。そして処理対象の画像データから順に注目画素を特定し、順次図３に示す処理を行っていく。
【００１７】
Ｓ３０１では、注目画素の輝度が輝度閾値Ｙｔｈ以上かどうかを判断する。輝度閾値Ｙｔｈ以上であると判断された場合、次にＳ３０２で当該画素が平坦領域に属するかどうかを判断する。
【００１８】
Ｓ３０２では、当該画素を含む点光源候補の画素群で構成される領域が所定の大きさ以下で周囲の画素の輝度値との差が一定より大きい画素を点光源領域として検出し、それ以外は平坦領域（点光源以外の領域）であるとする。ここで、検出したい点光源領域は円形であるとし、検出したい点光源領域の半径をＲと周囲との輝度差をＹｄｉｆｆとし、それぞれの値を決定する。この場合Ｓ３０２では、まず注目画素の輝度Ｙｏｒｇと注目画素から見て周囲８方向（上下左右斜め）の半径Ｒ離れた画素の輝度値Ｙｎ（ｎは１から８の値）を求める。なお、半径Ｒの値に応じて比較対象とする画素位置を予め決めておいたり、比較対象とする画素数を変更したりしてもよい。比較対象の画素を隣接する画素とする場合には自ずと上下左右斜めの８画素は特定される。ここでは比較対象の画素は８つとして説明する。輝度値Ｙｏｒｇと８つ分の輝度値Ｙｎそれぞれとの輝度差を算出し、どれか一つでも輝度差Ｙｄｉｆｆより小さい画素があった場合、当該画素は平坦領域内であると判断し、全ての輝度差が輝度差Ｙｄｉｆｆ以上であった場合は平坦領域内ではないと判断する。
【００１９】
Ｓ３０２で平坦領域でないと判断された画素は、Ｓ３０３で点光源として検出結果に追加される。以上の処理を処理対象の画像データ内の全ての画素に実施する。なお、ここでは検出したい点光源を円形として説明したが、多角形など他の形状としてもよい。点光源の形状に応じてＳ３０２で比較する周囲の画素の位置や、比較する画素数が異なることもある。
【００２０】
なお、以上の処理において一旦処理対象の画像データに縮小処理を施して上記のような処理を行い、その後拡大処理を行って元の画像サイズとするようにしてもよい。この場合、縮小処理したときに点光源と判断した１つの画素は拡大処理によって複数の画素となる。これを後続の処理に適用することになる。
【００２１】
次に、Ｓ２０３の詳細について説明する。ここで、点光源ぼかし処理のモデルとする現象について説明する。図４はデジタルカメラ等において実際にレンズを通して撮影した場合の点光源の玉ボケの発生を説明するための図である。図４ではデジタルカメラ、デジタルカメラに対する入光、レンズ等は説明のため簡略化して示してある。
【００２２】
図４において、光４０５が左から右に向けて入るものとし、光軸４０１が中心部に存在する。デジタルカメラに入った通常の光４０５は、レンズ４０３を介して結像面４０４（イメージセンサ）へ到達する。なお、レンズ４０３は球面レンズを想定しているが、簡略化のためここでは平面で図示している。ここでは点光源に対応する光（背景から入ってくる光）に対する説明であるため、結像面４０４ではピントが合っていない（焦点が結像面４０４より前）状態となっている（被写体にはピントが合っている状態である）。
【００２３】
このとき、デジタルカメラに入ってきた光のうち絞り４０２で遮られた光４０６は本来ならレンズ４０３に入ってこないが、光の特性である回折現象により絞り４０２の裏側にある程度回り込み、レンズ４０３を通り結像面４０４に届く。なお、光の回折とは、光が障害物にぶつかった場合に、光の波動性のため光が障害物の背後に回り込んで伝わって行く現象のことである。このように光の回折により、結像面４０４で作られる画像は、絞り４０２の内側を通った光４０５に加え、絞り４０２で遮られた光４０６の影響を受ける。またこの光はピントが合っていないため、一点に集まる光が拡散されて結像面４０４に入るので遮られた光４０６の影響が大きくなる。
【００２４】
この現象はカメラレンズに入ってくる光が強いほど遮られた光４０６も強くなり、それが顕著に表れる。また遮られた光４０６は回折により光軸４０１に対して斜めの光としてレンズ４０３に入る。そのため遮られた光４０６の焦点は光軸から離れる方向にずれる。そのため結像面４０４に入るときは、通常の光４０５と合成されて結像される。そのため、点光源の玉ボケ内においては中心部と比べ中心部より外側（周辺部）の方が輝度が高くなる。
【００２５】
また、点光源（背景）がより遠くなったり被写界深度がより浅くなったりする場合、結像面に入ってくる通常の光４０５の焦点は結像面４０４からより離れることになる。そのため、結像面４０４に入ってくる光によってできるボケの大きさは大きくなり、それに連れて輝度は下がっていく。また、遮られた光４０６と通常の光４０５とは異なる角度で結像面４０４に入る。そのため、焦点と結像面４０４とが離れていると、所定の距離までは遮られた光４０６は通常の光４０５と合成され、かつ所定の距離に近づくにつれ徐々に通常の光４０５の縁に集まるように変化する。それ以上の距離になると遮られた光４０６は通常の光６０５の外側で結像面に入るため、無視できる光の強さになる。
【００２６】
このようにカメラレンズに入るある一定以上の明るさを持つ背景からの光は、回折が起こり中心部の輝度より周辺部の輝度の方が高いものとなる。
【００２７】
以上のような実際のレンズを通した撮影において点光源の玉ボケに対して発生する現象をモデルとし、点光源ぼかし処理においてはこの現象に近づくように画像データの処理を行う。
【００２８】
図５（ａ）において、処理対象の画像領域５０１内で、Ｓ２０１で検出された点光源領域が５０２であった場合、その周囲に点光源領域５０２を囲むように拡大された領域である加算領域５０３を設定する。そして、加算領域５０３の外周より内側（点光源領域５０２も含む）に次のようにぼかし処理を施す。
【００２９】
まず、点光源領域５０２の各画素の平均輝度値または中心点に相当する画素の輝度値を基にして基準となる加算輝度値を算出する。そして点光源領域５０２の大きさや平均輝度値、ＵＩ１０５からの指定等に基づくぼかし強度などから点光源領域５０２より広い加算領域５０３が決定され、これを加算領域として設定する。
【００３０】
この加算領域５０３の内側にある画素に対して、予め決められた加算輝度値に中心点からの距離に応じて決められた加算係数を用いて得た輝度値を加算していく。加算輝度値をＹａｄｄ、加算係数をｋ、注目画素輝度をＹｏｒｇ、出力画素輝度をＹｏｕｔとすると、下記の式で出力画素輝度を算出できる。
Ｙｏｕｔ＝（１−ｋ）×Ｙｏｒｇ＋ｋ×Ｙａｄｄ      （式１）
このとき、加算係数ｋは、図４で説明したように玉ボケとなる部分の外周の輝度値が高くなるように設定する。
【００３１】
なお、出力輝度値の範囲を特定の範囲に限定すべき場合は、出力輝度値に特定の範囲を指定したクリップ処理を行って、適切な範囲となるように演算するようにしてもよい。
【００３２】
また、加算輝度値Ｙａｄｄは加算領域５０３の大きさに基づいて変化させてもよい。この場合、所定の基準面積を決め、基準面積に対して加算領域５０３の面積が大きいときは加算輝度値Ｙａｄｄが小さくなるようにし、小さいときは大きくなるようにする。
【００３３】
なお、以上では各画素の輝度値について演算するようにしたが、上記の処理を各画素の画素値について行ってもよい。こうすることで輝度だけではなく、画素の色に基づいても点光源のぼかし処理が行える。以下では、例として赤（Ｒ）緑（Ｇ）青（Ｂ）の三原色で構成されている各色成分の画素について演算する（画素値を変更する）場合について説明する。
【００３４】
ここでは上記と同様に点光源領域５０２の平均画素値や中心点画素値などを基にして基準となる加算画素値を算出する。加算領域５０３の内側の画素に対して加算係数を用いて加算していく。加算画素値をＲａｄｄ、Ｇａｄｄ、Ｂａｄｄ、加算係数をｋ、注目画素値をＲｏｒｇ、Ｇｏｒｇ、Ｂｏｒｇ、出力画素値をＲｏｕｔ、Ｇｏｕｔ、Ｂｏｕｔ、とすると、下記の式で出力画素値を算出できる。
Ｒｏｕｔ＝（１−ｋ）×Ｒｏｒｇ＋ｋ×Ｒａｄｄ        （式２）
Ｇｏｕｔ＝（１−ｋ）×Ｇｏｒｇ＋ｋ×Ｇａｄｄ        （式３）
Ｂｏｕｔ＝（１−ｋ）×Ｂｏｒｇ＋ｋ×Ｂａｄｄ        （式４）
【００３５】
出力輝度値の範囲を特定の範囲に限定すべき場合は、出力輝度値に特定の範囲を指定したクリップ処理を行って、適切な範囲となるように演算する。加算画素値Ｒａｄｄ、Ｇａｄｄ、Ｂａｄｄは加算領域５０３の大きさに基づいて変化させてもよい。この場合、所定の基準面積を決め、基準面積に対して加算領域５０３が広いときは加算画素値Ｒａｄｄ、Ｇａｄｄ、Ｂａｄｄが小さくなり、狭いときは大きくなるようにする。
【００３６】
次に以上の演算で用いた加算係数ｋの決定方法の例について図５（ｂ）、（ｃ）を用いて説明する。ここでは下記のような２次関数を用いて加算係数を決めている。加算係数をｋ、点光源の中心５０４からの距離をｒ、中心５０４から加算領域５０３の外周までの半径をＲ、ａとｂは任意の定数とする。ただしｋは０．０から１．０の間とする。
１．０＝ａ×Ｒ２＋ｂ        （式５）
１．０≧ｂ≧０．０        （式６）
ａ≧０．０        （式７）
これらを前提条件として加算係数ｋは下記の式で算出できる。
ｋ＝ａ×ｒ２＋ｂ        （式８）
【００３７】
なお、加算領域５０３の面積に基づいて加算係数ｋを変化させてもよい。この場合、加算領域５０３が広いときの中心部と周辺部の輝度差より、狭いときの輝度差を大きくする。その場合は、所定の基準面積Ｓｂａｓｅを決め、その基準面積でのｂをｂｂａｓｅとすると、上記前提条件に下記の式を加えることで実現できる。
ｂ＝ｂｂａｓｅ×Ｓ÷Ｓｂａｓｅ        （式９）
このときｂが１．０より大きくなった場合はｂが１．０になるようクリップ処理してもよい。
【００３８】
また、加算係数の決定方法は上記のような２次関数以外に基づき求めてもよい。加算係数ｋの決定方法は加算領域５０３の中心点５０４より周辺付近の係数の方が高くなっており、また線形に増加するのではなく図５（ｃ）に示すように下に凸な形で増加しているという特徴があれば他の方法でもよい。例えば、表示や印刷のためのガンマ補正の際に用いられるガンマを使って決定してもよいし、予め計算結果を用意したテーブルを作成して決定してもよい。この加算係数は上述した光の回折を考慮した特性に基づいた値となっている。ここでは加算領域を円形として記述したが、多角形など他の形状でもよい。この場合、上記での加算領域の半径Ｒは、加算領域の中心点から最も遠い加算領域内の位置になる。また円の中心点を加算係数の開始点としたが、加算領域の形や輝度分布などから開始点を変えてもよい。
【００３９】
また、点光源位置と加算領域の大きさによっては、複数の点光源に対する加算領域が重なり合う場合がある。そのとき上記のように出力画素値を算出し、出力画素値同士を比較して値の高い方を出力画素値として出力してもよい。または出力画素値の平均値を出力画素値としてもよい。
【００４０】
以上のようにして、画像データの輝度値を変更することによって、レンズを通して撮影した場合の点光源ぼかし処理をより忠実に再現することができる。
【００４１】
なお、以上の処理においてＳ２０１では、点光源と判断された画素が逐次検出される。このとき、Ｓ２０３でぼかす対象にする点光源領域は、周囲の画素が点光源であった場合は、ひとまとまりとして点光源領域として扱ってもよいし、検出された点光源の一画素ずつを別々の点光源領域として扱ってもよい。
【００４２】
また、以上のような処理（背景ぼかし）を行う際、主要な被写体にはピントが合った状態とする必要がある。即ち、特定のオブジェクト（主要な被写体）にはぼかしがかからないようにする必要がある。この場合、図６に示すように以下の手順で処理することでこれを容易にかつ精度良く実現することができる。
【００４３】
Ｓ６０１では、入力された画像データから被写体（ピントを合わせるべきオブジェクト）の抽出を行い、主要被写体と背景を分離する。ここで分離する方法は、ディスプレイ１０４で対象となる画像を表示させ、ＵＩ１０５を用いてユーザに領域を指定させるものとしてもよいし、自動的に被写体を特定して分離させるようにしてもよい。自動で分離させる場合、画像データに付加されている被写界深度などの撮影条件の情報などを用いて被写体を特定するようにしてもよい。なお、ユーザに領域を指定させる場合、図６のフローが開始される前の段階でユーザに指定させる。また、領域の指定に際してはユーザにラフに指定させ、指定された領域の近傍のエッジをＣＰＵ１００が検出するなどして、ＣＰＵ１００が最終的な領域を決定する半自動方式としてもよい。
【００４４】
主要被写体と背景が分離できたらＳ６０２に進み、背景と主要被写体とを区別するための背景マスクＤ６０１を作成する。ここで、背景マスクＤ６０１とは、処理対象の画像データからＳ６０１で抽出した主要被写体を除き（画像なしに置き換え）、背景のみとしたものである。そして、この背景マスクＤ６０１に対してＳ６０３〜６０５における処理を施す。Ｓ６０３〜６０５は前述のＳ２０１〜２０３と同様の処理を行う。このとき、背景マスクＤ６０１のうち背景に対応する領域の画素だけでＳ６０３以降の処理を行ってもよいし、全画素に対してＳ６０３の処理を行ってもよい。また、検出された点光源の位置と背景マスクＤ６０１とを比較して背景に対応する領域に対しＳ６０４以降の処理を行ってもよい。また、Ｓ６０５において、例えば加算領域５０３が主要被写体領域に重なっている場合は、重なっていないところだけ加算処理を行うようにしてもよい。また、主要被写体領域の画素は加算画素値を算出する対象から除くようにしてもよい。
【００４５】
そして、Ｓ６０５の処理が行われた後、抽出された主要被写体を戻すことによって、主要被写体にはピントが合った状態で、背景部分にはぼかし処理が施された画像を得ることができる。
【００４６】
以上のように本実施例では、光源領域をぼかすときに中心付近より周辺付近の方が輝度が高くなるように（明るい画像となるように）ぼかすことで、デジタル画像加工処理において実際のレンズで撮影したかのような風合いを再現することが可能となる。
【００４７】
＜実施例２＞
デジタルカメラ等によってレンズを用いて撮影した場合、画角の中心にピントを合わせ、上述のように背景をぼかすと、レンズの光学特性により画角の中心から離れるに従い、玉ボケの形状は扁平していく。実施例２では、実施例１における処理を行う際のぼかし領域の形状をレンズの光学特性を考慮し、その位置に応じた形状に変化させる場合の処理について述べる。
【００４８】
図７（ａ）は、処理対象の画像データの全域を示している。図７（ａ）では説明のために画像データが表す画像の中心に原点７０１、原点を通り垂直方向にｙ軸、水平方向にｘ軸をとっている。画像データが表す画像は、高さ（ｈｅｉｇｈｔ）と幅（ｗｉｄｔｈ）で表され、処理対象の画像データは、ｈｅｉｇｈｔ×ｗｉｄｔｈ個の画素で構成されているものとする。各画素は、
ｐ（ｘ，ｙ）｛ｘ｜−ｗｉｄｔｈ≦ｘ＜ｗｉｄｔｈ，ｙ｜−ｈｅｉｇｈｔ／２≦ｙ＜ｈｅｉｇｈｔ／２｝        （式１０）
で表される。本実施例では処理対象の画像データの画像はｈｅｉｇｈｔ＜ｗｉｄｔｈである横長の長方形となっているものを例に説明する。
【００４９】
また、図７（ａ）中の黒丸の点は、Ｓ２０１によって検出された点光源の画素を示す。図７（ａ）では、画像の中心にあるＰ０（０，０）７０１と、Ｐ１（ｘ，ｙ）７０２を含む複数点が点光源として検出された状態を示している。
【００５０】
そして、検出された点光源の位置が画像全体に対して原点からどれだけ離れているかによって、形状の異なる複数のボケマスクを使い分ける。即ち、原点に近いものは真円に近い形とし、原点から離れるに従って扁平させた楕円形状のボケマスクとする。ここで、ボケマスクとは図５で示した加算領域５０３に対応し、当該マスク内でぼかし処理を施し、点光源のボケ画像を得るための領域である。
【００５１】
Ｐ０（０，０）７０１のぼかし補正では、図７（ｂ）に示すボケマスク領域７０３を使用する。Ｐ０（０，０）７０１を中心に、大きさ２Ｒ０の補正領域が設定される。Ｐ０（０，０）７０１から半径Ｒ０の範囲内にある画素が補正対象となる。本実施例では、画像の中心位置のマスク領域７０３の形状は円形とする。Ｒ０は初期値として適当な値を指定することが可能であり、大きいほどボケの度合いが大きくなる。本実施例では、Ｒ０は、画像のｗｉｄｔｈの５％の固定値とする。Ｒ０は、ユーザの指定によって可変とするようにしてもよく、その際には、補正効果をユーザが選択できるという効果が出てくる。
【００５２】
原点から予め決められた距離離れた範囲にあるＰ１（ｘ，ｙ）７０２のぼかし補正は、図７（ｃ）に示すボケマスク領域７０４を使用する。図７（ｃ）で示されるボケマスク領域は、Ｐ１（ｘ，ｙ）７０２の座標に応じて変化する。その変化の制御を以下に説明する。ボケマスク領域７０４は、長辺Ｒ０、短辺Ｒ（ｘ，ｙ）、さらに角度θ°だけ回転した楕円形とする。ここで、Ｒ（ｘ，ｙ）との定義は以下の様にする。
Ｒ（ｘ，ｙ）＝Ｒ０×（ｗｉｄｔｈ−（ｌ／２））／ｗｉｄｔｈ（式１１）
ただし、ｌ＝（ｘ２＋ｙ２）１／２        （式１２）
θ：  中心点Ｐ０（０，０）７０１とＰ１（ｘ，ｙ）７０２とを結ぶ直線と、ｘ軸とのなす角度［°］
【００５３】
このようにして定義されるボケマスク領域の形状を図７（ｄ）に示す。加算領域を以上のように中心から離れるに従って扁平させる点以外は実施例１に示した処理を施す。図７（ｄ）に示されるように、中心に近づくほど円形に近いボケ効果が得られ、端部ほどより扁平した形状のボケ効果が得られるようになっている。即ち、点光源領域の画角内における位置に応じてぼかし処理を施す範囲を異ならせることによってレンズを通して撮影した画像の再現性が向上する。さらに扁平する方向が原点を中心に回転しており、よりレンズによる光学的特性に従った点光源のボケの状態を再現できるようになっている。
【００５４】
＜実施例３＞
実施例２では、点光源の座標によって、ボケマスク領域の扁平率と回転を制御する例について述べた。しかし、デジタルカメラ等によってレンズを通して実際に撮影された画像では、画像の端部に行くに従って、ボケ領域が大きくなる。これはレンズの中心から離れるに従ってボケの度合いが大きくなるためである。そこで、本実施例では実施例２のボケマスク領域の形状の制御に加え、端部に行くほどボケマスク領域のサイズを大きくする制御を加えることで、実施例２よりも、より実際にレンズを用いて撮影した際のボケ画像に近づく補正効果を得るものである。
【００５５】
以下では、実施例２との差分のみ説明する。その他の部分は実施例１、２と同じ処理が実行されるものとする。
【００５６】
実施例２では、図７（ｃ）において、楕円の短辺Ｒ（ｘ，ｙ）が座標ｐ（ｘ，ｙ）の関数となって変化し、長辺Ｒ０は固定であった。実施例３では、楕円の長編をＲ’（ｘ，ｙ）として、座標ｐ（ｘ，ｙ）の関数として求めることで、画像の端部ではボケマスク領域が拡大されるように制御する。このため、Ｒ’（ｘ，ｙ）を以下のように定義する。
Ｒ’（ｘ，ｙ）＝Ｒ０×ｃｏｓｈ（Ｚ）      （式１３）
ただし、Ｚ＝ｌ／（ｗｉｄｔｈ）×π／２，ｌ＝（ｘ２＋ｙ２）１／２        （式１４）
これにより、Ｒ’は、図８（ａ）に示すように下に凸の単調増加の曲線となり、画像の端部にいくほど値が大きくなる。
【００５７】
このようにして定義されるボケマスク領域の形状を図８（ｂ）に示す。図８（ｂ）に示されるように、中心では円形のボケ効果が得られ、端部ほど扁平した形状になるとともに、実施例２と同様に扁平する方向が原点を中心に回転する形状としながらも、端部ほどボケマスク領域が大きくなっている。これにより、実施例２よりさらにレンズの光学的な特性を考慮したボケの状態を再現できるようになる。
【００５８】
なお、Ｒ’を制御する関数に双曲線関数のｃｏｓｈ（）を使用したが、特にこの関数に限定するものではない。端部に行くにしたがって増加する特性を持った関数であればよい。
【００５９】
また、実施例３では、実施例２のボケマスク領域の形状の制御にサイズを変化させる制御を追加したが、形状を変化させずにサイズ（面積）を変化させる制御のみでボケマスク領域を決定してもよい。
【００６０】
＜実施例４＞
以上の実施例において、点光源の検出（Ｓ２０１、Ｓ６０３）を、注目画素の輝度値が周辺画素の輝度値よりも所定閾値よりも高いものを抽出することによって行うことを示した。即ち、周辺に比べて周辺に比べて突出して明るい画素（画素群）を点光源として検出することを示した。しかしながら、デジタルカメラ等で実際に撮影される画像は種々の撮影状態が存在し得て、点光源はその撮影状態に応じてその特徴が異なることがある。本実施例では、点光源の検出の精度を上げるための方法について述べる。
【００６１】
画像の撮影状態は、様々な条件が考えられる。例えば、夜景撮影の場合と晴天の昼光下における撮影の場合とでは、点光源の明るさに違いが出てくることがある。また、曇天の時に露出不足の状態で撮影した画像などは、全体的に低い輝度値となる。
【００６２】
本実施例ではこのような状況を考慮し、処理対象の画像の特徴を解析し、その結果により当該画像の撮影状態を推定し、その結果に基づき点光源の検出の際のパラメータを変更したり、さらに点光源候補の領域の形状や大きさも考慮するものである。なお、画像の特徴の解析結果から撮影状態を推定するものであり、処理対象の画像は実際にその状態で撮影されたものとは限らないし、そもそも撮影によって得られた画像とも限らない。
【００６３】
図９は、本実施例における点光源検出処理（Ｓ２０１、Ｓ６０３）の流れを示すフローチャートである。
【００６４】
Ｓ９０１では、処理対象の入力画像データＩｉｎ（ｘ，ｙ）（各画素ＲＧＢ成分で構成されたカラー画像）を所定サイズにリサイズし、リサイズ後の画像データＩｒｅ（ｘ，ｙ）を得る。ここでｘ，ｙは画像上での座標位置を示す。入力される画像データのサイズ（画像データが表す画像の縦横サイズの組合せ）が複数存在する場合、後続の処理において点光源の大きさを判断する時などに、元画像のサイズを考慮した判定をする必要がある。従ってここでは、いずれのサイズの画像データが入力されても予め決められたサイズにリサイズすることで、以降の処理における制御パラメータを統一化できるようにする。リサイズに際しては画素の補間、または画素の間引きを行う。リサイズ後のサイズについては特に限定するものではないが、例えば、１６００×１２００画素など画素数を基準に統一されたサイズにリサイズする。ただし、ここでリサイズを行わずに、入力された画像データをそのまま用いて後段の処理に移るようにしてもよいし、リサイズさせる場合はリサイズ後のサイズを常に同一とする必要もない。また、リサイズを縮小する処理（間引き）に限定し、処理対象の画像データの量を減らし、負荷軽減を図るようにしてもよい。以下では処理対象の画像データを所定のサイズにリサイズを行った場合について述べる。処理対象の画像データは１画素につき多値の画像データである。
【００６５】
Ｓ９０２では、リサイズされた処理対象の画像データに対して適応的２値化処理を行う。図１０はＳ９０２における処理の詳細を示すフローチャートである。
【００６６】
Ｓ１００１では、入力されたカラー画像データに対して、画素単位で輝度・色差変換を行う。輝度・色差成分については種々のものを採用可能であるが、ここでは、ＹＣｂＣｒ成分に変換するものとし、変換後の画像をＩｒｅｙ（ｘ，ｙ）とする。ここでの変換は公知の変換方式を採用可能である。
【００６７】
Ｓ１００２では、Ｉｒｅｙ（ｘ，ｙ）におけるＹ（輝度）成分のヒストグラムを算出する。図１１は、Ｓ１００２で算出したヒストグラムの例であり、横軸は輝度値Ｙ、縦軸は度数（画素数）を示している。
【００６８】
次にＳ１００３において、ハイライトポイントの算出を行う。ハイライトポイントとは、ヒストグラムの累積度数割合が予め決められた割合（例えば９７．０％）となる高輝度ポイントであり、図１１においてＨＬＹで示した箇所である。また処理対象の画像データにおける最大輝度値は図中ＭａｘＹで示した箇所である。ここでハイライトポイントを求めるのは、度数分布における上位および下位の数パーセントの領域はノイズである可能性が高いという統計学上の考えを適用したものである。そのため、ここではＭａｘＹではなく、ＨＬＹを基準として後述の点光源閾値を決定する。これにより画像中、ノイズの可能性のある最高輝度の画素の影響を排除して適切な点光源抽出を行う。
【００６９】
そしてＳ１００４において、Ｉｒｅｙ（ｘ，ｙ）上の画素単位で順次２値化処理を行う。図１２は、Ｓ１００４における２値化処理の詳細を示すフローチャートである。まずＳ１２０１において、重みＷを決定する。後続の２値化処理において、２値化を行う際に０とするか１とするかを決めるための輝度閾値ＴｈＹは、重みＷとＨＬＹとを用いて、以下のように決定する。
ＴｈＹ＝ＨＬＹ×Ｗ        （式１５）
【００７０】
Ｓ１２０１で決定される重みは、本実施例においては予め決められた所定値とし、例えば０．９などの値とする。重みＷが決定されたら、Ｓ１２０２〜１２０３において、Ｉｒｅｙ（ｘ，ｙ）の各画素に対して以下の条件に従って２値化処理を行い、２値化済み画像データＩｒｅｂ（ｘ，ｙ）を生成する。
Ｉｒｅｙ（ｘ，ｙ）のＹ成分≧ＴｈＹのときＩｒｅｂ（ｘ，ｙ）＝１，Ｉｒｅｙ（ｘ，ｙ）のＹ成分＜ＴｈＹのときＩｒｅｂ（ｘ，ｙ）＝０      （式１６）
【００７１】
このようにして生成された２値化済み画像データＩｒｅｂ（ｘ，ｙ）を、図１３に示す。図１３において、１３０１〜１３０４は輝度が高い画素群である領域（ハイライト領域）として抽出された領域群である。ここでは図に示すように様々な大きさや形状の領域が含まれているものとする。
【００７２】
処理は図９に戻り、Ｓ９０３において、２値化済み画像データＩｒｅｂ（ｘ，ｙ）上に存在する領域（１３０１〜１３０４）のクラスタリングを行う。領域のクラスタリング手法については特に限定するものではなく、ラベリング処理等の公知の方法を用いればよい。ここでは、演算量が少なく、かつ領域の大きさや形状把握が容易に行える境界線追跡法を用いて説明する。
【００７３】
図１４は境界線追跡法によるクラスタリングを説明するための図である。図１４（ａ）において、１４０１は２値化済み画像データＩｒｅｂ（ｘ，ｙ）の一部を示している。本実施例の境界線追跡法では、まず２値化済み画像データを左上から右下に向かって順次走査していき、Ｉｒｅｂ（ｘ，ｙ）の値が１である画素で一時停止する。その後、領域の境界に存在する画素を反時計回り（時計回りでもよい）に順次探索してゆき、一時停止した画像まで戻ったら、１つの領域の探索が終了する。この１つの領域の境界を追跡する間に、領域の最大最小座標位置（Ｘｍｉｎ，Ｘｍａｘ，Ｙｍｉｎ，Ｙｍａｘ）や周辺長Ｌａｒｒを算出する。最大最小座標位置が得られれば、領域の中心位置（Ｃｘ，Ｃｙ）は以下のように求めることができる。
Ｃｘ＝（Ｘｍａｘ＋Ｘｍｉｎ）／２，Ｃｙ＝（Ｙｍａｘ＋Ｙｍｉｎ）／２      （式１７）
【００７４】
一つの領域についての探索が終了すると、ＣＰＵ１００は探索の結果を示す情報をＲＡＭ１０２に記憶し、次の領域の探索を行うために、再び水平方向に走査を開始する。図１４（ｂ）は、本処理の結果得られた情報が、領域探索順に割り当てられたＩＤと対応付けられて記憶されている様子を示している。ここでは記号で示しているが実際には数値によって座標や長さが記憶される。
【００７５】
そしてＳ９０４では、図１４（ｂ）に示す領域ＩＤと領域座標情報などのクラスタリング情報を用いて点光源の抽出（特定）を行う。図１５はＳ９０４において点光源の抽出（点光源の位置を特定）する処理の流れを示すフローチャートである。
【００７６】
まず、ＩＤ＝０の領域に対してＳ１５０１において、当該領域のサイズが適切か判定する。この判定は以下の式に従って行う。
（ＸｍａｘＩＤ−ＸｍｉｎＩＤ）≦ＴｈＳｉｚｅかつ（ＹｍａｘＩＤ−ＹｍｉｎＩＤ）≦ＴｈＳｉｚｅ      （式１８）
上式において、ＴｈＳｉｚｅは点光源の大きさの上限を示す所定の閾値であり、予め決められているものとする。
【００７７】
上式を満たすと判定された場合、Ｓ１５０２に進み、当該領域の周辺長の長さが適切か（点光源となり得る長さであるか）判定する。この判定は、以下の式に従って。
ａｂｓ（ＬａｒｒＩＤ−ＬｒｅｃｔＩＤ×Ｋ）≦ＴｈＡｒｒＬ    （式１９）
上記において、ａｂｓ（  ）は絶対値を求める関数であり、ＬｒｅｃｔＩＤおよびＫは以下の式によって求める。
ＬｒｅｃｔＩＤ＝（（ＸｍａｘＩＤ−ＸｍｉｎＩＤ）＋（ＹｍａｘＩＤ−ＹｍｉｎＩＤ））×２        （式２０）
Ｋ＝π／４＝０．７８５      （式２１）
【００７８】
上式において、ＬｒｅｃｔＩＤは注目領域を取り囲む矩形の周辺長であって、このＬｒｅｃｔＩＤに上記Ｋを乗じることにより、矩形内に隣接する円、または楕円の周辺長を近似的に求めることができる。この周辺長と、実際に境界線追跡処理において計測した周辺長ＬａｒｒＩＤとの絶対差が、所定の閾値ＴｈＡｒｒＬより大きい場合、点光源候補の領域の形状が、円または楕円ではなく、もっと複雑な形状をしている可能性が高い。従って当該領域は点光源リストから除外する。
【００７９】
以上のような処理によりＳ１５０２において周辺長が適切であると判定された領域については、Ｓ１５０３に移り、当該領域の密度についての判定を行う。
【００８０】
Ｓ１５０３では、座標（Ｘｍｉｎ，Ｙｍｉｎ）−（Ｘｍａｘ，Ｙｍａｘ）で表される矩形領域に対して、Ｉｒｅｂ（ｘ，ｙ）上で１となっている画素の数をカウントする。該カウント値をＮｕｍＩＤとすると、Ｓ１５０３における密度判定は以下の式に従って行われる。
ａｂｓ（ＮｕｍＩＤ―Ｓｉｄ）≦ＴｈＮｕｍ      （式２２）
上式において、Ｓｉｄは矩形領域の面積であり、以下の式で求められる。
Ｓｉｄ＝（ＸｍａｘＩＤ−ＸｍｉｎＩＤ）×（ＹｍａｘＩＤ−ＹｍｉｎＩＤ）        （式２３）
【００８１】
式２２において、ＴｈＮｕｍは予め決められた所定の閾値であり、矩形の面積と画素密度を比較して、ＴｈＮｕｍ以上の差があれば、それは円形領域ではなく別の形状である可能性が高いため、点光源リストから除外する。
【００８２】
そして、Ｓ１５０４で最後の領域と判断されるまでＳ１５０５で領域ＩＤのインクリメントを行い、以上説明したＳ１５０１〜１５０３の処理を、全ての点光源候補領域に対して適用する。これにより、図１３において、点光源としては大きすぎる領域１３０２、形状が複雑な領域１３０３、密度が低い（形がいびつ過ぎる）領域１３０４を点光源から除外する。そうすることで、図１３のような点光源候補の中から点光源候補として確からしい領域１３０１のみを抽出（特定）することが可能となる。
【００８３】
そして、図２のＳ２０２または図６のＳ６０４のぼかし処理が行われた後、ここで抽出された点光源領域１３０１の座標リストは、図２のＳ２０３または図６のＳ６０５の点光源ぼかし処理に入力され、上述のような点光源加工処理が行われる。それ以外の処理については、前述の実施例と同様の処理を行えばよい。ただし、Ｓ９０１におけるリサイズを行った場合は、元の画像サイズに戻すための処理を行ってからＳ２０２またはＳ６０４以降の処理を、あるいはリサイズされた状態でＳ２０２またはＳ６０４以降の処理を行ってから最後に元の画像サイズに戻す。
【００８４】
本実施例によれば、処理対象の画像データの輝度分布に従って点光源候補と認識するための輝度レベルを変更して点光源領域を特定する。即ち、処理対象の画像データの特徴に応じて点光源領域の特定基準を変更するので、処理対象の画像の撮影状態等に従って適切に点光源を検出可能となる。また、点光源候補の領域の中から、その領域の形状や大きさに基づき点光源領域を特定するので、点光源領域の特定の精度を上げることができる。なお、輝度分布に従って点光源候補を特定する処理または点光源領域の形状や大きさに基づく特定する処理のいずれかのみを行っても十分な効果は期待できる。
【００８５】
＜実施例５＞
例えば、夜景の画像を処理対象とする場合、様々な色の照明が点光源となり得る。こういった種々の光源を点光源として抽出する際、点光源候補としてリストアップする際の２値化閾値を実施例４のように固定閾値とすると輝度の高い黄色近辺の点光源だけが抽出され、青系色の近辺は抽出されにくくなる。そこで、本実施例では種々の色の点光源を適切に抽出（特定）できるように実施例４の適応的２値化処理を行う際の閾値を各画素の色によって変動させるものとする。
【００８６】
図１６（ａ）は、色相と輝度値の関係を示す図である。同図において、横軸は色相を示し、０度付近が赤、そこから黄色、緑、青と変化することを示している。また、同図において縦軸は輝度値Ｙである。図１６（ａ）に示すように、輝度値は黄色近辺が最も高く、青近辺が最も低い値となる。本実施例ではこの関係を考慮して適応的２値化処理の際の閾値を色毎に決定する。即ち、図１６（ｂ）に示すように図１６（ａ）の色相と輝度値の関係に従って色毎に重みＷを変動させ、注目画素が示す色毎に実施例４における閾値に図１６（ｂ）に従った重みＷを乗じた値を２値化の閾値として２値化を行う。図１６（ｂ）に示す色相と重みＷの関係を示す値はテーブルとしてＨＤ１０３に記憶しておく。このテーブル化の際の色相の刻み間隔は処理対象の画像の階調等により適宜決定するようにしたり、固定の間隔としたりする。重みＷは、図１６（ｂ）に示すように、黄色近辺で大きく、青色近辺では小さくなるように設定されており、元々存在するそれぞれの色における輝度差を吸収し、両者を同様に点光源として抽出可能としている。
【００８７】
図１７は、本実施例における適応的２値化処理における２値化処理の流れを示すフローチャートである。このフローチャートは図１０のＳ１００４において行われる処理を示す。
【００８８】
Ｓ１７０１では、処理対象の画像データの今回の処理対象である注目画素Ｉｒｅ（ｘ，ｙ）の色相を算出する。この算出は公知の演算式を用いればよい。そしてＳ１７０２では、注目画素の色相に応じた重みＷを図１６（ｂ）に対応するテーブルを参照し、参照結果に基づき決定する。
【００８９】
そしてＳ１７０３において式１６で示した式に従い２値化処理を行う。そして処理対象の全ての画素について２値化処理を行うまでＳ１７０１〜１７０３の処理を行う。これ以外の処理は実施例４において説明した通りなのでここでの説明は省略する。
【００９０】
以上のように、本実施例によれば、様々な色の点光源が存在する夜景のような画像においても適切に点光源を特定することが可能となる。
【００９１】
＜実施例６＞
デジタルカメラ等で撮影された画像には、様々な環境下での撮影による画像が存在し得る。例えば、晴天の昼光下で撮影された風景、ネオンライトが煌めく夜景、曇天の下で露出不足の状態で撮影された画像などである。このように種々の撮影環境下において点光源の特徴が異なることがあり、実施例４のように固定閾値に従って２値化処理すると適切に点光源を特定できないことがある。
【００９２】
本実施例では、実施例４の適応的２値化処理において、このような種々の撮影環境下に対応した画像について、その特徴に応じて２値化の際の閾値を変動させることにより、適切に点光源を特定することができるようにするものである。本実施例では、図９のＳ９０２の処理を行う際に、処理対象の画像の撮影シーンを判定し、その結果に従って２値化処理の際の閾値が変動するように重みＷを決定する。
【００９３】
図１８（ａ）は晴天の昼光下で撮影された画像の典型的サンプルの輝度ヒストグラムを、図１８（ｂ）は夜景シーンで撮影された画像の典型的サンプルの輝度ヒストグラムを示している。これらのヒストグラムでも実施例４と同様に、累積度数割合が所定の割合（例えば９７．０％）となる位置を、ＨＬＹとしている。このＨＬＹを基軸として点光源を抽出する際に、昼光下においては撮影時の光量が十分であるため、画像のコントラストも適正である確率が高く、検出したＨＬＹをそのまま閾値として利用してもよい。一方、図１８（ｂ）に示すような夜景シーンの場合、固定割合で特定したＨＬＹを閾値とすると、本来抽出したい点光源閾値ＨＬＹ＿２に対してＨＬＹの位置の輝度値が高く、実際に画像中に存在する点光源の一部しか抽出できていない可能性がある。このような状況を鑑みると、点光源を抽出するための２値化閾値は、撮影シーンの種類に応じて適応的に制御した方が、より適切な点光源抽出処理が可能となる。従って、本実施例ではこれらの撮影シーン毎の輝度分布に従って図１８（ｃ）に示すように重みＷを異ならせる。ここでは撮影シーンを３種類に分類したものを例示する。これらの重みＷは撮影シーンと対応付けられてＨＤ１０３に記憶される。また、これらの重みＷは以下の関係を満たす。
風景＞夜景＞露出不足      （式２４）
なお、ここでは撮影シーンとして３パターンを例示したが、これらに限らず種々の撮影シーンを採用することが可能である。
【００９４】
図１９は、本実施例における適応的２値化処理における２値化処理の流れを示すフローチャートである。このフローチャートは図１０のＳ１００４において行われる処理を示す。
【００９５】
まず、Ｓ１９０１において処理対象の画像の撮影シーンの情報を取得する。ここで取得される撮影シーンは入力される画像データに付随している撮影情報を用いてもよいし、画像の特徴量の解析によって推定するものでもよい。前者の場合、例えばＥｘｉｆ（Ｅｘｃｈａｎｇｅａｂｌｅ  Ｉｍａｇｅ  Ｆｉｌｅ  Ｆｏｒｍａｔ）の規格に準拠した画像ファイルであれば、デジタルカメラ等で撮影した際の撮影情報をタグとして画像ファイルに書き込むことが可能である。従って、その情報を画像ファイルから読み出して取得すればよい。後者の場合、例えば、特開２０１１−１０１６２号公報、特開２０１０−２７３１４４号公報、特開２０１０−２５１９９９号公報に記載されている方法を用いればよい。即ち、撮影シーンの推定を行うために、処理対象の画像から複数種類の特徴量を算出して特徴量ベクトルを形成する。そしてこの特徴量ベクトルを、予め各種シーン毎に学習して保持しているデータベースと比較し、入力画像がどのようなシーンで撮影されたものかを推定するものである。なお、Ｓ１９０１では撮影シーンの推定ができれば十分なので、実際のヒストグラムの作成は省略しても構わない。
【００９６】
Ｓ１９０２では取得した撮影シーンに応じて重みＷを決定し、Ｓ１９０３でその重みＷを用いて式１６で示した式に従って２値化処理を行う。そして、Ｓ１９０４で最終画素と判断されるまで順次全画素について２値化処理を行う。
【００９７】
以上のように、本実施例によれば、撮影シーンに基づく画像の特徴に応じて閾値を設定して点光源の検出を行うので、撮影シーンに応じた適切な検出が可能となる。また、このとき、撮影シーンの特定によって閾値が決定されるので、処理負荷はあまり高くならない。
【００９８】
なお、以上の例では撮影シーンに応じた点光源抽出のためのパラメータ制御の例として重みＷを変化させるものを示したが、他の方法も採用可能である。例えば、ＨＬＹとする累積度数割合を撮影シーン毎に調整することによって、それを閾値とすることによっても同等の効果が得られる。また、これら以外の方法としてもよい。
【００９９】
＜実施例７＞
実施例６では処理対象の画像の撮影シーンの情報を特定することによって、それを点光源の検出の際のパラメータに反映させる例を説明した。デジタルカメラ等の撮影においては、撮影感度（ＩＳＯ感度）を変更して撮影することができる。ＩＳＯ感度は５０〜数万までの値を取る可能性があり、その値が高いほどセンサ感度が高い状態で撮影されたことを意味する。撮影感度が高い状態であった場合、少しの光量においても輝度値としては非常に高い値となるため、点光源検出のための２値化の閾値は高くすべきである。また、撮影感度が低い状態であった場合、全体の光量が低下した状態と等価になるため、２値化閾値は低く設定すべきである。
【０１００】
従って、本実施例では、処理対象の画像がデジタルカメラ等で撮影された画像である場合、当該画像の撮影時のＩＳＯ感度の情報を取得し、それに従って点光源検出のための適応的２値化処理の際の閾値を変更するものである。これにより、点光源を適切に検出可能とする。
【０１０１】
図２０は、本実施例における適応的２値化処理における２値化処理の流れを示すフローチャートである。このフローチャートは図１０のＳ１００４において行われる処理を示す。
【０１０２】
Ｓ２００１では、処理対象の画像データから撮影情報を取得する。処理対象の画像データがＥｘｉｆの規格に準拠したものであれば、タグとして撮影感度情報としてＩＳＯＳｐｅｅｄＲａｔｅが書き込まれているものがある。ここではこの値を取得する。
【０１０３】
次にＳ２００２において、取得したＩＳＯ感度に応じた重みＷを決定するが、本実施例による重みは以下のように決定する。
【０１０４】
図２１は、ＩＳＯ感度（ＩＳＯＳｐｅｅｄＲａｔｅ）の値とそれに対応する重みＷの関係を示す図である。図に示すように、ＩＳＯ感度が所定値ＴｈＳＲ０より低い場合には、ＩＳＯ感度が大きくなるにつれて重みＷも増加し、ＴｈＳＲ０の時点でＷ＝１．０となる。この関係を示すデータをテーブル化してＨＤ１０３に記憶しておく。そして、Ｓ２００２では、Ｓ２００１で取得した撮影情報に対応する重みＷを、上記テーブルを参照することにより決定する。そしてＳ２００３では、その重みＷを用いて式１６で示した式に従って２値化処理を行う。そして、Ｓ２００４で最終画素と判断されるまで順次全画素について２値化処理を行う。
【０１０５】
以上のように、本実施例によれば、処理対象の画像の撮影時の撮影感度に応じて適切に点光源の検出を行うことが可能となる。また、この場合、処理対象の画像ファイルに付随する情報を用いるので処理負荷は高くならない。
【０１０６】
なお、以上の例では撮影感度に応じた点光源抽出のためのパラメータ制御の例として重みＷを変化させるものを示したが、他の方法も採用可能である。例えば、ＨＬＹとする累積度数割合を撮影感度に応じて調整することによって、それを閾値とすることによっても同等の効果が得られる。また、これら以外の方法としてもよい。
【０１０７】
＜実施例８＞
デジタルカメラ等の撮影においては、センサに届く光量を調節するために、絞りを手動、あるいは自動で調整することがある。この絞りの度合いはＦ値として表される。
【０１０８】
このＦ値は値が小さいほど絞りが開放状態になっていることを示しており、その場合、撮影画像はいわゆる被写界深度が浅い状態となる。被写界深度が浅い状態であると、撮影時の主要被写体のみ合焦状態となり、背景はぼけることになるため、点光源も絞りの形状に応じて大きくぼけた状態となる。逆にＦ値が大きいと、撮影画像はいわゆる被写界深度が深い状態となる。被写界深度が深いと、撮影時の主要被写体から背景に至る広範囲に渡って合焦状態となっているため、背景の点光源は小さいままとなる。
【０１０９】
そこで、本実施例では背景の点光源のサイズが撮影時の絞りの状態によって変化することを考慮し、図１５のＳ１５０１におけるサイズの判定に反映させる。本実施例では、Ｓ１５０１で点光源候補とするためのサイズの閾値ＴｈＳｉｚｅを、Ｆ値に応じて変更する。
【０１１０】
図２２は、Ｆ値とサイズ閾値ＴｈＳｉｚｅとの関係を示す図である。Ｆ値がＴｈＦ０より小さいとき、すなわち、被写界深度が浅い場合には、閾値を大きくし、Ｆ値が増加するにつれて閾値が減少するような関係となっている。Ｆ値が所定値ＴｈＦ０より大きいときには、被写界深度は十分深いため、閾値は一定値となるようにしている。
【０１１１】
なお、実施例６、７で述べたようにＥｘｉｆの規格に準拠した画像データにはタグとしてＦ値が書き込まれるものがある。従って処理対象の画像データに付随しているＦ値を参照することによって特定されたＦ値に従ってサイズ閾値ＴｈＳｉｚｅを特定し、図１５の処理を実行する。
【０１１２】
このように、Ｆ値を参照して画像の被写界深度を推定し、背景に存在する点光源のサイズに適応的に対応することで、被写界深度の状態が変化したとしても、適切な点光源の特定が可能となる。
【０１１３】
なお、以上述べてきた実施例の処理は適宜複合させたり、一部変更させたりしてもよい。また、以上の実施例は、ＰＣによる処理だけでなく、デジタルカメラやプリンタによって処理させるようにしてもよい。この場合、デジタルカメラやプリンタが画像処理装置として機能することになる。また、プリンタにおいて処理する際、上記したような処理が施された画像を被記録媒体上にプリントすることが可能となるが、以上の処理を濃度データに変換した後の画像データに対して行うようにしてもよい。
【０１１４】
以上述べてきたような実施例により、適切に点光源を特定し、特定された点光源のぼかし処理を適切に行うことができる。
【０１１５】
また、本実施形態は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。また、プログラムは、１つのコンピュータで実行させても、複数のコンピュータを連動させて実行させるようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、一部または全部をハードウェアによって実現するようにしてもよい。
【図１】
0005864936.tif 000002
【図２】
0005864936.tif 000003
【図３】
0005864936.tif 000004
【図４】
0005864936.tif 000005
【図５】
0005864936.tif 000006
【図６】
0005864936.tif 000007
【図７】
0005864936.tif 000008
【図８】
0005864936.tif 000009
【図９】
0005864936.tif 000010
【図１０】
0005864936.tif 000011
【図１１】
0005864936.tif 000012
【図１２】
0005864936.tif 000013
【図１３】
0005864936.tif 000014
【図１４】
0005864936.tif 000015
【図１５】
0005864936.tif 000016
【図１６】
0005864936.tif 000017
【図１７】
0005864936.tif 000018
【図１８】
0005864936.tif 000019
【図１９】
0005864936.tif 000020
【図２０】
0005864936.tif 000021
【図２１】
0005864936.tif 000022
【図２２】
0005864936.tif 000023