以下、添付図面を参照し、本発明の実施の形態について詳細に説明する。
《実施例1》
図1は本発明の実施例1の構成を示すブロック図であり、図2は本実施例における処理手順を示すフローチャートである。
図1に示す画像処理装置1は、画像データのコントラスト補正を行うもので、入力画像のタイプ判定処理(ステップS1)を行う判定手段2、判定されたタイプに応じてハイライトポイントを設定するための対象領域の情報を獲得する処理(ステップS2)を行う対象領域情報獲得手段3、獲得された対象領域の情報を用いてダイナミックレンジを設定する処理(ステップS3)を行うダイナミックレンジ設定手段4、及び、設定されたダイナミックレンジを用いて画像全体のコントラスト補正処理(ステップS4)を行う処理手段5より構成される。以下、各手段について具体的に説明する。なお、入力画像データをRGBデータとして扱うが、他の形式のカラー画像データも同様に処理可能であることは以下の説明から明らかであろう。
まず、判定手段2(ステップS1)について説明する。この判定手段2は、コントラスト補正により階調つぶれの目立ちやすい領域が存在する画像をAタイプ、そのような領域が存在しない画像をBタイプに分類する判定を行う。ここで、「階調つぶれの目立ちやすい領域」とは、画像を構成するうえで意味のある重要領域である。
Aタイプと判定されるのは、例えば、逆光撮影画像や、フラッシュを使用した夜間ポートレート撮影画像等である。逆光撮影で背景が白飛びを起こしている場合、背景以外のハイライト部分は階調つぶれが目立ちやすい。また、夜間ポートレート撮影画像も、被写体はハイライト側に存在するためコントラストを強調しすぎる処理を行うと、階調つぶれが目立つ。これ以外にも、被写体の明るさが画像内の明るさにおいて相対的に明るい範囲に存在する場合は、Aタイプに判定される。図27及び図28にAタイプの画像例を示す。Bタイプと判定される画像は、Aタイプに判定されなかった画像であり、例えば通常撮影の適正露出画像、露出不足画像等である。図29にBタイプの画像例を示す。
図3に判定手段2の構成例を示す。ここに示す判定手段2は輝度ヒストグラム二極化測定手段21、輝度ヒストグラム歪度算出手段22、領域別明るさ検出手段23、付随情報参照手段24及びタイプ決定手段25から構成される。Aタイプの画像の輝度ヒストグラムは分布のバランスが悪い場合が多いが、この特徴を得るための手段が輝度ヒストグラム二極化測定手段21、輝度ヒストグラム歪度算出手段22及び領域別明るさ検出手段23である。画像データにはヘッダ情報等として撮影時の情報が付随していることが多い。例えば、デジタルカメラで撮影された画像データをExif等の情報形式で保存する場合、撮影時の情報をタグに埋め込むことが可能である。付随情報参照手段24は、そのような画像データに付随したタイプ判定に利用可能な情報(具体的には、逆光モードや夜間撮影モード等のモード情報やストロボのON/OFF情報等)を取得するための手段である。タイプ決定手段25は、各手段21〜24により取得された情報に基づいて最終的に画像のタイプを判断する手段であり、その判定フローを図4に示す。
まず、輝度ヒストグラム二極化測定手段21について説明する。前述のようにAタイプに判定される画像のヒストグラムは分布のバランスが悪い場合が多いが、特に、逆光画像では、背景が極端に明るく被写体が極端に暗い場合が多く、その場合には輝度ヒストグラムが図5に例示するように二極化する。輝度ヒストグラム二極化測定手段21は、輝度ヒストグラムの頻度と勾配を用いて、輝度ヒストグラムの二極化度合を測定する手段であり、その処理フローを図6に示す。図7及び図8は二極化していない輝度ヒストグラム及び二極化した輝度ヒストグラムに対する処理の説明のための図である。
ここで、輝度ヒストグラムにおける輝度レベルをi(i=0,1,2,...255)、レベルiの頻度をf(i)、勾配をh(i)とする。h(i)は以下の式で表される。
h(i)=(f(i+δ)-f(i))/δ (i=0,1,2,,,,,255-δ,δ>0) … (1)
二極化測定はレベル255-δからレベルをデクリメントしながら行われ、Xと,Y1又はY2の各レベルを検出する。
輝度ヒストグラムが二極化していない場合の処理について、図7を参照して説明する。勾配h(i)がマイナスの255≧i≧Qのレベル領域ではステップS21→S22→S23〜S24→S21のループが繰り返され、iがデクリメントされるだけである。つぎの勾配h(i)がプラスで頻度f(i)が閾値th1より大きいQ>i>Xのレベル領域では、ステップS21→S25→S28→S21のループが繰り返されiがデクリメントされるだけであるが、f(i)=Th1となると(ステップS26,Yes)、その時のiがレベルXとして検出され(ステップS27)、ステップS28より処理が継続される。その後、勾配は多少あっても頻度が低いX>i>Y1のレベル領域では、ステップS21→S25→S26→S28→S21のループ又はステップS22→S30→S31→S33→S22のループが繰り返されiがデクリメントされるだけであるが、f(i)=Th1となると(ステップS31,Yes)、その時のiがレベルY1として検出され(ステップS32)、処理を終了する。
輝度ヒストグラムが二極化している場合の処理について、図8を参照して説明する。この場合も、レベルXの検出までは図7の例の場合と同じ処理であるが、二極化している場合には頻度f(i)が閾値Th1未満の領域で勾配h(i)がマイナス方向に急激に増加し、h(i)=-Th2(Th2は閾値)となると(ステップS23,Yes)、その時のiがレベルY2として検出され(ステップS35)、処理を終了する。
なお、Th1,Th2は、その設定によって検出される二極化度合いが変わるが、例えばヒストグラムの総頻度数をNとして次式により決定することができる。
Th1=C*N
Th2=f(i)*D
但し、C,Dは定数 … (2)
タイプ決定手段25においては、輝度ヒストグラム二極化測定手段21により検出されたレベルY1,Y2の大きい方のレベルをX'とし、レベルXとレベルX'の差(X-X')と閾値Th3の比較判定を行い(図4、ステップS51)、X-X'≧Th3の場合に二極化していると判定し入力画像のタイプをAタイプに決定する(図4、ステップS55)。
次に、輝度ヒストグラム歪度算出手段22について説明する。フラッシュを使用した夜間ポートレート撮影画像の場合、背景が暗闇のためヒストグラムは極端にアンダー寄りである。これに対し、Bタイプを代表する通常撮影の適正露出画像は、輝度ヒストグラムの偏りが少なくバランス良く分布している。このような輝度ヒストグラムの偏りを表す尺度として、輝度ヒストグラム歪度算出手段22は輝度ヒストグラムの歪度Zを次式により算出する。
Z=(1/N)Σ((Y(j)/ave(Y(j))/S(Y(j)))^3 … (3)
ただし、Nは総画素数であり、Y(j)はj番目の画素の輝度、Σの和はj=1からNについてとる。また、ave(Y(j))はY(j)の平均値、S(Y(j))は標準偏差である。
Z>0の場合、輝度ヒストグラムは図9に例示するようなアンダー寄りの形状である。したがって、判定手段2のタイプ決定手段25は、算出された歪度Zが0より大きいか判定し(図4、ステップS52)、その条件が成立する場合には入力画像のタイプをAタイプに決定する(図4、ステップS56)。なお、0以外の閾値を設定し、その閾値を歪度Zが越えている場合にAタイプと判定することも可能である。
また、画像の背景領域と被写体領域の明るさが極端に異なる場合にも、輝度ヒストグラムはバランス良く分布していないと考えられる。そこで、判定手段2の領域別明るさ検出手段23は、入力画像の背景領域と被写体領域を識別し、各領域の明るさを検出する。各領域の明るさの尺度としては、例えば輝度中央値や輝度平均値を用いることができる。そして、判定手段2のタイプ決定手段25は、下記(4)式の条件判定を行い(図4、ステップS53)、条件が成立するときには入力画像のタイプをAタイプに決定する(図4、ステップS57)。
背景の明るさ≪被写体の明るさ
もしくは
背景の明るさ≫被写体の明るさ … (4)
この条件判定は、具体的には、例えば、
背景の輝度平均値/被写体の輝度平均値 > Th4
もしくは、
背景の輝度中央値/被写体の輝度中央値 > Th5
の場合にAタイプ(逆光撮影画像)とし、また、
背景の輝度平均値/被写体の輝度平均値 < Th4
もしくは、
背景の輝度中央値/被写体の輝度中央値 < Th5
の場合にAタイプ(夜間ポートレート撮影画像)とすることができる。
また、前述のように、画像データに撮影状態を把握できるような情報が付随しているならば、その情報によって画像のタイプを判別できる。そのような付随情報を参照するのが判定手段2の付随情報参照手段24の役割である。より具体的には、逆光モード撮影、夜間撮影モード、ストロボONのように、Aタイプに相当する特定の撮影状態を示す情報を参照する。判定手段2のタイプ決定手段25においては、そのような特定の撮影状態を示す情報が存在するときには(図4、ステップS54、Yes)、入力画像のタイプをAタイプに決定する(図4、ステップS58)。そして、ステップS51〜S54のいずれの判定条件も成立しない場合に、タイプ決定手段25は入力画像のタイプをBタイプと決定する(図4、ステップS59)。
なお、逆光モード撮影、夜間撮影モード、ストロボONなどの特定の撮影状態を示す情報をオペレータが与えるようにすることも可能であり、そのような構成も本発明に包含される。また、他の情報、例えばシャッタースピードの情報も利用可能である(シャッタースピードが遅ければ適正露出以外の露出状態で撮影が行われた可能性が高く、Aタイプと判定し得る)。
ステップS51,S52の判定は輝度ヒストグラムの形状に基づいた判定であるが、その際にヒストグラムの間引きを行ってもよい。
また、ヒストグラムの形状以外にも、ハイライトポイントをタイプ判定に利用してもよい。この場合、輝度レベル255から頻度を積算していき、積算頻度が例えば総度数の0.5%を超えたレベルをハイライトポイントとすることができる。
つまり、全度数をN、レベルiの頻度をz(i)(i=,1,2...255)とする場合、
N=Σz(i)、(和はi=0,1,2...255、についてとる)と表せ、
ハイライトポイントは(0.5*N)/100≦Σz(i)(i=255,254,....の順にとる)となるiの最大値とすることができる。
判定手段2の判定方法は以上の方法のみに限定されるものではなく、コントラスト補正によって階調つぶれの目立ちやすい領域が存在するか否かを判定できるならば他の方法を利用しても構わない。
次に、対象領域情報獲得手段3(図2、ステップS2)について説明する。対象領域情報獲得手段3は、判定手段2により判定されたタイプに応じて、ハイライトポイントの設定のための領域(対象領域)の情報を得る。以下、Aタイプの場合とBタイプの場合とに分けて説明する。
まず、Aタイプと判定された場合について説明する。入力画像がAタイプと判定された場合には、階調つぶれの目立ちやすい領域を対象領域とする。そのような領域は、ハイライトでかすかに色づいている領域、すなわち画像を明るさの分布を表す情報で表現した場合の『相対的に明るい』範囲に対応する画像領域である。そのような領域を得るための処理フローを図10に示し、その各ステップについて説明する。
ステップS71:入力画像全体の輝度ヒストグラムを作成する。なお、判定手段2で作成された輝度ヒストグラムを利用することも可能である。
ステップS72:画像のなかで相対的に明るい部分を取り出すために、対象領決定用ダイナミックレンジ(Scene_Min,Scene_Max)を算出する。すなわち、輝度ヒストグラムにおいて、最小レベルから最大レベルに向かって、及び、最大レベルから最小レベルに向かって、頻度を累積し、累積頻度が総頻度の1%になるレベルをそれぞれシャドーポイントScene_Min、ハイライトポイントScene_Maxとする。ただし、この設定パラメータ(累積頻度1%)は一例であり、変更可能である。なお、デジタルカメラで撮影された画像などは、レベル0とレベル255にノイズがのり易いため、最小レベルを1、最大レベルを254とするのが一般に好ましい。
ステップS73:画像のなかで相対的に明るい部分をヒストグラム上の分布域から決定するため、輝度ヒストグラムをいくつかの区分に量子化する。例えば、Scene_MinとScene_Maxの間を4つの区分に分割する。そして各区分にレベルの低い順から番号付けを行う。図11に量子化例を示す。最もレベルの高い区分3に属する画素が「相対的に明るい領域」である。
ステップS74:上のステップで得た「相対的に明るい領域」から、高輝度白色光画素及びエッジ画素を排除し、残った画素を対象領域とする(ステップS74)。
図28に示した夜間ポートレート撮影画像の場合、図30に示した白抜き領域が対象領域である。高輝度白色光画素の領域をあらかじめ排除する理由は、その領域は後述するコントラスト補正によって仮に階調がつぶれたとしても、そのつぶれが認識しにくい(目立たない)からである。また、エッジ画素の領域をあらかじめ排除する理由は、デジタルカメラ内のエッジ強調処理により故意に強調された可能性があるため判定には適さないからである。
ここで、高輝度白色画素とは、その色成分(R,G,B)が、例えば、
((R>240 && G>240 && B>240) && (|G-R|<10 && |G-B|<10)) … (5)
を満たす領域である。ここで、G−R,G−Bは彩度を表わす。
次に、Bタイプと判定された入力画像の場合について説明する。Bタイプの画像は、適度なコントラストを持ち、輝度ヒストグラムは広い範囲でバランス良く分布しているため、画像全域をハイライトポイントの設定に用いることができる。したがって、対象領域情報獲得手段3は、入力画像の全領域から上に述べた高輝度白色光画素とエッジ画素を除き、残った領域を対象領域とする。ここで高輝度白色光画素とエッジ画素を排除する理由は上に述べた通りである。
なお、(5)式においては、RGB情報を用いて高輝度白色光画素か否かの判定を行っているが、輝度色差情報、明度色差情報などRGB以外の色空間を用いることもできる。また、高輝度白色画素を定義しているパラメータ(前記(5)式中の閾値240,10)は処理後の画像を出力するデバイスの特性等に応じて適宜変更することができる。また、輝度情報を用いて画像のなかで相対的に明るい部分を算出しているが、明度情報あるいはG信号などの色情報を用いることもできる。
次に、ダイナミックレンジ設定手段4(図2、ステップS3)について説明する。対象領域情報獲得手段3により得られた対象領域の情報を用いて、以下の手順でダイナミックレンジを設定する。
ハイライトポイントの設定であるが、対象領域のR,G,B各ヒストグラムにおいて最大レベルからの累積頻度をそれぞれ計算し、累積頻度の値が総頻度の0.5%となるR,G,B各々のレベルの中で最大のレベルをハイライトポイントRange_Maxとする。シャドーポイントについては、画像の全領域のR,G,B各ヒストグラムにおいて、最小レベルからの累積頻度をそれぞれ計算し、その値が0.5%に対するR,G,B各々のレベルの中で最小のレベルをシャドーポイントRange_Minとする。なお、デジタルカメラで撮影された画像は0レベル、255レベルにノイズがのり易いため、累積頻度の計算の際には最小レベルを1、最大レベルを254とするのが一般に好ましい。
このように、ハイライトポイントの設定に、輝度ヒストグラムではなく、R,G,B各色のヒストグラムを用いるのは、輝度値は同じでも異なる色成分を持つ画素が存在する場合には、輝度ヒストグラムのみでハイライトポイントを決めると色情報が無視されるために階調つぶれが起こる可能性があるからである。つまり、少なくともハイライトポイントの設定には、色情報を用いる。ただし、色情報として、RGB情報以外の輝度色差情報や明度色差情報等を用いてもよい。一方、シャドー部分は色が認識されにくいため、処理速度の高速化のために、シャドーポイントは輝度情報のみを用いて設定してもよい。
なお、ダイナミックレンジの設定パラメータ(累積頻度1%)は一例であり、適宜変更し得る。また、ここまでの説明から明らかなように、対象領域情報獲得手段3によって獲得する対象領域情報は、対象領域のヒストグラムを作成できるならば、どのような形の情報でも構わない。
次に、処理手段5(図2、ステップS4)について説明する。処理手段5は、ダイナミックレンジ設定手段4により設定されたダイナミックレンジを用いて、画像全体に対しコントラスト補正を行う。すなわち、j番目の画素(j=1,2,...N-1,N)の輝度値をYin(j)とし、そのコントラスト補正後の輝度値Y1(j)を(6)式により算出し、補正係数C0(j)を(7)式により算出する。
Y1(j)=α×Yin(j)+β
α=(255−0)/(Range_Max−Range_Min)
β=(1-α)・(255・Range_Min−0・Range_Max)/
((255−0)−(Range_Max−Range_Min)) … (6)
C0(j)=Y1(j)/Yin(j) … (7)
そして、算出された補正係数C0(j)を色成分(Rin(j),Gin(j),Bin(j))に乗じることにより、コントラスト補正された色成分(R1(j),G1(j),B1(j))を得る。
(R1(j),G1(j),B1(j))=C0(j)・(Rin(j),Gin(j),Bin(j)) … (8)
以上説明した画像処理装置1は、独立した装置として実現することも、他の機器の組み込み装置として実現することもでき、また、ハードウェア、ソフトウェア、その組み合わせのいずれによっても実現できる。ソフトウェアにより実現する場合について図12を参照して説明する。
図12に示す画像処理システム101は、コンピュータ107と周辺機器とからなる。ここに示す例では、周辺機器として、スキャナ104、デジタルカメラ105、ビデオカメラ106などの、カラー画像をマトリックス状の画素として表した実写の画像データとしてコンピュータ107に入力するための機器、オペレータからコマンド、その他の情報を入力するためのキーボード109、補助記憶のためのハードディスク108、フロッピディスクドライブ111など、データやプログラムなどが記録されたCD−ROMを読み取るためのCD-ROMドライブ110、コンピュータ107より画像を出力するためのディスプレイ114、プリンタ115などを有する。また、モデム112及びサーバ113もコンピュータ101に接続されている。
コンピュータ107上で動作する画像処理アプリケーション118は、オペレーティングシステム116により処理の実行が制御され、また、必要に応じてディスプレイドライバ119と連携し所定の画像処理を実行する。この画像処理アプリケーション118には、図1の画像処理装置1の機能(図2に示す処理手順)をコンピュータ107上で実現するための補正プログラム117が組み込まれている。画像処理アプリケーション118で画像処理を行う時に、補正プログラム117で画像データに対するコントラスト補正処理が施される。コントラスト補正後の画像データは、ディスプレイドライバ119を介してディスプレイ114に出力され、あるいはプリンタドライバ120を介してプリンタ115に出力される。
なお、ここでは画像処理システムの例であったが、汎用のコンピュータシステムで動作する画像処理アプリケーションに補正プログラム117と同様の機能を実装することも可能である。また、コントラスト補正処理を画像出力時にのみ施すのであれば、補正プログラム117と同様の機能を、プリンタドライバ120やディスプレイドライバ119、あるいは、プリンタ115やディスプレイ114に実装することも可能である。このようなコントラスト補正のための機能をコンピュータ上で実現するためプログラム類、及び、それが記録されたコンピュータが読み取り可能な情報記憶媒体、例えば磁気ディスク、光ディスク、光磁気ディスク、半導体記憶素子等も本発明に包含される。
《実施例2》
図13は本発明の実施例2の構成を示すブロック図である。ここに示す画像出力システムは複数のパソコン(PC)131a,131bと複数のプリンタ136a,136bを有し、任意のパソコンより任意のプリンタに画像を出力することができる。この画像出力システムは、各プリンタ136a,136bに対応した画像処理装置132a,132bも備える。
この画像出力システムにおいて、例えばパソコン131aでオペレータがプリンタ136aを選択して出力指令を入力すると、パソコン131aは画像を撮像するなどして取り込まれた画像データや各種DTPソフトで作成された画像データを画像処理装置132aに送る。画像処理装置132aは、送られた画像データのコントラスト補正処理を行ってから複数の出力色成分C(シアン)、M(マゼンタ)、Y(イエロー)、K(ブラック)への色変換処理を行って印刷データを生成し、それをプリンタ136aに送り印刷させる。
なお、画像処理装置132a,132bは独立した装置として示されているが、後により具体的に述べるように、画像処理装置132a,132bの全機能をパソコン131a,131b上で動作するプリンタドライバに実装することも、一部機能をプリンタドライバに実装し残りの機能をプリンタ136a,136bに実装するなど、様々な実現形態をとり得る。
各画像処理装置132a,132bは、色変換手段133と、中間調処理等を実施する描画手段134と、描画手段134で描画された1ページ分の印刷画像を一時的に格納するための画像記憶手段135とからなる。
色変換手段133は、図14に示すように、コントラスト補正手段150、補間演算部151及び色変換テーブル記憶部152から構成される。コントラスト補正手段150は、前記実施例1の画像処理装置1と同じ判定手段2、対象領域情報獲得手段3、ダイナミックレンジ設定手段4及び処理手段5に、対象領域情報獲得手段3のための設定パラメータテーブル7と、ダイナミックレンジ設定手段4のための許容基準テーブル8が追加された構成である。
以下、パソコン131a又は131bからRGB画像データを画像処理装置132aに送り、CMYKの印刷データに変換してプリンタ136aで画像出力する場合を例にして、画像処理装置132aにおける処理を説明する。
RGBの画像データが画像処理装置132aに送られると、色変換手段133のコントラスト補正手段150において、判定手段2により画像のタイプ(A,Bタイプ)が判定され、判定されたタイプに応じた対象領域の情報が対象領域情報獲得手段3によって取得される。次に、ダイナミックレンジ設定手段4においてダイナミックレンジが設定され、そのダイナミックレンジに基づいて処理手段5においてコントラスト補正が行われる。
ここで、使用されるプリンタによって再現範囲が異なるため、階調つぶれの許容基準もプリンタ毎に異なる。よって、コントラスト補正手段150は、出力予定のプリンタ(ここでは136a)に関するパラメータ情報をテーブルとして保持する。具体的には、前記(5)式において高輝度白色画素を定義しているパラメータを設定パラメータテーブル7に保持し、ダイナミックレンジを設定する際の累積頻度パラメータを許容基準テーブル8に保持する。対象領域情報獲得手段3は対象領域情報の取得処理の際に設定パラメータテーブル7よりパラメータを読み込んで使用し、また、ダイナミックレンジ設定手段4はダイナミックレンジの設定の際に許容基準テーブル8よりパラメータを読み込み使用する。
次に、色変換手段133において、色変換テーブル記憶部152に記憶されている色変換テーブルの中から最適なテーブルを選択して補間演算部151に送る。補間演算部151では、その選択された色変換テーブルのメモリマップの入力RGBに対し、後述するメモリマップ補間を実施し、RGB画像データをCMYKの印刷データに変換し、それを描画手段134に送る。
このメモリマップ補間は、図15に示すように、RGB空間を入力色空間とした場合、RGB空間を同種類の立体図形に分割し、入力の座標(RGB)おける出力値Pを求めるために、入力の座標(RGB)を含む立方体を選択し、選択された立方体の8点の予め設定した頂点上の出力値と立体図形の中における位置すなわち各頂点からの距離に基づいて線形補間を実施する。ここで出力値Pは、C、M、Y値にそれぞれ相当し、補間演算に使用される入力空間上の座標(RGB)には、実際の入出力(L*a*b*,CMY)の関係を測定して、このデータを使用して最小2乗法等により算出したRGB(L*a*b*)に対するC、M、Yの値が予め設定してある。そして、CMY信号は、例えば下記(9)式の演算によってCMYK信号に変換される。
K=α・min(C,M,Y)
C1=Cβ・K
M1=Mβ・K
Y1=Yβ・K … (9)
なお、色変換方法として、画像データではなく、メモリマップの色変換を行う方法を用いることもできる。例えば、補正係数を補間演算部151に送り、選択された色変換テーブルのメモリマップの入力RGBに対し前記(9)式で色変換を行い、さらに色変換後のCMY信号に書換えを行う。次に、この変更されたメモリマップを用い、全画素に対しメモリマップ補間を実施する。このように、画像データではなく、メモリマップの書換えを行う方法は、処理の高速化に一般に有利である。
以上のようにして補間演算部151によりCMYKに変換された印刷データは描画手段134に送られ、ここで中間調処理等が行われた印刷画像データが1ページ分ずつ画像記憶手段135に一時記憶される。この印刷画像がプリンタ136aで印刷される。
以上に説明した画像処理装置132a,132bは、独立したハードウェア装置として実現することも勿論可能であるが、その機能の全部又は一部をプリンタ136a,136bに組み込むことも可能である。また、画像処理装置の機能の全部又は一部をソフトウェアにより実現することも可能である。例えば、パソコン131a,131b上で動作するプリンタドライバに、画像処理装置の機能の全部又は一部を実装することも可能である。プリンタドライバに実装する場合、補間演算部151の機能の中、前記(9)式のC,Y,Kデータ生成までの機能をプリンタドライバに持たせ、(C1,M1,Y1,K)データへの変換機能はプリンタ側に持たせる構成にすると、パソコンからプリンタへの転送データ量が減り高速化の面で一般に有利であろう。このようなプリンタドライバ等のプログラムと、それが記録された各種情報記録媒体も本発明に包含される。
ここで、1枚のプリントデータに自然画像やグラフィック画像など、種類の異なる複数のオブジェクトが貼り付いている場合、例えば図16に示すようなオブジェクトobject1,object2,object3がはりついているプリントデータの場合、色変換手段133において色変換テーブルをオブジェクト毎に選択する必要がある。また、自然画像のオブジェクトobject1,object3の間でも一般的に補正係数が異なるため、補間演算部151で書きかえられたメモリマップはオブジェクトobject1用とオブジェクトobject3用とでは異なることになる。よって、このような場合には、図16の右側に図示するように、補正係数を画像データのヘッダに付属させて画像処理装置132a,132bに送る必要がある(画像データと別に送ることも可能である)。なお、プリンタドライバに実装する場合には、ICC(Inter Color Consortium)で標準化されているデバイス・プロファイルを読み出して用いるような構成とすることも可能である。
《実施例3》
図17は本発明の実施例3の構成を示すブロック図であり、図18は本実施例における処理手順を示すフローチャートである。
図17に示す画像処理装置201は、画像の階調補正を行うもので、第一の判定手段202、第二の判定手段203、及び、処理手段204から構成される。第一の判定手段202は、入力したカラー画像データにおける背景領域の色信号よりDタイプの画像か否かを判定する処理(図18、ステップS201)を行う手段である。第二の判定手段203は、第一の判定手段202でDタイプでないと判定された場合に、画像における背景領域と被写体領域との相対的な明るさ関係を調べることによりEタイプの画像であるかFタイプの画像であるか判定する処理(図18、ステップS203)を行う手段である。処理手段204は、第一の判定手段202、第二の判定手段203で判定された画像のタイプに応じ適応的な階調補正処理を行う手段であり、より具体的には、タイプに応じた階調補正テーブルを作成し(図18、ステップS202,S204,S205)、そのテーブルを用いて、画像データに対し階調補正処理(図18、ステップS206)を行う。
以下、画像処理装置201の各手段について詳細に説明する。
まず、第一の判定手段202(図18、ステップS201)について説明する。第一の判定手段202では、入力画像が逆光画像(Dタイプ)か否かを判定する。Dタイプと判定される画像とは、背景領域が主に高輝度白色光に属する画像であり、その主な撮影状況は背景が白飛びを起こしている真逆光画像である。この判定には様々な方法を用いることができるが、その2つの例について次に説明する。
第1の方法においては、図19のフローチャートに示すように、入力画像の背景領域と被写体領域との像域分離を行う(ステップS210)。図27の画像の場合、図31のように像域分離がなされる。そして、背景背景領域において、高輝度白色光の画素をカウントし(ステップS211)、背景領域の例えば70%以上の画素が高輝度白色光画素ならばDタイプと判定する(ステップS212)。ここで、高輝度白色光画素とは、その色成分(R,G,B)が前記(5)式を満たす画素である。なお、像域分離の処理と、高輝度白色光画素のカウント処理とを同時に実行することも可能である。
第2の方法においては、図20のフローチャートに示すように、入力画像全域に対し高輝度白色光画素のカウントを行う(ステップS220)。この際、画像端部に属する画素か否かの識別もおこなう。画像端部とは、例えば図21に斜線部として示すような画像の周辺部分である。そして、高輝度白色光画素が総画素数の例えば7%以上であり、かつ、高輝度白色光画素の70%以上が画像端部に存在するならばDタイプと判定する(ステップS221)。
次に、第二の判定手段203(図18、ステップS203)について説明する。この第二の判定手段203においては、第一の判定手段202でDタイプと判定されなかった画像が、背景領域の方が被写体領域よりも相対的に暗い場合にEタイプと判定し、そうでない場合にFタイプと判定する。Eタイプに判定される画像の一例が図28に示した夜間ポートレート撮影画像である。
第二の判定手段203の処理フローを図22に示し、各ステップの処理内容について説明する。
ステップS250:入力画像の全域の輝度ヒストグラムを作成する。ここで輝度Yは、色成分(R,G,B)から次式により求められる。これは前記各実施例においても同様である。
Y=0.299・R+0.587・G+0.114・B … (10)
ステップS251:前ステップで作成された輝度ヒストグラムからタイプ判定用ダイナミックレンジ(Scene_Min,Scene_Max)を求める。具体的には、輝度ヒストグラムにおいて、最小レベルから累積頻度を求め、その値が総頻度の例えば1%に達したレベルをシャドーポイントScene_Minとする。また、最大レベルから累積頻度を求め、その値が総頻度の例えば1%に達したレベルをハイライトポイントScene_Maxとする。なお、デジタルカメラで撮影された画像は0レベルと255レベルにノイズがのり易いため、最小レベルを1、最大レベルを254とするのがよい。
ステップS252:画像のなかで相対的に暗い部分を輝度ヒストグラム上の分布域から決定するため、前ステップで求めたシャドーポイントScene_MinとハイライトポイントScene_Maxの間を4分割することにより、図11に例示するように、4つの区分0,1,2,3に量子化する。区分0が相対的に暗い分布域となる。
ステップS253:入力画像に対し、前ステップで得られた各区分の輝度レベルを持つ画素を代表レベルに置き換えることにより、輝度レベルを4レベルに量子化した画像(過度のコントラストをつけた画像)を作成する。図28に示した夜間ポートレート撮影画像の場合、図32のような量子化画像が得られる。そして、量子化画像の背景領域(図A5の白領域)の平均輝度と被写体領域(図32の黒領域)の平均輝度を算出して比較し、背景領域の平均輝度の方が被写体領域の平均輝度よりも低い場合に(背景が被写体よりも相対的に暗い場合に)Eタイプと判定する。そうでない場合は、Fタイプと判定する。ここで画像を量子化するのは、画像に過度のコントラストをつけることにより、背景と被写体との相対的な明るさ関係の把握を容易にするためである。
Eタイプに判定される画像は、背景が被写体よりも相対的に暗い画像、つまり夜間ポートレート画像や夜景画像、通常撮影の露出不足画像などである。Fタイプに判定されるのは、背景のほうが被写体よりも明るい、真逆光以外の逆光画像や、通常撮影の適正画像(例えば図29に示す画像)、通常撮影の露出不足画像などである。
ここで、第一の判定手段202で真逆光画像(Dタイプ)であるか否かを判定したの後に第二の判定手段203でさらにタイプ判定を行う理由は2つある。一つ目の理由は、判定の容易な真逆光画像の判定を先に行うほうが誤判定が起こりにくいからである。また、第二の判定手段203において画像中の相対的に明るい部分と暗い部分を抽出するためにタイプ判定用ダイナミックレンジを算出するが、これは、露出不足などでコントラスト不足な画像の明るい部分と暗い部分とをはっきりさせることで背景と被写体との明るさ関係を分かりや易くするためである。よって、元々背景が絶対的に明るく、逆光撮影画像と思われるDタイプの画像に同様の量子化を行うと、適正露出のFタイプの画像と混同し易いため、第一の判定手段202でDタイプの判定を先に行う必要があり、これが二つ目の理由である。
なお、上に説明した画像タイプの判定処理において、高輝度白色領域や輝度ヒストグラムを算出する際には適当に間引きを行っても良い。また、高輝度白色光か否かの判定にRGB情報を用いる例を説明したが、輝度色差情報や明度色差情報などRGB以外の色空間を判定に用いることも可能である。また、第二の判定手段203において、輝度情報を用いて画像のなかで相対的に暗い部分を算出しているが明度情報やG信号などの色情報を用いても良い。また、高輝度白色光の判定パラメータ(前記(5)式中の閾値)やタイプ判別用ダイナミックレンジの判定パラメータ(累積頻度1%)は必要に応じて変更可能である。
また、第一の判定手段202による判定をオペレータが判定するようにしてもよい。例えば、オペレータの判定結果を入力するための「逆光補正キー」のような手段を用意し、オペレータによって「逆光補正キー」が押された場合にはDタイプとしての処理に移行し、押されない場合には第二の判定手段203による判定処理に移行するような構成とすることも可能である。
次に、処理手段204(図18のステップS202,S204,S206)について、図23のフローチャートに沿って説明する。
ステップS260:露出補正量決定領域と制御領域の抽出を行う。露出補正量決定領域とは露出補正量を決定するための領域であり、制御領域とは補正を制御する時に使用する領域である。下記に従って全ての画素をこの2領域に振り分ける。
背景が被写体よりも明るいDタイプ又はFタイプの場合(図18のステップS202又はS205の場合)においては、被写体領域を露出補正量決定領域とし、また、背景領域及び被写体領域(つまり画像全域)のハイライト画素を制御領域とする。これに対し、背景は被写体よりも暗いEタイプの場合(図18のステップS204)においては、被写体領域を露出補正量決定領域とし、被写体領域のハイライト画素を制御領域とする。ここで、ハイライト画素とは、例えば図11のように量子化した輝度ヒストグラムの区分3に属する画素である。
ステップS261〜S264:まず、ステップS261において、露出補正量決定領域の情報、例えば輝度中央値と、画像のタイプとに応じて、補正量δの初期値を決定する(これが露出の判定に相当する)。その決定には様々な方法を用い得るが、例えば、輝度中央値が第1の閾値より小さいときに、Dタイプならば第1の所定値を初期値とし、E又はFタイプならば輝度中央値を用いて第1の計算式で算出した値を初期値とする。輝度中央値が第1の閾値より大きく第2の閾値より小さい場合には、どのタイプであっても、輝度中央値を用いて第2の計算式で算出した値を初期値とする。輝度中央値が第2の閾値より大きい場合には、どのタイプであっても第2の所定値を初期値とする。そして、決定した補正量δの初期値を用いて、初期の階調補正テーブルf0(x)を作成する(ステップS261)。
f0(x)={(x/255)^δ}・255 … (11)
次に、現在の階調補正テーブルを用いて階調補正を行った場合の階調つぶれが許容される程度であるか評価する(ステップS262)。具体的には、現在の階調補正テーブルを用いて、後述するステップS265と同じ色変換方法を用いて制御領域に属する画素の変換を行う。そして、階調補正後の画像データの階調つぶれを評価する。例えば、出力デバイスの再現範囲を超えた(つまりレベル255を超えた)飽和画素に対し、平均的な超越値を算出する。すなわち、k個の飽和画素に対し、各画素ごとに飽和した色成分の最大レベルlj(j=1,2...K)を求め、最大レベルと再現範囲上限との差分の平均値Oaveを飽和度として算出する。
Oave=Σ(lj−255)/K … (12)
但し、Σはj=1,2...Kについてとる。
そして、飽和度がある閾値以上の場合に、飽和度合すなわち階調つぶれが許容されないと判断する。
なお、制御領域に属する画素数Mと制御領域における飽和画素数Kの比K/Mを飽和度とすることもできる。あるいは、画像全領域の画素数Nと飽和画素数Kの比K/Nを飽和度とすることもできる。
ステップS262で階調つぶれが許容されないと判定された場合は、補正量δを小さくなるように調節し(ステップS263)、その補正量δを用いた階調補正テーブルfi(x)を作成し(ステップS264)、再び階調つぶれが許容されるか判定する(ステップS262)。この階調補正テーブルの更新処理は階調つぶれが許容されると判断されるまで繰り返される(以上のステップS262〜S264のループによる階調補正テーブルの更新処理が露出の制御である)。図24に、初期の階調補正テーブルf0(x)と1回目の更新後の階調補正テーブルf1(x)の例を示す。
ステップS265:以上の手順により得られた最終の階調補正テーブルfn(x)を用いて、入力画像に対し色変換を行う。ここでは、入力画像のRGBデータに対する色変換について説明する。
入力画像の輝度値Y1(j)(j=1,2,...,N、Nは総画素数)
に対し、階調補正テーブルfn(x)による補正後の出力輝度値Y2(j)を定義し、階調補正係数C1(j)を算出する。
C1(j)=Y2(j)/Y1(j)
=fn(Y1(j))/Y1(j) … (13)
そして、この階調補正係数を用いてカラー画像信号(R1(j),G1(j),B1(j))を変換し、出力カラー信号(R2(j),G2(j),B2(j))を得る。
(R2(j),G2(j),B2(j))=C1(j)・(R1(j),G1(j),B1(j)) … (14)
以上説明した画像処理装置201は、独立した装置として実現することも、他の機器の組み込み装置として実現することもでき、また、ハードウェア、ソフトウェア、その組み合わせのいずれによっても実現できる。
ソフトウェアで実現する場合について図12を援用して説明する。例えば、図12に示すような画像処理システム101において、コンピュータ107上で動作する画像処理アプリケーション118に、図17に示した画像処理装置201の機能(図18に示す処理手順)をコンピュータ107上で実現するための補正プログラム117を組み込むことができる。画像処理アプリケーション118で画像処理を行う時に、補正プログラム117で画像データに対する階調補正処理が施され、階調補正後の画像データは、ディスプレイドライバ119を介してディスプレイ114に出力されたり、プリンタドライバ120を介してプリンタ115に出力される。なお、階調補正処理を画像出力時にのみ施すのであれば、補正プログラム117と同様の機能を、プリンタドライバ115やディスプレイドライバ119、あるいは、プリンタ115やディスプレイ114に実装することも可能である。このようなコントラスト補正のための機能を実現するためプログラム類、及び、それが記録されたコンピュータが読み取り可能な情報記憶媒体、例えば磁気ディスク、光ディスク、光磁気ディスク、半導体記憶素子等も本発明に包含される。
《実施例4》
図25は本発明の実施例3の構成を示すブロック図である。ここに示す画像出力システムは複数のパソコン(PC)231a,231bと複数のプリンタ236a,236bを有し、任意のパソコンより任意のプリンタに画像を出力することができる。画像出力システムは、各プリンタ236a,236bに対応した画像処理装置232a,132bも備える。
この画像出力システムにおいて、例えばパソコン231aでオペレータがプリンタ236aを選択して出力指令を入力すると、パソコン231aは画像を撮像するなどして取り込まれた画像データや各種DTPソフトで作成された画像データを画像処理装置232aに送る。画像処理装置232aは、送られた画像データの階調補正処理を行ってから複数の出力色成分C(シアン)、M(マゼンタ)、Y(イエロー)、K(ブラック)への色変換処理を行って印刷データを生成し、それをプリンタ236aに送り印刷させる。
なお、画像処理装置232a,132bは独立した装置として示されているが、後により具体的に述べるように、画像処理装置232a,232bの全機能をパソコン231a,231b上で動作するプリンタドライバに実装することも、一部機能をプリンタドライバに実装し残りの機能をプリンタ236a,236bに実装するなど、様々な実現形態をとり得る。
各画像処理装置232a,232bは、色変換手段233と、中間調処理等を実施する描画手段234と、描画手段234で描画された1ページ分の印刷画像を一時的に格納するための画像記憶手段235とからなる。
色変換手段233は、図26に示すように、補正処理手段250、補間演算部251及び色変換テーブル記憶部252から構成される。補正処理手段250は、前記実施例3の画像処理装置201と同じ第一の判定手段202、第二の判定手段203、処理手段204に、設定パラメータテーブル207と許容基準テーブル208が追加された構成である。
以下、パソコン231a又は231bからRGB画像データを画像処理装置232aに送り、CMYKの印刷データに変換してプリンタ236aで画像出力する場合を例にして、画像処理装置232aにおける処理を説明する。
RGBの画像データが画像処理装置232aに送られると、色変換手段233の補正処理手段250において、第一と第二の判定手段202,203により画像のタイプが判定される。処理手段204において、判定されたタイプに応じた階調補正テーブルが作成され、それを用いた階調補正が行われる。
ここで、使用されるプリンタによって再現範囲が異なるため、階調つぶれの許容基準もプリンタ毎に異なる。よって、補正処理手段250は、出力予定のプリンタ(ここでは236a)に関するパラメータ情報をテーブルとして保持している。具体的には、前記(5)式における高輝度白色画素を定義しているパラメータや、ダイナミックレンジを設定する際の累積頻度パラメータを設定パラメータテーブル207に保持している。また、プリンタのインク特性や、描画手段251による中間調処理に応じて階調つぶれの許容基準が異なるため、階調つぶれ許容評価のための飽和度の判定閾値などを許容基準テーブル208に保持している。第一と第2の判定手段202,203は設定パラメータテーブル207に保持されているパラメータを読み込んで使用し、処理手段204は許容基準テーブル208に保持されているパラメータを読み込んで使用する。
次に、色変換手段233において、色変換テーブル記憶部252に記憶されている色変換テーブルの中から最適なテーブルを選択して補間演算部251に送る。補間演算部251では、その選択された色変換テーブルのメモリマップの入力RGBに対し前記実施例2と同様のメモリマップ補間を実施し、RGB画像データをCMYKの印刷データに変換し、それを描画手段234に送る。
補間演算部251によりCMYKに変換された印刷データは描画手段234に送られ、ここで中間調処理等が行われた印刷画像データが1ページ分ずつ画像記憶手段235に一時的に記憶され、最終的にプリンタ236aで印刷される。
以上に説明した画像処理装置232a,232bは、独立したハードウェア装置として実現することも勿論可能であるが、その機能の全部又は一部をプリンタ236a,236bに組み込むことも可能である。また、画像処理装置の機能の全部又は一部をソフトウェアにより実現することも可能である。例えば、パソコン231a,231b上で動作するプリンタドライバに、画像処理装置の機能の全部又は一部を実装することも可能である。プリンタドライバに実装する場合、補間演算部251の機能の中、(C,Y,K)データ生成までの機能をプリンタドライバに持たせ、(C,M,Y,K)データへの変換機能はプリンタ側に持たせる構成にすると、パソコンからプリンタへの転送データ量が減り高速化の面で一般に有利であろう。このようなプリンタドライバ等のプログラムと、それが記録された各種情報記録媒体も本発明に包含される。
前記実施例2に関連して説明したように、1枚のプリントデータに自然画像やグラフィック画像など、種類の異なるオブジェクトが貼り付いている場合、画像データのヘッダに補正係数を付属させて画像処理装置232a,232bに送る必要がある(画像データと別に送ることも可能である)。また、プリンタドライバに実装する場合には、ICC(Inter Color Consortium)で標準化されているデバイス・プロファイルを読み出して用いる構成とすることも可能である。