画像処理装置、画像処理方法および画像処理プログラム
【課題】出力色空間の種別にかかわらず適切な補正量の取得を実現する。
【解決手段】入力画像データの所定の統計値であって、所定の出力色空間によって表現された統計値を取得する統計値取得手段と、機器非依存色空間において定義された、上記統計値に対する目標値を取得するとともに、当該目標値を上記出力色空間における情報に変換する目標値変換手段と、上記統計値取得手段が取得した統計値と上記変換後の情報との比較に基づいて、上記入力画像データに対する補正量を決定する補正量決定手段とを備える構成とした。
【解決手段】入力画像データの所定の統計値であって、所定の出力色空間によって表現された統計値を取得する統計値取得手段と、機器非依存色空間において定義された、上記統計値に対する目標値を取得するとともに、当該目標値を上記出力色空間における情報に変換する目標値変換手段と、上記統計値取得手段が取得した統計値と上記変換後の情報との比較に基づいて、上記入力画像データに対する補正量を決定する補正量決定手段とを備える構成とした。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法および画像処理プログラムに関する。
【背景技術】
【0002】
従来から画像処理の一種として、入力画像データの各画素の値に基づいて入力画像データの統計値を生成する処理が行なわれている。また、かかる統計値に基づいて入力画像データに対する補正量を求め、当該求めた補正量に応じて画像データの各画素の値を補正し、補正後の画像データを次の処理ステップに渡す処理が行なわれている。
【0003】
この具体例として、入力画像データの各画素のうち、特定の記憶色(例えば、肌色)に該当する画素を集計し、集計した画素のRGB毎の平均値(統計値)を求め、この各平均値と、予め求めておいた肌色の画素の理想的なRGB毎の平均値(目標値)との差分に応じてRGBそれぞれに対する修正量ΔR、ΔG、ΔB(補正量)を求め、この修正量ΔR、ΔG、ΔBに応じてRGB毎のトーンカーブを生成し、このトーンカーブを利用して画像データの全画素の要素色を変換して画像データを補正する色修正装置が知られている(特許文献1参照。)。
【特許文献1】特開平11‐8773号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
上記補正後の画像データは、補正後の処理を考慮して所定の色空間(出力色空間)で表現された画像データとして、上記次の処理ステップに出力される。従って、上記補正量の計算や補正処理も基本的に出力色空間上で実行される。そのため従来においては、補正量の計算のための上記目標値も、出力色空間上で表現された情報として所定の記憶媒体に保存されており、補正量の計算に際して適宜読み出して利用されていた。
しかし、このように目標値をある一つの出力色空間に依存した情報としてしまうと、出力色空間の設定を別の色空間に変更した場合に、それまでの目標値を補正量の計算に使用できないという問題があった。またその結果、出力色空間の設定が変り得る場合には、各出力色空間の種類に合わせて目標値も別々に予め用意しておく必要があり、メモリ容量の消費が激しかった。
【0005】
本発明は上記課題に鑑みてなされたものであり、採用され得る出力色空間の違いによらず的確に補正処理のための補正量を取得し、目的の補正を実行することが可能な画像処理装置、画像処理方法および画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明にかかる画像処理装置では、統計値取得手段は、入力画像データの所定の統計値であって、所定の出力色空間によって表現された統計値を取得する。目標値変換手段は、機器非依存色空間において定義された、上記統計値に対する目標値を取得するとともに、当該目標値を上記出力色空間における情報に変換する。補正量決定手段は、上記統計値取得手段が取得した統計値と上記変換後の情報との比較に基づいて、上記入力画像データに対する補正量を決定する。
つまり本発明によれば、補正量決定のための基準となる目標値は機器非依存色空間において定義されており、補正量決定の際に、この目標値を出力色空間における情報に変換して補正量を計算する。よって、従来のように各出力色空間の種類に合わせて目標値を別々に予め用意しておく煩雑さが無くなり、メモリの消費を抑えることができる。
【0007】
ここで統計値取得手段は、上記入力画像データを構成する各画素のうち特定の記憶色の色域に属する画素を抽出し、この抽出した画素群に基づいて生成した統計値を取得し、上記目標値変換手段は、機器非依存色空間において定義された上記記憶色の目標値を上記出力色空間における情報に変換するとしてもよい。そして、上記補正量決定手段は、上記記憶色にかかる統計値と、上記記憶色の目標値の変換後の情報との比較に基づいて補正量を決定する。かかる構成によれば、入力画像中の特定の記憶色を補正するために適した補正量を、機器非依存色空間において定義された目標値を用いて適切に得ることができる。
【0008】
また統計値取得手段は、上記記憶色の目標値に基づいて、記憶色の色域を機器非依存色空間において決定するとともに、当決定した色域を入力画像データの色空間に依存する色域に変換し、入力画像データを構成する各画素のうち当該変換後の色域に属する画素を抽出するとしてもよい。このように、画素抽出を行なう際の判断基準となる記憶色の色域の設定を、上記機器非依存色空間において定義された記憶色の目標値に基準に行うことにより、入力画像データから記憶色の色域に属する画素群を正確に抽出することができる。
【0009】
上記統計値取得手段は、上記入力画像データ内に存在する人顔を検出し、人顔の領域内の画素群に基づいて生成した統計値を取得し、上記目標値変換手段は、機器非依存色空間において定義された人顔の色の目標値を上記出力色空間における情報に変換するとしてもよい。そして上記補正量決定手段は、上記人顔にかかる統計値と、上記人顔の目標値の変換後の情報との比較に基づいて補正量を決定する。かかる構成によれば、入力画像中の人顔の色を補正するために適した補正量を、機器非依存色空間において定義された目標値を用いて適切に得ることができる。
【0010】
また上記統計値取得手段は、上記入力画像データの明るさを表現する統計値を取得し、上記目標値変換手段は、機器非依存色空間において定義された所定の明るさ目標値を上記出力色空間における情報に変換するとしてもよい。そして上記補正量決定手段は、上記明るさを表現する統計値と、上記明るさ目標値の変換後の情報との比較に基づいて補正量を決定する。かかる構成によれば、入力画像の明るさを補正するために適した補正量を、機器非依存色空間において定義された目標値を用いて適切に得ることができる。
【0011】
さらに画像処理装置は、上記決定した補正量に基づいて、上記出力色空間において入力画像データを補正する補正手段を備えるとしてもよい。かかる構成とすることで、記憶色や、人顔や、明るさ等をそれぞれ補正するための各補正量の全て或いは一部を用いて、出力色空間上で入力画像データを補正することができる。その結果、画像処理装置は、最適な補正が施されて上記出力画像空間において表現された画像データを、次の処理ステップに引き渡すことができる。
【0012】
なおこれまでは、画像処理装置というカテゴリーで本発明にかかる技術的思想を説明したが、上記の画像処理装置が備える各手段にそれぞれ対応した処理工程を備える画像処理方法の発明や、画像処理装置が備える各手段にそれぞれ対応した機能をコンピュータに実行させる画像処理プログラムの発明をも把握可能であることは言うまでも無い。
【発明を実施するための最良の形態】
【0013】
以下の順序に従って、本発明の実施形態を説明する。
(1)画像処理装置などの概略構成
(2)記憶色画素の抽出処理
(3)統計データの取得処理
(4)補正量の計算および補正処理
(5)変形例
(6)まとめ
【0014】
(1)画像処理装置などの概略構成
図1は、本発明の一実施形態にかかる画像処理装置と、その周辺機器の概略構成をブロック図により示している。同図においては、画像処理の中心的な役割を果たす画像処理装置としてのコンピュータ20を示している。コンピュータ20は、CPU21、ROM22、RAM23、ハードディスク(HD)24などを備える。コンピュータ20には、各種の画像入力装置としてのスキャナ11、デジタルスチルカメラ12や、各種の画像出力装置としてのプリンタ31、ディスプレイ32が適宜接続される。
【0015】
コンピュータ20においては、CPU21がRAM23をワークエリアとして使用しながら、ROM22やHD24等の所定の記憶媒体に保存されている各種プログラムを実行する。本実施形態では、CPU21はHD24に記憶されているアプリケーション(APL)25を読み出して実行する。実行されるAPL25は、概略、画像データ取得部25aと、画素抽出部25bと、統計データ取得部25cと、補正量取得部25dと、補正部25eといった各機能ブロックを構成する。
【0016】
画像データ取得部25aは、上記画像入力装置から出力される画像データや、HD24に予め保存されている画像データを、入力画像データとして取得する。
画素抽出部25bは、入力画像データを構成する画素のうち所定の条件に該当する画素を抽出(サンプリング)する。本実施形態では、特定の記憶色の色域に該当する画素を抽出する。特定の記憶色とは、肌色や、空色や、緑色や、赤色等といった、画像の中でも特に重要とされる特定の色を意味する。
【0017】
統計データ取得部25cは、画素抽出部25bによって抽出された画素群や、画像データ取得部25aから受け渡された入力画像データの画素群などに基づいて、各種統計値(統計データ)を生成し取得する。統計データ取得部25cは、画素群に基づいてヒストグラムを生成し、ヒストグラムの集計結果から各統計データを生成する統計データ生成部25c1と、この生成された統計データを、所定の機器非依存色空間によって表現される色情報に変換し、当該変換後の色情報をHD24に統計データ24cとして保存する統計データ変換部25c2とからなる。
【0018】
補正量取得部25dは、HD24から統計データ24cを読み出すとともに、補正目標値24bを取得して、入力画像データを補正するための補正量を決定する。補正目標値24bとは、統計データ24cの理想値であり、HD24等の所定の記憶媒体に予め保存されていたり、外部から入力される。本実施形態では、補正目標値24bは所定の機器非依存色空間において定義された情報としている。補正量取得部25dは、補正目標値24bを所定の出力色空間における情報に変換する目標値変換部25d1と、統計データ24cを同所定の出力色空間における情報に変換する統計データ変換部25d2と、上記変換後の統計データと補正目標値との比較に基づいて補正量を計算する補正量決定部25d3とからなる。
【0019】
補正部25eは、画像データ取得部25aから入力画像データを受け取るとともに、上記決定された補正量に基づいて、入力画像データを画素単位で補正し、当該補正後の画像データを出力する。
画素抽出部25b、統計データ取得部25c、補正量取得部25d、補正部25eそれぞれによる処理の詳細については後述する。
【0020】
コンピュータ20では、APL25はオペレーティングシステム26に組み込まれて実行され、オペレーティングシステム26には、プリンタドライバ27およびディスプレイドライバ28も組み込まれている。ディスプレイドライバ28はディスプレイ32への画像表示を制御するドライバであり、APL25の補正部25eから出力された補正後の画像データに基づいて、画像をディスプレイ32に表示させることが可能である。また、プリンタドライバ27は、APL25の補正部25eから出力された補正後の画像データに対して、インク色(例えば、シアン、マゼンタ、イエロー、ブラック)表色系への色変換処理やハーフトーン処理やラスタライズ処理などを実行して印刷データを生成するとともに、この印刷データをプリンタ31に出力することにより、プリンタ31に印刷データに基づく画像の印刷を実行させることが可能である。
【0021】
ここで、上記画像データ取得部25aが取得する入力画像データは、RGBの各要素色を複数階調(例えば、0〜255の256階調)で表現して各画素の色を規定したドットマトリクス状のデータである。RGB色空間としては、sRGB色空間が一般的であるが、AdobeRGB(AdobeはAdobe systems社の登録商標。)色空間など、sRGB色空間よりも広い色再現範囲を有する色空間も存在する。従って、デジタルスチルカメラ12などの画像入力装置から出力される入力画像データが採用する色空間(入力色空間)は、sRGB色空間であったり、sRGB色空間とは異なる色空間であったりする。一方、補正部25eが出力する画像データ、つまりAPL25がプリンタドライバ27等の次の処理ステップに受け渡す画像データを表現するための色空間(出力色空間)の設定は、入力色空間と同じであることもあれば異なることもある。
【0022】
本実施形態では、入力色空間が何であるか、また入力色空間と出力色空間とが同じであるか否か、に拘らず入力画像データに対する適切な補正を実行可能な構成を実現している。以下では説明を容易とするため、入力色空間、出力色空間のそれぞれは、sRGB色空間とsRGB色空間よりも色再現範囲の広い特定の色空間(wRGB色空間)とのいずれかであるものとする。sRGB色空間とwRGB色空間とはいずれも機器依存色空間である。
【0023】
なお、本実施形態で説明するコンピュータ20が実行する処理は、その全て或いは一部を、上記画像入力装置の側で実行するとしてもよいし、上記画像出力装置の側で実行するとしてもよい。例えば、補正部25eの機能については、プリンタ31やディスプレイ32の側に備えさせ、プリンタ31やディスプレイ32が、上記APL25から受け渡された画像データを補正し、補正後の画像データに基づいて印刷処理や画像表示処理を行なうとしてもよい。この場合、コンピュータ20とプリンタ31、ディスプレイ32とによって画像処理システムが構築されると言える。
【0024】
(2)記憶色画素の抽出処理
図2は、コンピュータ20がAPL25に従って実行する画像処理の一部であって、主に画素抽出部25bに従って実行する処理をフローチャートにより示している。
ステップS(以下、ステップの記載を省略する)100では、コンピュータ20は、入力画像データがいずれの色空間によって表現されているかを判別する。画像データ取得部25aが取得する入力画像データには、その画像データに関する各種付属情報を記述したヘッダが付加されており、かかるヘッダに入力色空間の種別を示した情報が記述されている。コンピュータ20は、このヘッダに記述された情報に基づいて、入力色空間の種別を判別する。
【0025】
S110では、コンピュータ20は、HD24に予め保存されている色域定義情報24aを読み出す。ただし、コンピュータ20は色域定義情報24aをコンピュータ20外部から入力するようにしてもよい。色域定義情報24aは、機器非依存色空間において記憶色の範囲を定義した情報である。本実施形態では、機器非依存色空間として、国際照明委員会(CIE)で規定されたL*a*b*色空間を採用する。従って色域定義情報24aは、記憶色についてその明度(L*)、彩度(C*)、色相(h*)の各範囲を定義したものである(以下、「*」は省略)。
【0026】
図3は、ある記憶色(例えば、肌色)の色域定義情報24aによって定義された色域Aの一例をLab色空間中に示している。同図に示すように、色域Aは、明度L、彩度C、色相hの各範囲、
Ls≦L≦Le
Cs≦C≦Ce
hs≦h≦he
によって区画された立体にて表現される。同図では、ab平面上へ色域Aの投影図もハッチングを施して併せて示している。
S120では、コンピュータ20は、色域Aの各面において変換基準点Pを設定する。変換基準点Pとは、色域Aの外郭上の座標のうち入力画像データの色空間に依存する情報への変換対象となる座標値を意味する。
【0027】
図4に示すように、コンピュータ20は、色域Aの各面において1つずつ変換基準点P(P1〜P6)を設定する。変換基準点Pの位置を各面のどこにするかは種々の考えを採用できるが、本実施形態では各面の中心位置をそれぞれ変換基準点P1〜P6としている。ここで、変換基準点P1は、色域Aのうち色相角が最も小さい面上の点であり、変換基準点P2は、色域Aのうち色相角が最も大きい面上の点であり、変換基準点P3は、色域Aのうち彩度が最も低い面上の点であり、変換基準点P4は、色域Aのうち彩度が最も高い面上の点であり、変換基準点P5は、色域Aのうち明度が最も低い面上の点であり、変換基準点P6は、色域Aのうち明度が最も高い面上の点である。
【0028】
S130では、コンピュータ20は、変換基準点Pの座標データLabを入力色空間に依存する情報に変換する。まず、コンピュータ20は上記S100で判別済みの入力色空間の種別に応じたICCプロファイルをHD24等の所定の記憶媒体から取得し、当該ICCプロファイルを参照して各変換基準点Pの座標データLabをRGBデータに変換する。入力色空間がsRGB色空間である場合には、Lab色空間の複数の参照点についてそのLabデータとsRGB色空間におけるRGBデータとの変換対応関係を規定したICCプロファイルを取得し、そのプロファイルを参照することにより、各変換基準点PのLabデータをRGBデータに変換する。
【0029】
変換基準点Pの座標値を入力画色空間に依存する情報に変換すると言った場合、最も単純には、上記のように変換して得られたRGBデータ自体が上記入力色空間に依存する情報に該当する。しかし本実施形態では、このように変換したRGBデータを更にHSV形式の情報に変換する。H(Hue)は色相、S(Saturation)は彩度、V(Value)は明度を意味する。RGBからHSVへの変換は、公知の変換式により実行可能である。
【0030】
かかる処理の結果、図4に示した変換基準点P1〜P6は、
P1(L1,a1,b1)→P1´(H1,S1,V1)
P2(L2,a2,b2)→P2´(H2,S2,V2)
P3(L3,a3,b3)→P3´(H3,S3,V3)
P4(L4,a4,b4)→P4´(H4,S4,V4)
P5(L5,a5,b5)→P5´(H5,S5,V5)
P6(L6,a6,b6)→P6´(H6,S6,V6)
というように変換されたことになる。
【0031】
このようなHSVの値は変換元のRGBの数値によって決まる値であるため、入力色空間に依存する情報と言える。むろん、入力色空間がwRGB色空間である場合には、コンピュータ20はLab色空間からwRGB色空間への変換対応関係を規定したICCプロファイルを参照して各変換基準点PのLabデータをRGBデータに変換し、この変換後のRGBデータをHSV形式で表現する。
【0032】
なおコンピュータ20は、上記のようにLabデータをRGBデータに変換し、これをHSVデータに変換するという2段階の変換作業を行なうのではなく、入力色空間の種別毎にLabデータとHSVデータとの変換対応関係を規定したルックアップテーブル(LUT)を予め生成してHD24等の所定の記憶媒体に保持しておくとしてもよい。つまり、Lab色空間からsRGB色空間(あるいはwRGB色空間)への変換対応関係を規定するICCプロファイルにおける各RGBデータをHSVデータに変換するとともに、この変換によって得た各HSVデータを、変換元のRGBデータに対応するLabデータに対応付けることにより、LabデータをsRGB色空間(あるいはwRGB色空間)に依存したHSVデータに変換可能なLUTを生成する。
【0033】
上記S130では、コンピュータ20は、このように生成した各LUTを入力色空間の種別に応じて選択して参照することにより、各変換基準点PのLabデータをHSVデータに変換するとしてもよい。
【0034】
S140ではコンピュータ20は、S130の変換処理によって得られた、入力色空間に依存する情報に基づいて、画素抽出のための色域を決定する。
本実施形態においては変換基準点P1〜P6の変換結果として、座標値P1´〜P6´が得られているので、コンピュータ20はこれら座標値P1´〜P6´に基づいて画素抽出のための色域A´を決定する。座標値P1´は上記色域Aのうち色相角が最も小さい面上の変換基準点P1を変換した結果であり、座標値P2´は色域Aのうち色相角が最も大きい面上の変換基準点P2を変換した結果であるため、座標値P1´の色相H1と座標値P2´の色相H2とによって挟まれる範囲を色域A´の色相範囲とする。
【0035】
また、座標値P3´は色域Aのうち彩度が最も低い面上の変換基準点P3を変換した結果であり、座標値P4´は色域Aのうち彩度が最も高い面上の変換基準点P4を変換した結果であるため、座標値P3´の彩度S3と座標値P4´の彩度S4とによって挟まれる範囲を色域A´の彩度範囲とする。
また、座標値P5´は色域Aのうち明度が最も低い面上の変換基準点P5を変換した結果であり、座標値P6´は色域Aのうち明度が最も高い面上の変換基準点P6を変換した結果であるため、座標値P5´の明度V5と座標値P6´の明度V6とによって挟まれる範囲を色域A´の明度範囲とする。
【0036】
図5は、色域A´をHSV表色空間において示している。同図に示すように、色域A´は、
H1≦H≦H2
S3≦S≦S4
V5≦V≦V6
によって区画された立体にて表現される。
このようにS100〜S140の処理によって、色域定義情報24aが定義する色域(色域A)を入力画像データの色空間に依存する色域(色域A´)に変換することができる。また、変換後の色域についても明度と彩度と色相の各範囲によって定義することで、変換前の色域と変換後の色域との形状の類似性を保つことができる。
【0037】
S150ではコンピュータ20は、入力画像データを構成する画素のうち、上記変換後の色域に属する画素を抽出する。この場合、各画素についてそのRGBデータをHSVデータで表現した上で上記変換後の色域に属するか否かを判断し、属する画素のみ抽出する。抽出された画素群は上述の統計データ取得部25cに受け渡され、統計データ24cの算出元のデータとなる。
なお図3,4では、1つの色域定義情報24aにかかる色域のみを図示しているが、上述したような記憶色の種類毎に色域定義情報24aは存在する。本実施形態では、少なくとも肌色と、空色と、緑色と、赤色と、低彩度色との色域をそれぞれ定義した色域定義情報24aが存在するものとする。コンピュータ20は、色域定義情報24a毎にそれらの色域を入力色空間に依存する色域に変換し、変換後の色域毎に画素抽出を行なう。
【0038】
(3)統計データの取得処理
図6は、コンピュータ20がAPL25に従って実行する画像処理の一部であって、主に統計データ取得部25cに従って実行する処理をフローチャートにより示している。
S200では、コンピュータ20は、上述したように記憶色毎に抽出された画素群を対象として統計データを生成する。具体的には、一つの記憶色にかかる画素群に基づいて、要素色RGB毎のヒストグラムを生成し、そのRGB毎のヒストグラムそれぞれにおける平均値Rav、Gav、Bavを算出する。
【0039】
図7(a)〜(c)は、RGBそれぞれのヒストグラムを例示している。各ヒストグラムは、縦軸に画素数、横軸に階調値(0〜255)を規定した頻度分布である。
平均値Rav、Gav、Bavの算出は、記憶色の種類毎に行なう。従ってS200では、入力画像データに関して、記憶色毎かつRGB毎の平均値が生成される。ただし、上記S150において抽出された画素数が入力画像データの全画素数に対して所定割合以上存在しない記憶色に関しては、統計データの生成は行なわない。入力画像データ中に存在しないか存在しても極めて少数である色については、補正を行う必要性が低いからである。
【0040】
S210では、コンピュータ20は、入力画像データ全体を対象とした統計データを生成する。具体的には、入力画像データの全範囲の画素を対象としてRGB毎のヒストグラムを生成し、そのRGB毎のヒストグラムそれぞれにおける最大値Rmax、Gmax、Bmaxと、最小値Rmin、Gmin、Bminとを取得する。最大値および最小値を求める場合、単純にヒストグラム上の最も高階調側の階調値を最大値とし、最も低階調側の階調値を最小値としてもよい。しかし本実施形態では、最も高階調側の階調値と最も低階調側の階調値とからある分布割合(例えば、ヒストグラムの集計に用いた画像数の0.5%分)だけヒストグラムの内側に入った位置をそれぞれ最大値、最小値としている。このようにヒストグラムの上端と下端を所定割合だけカットすれば、高階調側や低階調側でノイズなどに起因して生じている白点や黒点の影響を無視した統計データを生成することができる。かかる上端と下端のカットは、他のヒストグラムに基づく統計データの生成時にも実行する。
【0041】
S220では、コンピュータ20は、入力画像データを複数の領域に分割するとともに、分割した領域毎の統計データを生成する。
図8は、入力画像データDを複数の領域に分割した様子の一例を示している。同図では、入力画像データDを縦横それぞれ5分割し、計25個の領域Tを形成している。むろん、入力画像データDの分割の仕方は同図に示した態様に限られない。コンピュータ20は分割後の領域単位でRGB毎のヒスグラムを生成し、RGB毎のヒストグラムそれぞれの平均値Rav、Gav、Bavを算出する。従ってS220では、入力画像データに関して、分割した領域毎かつRGB毎の平均値が生成される。またS220では、平均値以外にも、各ヒストグラムの中央値(メジアン)Rmed、Gmed、Bmedを生成してもよい。
【0042】
S230では、コンピュータ20は、入力画像データ中に存在する人物の顔(人顔)を検出するとともに、検出した人顔の領域内の画素群を対象とした統計データを生成する。人顔の検出処理は、公知の人顔検出用のプログラムを用いて実行可能である。ここでは、検出した人顔の範囲内の画素群に基づいてRGB毎のヒストグラムを生成し、そのRGB毎のヒストグラムそれぞれにおける平均値Rav、Gav、Bavを算出する。人顔が複数検出された場合は、検出した人顔毎に平均値Rav、Gav、Bavを算出する。むろん、人顔が検知されない場合は人顔に関する統計データは生成しない。
なお、上記各ヒストグラムを生成する場合、ヒストグラムの集計対象とした領域に属する全画素に基づいて生成してもよいが、同集計対象とした領域の中から所定の抽出率に基づいて抽出した画素に基づいて生成してもよい。
【0043】
S240では、コンピュータ20は、上記のように生成した各統計データを、Lab色空間上の色情報に変換する。つまりS200〜S230で生成した各統計データは入力色空間に依存する情報であるため、これを機器非依存色空間であるLab色空間の情報に変換することにより、後の補正量計算の際に用いられる色空間(出力色空間)がどのようなものであっても統計データを容易に利用できるようにしている。具体的にはS240では、上記S100で判別済みの入力色空間に応じた変換プロファイル(入力デバイスプロファイルとも言う)をHD24等の所定の記憶媒体から取得し、当該変換プロファイルを参照して、統計データとしてのRGBデータをLabデータに変換する。入力色空間がsRGB色空間である場合には、sRGB色空間をLab色空間に変換する変換プロファイルを使用し、入力色空間がwRGB色空間である場合には、wRGB色空間をLab色空間に変換する変換プロファイルを使用する。
【0044】
図9は、入力色空間に依存する情報としての各統計データをLabデータに変換した一例を示している。同図では、入力色空間がsRGB色空間である場合を示している。また同図および後述の図11では、Labデータについても0〜255の256階調にて表現している。
本実施形態では、要素色RGB別の統計データであって同種の統計データの組み合わせを一つの色とみなし、この組み合わせをLabデータに変換している。つまり、入力画像データ全体のヒストグラムの最大値Rmax、Gmax、Bmaxの組み合わせからなるRGBデータや、ある記憶色についての平均値Rav、Gav、BavからなるRGBデータや、ある分割後の領域についての平均値Rav、Gav、BavからなるRGBデータや、人顔の色にかかる平均値Rav、Gav、BavからなるRGBデータ等をそれぞれLabデータに変換している。
【0045】
上記同種の統計データの組み合わせにおける一つ一つの値(例えば、ヒストグラムの最大値Rmax、Gmax、Bmax)は、必ずしもそれらが同じ画素に属していると言う訳ではないが、色味が互いに接近した画素に属していると言える。例えば、上記最大値Rmax、Gmax、Bmaxはいずれも白っぽい画素に属したものであろうし、上記最小値Rmin、Gmin、Bminはいずれも黒っぽい画素に属したものであると想定される。また、一つの記憶色についての平均値Rav、Gav、Bavや、分割後の一つの領域についての平均値Rav、Gav、Bavなども、その組み合わせを構成するRGBは色味が似通った画素に属していると想定される。さらに上述したように、各ヒストグラムから統計データを求める場合には、ヒストグラムの上端および下端をそれぞれ所定分布割合だけカットした上で求めており、ノイズの影響が統計データに表れることを防止している。従って、上記同種の統計データの組み合わせを一つの色として扱っても大きな支障はなく、これをLabデータに変換しても統計値としての情報が劣化することは殆ど無いと言える。また、上記同種の統計データの組み合わせをLabデータに変換することにより、入力画像データの要素色RGB毎に生成した各種統計データを効率的に、Lab色空間上の情報に変換できる。
【0046】
S250では、コンピュータ20は、上記のようにLab色空間上の値に変換した後の統計データ24cをHD24に保存する。
なお図6の各ステップで説明した統計データの生成処理の順序は、上述したS200〜S230の順序に限られず、他の順序であってもよい。また、上述した各統計データの他にも、コンピュータ20は入力画像データに関する様々な統計値を生成可能である。
【0047】
(4)補正量の計算および補正処理
図10は、コンピュータ20がAPL25に従って実行する画像処理の一部であって、主に補正量取得部25d及び補正部25eに従って実行する処理をフローチャートにより示している。
S300では、コンピュータ20は出力色空間の種類を判別する。出力色空間は、補正量取得部25dによる補正量計算および補正部25eによる画像データの補正処理を実行するときに用いる色空間(作業用色空間)となる。よってコンピュータ20は、補正量の計算に先立って、出力色空間が何であるかを判別する。
【0048】
コンピュータ20は、例えば所定のユーザーインターフェース(UI)を介して外部から出力色空間の指定を受付けることにより、出力色空間の種類を判別する。あるいは、出力色空間の種類を予めデフォルトとして規定した情報がHD24等の所定の記憶媒体に存在する場合には、かかる情報を読み出すことにより出力色空間の種類を判別する。あるいは、上記S100と同様に、入力画像データのヘッダに記述されている付属情報を読み出し、付属情報中に出力色空間を指定する情報が存在する場合には、当該情報に基づいて出力色空間が何であるかを判別する。
【0049】
S310では、コンピュータ20は、入力画像データに適用する補正の種類を決定する。本実施形態においては、補正部25eが実行可能な補正の種類として、記憶色補正、人顔補正、明るさ補正、カラーバランス補正、ホワイトバランス補正等(各補正の内容については後述)があり、コンピュータ20は、例えばUIを介して外部から補正種類の指定を受付けることにより、入力画像データに対して施す補正種類を決定する。また、コンピュータ20は、入力画像データのヘッダに撮影時のシーン情報(風景画、夜景画、人物画等)が記述されている場合には、当該シーン情報に応じて自動的に補正の種類を決定しても良いし、所定のシーン判別用のプログラムによって入力画像データの撮影シーンを判別し、この判別結果に応じて自動的に補正の種類を決定しても良い。また、上記UIを介して外部から指定された入力画像データのシーンの種類に応じて自動的に補正の種類を決定しても良い。
【0050】
S320では、コンピュータ20は、上記S310で決定した種類にかかる補正を実現するために必要な補正目標値24bを、HD24等の所定の記憶媒体から読み出す。
S330では、コンピュータ20は、上記読み出した補正目標値24bを、上記S300において判別した出力色空間上のデータに変換する。本実施形態では、補正目標値24bは出力色空間によらずLabデータとして保存しているため、補正量計算を出力色空間において行なうために補正目標値24bについて色空間変換を行なう。
【0051】
図11は、補正目標値24bの色空間を出力色空間へ変換した場合の一例を示している。同図では、上記S310において、記憶色(緑色)補正と、記憶色(空色)補正と、記憶色(肌色)補正と、記憶色(赤色)補正と、人顔補正と、明るさ補正とを実行することを決定した場合に行なう、補正目標値24bの変換の様子を示している。この場合上記S320では、各種補正目標値24bのうち、記憶色(緑色)補正の目標値と、記憶色(空色)補正の目標値と、記憶色(肌色)補正の目標値と、記憶色(赤色)補正の目標値と、人顔補正の目標値と、明るさ補正の目標値(明るさ目標値)とを読み出す。
【0052】
同図は、出力色空間がwRGB色空間に設定されている場合の変換処理の例であり、この場合上記S330では、コンピュータ20は、上記読み出した目標値としての各Labデータを、Lab色空間からwRGB色空間への変換対応関係を規定した既述のICCプロファイルを用いてRGBデータに変換する。むろん、出力色空間がsRGB色空間である場合には、Lab色空間からsRGB色空間への変換対応関係を規定した既述のICCプロファイルを用いて、目標値としての各LabデータをRGBデータに変換する。
【0053】
S340では、コンピュータ20は、上記S310で決定した種類にかかる補正を実行するために必要な統計データ24cをHD24から読み出す。図11の例に対応した説明を行なうと、コンピュータ20は、図9に示した統計データ24c(Labデータ)のうち、記憶色(緑色)についての統計データと、記憶色(空色)についての統計データと、記憶色(肌色)についての統計データと、記憶色(赤色)についての統計データと、人顔についての統計データと、入力画像データの各領域についての統計データであって各領域の平均値Rav、Gav、Bavを変換したLabデータと、を読み出す。
【0054】
S350では、コンピュータ20は、上記読み出した統計データ24cを上記S300において判別した出力色空間上のRGBデータに変換する。ここでも、出力色空間がwRGB色空間である場合には、Lab色空間からwRGB色空間への変換対応関係を規定した既述のICCプロファイルを用いて、統計データとしての各LabデータをRGBデータに変換し、出力色空間がsRGB色空間である場合には、Lab色空間からsRGB色空間への変換対応関係を規定した既述のICCプロファイルを用いて、統計データとしての各LabデータをRGBデータに変換する。なお、上記S100〜S350までの処理を実行する点で、コンピュータ20はその一部の機能として、入力画像データの所定の統計値であって所定の出力色空間によって表現された統計値を取得する統計値取得手段を実現しているとも言える。
【0055】
S360では、上記変換後の補正目標値と統計データとの比較結果に基づいて、補正量を計算する。
例えば、上記S330で変換した後の記憶色(緑色)補正の目標値がRgs、Ggs、Bgsであり、上記S350で変換した後の記憶色(緑)についての統計データがRg、Gg、Bgである場合、入力画像データに対して記憶色(緑)補正を行うための補正量ΔRg、ΔGg、ΔBgを式(1)〜(3)のように求める。
ΔRg=αg(Rgs−Rg) …(1)
ΔGg=αg(Ggs−Gg) …(2)
ΔBg=αg(Bgs−Bg) …(3)
【0056】
αgは、記憶色(緑色)補正に対して設定された重み付け係数であり、入力画像データに対する記憶色(緑色)補正の適用度合いを規定した係数である。かかる重み付け係数も補正目標値24bとともにHD24等の所定の記憶媒体に記録されている。
記憶色(空色)補正を行なうための補正量ΔRb、ΔGb、ΔBbと、記憶色(肌色)補正を行なうための補正量ΔRs、ΔGs、ΔBsと、記憶色(赤色)補正を行なうための補正量ΔRr、ΔGr、ΔBrと、人顔補正を行なうための補正量ΔRf、ΔGf、ΔBfとについても、上記補正量ΔRg、ΔGg、ΔBgと同様に、補正目標値としてのRGBデータと、統計データとしてのRGBデータとの要素色毎の差分に、その補正種類に応じて予め設定されている重み係数αを乗算することにより取得する。
【0057】
また、コンピュータ20は、明るさ補正のための補正量を次のように求める。図11からも判るように、予めLabデータとして保存されていた明るさ補正の目標値は、上記S330の処理によってRGBデータに変換される。コンピュータ20はまず、この明るさ補正の目標値としてのRGBデータから輝度Y(補正基準輝度Ysと呼ぶ)を求める。一般に、輝度Yの算出は、RGBの重み付け積算の式(4)
Y=0.30R+0.59G+0.11B …(4)
等によって算出可能である。ただし本実施形態では、上記明るさ補正の目標値としてのLabデータは、これをRGBデータに変換したときにRGBの各階調値が等値となるような値に設定してある。そのためコンピュータ20は、上記変換後の明るさ補正の目標値のRGBの階調値(R、G、Bいずれの階調値でも良い)を補正基準輝度Ysとする。
【0058】
次に、コンピュータ20は、補正基準輝度Ysとの比較に用いる入力画像データの明るさを、上記S350で変換した後の各領域についての統計データ(RGBデータ)に基づいて決定する。この場合まず、各領域についての統計データ(RGBデータ)からそれぞれに輝度Yiを算出する。輝度の算出は上記式(4)により可能である。各領域についての統計データ(RGBデータ)は、入力画像データの各領域のRGB毎の平均値Rav、Gav、BavをLabデータに変換し、このLabデータを出力色空間に依存するRGBデータに変換したものであるため、各輝度Yiは、入力画像データを出力色空間上で表したときの各領域の輝度の略平均値をそれぞれ表していると言える。なお、各領域についての統計データは、入力画像データの明るさを表現する統計値に該当する。
各領域の輝度Yiを得たら、次にコンピュータ20は、輝度Yiの全てあるいは一部に基づいて、入力画像データの輝度平均値Yav(入力画像データの明るさ)を算出する。ここでは一例として、輝度平均値Yavを画像の略中央領域の輝度Yiを重視して算出する。
【0059】
図12は、輝度平均値Yavの算出処理を説明するための図である。同図では、上記図8と同様に入力画像データDを複数の領域Tに分割した様子を示している。また上述したように、ここでは各領域Tについて輝度Yi(同図においては、i=1〜25)が得られている。コンピュータ20は、入力画像データを中央領域と、中央領域以外の領域(縁領域と呼ぶ)に分け、中央領域の輝度と縁領域の各領域Tの輝度との差を算出し、各差の大きさと所定のしきい値THとを比較する。一例として、25個の領域のうち画像中央の9個の領域Tで形成される範囲を中央領域とし、中央領域の外側の16個の領域Tを縁領域とする。
【0060】
中央領域の輝度と言った場合には、中央領域中の各領域Tの輝度Yiの平均値を指してもよいし、中央領域中の特定の領域Tの輝度Yiを指しても良い。ここでは、中央領域内の一つの領域Tを注目ブロックT1とし、注目ブロックT1の輝度Ynと、縁領域の各領域Tの輝度(Y1,Y2,Y3…)との差をそれぞれ算出する。そして、縁領域の各領域Tのうち、上記算出された差の大きさがしきい値THを越えるものについては、輝度平均値Yavの算出対象からは除外し、除外しなかった縁領域の各領域Tの輝度Yiおよび中央領域の各領域TのYiに基づいて平均値を算出し、この算出結果を輝度平均値Yavとする。
【0061】
ただし、画像の略中央領域の輝度を重視して輝度平均値Yavを算出する手法は、上記手法に限られない。例えば、各領域Tの輝度Yiに対して、各領域Tの画像内での位置に応じた重み係数(0〜1の値)を与えて積算し、この積算結果を入力画像データの輝度平均値Yavとしてもよい。この重み係数は、画像の中央に近い領域Tほど大きな値を与えるものとする。また、各領域Tに与える重み係数の総和が1になるようにする。
【0062】
上記のように補正基準輝度Ysと輝度平均値Yavとを算出したら、コンピュータ20は、入力画像データに対して明るさ補正を行うための明るさ補正量ΔYを式(5)のように求める。
ΔY=αy(Ys−Yav) …(5)
αyは、明るさ補正に対して設定された重み付け係数であり、かかる重み付け係数も補正目標値24bとともにHD24等の所定の記憶媒体に記録されている。
以上の処理によって、S360における補正量計算(記憶色(緑色)補正と、記憶色(空色)補正と、記憶色(肌色)補正と、記憶色(赤色)補正と、人顔補正と、明るさ補正とを行なう場合の各補正量の計算)が終了する。
【0063】
ここで、入力画像データの輝度平均値Yavを求める際に画像の略中央領域の輝度を重視したのは以下の理由による。画像の略中央領域には、例えば人物の顔など画像の中でも特に重要なものが表されていることが多い。従って、重要な被写体が表されている可能性の高い略中央領域の輝度を縁領域の輝度よりも重視してその入力画像データの明るさ(輝度平均値Yav)を求めることで、補正対象の画像にとって最適な明るさ補正量ΔYを得ることができる。また、逆光条件で撮影された画像のように、画像の中央部分が暗く中央部分の周囲が明るい画像の場合、中央部分の輝度を重視した補正量ΔYを設定することにより、暗い中央部分の明るさを上昇させる最適な明るさ補正を行なうことができる。
【0064】
S370では、コンピュータ20は、補正量に応じた補正度合いを持つ補正用LUTを生成する。例えば補正用LUTとしてトーンカーブを生成する。上記S360においてRGB毎の補正量を算出している場合は、RGB別のトーンカーブを生成する。上述した例では、RGB毎の補正量として、記憶色(緑色)の補正量ΔRg、ΔGg、ΔBg、記憶色(空色)の補正量ΔRb、ΔGb、ΔBb、記憶色(肌色)の補正量ΔRs、ΔGs、ΔBs、記憶色(赤色)の補正量ΔRr、ΔGr、ΔBr、人顔補正を行なうための補正量ΔRf、ΔGf、ΔBfを算出した。その為、コンピュータ20は、各補正量をRGB毎別に積算し、積算後の値をRGB毎の総合的な補正量ΔR、ΔG、ΔBとする。つまりこの場合、ΔR=ΔRg+ΔRb+ΔRs+ΔRr+ΔRf、ΔG=ΔGg+ΔGb+ΔGs+ΔGr+ΔGf、ΔB=ΔBg+ΔBb+ΔBs+ΔBr+ΔBf、となる。そして、上記補正量ΔR、ΔG、ΔBに応じたトーンカーブをそれぞれ生成する。
【0065】
図13はトーンカーブの一例を示している。同図に示したトーンカーブCは、要素色Rについて入力階調値(0〜255)を出力階調値(0〜255)に補正するLUTの例であり、そのカーブの度合いを、上記補正量ΔRに応じて決定することにより生成されている。つまり、図中に示した入力階調値=出力階調値となる直線グラフF上の所定のコントロールポイントCPに補正量ΔRを加算する補正を施し、補正後のコントロールポイントCP´と直線グラフFの両端とを含むような曲線をスプライン補間を用いて算出し、算出した曲線をトーンカーブCとしている。コントロールポイントCPの位置は特に限られないが、例えば、補正量が正の値である場合には、入力階調範囲の中間値(128)より低階調側の一の入力階調値に対応する直線グラフF上の位置をコントロールポイントCPとし、補正量が負の値である場合には、上記中間値よりも高階調側の一つの入力階調値に対応する直線グラフF上の位置をコントロールポイントCPとすることができる。むろん、上記S350で変換した後の統計データのRGBの各階調値に基づいてコントロールポイントCPを決定してもよい。コンピュータ20は、このようにして、要素色GおよびBについてのトーンカーブもそれぞれ生成する。
また、上述したように明るさ補正のための補正量ΔYをも算出済みである場合には、このΔYに応じたトーンカーブも生成し、これを明るさ補正用LUTとする。
【0066】
S380では、コンピュータ20は、入力画像データの色空間を必要に応じて、出力色空間に変換する。かかる変換処理は、入力色空間と出力色空間とが異なる場合にのみ行い、入力色空間と出力色空間とが同じである場合には当該S380の処理はスキップする。コンピュータ20は、上記S100とS300において入力色空間の種別と出力色空間の種類とをそれぞれ判別済みである。そのため、かかる判別結果を参考にして、例えば、入力色空間がsRGB色空間で、出力色空間がwRGB色空間である場合には、コンピュータ20はsRGB色空間をwRGB色空間に変換する変換プロファイルをHD24等の所定の記憶媒体から読み出し、当該読み出した変換プロファイルを用いて入力画像データの各画素のRGBデータを出力色空間におけるRGBデータに変換する。逆に、入力色空間がwRGB色空間で、出力色空間がsRGB色空間である場合には、コンピュータ20はwRGB色空間をsRGB色空間に変換する変換プロファイルをHD24等の所定の記憶媒体から読み出し、当該読み出した変換プロファイルを用いて入力画像データの各画素のRGBデータを出力色空間におけるRGBデータに変換する。
【0067】
S390では、コンピュータ20は、出力色空間において表現された入力画像データを対象として、各画素のRGBの階調値を上記S370で生成したRGB毎の補正用LUTに入力することにより補正する。また、明るさ補正用LUTを生成済みの場合は、各画素の輝度Yを明るさ補正用LUTに入力することにより補正する。
S400では、コンピュータ20は、上記S310において決定した補正種類にかかる全ての補正を施した後の画像データを出力し、図10の処理を終了する。
【0068】
ここで、図9に示した各種統計データのうち、低彩度色についての統計データや、ヒストグラムの最大値を表した統計データ等についても、以下のように入力画像データの補正に用いることができる。
低彩度色についての統計データ(Labデータ)は、黒色や白色など彩度が低い所定の色域に属する画素群に基づいて算出したRGB毎の平均値を変換したものである。従って、この低彩度色についての統計データ(Labデータ)を出力色空間上のRGBデータに変換したときに、そのRGB間にずれがある場合、入力画像データのカラーバランスにずれが生じていると言える。そこで、コンピュータ20は、上記S310においてカラーバランス補正を行なうことを決定した場合には、低彩度色についての統計データ(Labデータ)を出力色空間上のRGBデータに変換し、当該変換後のRGBデータにおけるRGB間のずれ量(例えば、Gに対するRの差分、およびGに対するBの差分)を算出し、当該算出した差分を打ち消すように、入力画像データの各画素のRGBをそれぞれ補正することにより、入力画像データのカラーバランスを整えるとしてもよい。
【0069】
また、上記ヒストグラムの最大値を表した統計データ(Labデータ)を出力色空間上のRGBデータに変換したときに、そのRGB間にずれがある場合、入力画像データのRGBの各最大値のずれ、つまりホワイトバランスにずれが生じていると言える。そこで、コンピュータ20は、上記S310においてホワイトバランス補正を行なうことを決定した場合には、上記ヒストグラムの最大値を表した統計データ(Labデータ)を出力色空間上のRGBデータに変換し、当該変換後のRGBデータにおけるRGB間のずれ(例えば、RGB共通の最大値として設定した所定の基準階調値に対するRGB各々の差分)を求める。そして、かかる差分に基づいて、入力画像データのRGBの各最大値が略一致するように補正を行なうことにより、入力画像データのホワイトバランスを整えるとしてもよい。
なお、カラーバランス補正およびホワイトバランス補正は、RGB間のずれを是正する補正であるので、かかる補正に対する目標値というものは存在しない。
【0070】
(5)変形例
ここで、上記色域定義情報24aの内容は、補正目標値24bに基づいて生成するようにしてもよい。上述したように、コンピュータ20は補正目標値24bの一種として、各記憶色の目標値をLabデータの形式でそれぞれ有している。そこで、コンピュータ20は、各記憶色の目標値のLab空間における座標位置を中心として記憶色毎に図3に示すような所定大きさの立体を規定し、かかる立体を明度L、彩度C、色相hの各範囲によって定義した情報を各記憶色についての色域定義情報24aとしてHD24に保存するとしてもよい。このように色域定義情報24aを補正目標値24bに基づいて生成すれば、入力画像データの画素のうち、記憶色補正のための統計データの生成元となる画素を正確に抽出することができる。
【0071】
また、機器非依存色空間における情報として保存する統計データの利用方法は、上述した例以外にも種々考えられる。
例えばコンピュータ20は、画像のシーンが共通する入力画像データ(例えば、風景画の画像データ)を複数画像分取得し、各入力画像データについての統計データをそれぞれ生成するとともに、各入力画像データから生成した統計データを要素色別かつ種類別にそれぞれ平均化し、当該平均化後の統計データを、風景画についての標準的な統計データとしてHD24等の所定の記憶媒体に保存してもよい。この風景画についての標準的な統計データは、風景画を補正するときの汎用的な統計データとなる。むろんコンピュータ20は、風景画以外にも、人物画や夜景画など、各種シーン別の標準的な統計データをそれぞれ求めておくことが可能である。
【0072】
そしてコンピュータ20は、各シーン別の標準的な統計データの取得後は、補正対象となる入力画像データを入力した場合、当該入力画像データのシーンを判別し、該当するシーンに対応する標準的な統計データを読み出す。入力画像データのシーン判別は、上述したように、入力画像データのヘッダに記述された情報や、所定のシーン判別用のプログラムや、UIを介したユーザによるシーンの指定によって行なうことが可能である。そして、読み出した標準的な統計データと上記補正目標値24bとの比較結果に応じて補正量を計算し、この計算した補正量に応じた補正処理を行なう。この結果コンピュータ20は、新たに補正対象とした入力画像データについて、記憶色画素の抽出や、統計データの生成を行なうことなく、そのシーンの種類に応じた最適な補正を行うことが可能となる。
【0073】
さらにコンピュータ20は、各シーン別の標準的な統計データを、持ち運び可能な各種記憶媒体や通信回線を介して、プリンタ31やディスプレイ32などの各画像出力装置に提供するとしてもよい。その結果、プリンタ31やディスプレイ32の側においても、各シーン別の標準的な統計データを用いて、各シーンに応じた適切な補正量の計算を行い、その補正量に応じた補正を施した後の画像データに基づく印刷や映像表示を行なうことができる。このような場合でも、統計データは機器非依存色空間の情報として提供されるため、各画像出力装置の側で必要に応じて色空間変換することにより容易に取り扱うことができ、汎用性が高い。
【0074】
(6)まとめ
このように本発明によれば、記憶色の範囲を機器非依存色空間において定義した色域定義情報24aを保持しておき、入力画像データから記憶色画素の抽出を行なう際に、色域定義情報24aが定義する色域を入力画像データの色空間に依存する色域に変換する。つまり、入力画像データの色空間がsRGB色空間やwRGB色空間のように異なる状況においても、ある記憶色について定義された色域定義情報24aを入力画像データの色空間に合わせた色域に変換する。そのため、入力画像データの色空間の違いに依らず常に記憶色に該当する画素を正確に抽出することができる。また、従来のように入力画像データが採用し得る色空間毎に色域定義情報を予め用意しておく必要もなくなる。
【0075】
また本発明による色域の変換処理は、色域定義情報24aが定義する色域の外郭上の所定数の座標を入力画像データの色空間に依存する情報に変換するだけなので、入力画像データについて全画素を色域定義情報の表色系への変換を行なっていた場合と比較して、演算処理量が格段に減少し、画素抽出に要する時間を大きく短縮することができる。特に、色域定義情報24aが定義する色域を構成する面毎に1つの座標点を入力画像データの色空間に依存する情報に変換するだけなので、演算処理量は非常に少ない。
また、ある色空間で定義した色域を他の色空間に変換して表現する場合、変換後の色域の形状が大きく歪んでしまうことが有り得るが、本実施形態では、変換対象となる変換基準点Pを、色域定義情報24aの色域を構成する面毎の中心位置としている。そのため、変換後の座標点によって区画される色域に大きな歪みが生じることが防止され、その結果、記憶色にかかる画素のより正確な抽出が実現できる。
【0076】
また本発明では、入力画像データから各種統計データを算出する際は色空間を維持した状態で算出し、この算出した統計データを機器非依存色空間の情報に変換して所定の記憶媒体に保存するようにした。従って、この保存した統計データは、補正量計算の際に用いられる作業用色空間(出力色空間)がsRGB色空間やwRGB色空間のように異なっても必要に応じて色空間変換して使用可能な、汎用性の高い情報であると言える。また、統計データを取得するにあたり、従来のように前もって入力画像データそのものを作業用色空間の情報に変換する作業が不要となり、必要となる色空間変換作業は、限られた情報量である統計データを機器非依存色空間の情報に変換することだけである。そのため、統計データを得るまでに要する演算処理量および時間が従来と比較して大幅に削減される。また、統計データの取得過程で、作業用色空間(出力色空間)の種別を判断する手間が不要となるため、その分においても統計データの取得処理が迅速化される。
【0077】
また、入力画像データを作業用色空間上の情報に変換すると、同じ入力画像データを同じ変換規則(変換プロファイル)に従って変換する場合であっても、変換処理を実行するAPL25が動作するプラットフォーム等の違いによって、変換結果が異なり得る。このように変換結果が異なると、当然にその変換結果に基づいて得られる統計データの内容も異なる結果となってしまう。従って、統計データの取得に際してはできるだけ入力画像データの色空間を維持した状態で行なうことが望ましい。本発明によれば、入力画像データから統計データを算出する際は色空間を維持した状態で算出を行なうため、統計データを算出する前に入力画像データを作業用色空間に変換していたことにより生じ得た統計データの誤差が無くなる。
【0078】
また本発明では、統計データとの比較対象となる補正目標値24bを、機器非依存色空間において定義し、補正量計算の際には、補正目標値24bを出力色空間上の情報に変換する。従って、出力色空間がsRGB色空間やwRGB色空間のように異なる状況においても、補正目標値24bを出力色空間上の情報に変換することにより、正確な補正量計算を行うことが可能となる。また従来のように、採用し得る出力色空間毎に補正目標値24bを予め用意しておく煩雑さが解消され、かつメモリ資源の節約にもつながる。
【図面の簡単な説明】
【0079】
【図1】本発明の一実施形態にかかる画像処理装置などを示したブロック図。
【図2】画素抽出処理の内容を示したフローチャート。
【図3】色域定義情報が定義する色域をLab色空間に示した図。
【図4】色域定義情報が定義する色域に変換基準点を設定した様子を示した図。
【図5】変換後の色域をHSV表色空間において示した図。
【図6】統計データの取得処理の内容を示したフローチャート。
【図7】RGB毎のヒストグラムの一例を示した図。
【図8】入力画像データを分割した様子の一例を示した図。
【図9】統計データをLabデータに変換した場合の一例を示した図。
【図10】補正量の計算および補正処理の内容を示したフローチャート。
【図11】補正目標値を出力色空間上のデータに変換した場合の一例を示した図。
【図12】入力画像データを分割した各領域の輝度を示した図。
【図13】トーンカーブの一例を示した図。
【符号の説明】
【0080】
20…コンピュータ、21…CPU、22…ROM、23…RAM、24…ハードディスク、24a…色域定義情報、24b…補正目標値、24c…統計データ、25…APL、25a…画像データ取得部、25b…画素抽出部、25c…統計データ取得部、25c1…統計データ生成部、25c2,25d2…統計データ変換部、25d…補正量取得部、25d1…目標値変換部、25d3…補正量決定部、25e…補正部
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法および画像処理プログラムに関する。
【背景技術】
【0002】
従来から画像処理の一種として、入力画像データの各画素の値に基づいて入力画像データの統計値を生成する処理が行なわれている。また、かかる統計値に基づいて入力画像データに対する補正量を求め、当該求めた補正量に応じて画像データの各画素の値を補正し、補正後の画像データを次の処理ステップに渡す処理が行なわれている。
【0003】
この具体例として、入力画像データの各画素のうち、特定の記憶色(例えば、肌色)に該当する画素を集計し、集計した画素のRGB毎の平均値(統計値)を求め、この各平均値と、予め求めておいた肌色の画素の理想的なRGB毎の平均値(目標値)との差分に応じてRGBそれぞれに対する修正量ΔR、ΔG、ΔB(補正量)を求め、この修正量ΔR、ΔG、ΔBに応じてRGB毎のトーンカーブを生成し、このトーンカーブを利用して画像データの全画素の要素色を変換して画像データを補正する色修正装置が知られている(特許文献1参照。)。
【特許文献1】特開平11‐8773号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
上記補正後の画像データは、補正後の処理を考慮して所定の色空間(出力色空間)で表現された画像データとして、上記次の処理ステップに出力される。従って、上記補正量の計算や補正処理も基本的に出力色空間上で実行される。そのため従来においては、補正量の計算のための上記目標値も、出力色空間上で表現された情報として所定の記憶媒体に保存されており、補正量の計算に際して適宜読み出して利用されていた。
しかし、このように目標値をある一つの出力色空間に依存した情報としてしまうと、出力色空間の設定を別の色空間に変更した場合に、それまでの目標値を補正量の計算に使用できないという問題があった。またその結果、出力色空間の設定が変り得る場合には、各出力色空間の種類に合わせて目標値も別々に予め用意しておく必要があり、メモリ容量の消費が激しかった。
【0005】
本発明は上記課題に鑑みてなされたものであり、採用され得る出力色空間の違いによらず的確に補正処理のための補正量を取得し、目的の補正を実行することが可能な画像処理装置、画像処理方法および画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明にかかる画像処理装置では、統計値取得手段は、入力画像データの所定の統計値であって、所定の出力色空間によって表現された統計値を取得する。目標値変換手段は、機器非依存色空間において定義された、上記統計値に対する目標値を取得するとともに、当該目標値を上記出力色空間における情報に変換する。補正量決定手段は、上記統計値取得手段が取得した統計値と上記変換後の情報との比較に基づいて、上記入力画像データに対する補正量を決定する。
つまり本発明によれば、補正量決定のための基準となる目標値は機器非依存色空間において定義されており、補正量決定の際に、この目標値を出力色空間における情報に変換して補正量を計算する。よって、従来のように各出力色空間の種類に合わせて目標値を別々に予め用意しておく煩雑さが無くなり、メモリの消費を抑えることができる。
【0007】
ここで統計値取得手段は、上記入力画像データを構成する各画素のうち特定の記憶色の色域に属する画素を抽出し、この抽出した画素群に基づいて生成した統計値を取得し、上記目標値変換手段は、機器非依存色空間において定義された上記記憶色の目標値を上記出力色空間における情報に変換するとしてもよい。そして、上記補正量決定手段は、上記記憶色にかかる統計値と、上記記憶色の目標値の変換後の情報との比較に基づいて補正量を決定する。かかる構成によれば、入力画像中の特定の記憶色を補正するために適した補正量を、機器非依存色空間において定義された目標値を用いて適切に得ることができる。
【0008】
また統計値取得手段は、上記記憶色の目標値に基づいて、記憶色の色域を機器非依存色空間において決定するとともに、当決定した色域を入力画像データの色空間に依存する色域に変換し、入力画像データを構成する各画素のうち当該変換後の色域に属する画素を抽出するとしてもよい。このように、画素抽出を行なう際の判断基準となる記憶色の色域の設定を、上記機器非依存色空間において定義された記憶色の目標値に基準に行うことにより、入力画像データから記憶色の色域に属する画素群を正確に抽出することができる。
【0009】
上記統計値取得手段は、上記入力画像データ内に存在する人顔を検出し、人顔の領域内の画素群に基づいて生成した統計値を取得し、上記目標値変換手段は、機器非依存色空間において定義された人顔の色の目標値を上記出力色空間における情報に変換するとしてもよい。そして上記補正量決定手段は、上記人顔にかかる統計値と、上記人顔の目標値の変換後の情報との比較に基づいて補正量を決定する。かかる構成によれば、入力画像中の人顔の色を補正するために適した補正量を、機器非依存色空間において定義された目標値を用いて適切に得ることができる。
【0010】
また上記統計値取得手段は、上記入力画像データの明るさを表現する統計値を取得し、上記目標値変換手段は、機器非依存色空間において定義された所定の明るさ目標値を上記出力色空間における情報に変換するとしてもよい。そして上記補正量決定手段は、上記明るさを表現する統計値と、上記明るさ目標値の変換後の情報との比較に基づいて補正量を決定する。かかる構成によれば、入力画像の明るさを補正するために適した補正量を、機器非依存色空間において定義された目標値を用いて適切に得ることができる。
【0011】
さらに画像処理装置は、上記決定した補正量に基づいて、上記出力色空間において入力画像データを補正する補正手段を備えるとしてもよい。かかる構成とすることで、記憶色や、人顔や、明るさ等をそれぞれ補正するための各補正量の全て或いは一部を用いて、出力色空間上で入力画像データを補正することができる。その結果、画像処理装置は、最適な補正が施されて上記出力画像空間において表現された画像データを、次の処理ステップに引き渡すことができる。
【0012】
なおこれまでは、画像処理装置というカテゴリーで本発明にかかる技術的思想を説明したが、上記の画像処理装置が備える各手段にそれぞれ対応した処理工程を備える画像処理方法の発明や、画像処理装置が備える各手段にそれぞれ対応した機能をコンピュータに実行させる画像処理プログラムの発明をも把握可能であることは言うまでも無い。
【発明を実施するための最良の形態】
【0013】
以下の順序に従って、本発明の実施形態を説明する。
(1)画像処理装置などの概略構成
(2)記憶色画素の抽出処理
(3)統計データの取得処理
(4)補正量の計算および補正処理
(5)変形例
(6)まとめ
【0014】
(1)画像処理装置などの概略構成
図1は、本発明の一実施形態にかかる画像処理装置と、その周辺機器の概略構成をブロック図により示している。同図においては、画像処理の中心的な役割を果たす画像処理装置としてのコンピュータ20を示している。コンピュータ20は、CPU21、ROM22、RAM23、ハードディスク(HD)24などを備える。コンピュータ20には、各種の画像入力装置としてのスキャナ11、デジタルスチルカメラ12や、各種の画像出力装置としてのプリンタ31、ディスプレイ32が適宜接続される。
【0015】
コンピュータ20においては、CPU21がRAM23をワークエリアとして使用しながら、ROM22やHD24等の所定の記憶媒体に保存されている各種プログラムを実行する。本実施形態では、CPU21はHD24に記憶されているアプリケーション(APL)25を読み出して実行する。実行されるAPL25は、概略、画像データ取得部25aと、画素抽出部25bと、統計データ取得部25cと、補正量取得部25dと、補正部25eといった各機能ブロックを構成する。
【0016】
画像データ取得部25aは、上記画像入力装置から出力される画像データや、HD24に予め保存されている画像データを、入力画像データとして取得する。
画素抽出部25bは、入力画像データを構成する画素のうち所定の条件に該当する画素を抽出(サンプリング)する。本実施形態では、特定の記憶色の色域に該当する画素を抽出する。特定の記憶色とは、肌色や、空色や、緑色や、赤色等といった、画像の中でも特に重要とされる特定の色を意味する。
【0017】
統計データ取得部25cは、画素抽出部25bによって抽出された画素群や、画像データ取得部25aから受け渡された入力画像データの画素群などに基づいて、各種統計値(統計データ)を生成し取得する。統計データ取得部25cは、画素群に基づいてヒストグラムを生成し、ヒストグラムの集計結果から各統計データを生成する統計データ生成部25c1と、この生成された統計データを、所定の機器非依存色空間によって表現される色情報に変換し、当該変換後の色情報をHD24に統計データ24cとして保存する統計データ変換部25c2とからなる。
【0018】
補正量取得部25dは、HD24から統計データ24cを読み出すとともに、補正目標値24bを取得して、入力画像データを補正するための補正量を決定する。補正目標値24bとは、統計データ24cの理想値であり、HD24等の所定の記憶媒体に予め保存されていたり、外部から入力される。本実施形態では、補正目標値24bは所定の機器非依存色空間において定義された情報としている。補正量取得部25dは、補正目標値24bを所定の出力色空間における情報に変換する目標値変換部25d1と、統計データ24cを同所定の出力色空間における情報に変換する統計データ変換部25d2と、上記変換後の統計データと補正目標値との比較に基づいて補正量を計算する補正量決定部25d3とからなる。
【0019】
補正部25eは、画像データ取得部25aから入力画像データを受け取るとともに、上記決定された補正量に基づいて、入力画像データを画素単位で補正し、当該補正後の画像データを出力する。
画素抽出部25b、統計データ取得部25c、補正量取得部25d、補正部25eそれぞれによる処理の詳細については後述する。
【0020】
コンピュータ20では、APL25はオペレーティングシステム26に組み込まれて実行され、オペレーティングシステム26には、プリンタドライバ27およびディスプレイドライバ28も組み込まれている。ディスプレイドライバ28はディスプレイ32への画像表示を制御するドライバであり、APL25の補正部25eから出力された補正後の画像データに基づいて、画像をディスプレイ32に表示させることが可能である。また、プリンタドライバ27は、APL25の補正部25eから出力された補正後の画像データに対して、インク色(例えば、シアン、マゼンタ、イエロー、ブラック)表色系への色変換処理やハーフトーン処理やラスタライズ処理などを実行して印刷データを生成するとともに、この印刷データをプリンタ31に出力することにより、プリンタ31に印刷データに基づく画像の印刷を実行させることが可能である。
【0021】
ここで、上記画像データ取得部25aが取得する入力画像データは、RGBの各要素色を複数階調(例えば、0〜255の256階調)で表現して各画素の色を規定したドットマトリクス状のデータである。RGB色空間としては、sRGB色空間が一般的であるが、AdobeRGB(AdobeはAdobe systems社の登録商標。)色空間など、sRGB色空間よりも広い色再現範囲を有する色空間も存在する。従って、デジタルスチルカメラ12などの画像入力装置から出力される入力画像データが採用する色空間(入力色空間)は、sRGB色空間であったり、sRGB色空間とは異なる色空間であったりする。一方、補正部25eが出力する画像データ、つまりAPL25がプリンタドライバ27等の次の処理ステップに受け渡す画像データを表現するための色空間(出力色空間)の設定は、入力色空間と同じであることもあれば異なることもある。
【0022】
本実施形態では、入力色空間が何であるか、また入力色空間と出力色空間とが同じであるか否か、に拘らず入力画像データに対する適切な補正を実行可能な構成を実現している。以下では説明を容易とするため、入力色空間、出力色空間のそれぞれは、sRGB色空間とsRGB色空間よりも色再現範囲の広い特定の色空間(wRGB色空間)とのいずれかであるものとする。sRGB色空間とwRGB色空間とはいずれも機器依存色空間である。
【0023】
なお、本実施形態で説明するコンピュータ20が実行する処理は、その全て或いは一部を、上記画像入力装置の側で実行するとしてもよいし、上記画像出力装置の側で実行するとしてもよい。例えば、補正部25eの機能については、プリンタ31やディスプレイ32の側に備えさせ、プリンタ31やディスプレイ32が、上記APL25から受け渡された画像データを補正し、補正後の画像データに基づいて印刷処理や画像表示処理を行なうとしてもよい。この場合、コンピュータ20とプリンタ31、ディスプレイ32とによって画像処理システムが構築されると言える。
【0024】
(2)記憶色画素の抽出処理
図2は、コンピュータ20がAPL25に従って実行する画像処理の一部であって、主に画素抽出部25bに従って実行する処理をフローチャートにより示している。
ステップS(以下、ステップの記載を省略する)100では、コンピュータ20は、入力画像データがいずれの色空間によって表現されているかを判別する。画像データ取得部25aが取得する入力画像データには、その画像データに関する各種付属情報を記述したヘッダが付加されており、かかるヘッダに入力色空間の種別を示した情報が記述されている。コンピュータ20は、このヘッダに記述された情報に基づいて、入力色空間の種別を判別する。
【0025】
S110では、コンピュータ20は、HD24に予め保存されている色域定義情報24aを読み出す。ただし、コンピュータ20は色域定義情報24aをコンピュータ20外部から入力するようにしてもよい。色域定義情報24aは、機器非依存色空間において記憶色の範囲を定義した情報である。本実施形態では、機器非依存色空間として、国際照明委員会(CIE)で規定されたL*a*b*色空間を採用する。従って色域定義情報24aは、記憶色についてその明度(L*)、彩度(C*)、色相(h*)の各範囲を定義したものである(以下、「*」は省略)。
【0026】
図3は、ある記憶色(例えば、肌色)の色域定義情報24aによって定義された色域Aの一例をLab色空間中に示している。同図に示すように、色域Aは、明度L、彩度C、色相hの各範囲、
Ls≦L≦Le
Cs≦C≦Ce
hs≦h≦he
によって区画された立体にて表現される。同図では、ab平面上へ色域Aの投影図もハッチングを施して併せて示している。
S120では、コンピュータ20は、色域Aの各面において変換基準点Pを設定する。変換基準点Pとは、色域Aの外郭上の座標のうち入力画像データの色空間に依存する情報への変換対象となる座標値を意味する。
【0027】
図4に示すように、コンピュータ20は、色域Aの各面において1つずつ変換基準点P(P1〜P6)を設定する。変換基準点Pの位置を各面のどこにするかは種々の考えを採用できるが、本実施形態では各面の中心位置をそれぞれ変換基準点P1〜P6としている。ここで、変換基準点P1は、色域Aのうち色相角が最も小さい面上の点であり、変換基準点P2は、色域Aのうち色相角が最も大きい面上の点であり、変換基準点P3は、色域Aのうち彩度が最も低い面上の点であり、変換基準点P4は、色域Aのうち彩度が最も高い面上の点であり、変換基準点P5は、色域Aのうち明度が最も低い面上の点であり、変換基準点P6は、色域Aのうち明度が最も高い面上の点である。
【0028】
S130では、コンピュータ20は、変換基準点Pの座標データLabを入力色空間に依存する情報に変換する。まず、コンピュータ20は上記S100で判別済みの入力色空間の種別に応じたICCプロファイルをHD24等の所定の記憶媒体から取得し、当該ICCプロファイルを参照して各変換基準点Pの座標データLabをRGBデータに変換する。入力色空間がsRGB色空間である場合には、Lab色空間の複数の参照点についてそのLabデータとsRGB色空間におけるRGBデータとの変換対応関係を規定したICCプロファイルを取得し、そのプロファイルを参照することにより、各変換基準点PのLabデータをRGBデータに変換する。
【0029】
変換基準点Pの座標値を入力画色空間に依存する情報に変換すると言った場合、最も単純には、上記のように変換して得られたRGBデータ自体が上記入力色空間に依存する情報に該当する。しかし本実施形態では、このように変換したRGBデータを更にHSV形式の情報に変換する。H(Hue)は色相、S(Saturation)は彩度、V(Value)は明度を意味する。RGBからHSVへの変換は、公知の変換式により実行可能である。
【0030】
かかる処理の結果、図4に示した変換基準点P1〜P6は、
P1(L1,a1,b1)→P1´(H1,S1,V1)
P2(L2,a2,b2)→P2´(H2,S2,V2)
P3(L3,a3,b3)→P3´(H3,S3,V3)
P4(L4,a4,b4)→P4´(H4,S4,V4)
P5(L5,a5,b5)→P5´(H5,S5,V5)
P6(L6,a6,b6)→P6´(H6,S6,V6)
というように変換されたことになる。
【0031】
このようなHSVの値は変換元のRGBの数値によって決まる値であるため、入力色空間に依存する情報と言える。むろん、入力色空間がwRGB色空間である場合には、コンピュータ20はLab色空間からwRGB色空間への変換対応関係を規定したICCプロファイルを参照して各変換基準点PのLabデータをRGBデータに変換し、この変換後のRGBデータをHSV形式で表現する。
【0032】
なおコンピュータ20は、上記のようにLabデータをRGBデータに変換し、これをHSVデータに変換するという2段階の変換作業を行なうのではなく、入力色空間の種別毎にLabデータとHSVデータとの変換対応関係を規定したルックアップテーブル(LUT)を予め生成してHD24等の所定の記憶媒体に保持しておくとしてもよい。つまり、Lab色空間からsRGB色空間(あるいはwRGB色空間)への変換対応関係を規定するICCプロファイルにおける各RGBデータをHSVデータに変換するとともに、この変換によって得た各HSVデータを、変換元のRGBデータに対応するLabデータに対応付けることにより、LabデータをsRGB色空間(あるいはwRGB色空間)に依存したHSVデータに変換可能なLUTを生成する。
【0033】
上記S130では、コンピュータ20は、このように生成した各LUTを入力色空間の種別に応じて選択して参照することにより、各変換基準点PのLabデータをHSVデータに変換するとしてもよい。
【0034】
S140ではコンピュータ20は、S130の変換処理によって得られた、入力色空間に依存する情報に基づいて、画素抽出のための色域を決定する。
本実施形態においては変換基準点P1〜P6の変換結果として、座標値P1´〜P6´が得られているので、コンピュータ20はこれら座標値P1´〜P6´に基づいて画素抽出のための色域A´を決定する。座標値P1´は上記色域Aのうち色相角が最も小さい面上の変換基準点P1を変換した結果であり、座標値P2´は色域Aのうち色相角が最も大きい面上の変換基準点P2を変換した結果であるため、座標値P1´の色相H1と座標値P2´の色相H2とによって挟まれる範囲を色域A´の色相範囲とする。
【0035】
また、座標値P3´は色域Aのうち彩度が最も低い面上の変換基準点P3を変換した結果であり、座標値P4´は色域Aのうち彩度が最も高い面上の変換基準点P4を変換した結果であるため、座標値P3´の彩度S3と座標値P4´の彩度S4とによって挟まれる範囲を色域A´の彩度範囲とする。
また、座標値P5´は色域Aのうち明度が最も低い面上の変換基準点P5を変換した結果であり、座標値P6´は色域Aのうち明度が最も高い面上の変換基準点P6を変換した結果であるため、座標値P5´の明度V5と座標値P6´の明度V6とによって挟まれる範囲を色域A´の明度範囲とする。
【0036】
図5は、色域A´をHSV表色空間において示している。同図に示すように、色域A´は、
H1≦H≦H2
S3≦S≦S4
V5≦V≦V6
によって区画された立体にて表現される。
このようにS100〜S140の処理によって、色域定義情報24aが定義する色域(色域A)を入力画像データの色空間に依存する色域(色域A´)に変換することができる。また、変換後の色域についても明度と彩度と色相の各範囲によって定義することで、変換前の色域と変換後の色域との形状の類似性を保つことができる。
【0037】
S150ではコンピュータ20は、入力画像データを構成する画素のうち、上記変換後の色域に属する画素を抽出する。この場合、各画素についてそのRGBデータをHSVデータで表現した上で上記変換後の色域に属するか否かを判断し、属する画素のみ抽出する。抽出された画素群は上述の統計データ取得部25cに受け渡され、統計データ24cの算出元のデータとなる。
なお図3,4では、1つの色域定義情報24aにかかる色域のみを図示しているが、上述したような記憶色の種類毎に色域定義情報24aは存在する。本実施形態では、少なくとも肌色と、空色と、緑色と、赤色と、低彩度色との色域をそれぞれ定義した色域定義情報24aが存在するものとする。コンピュータ20は、色域定義情報24a毎にそれらの色域を入力色空間に依存する色域に変換し、変換後の色域毎に画素抽出を行なう。
【0038】
(3)統計データの取得処理
図6は、コンピュータ20がAPL25に従って実行する画像処理の一部であって、主に統計データ取得部25cに従って実行する処理をフローチャートにより示している。
S200では、コンピュータ20は、上述したように記憶色毎に抽出された画素群を対象として統計データを生成する。具体的には、一つの記憶色にかかる画素群に基づいて、要素色RGB毎のヒストグラムを生成し、そのRGB毎のヒストグラムそれぞれにおける平均値Rav、Gav、Bavを算出する。
【0039】
図7(a)〜(c)は、RGBそれぞれのヒストグラムを例示している。各ヒストグラムは、縦軸に画素数、横軸に階調値(0〜255)を規定した頻度分布である。
平均値Rav、Gav、Bavの算出は、記憶色の種類毎に行なう。従ってS200では、入力画像データに関して、記憶色毎かつRGB毎の平均値が生成される。ただし、上記S150において抽出された画素数が入力画像データの全画素数に対して所定割合以上存在しない記憶色に関しては、統計データの生成は行なわない。入力画像データ中に存在しないか存在しても極めて少数である色については、補正を行う必要性が低いからである。
【0040】
S210では、コンピュータ20は、入力画像データ全体を対象とした統計データを生成する。具体的には、入力画像データの全範囲の画素を対象としてRGB毎のヒストグラムを生成し、そのRGB毎のヒストグラムそれぞれにおける最大値Rmax、Gmax、Bmaxと、最小値Rmin、Gmin、Bminとを取得する。最大値および最小値を求める場合、単純にヒストグラム上の最も高階調側の階調値を最大値とし、最も低階調側の階調値を最小値としてもよい。しかし本実施形態では、最も高階調側の階調値と最も低階調側の階調値とからある分布割合(例えば、ヒストグラムの集計に用いた画像数の0.5%分)だけヒストグラムの内側に入った位置をそれぞれ最大値、最小値としている。このようにヒストグラムの上端と下端を所定割合だけカットすれば、高階調側や低階調側でノイズなどに起因して生じている白点や黒点の影響を無視した統計データを生成することができる。かかる上端と下端のカットは、他のヒストグラムに基づく統計データの生成時にも実行する。
【0041】
S220では、コンピュータ20は、入力画像データを複数の領域に分割するとともに、分割した領域毎の統計データを生成する。
図8は、入力画像データDを複数の領域に分割した様子の一例を示している。同図では、入力画像データDを縦横それぞれ5分割し、計25個の領域Tを形成している。むろん、入力画像データDの分割の仕方は同図に示した態様に限られない。コンピュータ20は分割後の領域単位でRGB毎のヒスグラムを生成し、RGB毎のヒストグラムそれぞれの平均値Rav、Gav、Bavを算出する。従ってS220では、入力画像データに関して、分割した領域毎かつRGB毎の平均値が生成される。またS220では、平均値以外にも、各ヒストグラムの中央値(メジアン)Rmed、Gmed、Bmedを生成してもよい。
【0042】
S230では、コンピュータ20は、入力画像データ中に存在する人物の顔(人顔)を検出するとともに、検出した人顔の領域内の画素群を対象とした統計データを生成する。人顔の検出処理は、公知の人顔検出用のプログラムを用いて実行可能である。ここでは、検出した人顔の範囲内の画素群に基づいてRGB毎のヒストグラムを生成し、そのRGB毎のヒストグラムそれぞれにおける平均値Rav、Gav、Bavを算出する。人顔が複数検出された場合は、検出した人顔毎に平均値Rav、Gav、Bavを算出する。むろん、人顔が検知されない場合は人顔に関する統計データは生成しない。
なお、上記各ヒストグラムを生成する場合、ヒストグラムの集計対象とした領域に属する全画素に基づいて生成してもよいが、同集計対象とした領域の中から所定の抽出率に基づいて抽出した画素に基づいて生成してもよい。
【0043】
S240では、コンピュータ20は、上記のように生成した各統計データを、Lab色空間上の色情報に変換する。つまりS200〜S230で生成した各統計データは入力色空間に依存する情報であるため、これを機器非依存色空間であるLab色空間の情報に変換することにより、後の補正量計算の際に用いられる色空間(出力色空間)がどのようなものであっても統計データを容易に利用できるようにしている。具体的にはS240では、上記S100で判別済みの入力色空間に応じた変換プロファイル(入力デバイスプロファイルとも言う)をHD24等の所定の記憶媒体から取得し、当該変換プロファイルを参照して、統計データとしてのRGBデータをLabデータに変換する。入力色空間がsRGB色空間である場合には、sRGB色空間をLab色空間に変換する変換プロファイルを使用し、入力色空間がwRGB色空間である場合には、wRGB色空間をLab色空間に変換する変換プロファイルを使用する。
【0044】
図9は、入力色空間に依存する情報としての各統計データをLabデータに変換した一例を示している。同図では、入力色空間がsRGB色空間である場合を示している。また同図および後述の図11では、Labデータについても0〜255の256階調にて表現している。
本実施形態では、要素色RGB別の統計データであって同種の統計データの組み合わせを一つの色とみなし、この組み合わせをLabデータに変換している。つまり、入力画像データ全体のヒストグラムの最大値Rmax、Gmax、Bmaxの組み合わせからなるRGBデータや、ある記憶色についての平均値Rav、Gav、BavからなるRGBデータや、ある分割後の領域についての平均値Rav、Gav、BavからなるRGBデータや、人顔の色にかかる平均値Rav、Gav、BavからなるRGBデータ等をそれぞれLabデータに変換している。
【0045】
上記同種の統計データの組み合わせにおける一つ一つの値(例えば、ヒストグラムの最大値Rmax、Gmax、Bmax)は、必ずしもそれらが同じ画素に属していると言う訳ではないが、色味が互いに接近した画素に属していると言える。例えば、上記最大値Rmax、Gmax、Bmaxはいずれも白っぽい画素に属したものであろうし、上記最小値Rmin、Gmin、Bminはいずれも黒っぽい画素に属したものであると想定される。また、一つの記憶色についての平均値Rav、Gav、Bavや、分割後の一つの領域についての平均値Rav、Gav、Bavなども、その組み合わせを構成するRGBは色味が似通った画素に属していると想定される。さらに上述したように、各ヒストグラムから統計データを求める場合には、ヒストグラムの上端および下端をそれぞれ所定分布割合だけカットした上で求めており、ノイズの影響が統計データに表れることを防止している。従って、上記同種の統計データの組み合わせを一つの色として扱っても大きな支障はなく、これをLabデータに変換しても統計値としての情報が劣化することは殆ど無いと言える。また、上記同種の統計データの組み合わせをLabデータに変換することにより、入力画像データの要素色RGB毎に生成した各種統計データを効率的に、Lab色空間上の情報に変換できる。
【0046】
S250では、コンピュータ20は、上記のようにLab色空間上の値に変換した後の統計データ24cをHD24に保存する。
なお図6の各ステップで説明した統計データの生成処理の順序は、上述したS200〜S230の順序に限られず、他の順序であってもよい。また、上述した各統計データの他にも、コンピュータ20は入力画像データに関する様々な統計値を生成可能である。
【0047】
(4)補正量の計算および補正処理
図10は、コンピュータ20がAPL25に従って実行する画像処理の一部であって、主に補正量取得部25d及び補正部25eに従って実行する処理をフローチャートにより示している。
S300では、コンピュータ20は出力色空間の種類を判別する。出力色空間は、補正量取得部25dによる補正量計算および補正部25eによる画像データの補正処理を実行するときに用いる色空間(作業用色空間)となる。よってコンピュータ20は、補正量の計算に先立って、出力色空間が何であるかを判別する。
【0048】
コンピュータ20は、例えば所定のユーザーインターフェース(UI)を介して外部から出力色空間の指定を受付けることにより、出力色空間の種類を判別する。あるいは、出力色空間の種類を予めデフォルトとして規定した情報がHD24等の所定の記憶媒体に存在する場合には、かかる情報を読み出すことにより出力色空間の種類を判別する。あるいは、上記S100と同様に、入力画像データのヘッダに記述されている付属情報を読み出し、付属情報中に出力色空間を指定する情報が存在する場合には、当該情報に基づいて出力色空間が何であるかを判別する。
【0049】
S310では、コンピュータ20は、入力画像データに適用する補正の種類を決定する。本実施形態においては、補正部25eが実行可能な補正の種類として、記憶色補正、人顔補正、明るさ補正、カラーバランス補正、ホワイトバランス補正等(各補正の内容については後述)があり、コンピュータ20は、例えばUIを介して外部から補正種類の指定を受付けることにより、入力画像データに対して施す補正種類を決定する。また、コンピュータ20は、入力画像データのヘッダに撮影時のシーン情報(風景画、夜景画、人物画等)が記述されている場合には、当該シーン情報に応じて自動的に補正の種類を決定しても良いし、所定のシーン判別用のプログラムによって入力画像データの撮影シーンを判別し、この判別結果に応じて自動的に補正の種類を決定しても良い。また、上記UIを介して外部から指定された入力画像データのシーンの種類に応じて自動的に補正の種類を決定しても良い。
【0050】
S320では、コンピュータ20は、上記S310で決定した種類にかかる補正を実現するために必要な補正目標値24bを、HD24等の所定の記憶媒体から読み出す。
S330では、コンピュータ20は、上記読み出した補正目標値24bを、上記S300において判別した出力色空間上のデータに変換する。本実施形態では、補正目標値24bは出力色空間によらずLabデータとして保存しているため、補正量計算を出力色空間において行なうために補正目標値24bについて色空間変換を行なう。
【0051】
図11は、補正目標値24bの色空間を出力色空間へ変換した場合の一例を示している。同図では、上記S310において、記憶色(緑色)補正と、記憶色(空色)補正と、記憶色(肌色)補正と、記憶色(赤色)補正と、人顔補正と、明るさ補正とを実行することを決定した場合に行なう、補正目標値24bの変換の様子を示している。この場合上記S320では、各種補正目標値24bのうち、記憶色(緑色)補正の目標値と、記憶色(空色)補正の目標値と、記憶色(肌色)補正の目標値と、記憶色(赤色)補正の目標値と、人顔補正の目標値と、明るさ補正の目標値(明るさ目標値)とを読み出す。
【0052】
同図は、出力色空間がwRGB色空間に設定されている場合の変換処理の例であり、この場合上記S330では、コンピュータ20は、上記読み出した目標値としての各Labデータを、Lab色空間からwRGB色空間への変換対応関係を規定した既述のICCプロファイルを用いてRGBデータに変換する。むろん、出力色空間がsRGB色空間である場合には、Lab色空間からsRGB色空間への変換対応関係を規定した既述のICCプロファイルを用いて、目標値としての各LabデータをRGBデータに変換する。
【0053】
S340では、コンピュータ20は、上記S310で決定した種類にかかる補正を実行するために必要な統計データ24cをHD24から読み出す。図11の例に対応した説明を行なうと、コンピュータ20は、図9に示した統計データ24c(Labデータ)のうち、記憶色(緑色)についての統計データと、記憶色(空色)についての統計データと、記憶色(肌色)についての統計データと、記憶色(赤色)についての統計データと、人顔についての統計データと、入力画像データの各領域についての統計データであって各領域の平均値Rav、Gav、Bavを変換したLabデータと、を読み出す。
【0054】
S350では、コンピュータ20は、上記読み出した統計データ24cを上記S300において判別した出力色空間上のRGBデータに変換する。ここでも、出力色空間がwRGB色空間である場合には、Lab色空間からwRGB色空間への変換対応関係を規定した既述のICCプロファイルを用いて、統計データとしての各LabデータをRGBデータに変換し、出力色空間がsRGB色空間である場合には、Lab色空間からsRGB色空間への変換対応関係を規定した既述のICCプロファイルを用いて、統計データとしての各LabデータをRGBデータに変換する。なお、上記S100〜S350までの処理を実行する点で、コンピュータ20はその一部の機能として、入力画像データの所定の統計値であって所定の出力色空間によって表現された統計値を取得する統計値取得手段を実現しているとも言える。
【0055】
S360では、上記変換後の補正目標値と統計データとの比較結果に基づいて、補正量を計算する。
例えば、上記S330で変換した後の記憶色(緑色)補正の目標値がRgs、Ggs、Bgsであり、上記S350で変換した後の記憶色(緑)についての統計データがRg、Gg、Bgである場合、入力画像データに対して記憶色(緑)補正を行うための補正量ΔRg、ΔGg、ΔBgを式(1)〜(3)のように求める。
ΔRg=αg(Rgs−Rg) …(1)
ΔGg=αg(Ggs−Gg) …(2)
ΔBg=αg(Bgs−Bg) …(3)
【0056】
αgは、記憶色(緑色)補正に対して設定された重み付け係数であり、入力画像データに対する記憶色(緑色)補正の適用度合いを規定した係数である。かかる重み付け係数も補正目標値24bとともにHD24等の所定の記憶媒体に記録されている。
記憶色(空色)補正を行なうための補正量ΔRb、ΔGb、ΔBbと、記憶色(肌色)補正を行なうための補正量ΔRs、ΔGs、ΔBsと、記憶色(赤色)補正を行なうための補正量ΔRr、ΔGr、ΔBrと、人顔補正を行なうための補正量ΔRf、ΔGf、ΔBfとについても、上記補正量ΔRg、ΔGg、ΔBgと同様に、補正目標値としてのRGBデータと、統計データとしてのRGBデータとの要素色毎の差分に、その補正種類に応じて予め設定されている重み係数αを乗算することにより取得する。
【0057】
また、コンピュータ20は、明るさ補正のための補正量を次のように求める。図11からも判るように、予めLabデータとして保存されていた明るさ補正の目標値は、上記S330の処理によってRGBデータに変換される。コンピュータ20はまず、この明るさ補正の目標値としてのRGBデータから輝度Y(補正基準輝度Ysと呼ぶ)を求める。一般に、輝度Yの算出は、RGBの重み付け積算の式(4)
Y=0.30R+0.59G+0.11B …(4)
等によって算出可能である。ただし本実施形態では、上記明るさ補正の目標値としてのLabデータは、これをRGBデータに変換したときにRGBの各階調値が等値となるような値に設定してある。そのためコンピュータ20は、上記変換後の明るさ補正の目標値のRGBの階調値(R、G、Bいずれの階調値でも良い)を補正基準輝度Ysとする。
【0058】
次に、コンピュータ20は、補正基準輝度Ysとの比較に用いる入力画像データの明るさを、上記S350で変換した後の各領域についての統計データ(RGBデータ)に基づいて決定する。この場合まず、各領域についての統計データ(RGBデータ)からそれぞれに輝度Yiを算出する。輝度の算出は上記式(4)により可能である。各領域についての統計データ(RGBデータ)は、入力画像データの各領域のRGB毎の平均値Rav、Gav、BavをLabデータに変換し、このLabデータを出力色空間に依存するRGBデータに変換したものであるため、各輝度Yiは、入力画像データを出力色空間上で表したときの各領域の輝度の略平均値をそれぞれ表していると言える。なお、各領域についての統計データは、入力画像データの明るさを表現する統計値に該当する。
各領域の輝度Yiを得たら、次にコンピュータ20は、輝度Yiの全てあるいは一部に基づいて、入力画像データの輝度平均値Yav(入力画像データの明るさ)を算出する。ここでは一例として、輝度平均値Yavを画像の略中央領域の輝度Yiを重視して算出する。
【0059】
図12は、輝度平均値Yavの算出処理を説明するための図である。同図では、上記図8と同様に入力画像データDを複数の領域Tに分割した様子を示している。また上述したように、ここでは各領域Tについて輝度Yi(同図においては、i=1〜25)が得られている。コンピュータ20は、入力画像データを中央領域と、中央領域以外の領域(縁領域と呼ぶ)に分け、中央領域の輝度と縁領域の各領域Tの輝度との差を算出し、各差の大きさと所定のしきい値THとを比較する。一例として、25個の領域のうち画像中央の9個の領域Tで形成される範囲を中央領域とし、中央領域の外側の16個の領域Tを縁領域とする。
【0060】
中央領域の輝度と言った場合には、中央領域中の各領域Tの輝度Yiの平均値を指してもよいし、中央領域中の特定の領域Tの輝度Yiを指しても良い。ここでは、中央領域内の一つの領域Tを注目ブロックT1とし、注目ブロックT1の輝度Ynと、縁領域の各領域Tの輝度(Y1,Y2,Y3…)との差をそれぞれ算出する。そして、縁領域の各領域Tのうち、上記算出された差の大きさがしきい値THを越えるものについては、輝度平均値Yavの算出対象からは除外し、除外しなかった縁領域の各領域Tの輝度Yiおよび中央領域の各領域TのYiに基づいて平均値を算出し、この算出結果を輝度平均値Yavとする。
【0061】
ただし、画像の略中央領域の輝度を重視して輝度平均値Yavを算出する手法は、上記手法に限られない。例えば、各領域Tの輝度Yiに対して、各領域Tの画像内での位置に応じた重み係数(0〜1の値)を与えて積算し、この積算結果を入力画像データの輝度平均値Yavとしてもよい。この重み係数は、画像の中央に近い領域Tほど大きな値を与えるものとする。また、各領域Tに与える重み係数の総和が1になるようにする。
【0062】
上記のように補正基準輝度Ysと輝度平均値Yavとを算出したら、コンピュータ20は、入力画像データに対して明るさ補正を行うための明るさ補正量ΔYを式(5)のように求める。
ΔY=αy(Ys−Yav) …(5)
αyは、明るさ補正に対して設定された重み付け係数であり、かかる重み付け係数も補正目標値24bとともにHD24等の所定の記憶媒体に記録されている。
以上の処理によって、S360における補正量計算(記憶色(緑色)補正と、記憶色(空色)補正と、記憶色(肌色)補正と、記憶色(赤色)補正と、人顔補正と、明るさ補正とを行なう場合の各補正量の計算)が終了する。
【0063】
ここで、入力画像データの輝度平均値Yavを求める際に画像の略中央領域の輝度を重視したのは以下の理由による。画像の略中央領域には、例えば人物の顔など画像の中でも特に重要なものが表されていることが多い。従って、重要な被写体が表されている可能性の高い略中央領域の輝度を縁領域の輝度よりも重視してその入力画像データの明るさ(輝度平均値Yav)を求めることで、補正対象の画像にとって最適な明るさ補正量ΔYを得ることができる。また、逆光条件で撮影された画像のように、画像の中央部分が暗く中央部分の周囲が明るい画像の場合、中央部分の輝度を重視した補正量ΔYを設定することにより、暗い中央部分の明るさを上昇させる最適な明るさ補正を行なうことができる。
【0064】
S370では、コンピュータ20は、補正量に応じた補正度合いを持つ補正用LUTを生成する。例えば補正用LUTとしてトーンカーブを生成する。上記S360においてRGB毎の補正量を算出している場合は、RGB別のトーンカーブを生成する。上述した例では、RGB毎の補正量として、記憶色(緑色)の補正量ΔRg、ΔGg、ΔBg、記憶色(空色)の補正量ΔRb、ΔGb、ΔBb、記憶色(肌色)の補正量ΔRs、ΔGs、ΔBs、記憶色(赤色)の補正量ΔRr、ΔGr、ΔBr、人顔補正を行なうための補正量ΔRf、ΔGf、ΔBfを算出した。その為、コンピュータ20は、各補正量をRGB毎別に積算し、積算後の値をRGB毎の総合的な補正量ΔR、ΔG、ΔBとする。つまりこの場合、ΔR=ΔRg+ΔRb+ΔRs+ΔRr+ΔRf、ΔG=ΔGg+ΔGb+ΔGs+ΔGr+ΔGf、ΔB=ΔBg+ΔBb+ΔBs+ΔBr+ΔBf、となる。そして、上記補正量ΔR、ΔG、ΔBに応じたトーンカーブをそれぞれ生成する。
【0065】
図13はトーンカーブの一例を示している。同図に示したトーンカーブCは、要素色Rについて入力階調値(0〜255)を出力階調値(0〜255)に補正するLUTの例であり、そのカーブの度合いを、上記補正量ΔRに応じて決定することにより生成されている。つまり、図中に示した入力階調値=出力階調値となる直線グラフF上の所定のコントロールポイントCPに補正量ΔRを加算する補正を施し、補正後のコントロールポイントCP´と直線グラフFの両端とを含むような曲線をスプライン補間を用いて算出し、算出した曲線をトーンカーブCとしている。コントロールポイントCPの位置は特に限られないが、例えば、補正量が正の値である場合には、入力階調範囲の中間値(128)より低階調側の一の入力階調値に対応する直線グラフF上の位置をコントロールポイントCPとし、補正量が負の値である場合には、上記中間値よりも高階調側の一つの入力階調値に対応する直線グラフF上の位置をコントロールポイントCPとすることができる。むろん、上記S350で変換した後の統計データのRGBの各階調値に基づいてコントロールポイントCPを決定してもよい。コンピュータ20は、このようにして、要素色GおよびBについてのトーンカーブもそれぞれ生成する。
また、上述したように明るさ補正のための補正量ΔYをも算出済みである場合には、このΔYに応じたトーンカーブも生成し、これを明るさ補正用LUTとする。
【0066】
S380では、コンピュータ20は、入力画像データの色空間を必要に応じて、出力色空間に変換する。かかる変換処理は、入力色空間と出力色空間とが異なる場合にのみ行い、入力色空間と出力色空間とが同じである場合には当該S380の処理はスキップする。コンピュータ20は、上記S100とS300において入力色空間の種別と出力色空間の種類とをそれぞれ判別済みである。そのため、かかる判別結果を参考にして、例えば、入力色空間がsRGB色空間で、出力色空間がwRGB色空間である場合には、コンピュータ20はsRGB色空間をwRGB色空間に変換する変換プロファイルをHD24等の所定の記憶媒体から読み出し、当該読み出した変換プロファイルを用いて入力画像データの各画素のRGBデータを出力色空間におけるRGBデータに変換する。逆に、入力色空間がwRGB色空間で、出力色空間がsRGB色空間である場合には、コンピュータ20はwRGB色空間をsRGB色空間に変換する変換プロファイルをHD24等の所定の記憶媒体から読み出し、当該読み出した変換プロファイルを用いて入力画像データの各画素のRGBデータを出力色空間におけるRGBデータに変換する。
【0067】
S390では、コンピュータ20は、出力色空間において表現された入力画像データを対象として、各画素のRGBの階調値を上記S370で生成したRGB毎の補正用LUTに入力することにより補正する。また、明るさ補正用LUTを生成済みの場合は、各画素の輝度Yを明るさ補正用LUTに入力することにより補正する。
S400では、コンピュータ20は、上記S310において決定した補正種類にかかる全ての補正を施した後の画像データを出力し、図10の処理を終了する。
【0068】
ここで、図9に示した各種統計データのうち、低彩度色についての統計データや、ヒストグラムの最大値を表した統計データ等についても、以下のように入力画像データの補正に用いることができる。
低彩度色についての統計データ(Labデータ)は、黒色や白色など彩度が低い所定の色域に属する画素群に基づいて算出したRGB毎の平均値を変換したものである。従って、この低彩度色についての統計データ(Labデータ)を出力色空間上のRGBデータに変換したときに、そのRGB間にずれがある場合、入力画像データのカラーバランスにずれが生じていると言える。そこで、コンピュータ20は、上記S310においてカラーバランス補正を行なうことを決定した場合には、低彩度色についての統計データ(Labデータ)を出力色空間上のRGBデータに変換し、当該変換後のRGBデータにおけるRGB間のずれ量(例えば、Gに対するRの差分、およびGに対するBの差分)を算出し、当該算出した差分を打ち消すように、入力画像データの各画素のRGBをそれぞれ補正することにより、入力画像データのカラーバランスを整えるとしてもよい。
【0069】
また、上記ヒストグラムの最大値を表した統計データ(Labデータ)を出力色空間上のRGBデータに変換したときに、そのRGB間にずれがある場合、入力画像データのRGBの各最大値のずれ、つまりホワイトバランスにずれが生じていると言える。そこで、コンピュータ20は、上記S310においてホワイトバランス補正を行なうことを決定した場合には、上記ヒストグラムの最大値を表した統計データ(Labデータ)を出力色空間上のRGBデータに変換し、当該変換後のRGBデータにおけるRGB間のずれ(例えば、RGB共通の最大値として設定した所定の基準階調値に対するRGB各々の差分)を求める。そして、かかる差分に基づいて、入力画像データのRGBの各最大値が略一致するように補正を行なうことにより、入力画像データのホワイトバランスを整えるとしてもよい。
なお、カラーバランス補正およびホワイトバランス補正は、RGB間のずれを是正する補正であるので、かかる補正に対する目標値というものは存在しない。
【0070】
(5)変形例
ここで、上記色域定義情報24aの内容は、補正目標値24bに基づいて生成するようにしてもよい。上述したように、コンピュータ20は補正目標値24bの一種として、各記憶色の目標値をLabデータの形式でそれぞれ有している。そこで、コンピュータ20は、各記憶色の目標値のLab空間における座標位置を中心として記憶色毎に図3に示すような所定大きさの立体を規定し、かかる立体を明度L、彩度C、色相hの各範囲によって定義した情報を各記憶色についての色域定義情報24aとしてHD24に保存するとしてもよい。このように色域定義情報24aを補正目標値24bに基づいて生成すれば、入力画像データの画素のうち、記憶色補正のための統計データの生成元となる画素を正確に抽出することができる。
【0071】
また、機器非依存色空間における情報として保存する統計データの利用方法は、上述した例以外にも種々考えられる。
例えばコンピュータ20は、画像のシーンが共通する入力画像データ(例えば、風景画の画像データ)を複数画像分取得し、各入力画像データについての統計データをそれぞれ生成するとともに、各入力画像データから生成した統計データを要素色別かつ種類別にそれぞれ平均化し、当該平均化後の統計データを、風景画についての標準的な統計データとしてHD24等の所定の記憶媒体に保存してもよい。この風景画についての標準的な統計データは、風景画を補正するときの汎用的な統計データとなる。むろんコンピュータ20は、風景画以外にも、人物画や夜景画など、各種シーン別の標準的な統計データをそれぞれ求めておくことが可能である。
【0072】
そしてコンピュータ20は、各シーン別の標準的な統計データの取得後は、補正対象となる入力画像データを入力した場合、当該入力画像データのシーンを判別し、該当するシーンに対応する標準的な統計データを読み出す。入力画像データのシーン判別は、上述したように、入力画像データのヘッダに記述された情報や、所定のシーン判別用のプログラムや、UIを介したユーザによるシーンの指定によって行なうことが可能である。そして、読み出した標準的な統計データと上記補正目標値24bとの比較結果に応じて補正量を計算し、この計算した補正量に応じた補正処理を行なう。この結果コンピュータ20は、新たに補正対象とした入力画像データについて、記憶色画素の抽出や、統計データの生成を行なうことなく、そのシーンの種類に応じた最適な補正を行うことが可能となる。
【0073】
さらにコンピュータ20は、各シーン別の標準的な統計データを、持ち運び可能な各種記憶媒体や通信回線を介して、プリンタ31やディスプレイ32などの各画像出力装置に提供するとしてもよい。その結果、プリンタ31やディスプレイ32の側においても、各シーン別の標準的な統計データを用いて、各シーンに応じた適切な補正量の計算を行い、その補正量に応じた補正を施した後の画像データに基づく印刷や映像表示を行なうことができる。このような場合でも、統計データは機器非依存色空間の情報として提供されるため、各画像出力装置の側で必要に応じて色空間変換することにより容易に取り扱うことができ、汎用性が高い。
【0074】
(6)まとめ
このように本発明によれば、記憶色の範囲を機器非依存色空間において定義した色域定義情報24aを保持しておき、入力画像データから記憶色画素の抽出を行なう際に、色域定義情報24aが定義する色域を入力画像データの色空間に依存する色域に変換する。つまり、入力画像データの色空間がsRGB色空間やwRGB色空間のように異なる状況においても、ある記憶色について定義された色域定義情報24aを入力画像データの色空間に合わせた色域に変換する。そのため、入力画像データの色空間の違いに依らず常に記憶色に該当する画素を正確に抽出することができる。また、従来のように入力画像データが採用し得る色空間毎に色域定義情報を予め用意しておく必要もなくなる。
【0075】
また本発明による色域の変換処理は、色域定義情報24aが定義する色域の外郭上の所定数の座標を入力画像データの色空間に依存する情報に変換するだけなので、入力画像データについて全画素を色域定義情報の表色系への変換を行なっていた場合と比較して、演算処理量が格段に減少し、画素抽出に要する時間を大きく短縮することができる。特に、色域定義情報24aが定義する色域を構成する面毎に1つの座標点を入力画像データの色空間に依存する情報に変換するだけなので、演算処理量は非常に少ない。
また、ある色空間で定義した色域を他の色空間に変換して表現する場合、変換後の色域の形状が大きく歪んでしまうことが有り得るが、本実施形態では、変換対象となる変換基準点Pを、色域定義情報24aの色域を構成する面毎の中心位置としている。そのため、変換後の座標点によって区画される色域に大きな歪みが生じることが防止され、その結果、記憶色にかかる画素のより正確な抽出が実現できる。
【0076】
また本発明では、入力画像データから各種統計データを算出する際は色空間を維持した状態で算出し、この算出した統計データを機器非依存色空間の情報に変換して所定の記憶媒体に保存するようにした。従って、この保存した統計データは、補正量計算の際に用いられる作業用色空間(出力色空間)がsRGB色空間やwRGB色空間のように異なっても必要に応じて色空間変換して使用可能な、汎用性の高い情報であると言える。また、統計データを取得するにあたり、従来のように前もって入力画像データそのものを作業用色空間の情報に変換する作業が不要となり、必要となる色空間変換作業は、限られた情報量である統計データを機器非依存色空間の情報に変換することだけである。そのため、統計データを得るまでに要する演算処理量および時間が従来と比較して大幅に削減される。また、統計データの取得過程で、作業用色空間(出力色空間)の種別を判断する手間が不要となるため、その分においても統計データの取得処理が迅速化される。
【0077】
また、入力画像データを作業用色空間上の情報に変換すると、同じ入力画像データを同じ変換規則(変換プロファイル)に従って変換する場合であっても、変換処理を実行するAPL25が動作するプラットフォーム等の違いによって、変換結果が異なり得る。このように変換結果が異なると、当然にその変換結果に基づいて得られる統計データの内容も異なる結果となってしまう。従って、統計データの取得に際してはできるだけ入力画像データの色空間を維持した状態で行なうことが望ましい。本発明によれば、入力画像データから統計データを算出する際は色空間を維持した状態で算出を行なうため、統計データを算出する前に入力画像データを作業用色空間に変換していたことにより生じ得た統計データの誤差が無くなる。
【0078】
また本発明では、統計データとの比較対象となる補正目標値24bを、機器非依存色空間において定義し、補正量計算の際には、補正目標値24bを出力色空間上の情報に変換する。従って、出力色空間がsRGB色空間やwRGB色空間のように異なる状況においても、補正目標値24bを出力色空間上の情報に変換することにより、正確な補正量計算を行うことが可能となる。また従来のように、採用し得る出力色空間毎に補正目標値24bを予め用意しておく煩雑さが解消され、かつメモリ資源の節約にもつながる。
【図面の簡単な説明】
【0079】
【図1】本発明の一実施形態にかかる画像処理装置などを示したブロック図。
【図2】画素抽出処理の内容を示したフローチャート。
【図3】色域定義情報が定義する色域をLab色空間に示した図。
【図4】色域定義情報が定義する色域に変換基準点を設定した様子を示した図。
【図5】変換後の色域をHSV表色空間において示した図。
【図6】統計データの取得処理の内容を示したフローチャート。
【図7】RGB毎のヒストグラムの一例を示した図。
【図8】入力画像データを分割した様子の一例を示した図。
【図9】統計データをLabデータに変換した場合の一例を示した図。
【図10】補正量の計算および補正処理の内容を示したフローチャート。
【図11】補正目標値を出力色空間上のデータに変換した場合の一例を示した図。
【図12】入力画像データを分割した各領域の輝度を示した図。
【図13】トーンカーブの一例を示した図。
【符号の説明】
【0080】
20…コンピュータ、21…CPU、22…ROM、23…RAM、24…ハードディスク、24a…色域定義情報、24b…補正目標値、24c…統計データ、25…APL、25a…画像データ取得部、25b…画素抽出部、25c…統計データ取得部、25c1…統計データ生成部、25c2,25d2…統計データ変換部、25d…補正量取得部、25d1…目標値変換部、25d3…補正量決定部、25e…補正部
【特許請求の範囲】
【請求項1】
入力画像データの所定の統計値であって、所定の出力色空間によって表現された統計値を取得する統計値取得手段と、
機器非依存色空間において定義された、上記統計値に対する目標値を取得するとともに、当該目標値を上記出力色空間における情報に変換する目標値変換手段と、
上記統計値取得手段が取得した統計値と上記変換後の情報との比較に基づいて、上記入力画像データに対する補正量を決定する補正量決定手段とを備えることを特徴とする画像処理装置。
【請求項2】
上記統計値取得手段は、上記入力画像データを構成する各画素のうち特定の記憶色の色域に属する画素を抽出し、この抽出した画素群に基づいて生成した統計値を取得し、
上記目標値変換手段は、機器非依存色空間において定義された上記記憶色の目標値を上記出力色空間における情報に変換し、
上記補正量決定手段は、上記記憶色にかかる統計値と、上記記憶色の目標値の変換後の情報との比較に基づいて補正量を決定することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
上記統計値取得手段は、上記記憶色の目標値に基づいて、記憶色の色域を機器非依存色空間において決定するとともに、当決定した色域を入力画像データの色空間に依存する色域に変換し、入力画像データを構成する各画素のうち当該変換後の色域に属する画素を抽出することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
上記統計値取得手段は、上記入力画像データ内に存在する人顔を検出し、人顔の領域内の画素群に基づいて生成した統計値を取得し、
上記目標値変換手段は、機器非依存色空間において定義された人顔の色の目標値を上記出力色空間における情報に変換し、
上記補正量決定手段は、上記人顔にかかる統計値と、上記人顔の目標値の変換後の情報との比較に基づいて補正量を決定することを特徴とする請求項1〜請求項3のいずれかに記載の画像処理装置。
【請求項5】
上記統計値取得手段は、上記入力画像データの明るさを表現する統計値を取得し、
上記目標値変換手段は、機器非依存色空間において定義された所定の明るさ目標値を上記出力色空間における情報に変換し、
上記補正量決定手段は、上記明るさを表現する統計値と、上記明るさ目標値の変換後の情報との比較に基づいて補正量を決定することを特徴とする請求項1〜請求項4のいずれかに記載の画像処理装置。
【請求項6】
上記決定した補正量に基づいて、上記出力色空間において入力画像データを補正する補正手段を更に備えることを特徴とする請求項1〜請求項5のいずれかに記載の画像処理装置。
【請求項7】
入力画像データの所定の統計値であって、所定の出力色空間によって表現された統計値を取得する統計値取得工程と、
機器非依存色空間において定義された、上記統計値に対する目標値を取得するとともに、当該目標値を上記出力色空間における情報に変換する目標値変換工程と、
上記統計値取得工程にて取得した統計値と上記変換後の情報との比較に基づいて、上記入力画像データに対する補正量を決定する補正量決定工程とを備えることを特徴とする画像処理方法。
【請求項8】
入力画像データの所定の統計値であって、所定の出力色空間によって表現された統計値を取得する統計値取得機能と、
機器非依存色空間において定義された、上記統計値に対する目標値を取得するとともに、当該目標値を上記出力色空間における情報に変換する目標値変換機能と、
上記統計値取得機能によって取得した統計値と上記変換後の情報との比較に基づいて、上記入力画像データに対する補正量を決定する補正量決定機能とをコンピュータに実行させることを特徴とする画像処理プログラム。
【請求項1】
入力画像データの所定の統計値であって、所定の出力色空間によって表現された統計値を取得する統計値取得手段と、
機器非依存色空間において定義された、上記統計値に対する目標値を取得するとともに、当該目標値を上記出力色空間における情報に変換する目標値変換手段と、
上記統計値取得手段が取得した統計値と上記変換後の情報との比較に基づいて、上記入力画像データに対する補正量を決定する補正量決定手段とを備えることを特徴とする画像処理装置。
【請求項2】
上記統計値取得手段は、上記入力画像データを構成する各画素のうち特定の記憶色の色域に属する画素を抽出し、この抽出した画素群に基づいて生成した統計値を取得し、
上記目標値変換手段は、機器非依存色空間において定義された上記記憶色の目標値を上記出力色空間における情報に変換し、
上記補正量決定手段は、上記記憶色にかかる統計値と、上記記憶色の目標値の変換後の情報との比較に基づいて補正量を決定することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
上記統計値取得手段は、上記記憶色の目標値に基づいて、記憶色の色域を機器非依存色空間において決定するとともに、当決定した色域を入力画像データの色空間に依存する色域に変換し、入力画像データを構成する各画素のうち当該変換後の色域に属する画素を抽出することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
上記統計値取得手段は、上記入力画像データ内に存在する人顔を検出し、人顔の領域内の画素群に基づいて生成した統計値を取得し、
上記目標値変換手段は、機器非依存色空間において定義された人顔の色の目標値を上記出力色空間における情報に変換し、
上記補正量決定手段は、上記人顔にかかる統計値と、上記人顔の目標値の変換後の情報との比較に基づいて補正量を決定することを特徴とする請求項1〜請求項3のいずれかに記載の画像処理装置。
【請求項5】
上記統計値取得手段は、上記入力画像データの明るさを表現する統計値を取得し、
上記目標値変換手段は、機器非依存色空間において定義された所定の明るさ目標値を上記出力色空間における情報に変換し、
上記補正量決定手段は、上記明るさを表現する統計値と、上記明るさ目標値の変換後の情報との比較に基づいて補正量を決定することを特徴とする請求項1〜請求項4のいずれかに記載の画像処理装置。
【請求項6】
上記決定した補正量に基づいて、上記出力色空間において入力画像データを補正する補正手段を更に備えることを特徴とする請求項1〜請求項5のいずれかに記載の画像処理装置。
【請求項7】
入力画像データの所定の統計値であって、所定の出力色空間によって表現された統計値を取得する統計値取得工程と、
機器非依存色空間において定義された、上記統計値に対する目標値を取得するとともに、当該目標値を上記出力色空間における情報に変換する目標値変換工程と、
上記統計値取得工程にて取得した統計値と上記変換後の情報との比較に基づいて、上記入力画像データに対する補正量を決定する補正量決定工程とを備えることを特徴とする画像処理方法。
【請求項8】
入力画像データの所定の統計値であって、所定の出力色空間によって表現された統計値を取得する統計値取得機能と、
機器非依存色空間において定義された、上記統計値に対する目標値を取得するとともに、当該目標値を上記出力色空間における情報に変換する目標値変換機能と、
上記統計値取得機能によって取得した統計値と上記変換後の情報との比較に基づいて、上記入力画像データに対する補正量を決定する補正量決定機能とをコンピュータに実行させることを特徴とする画像処理プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2008−245117(P2008−245117A)
【公開日】平成20年10月9日(2008.10.9)
【国際特許分類】
【出願番号】特願2007−85472(P2007−85472)
【出願日】平成19年3月28日(2007.3.28)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
【公開日】平成20年10月9日(2008.10.9)
【国際特許分類】
【出願日】平成19年3月28日(2007.3.28)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
[ Back to top ]