(57)【要約】【課題】少ない処理負荷で確実に色かぶり補正を行う。【解決手段】ＲＧＢ画像データを輝度Ｙ及び色度Ｃ１，Ｃ２に変換し、そのハイライトポイントとシャドーポイントとを求め、それらを結んだ色立体の軸ｌを得る。その軸が輝度軸Ｙと平行になるように回転変換し、さらに、最低輝度の画素が原点と一致するように、平行移動変換する。【選択図】図５
2008167504.tif 000002
【特許請求の範囲】
【請求項１】
原画像の一部の画素を用いて、前記原画像のハイライトポイントおよびシャドーポイントを検出し、
前記ハイライトポイントおよびシャドーポイントの色みを求め、
前記ハイライトポイント、前記シャドーポイントおよび前記色みに基づき、前記原画像の色立体を明るさと色み空間における明るさを示す軸に向かい回転させ、前記原画像に対し色かぶりを補正することを特徴とする画像処理方法。
【請求項２】
前記原画像の色立体の軸の傾きを所定の値と比較した結果に応じて、前記色かぶり補正を行わない、もしくは予め決められた程度で前記色かぶり補正をおこなうことを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記原画像の色立体の軸の角度に基づき、前記色かぶり補正を行なわない、もしくは色かぶり補正の度合いを緩めることを特徴とする請求項１に記載の画像処理方法。
【請求項４】
前記色かぶり補正を行なわない色相を指定すること特徴とする請求項１に記載の画像処理方法。
【請求項５】
前記補正に加え、更に前記原画像の明るさを示す成分に対してコントラスト調整を行うことを特徴とする請求項１記載の画像処理方法。
【請求項６】
前記補正に加え、前記原画像の彩度を調整することを特徴とする請求項１に記載の画像処理方法。
【請求項７】
前記原画像の一部の画素とは、前記原画像からサンプリングをした画素か前記原画像のうち所定の彩度以上の高彩度画素を除いた画素であることを特徴とする請求項１に記載の画像処理方法。
【請求項８】
前記補正は、フォトイメージに対して行い、テキスト画像に対しては行わないことを特徴とする請求項１に記載の画像処理方法。
【請求項９】
原画像の一部の画素を用いて、前記原画像のハイライトポイントおよびシャドーポイントを検出し、
前記ハイライトポイントおよびシャドーポイントの色みを求め、
前記ハイライトポイント、前記シャドーポイントおよび前記色みに基づき、前記原画像の色立体を明るさと色み空間における明るさを示す軸に向かい回転させ、前記原画像に対し色かぶりを補正することを特徴とする画像処理装置。
【請求項１０】
前記原画像の色立体の軸の傾きを所定の値と比較した結果に応じて、前記色かぶり補正を行わない、もしくは予め決められた程度で前記色かぶり補正をおこなうことを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記原画像の色立体の軸の角度に基づき、前記色かぶり補正を行なわない、もしくは色かぶり補正の度合いを緩めることを特徴とする請求項９に記載の画像処理装置。
【請求項１２】
前記色かぶり補正を行なわない色相を指定すること特徴とする請求項９に記載の画像処理装置。
【請求項１３】
前記補正に加え、更に前記原画像の明るさを示す成分に対してコントラスト調整を行うことを特徴とする請求項９に記載の画像処理装置。
【請求項１４】
前記補正に加え、前記原画像の彩度を調整することを特徴とする請求項９に記載の画像処理装置。
【請求項１５】
前記原画像の一部の画素とは、前記原画像からサンプリングをした画素か前記原画像のうち所定の彩度以上の高彩度画素を除いた画素であることを特徴とする請求項９に記載の画像処理装置。
【請求項１６】
前記補正は、フォトイメージに対して行い、テキスト画像に対しては行わないことを特徴とする請求項９に記載の画像処理装置。
【請求項１７】
請求項１乃至８のいずれか１項に記載の画像処理方法をコンピュータにより実行させるためのプログラムを記憶したことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、原画像に対して画像補正を行う画像処理方法及び装置及び記憶媒体に関するものである。
【背景技術】
【０００２】
従来、写真画像の色バランスを調整する方法としては、（１）：撮る前に色バランスを合わせる方法と、（２）：撮った後の画像を修正する方法という２通りの方法がある。方法（１）の例としては、例えばビデオカメラのホワイトバランススイッチを用いた色バランスの調整がある。この方法では、本撮影を開始する前に白い紙などを予備的に撮影し、撮影された画像の白の色バランスを調整する。
【０００３】
方法（２）は印刷の分野などで広く行われているが、その多くは職人の勘と経験によるところが多い。
【０００４】
一方、近年とくにデジタルカメラやフォトスキャナが普及したことに伴って、フォト画像のデジタル化が一般の人にも手軽に行えるようになってきた。また、インクジェットプリンタを代表とする出力機器側も高画質化、低価格化が進み、一般のユーザが自宅で写真を手軽に出力することも可能となっている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、デジタル化したフォト画像を印刷出力する場合、出力される画像の画質にはまだ問題が多い。
【０００６】
例えば、いわゆるパーソナルコンピュータ等を介して、入力機器側のＲＧＢ信号を、インクジェットプリンタを代表する出力機器でプリントする場合を考えると、例えばアップル社のマッキントッシュ（登録商標）におけるカラーシンクや、マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）におけるＣＭＳなどによって、ＣＩＥのＸＹＺ色空間を介した入力機器側と出力機器側とのカラーマッチングが試みられている。しかし、これらの調整を厳密に行うことは非常に困難である。というのも、入力機器側と出力機器側では当然色再現範囲が異なり、さらに入力機器側はＲ，Ｇ，Ｂの発光信号で、出力機器側はＣ，Ｍ，Ｙ，Ｋの反射原稿であるという原理的な違いもあるためである。
【０００７】
このような困難を克服して入力機器と出力機器とのカラーマッチングがとれたとしても、そもそも入力機器側からの画像が満足のいくものでない場合には、その画像を厳密に印刷物として再現できたとしてもユーザが満足できる画像は得られない。これには、画像の露出のオーバーやアンダーという状態や、「色かぶり」という現象によって画像全体の色バランスがくるってしまうことが大きな原因と考えられる。
【０００８】
例えば、カメラでオート撮影するとＡＥ（自動露出）がかかってしまうため、背景の大部分に青空が含まれているような場合、全体として暗くなってしまい、いわゆる露出アンダーの状態になり、逆に背景の大部分が暗い部分であれば露出オーバーの状態になって、肝心の被写体が必ずしもベストな状態で写らないことがある。
【０００９】
また、デジタルカメラを例に取ると、画像はＣＣＤカメラで撮影されるため、人間の目では感じられない波長の色も画像信号として入ってしまう。その信号をＲＧＢ信号の一部として処理すると、本来見えないはずの色が顕在化して色バランスが狂ってしまう。もちろん赤外カットフィルタなどの処理がなされるが必ずしも完全ではなく、色バランス補正に関してもリアルタイム処理という制約もあって、結果的に処理しきれずに「色かぶり」という現象が生じ、全体の色バランスがおかしくなる場合がある。
【００１０】
フォトスキャナやフラットヘッドスキャナに関しても同様の現象が生じる可能性があるため、たとえネガやリバーサルフィルムでベストな状態であったとしても、これをデジタル化した際に色バランスが狂ってしまうこともあり得る。
【００１１】
このように、良好な出力結果を得るためには、入力画像データそのものを色バランスのとれた適正な露出の画像データに補正する必要があり、しかもそのためには、ユーザーの手を煩わせず、処理速度としても十分許容できる簡易的な方法が求められている。
【００１２】
本発明は上記従来例に鑑みてなされたもので、簡単な構成で原画像の色かぶりの補正を行うことができるようにすることを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために本発明は以下の構成を有する。すなわち本発明は、原画像の一部の画素を用いて、前記原画像のハイライトポイントおよびシャドーポイントを検出し、
前記ハイライトポイントおよびシャドーポイントの色みを求め、
前記ハイライトポイント、前記シャドーポイントおよび前記色みに基づき、前記原画像の色立体を明るさと色み空間における明るさを示す軸に向かい回転させ、前記原画像に対し色かぶりを補正することを特徴とする画像処理方法にある。
【発明の効果】
【００１４】
本発明によれば、簡単な構成で原画像の色かぶりの補正を行うことができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の好適な実施形態について、添付図面を参照しながら詳細に説明する。
【００１６】
［第１の実施の形態］
本実施の形態における画像処理方法では、ＲＧＢの原画像データを、画素ごとに明るさを示す輝度と色みを示す色度のデータに変換する。この時、原画像データの彩度が既定値を越えている場合にはその画素を間引きながら画素を順次選択し、輝度ヒストグラムを作成していく。そして高輝度側、低輝度側それぞれからの累積度数値が夫々所定の度数に達する輝度位置（輝度値）を白位置（ハイライトポイント）、黒位置（シャドーポイント）として求める。またこの時、白位置、黒位置検出の精度を向上するために、高彩度画素を輝度ヒストグラム作成に含めない処理などを行っても良い。
【００１７】
こうして白位置と判断された輝度値を有する画素データの色度の平均値と、黒位置と判断された輝度値を有する画素データの色度の平均値とを計算し、色空間上でそれら２点を結んだ直線を原画像の色立体軸（グレーライン）と判断する。その色立体軸の輝度軸に対する傾きは、本来輝度のみの変化であるべき色立体軸が、色度の変化を伴っていること、即ち色かぶりが生じていることを示している。この色立体軸が前記色空間上で正規の位置になるように、全画素に変換処理（回転行列演算）を施すことで色かぶりを補正する。以下、図面を参照して本実施形態を詳細に説明する。
【００１８】
＜画像処理システムの構成＞
本実施形態におけるシステムの一例を図１に示す。ホストコンピュータ１００には、例えばインクジェットプリンタなどのプリンタ１０５とモニタ１０６が接続されている。ホストコンピュータ１００は、ワードプロセッサ、表計算、インターネットブラウザ等のアプリケーションソフトウエア１０１と、ＯＳ（Ｏｐｅｒａｔｉｎｇ Ｓｙｓｔｅｍ）１０２、アプリケーション１０１によってＯＳ１０２に発行される出力画像を示す各種描画命令群（イメージ描画命令、テキスト描画命令、グラフィックス描画命令）を処理して印刷データを作成するプリンタドライバ１０３、およびアプリケーション１０１が発行する各種描画命令群を処理してモニタ１０６に表示を行なうモニタドライバ１０４をソフトウエアとして持つ。
【００１９】
ホストコンピュータ１００は、これらソフトウエアが動作可能な各種ハードウエアとして中央演算処理装置ＣＰＵ１０８、ハードディスクドライバＨＤ１０７、ランダムアクセスメモリＲＡＭ１０９、リードオンリーメモリＲＯＭ１１０等を備える。
【００２０】
図１で示される画像処理システムの例として、例えば一般的に普及しているＩＢＭ社製のＰＣ−ＡＴ互換のパーソナルコンピュータにＭｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）９５をＯＳとして使用し、印刷を行える所望のアプリケーションをインストールし、モニタとプリンタとを接続した形態が考えられる。
【００２１】
ホストコンピュータ１００では、モニタに表示された表示画像にもとづき、アプリケーション１０１で、文字などのテキストに分類されるテキストデータ、図形などのグラフィックスに分類されるグラフィックスデータ、自然画などに分類されるイメージ画像データなどを用いて出力画像データを作成する。そして、出力画像データを印刷出力するときには、アプリケーション１０１からＯＳ１０２に印刷出力要求を行ない、グラフィックスデータ部分はグラフィックス描画命令、イメージ画像データ部分はイメージ描画命令で構成される出力画像を示す描画命令群をＯＳ１０２に発行する。ＯＳ１０２はアプリケーションの出力要求を受け、出力プリンタに対応するプリンタドライバ１０３に描画命令群を発行する。プリンタドライバ１０３はＯＳ１０２から入力した印刷要求と描画命令群を処理しプリンタ１０５で印刷可能な印刷データを作成してプリンタ１０５に転送する。プリンタ１０５がラスタープリンタである場合は、プリンタドライバ１０３では、ＯＳからの描画命令に対して順次画像補正処理を行い、そして順次ＲＧＢ２４ビットページメモリにラスタライズし、全ての描画命令をラスタライズした後にＲＧＢ２４ビットページメモリの内容をプリンタ１０５が印刷可能なデータ形式、例えばＣＭＹＫデータに変換を行ないプリンタに転送する。
【００２２】
プリンタドライバ１０３で行われる処理を図２に用いて説明する。
【００２３】
プリンタドライバ１０３は、ＯＳ１０２から入力した描画命令群に含まれるイメージ描画命令の色情報に対して、画像補正処理部１２０で後述する画像補正処理を行う。プリンタ用補正処理部１２１は、まず、画像補正処理された色情報によって描画命令をラスタライズし、ＲＧＢ２４ビットページメモリ上にドット画像データを生成する。そして、各画素に対してプリンタの色再現性に応じたマスキング処理、ガンマ補正処理および量子化処理などを行い、プリンタ特性に依存したＣＭＹＫデータを生成してプリンタ１０５に転送する。
【００２４】
＜画像補正処理部＞
次に、イメージ描画命令で示される原画像に対して画像補正処理部１２０で行われる処理を図３〜図７，図９を用いて説明する。グラフィクス描画命令あるいはテキスト描画命令で示される原画像に対しては以下の処理は行われない。
【００２５】
本実施形態の画像補正処理部１２０は、図３に示したように、ヒストグラム作成処理（図３−Ｓ２０）とヒストグラムに応じた画像補正処理（図３−Ｓ３０）を行う。ステップＳ２０では、図４に示すような処理によりヒストグラムを作成する。そして、作成されたヒストグラムに基づき画像のハイライトポイントおよびシャドーポイントを決定する。
【００２６】
（輝度ヒストグラムの作成）
図４は本実施形態での輝度ヒストグラムを作成するフローチャートである。
【００２７】
図４において、Ｓ１で原画像の輝度ヒストグラム作成のルーチンに入ると、Ｓ２で原画像の画素から輝度ヒストグラムの作成に用いる画素の選択比率を決定する。本実施形態では、処理対象の画像データが３５万画素の場合に全画素を対象（選択比率１（あるいは１００％））に輝度ヒストグラムを作成することとする。３５万画素以上の画素数の画像データが入力された場合には、その総画素数の３５万画素に対する比率に応じて画素選択（サンプリング）を行う。例えば、３５０万画素の画像データが入力された場合には、選択比率は３５０万／３５万＝１０であり、１０画素に１画素の割合（選択比率１０（あるいは１０％））で輝度ヒストグラムを作成する。本実施形態では選択比率ｎは次式により求める。
ｎ＝ｉｎｔ（対象画像データの総画素数／基準画素数３５万）、（但し、ｎ＜１の時はｎ＝１、ｎは正数）。
【００２８】
続いてＳ３でライン番号を管理するカウンタをリセットあるいは所定の初期値にセットし、Ｓ４でそのカウンタをインクリメントして注目ラインのライン番号とする。
【００２９】
本実施形態では画素の間引き（サンプリング）はライン単位で行うので、選択比率ｎの場合には、ライン番号をｎで割ったときの余りが０の場合に、そのラインに属する画素を処理対象として選択する（Ｓ５−ＹＥＳ）。例えば選択比率１０の場合であれば、ライン番号を１０で割ったときの余りが０の場合に、そのラインに属する画素を処理対象として選択する注目ラインが間引かれるライン、すなわち処理対象とならないラインの場合にはＳ４に戻る。処理対象ラインの場合にはＳ６に進み、注目ラインに属する画素に順次注目し、その注目画素に対して輝度変換，色度変換を処理を行う。本実施形態における輝度変換、色度変換は以下の式により行う。なお、輝度、色度変換は以下の式に限らず様々な式を用いることが可能である。
Ｙ（輝度）＝ｉｎｔ（０．３０Ｒ＋０．５９Ｇ＋０．１１Ｂ）（Ｙは正数）、
Ｃ１（色度）＝Ｒ−Ｙ、Ｃ２（色度）＝Ｂ−Ｙ。
【００３０】
また本実施形態では白位置（ハイライトポイント）、黒位置（シャドーポイント）の検出精度を向上させるために次式により注目画素の彩度Ｓを計算し、予め定めた彩度値（Ｓｃｏｎｓｔ）より大きいか否かを判断して（Ｓ７）、大きい場合には、その画素の情報は輝度ヒストグラムに反映させない。
彩度Ｓ＝ｓｑｒｔ（Ｃ１^2＋Ｃ２^2）。
ここでｓｑｒｔ（ｘ）はｘの平方根を与える関数であり、ｘ^yはｘのｙ乗を表す。
【００３１】
即ち、（Ｓ＞Ｓｃｏｎｓｔ）の場合にはＳ６に戻り、注目画素のデータは以後の処理に反映させない。これは、後述する通り、白位置の彩度は高輝度の画素群の平均彩度により与えられ、その彩度の値は色かぶりにより生じた誤差となるため、本来高彩度であると考えられる画素はハイライトポイントの算出から除外したほうが良いためである。この処理の効果を具体例を上げて説明する。例えばイエローの画素（Ｒ＝Ｇ＝２５５、Ｂ＝０）は、上式からその輝度Ｙは２２６となり、彩度Ｓは２２７となる。すなわち、この画素は極めて高輝度であるとともに、十分に彩度の高い色を有することが分かる。このような画素は、無彩色の画素がイエローに色かぶりした結果そのようになったと判断するよりも、本来イエローの画素であると判断した方が多くの場合間違えが少ない。このような高輝度・高彩度の画素を輝度ヒストグラムに含めると、検出される白位置に誤差が生じてしまう。よって、本実施形態では所定の彩度（Ｓｃｏｎｓｔ）を定め、所定の彩度を越える彩度の画素は輝度ヒストグラムに含めない。こうすることで、高彩度の画素により検出される白位置に誤差が生じることを防ぎ、白位置の精度を向上させることができる。
【００３２】
このように、Ｓ７における判断の後、条件（Ｓ≦Ｓｃｏｎｓｔ）を満たした画素について輝度ヒストグラムを作成していく（Ｓ８）。ここで本実施形態で扱う画素データＲＧＢは各８ビット（２５６階調）データであるので、輝度Ｙも２５６の深さに変換される。よって輝度ヒストグラムは、０から２５５までの２５６段階の各輝度値の画素が夫々何度数あるかを計数することで得られる。
【００３３】
また色度Ｃ１，Ｃ２の計算値は、後の色かぶり補正時に、各輝度値を有する画素の平均色度を算出するためのデータとして用いるので、本実施形態では次のようにデータを保持する。すなわち、インデクスの範囲が０から２５５の構造体配列変数の形式で、度数，Ｃ１累積値，Ｃ２累積値の３メンバーを設定し、各画素ごとの演算結果をその画素の輝度値をインデクスとする各メンバーに反映していく。
【００３４】
注目画素について処理を終えたなら、注目ラインの全画素の処理が終了したかどうかを判断し（Ｓ９）、注目ラインに未処理画素が残っている場合にはＳ６に戻り、Ｓ６以降の処理を繰り返す。注目ライン内の全画素の処理が終了したら、Ｓ１０で未処理のラインが残っているかを判断し、全ライン終了であればＳ１１で終了し、未処理のラインが残っていればＳ４に戻り、注目ラインを次のラインに移して上記処理を繰り返す。
【００３５】
以上の様に原画像データの画素を選択しながら輝度ヒストグラムを作成することにより、必要最小限の画素数で、且つ後の白位置、黒位置検出時の精度の向上も考慮した輝度ヒストグラムを作成することができる。
【００３６】
（白位置（ハイライトポイント），黒位置（シャドーポイント）の決定）
輝度ヒストグラムが完成したら、そのヒストグラムから白位置（ホワイトポイント）、黒位置（シャドーポイント）を決定する。本実施形態では、輝度ヒストグラムにおける輝度値０及び輝度値２５５の両端から中心方向に累積輝度度数値が１７５０になる点をそれぞれ黒位置および白位置と定める。
【００３７】
すなわち、輝度値Ｙの画素の度数をＰYとすると、Ｐ０＋Ｐ１＋……と累積度数を求めていき、累積度数が１７５０を越えた時の輝度値を黒位置の輝度値ＹSDとする。次いで輝度ＹSDの画素の平均色度を求める。前記の通り、輝度ヒストグラム作成時に各輝度値の色度の累積値が計算されている（輝度Ｎの画素の累積色度をＣ１Ntotal，Ｃ２Ntotalとする）ので、黒位置である輝度値ＹSDの画素の平均色度Ｃ１SD，Ｃ２SDを求める。
Ｃ１SD＝Ｃ１YSDtotal／ＰYSD、
Ｃ２SD＝Ｃ２YSDtotal／ＰYSD。
【００３８】
同様に白位置の決定を行う。Ｐ２５５＋Ｐ２５４＋……と累積度数を求めていき、該累積度数が１７５０を越えた時の輝度値を黒位置の輝度値ＹHLとする。次いで輝度ＹHLの画素の平均色度Ｃ１HL，Ｃ２HLを求める。
Ｃ１HL＝Ｃ１YHLtotal／ＰYHL、
Ｃ２HL＝Ｃ２YHLtotal／ＰYHL。
【００３９】
以上の演算を行うことにより、［Ｃ１，Ｃ２，Ｙ］色空間において、白位置（Ｃ１HL，Ｃ２HL，ＹHL）と黒位置（Ｃ１SD，Ｃ２SD，ＹSD）を求めることができる。
【００４０】
尚、本実施形態では輝度値０と輝度値２５５の輝度位置から累積度数を求めたが、輝度値１と輝度値２５４から求めるなど、所定のオフセットを与えても良い。
【００４１】
以上のようにして、図３のステップＳ２０において、白位置（ハイライトポイント）／黒位置（シャドーポイント）を決定する。
【００４２】
次に、図３のＳ３０において、Ｓ２０で決定された白位置および黒位置に基づいた画像補正処理を行う。本実施形態では画像補正処理として、原画像の色かぶりを補正する色かぶり補正、原画像の露出を最適化すべく輝度のコントラストを補正する露出補正、および出力画像の色のみえを良くするための彩度補正を行う。
【００４３】
図９は、画像補正処理部１２０により図３のステップＳ３０で行われる補正処理の流れを示している。すなわち、まず色かぶり補正のための回転行列を求め、次にその回転行列を用いて色バランス（色かぶり）を補正し、最後に画像の露出の状態に応じて、輝度信号のガンマ変換を行う。これら各処理を、順を追って説明する。
【００４４】
（色かぶり補正）
上記の通り原画像の（Ｃ１，Ｃ２，Ｙ）色空間における白位置、黒位置が求められたら、引き続いて色かぶりの補正を行う。
【００４５】
もし原画像に色かぶりが無く理想的な画像であるとすれば、無彩色はＲ＝Ｇ＝Ｂであり、白位置、黒位置の色度の演算値は「Ｃ１HL＝Ｃ２HL＝Ｃ１SD＝Ｃ２SD＝０」となる。しかし色かぶりがある場合には、かぶっている色相方向に、かぶっている程度に比例して、（Ｃ１HL，Ｃ２HL，ＹHL）と（Ｃ１SD，Ｃ２SD，ＹSD）を結ぶ直線（色立体軸）に傾きが生じる。色かぶり補正は色立体軸とＹ軸（輝度軸）が一致する様に変換することで達成できる。変換は色立体を回転、平行移動させることでも達成できるし、座標系を変換することでも達成できる。
【００４６】
本実施形態ではまず原画像の色立体において、色立体軸の最低輝度点（下端点）を回転中心として、色立体軸をＹ軸と平行となる様に回転させる。次いで前記最低輝度点の位置が（Ｃ１，Ｃ２，Ｙ）空間の原点となるように座標系を変換する。図５（ｂ）の色立体に対して色かぶり補正を行った結果を図５（ｃ）に示す。以上の処理により、最低輝度点が原点で、色立体軸がＹ軸と一致する変換結果が得られる。なお、図５（ａ）は色かぶりのない理想的な画像データの色分布を示す色立体である。上述の変換により、変換後の色立体（図５（ｃ））は、理想的な色立体（図５（ａ））に近づけられる。
【００４７】
なお、色立体軸をＹ軸と平行に回転させる回転変換にあたっては、シャドーポイント及びハイライトポイントの座標値から、回転変換の回転軸及び回転角は簡単に決めることができる。３次元空間上で、立体を所望の回転軸周りに所望の角度で回転させる回転行列を求める手法は公知の技術であるので、この詳細な説明は省略する。
【００４８】
以上の様に、原画像の各画素を、色度と輝度とを軸とする３次元色空間の画素データ（Ｃ１，Ｃ２，Ｙ）に変換し、その画像データを、黒位置と白位置とを結ぶ色立体軸（グレーライン）がＹ軸と一致し、かつ最低輝度が座標原点となるような画素データ（Ｃ１’，Ｃ２’，Ｙ’）に回転、平行移動変換することにより、色かぶりの補正を行うことが可能となる。
【００４９】
（コントラスト及び彩度の調整）
次にコントラスト及び彩度の調整による画像のさらなる高品質を実現するために、画像の露出オーバー／アンダーを簡易的に判定し、それに応じて輝度信号にガンマ補正をかける方法を説明する。
【００５０】
コントラストの調整は、黒位置（シャドーポイント）の輝度を“０”あるいはそれに近い値（例えば“１０”）に調整し、白位置（ハイライトポイント）の輝度を“２５５”あるいはそれに近い値（例えば“２４５”）に調整することで行う。
【００５１】
次に、画像の露出のオーバー・アンダーを簡易的に判定し、画像データに対してそれに応じたガンマ補正を施す際の一実施例を示す。
【００５２】
まず、補正する色立体軸と輝度（Ｙ）軸とが最小距離となる点、つまり図５（ｂ）におけるＴ，Ｔ’を求める。これは幾何学的な関係から簡単に求めることができる。
【００５３】
そして、点Ｔ’の色かぶり補正後の輝度成分ＹT'が点Ｔの輝度成分ＹTとなるようにコントラストを調整する。つまり図６に示すように（ＹT，ＹT'）を屈折点とし、色かぶり補正後の輝度Ｙ’がＹT'より小さい場合は、輝度を直線ａとして与えられる関数によりＹ”に補正し、ＹT'より大きい場合は、直線ｂとして与えられる関数によってＹ”に補正する。
【００５４】
もちろん、このＴ，Ｔ’を使わずに、図６の直線ｌ2で与えられるような補正をおこなってもよい。色立体軸が輝度軸と並行になる場合は、点Ｔ，Ｔ’は１対ではないし、また、Ｔ，Ｔ’が輝度の範囲［０，２５５］の外にある場合には、点（ＹT，ＹT'）を屈折点とすることはできない。このような特殊なケースでは直線ｌ2に従って補正すればよい。
【００５５】
この２直線の最近接点Ｔ，Ｔ’を用いた補正の効果は、とくに露出のオーバーあるいはアンダーの画像に作用する。露出がオーバーになるのは空などの明るいところに画像全体が引っ張られるためである。この際デジタルカメラを代表する入力機器では、高輝度色抑圧が行われ、高輝度部の彩度がおとされる。すなわち、高輝度色抑圧の行われた画像の色立体軸を、図７（ａ）に示すように彩度と輝度とを軸とする２次元平面で考えると、高輝度の部分でもっとも無彩色に近い画素があらわれる。逆に、露出アンダーの画像に対しては低輝度色抑圧がかかるため、図７（ｂ）のように、低輝度の部分で彩度が低くなる。
【００５６】
実際の画像で色立体の輝度軸を輝度−彩度平面で考えると露出オーバーの画像に関しては例えば、図７（ｃ）のようになる。逆にアンダーの画像に関しては例えば、図７（ｄ）のようになる。そもそも本来あるべき（理想的な状態の）色立体から、なんらかの撮影状況や入力時（Ａ／Ｄ変換時）の影響で実際の色立体がずれるのだと考えれば、Ｔ，Ｔ’の位置がもっともズレの小さい場所と考えられる。従って、本発明はこれを戻してやることで簡易的に適切なグレー、つまり全体の明るさ補正を行うものである。
【００５７】
もちろんこのＴを単に画像の露出オーバー・アンダーを簡易的に判定する手段として用い、あらかじめアンダー用のＬＵＴ（ルックアップテーブル）、オーバー用のＬＵＴを用意し、点ＴあるいはＴ’の輝度成分に応じて輝度信号のガンマ調整を行ってもよい。例えば、図６の点（ＹT，ＹT’）を変曲点とするような曲線によってコントラストの調整を行ってもよい。従って、このＴ，Ｔ’の値によって簡易的に画像が露出オーバーなのか、アンダーなのか判定できる。すなわち、色立体軸においてもっとも彩度の低い点である点Ｔ’の輝度成分が高輝度よりにあれば、その画像の輝度−彩度の関係は図７（ａ）のような傾向を示すし、逆に点Ｔ’の輝度成分が低輝度よりにあれば、その画像の輝度−彩度の関係は図７（ｂ）のような傾向を示す。したがって、高輝度色抑制及び低輝度色抑制された画像において、点Ｔ’の輝度成分が高輝度よりにあれば、その画像は露出オーバー傾向にあり、点Ｔ’の輝度成分が低輝度よりにあれば、その画像は露出アンダー傾向にあると考えられる。
【００５８】
一方、彩度調整は、色差Ｃ１，Ｃ２に彩度補正係数を乗ずることで簡単に行うことができる。例えば、彩度を２０％あげる場合は、補正後の彩度は補正前の１２０％となることから、彩度補正係数を１．２として計算する。すなわち、
Ｃ１”＝１．２×Ｃ１’、
Ｃ２”＝１．２×Ｃ２’
として彩度補正を行うことができる。これは、（彩度）＝ｓｑｒｔ（Ｃ１^2＋Ｃ２^2）
で定義されることによる。
【００５９】
（ＲＧＢ空間への逆変換）
以上で本実施形態における各種補正が終了する。この時点で原画像の各画素は（Ｒ，Ｇ，Ｂ）の色信号データから（Ｃ１”，Ｃ２”，Ｙ”）の色空間データに変換された状態にあるので、再度（Ｒ’，Ｇ’，Ｂ’）の色信号データに逆変換する。逆変換は以下の式により行う。
Ｒ’＝Ｙ”＋Ｃ１”、
Ｇ’＝Ｙ”−（０．３／０．５９）＊Ｃ１”−（０．１１／０．５９）＊Ｃ２”、
Ｂ’＝Ｙ”＋Ｃ２”。
【００６０】
このようにして、原画像に対して、色かぶり，コントラスト、彩度が補正されたＲＧＢデータを得ることができる。
【００６１】
以上のように、本実施形態によれば、少ない処理負荷で確実に色かぶり補正が可能となる。
【００６２】
また、本実施形態によれば、サンプリング条件を原画像の画像データサイズに応じて設定しているので、入力画像にかかわらずヒストグラム総度数と、白位置及び黒位置を決定するための累積度数との関係をほぼ一定にすることができる。したがって、良好な色かぶり補正を実現することができる。
【００６３】
さらに、補正対象画像の色立体軸と輝度軸との距離が最短となる点における輝度を維持するように画像全体を非線形にガンマ補正することで、もっとも原画像の値に近いと考えられる輝度を維持しつつ、コントラストを補正することができる。
【００６４】
さらに、画像が露出オーバーであるか露出アンダーであるかという露出状態を簡単に得ることができる。さらに、その露出状態に応じて異なるテーブルを選択し、ガンマ補正を施すこともできる。
【００６５】
なお、サンプリングをライン単位でなくカラム単位で行っても構わない。
【００６６】
［第２の実施の形態］
次に、上述した第１実施形態に対して、補正度合いを考慮した第２の実施形態について説明する。
【００６７】
第１実施形態で説明したように、画像の色立体軸を求める際に、この軸の傾きがあまりにも大きい場合、これを無理に補正すると画像に不具合が生じる場合がある。これには例えば色フィルタなどをもちいて故意に色かぶりを起こしているような場合や、夕焼けのシーンを撮影した場合などが考えられる。
【００６８】
このような場合、求めたハイライトポイントとシャドーポイントが間違っていたと判断して補正を行わないか、または、回転角を適当に調整して補正度合いを弱めることで不具合をなくすことができる。このようなハイライトポイントとシャドーポイントが間違っていたという判定は、色立体軸の方向によって可能である。色立体軸の傾きから、どの色がかぶっているのか容易に判定できるので、特殊効果を得るために例えば色フィルタを用いて撮影された画像については色かぶりを補正しないというような判定もできる。
【００６９】
このような場合、色立体軸の方向ベクトルと、輝度軸とのなす角度に着目し、色かぶり補正を行うことで逆に不都合が生じると判定して処理を行わないか、または、処理の度合をゆるめる。例えば、色立体軸が赤の色相方向に向いており、その角度が所定の角度、例えば４０度以上の場合には、その画像は本来色かぶりした画像であると判断する。処理の度合をゆるめる場合には、色立体軸を所定角度、例えば２０度だけ起こしたり、あるいは所定角度まで、例えばＹ軸に対する傾きが２０度になるまで起こすことで色かぶりを補正する。この変換のための回転行列は、回転軸と回転角度とから容易に求めることができる。
【００７０】
なお上記補正の度合いはユーザーがマニュアルで指定してもいいし、あらかじめ角度の大きさ、該色立体軸の方向に応じて設定しておいてもよい。例えば４０度の場合、該画像の色立体を２０度だけ回転して起こすとしたが、その補正の度合いをユーザに指定させてもよい。以後の処理は第１実施形態と同様である。
【００７１】
また、色立体軸の方向によって、どの色がかぶっているのか容易に判定できるので、特殊効果を得るために例えば色フィルタを用いて撮影された画像については、フィルタの色方向に関しては補正しないというような判定もできる。すなわちこのような場合には、色かぶりを補正しない色を指定させ、Ｃ１−Ｃ２平面上において、補正を行わない色の方向に沿って回転変換の回転軸を設定し、その回転軸と色立体軸ｌとを含む平面が、Ｙ軸と平行になるまで色立体を回転変換する。こうすることで、特定の色成分についてだけ色かぶりを補正できる。
【００７２】
図１０は、色立体軸が所定角度以上傾いている場合には、別途指定された角度まで色立体を回転させるように、画像を補正するための処理手順である。まず、ステップＳ１０１でハイライト／シャドーポイントを決定し、ステップＳ１０２で色立体軸の傾きが所定角度以上であるか判定する。もし所定角度に達していなければ、ステップＳ１０４，Ｓ１０５で、第１の実施の形態と同様に、色立体軸が輝度軸と一致するように変換して色かぶりを補正する。
【００７３】
一方、色立体軸が所定角度以上傾いていれば、色立体軸を、輝度軸に向かって２０度だけ回転させるような回転行列をステップＳ１０３で求め、ステップＳ１０５で、その回転行列を用いて色立体を回転させて色かぶりを補正する。この場合、ステップＳ１０３で用いた２０度という角度は、いかように指定しても構わない。
【００７４】
なお、しきい値を２段階設け、第１のしきい値（例えば４０度）より色立体軸の傾きが大きい場合には、色立体軸を完全なグレーラインにしない程度に色立体軸を起こす（例えば２０度）ように回転変換し、第１のしきい値と第２のしきい値（例えば２０度）との間の場合には、回転変換を行わず、第２のしきい値よりも傾きが小さい場合には、色立体軸を輝度軸と一致させるように回転変換を行うこともできる。このようにすることで、意図的に色かぶりが生じさせられた画像については、不都合な補正を行うことがない。
【００７５】
このように、画像データの画素により構成される色立体の軸の傾き、すなわち軸の方向と傾きの角度という２つの量から、補正するか否かのしきい値をすくなくとも２つ以上設定し画像を補正すべきか、すべきでない、補正度合いを調節すべきかの判定を行うことができ、非常に簡潔に特殊なケースの弊害だけをはじくことができる。
【００７６】
また、色立体軸の方向によって、どの色がかぶっているのか容易に判定できるので、かぶっている色方向に応じて色かぶりを補正しないようにすることもできる。
【００７７】
［第３の実施の形態］
前記第１〜第２実施形態では、画像のハイライトポイント・シャドーポイントに基づいた色バランス補正について説明したが、この他の基準点に基づく補正の実施例について以下説明する。
【００７８】
まず、ハイライトポイントおよびシャドーポイントにおける平均色差量△Ｅを求める。
△Ｅ＝ｓｑｒｔ（（Ｃ１HL−Ｃ１SD）^2＋（Ｃ２HL−Ｃ２SD）^2）。
色立体軸が輝度軸と平行であればΔＥ＝０となるはずであるが、傾いていれば、０より大きな値となる。つまり、Ｅ（彩度）−Ｙ（輝度）平面で考えると図８のようになる。
【００７９】
次にハイライトとシャドーの間のサンプル輝度を数点用意する。そして、画像中で例えば輝度Ｙｎの画素から、△Ｅｎより小さい彩度の画素を用いて、図８のように平均色差量を求める。ΔＥｎとしては、予め設定した一定彩度を用いてもよいし、また、色立体軸の傾き方向に限定した平均色差量を求めてもよい。
【００８０】
これらの数点の輝度について平均色差で最小二乗法的に直線を求め、これを色立体軸として第１実施形態に基づく処理を行う。
【００８１】
あるいは、求められた色差及び輝度を要素とする点をＢシュプラインなどで近似曲線を求め、この曲線を輝度軸にする、すなわち色差を“０”とするように非線形の色バランス補正を行ってもよい。
【００８２】
以上本発明を好ましい実施例により説明したが、本発明は上述した実施例に限ることなく、クレームに示した範囲で種々の変形が可能である。
【００８３】
このようにすることで、輝度軸となるべき線を、ハイライト及びシャドーだけではなく、画像全体から一様にサンプリングした画素から得ることができる。得られた線を輝度軸に一致するように画像データを変換することで、画像全体の特性を反映した色かぶり補正を行うことができる。
【００８４】
［他の実施形態］
なお、本発明は、複数の機器（例えばホストコンピュータ，インタフェイス機器，リーダ，プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用してもよい。
【００８５】
また、本発明の目的は、前述した実施形態の機能を実現するための、図３，４，９，１０に示した手順のプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても達成される。
【００８６】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００８７】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００８８】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００８９】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【００９０】
【図１】画像処理装置のブロック図である。
【図２】プリンタドライバのブロック図である。
【図３】画像補正処理部の処理手順のフローチャートである。
【図４】輝度ヒストグラム作成手順のフローチャートである。
【図５】輝度及び色度分布を示す色立体の模式図である。
【図６】非線形ガンマ変換関数を示すグラフである。
【図７】輝度−彩度平面でみた露出オーバー・アンダーの特徴を示す図で、（ａ）は露出オーバーの概念図（ｂ）は露出アンダーの概念図（ｃ）は露出オーバーの一例（ｄ）は露出アンダーの一例を示す。
【図８】第３の実施の形態における色立体軸を決める様子を示す図である。
【図９】画像補正の制御手順のフローチャートである。
【図１０】第２の実施形態における色かぶり補正の制御手順のフローチャートである。
【図１】
2008167504.tif 000003
【図２】
2008167504.tif 000004
【図３】
2008167504.tif 000005
【図４】
2008167504.tif 000006
【図５】
2008167504.tif 000007
【図６】
2008167504.tif 000008
【図７】
2008167504.tif 000009
【図８】
2008167504.tif 000010
【図９】
2008167504.tif 000011
【図１０】
2008167504.tif 000012