(57)【要約】【課題】  被写体のレイアウトに応じて画像を補正処理する。【解決手段】  画像中の被写体の画像領域を検出し(S202)、検出した画像領域に基づき、画像の被写体のレイアウトを判定する(S203)。そして、被写体のレイアウトに基づき、検出した画像領域に対する重み付けパターンを決定し(S206)、重み付けパターンに従い、第一の補正処理(S204)後の画像と、第二の補正処理(S207)後の画像を合成する(S208)。【選択図】  図2
2008147978.tif 000002
【特許請求の範囲】
【請求項１】
画像中の被写体の画像領域を検出する検出手段と、
前記検出手段が検出した画像領域に基づき、前記画像の被写体のレイアウトを判定する判定手段と、
前記判定手段が判定した被写体のレイアウトに基づき、前記検出手段が検出した画像領域に対する重み付けパターンを決定する決定手段と、
前記画像に第一の補正処理を施す第一の補正手段と、
前記第一の補正処理前の画像に、前記第一の補正処理とは異なる第二の補正処理を施す第二の補正手段と、
前記決定手段が決定した重み付けパターンに従い、前記第一の補正処理後の画像と、前記第二の補正処理後の画像を合成する合成手段とを有することを特徴とする画像処理装置。
【請求項２】
画像中の被写体の画像領域を検出する検出手段と、
前記検出手段が検出した画像領域に基づき、前記画像の被写体のレイアウトを判定する判定手段と、
前記判定手段が判定した被写体のレイアウトに基づき、前記画像に対する重み付けパターンを決定するパターン決定手段と、
前記画像に施す第一の補正処理と、前記第一の補正処理とは異なる第二の補正処理を決定する処理決定手段と、
前記決定手段が決定した重み付けパターンに従い、前記第一および第二の補正処理を合成した補正処理を前記画像に施す補正手段とを有することを特徴とする画像処理装置。
【請求項３】
前記第二の補正処理は、前記第一の補正処理に比べて画像の明るさを抑えた補正処理であることを特徴とする請求項1または請求項2に記載された画像処理装置。
【請求項４】
前記検出手段が検出する画像領域の被写体には空、海、地面の何れかが含まれることを特徴とする請求項1から請求項3の何れか一項に記載された画像処理装置。
【請求項５】
前記検出手段は、前記画像の主要な被写体が人か否かを判定し、前記主要な被写体が人ではないと判定した場合に、前記画像領域の検出を行うことを特徴とする請求項1から請求項4の何れか一項に記載された画像処理装置。
【請求項６】
画像中の被写体の画像領域を検出し、
前記検出した画像領域に基づき、前記画像の被写体のレイアウトを判定し、
前記判定した被写体のレイアウトに基づき、前記検出した画像領域に対する重み付けパターンを決定し、
前記画像に第一の補正処理を施し、
前記第一の補正処理前の画像に、前記第一の補正処理とは異なる第二の補正処理を施し、
前記決定した重み付けパターンに従い、前記第一の補正処理後の画像と、前記第二の補正処理後の画像を合成することを特徴とする画像処理方法。
【請求項７】
画像中の被写体の画像領域を検出し、
前記検出した画像領域に基づき、前記画像の被写体のレイアウトを判定し、
前記判定した被写体のレイアウトに基づき、前記検出した画像領域に対する重み付けパターンを決定し、
前記画像に施す第一の補正処理と、前記第一の補正処理とは異なる第二の補正処理を決定し、
前記決定した重み付けパターンに従い、前記第一および第二の補正処理を合成した補正処理を前記画像に施すことを特徴とする画像処理方法。
【請求項８】
画像処理装置を制御して、請求項6または請求項7に記載された画像処理を実行することを特徴とするコンピュータプログラム。
【請求項９】
請求項8に記載されたコンピュータプログラムが記録されたことを特徴とするコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディジタル画像の画像処理に関する。
【背景技術】
【０００２】
近年、ディジタルカメラ（以下、単にカメラと呼ぶ）が普及し、所謂エンドユーザがカラー画像を扱う機会が増えた。しかし、これらユーザが必ずしもカメラに通熟しているわけではないから、カメラで撮影したすべての撮影結果が良好とは限らない。勿論、撮影直後に、カメラに付属する液晶ディスプレイ(LCD)で撮影画像を確認し、撮影に失敗したことに気付いた場合は撮影し直すことも考えられる。だが、撮影画像を確認しない場合や、カメラにLCDが付属せず撮影画像を確認できない場合もあり得る。また、一瞬のシャッタチャンスを狙った場合は、そもそも撮影し直すことができない。
【０００３】
そのため、自動または半自動で画像を補正する方法が提案されている。例えば、撮影画像中の全画素またはサンプル画素から画像の特徴量を算出し、その特徴量によって良好な画像か否かを判定する。そして、良好ではないと判定した画像（例えば、暗すぎる、明るすぎる、色かぶりした画像等）は、その特徴量に応じて画像の各画素値を変換し、良好な画像を得る。
【０００４】
さらに、例えば特開2005-295490公報は、被写体として、どのようなものが写っているかを識別し、識別した被写体に応じて補正処理の強度や処理内容を切り替える発明を開示する。
【０００５】
【特許文献１】特開2005-295490公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、被写体のレイアウトに応じて画像を補正処理することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【０００８】
本発明にかかる画像処理装置は、画像中の被写体の画像領域を検出する検出手段と、前記検出手段が検出した画像領域に基づき、前記画像の被写体のレイアウトを判定する判定手段と、前記判定手段が判定した被写体のレイアウトに基づき、前記検出手段が検出した画像領域に対する重み付けパターンを決定する決定手段と、前記画像に第一の補正処理を施す第一の補正手段と、前記第一の補正処理前の画像に、前記第一の補正処理とは異なる第二の補正処理を施す第二の補正手段と、前記決定手段が決定した重み付けパターンに従い、前記第一の補正処理後の画像と、前記第二の補正処理後の画像を合成する合成手段とを有することを特徴とする。
【０００９】
また、画像中の被写体の画像領域を検出する検出手段と、前記検出手段が検出した画像領域に基づき、前記画像の被写体のレイアウトを判定する判定手段と、前記判定手段が判定した被写体のレイアウトに基づき、前記画像に対する重み付けパターンを決定するパターン決定手段と、前記画像に施す第一の補正処理と、前記第一の補正処理とは異なる第二の補正処理を決定する処理決定手段と、前記決定手段が決定した重み付けパターンに従い、前記第一および第二の補正処理を合成した補正処理を前記画像に施す補正手段とを有することを特徴とする。
【００１０】
本発明にかかる画像処理方法は、画像中の被写体の画像領域を検出し、前記検出した画像領域に基づき、前記画像の被写体のレイアウトを判定し、前記判定した被写体のレイアウトに基づき、前記画像に対する重み付けパターンを決定し、前記画像に第一の補正処理を施し、前記第一の補正処理前の画像に、前記第一の補正処理とは異なる第二の補正処理を施し、前記決定した重み付けパターンに従い、前記第一の補正処理後の画像と、前記第二の補正処理後の画像を合成することを特徴とする。
【００１１】
また、画像中の被写体の画像領域を検出し、前記検出した画像領域に基づき、前記画像の被写体のレイアウトを判定し、前記判定した被写体のレイアウトに基づき、前記検出した画像領域に対する重み付けパターンを決定し、前記画像に施す第一の補正処理と、前記第一の補正処理とは異なる第二の補正処理を決定し、前記決定した重み付けパターンに従い、前記第一および第二の補正処理を合成した補正処理を前記画像に施すことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、被写体のレイアウトに応じて画像を補正処理することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明にかかる実施例の画像処理を図面を参照して詳細に説明する。
【実施例１】
【００１４】
［装置の構成］
図1は実施例の画像処理装置の構成例を示すブロック図である。
【００１５】
CPU 104は、RAM 106をワークメモリとして、ROM 105やデータ保存部102に格納されたプログラムやデータに従い、システムバス109を介して、後述する構成を制御して、後述する画像処理を含む様々な処理を実行する。なお、CPU 104は、ROM 105やデータ保存部102に格納されたプログラムを、一旦、RAM 106に読み込んで、実行する。
【００１６】
入力部101は、ユーザの指示や、様々なデータを入力する。入力部101は、キーボードやポインティングデバイスを含む。ポインティングデバイスとしては、マウス、トラックボール、トラックパッド、タブレットなどが挙げられる。あるいは、本実施例を公知のディジタルカメラに適用する場合、入力部101はボタンやモードダイヤルなどであってもよい。勿論、キーボードをソフトウェアで構成（ソフトウェアキーボード）し、ボタンやモードダイヤルまたは先に挙げたポインティングデバイスを操作して、文字や数字を入力するように、入力部101を構成してもよい。
【００１７】
データ保存部102は、主に画像データを保持し、通常、ハードディスク、フレキシブルディスク、光ディスク、メモリカード、USBメモリなど、画像処理装置に着脱可能な記憶メディアで構成される。データ保存部102は、画像データのほか、プログラムやその他のデータを保存可能である。なお、後述する画像処理の際に生成する中間的な画像（輝度成分画像）などを格納するのに、RAM 106の記憶容量が不足する場合、中間的な画像の格納にデータ保存部102を利用してもよい。
【００１８】
通信部107は、機器間の通信を行うインタフェイス(I/F)である。通信部107による通信は、例えばネットワーク、シリアルバス（USBやIEEE1394）、電話回線を介する有線通信でもよい。また、赤外線(IrDA)、IEEE802.11a/b/g、Bluetooth、UWB (Ultra Wide Band)などの無線通信でもよい。
【００１９】
表示部103は、画像処理前後の画像を表示するとともに、グラフィカルユーザインタフェイス(GUI)などを表示する。表示部103は、一般に、CRTやLCDなどを用いる。勿論、所定のインタフェイスとケーブルを介して画像処理装置に接続されたディスプレイ装置でも構わない。
【００２０】
なお、図1には入力部101、データ保存部102、表示部103がすべて一つの装置に含まれるような構成例を示した。しかし、入力部101、データ保存部102、表示部103が公知の通信方式による通信路で接続され、全体として図1に示す構成となっても構わない。
【００２１】
［画像処理］
図2は実施例の画像処理の流れを示すフローチャートで、CPU 104が実行する処理である。
【００２２】
CPU 104は、まず画像を読み込む(S201)。画像は、データ保存部102に所定フォーマットのデータとして格納されている。あるいは、通信部107を介し、画像入力デバイスやサーバ装置から画像を受信してもよい。
【００２３】
次に、CPU 104は、読み込んだ画像の被写体を検出し(S202)、被写体の検出結果に応じて画像のレイアウトを判定する(S203)。
【００２４】
次に、CPU 104は、第一の補正処理を決定する(S204)。第一の補正処理の決定は、画像を自動的に補正する処理であれば任意のものでよい。例えば、特開平11-317873号公報に開示された自動画像補正処理を行い、補正結果の画像をRAM 106などの所定領域に格納する。
【００２５】
次に、CPU 104は、合成補正処理を行うか否かを判定する(S205)。これは、ステップS203のレイアウトの判定結果を参照して、レイアウトが判定されていれば処理をステップS206に進めて合成補正処理を行う。また、レイアウトが判定されなかった場合（ステップS202で被写体を検出できなかった場合を含む）は、処理をステップS209に進めて合成補正処理をパススルーする。
【００２６】
合成補正処理を行う場合、CPU 104は、ステップS202の被写体の検出結果と、ステップS203のレイアウトの判定結果から実際の重み付けパターンを決定する(S206)。
【００２７】
次に、CPU 104は、第二の補正処理を行う(S207)。補正結果の画像は、RAM 106などの、第一の補正処理の結果の画像とは異なる領域に格納する。
【００２８】
第二の補正処理は、第一の補正処理に比べて、画像を暗く補正する自動補正処理であれば任意のものでよい。例えば、第一の補正処理と同様に特開平11-317873号公報で開示された自動補正処理を用いて、第二の補正処理の結果、画像の輝度値または信号値が5〜10%程度減じるように補正する。言い換えれば、第二の補正処理の結果、画像の信号値または輝度値は90〜95%程度になる。このように、RAM 106などに格納された第一の補正処理の結果の画像に対して、画像の信号値または輝度値を90〜95%程度に調整して、RAM 106に格納する。この場合、第二の補正処理において、画像解析などの処理を省略することができる。
【００２９】
あるいは、特開平11-317873号公報に開示された自動補正処理において、ヒストグラム伸張や明るさ補正のパラメータを変更し、第一の補正処理に比べて、画像が暗くなるような処理を第二の補正処理としてもよい。
【００３０】
次に、CPU 104は、ステップS206で決定した重み付けパターンを参照して、第一の補正結果の画像と第二の補正結果の画像を合成する(S208)。
【００３１】
そして、CPU 104は、画像処理後の画像を出力する(S209)。画像の出力は、例えば、データ保存部102に所定フォーマットに従い格納したり、通信部107を介して他の画像処理装置やサーバ装置に送信することである。あるいは、一旦、表示部103に処理結果の画像を表示し、入力部101を介してユーザ指示を受け取り、ユーザ指示に従いデータ保存部102へ保存したり、通信部107を介して他の画像処理装置やサーバ装置へ送信してもよい。
【００３２】
●被写体の検出(S202)
図3は被写体を判定する処理を説明するフローチャートである。
【００３３】
まず、CPU 104は、画像を領域分割する(S701)。つまり、画像の各画素の色やエッジ成分、または、周波数成分の特性などに応じて、画像を幾つかの領域に分割する。この領域分割手法は公知のもので構わない。公知の領域分割手法としては、画像のエッジを利用した方法、領域拡張法、Watershed法、あるいは、特開2001-43371公報に開示されたクラスタリング法などがある。
【００３４】
勿論、領域分割する画像は、原画像である入力画像そのものではなく、原画像を縮小した画像を領域分割して、分割結果の領域の座標を原画像の座標に変換してもよい。
【００３５】
図4は領域分割前の画像例を示し、図5は領域分割後の画像例を示す。図4と図5を参照すると、領域分割の結果、空に対応する領域601、樹木の緑に対応する領域602、砂浜に対応する領域603、海に対応する領域604に四分割されていることがわかる。以下、領域601から604をそれぞれ空領域601、緑領域602、砂浜領域603、海領域604と呼ぶ。
【００３６】
なお、領域分割方法によっては、例えば空領域601が、さらに幾つかの領域に分割される過分割状態になる場合がある。その場合、領域分割の後処理として領域の統合処理を行い、空領域601を得るようにする。領域の統合処理は、近い色をもち、空間的に隣接した領域を同一領域とすることで実現可能である。あるいは、空間的に隣接する領域間の境界の色や輝度の変化を調べ、変化が僅か（言い換えればエッジがない）場合はそれら領域を統合すればよい。
【００３７】
次に、CPU 104は、分割領域それぞれの代表色を決定する(S702)。つまり、分割領域それぞれの原画像または縮小画像の画素値を調べて、当該領域の代表色に決定する。例えば、領域の平均的な色を代表色にすればよい。つまり、原画像または縮小画像の画素値を分割領域ごとに集計して平均値を求める。あるいは、領域分割において、領域の平均色を用いた場合は、それを参照してもよい。
【００３８】
次に、CPU 104は、領域601〜604から被写体領域を検出する(S703)。ここでは、予め定めた被写体領域を検出する。検出する領域として、空（青空、夕空、夜空など）、地面の土、海などは領域の色やその配置から容易に判定可能である。例えば、青空は、(i)予め定めた青空の色範囲に、領域の代表色が入るか否か、(ii)空の位置から、画像の上端や左右端に接した領域か否かにより判定可能である。なお、青空の色範囲は、実験的に適切な色範囲を予め決定しておく。同様に、地面の土、海などは色による判定と、画像の下方に領域があるか否かで判定可能である。
【００３９】
あるいは、空、海、地面などをテクスチャとして認識した場合、比較的均一なテクスチャとして認識される。従って、領域内部の均一さを与えるような尺度を用いて、空、海、地面などの判定精度を向上することも考えられる。領域内部の均一さを与える尺度には、例えば、領域内の色の分散、領域内のエッジ成分の大小、または、領域の画素値の周波数分布などが挙げられる。
【００４０】
このような判定を行えば、図5に示す領域601は空の領域、領域604は海の領域と判定される。ただし、緑領域602と砂浜領域603は、明瞭な判定はできず、空でも海でもないその他の領域と判定される可能性がある。
【００４１】
次に、CPU 104は、ステップS703で検出した被写体領域の範囲を決定し、被写体領域を抽出する(S704)。図6は領域の範囲を説明する図である。図6は、画像の左上を原点とし、X方向は0〜W-1、Y方向は0〜H-1の座標系をとる。なお、WとHはそれぞれ画像の幅の画素数、画像の高さの画素数である。
【００４２】
図6に示すように、左上が(0, 0)、右下が(W-1, H0)の矩形範囲（以下、(0, 0)-(W-1, H0)と記述する）は空領域601である。同様に、(0, H0)-(W-1, H1)は空領域601と他の領域602、(0, H1)-(W-1, H2)は他の領域602と603。(0, H2)-(W-1, H3)は他の領域603と海領域604。(0, H3)-(W-1, H-1)は海領域604である。
(0, 0)-(W-1, H0) ：空領域601
(0, H0)-(W-1, H1) ：空領域601＋その他の領域602
(0, H1)-(W-1, H2) ：その他の領域602＋603
(0, H2)-(W-1, H3) ：その他の領域603＋海領域604
(0, H3)-(W-1, H-1)：海領域604
【００４３】
これらの情報から、他の領域との重複がない領域を最終的な被写体領域として抽出する。従って、図6に示す例では、(0, 0)-(W-1, H0)の空領域601と、(0, H3)-(W-1, H-1)の海領域604が抽出される。
【００４４】
被写体の検出(S202)は、抽出領域の数、抽出領域の範囲、抽出領域の被写体の情報を、被写体の検出結果として出力する。なお、被写体領域の検出(S703)において、被写体領域が一つも検出されなかった場合、被写体領域がない旨を示す情報（例えば抽出領域の数=0）を出力する。
【００４５】
●レイアウトの判定(S203)
レイアウトの判定は、予め幾つかのレイアウトパターンを用意して、ステップS202で検出した領域の情報に一致するか否かを判定する。また、各レイアウトパターンに重み付けパターンを関連付けておき、一致したレイアウトパターンの重み付けパターンを選択する。
【００４６】
図7はレイアウトパターンの一例を説明する図である。なお、図7(A)から(E)は、便宜的に全体が正方形のレイアウトを示している。つまり、図7(A)から(E)において、レイアウト全体の縦と横の長さ、および、正方形内の部分領域901〜907の縦と横の長さ、あるいは、縦横比に特別な意味があるわけではない。
【００４７】
図7(A)は、画像の上方に空領域901が、下方に地面や海領域902があるレイアウトパターンを表す。図7(B)は、画像の上方に空領域903があるレイアウトパターンを表す。図7(C)は、画像の左右上方に空領域904、905があるレイアウトパターンを表す。図7(D)は、画像の右上に空領域906があるレイアウトパターンを表す。図7(E)は、画像の左上に空領域907があるレイアウトパターンを表す。
【００４８】
また、各部分領域のグラデーションは重み付けパターンを表し、白い領域は重み付け係数が1.0、黒い領域は重み付け係数が0.0である。白から黒に向かう中間領域は、重み付け係数が1.0から0.0に徐々に低下する領域である。例えば、図7(A)の部分領域901は、上端の重み付け係数が0.0、下端の重み付け係数が1.0であり、中間領域は位置に応じた中間値（0.0超1.0未満）を有する。同様に、部分領域902は、上端の重み付け係数が1.0、下端が重み付け係数が0.0であり、中間領域は位置に応じた中間値を有する。また、部分領域901と902に挟まれた部分領域の重み付け係数は1.0である。
【００４９】
中間領域の重み付け係数の設定方法は様々なものが考えられる。図8は重み付け係数の設定方法の一例を示す図である。
【００５０】
図8において直線1001は、中間領域の位置に応じて、重み付け係数を線形に0.0から1.0に変化させる例である。また、曲線1002や1003は、中間領域の位置に応じて、重み付け係数を非線形に0.0から1.0に変化させる例を示している。重み係数を非線形に変化させる場合、予め位置に関する多次元関数を定めて、多次元関数によって重み係数を計算すればよい。重み付け係数の設定方法は、0.0から1.0へ連続的に変化させることができれば、任意の方法でよい。
【００５１】
以下では、直線1001のように、中間領域の位置に応じて重み付け係数を線形に定めるとして説明を行う。
【００５２】
実施例1では、図7に示す五つのレイアウトパターンから、ステップS202で検出した領域の情報に一致するレイアウトパターンを選択する。
【００５３】
図6の例では、ステップS202の被写体の検出により、(0, 0)-(W-1, H0)の空領域601と(0, H3)-(W-1, H-1)の海領域604が検出される。従って、図7に示す五つのレイアウトパターンのうち、図7(A)のレイアウトパターンに一致する。もし、海領域604が検出できず、空領域601だけが検出できた場合は、図7(B)のレイアウトパターンが選択される。勿論、すべての画像について、図7に示す五つのレイアウトパターンのどれかに一致しなければならないというわけではなく、一致するレイアウトパターンなしという判定結果もある。
【００５４】
ステップS203の判定結果の出力は、例えば図7に示すレイアウトパターンに0〜4の識別番号を割り当てて、識別番号を出力する。もし、一致するレイアウトパターンなしの場合は、識別番号0〜4に重複しない特別な数値（例えば-1など）を出力すればよい。
【００５５】
また、ステップS202で被写体が検出できなかった場合、ステップS203の判定結果の出力は、一致するレイアウトパターンなしに相当する出力になる。
【００５６】
●重み付けパターンの決定(S206)
図9は重み付けパターンを説明する図である。
【００５７】
図6の例では、ステップS202の被写体の検出により、(0, 0)-(W-1, H0)の空領域601と(0, H3)-(W-1, H-1)の海領域604が検出され、ステップS203で選択されたレイアウトパターン（図7(A)）が選択される。
【００５８】
従って、図9に示す空領域601の上端は重み付け係数0.0、下端は重み付け係数1.0、中間領域は位置（この場合、垂直方向の位置）に応じて線形に重み付け係数を決定する。同様に、海領域604の上端は重み付け係数1.0、下端は重み付け係数0.0、中間領域は位置（この場合、垂直方向の位置）に応じて線形に重み付け係数を決定する。そして、残りの領域、つまり(0, H0)-(W-1, H3)の領域の重み付け係数1.0にする。
【００５９】
このようにして決定した重み付け係数のパターン（重み付けパターン）は、例えばRAM 106の所定領域に記憶され、後の合成処理(S208)で参照される。
【００６０】
●合成処理(S208)
第一の補正処理結果の画素値と第二の補正処理結果の画素値を合成した結果は次式で表される。
Pm(x, y) = w(x, y)×P1(x, y) + {1.0 - w(x, y)}×P2(x, y)      …(1)
ここで、(x, y)は画素の座標、
Pm(x, y)は合成結果の画素値{rm(x,y), gm(x,y), bm(x,y)}、
P1(x, y)は第一の補正処理結果の画素値{r1(x,y), g1(x,y), b1(x,y)}、
P2(x, y)は第二の補正処理結果の画素値{r2(x,y), g2(x,y), b2(x,y)}、
w(x, y)は重み付け係数（0.0〜1.0）
【００６１】
つまり、各色成分の合成結果は次式で表される。
rm(x,y) = w(x, y)×r1(x, y) + {1.0 - w(x, y)}×r2(x, y)
gm(x,y) = w(x, y)×g1(x, y) + {1.0 - w(x, y)}×g2(x, y)      …(2)
bm(x,y) = w(x, y)×b1(x, y) + {1.0 - w(x, y)}×b2(x, y)
【００６２】
上記の計算を各画素について実行し、その合成結果を出力する。
【００６３】
なお、実施例1では、被写体を検出して処理を行うように構成したが、例えば、この他にシーンを判定する構成を設け、晴天の屋外の画像についてのみ上記の処理を行うようにしてもよい。シーン判定は、該当する被写体が写っているシーン、例えば空、海、地面などを判定できるものであれば任意の方法で構わない。
【００６４】
さらに、顔検出や人物検出と組み合わせて、画像の主要被写体が人物と判定した場合は上記の画像処理を行わず、画像の主要被写体が人物以外と判定した場合に上記の画像処理を実行するようにしてもよい。主要被写体が人物か否かの判断は、画像の中に占める人物画像の割合と閾値を比較して人物画像の占有率が大きい場合に、人物が主要被写体と判定する。
【００６５】
このように、画像の領域を検出して画像のレイアウトを判定して、被写体のレイアウトに応じて二つの異なる補正処理の結果を合成することができる。そして、第一の補正処理によって明るく補正した画像と、第二の補正処理によって、第一の補正処理よりも明るさを抑えた画像を判定したレイアウトに応じた重み付けパターンに従い合成することで、奥行感がある好適な補正結果を得ることができる。
【実施例２】
【００６６】
以下、本発明にかかる実施例2の画像処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００６７】
実施例1では、被写体の検出を行うのに画素の色などに注目して画像領域を分割する手法を用いたが、被写体の検出方法は、これに限られるものではない。被写体の検出処理は、画像に写っているものと、その概略の位置がわかるものであれば、任意の方法を採用することができる。
【００６８】
実施例2では、画像をブロック領域に分割し、各ブロックの代表色を決定して、ブロックの代表色と配置から各ブロックが属する領域を決定する方法を説明する。
【００６９】
図10は画像をブロック領域に分割した様子を示す図である。CPU 104は、まず、図10に示す各ブロックの代表色を決定する。そして、隣接するブロックの代表色を調べて、代表色が同一または類似するブロック同士を同じ画像領域として結合する。
【００７０】
図11はブロックの結合結果の一例を示す図である。CPU 104は、ブロックの結合が終了すると、ブロックの結合体である各画像領域について、例えば、空領域は画像の上部にある、肌色領域は画像の中央近辺にある、などの判定条件により、各画像領域の被写体が何かを判定する。図11において、例えば、ラベルS1を付加されたブロックの集合体の代表色は青空の色の青色、ラベルG1が付加されたブロックの集合体の代表色は緑色、ラベルS2が付加されたブロックの集合体の代表色は海の青色である。従って、図11の画像領域は、例えば、空領域401、緑領域402、海領域403に分割される。
【００７１】
このように、各ブロックの代表色を調べることで、実施例1の被写体の検出処理(S202)を実現することができる。ただし、実施例1の方法に比べて精度は劣るが、被写体の検出処理を簡素化できるという利点があり、CPU 104の処理能力があまり高くない場合に有効である。
【実施例３】
【００７２】
以下、本発明にかかる実施例3の画像処理を説明する。なお、実施例3において、実施例1、2と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００７３】
実施例1、2では、一旦、第一の補正処理結果の画像をRAM 106などに格納し、合成処理を行う場合は第二の補正結果の画像を生成してRAM 106などに格納し、その後、二つの画像を合成した。実施例3では、予めこれらの画像を生成しない例を説明する。
【００７４】
図12は実施例3の画像処理の流れを示すフローチャートで、CPU 104が実行する処理である。
【００７５】
CPU 104は、ステップS201からS203において、実施例1と同様の処理を行った後、第一の補正処理の補正内容（変換パラメータなど）を決定する(S1101)。実施例3の第一の補正処理は実施例1と同様の処理であるが、実施例3では、実際に画像に第一の補正処理を適用せず、第一の補正処理の補正内容を決定するだけである。
【００７６】
次に、CPU 104は、ステップS205で合成補正処理を行うと判定した場合は、重み付けパターンの決定(S206)後、第二の補正処理を決定する(S1102)。やはり、実際に画像に第二の補正処理を適用せず、第二の補正処理の補正内容を決定するだけである。
【００７７】
画像の補正処理は、入力画像信号に対して出力画像信号が一意に決定し、その変換内容を一次元または三次元のルックアップテーブル(LUT)として記述することが可能な場合がある。このような場合、CPU 104は、第一、第二の補正処理に対応する補正LUTを作成し、それらをRAM 106の所定領域に記憶する。
【００７８】
次に、CPU 104は、第一、第二の補正処理に対応する補正LUTを参照して、補正対象の画像の注目画素の画素値に対応する第一の補正処理結果の画素値と、第二の補正処理結果の画素値を計算する。そして、重み付けパターンに従い、第一の補正処理結果の画素値と、第二の補正処理結果の画素値を合成する合成補正を画像の全画素に施す(S1103)。
【００７９】
また、ステップS205で合成補正処理を行わないと判定した場合は、第一の補正処理に対応する補正LUTを参照して、補正対象の画像の注目画素の画素値に対応する第一の補正処理結果の画素値を計算する処理を画像の全画素に施す(S1104)。
【００８０】
このように、第一、第二の補正処理の補正内容に相当する補正LUTをRAM 106などに記憶するようにして、画像を出力する直前に、第一の補正処理または合成補正処理を画像に適用する。従って、予め第一、第二の補正処理結果の画像を作成し、RAM 106などの格納する必要がなくなり、補正処理結果の画像を記憶するメモリ領域を削減することができる。
【実施例４】
【００８１】
以下、本発明にかかる実施例4の画像処理を説明する。なお、実施例4において、実施例1〜3と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００８２】
実施例1〜3では、第一の補正処理結果の画像と第二の補正処理結果の画像を、重み付けパターンに従い合成した。しかし、第二の補正処理結果の画像は、第一の補正処理結果の画像に、予め定められた演算（例えば、信号値または輝度を90〜95%にする演算など）を施して得られるものであればよい。従って、第二の補正処理結果の画像または第二の補正処理に対応する補正LUTを作成せず、合成補正処理において同様の結果が得られるようにすることができる。
【００８３】
図13は実施例4の画像処理の流れを示すフローチャートで、CPU 104が実行する処理である。ステップS1301以外は、図12に示した処理と同様である。
【００８４】
CPU 104は、重み付けパターンを参照して、第一の補正処理に相当する補正LUTと、第二の補正処理を合成した合成補正処理を設定する（式(3)）。そして、画像に合成補正処理を施す(S1301)。
Pmod(x, y) = w(x, y)×P1(x, y) + {1.0 - w(x, y)}×k×P1(x, y)
= [w(x, y) + k×{1.0 - w(x, y)}]×P1(x, y)      …(3)
ここで、(x, y)は画素の座標、
Pmod(x, y)は調整補正結果の画素値{rmod(x,y), gmod(x,y), bmod(x,y)}、
P1(x, y)は第一の補正処理結果の画素値{r1(x,y), g1(x,y), b1(x,y)}、
w(x, y)は重み付け係数（0.0〜1.0）、
kは信号値またはは輝度値に乗じる係数（例えば0.9〜0.95）
【００８５】
このように、第二の補正処理結果の画像が、第一の補正処理結果の画像に、予め定められた演算（例えば、信号値または輝度を90〜95%にする演算など）を施して得られる場合に、第二の補正処理（または決定）を省略することができる。
【実施例５】
【００８６】
以下、本発明にかかる実施例5の画像処理を説明する。なお、実施例5において、実施例1〜4と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００８７】
実施例1〜4では、画像処理を自動的に行う例を説明した。実施例4では、ユーザと対話的に画像処理を行う場合を説明する。
【００８８】
CPU 104は、ユーザ指示に応じて補正処理する画像を選択する。画像の選択方法は任意であるが、公知のダイアログボックス表示などを行い、データ保存部102に格納された画像一覧をユーザに提示し、画像一覧からユーザが補正処理する画像を選択するように構成する。
【００８９】
図14は実施例5のユーザインタフェイス(UI)の一例を示す図で、CPU 104が表示部103に表示するUIである。
【００９０】
図14において、画像表示領域1501には、ユーザが選択した補正処理する画像や補正処理結果の画像を表示する。矩形表示1502、1503は、ステップS202で検出した画像領域を表し、原画像に重畳する破線として示される。
【００９１】
領域1504は、中間領域の重み付け係数の設定方法を表す直線や曲線の表示領域で、図8に示したような直線や曲線を表示する。領域1505の中に表示するアイコンは、重み付け係数の傾きを表す。ユーザは、当該アイコンを選択することで、重み付け係数の傾きを設定することができる。
【００９２】
スライダバー1506は、第二の補正処理のパラメータ（例えばk=0.8〜1.0）を表示し、ユーザが入力するためのUIである。適用ボタン1512は、補正処理の適用を指示するためのボタンである。出力ボタン1513は、処理結果の画像の出力を指示するためのボタンである。
【００９３】
ユーザは、入力部101のキーボードやポインティグデバイスを操作して、マウスカーソル1511で選択した矩形表示1502、1503のサイズや位置を調整することができる。勿論、領域1504の直線や曲線の操作、領域1505のアイコンの選択、スライダバー1506のスライダの操作を行うことができる。CPU 104は、ユーザの操作をユーザ指示として入力する。
【００９４】
ユーザが、適用ボタン1512を押すと、CPU 104は、図14のUIに提示された設定に応じて、原画像に補正処理を施す。また、ユーザが、出力ボタン1513を押すと、CPU 104は、補正処理結果の画像を、データ保存部102に所定フォーマットで保存する、あるいは、通信部107を介して他の装置へ出力する処理を行う。
【００９５】
図14は、ユーザがマウスカーソル1511を矩形表示1502上に移動して、マウスボタンを押すなどして矩形表示1502を選択した様子を表している。そのため、矩形表示1502の破線は、矩形表示1503の破線よりも強調され、太破線になっている。また、領域1505の上段中央のアイコンが強調表示されている。
【００９６】
CPU 104は、例えば実施例1の図2に示す処理に沿って、自動的に補正処理を行う。ただし、画像出力処理(S209)は、画像を出力するのではなく、画像を表示部103のUIの画像表示領域1501に表示する。同時に、被写体の検出結果を矩形表示1502、1503のように表示し、第二の補正処理のパラメータ値に対応する位置にスライダバー1506のスライダを表示する。
【００９７】
図14に一例を示すように、ユーザが矩形表示1502を選択すると、CPU 104は、矩形表示1502に対応する領域の重み付けパターンの重み係数の傾きを領域1505のアイコンとして表示し、中間領域の重み係数の設定方法を領域1504に表示する。勿論、ユーザが矩形表示1503を選択した場合は、当該領域の重み付けパターンの重み係数の傾きと中間領域の重み係数の設定方法を表示する。
【００９８】
ユーザは、必要に応じて、矩形表示1502、1503のサイズや位置を調整する。また、領域1504の直線や曲線を操作する中間領域の重み係数の設定方法の調整、領域1505のアイコンを選択する重み付けパターンの調整、スライダバー1506のスライダを操作するk値の調整を行う。その後、ユーザは、適用ボタン1512を押して、補正処理の実行を指示する。
【００９９】
CPU 104は、ユーザから補正処理の実行指示を受けると、被写体の検出(S202)、レイアウトの判定(S203)、重み付けパターンの決定(S206)を行わずに、補正処理を実行し、補正処理結果の画像を画像表示領域1501に表示する。その際、UIに設定された領域、中間領域の重み係数の設定方法、重み付けパターン、k値に従い補正処理を実行する。
【０１００】
ユーザは、補正処理結果の画像に満足した場合、出力ボタン1513を押して、補正処理結果の画像の出力を指示する。
【０１０１】
CPU 104は、画像出力を指示されると、補正処理結果の画像を、データ保存部102に保存する、あるいは、通信部107を介して他の装置に出力する。
【０１０２】
また、図14には示さないが、好ましくは、領域の追加や削除指示を行えるようにUIを構成する。これは、領域の追加や削除を指示するボタンまたはメニューの追加により実現可能である。また、上記では適用ボタン1512を押す指示をトリガとして、補正処理を行う例を示したが、ユーザによるUIの操作可能な要素（1502〜1506）の変更をトリガとして補正処理を行ってもよい。その場合、適用ボタン1512は省略可能である。
【０１０３】
このように、自動処理による補正処理を参照して、ユーザが補正処理を変更可能なUIを提供することで、ユーザの負荷を軽減し、容易に好ましい補正処理結果の画像が得られる利点がある。
【０１０４】
［他の実施例］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０１０５】
また、本発明の目的は、上記実施例の機能を実現するソフトウェアを記録した記憶媒体（記録媒体）をシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ（CPUやMPU）が前記ソフトウェアを実行することでも達成される。この場合、記憶媒体から読み出されたソフトウェア自体が上記実施例の機能を実現することになり、そのソフトウェアを記憶した記憶媒体は本発明を構成する。
【０１０６】
また、前記ソフトウェアの実行により上記機能が実現されるだけでなく、そのソフトウェアの指示により、コンピュータ上で稼働するオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【０１０７】
また、前記ソフトウェアがコンピュータに接続された機能拡張カードやユニットのメモリに書き込まれ、そのソフトウェアの指示により、前記カードやユニットのCPUなどが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【０１０８】
本発明を前記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するソフトウェアが格納される。
【図面の簡単な説明】
【０１０９】
【図１】実施例の画像処理装置の構成例を示すブロック図、
【図２】実施例の画像処理の流れを示すフローチャート、
【図３】被写体を判定する処理を説明するフローチャート、
【図４】領域分割前の画像例を示す図、
【図５】領域分割後の画像例を示す図、
【図６】領域の範囲を説明する図、
【図７】レイアウトパターンの一例を説明する図、
【図８】重み付け係数の設定方法の一例を示す図、
【図９】重み付けパターンを説明する図、
【図１０】画像をブロック領域に分割した様子を示す図、
【図１１】ブロックの結合結果の一例を示す図、
【図１２】実施例3の画像処理の流れを示すフローチャート、
【図１３】実施例4の画像処理の流れを示すフローチャート、
【図１４】実施例5のユーザインタフェイス(UI)の一例を示す図である。
【図１】
2008147978.tif 000003
【図２】
2008147978.tif 000004
【図３】
2008147978.tif 000005
【図８】
2008147978.tif 000006
【図１１】
2008147978.tif 000007
【図１２】
2008147978.tif 000008
【図１３】
2008147978.tif 000009
【図４】
2008147978.tif 000010
【図５】
2008147978.tif 000011
【図６】
2008147978.tif 000012
【図７】
2008147978.tif 000013
【図９】
2008147978.tif 000014
【図１０】
2008147978.tif 000015
【図１４】
2008147978.tif 000016