(57)【要約】【課題】画像に適した補正を行う。【解決手段】  画像処理装置は、対象画像から顔領域を特定する顔特定部と、対象画像から顔領域が特定される場合に顔領域内の複数の画素のそれぞれの色値に基づいて第１パラメータを決定する第１パラメータ決定部と、第１パラメータを用いて画素の色を補正する第１補正処理を実行することによって対象画像の複数の画素のそれぞれの色を補正する第１補正部であって、第１パラメータは対象画像の複数の画素に共通に用いられる、第１補正部と、対象画像から顔領域が特定されない場合に、対象画像の複数の画素にそれぞれ対応する複数の第２パラメータを決定する第２パラメータ決定部と、複数の第２パラメータを用いて複数の画素のそれぞれの色を補正する第２補正処理を実行する第２補正部と、を備える。【選択図】  図１
2019169772.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置であって、
対象画像データを取得する取得部と、
対象画像データによって示される対象画像であって、複数の画素で構成される前記対象画像から顔領域を特定する顔特定部と、
前記対象画像から前記顔領域が特定される場合に、前記顔領域内の複数の画素のそれぞれの色値に基づいて第１パラメータを決定する第１パラメータ決定部と、
前記第１パラメータを用いて画素の色を補正する第１補正処理を実行することによって前記対象画像の複数の画素のそれぞれの色を補正する第１補正部であって、前記第１パラメータは前記対象画像の前記複数の画素に共通に用いられる、前記第１補正部と、
前記対象画像から前記顔領域が特定されない場合に、前記対象画像の前記複数の画素にそれぞれ対応する複数の第２パラメータを決定する第２パラメータ決定部と、
前記複数の第２パラメータを用いて前記対象画像の前記複数の画素のそれぞれの色を補正する第２補正処理を実行する第２補正部と、
補正済の画像データを出力する出力部と、
を備える、画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記第２パラメータ決定部は、
前記対象画像の画素密度を低減して得られる縮小画像を示す縮小画像データを用いて、前記縮小画像の複数の画素にそれぞれ対応する複数の第２パラメータを決定し、
前記縮小画像の前記複数の複数の画素のうちの少なくとも一部の複数の画素のそれぞれの前記第２パラメータを補間することによって、前記対象画像の画素の前記第２パラメータを決定する、
画像処理装置。
【請求項３】
請求項２に記載の画像処理装置であって、
前記第１パラメータ決定部は、前記縮小画像データを用いずに、前記対象画像データを分析することによって、前記第１パラメータを決定する、
画像処理装置。
【請求項４】
請求項１から３のいずれかに記載の画像処理装置であって、
前記第２補正処理は、画素の輝度を補正する処理であり、
前記第２パラメータは、輝度を増大させる処理と輝度を低減させる処理とのいずれを実行すべきかを決定するための輝度の閾値である、
画像処理装置。
【請求項５】
請求項１から４のいずれかに記載の画像処理装置であって、
前記第１パラメータは、輝度の補正に用いられるパラメータである輝度パラメータと、彩度の補正に用いられるパラメータである彩度パラメータと、を含み、
前記第１補正処理は、前記輝度パラメータを用いて画素の輝度を補正する輝度補正処理と、前記彩度パラメータを用いて画素の彩度を補正する彩度補正処理と、を含み、
前記第１パラメータ決定部は、前記第１補正処理によって前記顔領域の画素の色が目標色に近づくように、前記輝度パラメータと前記彩度パラメータとを決定する、
画像処理装置。
【請求項６】
請求項５に記載の画像処理装置であって、
前記輝度補正処理は、ガンマ補正処理であり、
前記輝度パラメータは、前記ガンマ補正処理に用いられるガンマ値を含む、
画像処理装置。
【請求項７】
請求項５または６に記載の画像処理装置であって、
前記彩度補正処理は、補正前の彩度の一次関数によって補正済の彩度を決定する処理であり、
前記彩度パラメータは、前記一次関数の傾きと切片とを含む、
画像処理装置。
【請求項８】
請求項１から７のいずれかに記載の画像処理装置であって、
前記顔特定部は、
予め決められた方法で前記顔領域の候補領域を特定し、
前記候補領域内の特定の領域の色が特定の色範囲内である場合に、前記特定の領域を前記顔領域として特定する、
画像処理装置。
【請求項９】
画像処理のためのコンピュータプログラムであって、
対象画像データを取得する取得機能と、
対象画像データによって示される対象画像であって、複数の画素で構成される前記対象画像から顔領域を特定する顔特定機能と、
前記対象画像から前記顔領域が特定される場合に、前記顔領域内の複数の画素のそれぞれの色値に基づいて第１パラメータを決定する第１パラメータ決定機能と、
前記第１パラメータを用いて画素の色を補正する第１補正処理を実行することによって前記対象画像の複数の画素のそれぞれの色を補正する第１補正機能であって、前記第１パラメータは前記対象画像の前記複数の画素に共通に用いられる、前記第１補正機能と、
前記対象画像から前記顔領域が特定されない場合に、前記対象画像の前記複数の画素にそれぞれ対応する複数の第２パラメータを決定する第２パラメータ決定機能と、
前記複数の第２パラメータを用いて前記対象画像の前記複数の画素のそれぞれの色を補正する第２補正処理を実行する第２補正機能と、
補正済の画像データを出力する出力機能と、
をコンピュータに実現させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、画像を補正する技術に関する。
【背景技術】
【０００２】
従来から画像を補正する処理が行われている。例えば、画像の明るさに関する成分のヒストグラムから画像の明るさの度合いを判別し、判別の結果に基づいて補正の程度を定め、定められた補正の程度に従い明るさに関する成分を補正する技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−１８９８６１号公報
【特許文献２】国際公開第２００７／０７２９０７号
【特許文献３】特開２００７−２１３４５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、画像は、種々の領域を含み得る（例えば、顔を表す顔領域等）。画像に適した補正は、画像に含まれる領域に応じて異なり得る。ここで、画像に適した補正を行う技術が求められていた。
【０００５】
本明細書は、画像に適した補正を行う技術を開示する。
【課題を解決するための手段】
【０００６】
本明細書は、例えば、以下の適用例を開示する。
【０００７】
［適用例１］画像処理装置であって、対象画像データを取得する取得部と、対象画像データによって示される対象画像であって、複数の画素で構成される前記対象画像から顔領域を特定する顔特定部と、前記対象画像から前記顔領域が特定される場合に、前記顔領域内の複数の画素のそれぞれの色値に基づいて第１パラメータを決定する第１パラメータ決定部と、前記第１パラメータを用いて画素の色を補正する第１補正処理を実行することによって前記対象画像の複数の画素のそれぞれの色を補正する第１補正部であって、前記第１パラメータは前記対象画像の前記複数の画素に共通に用いられる、前記第１補正部と、前記対象画像から前記顔領域が特定されない場合に、前記対象画像の前記複数の画素にそれぞれ対応する複数の第２パラメータを決定する第２パラメータ決定部と、前記複数の第２パラメータを用いて前記対象画像の前記複数の画素のそれぞれの色を補正する第２補正処理を実行する第２補正部と、補正済の画像データを出力する出力部と、を備える、画像処理装置。
【０００８】
この構成によれば、対象画像から顔領域が特定される場合に、顔領域内の複数の画素の色値に基づいて決定される第１パラメータが対象画像の複数の画素に共通に用いられ、そして、対象画像から顔領域が特定されない場合に、画素毎に第２パラメータが決定されて、各画素には画素に対応する第２パラメータが用いられるので、対象画像から顔領域が特定されるか否かに応じて適切な補正を行うことができる。
【０００９】
なお、本明細書に開示の技術は、種々の態様で実現することが可能であり、例えば、画像処理方法および画像処理装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体（例えば、一時的ではない記録媒体）、等の形態で実現することができる。
【図面の簡単な説明】
【００１０】
【図１】実施例の画像処理システム１０００を示す説明図である。
【図２】画像処理の例を示すフローチャートである。
【図３】画像処理の例を示すフローチャートである。
【図４】対象画像の例を示す概略図である。
【図５】ガンマ補正の説明図である。
【図６】彩度補正の説明図である。
【図７】輝度補正処理の例を示すフローチャートである。
【図８】画像の例を示す概略図である。
【図９】ヒストグラムの例を示す概略図である。
【図１０】平均輝度値Ｑと閾値Ｔとの関係を示すグラフである。
【図１１】輝度補正の説明図である。
【図１２】ヒストグラム補正の説明図である。
【発明を実施するための形態】
【００１１】
Ａ．第１実施例：
図１は、実施例の画像処理システム１０００を示す説明図である。画像処理システム１０００は、画像処理装置１００と、画像処理装置１００に接続された複合機２００と、を含んでいる。後述するように、複合機２００は、原稿等の対象物を読み取るスキャナ部２８０と、画像を印刷する印刷実行部２９０と、複合機２００の全体を制御する制御部２９９と、を有している。
【００１２】
画像処理装置１００は、パーソナルコンピュータである（例えば、デスクトップコンピュータ、タブレットコンピュータなど）。画像処理装置１００は、プロセッサ１１０と、記憶装置１１５と、画像を表示する表示部１４０と、ユーザによる操作を受け入れる操作部１５０と、通信インタフェース１７０と、を有している。これらの要素は、バスを介して互いに接続されている。記憶装置１１５は、揮発性記憶装置１２０と、不揮発性記憶装置１３０と、を含んでいる。
【００１３】
プロセッサ１１０は、データ処理を行う装置であり、例えば、ＣＰＵである。揮発性記憶装置１２０は、例えば、ＤＲＡＭであり、不揮発性記憶装置１３０は、例えば、フラッシュメモリである。
【００１４】
不揮発性記憶装置１３０は、プログラム１３２を格納している。プロセッサ１１０は、プログラム１３２を実行することによって、種々の機能を実現する。プログラム１３２によって実現される機能の詳細については、後述する。プロセッサ１１０は、プログラム１３２の実行に利用される種々の中間データを、記憶装置１１５（例えば、揮発性記憶装置１２０、不揮発性記憶装置１３０のいずれか）に、一時的に格納する。本実施例では、プログラム１３２は、複合機２００の製造者によって提供されたデバイスドライバに含まれている。
【００１５】
表示部１４０は、画像を表示する装置であり、例えば、液晶ディスプレイである。これに代えて、ＬＥＤディスプレイ、有機ＥＬディスプレイなどの、画像を表示する他の種類の装置を採用してもよい。操作部１５０は、ユーザによる操作を受け取る装置であり、例えば、表示部１４０上に重ねて配置されたタッチパネルである。これに代えて、ボタン、レバーなどの、ユーザによって操作される他の種類の装置を採用してもよい。ユーザは、操作部１５０を操作することによって、種々の指示を画像処理装置１００に入力可能である。
【００１６】
通信インタフェース１７０は、他の装置と通信するためのインタフェースである（例えば、ＵＳＢインタフェース、有線ＬＡＮインタフェース、IEEE802.11の無線インタフェース）。通信インタフェース１７０には、複合機２００が接続されている。
【００１７】
画像処理装置１００は、ユーザの指示に従って複合機２００を駆動し、複合機２００に画像を印刷させる。
【００１８】
複合機２００は、制御部２９９と、スキャナ部２８０と、印刷実行部２９０と、を有している。制御部２９９は、プロセッサ２１０と、記憶装置２１５と、画像を表示する表示部２４０と、ユーザによる操作を受け入れる操作部２５０と、通信インタフェース２７０と、を有している。これらの要素は、バスを介して互いに接続されている。記憶装置２１５は、揮発性記憶装置２２０と、不揮発性記憶装置２３０と、を含んでいる。
【００１９】
プロセッサ２１０は、データ処理を行う装置であり、例えば、ＣＰＵである。揮発性記憶装置２２０は、例えば、ＤＲＡＭであり、不揮発性記憶装置２３０は、例えば、フラッシュメモリである。
【００２０】
不揮発性記憶装置２３０は、プログラム２３２を格納している。プロセッサ２１０は、プログラム２３２を実行することによって、種々の機能を実現する（詳細は、後述）。プロセッサ２１０は、プログラム２３２の実行に利用される種々の中間データを、記憶装置（例えば、揮発性記憶装置２２０、不揮発性記憶装置２３０のいずれか）に、一時的に格納する。本実施例では、プログラム２３２は、複合機２００の製造者によって、ファームウェアとして、不揮発性記憶装置２３０に予め格納されている。
【００２１】
表示部２４０は、画像を表示する装置であり、例えば、液晶ディスプレイである。これに代えて、ＬＥＤディスプレイ、有機ＥＬディスプレイなどの、画像を表示する他の種類の装置を採用してもよい。操作部２５０は、ユーザによる操作を受け取る装置であり、例えば、表示部２４０上に重ねて配置されたタッチパネルである。これに代えて、ボタン、レバーなどの、ユーザによって操作される他の種類の装置を採用してもよい。ユーザは、操作部２５０を操作することによって、種々の指示を複合機２００に入力可能である。
【００２２】
通信インタフェース２７０は、他の装置と通信するためのインタフェースである。本実施例では、通信インタフェース２７０は、画像処理装置１００の通信インタフェース１７０に接続されている。
【００２３】
スキャナ部２８０は、ＣＣＤやＣＭＯＳなどの光電変換素子を用いて光学的に原稿等の対象物を読み取ることによって、読み取った画像（「スキャン画像」と呼ぶ）を表すスキャンデータを生成する。スキャンデータは、例えば、カラーのスキャン画像を表すＲＧＢのビットマップデータである。
【００２４】
印刷実行部２９０は、所定の方式（例えば、レーザ方式や、インクジェット方式）で、用紙（印刷媒体の一例）上に画像を印刷する装置である。本実施例では、印刷実行部２９０は、シアン、マゼンタ、イエロ、ブラックの４種類のインクを用いてカラー画像を印刷可能なインクジェット方式の印刷装置である。
【００２５】
図２、図３は、画像処理の例を示すフローチャートである。図３は、図２の続きの処理を示している。図２、図３は、画像処理装置１００が、ユーザの指示に応じて、複合機２００に印刷のための画像データを出力する処理を示している。本実施例では、画像処理装置１００のプロセッサ１１０が、プログラム１３２に従って、図２、図３の処理を進行する。プロセッサ１１０は、操作部１５０に入力されたユーザの印刷開始指示に従って、図２、図３の処理を開始する。
【００２６】
Ｓ１００では、プロセッサ１１０は、処理対象の画像データを取得する（「対象画像データ」とも呼ぶ）。例えば、プロセッサ１１０は、ユーザ、または、アプリケーションプログラムからの印刷開始指示で指定された画像データを、対象画像データとして取得する。本実施例では、対象画像データが、ビットマップデータであり、対象画像データの各画素の画素値が、０から２５５までの２５６階調のＲ（赤）Ｇ（緑）Ｂ（青）の階調値で表されていることとする。指定された画像データの形式がビットマップ形式とは異なる形式である場合（例えば、ＥＭＦ（Enhanced Meta File）形式）、プロセッサ１１０は、データ形式を変換（例えば、ラスタライズ）することによって生成されるビットマップデータを、対象画像データとして用いる。いずれの場合も、本実施例では、対象画像データは、矩形状の画像を示していることとする。
【００２７】
Ｓ１０５では、プロセッサ１１０は、対象画像データによって表される画像（対象画像とも呼ぶ）内に存在する顔を含む領域の候補である候補領域を特定する顔認識処理を実行する。図４は、対象画像の例を示す概略図である。この対象画像ＴＩ１は、一人の人物Ｏｂ１を表している。この対象画像ＴＩ１からは、人物Ｏｂ１の顔を含む領域Ａ１が、候補領域として、特定される。顔認識処理は、公知の方法を用いて実行される。例えば、顔認識処理としては、エッジのような低次特徴から眼や口のような高次特徴を階層的に検出し、最終的に顔の重心位置や顔の外形などを検出するコンボリューションニューラルネットワークが知られている（例えば、特開２０１３−１２０９５４、特開２００９−２３７６１８参照）。顔認識処理によって特定される候補領域は、対象画像内の顔以外の部分（例えば、背景）を、含み得る。
【００２８】
Ｓ１１０（図２）では、プロセッサ１１０は、候補領域が特定されたか否かを判断する。候補領域が特定されない場合（Ｓ１１０：Ｎｏ）、プロセッサ１１０は、対象画像から人物の顔を表す領域を特定できないと判断し、Ｓ２９０へ移行する（詳細は、後述）。
【００２９】
候補領域が特定された場合（Ｓ１１０：Ｙｅｓ）、Ｓ１２０で、プロセッサ１１０は、候補領域から、注目すべき部分領域である注目領域を特定する。注目領域としては、候補領域内の肌を示す可能性が高い部分が、採用される。このような注目領域の特定方法は、種々の方法であってよい。本実施例では、図４に示すように、候補領域Ａ１として矩形領域が特定される。プロセッサ１１０は、候補領域Ａ１を、３行３列の９個の部分領域Ａ１ｓに、均等に区分する。そして、プロセッサ１１０は、９個の部分領域Ａ１ｓのうちの中央の部分領域Ａ２を、注目領域として、選択する。候補領域Ａ１が人物の顔を表す場合、注目領域Ａ２は、顔の中央部分を示している。これにより、注目領域Ａ２における肌とは異なる部分（背景、髪、目、口など）の割合は、低減される。
【００３０】
Ｓ１３０（図２）では、プロセッサ１１０は、注目領域の平均のＬ＊ａ＊ｂ＊値を算出する。本実施例では、プロセッサ１１０は、ＲＧＢ色空間の色値（ＲＧＢ値）と、ＣＩＥＬＡＢ色空間の色値（Ｌ＊ａ＊ｂ＊値）と、の予め決められた対応関係を示すプロファイル（図示せず）を参照して、注目領域の各画素のＲＧＢ値を、Ｌ＊ａ＊ｂ＊値に変換する。プロファイルは、例えば、ルックアップテーブルである。そして、プロセッサ１１０は、Ｌ＊ａ＊ｂ＊値のそれぞれの平均値ＦＬ、Ｆａ、Ｆｂを算出する。プロファイルとしては、例えば、ｓＲＧＢ色空間とＣＩＥＬＡＢ色空間との対応関係を示すプロファイルが、用いられる。
【００３１】
Ｓ１４０では、プロセッサ１１０は、ａ＊とｂ＊との色値Ｆａ、Ｆｂの組み合わせが、特定色範囲内であるか否かを判断する。特定色範囲は、注目領域が人物の顔（特に肌）を表す場合に、色値Ｆａ、Ｆｂが取り得る値の範囲であり、予め実験的に決められている。本実施例では、特定色範囲は、−１０＜Ｆａ＜２０、かつ、−１０＜Ｆｂ＜２０の範囲である（他の範囲が特定色範囲として採用されてもよい）。色値Ｆａ、Ｆｂの組み合わせが特定色範囲外である場合（Ｓ１４０：Ｎｏ）、プロセッサ１１０は、注目領域が人物の顔を表していない、すなわち、対象画像から人物の顔を表す領域を特定できないと判断し、Ｓ２９０へ移行する（詳細は、後述）。
【００３２】
色値Ｆａ、Ｆｂの組み合わせが特定色範囲内である場合（Ｓ１４０：Ｙｅｓ）、プロセッサ１１０は、注目領域が人物の顔を表している、すなわち、対象画像から人物の顔を表す領域を特定できると判断し、人物に適した補正処理を実行する。以下、注目領域が人物の顔を表していると判断される場合（Ｓ１１０：Ｙｅｓ、Ｓ１４０：Ｙｅｓ）、注目領域を、「対象顔領域」、あるいは、単に「顔領域」 とも呼ぶ。Ｓ１５０で、プロセッサ１１０は、Ｌ＊値のガンマ補正用のガンマ値を決定する。Ｌ＊値は輝度の指標値であるので、Ｌ＊値の補正は輝度の補正であるといえる。
【００３３】
図５は、ガンマ補正の説明図である。図中の上部には、補正前のＬ＊値と補正済のＬ＊値であるＬ＊ｃ値との対応関係を示すグラフＧＬが示されている。横軸は、補正前のＬ＊値を示し、縦軸は、補正済のＬ＊ｃ値を示している。本実施例では、Ｌ＊の全範囲は、ゼロ以上、１００以下である。図５の下部の式ＥＱ１は、補正前のＬ＊値と補正済のＬ＊ｃ値との関係式である。補正済のＬ＊ｃ値は、補正前のＬ＊値のべき乗を用いて表される。値ｇは、べき指数である（以下、べき指数ｇを、ガンマ値ｇとも呼ぶ）。なお、Ｌ＊値の全範囲のうち最小値（ここでは、ゼロ）と最大値（ここでは、１００）とは、補正によって変化しない。
【００３４】
ガンマ値ｇは、対象顔領域の明るさが好ましい明るさになるように、決定される。本実施例では、プロセッサ１１０は、対象顔領域のＬ＊の平均値ＦＬが、ガンマ補正によって、予め決められた目標値ＴＦＬ（例えば、６０）に近づくように、ガンマ値ｇを決定する。平均値ＦＬが目標値ＴＦＬ未満である場合、プロセッサ１１０は、０．１以上、１．０以下の範囲内に０．１間隔で並ぶ複数の候補ガンマ値のそれぞれを用いて、平均値ＦＬのガンマ補正によって得られる補正済値ＦＬｃを算出する。そして、プロセッサ１１０は、目標値に最も近い補正済値ＦＬｃを導く候補ガンマ値を、ガンマ値ｇとして採用する。平均値ＦＬが目標値以上である場合、プロセッサ１１０は、ガンマ値ｇを、１．０に決定する。このように、対象顔領域のＬ＊の平均値ＦＬが目標値と比べて明るい場合、Ｌ＊値を暗くするガンマ補正は行われずに、Ｌ＊値は維持される。
【００３５】
Ｓ１６０（図２）では、プロセッサ１１０は、ガンマ補正用のルックアップテーブルを生成する。生成されるルックアップテーブルは、補正前のＬ＊値と補正済のＬ＊ｃ値との複数の対応関係を示すテーブルである。本実施例では、補正前のＬ＊値として、０から１００までの１０１個の整数が用いられる。
【００３６】
Ｓ１７０では、プロセッサ１１０は、彩度の補正用の一次関数を決定する。図６は、彩度補正の説明図である。上部には、彩度補正のグラフＧＣが示されている。横軸は、補正前の彩度値Ｃを示し、縦軸は、補正済の彩度値Ｃｃを示している。本実施例では、彩度値Ｃの全範囲は、ゼロ以上、最大値Ｃｍａｘ以下の範囲である。図６の下部には、５つの式ＥＱ２ａ〜ＥＱ２ｅが、示されている。式ＥＱ２ａは、彩度値Ｃの計算式を示している。本実施例では、彩度値Ｃは、ａ＊とｂ＊の成分値で表され、具体的には、ａ＊ｂ＊平面における原点と色値（ａ＊、ｂ＊）との間のユークリッド距離で、示される。グラフ中の彩度値Ｆｃは、対象顔領域のａ＊、ｂ＊の平均値Ｆａ、Ｆｂから算出される彩度値である（平均彩度値Ｆｃとも呼ぶ）。グラフ中の補正済の彩度値ＴＦｃは、予め決められた目標値である（目標彩度値ＴＦｃとも呼ぶ）。本実施例では、平均彩度値Ｆｃが目標彩度値ＴＦｃに近づくように、彩度が補正される。
【００３７】
本実施例では、グラフＧＣは、平均彩度値Ｆｃ未満の彩度値Ｃの範囲の第１グラフＧＣ１と、平均彩度値Ｆｃ以上の彩度値Ｃの範囲の第２グラフＧＣ２と、に区分される。これらのグラフＧＣ１、ＧＣ２は、いずれも、一次関数で表される。彩度値Ｃがゼロから平均彩度値Ｆｃまで変化する場合、補正済の彩度値Ｃｃは、ゼロから目標彩度値ＴＦｃまで、彩度値Ｃの変化に対して線形に変化する。彩度値Ｃが平均彩度値Ｆｃから最大値Ｃｍａｘまで変化する場合、補正済の彩度値Ｃｃは、目標彩度値ＴＦｃから最大値Ｃｍａｘまで、彩度値Ｃの変化に対して線形に変化する。
【００３８】
図６の下部の式ＥＱ２ｂで示される第１係数Ｒ１は、第１グラフＧＣ１の傾きであり、具体的には、平均彩度値Ｆｃに対する目標彩度値ＴＦｃの比率である。プロセッサ１１０は、目標彩度値ＴＦｃを平均彩度値Ｆｃで除することによって、第１係数Ｒ１を算出する。式ＥＱ２ｃは、第１グラフＧＣ１の一次関数を示している。補正済の彩度値Ｃｃは、補正前の彩度値Ｃに、第１係数Ｒ１を乗じて得られる値である。第１グラフＧＣ１の一次関数の切片は、ゼロである。
【００３９】
式ＥＱ２ｄで示される第２係数Ｒ２は、第２グラフＧＣ２の傾きであり、具体的には、「（Ｃｍａｘ−ＴＦｃ）／（Ｃｍａｘ−Ｆｃ）」である。プロセッサ１１０は、平均彩度値Ｆｃと目標彩度値ＴＦｃとを用いて、式ＥＱ２ｄに従って、第２係数Ｒ２を算出する。式ＥＱ２ｅは、第２グラフＧＣ２の一次関数を示している。補正済の彩度値Ｃｃは、「Ｃ−Ｆｃ」に第２係数Ｒ２を乗じて得られる値に、目標彩度値ＴＦｃを加算して得られる値である。図示を省略するが、第２グラフＧＣ２の一次関数の切片は、「ＴＦｃ−Ｒ２×Ｆｃ」である。プロセッサ１１０は、第２係数Ｒ２を決定することによって、切片「ＴＦｃ−Ｒ２×Ｆｃ」を決定している、といえる。
【００４０】
Ｓ１８０〜Ｓ２３０（図３）では、プロセッサ１１０は、対象画像の複数の画素のそれぞれの色値を、補正する。Ｓ１８０では、プロセッサ１１０は、１個の未補正の画素を、対象画素として選択する。Ｓ１９０では、プロセッサ１１０は、対象画素の色値（ここでは、ＲＧＢ値）を、ＣＩＥＬＡＢ色空間の色値（Ｌ＊ａ＊ｂ＊値）に、変換する。この変換は、図２のＳ１３０で説明したプロファイルを用いて、行われる。
【００４１】
Ｓ２００では、プロセッサ１１０は、Ｓ１６０（図２）で生成されたルックアップテーブルを用いて、対象画素のＬ＊値のガンマ補正を実行して、補正済のＬ＊値（図５のＬ＊ｃ値）を算出する。対象画素のＬ＊値が、ルックアップテーブルによって規定されていない場合、プロセッサ１１０は、補間によって、補正済のＬ＊値を算出する。プロセッサ１１０は、ルックアップテーブルを用いることによって、ルックアップテーブルを用いずに図５の式ＥＱ１に従って補正済のＬ＊ｃ値を算出する場合と比べて、高速にＬ＊ｃ値を算出できる。
【００４２】
Ｓ２１０では、プロセッサ１１０は、Ｓ１７０（図２）で決定された一次関数を用いて、対象画素のａ＊値とｂ＊値との彩度補正を実行して、補正済のａ＊値とｂ＊値とを算出する。本実施例では、プロセッサ１１０は、対象画素のａ＊値とｂ＊値とを用いて彩度値Ｃを算出し、図６で説明した一次関数に従って彩度値Ｃから補正済の彩度値Ｃｃを算出する。プロセッサ１１０は、補正済の彩度値Ｃｃを用いて、補正済のａ＊値とｂ＊値とを算出する。ここで、補正済のａ＊値に対するｂ＊値の比率は、補正前のａ＊値に対するｂ＊値の比率と、同じである。すなわち、ａ＊ｂ＊平面上において、彩度補正済の色値（ａ＊、ｂ＊）は、原点と補正前の色値（ａ＊、ｂ＊）とを結ぶ直線上に、位置している。原点から色値（ａ＊、ｂ＊）へ向かう方向は、色相を示している。本実施例の彩度補正では、色相の大きな変化は、抑制されている。
【００４３】
Ｓ２２０では、プロセッサ１１０は、補正済のＬ＊ａ＊ｂ＊値を、ＲＧＢ値に変換する。この変換は、Ｌ＊ａ＊ｂ＊値とＲＧＢ値との予め決められた対応関係を示すプロファイル（図示せず）を参照して、行われる。プロファイルは、例えば、ルックアップテーブルである。Ｓ２２０で得られるＲＧＢ値は、補正済のＬ＊ａ＊ｂ＊値に対応しており、未補正の画素のＲＧＢ値から補正されている。従って、この変換されたＲＧＢ値を、補正済のＲＧＢ値とも呼ぶ。
【００４４】
Ｓ２３０では、プロセッサ１１０は、対象画像の全ての画素の色値の補正が完了したか否かを判断する。未処理の画素が残っている場合（Ｓ２３０：Ｎｏ）、プロセッサ１１０は、Ｓ１８０へ移行して、未処理の画素の処理を実行する。全ての画素の色値の補正が完了した場合（Ｓ２３０：Ｙｅｓ）、Ｓ２４０で、プロセッサ１１０は、対象画像の画像データであって補正済の色値を示す画像データ（補正済対象画像データとも呼ぶ）を、出力する処理を実行する。
【００４５】
本実施例では、プロセッサ１１０は、Ｓ２４０で、Ｓ２２０で得られる補正済のＲＧＢデータを用いて印刷データを生成する。プロセッサ１１０は、例えば、解像度変換処理と、解像度が変換された画像データの色変換処理と、色変換済の画像データを用いるハーフトーン処理と、を実行することによって、印刷データを生成する。解像度変換処理は、補正済のＲＧＢ値を示す画像データの解像度を印刷用の予め決められた解像度に変換する処理である。色変換処理は、各画素の色値を、印刷用の色空間の色値に変換する処理である。印刷用の色空間は、印刷データの色空間として予め決められた色空間であり、例えば、複合機２００の印刷実行部２９０によって利用可能な印刷材（ここでは、シアン、マゼンタ、イエロ、ブラック）に対応する色成分で表される色空間である。ハーフトーン処理は、例えば、誤差拡散法や、ディザマトリクスを用いる方法など、種々の方法の処理であってよい。プロセッサ１１０は、ハーフトーン処理の結果を表すデータを用いて、複合機２００の制御部２９９によって解釈可能なデータ形式のデータ（すなわち、印刷データ）を生成する。
【００４６】
プロセッサ１１０は、生成した印刷データを、複合機２００に出力する。複合機２００の制御部２９９（ここでは、プロセッサ２１０）は、受信した印刷データに従って、印刷実行部２９０を制御する。これにより、印刷実行部２９０によって、対象画像が印刷される。以上により、図２、図３の画像処理が終了する。
【００４７】
以上のように、対象画像から対象顔領域が特定される場合（図２、Ｓ１１０：Ｙｅｓ、Ｓ１４０：Ｙｅｓ）、対象顔領域内の複数の画素の色値に基づいて、補正用のパラメータ（ここでは、ガンマ値ｇと、一次関数の傾きと切片）が、決定される（Ｓ１５０、Ｓ１７０）。従って、決定されたパラメータを用いる補正（ここでは、ガンマ値ｇを用いるＬ＊値のガンマ補正と、一次関数を用いる彩度値Ｃの補正）は、対象顔領域の顔の色が好ましい色になるように、対象画像を補正できる。
【００４８】
なお、印刷データによって示される色値（ここでは、シアン、マゼンタ、イエロ、ブラックのそれぞれの色値）は、補正済の色値（ここでは、補正済のＲＧＢ値）に基づいて、決定される。そして、印刷データは、対象画像を示す画像データである。従って、印刷データは、補正済対象画像データの例である。
【００４９】
図２のＳ１４０で、色値Ｆａ、Ｆｂの組み合わせが特定色範囲外である場合（Ｓ１４０：Ｎｏ）、すなわち、対象画像から人物の顔を表す領域を特定できないと判断される場合、プロセッサ１１０は、Ｓ２９０で、人物以外のオブジェクトを表す対象画像に適した補正処理を実行する。本実施例では、輝度補正処理が実行される。図７は、輝度補正処理の例を示すフローチャートである。Ｓ３００では、プロセッサ１１０は、対象画像データの画素密度を低減することによって、縮小画像データを生成する。図８（Ａ）は、対象画像の別の例を示す概略図であり、図８（Ｂ）は、縮小画像データによって表される縮小画像の例を示す概略図である。対象画像ＴＩ２（図８（Ａ））は、人物を表さずに、花ＯＦと葉ＯＬとを表している。縮小画像ＴＩ２ａは、対象画像ＴＩ２と同じ画像である（ただし、画素密度は、異なっている）。
【００５０】
縮小画像の画素密度は、種々の密度であってよい。本実施例では、プロセッサ１１０は、縮小画像の高さと幅とのうち大きい方の画素数が、２５６となるように、縮小画像の画素密度を決定する。これに代えて、縮小画像の画素密度は、予め決められた画素密度であってもよい。また、縮小画像データによって示される各画素の色値の決定方法としては、バイリニア法、バイキュービック法などの公知の種々の方法を採用可能である。
【００５１】
Ｓ３１０（図７）では、プロセッサ１１０は、後述するヒストグラム補正で用いられる下限値Ｈｂｔｍと上限値Ｈｔｏｐを算出する。まず、プロセッサ１１０は、縮小画像データのＲ値とＧ値とＢ値のそれぞれのヒストグラムを生成する。図９（Ａ）〜図９（Ｃ）は、Ｒ値、Ｇ値、Ｂ値のヒストグラムＨＲ、ＨＧ、ＨＢの例を、それぞれ示している。横軸は、色値を示し、縦軸は、頻度を示している。
【００５２】
プロセッサ１１０は、Ｒ値のヒストグラムＨＲを分析し、第１値ＨｍｉｎＲと第２値ＨｍａｘＲとを特定する。第１値ＨｍｉｎＲは、ヒストグラムのうちの第１値ＨｍｉｎＲ以下の部分ＨＰ１の面積が、ヒストグラムの全体の面積に割合Ｐｘｒを乗じて得られる面積となるようなＲ値である。割合Ｐｘｒは、予め決められており、例えば、０．５％である。第１値ＨｍｉｎＲは、Ｒ値の大きい順の下位の割合Ｐｘｒの複数の画素のＲ値のうちの最大のＲ値と、おおよそ同じである。第２値ＨｍａｘＲは、ヒストグラムのうちの第２値ＨｍａｘＲ以上の部分ＨＰ２の面積が、ヒストグラムの全体の面積に割合Ｐｘｒを乗じて得られる面積となるようなＲ値である。第２値ＨｍａｘＲは、Ｒ値の大きい順の上位の割合Ｐｘｒの複数の画素のＲ値のうちの最小のＲ値と、おおよそ同じである。プロセッサ１１０は、Ｇ値に関する第１値ＨｍｉｎＧと第２値ＨｍａｘＧと、Ｂ値に関する第１値ＨｍｉｎＢと第２値ＨｍａｘＢとを、同様に、特定する。
【００５３】
図９（Ｄ）は、下限値Ｈｂｔｍと上限値Ｈｔｏｐとの計算式を示す概略図である。下限値Ｈｂｔｍは、ＲＧＢの第１値ＨｍｉｎＲ、ＨｍｉｎＧ、ＨｍｉｎＢの平均値である。上限値Ｈｔｏｐは、ＲＧＢの第２値ＨｍａｘＲ、ＨｍａｘＧ、ＨｍａｘＢの平均値である。プロセッサ１１０は、これらの計算式に従って、下限値Ｈｂｔｍと上限値Ｈｔｏｐとを算出する。
【００５４】
図７のＳ３２０では、プロセッサ１１０は、縮小画像データを用いて、縮小輝度画像データを生成する。図８（Ｃ）は、縮小輝度画像データによって表される縮小輝度画像ＴＩ２ｂを示している。縮小輝度画像データは、縮小画像データの各画素の色値（ここでは、ＲＧＢ値）を、輝度値に変換して得られる画像データである。図８（Ｃ）の縮小輝度画像ＴＩ２ｂは、図８（Ｂ）のカラーの縮小画像ＴＩ２ａを１つの色成分（ここでは、輝度値）で表すモノクロ画像である。輝度値としては、例えば、ＲＧＢ色空間のＲＧＢ値とＹＣｂＣｒ色空間の輝度値Ｙとを対応付ける公知の関係式を用いて算出される輝度値を、採用可能である。
【００５５】
Ｓ３３０では、プロセッサ１１０は、縮小輝度画像データを分析することによって、最大輝度値Ｉｍａｘと最小輝度値Ｉｍｉｎと平均輝度値Ｉｍｅａｎとを、算出する。図８（Ｃ）には、平均輝度値Ｉｍｅａｎの計算式が、示されている。ここで、高さＨｂは、縮小輝度画像ＴＩ２ｂの縦方向の画素数であり、幅Ｗｂは、縮小輝度画像ＴＩ２ｂの横方向の画素数である。計算式の分母「Ｈｂ×Ｈａ」は、縮小輝度画像ＴＩ２ｂの画素数と同じである。計算式の分子のＩ（ｉ，ｊ）は、横方向の画素位置ｉと縦方向の画素位置ｊとで特定される画素の輝度値Ｉを示している（ここで、０≦ｉ≦Ｗｂ−１、０≦ｊ≦Ｈｂ−１）。計算式の分子は、縮小輝度画像ＴＩ２ｂのＨｂ×Ｈａ個の画素の輝度値Ｉの合計値を示している。
【００５６】
Ｓ３４０（図７）では、プロセッサ１１０は、縮小画像データのＲＧＢ値のそれぞれの平均値Ｒａｖｅ、Ｇａｖｅ、Ｂａｖｅを、算出する。Ｓ３５０では、プロセッサ１１０は、算出された平均値Ｒａｖｅ、Ｇａｖｅ、Ｂａｖｅのうちの最大値である最大平均値ＲＧＢｍａｘａｖｅを特定する。
【００５７】
Ｓ３６０では、プロセッサ１１０は、縮小輝度画像データを用いて、縮小ぼかし画像データを生成する。図８（Ｄ）は、縮小ぼかし画像データによって表される縮小ぼかし画像ＴＩ２ｃを示している。縮小ぼかし画像データは、縮小輝度画像データの各画素の輝度値Ｉを、平均輝度値Ｑに変換して得られる画像データである。図８（Ｄ）には、平均輝度値Ｑ（ｉ，ｊ）の計算式が、示されている。本実施例では、画素（ｉ，ｊ）の平均輝度値Ｑ（ｉ，ｊ）は、画素（ｉ，ｊ）を中心とする３行３列の９個の画素の輝度値Ｉの平均値である。
【００５８】
Ｓ３７０（図７）では、プロセッサ１１０は、縮小ぼかし画像データを用いて、縮小閾値画像データを生成する。図８（Ｅ）は、縮小閾値画像データによって表される縮小閾値画像ＴＩ２ｄを示している。縮小閾値画像データは、各画素の閾値を示している。図８（Ｅ）には、画素（ｉ，ｊ）の閾値Ｔ（ｉ，ｊ）の計算式が、示されている。図示するように、閾値Ｔ（ｉ，ｊ）は、縮小ぼかし画像データによって示される平均輝度値Ｑ（ｉ，ｊ）と、最大平均値ＲＧＢｍａｘａｖｅと、平均輝度値Ｉｍｅａｎと、を用いて算出される。
【００５９】
図１０は、平均輝度値Ｑ（ｉ，ｊ）と閾値Ｔ（ｉ，ｊ）との関係を示すグラフである。横軸は、平均輝度値Ｑ（ｉ，ｊ）を示し、縦軸は、閾値Ｔ（ｉ，ｊ）を示している。ゼロ閾値Ｔ０は、平均輝度値Ｑ（ｉ，ｊ）がゼロである場合の閾値Ｔ（ｉ，ｊ）であり、図８（Ｅ）の計算式のＱ（ｉ，ｊ）にゼロを代入することによって得られる（Ｔ０＝２５５×０．６×ＲＧＢｍａｘａｖｅ／Ｉｍｅａｎ）。図示するように、平均輝度値Ｑ（ｉ，ｊ）がゼロから２５５まで増大すると、閾値Ｔ（ｉ，ｊ）は、ゼロ閾値Ｔ０からゼロまで減少する。このように、閾値Ｔ（ｉ，ｊ）は、平均輝度値Ｑ（ｉ，ｊ）が大きいほど、小さい。すなわち、対象画像の明るい部分では、閾値Ｔ（ｉ，ｊ）が小さくなり、対象画像の暗い部分では、閾値Ｔ（ｉ，ｊ）が大きくなる。
【００６０】
後述するように、対象画像の各画素の輝度値は、画素毎に決定される閾値Ｔを用いて、補正される。輝度値が閾値Ｔよりも小さい場合には、輝度値を増大させる補正が行われる。輝度値が閾値Ｔよりも大きい場合には、輝度値が低減させる補正が行われる。閾値Ｔ（ｉ，ｊ）の計算式（図８（Ｅ））において、Ｑ（ｉ，ｊ）のべき指数である２．０と、係数である０．６とは、それぞれ、他の値に調整されてよい。これらのパラメータが大きいほど、閾値Ｔ（ｉ，ｊ）が大きくなる。従って、輝度値を増大させる補正が行われ易くなり、対象画像のうちの暗い領域が明るくなり易い。また、計算式（図８（Ｅ））において、比率ＲＧＢｍａｘａｖｅ／Ｉｍｅａｎは、「平均輝度値」に対する「最も明るい色成分の平均色値」の割合を示している。この比率は、対象画像内の色の偏りが大きいほど、大きい。従って、色の偏りが大きいほど、輝度値を増大させる補正が行われ易くなり、そして、対象画像のうちの暗い領域が明るくなり易い。また、平均輝度値Ｉｍｅａｎは、対象画像の平均的な明るさを示している。従って、閾値Ｔ（ｉ，ｊ）は、対象画像の平均的な明るさが暗いほど、大きくなる。従って、対象画像の平均的な明るさが暗いほど、輝度値を増大させる補正が行われ易くなり、そして、対象画像のうちの暗い領域が明るくなり易い。
【００６１】
Ｓ３８０〜Ｓ４１０（図７）では、プロセッサ１１０は、対象画像の複数の画素のそれぞれの色値を、補正する。Ｓ３８０では、プロセッサ１１０は、１個の未補正の画素を、対象画素として選択する。
【００６２】
Ｓ３８３では、プロセッサ１１０は、縮小閾値画像データを用いて、対象画素の閾値Ｔを決定する（以下、対象閾値Ｔと呼ぶ）。本実施例では、プロセッサ１１０は、縮小閾値画像データによって示される複数の画素のうちの少なくとも一部の複数の画素のそれぞれの閾値Ｔ（ｉ，ｊ）を補間することによって、対象画素の位置の対象閾値Ｔを算出する。補間の方法としては、バイリニア法、バイキュービック法などの公知の種々の方法を採用可能である。このように、補間には、縮小閾値画像データによって示される複数の画素のうち、対象画素に近い一部の複数の画素が利用される。これに代えて、縮小閾値画像データによって示される複数の画素の全てが、補間に利用されてもよい。
【００６３】
Ｓ３８７では、プロセッサ１１０は、縮小ぼかし画像データを用いて、対象画素の補正用の輝度値Ｑを算出する（以下、対象輝度値Ｑと呼ぶ）。本実施例では、プロセッサ１１０は、縮小ぼかし画像データによって示される複数の画素のうちの少なくとも一部の複数の画素のそれぞれの平均輝度値Ｑ（ｉ，ｊ）を補間することによって、対象画素の位置の対象輝度値Ｑを算出する。補間の方法としては、バイリニア法、バイキュービック法などの公知の種々の方法を採用可能である。このように、補間には、縮小ぼかし画像データによって示される複数の画素のうち、対象画素に近い一部の複数の画素が利用される。これに代えて、縮小ぼかし画像データによって示される複数の画素の全てが、補間に利用されてもよい。
【００６４】
Ｓ３９０では、プロセッサ１１０は、対象閾値Ｔと対象輝度値Ｑとを用いて、対象画素の輝度値を補正する。まず、プロセッサ１１０は、対象画素のＲＧＢ値を、輝度値の成分を含む複数の色成分で表される色空間の色値に変換する。本実施例では、ＹＣｂＣｒ色空間のＹＣｂＣｒ値が、算出される。ＲＧＢ値とＹＣｂＣｒ値との対応関係としては、公知の対応関係が、用いられる。そして、プロセッサ１１０は、輝度値Ｙを、補正する。
【００６５】
図１１は、輝度補正の説明図である。図中の上部には、補正前の輝度値Ｙと補正済の輝度値Ｙｃとの対応関係を示すグラフが示されている。横軸は、補正前の輝度値Ｙを示し、縦軸は、補正済輝度値Ｙｃを示している。図中には、４つの対応関係ＧＴｓ、ＧＴ３２、ＧＴ１２８、ＧＴ１６０が、示されている。参照対応関係Ｇｓは、Ｙｃ＝Ｙの対応関係を示している（この参照対応関係Ｇｓは、輝度補正では用いられない）。他の３つの対応関係ＧＴ３２、ＧＴ１２８、ＧＴ１６０は、実際の補正で利用され得る対応関係の例である。対応関係ＧＴ３２は、対象閾値Ｔが３２である場合の対応関係の例を示し、対応関係ＧＴ１２８は、対象閾値Ｔが１２８である場合の対応関係の例を示し、対応関係ＧＴ１６０は、対象閾値Ｔが１６０である場合の対応関係の例を示している。図示するように、輝度値Ｙが対象閾値Ｔよりも小さい場合、補正済輝度値Ｙｃは、輝度値Ｙよりも大きくなる。輝度値Ｙが対象閾値Ｔよりも大きい場合、補正済輝度値Ｙｃは、輝度値Ｙよりも小さくなる。このように、同じ輝度値Ｙに対する補正済輝度値Ｙｃは、対象閾値Ｔに応じて変化する。また、いずれも場合も、補正済輝度値Ｙｃは、輝度値Ｙの増大に応じて、増大する。
【００６６】
プロセッサ１１０は、このような対応関係を、例えば、以下のように、決定する。図１１の下部には、４つの式ＥＱ４ａ〜ＥＱ４ｄが、示されている。式ＥＱ４ａは、第１変数Ｈｌｏｗの計算式である。式ＥＱ４ａ中の値Ｐ１は、予め決められた定数であり、例えば、３６０である（第１定数Ｐ１と呼ぶ）。式ＥＱ４ｂは、第２変数Ｈｈｉｇｈの計算式である。式ＥＱ４ｂ中の値Ｐ２は、予め決められた定数であり、例えば、８０９６である（第２定数Ｐ２と呼ぶ）。
【００６７】
プロセッサ１１０は、対象輝度値Ｑ（図７：Ｓ３８７）と第１定数Ｐ１と平均輝度値Ｉｍｅａｎ（Ｓ３３０）とを用いて、式ＥＱ４ａに従って、第１変数Ｈｌｏｗを算出する。また、プロセッサ１１０は、対象輝度値Ｑ（Ｓ３８７）と第２定数Ｐ２と平均輝度値Ｉｍｅａｎ（Ｓ３３０）とを用いて、式ＥＱ４ｂに従って、第２変数Ｈｈｉｇｈを算出する。
【００６８】
図１１の下部の式ＥＱ４ｃ、ＥＱ４ｄは、それぞれ、補正済輝度値Ｙｃの算出式である。式ＥＱ４ｃは、輝度値Ｙが対象閾値Ｔ以下である場合の算出式である。輝度値Ｙが対象閾値Ｔよりも小さい場合、式ＥＱ４ｃに従って算出される補正済輝度値Ｙｃは、輝度値Ｙよりも大きい。式ＥＱ４ｄは、輝度値Ｙが対象閾値Ｔよりも大きい場合の算出式である。輝度値Ｙが対象閾値Ｔよりも大きい場合、式ＥＱ４ｄに従って算出される補正済輝度値Ｙｃは、輝度値Ｙよりも小さい。図１１の上部のグラフは、これらの算出式によって規定される対応関係の例を示している。
【００６９】
プロセッサ１１０は、対象画素の補正済輝度値Ｙｃを算出するための算出式を、対象画素の輝度値Ｙと対象閾値Ｔとを用いて、式ＥＱ４ｃ、ＥＱ４ｄから選択する。そして、プロセッサ１１０は、選択した算出式に従って、補正済輝度値Ｙｃを算出する。
【００７０】
１枚の対象画像は、暗い領域と明るい領域とを含み得る。例えば、図８（Ａ）の対象画像ＴＩ２において、葉ＯＬが暗い色で示され、花ＯＦが明るい色で示される場合がある。このような場合、葉ＯＬを表す暗い領域の輝度値は、明るい輝度値に、補正され得る。このような補正により、補正済の画像では、葉ＯＬが明るい色で表されるので、葉ＯＬの見栄えが向上する。また、花ＯＦを表す明るい領域の輝度値は、暗い輝度値に、補正され得る。このような補正により、補正済の画像では、花ＯＦを表す領域の明るさが抑制されるので、白飛び領域のような白い色で花ＯＦが表されることを、抑制できる。
【００７１】
また、上述したように、閾値Ｔ（ｉ，ｊ）は、対象画像の平均的な明るさ（すなわち、平均輝度値Ｉｍｅａｎ）が暗いほど、大きくなる。従って、対象画像が暗い画像である場合には、輝度値を増大する補正が行われ易い。ただし、輝度値Ｙが対象閾値Ｔよりも大きい場合には、輝度値は増大されないので、白飛び領域のような白い領域が大きくなることは抑制される。一方、対象画像が明るい画像である場合には、輝度値を低減する補正が行われ易い。ただし、輝度値Ｙが対象閾値Ｔよりも小さい場合には、輝度値は低減されないので、黒つぶれ領域のような黒い領域が大きくなることは抑制される。
【００７２】
プロセッサ１１０は、補正済輝度値Ｙｃを算出した後、補正済輝度値Ｙｃと補正前のＣｂ値、Ｃｒ値とを、ＲＧＢ値に変換する。以下、算出されるＲＧＢ値を、輝度補正済ＲＧＢ値と呼ぶ。
【００７３】
図７のＳ４００では、プロセッサ１１０は、ヒストグラム補正を行う。図１２は、ヒストグラム補正の説明図である。図中には、補正前の色値Ｖと補正済の色値Ｖｃとの対応関係を示すグラフが示されている。横軸は、補正前の色値Ｖを示し、縦軸は、補正済の色値Ｖｃを示している。色値Ｖとしては、Ｒ値とＧ値とＢ値とが、それぞれ用いられる。すなわち、Ｒ値とＧ値とＢ値とのそれぞれが、この共通のグラフＧｒｇｂに従って、補正される（以下、色値Ｖを用いて、説明を行う）。下限値Ｈｂｔｍと上限値Ｈｔｏｐとは、図７のＳ３１０で特定されたパラメータである。
【００７４】
このグラフＧｒｇｂは、いわゆるコントラストを調整するグラフである。色値Ｖが下限値Ｈｂｔｍ以下である場合、補正済の色値Ｖｃは、ゼロに設定される。色値Ｖが上限値Ｈｔｏｐ以上である場合、補正済の色値Ｖｃは、最大値（ここでは、２５５）に設定される。色値Ｖが下限値Ｈｂｔｍから上限値Ｈｔｏｐまで変化する場合、補正済色値Ｖｃは、ゼロから最大値（ここでは、２５５）まで、色値Ｖの変化に対して線形に変化する。
【００７５】
図７のＳ４１０では、プロセッサ１１０は、対象画像の全ての画素の色値の補正が完了したか否かを判断する。未処理の画素が残っている場合（Ｓ４１０：Ｎｏ）、プロセッサ１１０は、Ｓ３８０へ移行して、未処理の画素の処理を実行する。全ての画素の色値の補正が完了した場合（Ｓ４１０：Ｙｅｓ）、図７の処理、すなわち、図２のＳ２９０の処理が完了する。プロセッサ１１０は、図３のＳ２４０へ移行する。そして、プロセッサ１１０は、図７のＳ３９０、Ｓ４００による補正済のＲＧＢ値を用いて、補正済対象画像データを出力する処理を、実行する。以上により、図２、図３の画像処理が終了する。
【００７６】
図２のＳ１１０で、候補領域が特定されないと判断される場合（Ｓ１１０：Ｎｏ）、すなわち、対象画像から人物の顔を表す領域を特定できないと判断される場合、プロセッサ１１０は、Ｓ２９０で、輝度補正処理を実行する。そして、プロセッサ１１０は、図３のＳ２４０で、補正済対象画像データを出力する処理を、実行する。以上により、図２、図３の画像処理が終了する。
【００７７】
以上のように、本実施例では、プロセッサ１１０は、図２のＳ１０５〜Ｓ１４０の処理によって、対象画像から顔を示す対象顔領域を特定する。対象顔領域が特定される場合（Ｓ１１０：Ｙｅｓ、かつ、Ｓ１４０：Ｙｅｓ）、プロセッサ１１０は、Ｓ１５０で、対象顔領域内の複数の画素のそれぞれの色値に基づいて、Ｌ＊値のガンマ補正用のガンマ値ｇを決定する。また、プロセッサ１１０は、Ｓ１７０で、対象顔領域内の複数の画素のそれぞれの色値に基づいて、彩度補正用の一次関数（具体的には、傾きと切片）を決定する。図３のＳ２００では、プロセッサ１１０は、ガンマ値ｇを用いて、対象画像の複数の画素のそれぞれのＬ＊値を補正する。Ｓ２１０では、プロセッサ１１０は、一次関数を用いて、対象画像の複数の画素のそれぞれのａ＊値とｂ＊値とを補正する。ガンマ値ｇと一次関数とは、複数の画素に共通に用いられる。
【００７８】
対象画像から対象顔領域が特定されない場合（図２のＳ１１０とＳ１４０の少なくとも一方の判断結果がＮｏ）、プロセッサ１１０は、図７の処理を実行する。ここで、プロセッサ１１０は、対象画像の複数の画素にそれぞれ対応する複数の対象閾値Ｔを決定し（Ｓ３８３）、対象画素に対応する対象閾値Ｔを用いて対象画素の輝度値Ｙを補正する（Ｓ３９０）。
【００７９】
対象画像から対象顔領域が特定されるか否かに拘わらず、プロセッサ１１０は、図３のＳ２４０で、補正済の画像データを出力する処理を実行する。
【００８０】
このように、対象画像から対象顔領域が特定される場合には、対象顔領域内の複数の画素の色値に基づいて決定されるガンマ値ｇと一次関数とが対象画像の複数の画素に共通に用いられるので、対象画像に対して人物の顔に適した補正を行うことができる。また、対象画像内の人物を表す部分と他の部分との間の色のバランスが補正によって崩れることが抑制されるので、補正済の対象画像内で人物が不自然に見えることを抑制できる。また、対象画像から対象顔領域が特定されない場合には、画素毎に対象閾値Ｔが決定されて、各画素には画素に対応する対象閾値Ｔが用いられるので、対象画像の各部分を適切に補正できる。以上のように、対象画像から対象顔領域が特定されるか否かに応じて適切な補正を行うことができる。
【００８１】
また、図７の処理において、プロセッサ１１０は、対象画像の画素密度を低減して得られる縮小画像を示す縮小画像データを生成し（Ｓ３００）、縮小画像データを用いて縮小画像の複数の画素（ｉ，ｊ）にそれぞれ対応する複数の閾値Ｔ（ｉ，ｊ）を決定する（Ｓ３２０、Ｓ３６０、Ｓ３７０）。そして、プロセッサ１１０は、縮小画像の複数の画素（ｉ，ｊ）のそれぞれの閾値Ｔ（ｉ，ｊ）を補間することによって、対象画像の画素の対象閾値Ｔを決定する（Ｓ３８３）。従って、対象画像の画素の数が多い場合であっても、対象画像の画素毎に対象閾値Ｔを決定する処理の負担の増大を抑制できる。
【００８２】
また、図２の処理において、プロセッサ１１０は、縮小画像データを用いずに、対象画像データを分析することによってガンマ値ｇを決定する（Ｓ１５０）。また、プロセッサ１１０は、縮小画像データを用いずに、対象画像データを分析することによって一次関数の傾きと切片を決定する（Ｓ１７０）。このように、対象画像から対象顔領域が特定される場合には、補正に用いられるパラメータ（ここでは、ガンマ値ｇと一次関数の傾きと切片）は、縮小画像データを用いずに、対象画像データを分析することによって決定される。従って、対象顔領域を含む対象画像に適したパラメータを決定できる。
【００８３】
また、対象画像から対象顔領域が特定されない場合の補正処理（図２：Ｓ２９０、図７）は、画素の輝度を補正する処理である。そして、図１１で説明したように、画素毎に決定される対象閾値Ｔは、輝度を増大させる処理と輝度を低減させる処理とのいずれを実行すべきかを決定するための輝度の閾値である。このような対象閾値Ｔが、画素毎に決定されるので、対象画像の複数の画素のそれぞれの輝度を適切に補正できる。
【００８４】
また、対象画像から対象顔領域が特定される場合に決定される補正用のパラメータは、輝度（ここでは、Ｌ＊値）の補正に用いられるガンマ値ｇ（図２：Ｓ１５０）と、彩度の補正に用いられる一次関数の傾きと切片（Ｓ１７０）と、を含んでいる。そして、プロセッサ１１０は、ガンマ値ｇを用いて画素の輝度（ここでは、Ｌ＊値）を補正する輝度補正処理（図３：Ｓ２００）と、一次関数を用いて画素の彩度を補正する彩度補正処理と（図３：Ｓ２１０）、を実行する。図５で説明したように、ガンマ値ｇは、対象顔領域の画素のＬ＊値の平均値ＦＬが、目標値ＴＦＬに近づくように決定される。図６で説明したように、一次関数は、対象顔領域の画素のａ＊値とｂ＊値との平均値Ｆａ、Ｆｂによって示される平均彩度値Ｆｃが、目標彩度値ＴＦｃに近づくように決定される。従って、対象顔領域と他の領域との間の色のバランスのずれを抑制しつつ、対象顔領域の画素の色を目標の色に近づけることができる。
【００８５】
また、対象画像から対象顔領域が特定される場合に輝度を補正する処理（図３：Ｓ２００）は、ガンマ補正（図５）であり、輝度を補正する処理のために決定されるパラメータは、ガンマ値ｇを含んでいる（図２：Ｓ１５０、図５）。従って、対象画像の複数の画素のそれぞれの輝度を、ガンマ補正処理によって、適切に補正できる。
【００８６】
また、対象画像から対象顔領域が特定される場合に彩度を補正する処理（図３：Ｓ２１０）は、補正前の彩度値Ｃの一次関数によって補正済の彩度値Ｃｃを決定する処理（図６）であり、彩度を補正する処理のために決定されるパラメータは、一次関数の傾きと切片とを含んでいる（図２：Ｓ１７０、図６）。従って、補正済の彩度を、補正前の彩度の一次関数によって、適切に決定できる。
【００８７】
また、プロセッサ１１０は、図２のＳ１０５で、予め決められた方法で顔領域の候補領域を特定する。そして、プロセッサ１１０は、Ｓ１４０で、候補領域内の特定の領域である注目領域の色（ここでは、ａ＊とｂ＊との平均の色値Ｆａ、Ｆｂの組み合わせ）が特定の色範囲内である場合に、注目領域を顔領域として特定する。このように、注目領域の色
を用いて顔領域が特定されるので、顔領域の特定の精度を向上できる。なお、注目領域の色としては、注目領域の複数の画素の色値の平均値に限らず、複数の画素の色値に応じて算出される種々の値であってよい。例えば、平均値、最頻値、中央値（メディアン）、最大値、最小値等の統計量が、採用されてよい。
【００８８】
Ｂ．変形例：
（１）対象画像を補正する処理としては、上記の実施例の処理に代えて、種々の処理を採用可能である。例えば、対象画像から顔領域が特定される場合に実行される輝度補正処理は、ガンマ補正処理に代えて、他の処理であってもよい。例えば、補正前のＬ＊値と補正済のＬ＊ｃ値とを対応付ける多項式に従ってＬ＊値を補正する処理を、採用してもよい。
【００８９】
また、対象画像から顔領域が特定される場合に実行される彩度補正処理は、図６で説明した処理に代えて、他の種々の処理であってよい。例えば、彩度値Ｃの全範囲がＮ個（Ｎは２以上の整数）の部分範囲に区分され、部分範囲毎に一次関数が決定されてもよい。また、一次関数を用いる処理に代えて、他の処理が採用されてよい。例えば、補正前の彩度と補正済の彩度とを対応付ける多項式（２次以上の項を含む）に従って彩度を補正する処理が、採用されてよい。
【００９０】
また、対象画像から顔領域が特定される場合に実行される補正処理は、輝度補正処理と彩度補正処理とのいずれか一方であってもよい。また、輝度補正処理と彩度補正処理とは異なる他の補正処理（例えば、コントラスト補正処理）が、実行されてもよい。また、補正処理で用いられる補正パラメータ（例えば、ガンマ値ｇなどの、補正前の色値と補正済の色値との対応関係を決定するために用いられるパラメータ）は、縮小画像データを用いて決定されてもよい。例えば、図２のＳ１３０〜Ｓ１７０が、縮小画像データを用いて実行されてもよい。いずれの場合も、補正パラメータは、顔領域の色が目標の色に近づくように、決定されることが好ましい。
【００９１】
また、図２、図３の実施例では、Ｓ１３０、Ｓ１９０において、プロセッサ１１０は、対象画像データによって示される複数の画素の色値を、ＣＩＥＬＡＢ色空間の色値（すなわち、Ｌ＊ａ＊ｂ＊値）に変換する変換処理を実行する。図２のＳ１５０、Ｓ１７０では、プロセッサ１１０は、ＣＩＥＬＡＢ色空間の色値に基づいて、補正用のパラメータを決定する。そして、図３のＳ２００、Ｓ２１０では、プロセッサ１１０は、補正用のパラメータを用いてＣＩＥＬＡＢ色空間の色値を補正することによって、複数の画素のそれぞれの色を補正する。ＣＩＥＬＡＢ色空間は、２つの色の間のユークリッド距離が２つの色の観察者によって知覚される色の相違を表すような色空間である。このような色空間は、均等色空間と呼ばれる。均等色空間の色値を補正する場合、輝度と彩度と色相とのうちの注目している色成分を、他の色成分の変化を抑制しつつ、適切に補正することができる。従って、対象画像から顔領域が特定される場合の補正処理において、プロセッサ１１０は、均等色空間の色値を補正することが好ましい。これにより、人物の顔の色が不適切な色に変化することを抑制できる。なお、均等色空間としては、ＣＩＥＬＡＢ色空間に代えて、他の種々の色空間（例えば、ＣＩＥＬＵＶ色空間）が採用されてよい。ただし、均等色空間とは異なる色空間（例えば、ＨＳＶ色空間）が採用されてもよい。
【００９２】
（２）対象画像から顔領域が特定されない場合に実行される補正処理は、図７、図８、図１０、図１１で説明した処理に代えて、他の任意の処理であってよい。例えば、輝度値Ｙのガンマ補正が行われてもよい。また、彩度補正が行われてよく、コントラスト調整処理が行われてよく、シャープネス調整処理が行われてもよい。一般的には、対象画像の複数の画素のうちの少なくとも一部の複数の画素の色を補正する特定の補正処理が、実行されてよい。いずれの場合も、補正処理で用いられる補正パラメータ（例えば、対象閾値Ｔなどの、補正前の色値と補正済の色値との対応関係を決定するために用いられるパラメータ）は、画素毎に決定されることが好ましい。ただし、共通の補正パラメータが、対象画像の複数の画素に適用されてもよい。また、補正パラメータは、縮小画像データを用いずに、対象画像データを分析することによって、決定されてもよい。
【００９３】
（３）顔領域を特定する処理としては、図２のＳ１０５〜Ｓ１４０の処理に代えて、他の種々の処理であってよい。例えば、Ｓ１２０、Ｓ１３０、Ｓ１４０が省略されてよい。この場合、Ｓ１０５で特定された候補領域が、顔領域として採用されてよい。
【００９４】
（４）図３のＳ２４０で実行される補正済の画像データを出力する処理は、複合機２００などの印刷装置に印刷データを出力する処理に代えて、他の種々の出力処理を採用可能である。例えば、プロセッサ１１０は、表示装置（例えば、画像処理装置１００の表示部１４０、画像処理装置１００に接続された図示しない外部ディスプレイなど）に、補正済の画像データを出力することによって、表示装置に対象画像を表示させてよい。また、プロセッサ１１０は、記憶装置（例えば、画像処理装置１００の不揮発性記憶装置１３０や、画像処理装置１００に接続されたリムーバブルメモリ（図示せず））に、補正済の画像データを出力することによって、記憶装置に補正済の画像データを格納してもよい。
【００９５】
（５）図１の画像処理装置は、パーソナルコンピュータとは異なる種類の装置（例えば、デジタルカメラ、スキャナ、スマートフォン）であってもよい。また、画像処理装置が、印刷装置の一部であってもよい。例えば、複合機２００の制御部２９９（具体的には、プロセッサ２１０）が、図２、図３の処理を実行してもよい。また、ネットワークを介して互いに通信可能な複数の装置（例えば、コンピュータ）が、画像処理装置による画像処理の機能を一部ずつ分担して、全体として、画像処理の機能を提供してもよい（これらの装置を備えるシステムが画像処理装置に対応する）。
【００９６】
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図２のＳ１０５の処理を実行する機能が、ASIC（Application Specific Integrated Circuit）などのハードウェア回路によって実現されてもよい。
【００９７】
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体（例えば、一時的ではない記録媒体）に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体（コンピュータ読み取り可能な記録媒体）に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやＣＤ−ＲＯＭのような携帯型の記録媒体に限らず、各種ＲＯＭ等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
【００９８】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【００９９】
１００…画像処理装置、１１０…プロセッサ、１１５…記憶装置、１２０…揮発性記憶装置、１３０…不揮発性記憶装置、１３２…プログラム、１４０…表示部、１５０…操作部、１７０…通信インタフェース、２００…複合機、２１０…プロセッサ、２１５…記憶装置、２２０…揮発性記憶装置、２３０…不揮発性記憶装置、２３２…プログラム、２４０…表示部、２５０…操作部、２７０…通信インタフェース、２８０…スキャナ部、２９０…印刷実行部、２９９…制御部、１０００…画像処理システム、Ｏｂ１…人物、ＯＦ…花、ＯＬ…葉、ＴＩ１…対象画像、ＴＩ２…対象画像、ＴＩ２ａ…縮小画像、ＴＩ２ｂ…縮小輝度画像、ＴＩ２ｃ…画像、ＴＩ２ｄ…縮小閾値画像
【図１】
2019169772.tif 000003
【図２】
2019169772.tif 000004
【図３】
2019169772.tif 000005
【図４】
2019169772.tif 000006
【図５】
2019169772.tif 000007
【図６】
2019169772.tif 000008
【図７】
2019169772.tif 000009
【図８】
2019169772.tif 000010
【図９】
2019169772.tif 000011
【図１０】
2019169772.tif 000012
【図１１】
2019169772.tif 000013
【図１２】
2019169772.tif 000014