JP2004200808A - Image processing method - Google Patents

Image processing method Download PDF

Info

Publication number
JP2004200808A
JP2004200808A JP2002364328A JP2002364328A JP2004200808A JP 2004200808 A JP2004200808 A JP 2004200808A JP 2002364328 A JP2002364328 A JP 2002364328A JP 2002364328 A JP2002364328 A JP 2002364328A JP 2004200808 A JP2004200808 A JP 2004200808A
Authority
JP
Japan
Prior art keywords
image
histogram
level
correction
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002364328A
Other languages
Japanese (ja)
Other versions
JP4018524B2 (en
JP2004200808A5 (en
Inventor
Yasuo Fukuda
康男 福田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2002364328A priority Critical patent/JP4018524B2/en
Publication of JP2004200808A publication Critical patent/JP2004200808A/en
Publication of JP2004200808A5 publication Critical patent/JP2004200808A5/en
Application granted granted Critical
Publication of JP4018524B2 publication Critical patent/JP4018524B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To realize a correction process which obtains a more sufficient effect. <P>SOLUTION: Whether or not an image was taken against the sun is decided (step S1701). If taken against the sun, a correction parameter is calculated (step S1703), based on the outline shape of a calculated brightness histogram (divided into a mountainous region and an even region). Based on the correction parameter, a correction curve such as γ curve, etc. is obtained (step S1704). Based on the correction curve, a correction process is made (step S1705). <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、入力した画像の補正を行う画像処理技術に関する。
【0002】
【従来の技術】
以前よりデジタル画像に対して、彩度、色調、コントラストや階調の調整等様々な画像処理を施すことが行われてきている。従来これらの画像処理は、画像に関して専門的な知識を持ったオペレータが専門的なソフトウェアを用いて、経験的な知識を駆使し、コンピュータのモニタ上で確認するなどしながら試行錯誤を行って好適な画像を得る、というものが一般的であった。
【0003】
近年、インターネットの普及に牽引されるようにデジタルカメラの普及が進んでいる。これはデジタルカメラの撮影結果が、コンピュータにとって読み取り容易なデータファイルの形式であり、例えばデジタルカメラによって撮影した画像をWWW(World Wide Web)のサーバ上に保存して他者に対して公開する、といったことが容易に行えるからである。
【0004】
しかし、デジタルカメラは旧来の銀塩カメラを自在に使いこなすようなユーザよりも、むしろコンピュータには詳しいもののカメラに関して知識が十分でないユーザが多いと考えられる。したがって、撮影された画像は必ずしも好適な条件で撮影された画像ばかりであるとは限らない。
【0005】
好適でない条件で撮影した画像であっても、内容が撮影者にとって重要であった場合などには必ずしも廃棄できるものではなく、そのような場合には適切な画像補正が望まれる。
【0006】
また、先に述べたように、必ずしもカメラや画像について精通したユーザばかりではない点等から、この画像補正は自動もしくは半自動によるものが好ましい。
【0007】
画像を補正する技術としては、従来より、画像から算出したヒストグラムに基づいて画像を補正するものが開示されている(例えば特許文献1,2,3を参照。)。
【0008】
【特許文献1】
特開2002−10073号公報
【特許文献2】
特開2002−92607号公報
【特許文献3】
特開平11−167633号公報
【0009】
【発明が解決しようとする課題】
しかしながら、上記のような従来の補正処理ではその効果が十分とはいえない場合が生じていた。
【0010】
そこで、本発明は、より十分な効果が得られる補正処理を実現することを目的とする。
【0011】
【課題を解決するための手段】
上記した目的を達成するために、本発明の画像処理方法は、次の構成を有する。すなわち、入力した画像から算出した輝度ヒストグラムに基づいてその画像の補正を行う画像処理方法であって、前記算出した輝度ヒストグラムの概略形状を解析する解析ステップと、前記輝度ヒストグラムの解析結果に基づいて、前記画像の補正量を算出する補正量算出ステップと、算出した補正量に基づいて前記画像の補正を行う補正ステップとを有することを特徴とする。
【0012】
【発明の実施の形態】
以下、図面を参照して本発明の好適な実施形態について詳細に説明する。
【0013】
(実施形態1)
図1は、本実施形態における画像処理装置の構成を示すブロック図である。
【0014】
図1の入力部101は、ユーザからの指示やデータを入力する装置で、キーボードやポインティング装置を含む。なお、ポインティング装置としては、マウス、トラックボール、トラックパッド、タブレット等が挙げられる。
【0015】
データ保存部102は、画像データを保持する部分で、通常はハードディスク、フロッピディスク、CD−ROMやCD−R、メモリーカード、CFカード、スマートメディア、SDカード、メモリスティック等で構成される。また、データ保存部102にプログラムやその他のデータを保存することも可能である。
【0016】
通信部107は、機器間の通信を行うための、シリアルまたはパラレルのインタフェース(I/F)である。これは公知のイーサネット(登録商標)、USB、IEEE1284、IEEE1394などの有線通信方式であってもよいし、赤外線、IEEE802.11b、Bluetooth等の無線通信方式によるものであってもよい。
【0017】
表示部103は、画像処理前、または画像処理後の画像を表示したりGUI等の画像を表示する装置で、一般的にはCRTや液晶ディスプレイなどが用いられる。あるいは、ケーブル等で接続された装置外部のディスプレイ装置であっても構わない。
【0018】
104はCPUであり、上述した各構成の処理を統括的に制御する。ROM105とRAM106は、その処理に必要なプログラム、データ、作業領域などをCPU104に提供する。また、ROM105には後述する処理を行うための制御プログラムが格納されている。
【0019】
なお、図示しないが、さらに公知のCCDなどの画像入力手段を設け、入力した画像をデータ保存部102に蓄えることができるにしてもよい。
【0020】
図2は、本実施形態における画像処理装置において行われる画像処理を示すフローチャートである。このフローチャートに対応するプログラムはROM105に記憶されている制御プログラムに含まれ、RAM106にロードされCPU104によって実行されるものである。
【0021】
まず、画像処理装置に画像を入力する(ステップS201)。画像の入力にはいくつかの方法が考えられる。データ保存部102が着脱可能な装置(例えばメモリカードやフロッピディスク)で構成されている場合には、データ保存部102に画像を保存したメディアを装着することによって画像を入力することができる。また、通信部107を介してスキャナ等の画像入力機器と接続し、ユーザが入力部101もしくは画像入力機器を操作して画像入力を指示して画像を読み込み、RAM106もしくはデータ保存部102に画像を保存することによっても画像を入力することができる。あるいは、通信部107を介してネットワークによって他の機器と接続し、他の機器からの画像送信を検知して送信された画像をRAM106もしくはデータ保存部102に保存することによっても画像を入力することができる。さらに、図1に不図示のCCDなどの画像入力手段を設ける場合には、ユーザが入力部101を操作するのをトリガとしてCCD装置より画像を読み込み、RAM106もしくはデータ保存部102に画像を保存することによっても画像を入力することもできる。以下の説明ではメモリカード(データ保存部102)を本装置に装着することにより画像を入力するものとして説明する。
【0022】
続いて、画像処理の対象となる画像を選択する(ステップS202)。画像の選択にはいくつかの方法が考えられる。本実施形態ではデータ保存部102の画像の一覧を表示部103に表示し、ユーザが入力部101を用いて画像を選択するものとして説明するが、例えば画像が入力されたことをトリガとして自動的に画像を選択するのであっても可能である。入力された画像が複数であっても、入力順、ファイル識別子順等によって画像の順序を決定し、順序づけされた画像に対して以下で説明する処理を順次適用していけばよい。
【0023】
次に、選択された画像データの解析処理を行う(ステップS203)。解析処理では、選択された画像を参照し、画像の特徴量データ等を抽出する。この解析処理の詳細については後述する。
【0024】
続くステップS204では、ステップS203での解析結果に基づいて、すなわち、抽出した画像データの特徴量データに基づいて画像の補正パラメータを決定し、さらに実際の画像データに対して画像補正処理を施す。この補正処理に関する詳細については後述する。
【0025】
最後に、ステップS204で補正された画像データを出力し(ステップS205)、処理は終了する。ここでいう「出力」とはさまざまな態様が考えられるが、本実施形態は、データ保存部102に画像データを保存するものとする。この他にも、通信部107を介して公知のプリンタ装置と接続をしている場合には、プリンタに対して画像を送信して印刷することも考えられる。さらには、通信部107を介してネットワークによって他の機器と接続し、他の機器からの画像送信を受け取るような場合には、送信元の機器に対して画像を返信することも考えられる。
【0026】
また、複数の出力方式が可能である場合には、画像選択処理S202もしくはステップS204でユーザに対して表示部103を介してメッセージを表示して選択を促したり、あるいはGUIによる設定画面を設け、入力部101を介してユーザが出力方式を選択して決定するように構成することも可能である。
【0027】
次に、ステップS203で行われる画像解析処理について図3のフローチャートを参照して詳細に説明する。
【0028】
まず、ステップS202で選択された画像データを読み込み、この画像データの輝度ヒストグラムを算出する(ステップS301)。これは、画像の撮影状況を調べるためのもので、画像の明るさとその偏りに関する統計情報を収集する。具体的には例えば、入力画像の画素のRGB信号が各信号8ビット(0〜255)の場合、RGB信号に対して次式で得られるY(輝度)に関してヒストグラムを作成する。
【0029】
Y=0.2990R+0.5870G+0.1140B (1)
【0030】
式(1)によれば、入力信号がRGB各8ビットの場合、Yも0以上255以下の値になる。なお、本実施形態では式(1)によってY信号を得ているが、高速化等のため例えば次の式(2)のような近似式を使うようにしてもよい。
【0031】
Y=(3R+6G+B)/10 (2)
【0032】
あるいは、RGBのG信号(緑成分)やRGB3信号の最小値をYの近似値として使用するようにしてもよい。また、Yではなく、CIE L*a*b*におけるL*を使うようにしてもよい。
【0033】
また、入力画像の全画素について式(1)によって輝度を算出するのではなく、間引き処理によって適度にサンプリングされた画素について輝度を算出するのであっても構わない。あるいは、入力画像に対して適度に縮小処理を施して、縮小画像の全画素に対して式(1)を適用し輝度を算出するのであっても良い。
【0034】
以下本実施形態では、入力画像信号はRGB各8ビットの整数値で0〜255の値を取り、またヒストグラム算出ステップS301では入力画像の全画素に対し式(1)によってRGB信号よりY信号を得てY信号のヒストグラムを算出するものとして説明を行う。
【0035】
また、式(1)によって算出したY信号は式(1)は実数値であるが、小数点以下の数値を切り上げ、切り捨てあるいは四捨五入等して整数化することにより、0〜255の整数値となる。
【0036】
ステップS301では、各画素の整数化されたY信号値(以下、「輝度レベル」または単に「レベル」という。)を算出するとともに、各レベルの画素数を数えることにより、原ヒストグラムH(i)(0≦i≦255)を得る。
【0037】
続くステップS302では、ステップS301で算出した原ヒストグラムH(i)に対して正規化処理を施す。この正規化処理は画像デ-タの画素数またはサンプリング数による影響を排除するためのもので、正規化ヒストグラムHN(i)は具体的には以下の式(3)により算出する。
【0038】

Figure 2004200808
【0039】
ただし、integer(x)はxを整数化する処理(関数)で、小数点以下の数値の切り上げ、切り捨てもしくは四捨五入である。また、Aは係数で、本実施形態では実験値より10,000を用いた。
【0040】
図4は、正規化ヒストグラムHN(i)の例を表す図である。
【0041】
次に、ステップS303で、ステップS302で得た正規化ヒストグラムHN(i)に対して平滑化処理を施す。図4では模式的にヒストグラムを書いているが、実際のヒストグラムは隣接するレベル間で度数にばらつきがあり、かなりギザギザしているため、以後の解析処理における前処理として平滑化処理を行い、ヒストグラムの概略形状の解析を行い易くするために実行する。
【0042】
本実施形態では、注目するレベルに対して上下4レベルと注目するレベルの合計9レベルのヒストグラム度数値を平均化することで平滑化を行う。すなわち、前後9点による移動平均法による平均化を行う。この場合、レベルが3以下、あるいは252以上の場合上下のいずれかに4レベル全ては存在しないが、その場合にはそれを存在するものだけを用いて平均化を行う。次式はこの移動平均処理を表す式である。
【0043】
Figure 2004200808
【0044】
図5は式(4)による平滑化後の平滑化ヒストグラムHS(i)を表す図である。
図4の平滑化前のヒストグラムに比べ、凹凸が減少していることがわかる。なお、この式(4)の平均化による平滑化処理は実験によって決定したものであるが、この平均化を行うレベル範囲を4以外としても、あるいは他の平滑化処理を用いてもよい。
【0045】
次に、ステップS304で、平滑化ヒストグラム数列HS(i)より差数列D(i)を得る差数列算出処理を行う。この差数列算出処理は、次の小変位除去処理ステップS305のための処理で、具体的には次式により差数列D(i)を算出する。
【0046】
D(i)=HS(i+1)-HS(i) (0≦i≦254) (5)
【0047】
続くステップS305の小変位除去処理では、ヒストグラムの小変位を除去する。これは整数化による丸め処理による変位を除去するための処理である。これは例えば式(3)、(4)の整数化処理integer(x)が小数点以下の数値に対する四捨五入の場合を例にして説明すると、あるレベルの整数化前の度数値が1.4で、それに隣接するレベルの整数化前の度数値が1.5であった場合、整数化処理integer(x)により前者は1となり後者は2となってしまうのを同一視するための処理である。
【0048】
図10、図11はこの小変位除去処理を説明する図である。
【0049】
図10における部分ヒストグラム1001は、あるヒストグラムの一部分を拡大して描いたものである。図10、図11において、横軸方向の破線の間隔は、平滑化ヒストグラムHS(i)における値1である。
【0050】
図10における、a〜b間は、その前後のレベルより凹型にくぼんでおり、またc〜d間は凸型に突き出ているが、ヒストグラム全体の概形からするとa〜d間は比較的なだらかに変移しているのであって、この局所的な凹凸はむしろ整数化による量子化誤差によって発生していると考えられる。そこで、ステップS305ではこの局所的な凹凸を除去し、図11に示すような小変位除去後の部分ヒストグラム1101を生成する。
【0051】
この小変位除去は例えば図12のフローチャートに示す処理によって実現される。小変位除去処理では、ステップS304で算出した差数列D(i)を用いて処理を行う。
【0052】
まず、ステップS1201で、変数IおよびEndPointの初期化を行う。変数Iは、除去候補領域の開始位置を表す変数であり、ステップS1201では0に初期化される。変数EndPointはD(i)でのiの最大値を表す。本実施形態の場合、レベルの最大値は255なので、その差数列D(i)でのiの最大値は254なので、254で初期化する。
【0053】
ステップS1202は終了条件の判定で、EndPointすなわち全てのD(i)について調査が終わった場合に真となり処理は終了し、そうでない場合は処理はステップS1203に流れる。
【0054】
ステップS1203は、D(i)が除去候補領域の開始位置となるかどうかを判定している。これまで説明した通り、小変位除去処理では度数が±1の範囲の凹凸を除去するので、差数列D(i)が±1の場合はステップS1203での判定は真となり処理はステップS1205に流れる。これは、Iが除去候補領域の開始位置となったことを表す。そうでない場合は処理はステップS1204に流れ、ステップS1204ではIを1増加してステップS1202の判定に戻る。
【0055】
ステップS1205では、変数Jの初期化を行う。変数Jは、除去候補領域の終了位置を表す変数であり、I+1で初期化される。
【0056】
続くステップS1206は終了条件の判定で、EndPointすなわち全てのD(i)について調査が終わった場合に真となり処理は終了し、そうでない場合は処理はステップS1207に流れる。
【0057】
ステップS1207では、D(J)が0かどうかを判定している。D(J)が0であるということは、元の平滑化ヒストグラムHS(J)、HS(J+1)間が平坦であることに対応する。平坦である、すなわちD(J)が0である場合には、ステップS1207での判定は真となり処理はS1208に流れJを1増加してステップS1206の判定に戻る。そうでない場合には、処理はステップS1209の判定処理に流れる。
【0058】
ステップS1209での判定処理では、D(I)〜D(J)、すなわち平滑化ヒストグラムHS(I)〜HS(J+1)間が小ピ-クであるかどうかの判定を行う。凹型もしくは凸型の場合、D(I)とD(J)は符号が異なる必要がある。したがって、凹型もしくは凸型の場合にはD(I)×D(J)は負の値となる。またステップS1209での判定ではさらにJ-IをThと比較しているが、これは凹部もしくは凸部のヒストグラムグラフにおける横方向の長さに対する閾値処理である。つまり、どのくらい広いレベル範囲(J-I+1)までの変化を小変位とみなして除去するか、あるいはみなさずに除去しないかという本処理の動作を制御する閾値である。
【0059】
実験ではThが4〜5といった値で良好な結果を得たが、もちろん他の値であっても構わない。あるいは、もう一つ閾値Th2を設けて、J-IがTh以上Th2以下であれば小変位とみなす等の変形は容易に考えられる。
【0060】
ステップS1209での判定が偽であった場合、D(I)〜D(J)があらわす区間、すなわちHS(I)〜HS(J+1)間は小変位でないと判断され、処理はステップS1210に流れ、次の調査開始点としてIをJで初期化して処理はステップS1202に戻る。ステップS1209での判定が真の場合には、処理はステップS1211に流れる。
【0061】
ステップS1211は実際に小ピークを除去する処理である。具体的には、小変位領域の終了点であるD(J)にD(I)の値を加え、さらにD(I)の値を0とすることで実現される。
【0062】
続くステップS1212では、次の調査開始点として、IをJ+1で初期化し、さらに処理はステップS1202に戻る。
【0063】
図6は、この小変位除去処理により更新された差分数列D(i)に対応するヒストグラムの形状を表す図である。図5の平滑化ヒストグラムでは区間A〜Bに小変位の凸部があったのが、小変位除去処理後に対応する図6ヒストグラムのヒストグラムの区間A〜Bでは小変位の凸部が除去されていることに注目されたい。
【0064】
説明を図3のフローチャートに戻す。
【0065】
上記ステップS301〜S305による処理に続いて、ステップS306では小変位除去後のD(i)を用いて粗分割処理を行う。
【0066】
粗分割処理は、レベルを0から1ずつ増加して255まで変化させながらヒストグラムを順次調べ、
・度数が単調増加の領域
・度数が単調減少の領域
を探し、上記単調増加の領域と単調減少の領域をあわせた領域を仮のヒストグラムの山領域とする処理である。
【0067】
本実施形態では、ヒストグラムを直接参照するのではなく、小変位除去後の差数列D(i)を用いて粗分割処理を行う。図13はこのステップS306による粗分割処理の処理の流れを示す流れ図である。
【0068】
まず、ステップS1301で各変数を初期化する。変数Kはインデックス値で、0で初期化される。変数EndPointはD(i)でのiの最大値を表す。本実施形態の場合、レベルの最大値は255で、その差数列D(i)でのiの最大値は254なので、254で初期化する。変数mは粗分割処理の結果検出した領域の数を表す変数で、0で初期化される。
【0069】
続くステップS1302では、D(K)が0であるかどうかを調べる。D(K)が0の場合は、ステップS1303に処理は流れる。
【0070】
ステップS1303は、差数列の全てを調べ終わったかどうかの判定であり、条件が偽の場合には差数列全てを調べ終わったので、処理は終了する。ステップS1303での条件判定が偽となるのは、D(i)の全ての値が0の場合である。条件が真の場合は、ステップS1304でKの値を1増やし処理はS1302に戻る。
【0071】
このステップS1302〜S1304の処理はすなわち、D(K)をK=0,1,2,...の順に調べ、最初にD(K)が非0となる位置(K)を求める処理である。
【0072】
ステップS1305では、Kが0かどうかを判定している。Kが0である場合、処理はS1306に流れる。非0の場合には、処理はステップS1309に流れる。
【0073】
ステップS1306では、D(K)が正であるかどうかを判定する。ステップS1306に処理が流れてくるということは、差数列D(0), D(1), ...,D(K)は、D(0)からD(K-1)の値が0で、D(K)が非0であるということである。さらにここで判定しているように、D(K)の値が正である場合、ヒストグラムの形状としてはH(0)〜H(K)で平坦で、H(K+1)で度数が増加していることになる。この場合、すなわちステップS1306での判定が真の場合には、図13中にAで示されている処理を行う。処理Aは先に述べた度数が単調増加の領域を探す処理である。処理Aの詳細については後述する。
【0074】
一方、ステップS1306の判定が偽の場合には、ヒストグラムの形状としてはH(0)〜H(K)で平坦であって、H(K+1)で度数が減少していることになる。この場合は、処理はステップS1315に流れ、後述する処理Aの出力値を保持する変数StartPos、PeakPosをそれぞれ0およびKで初期化した後、さらに処理Aをスキップする形で図13中にBで示される処理を行う。処理Bは先に述べた度数が単調減少の領域を探す処理である。処理Bの詳細については後述する。
【0075】
ステップS1315では領域の開始位置として0を変数StartPosに、処理Bの検索開始位置としてPeakPosにKを代入して、処理Bに移る。StartPos、PeakPosは後述する処理Aの出力値を保持する変数であり、またEndPosは後述する処理Bの出力値を保持する変数である。
【0076】
ステップS1307では、差数列D(i)の全てについて調べ終わったかどうかを判定する。この判定が真の場合、処理はステップS1313に流れ、EndPosに処理Aにて検出したPeakPosの値を代入する。続くステップS1314では、StartPos、EndPos、PeakPosの値をそれぞれSP(m), EP(m), PP(m)に格納するとともに、mを1増加させて終了する。
【0077】
一方、ステップS1307の判定が偽の場合には、後述する処理Bを実行し、その後、処理はステップS1308に流れ、StartPos、EndPos、PeakPosの値をそれぞれSP(m), EP(m), PP(m)に格納するとともに、mを1増加させ、ステップS1310に進む。
【0078】
ステップS1309ではD(0)の値が正か負かを判定している。条件が偽、すなわちD(0)が負であるということは、ヒストグラム概形の左端が減少しているということに対応する。この場合は、処理はステップS1315に流れる。一方、条件が真の場合には、処理はステップS1310に流れる。
【0079】
ステップS1310は、差数列の全てを調べ終わったかどうかの判定であり、条件が真の場合には差数列全てを調べ終わったので処理は終了する。偽の場合は図13中にAで示される処理を行い、さらに処理はステップS1311に流れる。
【0080】
ステップS1311は、差数列の全てを調べ終わったかどうかの判定であり、条件が真の場合には差数列全てを調べ終わったことになる。この場合、処理Aで検出した領域を領域情報として出力するために処理はS1314に流れる。偽の場合は図13中にBで示される処理を行い、さらに処理はステップS1312に流れる。
【0081】
ステップS1312は処理Aと処理Bによって検出した領域を領域情報として出力するステップS1314と同じ処理に加えて、KをEndPos+1に更新し、その後処理はステップS1310に戻る。
【0082】
図14は図13中の処理Aを示すフローチャートである。
【0083】
ステップS1401は変数の初期化を行う。変数Xはインデックス変数で、Kで初期化する。また、領域の開始位置を表すStartPos変数にKを代入する。
【0084】
続くステップS1402は、差数列D(i)の全てを調べ終わったかどうかの判定で、判定が真の場合には処理はS1406に流れ、PeakPosにEndLevelを代入して処理Aは終了する。判定が偽の場合には、処理はステップS1402に流れる。
【0085】
ステップS1402はD(X)の値を調べる。処理Aは単調増加の領域を検出する処理なので、D(X)が負となった場合処理はS1405に流れ終了する。D(X)が0もしくは正の場合には、ステップS1403でXの値を1増し、ステップS1402に戻る。
【0086】
ステップS1405はD(X)<0となるXを検出した場合に行われる処理で、PeakPosにX-1を代入し、処理Aは終了する。
【0087】
図15は図13中の処理Bを示すフローチャートである。
【0088】
ステップS1501は変数の初期化を行う。変数Xはインデックス変数で、PeakPos+1で初期化する。
【0089】
続くステップS1502は、差数列D(i)の全てを調べ終わったかどうかの判定で、判定が真の場合には処理はステップS1506に流れ、EndPosにEndLevelを代入して処理Bは終了する。判定が偽の場合には、処理はステップS1503に流れる。
【0090】
ステップS1503はD(X)の値を調べる。処理Bは単調減少の領域を検出する処理なので、D(X)が正となった場合処理はS1505に流れ、D(X)が0もしくは負の場合には、ステップS1503でXの値を1増し、ステップS1502に戻る。
【0091】
ステップS1505はD(X)>0となるXを検出した場合に行われる処理で、EndPosにX-1を代入し、処理Bは終了する。
【0092】
以上、図13、14、15を用いて説明したような処理により、図3のステップS306の粗分割処理が実現される。
【0093】
以上のようにこの粗分割処理は、平滑処理後のヒストグラムを、単調増加領域から単調減少領域までの区間を山部領域として粗分割する。
【0094】
図7はステップS306の粗分割処理による分割結果の例を示す図である。この例では、図6に示したヒストグラムが、粗分割処理により0〜P、P〜Q、Q〜255の3つの領域に分割されたことを示している。
【0095】
ステップS306の粗分割処理に続いて、ステップS307の平坦部分割処理を行う。
【0096】
図7の場合を例に説明する。図7のようにステップS306の粗分割処理によってヒストグラムが0〜P、P〜Q、Q〜255の領域に分割されたとする。この場合、図13のフローチャートで説明した仮領域の数m、領域の開始点および終了点を表す変数列SP(j)、EP(j)(0≦j<m)はそれぞれ、
m=3、
SP(0)=0, EP(0)=P-1, PP(0)=u, (0<u<P-1)
SP(1)=P, EP(1)=Q-1, PP(1)=v (0<v<Q-1)
SP(2)=Q, EP(2)=254, PP(2)=254
となっている。この3つの領域のそれぞれについて、各領域の左右側からそれぞれ平坦な部分があるかどうか判定し、ある場合にはそれを平坦部として仮領域から切り分ける。また隣接する平坦部を1つの領域に併合する。
【0097】
これも差数列D(i)から算出することが可能である。実験では、探査開始位置から度数が+3以下、レベル範囲が5以上の領域を平坦部とすることにより良好な結果が得られた。
【0098】
このように本実施形態では、先に決定した仮領域の左右から比較的平坦な部分を検出することで平坦部を切り出すようにしたが、別の方法、例えば、ヒストグラム形状を近似する曲線を算出して変曲点を算出する、等の処理であってもよい。
【0099】
図8は、図7で例示したヒストグラムおよび粗分割結果に対して、平坦部分割処理を施した後の状態を表す図である。図7に比べて、図7の領域0〜Pが平坦部0〜Rと山部R〜Pに、領域P〜Qが山部P〜Sと平坦部S〜Qに分割されていることがわかる。
【0100】
続くステップS308の山部統合処理は、隣接する山部を調べ、必要に応じてそれらを統合する処理である。
【0101】
図16はこの山部統合処理を説明するための図である。図8で先に示したような分割状態で、今隣接する山部R〜Pと山部P〜Sの統合を判定するものとする。本実施形態では、山部R〜Pで度数が最大となるレベルp1、山部P〜Sで度数が最大となるレベルp2をヒストグラムを参照して算出する。本実施形態では原ヒストグラムH(i)の区間R〜P、P〜Sに対して各レベルの度数を調べるように構成した。また、H(p1)とH(p2)のうち大きな方をfとする(図16の場合、f=H(p1))。このとき、次式(6)に従い値S1, S2を算出する。
【0102】
Figure 2004200808
【0103】
さらに、S2/S1を算出し、予め定めておいた閾値Sthと比較し、S2/S1が閾値Sthより大きい場合には、隣接する山部を統合し一つの山部領域とする。逆に、S2/S1が閾値Sth以下の場合には、2つの山部は独立した山部であるとして統合を行わないとすることにより統合判定を実現した。実験では、閾値Sthを0.7程度にすることで良好な結果が得られた。
【0104】
これは、図16の四角形1601における部分ヒストグラム1602の面積が占める割合が閾値を超えるか否かによって判別していることに相当する。つまりこの処理は、隣接する2つの山部領域それぞれの最大度数となる輝度レベルで挟まれる区間における度数がすべて、それら2つの最大度数のうち大きい方の最大度数であるとしたときのヒストグラム面積における、当該区間における実際のヒストグラム面積が占める割合に基づいて、当該2つの山部領域を1つの山部領域に統合する処理であるといえる。
【0105】
ここで閾値との比較でS2/S1が閾値Sthと一致した場合には領域統合を行わないようにしたが、等号成立の場合どちらにするかということは本質的な問題ではない。また、閾値の値もこれの他の値であっても構わない。また、四角形1601ではなく、レベルp1、p2とH(p1)、H(p2)が決定する台形と部分波形1602との比を、閾値と比較することによって決定するような変形も容易に可能である。
【0106】
また、本実施形態では原ヒストグラムH(i)を用いたが、正規化後のヒストグラムHN(i)や平滑化後のHS(i)、差数列D(i)あるいは小変位除去処理後の差数列D(i)より再構成したヒストグラムを用いるように構成することも可能である。
【0107】
図9は、図16の例で山部R〜Pと山部P〜Sを上記判定により領域統合したようすを示している。
【0108】
以上説明したような解析処理の結果、ヒストグラムの形状に基づいて詳細なレベル領域分割が行われ、図9の例の場合、
・平坦部0〜R
・山部R〜S
・平坦部S〜Q
・山部Q〜255
の各領域を得ることができる。
【0109】
次に、ステップS204で行われる画像補正処理について詳細に説明する。
【0110】
図17は、ステップS204の画像補正処理を示すフローチャートである。
【0111】
まず、ステップS1701で逆光かどうかの判定を行う。逆光で撮影された画像の場合、その画像の明るさに関するヒストグラム(例えば輝度)ではその最大レベルにヒストグラムの山があるとともに、それに比べ暗いレベルに1つ以上山がある。また、最大レベルの山と暗いレベルの山の間のレベル範囲では比較的小数度数のヒストグラムの平坦部がある。多くの場合、画像の主被写体は暗いレベルの山に含まれる。逆に最大レベルの山は撮影時の逆光の光源、あるいはその周辺に相当する画素からなり、画像としては情報がほとんどない。したがって、この暗いレベルの山を明るい方向に移動するような補正を行えば良好な画像が得られることになる。
【0112】
そこで本実施形態では、画像解析処理で得られた領域分割結果において、
・2つ以上の山部領域がある
・最も明るい山部領域は、最大レベルを含む領域である
・2番目に明るい山部領域と、最も明るい山部領域の間に平坦部がある
という条件が全て成立した場合、その画像を逆光画像であるとするものとする。これは画像解析処理で得られた各領域情報の範囲と種類(山部/平坦部)を参照することで容易に判定することができる。
【0113】
あるいは、さらに最も明るい側の山部の大きさ(ヒストグラムグラフ上での面積)に対して閾値処理を施し、その結果を逆光画像か否かの判断基準の1つとしてもよい。
【0114】
ステップS1702は、ステップS1701での判定結果による処理分岐で、逆光でないと判定された場合は処理は終了する。一方、逆光であると判定された場合、処理はステップS1703に流れる。
【0115】
ステップS1703では補正パラメータの算出を行う。本実施形態では、後述する補正処理に応じて、2番目に明るい山部領域の最大レベルを算出する。これは図9の例の場合、高輝度側から2番目の山部の領域である山部R〜Sの最大レベルとしてSを得る。
【0116】
続くS1704では補正量を算出する。本実施形態ではγ曲線による画像補正(γ補正)を行うものとして、ステップS1704では補正に用いるγ曲線を決定して算出する。γ補正の式は次のとおりである。
【0117】
y=x1/ γ (7)
ただし、xは補正前の入力信号、yは補正後の出力信号である。
【0118】
本実施形態では、γ補正のγ値を決定するために図18で示すような方法により算出する。
【0119】
図18で1801は図9の解析結果を表す図と同一のものである。ステップS1703で2番目に明るい山部領域の最大レベルSを得た。このレベルSの入力信号が目標レベルTとなるようにγ曲線1802のγ値を算出する。このγ値の算出は、式(6)を変形した式(7)のx,yにそれぞれS,Tを代入することによって算出される。
【0120】
γ=logx/logy (8)
【0121】
目標レベルTの決定は本実施形態では、次の式(9)により行う。
【0122】
T=S+(255−S)×c1 (9)
【0123】
c1は補正強度を制御するパラメータで、実験では0.33〜0.5程度の値で良好な結果が得られた。もちろん、実験結果やチューニングによっては他の値を用いることも考えられる。この補正により、主被写体が写っているレベル範囲0〜Sを明るくするような補正曲線を算出することができる。補正曲線は予め0〜255の入力各レベルに対して出力値を計算し、ルックアップテーブル(LUT)の形でRAM106などに記憶される。
【0124】
このように、S〜255の間に目標レベルTを設定し、レベルSとレベルTを用いてγ値が適応的に決定される。
【0125】
そして、ステップS1705で、画像を1画素ずつ読み込み、各画素に対してステップS1704で算出したLUTを適用する。本実施形態では、入力画像の各画素に対して、次の式(10)で示す行列演算を施し、入力RGB信号をYCbCr信号に変換し、Y信号に対してLUTによる補正を適用した後に、式(11)で示す行列演算で出力R’G’B’信号にし、逆光補正画像を得る。
【0126】
Figure 2004200808
【0127】
補正後のRGB信号が負の値や255を超える場合があるが、その場合はそれぞれ0、255にする(クリップ処理)ようにすれば良い。あるいは出力システムによっては、負の値や255を超える値を扱える場合があるが、その場合には特にクリップ処理は必要ない。
【0128】
また、出力システムによってはYCbCr信号を直接扱える場合があるが、その場合には特にYCbCrからRGBへの変換は必要ない。
【0129】
本実施形態では、各画素のRGB信号をYCbCr信号に変換してY信号に対してLUTによる補正を施してRGB信号に戻したが、各画素のRGB値にそれぞれステップS1704で算出したLUTを適用して逆光補正画像を得るようにしてもよい。
【0130】
以上説明したように、本発明によれば画像の輝度ヒストグラムを詳細に解析し、逆光判定を行い、さらに判定結果として逆光画像と判定された場合に、その画像明るさの分布の状態にあわせて好適に逆光補正を行うことが可能となる。
【0131】
(実施形態2)
上述した実施形態1では、2番目に明るい山部の最大レベルSを用いてγ値を決定したが、本実施形態ではレベルS〜255のヒストグラム面積(すなわち、その範囲の画素数)に応じてγ値を決定する。
【0132】
図17のステップS1703による補正パラメータ算出でSを算出した後に、レベル範囲S〜255におけるヒストグラム面積を得る。ヒストグラム面積SHは次の式(12)で求められる。
【0133】
Figure 2004200808
【0134】
ここで、ヒストグラムH(i)のかわりに、正規化ヒストグラムHN(i)を用いてもよい。
【0135】
本実施形態では、ヒストグラム面積SHが小さいほど、T〜255間を狭くするように次の式(13)によってTを決定する。
【0136】
T=255−(255−S)×SH (13)
【0137】
このように、S〜255の間のヒストグラム面積SHに応じて目標レベルTを設定して、レベルSとレベルTを用いてγ値が適応的に決定される。
【0138】
実施形態2によれば、高輝度側の画素数に応じて適応的に階調特性を補正することができる。
【0139】
(実施形態3)
上述した実施形態1,2では単純なγ曲線による補正について説明したが、ここでは複数の補正曲線の合成による補正方式を用いる実施形態について説明する。
【0140】
図17のステップS1703において、実施形態1または2で説明した処理に加え、2番目に明るい山部の参照レベルを算出する。参照レベルは、続く補正量決定処理で用いるもので、2番目に明るい山部R〜Sを代表するレベル値である。本実施形態では参照レベル値として、原ヒストグラムの山部R〜Sのレベル範囲の平均値aveを用いるものとする。この他にも山部R〜Sの中央値や度数が最大のレベル値などを用いてもよい。
【0141】
続くステップS1704では、以下に説明する方法で補正量を決定する。
【0142】
図19、図20は補正曲線の例を表す図である。
【0143】
まず、図19の1901で表される曲線を決定する。これは、座標(0,0)と(S,T)とを結ぶ直線と、(S,T)と(255,255)とを結ぶ直線で構成される。Tの算出は、実施形態1で用いた式(9)に従うものとする。
【0144】
続いて、図20の2001で表される曲線を決定する。曲線2001は実施形態1、2で説明したγ曲線であるが、次式で算出される値Tとaveを用い、式(8)のxにaveを、yにTを代入して算出する。
【0145】
=ave+(Tgt−ave)×c (14)
ただし、Tgtは主被写体が写っていると推測される2番目に明るい山部の補正後の明るさの目標値である。
【0146】
主被写体が人物、特に顔であるとすると、レベル最大値(255)の60%〜80%程度が好ましいので、その範囲で予め定めておく。実験では70%程度の値を用いて良好な結果が得られた。
【0147】
画像の主被写体が人物であるかどうかは必ずしも必要な判定ではなく本発明の主眼ではないが、必要であれば公知の顔検出技術を予め適用しておくことで判定可能である。あるいは、入力画像が公知のExifフォーマットによる画像である場合にはExifのタグ(Tag)に格納されている情報(例えば撮影シーンタイプ等)や、カメラのメーカ固有情報(メーカーノート)を参照して、撮影時カメラのセッティングが人物撮影用セッティングであったか等判定することも考えられる。
【0148】
は補正強度を制御するパラメータであり、実験では0.33〜0.5程度で良好な結果を得た。式(14)は目標に対して明るさを近づけるようにγ曲線を決定する式である。直接目標値を使っていないのは、あまりγ値を大きくすると画像全体の階調性が損なわれてしまうためである。Cの値は実験結果やチューニングによっては他の値を用いてもよい。
【0149】
補正曲線は1901、2001はそれぞれ予め0〜255の入力各レベルに対して出力値を計算し、ルックアップテーブル(LUT)の形でRAM106などに記憶される。
【0150】
続くS1705では、画像の各画素に対して補正曲線1901、2001を順次適用して補正結果を得る。
【0151】
本実施形態によれば、実施形態1,2に比べ、主被写体が人物である逆光画像に対して良好な補正結果が得られるという特徴がある。
【0152】
(他の実施形態)
以上、本発明の実施形態を詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用してもよい。
【0153】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータがその供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。その場合、プログラムの機能を有していれば、その形態はプログラムである必要はない。
【0154】
従って、本発明の機能処理をコンピュータで実現するために、そのコンピュータにインストールされるプログラムコード自体も本発明を実現するものである。
つまり、本発明の特許請求の範囲には、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【0155】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
【0156】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
【0157】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、そのホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明のクレームに含まれるものである。
【0158】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0159】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【0160】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【0161】
本発明は、以上説明した実施態様に従えば以下の構成を特徴とする。
【0162】
(実施態様1) 実施態様1は、入力した画像から算出した輝度ヒストグラムに基づいてその画像の補正を行う画像処理方法であって、
前記算出した輝度ヒストグラムの概略形状を解析する解析ステップと、
前記輝度ヒストグラムの解析結果に基づいて、前記画像の補正量を算出する補正量算出ステップと、
算出した補正量に基づいて前記画像の補正を行う補正ステップと、
を有することを特徴とする。
(実施態様2) 実施態様1において、前記解析ステップは、
前記輝度ヒストグラムを平滑化する平滑化ステップと、
平滑化した輝度ヒストグラムを、山部領域と平坦部領域とに分割する分割ステップと、
を含むことを特徴とする。
(実施態様3) 実施態様2において、前記平滑化ステップは、
前記輝度ヒストグラムを正規化する正規化ステップと、
正規化された輝度ヒストグラムを移動平均法により平均化する平均化ステップと、
平均化された輝度ヒストグラムの小変位を除去する小変位除去ステップと、
を含むことを特徴とする。
(実施態様4) 実施態様2において、前記分割ステップは、
前記平滑化ステップで平滑化された輝度ヒストグラムを、単調増加領域から単調減少領域までの区間を山部領域として粗分割する粗分割ステップと、
前記粗分割ステップで得られた各山部領域における平坦部領域を更に分割する平坦部分割ステップと、
隣接する2つの山部領域それぞれの最大度数となる輝度レベルで挟まれる区間における度数がすべて、それら2つの最大度数のうち大きい方の最大度数であるとしたときのヒストグラム面積における、当該区間における実際のヒストグラム面積が占める割合に基づいて、当該2つの山部領域を1つの山部領域に統合する統合ステップと、
を含むことを特徴とする。
(実施態様5) 実施態様2において、前記分割ステップでの分割結果に基づいて前記画像が逆光か否かを判定する判定ステップを更に有し、
前記判定ステップで逆光と判定されたときに、前記補正量算出ステップおよび補正ステップを実行することを特徴とする。
(実施態様6) 実施態様5において、前記判定ステップは、前記分割ステップによる分割の結果、山部領域が2つ以上あり、かつ、輝度の最も明るい側にある第1の山部領域が最大輝度レベルMを含み、かつ、輝度の明るい側から2つ目にある第2の山部領域と前記第1の山部領域との間に平坦部領域があるときに、前記画像が逆光であると判定することを特徴とする。
(実施態様7) 実施態様6において、前記補正量算出ステップは、前記第2の山部領域における最大輝度レベルSと前記最大輝度レベルMとの間に目標レベルTを設定し、入力レベルが前記第2の山部領域における最大輝度レベルSであるときの出力レベルが前記目標レベルTとなるγ曲線を算出することを特徴とする。
(実施態様8) 実施態様7において、前記目標レベルTを、前記第2の山部領域における最大輝度レベルSと前記最大輝度レベルMとの2分値に設定することを特徴とする。
(実施態様9) 実施態様8において、前記目標レベルTを、前記第2の山部領域における最大輝度レベルS以上におけるヒストグラム面積に基づいて設定することを特徴とする。
(実施態様10) 実施態様6において、前記補正量算出ステップは、
前記第2の山部領域に係る所定の参照レベルを算出するステップと、
入力が最小輝度レベルから前記第2の山部領域における最大輝度レベルSまでの範囲では、出力が最小輝度レベルから前記目標レベルTの範囲の値をとり、入力が前記第2の山部領域における最大輝度レベルSより大きい範囲では、出力が前記目標レベルTから前記最大輝度レベルまでの範囲の値をとる、第1の補正曲線を算出するステップと、
前記参照レベルと所定の目標レベルT’とに基づいて第2の補正曲線を算出するステップと、
を有することを特徴とする。
(実施態様11) 実施態様10において、前記第2の補正曲線は、入力レベルが前記参照レベルであるときの出力レベルが前記目標レベルT’となるγ曲線であることを特徴とする。
(実施態様12) 入力した画像から算出した輝度ヒストグラムに基づいてその画像の補正を行う画像処理装置であって、
前記算出した輝度ヒストグラムの概略形状を解析する解析手段と、
前記輝度ヒストグラムの解析結果に基づいて、前記画像の補正量を算出する補正量算出手段と、
算出した補正量に基づいて前記画像の補正を行う補正手段と、
を有することを特徴とする画像処理装置。
(実施態様13) 実施態様13のプログラムは、コンピュータに、
入力した画像から輝度ヒストグラムを算出するステップ、
前記算出した輝度ヒストグラムの概略形状を解析する解析ステップ、
前記輝度ヒストグラムの解析結果に基づいて、前記画像の補正量を算出する補正量算出ステップ、
算出した補正量に基づいて前記画像の補正を行う補正ステップ、
を実行させる。
【0163】
【発明の効果】
本発明によれば、より十分な効果が得られる補正処理を実現することができる。
【図面の簡単な説明】
【図1】実施形態における画像処理装置の構成を示すブロック図である。
【図2】実施形態における画像処理を示すフローチャートである。
【図3】実施形態における画像解析処理を示すフローチャートである。
【図4】実施形態における正規化ヒストグラムの一例を示す図である。
【図5】実施形態における平滑化処理後のヒストグラムの一例を示す図である。
【図6】実施形態における小変位除去処理後のヒストグラムの一例を示す図である。
【図7】実施形態における粗分割処理の結果を示す図である。
【図8】実施形態における平坦部分割処理の結果を示す図である。
【図9】実施形態における山部統合処理の結果を示す図である。
【図10】実施形態における小変位除去処理を説明する図である。
【図11】実施形態における小変位除去処理を説明する図である。
【図12】実施形態における小変位除去処理を示すフローチャートである。
【図13】実施形態における粗分割処理を示すフローチャートである。
【図14】実施形態における粗分割処理を示すフローチャートである。
【図15】実施形態における粗分割処理を示すフローチャートである。
【図16】実施形態における山部統合処理を説明するための図である。
【図17】実施形態における画像補正処理を示すフローチャートである。
【図18】実施形態における補正曲線を求める方法を説明する図である。
【図19】実施形態における補正曲線を求める方法を説明する図である。
【図20】実施形態における補正曲線を求める方法を説明する図である。[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an image processing technique for correcting an input image.
[0002]
[Prior art]
2. Description of the Related Art Various image processes such as adjustment of saturation, color tone, contrast, and gradation have been performed on digital images. Conventionally, these types of image processing are preferably performed by an operator who has specialized knowledge about images, using specialized software, making full use of empirical knowledge, and performing trial and error while checking on a computer monitor. It was common to obtain a perfect image.
[0003]
2. Description of the Related Art In recent years, digital cameras have been widely spread as driven by the spread of the Internet. This is a digital camera shooting result is a data file format that is easy for a computer to read, for example, images captured by a digital camera are saved on a WWW (World Wide Web) server and disclosed to others. This is because such operations can be easily performed.
[0004]
However, it is thought that there are many users who are familiar with computers but do not have enough knowledge about cameras, rather than users who use conventional silver halide cameras freely with digital cameras. Therefore, the captured images are not necessarily all images captured under suitable conditions.
[0005]
Even if an image is taken under unfavorable conditions, it cannot always be discarded if the contents are important to the photographer. In such a case, appropriate image correction is desired.
[0006]
In addition, as described above, this image correction is preferably performed automatically or semi-automatically, because not only users who are familiar with cameras and images are not necessarily used.
[0007]
As a technique for correcting an image, a technique for correcting an image based on a histogram calculated from the image has been conventionally disclosed (for example, see Patent Documents 1, 2, and 3).
[0008]
[Patent Document 1]
JP 2002-10073 A
[Patent Document 2]
JP-A-2002-92607
[Patent Document 3]
JP-A-11-167633
[0009]
[Problems to be solved by the invention]
However, the effect of the conventional correction processing as described above may not be sufficient.
[0010]
Therefore, an object of the present invention is to realize a correction process that can obtain a more sufficient effect.
[0011]
[Means for Solving the Problems]
In order to achieve the above object, an image processing method according to the present invention has the following configuration. That is, an image processing method for correcting an image based on a luminance histogram calculated from an input image, comprising: an analysis step of analyzing a schematic shape of the calculated luminance histogram; A correction amount calculating step of calculating a correction amount of the image; and a correction step of correcting the image based on the calculated correction amount.
[0012]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the drawings.
[0013]
(Embodiment 1)
FIG. 1 is a block diagram illustrating a configuration of the image processing apparatus according to the present embodiment.
[0014]
The input unit 101 in FIG. 1 is a device for inputting instructions and data from a user, and includes a keyboard and a pointing device. Note that examples of the pointing device include a mouse, a trackball, a trackpad, and a tablet.
[0015]
The data storage unit 102 stores image data, and is usually composed of a hard disk, floppy disk, CD-ROM or CD-R, memory card, CF card, smart media, SD card, memory stick, or the like. Further, it is also possible to store programs and other data in the data storage unit 102.
[0016]
The communication unit 107 is a serial or parallel interface (I / F) for performing communication between devices. This may be a known wired communication method such as Ethernet (registered trademark), USB, IEEE1284, or IEEE1394, or may be a wireless communication method such as infrared, IEEE802.11b, or Bluetooth.
[0017]
The display unit 103 is a device that displays an image before or after image processing or displays an image such as a GUI, and generally uses a CRT, a liquid crystal display, or the like. Alternatively, a display device outside the device connected by a cable or the like may be used.
[0018]
Reference numeral 104 denotes a CPU, which comprehensively controls the processing of each of the components described above. The ROM 105 and the RAM 106 provide programs, data, a work area, and the like necessary for the processing to the CPU 104. Further, the ROM 105 stores a control program for performing processing described later.
[0019]
Although not shown, an image input unit such as a known CCD may be further provided so that the input image can be stored in the data storage unit 102.
[0020]
FIG. 2 is a flowchart illustrating image processing performed in the image processing apparatus according to the present embodiment. A program corresponding to this flowchart is included in a control program stored in the ROM 105, loaded into the RAM 106, and executed by the CPU 104.
[0021]
First, an image is input to the image processing apparatus (step S201). There are several methods for inputting an image. When the data storage unit 102 is configured by a removable device (for example, a memory card or a floppy disk), an image can be input by attaching a medium storing the image to the data storage unit 102. Further, the image processing apparatus is connected to an image input device such as a scanner via the communication unit 107, and the user operates the input unit 101 or the image input device to instruct image input to read an image, and stores the image in the RAM 106 or the data storage unit 102. Images can also be input by saving. Alternatively, an image may be input by connecting to another device via a network via the communication unit 107, detecting image transmission from the other device, and storing the transmitted image in the RAM 106 or the data storage unit 102. Can be. Further, when an image input means such as a CCD (not shown) is provided in FIG. 1, an image is read from the CCD device by a user operating the input unit 101 as a trigger, and the image is stored in the RAM 106 or the data storage unit 102. It is also possible to input images. In the following description, it is assumed that an image is input by attaching a memory card (data storage unit 102) to the apparatus.
[0022]
Subsequently, an image to be subjected to image processing is selected (step S202). There are several methods for selecting an image. In the present embodiment, a list of images in the data storage unit 102 is displayed on the display unit 103, and a description will be given assuming that the user selects an image using the input unit 101. It is also possible to select an image first. Even if there are a plurality of input images, the order of the images may be determined according to the input order, the file identifier order, and the like, and the processing described below may be sequentially applied to the ordered images.
[0023]
Next, the selected image data is analyzed (step S203). In the analysis processing, the selected image is referred to, and the feature amount data and the like of the image are extracted. The details of this analysis processing will be described later.
[0024]
In a succeeding step S204, an image correction parameter is determined based on the analysis result in the step S203, that is, based on feature amount data of the extracted image data, and further, image correction processing is performed on actual image data. Details regarding this correction processing will be described later.
[0025]
Finally, the image data corrected in step S204 is output (step S205), and the process ends. Various forms of “output” can be considered here, but in the present embodiment, image data is stored in the data storage unit 102. In addition, when a known printer device is connected via the communication unit 107, an image may be transmitted to the printer and printed. Further, in a case where the communication apparatus 107 is connected to another device via a network via the communication unit 107 and receives image transmission from the other device, the image may be returned to the transmission source device.
[0026]
When a plurality of output methods are possible, a message is displayed to the user via the display unit 103 in the image selection processing S202 or step S204 to prompt the user to make a selection, or a setting screen by a GUI is provided. It is also possible for the user to select and determine the output method via the input unit 101.
[0027]
Next, the image analysis processing performed in step S203 will be described in detail with reference to the flowchart in FIG.
[0028]
First, the image data selected in step S202 is read, and a luminance histogram of the image data is calculated (step S301). This is for examining the image capturing situation, and collects statistical information on the brightness of the image and its bias. Specifically, for example, when the RGB signals of the pixels of the input image are each 8 bits (0 to 255), a histogram is created for Y (luminance) obtained by the following equation with respect to the RGB signals.
[0029]
Y = 0.2990R + 0.5870G + 0.1140B (1)
[0030]
According to equation (1), when the input signal is 8 bits for each of RGB, Y also takes a value of 0 or more and 255 or less. In the present embodiment, the Y signal is obtained by Expression (1), but an approximate expression such as Expression (2) below may be used for speeding up and the like.
[0031]
Y = (3R + 6G + B) / 10 (2)
[0032]
Alternatively, the minimum value of the RGB G signal (green component) or the RGB3 signal may be used as an approximate value of Y. Further, instead of Y, L * in CIE L * a * b * may be used.
[0033]
Further, the luminance may not be calculated for all the pixels of the input image by the equation (1), but may be calculated for the pixels appropriately sampled by the thinning process. Alternatively, an appropriate reduction process may be performed on the input image, and the luminance may be calculated by applying Expression (1) to all the pixels of the reduced image.
[0034]
Hereinafter, in the present embodiment, the input image signal takes an integer value of 0 to 255 for each of 8 bits of RGB, and in the histogram calculation step S301, the Y signal is converted from the RGB signal by the equation (1) for all the pixels of the input image. The description will be made on the assumption that the histogram of the Y signal is obtained.
[0035]
The Y signal calculated by the equation (1) is a real value in the equation (1), but is converted to an integer value from 0 to 255 by rounding up or down the decimal point and rounding down or rounding off. .
[0036]
In step S301, an integer Y signal value (hereinafter, referred to as "luminance level" or simply "level") of each pixel is calculated, and the number of pixels at each level is counted, thereby obtaining an original histogram H (i). (0 ≦ i ≦ 255) is obtained.
[0037]
In a succeeding step S302, a normalization process is performed on the original histogram H (i) calculated in the step S301. This normalization processing is to eliminate the influence of the number of pixels or the number of samplings of the image data.N(i) is specifically calculated by the following equation (3).
[0038]
Figure 2004200808
[0039]
However, integer (x) is a process (function) for converting x into an integer, and rounds up, down, or rounds a number below the decimal point. A is a coefficient, and in this embodiment, 10,000 is used from an experimental value.
[0040]
FIG. 4 shows the normalized histogram HNIt is a figure showing the example of (i).
[0041]
Next, in step S303, the normalized histogram H obtained in step S302N(i) is subjected to a smoothing process. Although a histogram is schematically depicted in FIG. 4, the frequency of an actual histogram varies between adjacent levels and is considerably jagged. This is performed to make it easy to analyze the schematic shape of.
[0042]
In the present embodiment, smoothing is performed by averaging a total of 9 levels of histogram frequency values of the upper and lower levels and the level of interest with respect to the level of interest. That is, averaging by the moving average method using nine points before and after is performed. In this case, when the level is 3 or less, or when the level is 252 or more, all four levels do not exist above or below, but in that case, averaging is performed using only the existing one. The following equation is an equation representing this moving average processing.
[0043]
Figure 2004200808
[0044]
FIG. 5 shows a smoothed histogram H after smoothing according to equation (4).SIt is a figure showing (i).
It can be seen that the unevenness is reduced compared to the histogram before smoothing in FIG. The smoothing process by averaging in the equation (4) is determined by experiment. However, the level range for performing the averaging may be other than 4, or another smoothing process may be used.
[0045]
Next, in step S304, the smoothed histogram sequence HSA difference sequence calculation process for obtaining the difference sequence D (i) from (i) is performed. This difference sequence calculation process is a process for the next small displacement removal process step S305, and specifically calculates the difference sequence D (i) by the following equation.
[0046]
D (i) = HS(i + 1) -HS(i) (0 ≦ i ≦ 254) (5)
[0047]
In the subsequent small displacement removal processing in step S305, the small displacement of the histogram is removed. This is a process for removing displacement due to rounding processing by integer conversion. This is explained by taking as an example a case where the integer conversion process integer (x) in Expressions (3) and (4) rounds off a value below the decimal point. If the frequency value of the level to be converted is 1.5 before the integer conversion, the former is 1 and the latter is 2 by the integer conversion integer (x).
[0048]
10 and 11 are diagrams for explaining the small displacement removal processing.
[0049]
A partial histogram 1001 in FIG. 10 is an enlarged drawing of a part of a certain histogram. 10 and 11, the interval between the broken lines in the horizontal axis direction is the smoothed histogram HSIt is the value 1 in (i).
[0050]
In FIG. 10, the area between a and b is concavely recessed from the level before and after that, and the area between c and d is protruded in a convex form. However, from the outline of the entire histogram, the area between a and d is relatively gentle. It is considered that this local unevenness is rather caused by a quantization error due to integer conversion. Thus, in step S305, the local unevenness is removed, and a partial histogram 1101 after small displacement removal as shown in FIG. 11 is generated.
[0051]
This small displacement removal is realized, for example, by the processing shown in the flowchart of FIG. In the small displacement removal processing, processing is performed using the difference sequence D (i) calculated in step S304.
[0052]
First, in step S1201, variables I and EndPoint are initialized. The variable I is a variable indicating the start position of the removal candidate area, and is initialized to 0 in step S1201. The variable EndPoint represents the maximum value of i in D (i). In the case of the present embodiment, since the maximum value of the level is 255, the maximum value of i in the difference sequence D (i) is 254.
[0053]
In step S1202, the end condition is determined. When the investigation is completed for EndPoint, that is, for all D (i), the result is true, and the process ends. Otherwise, the process proceeds to step S1203.
[0054]
In step S1203, it is determined whether or not D (i) is the start position of the removal candidate area. As described above, in the small displacement removal processing, the unevenness in the range of the frequency ± 1 is removed. Therefore, when the difference sequence D (i) is ± 1, the determination in step S1203 is true, and the processing flows to step S1205. . This indicates that I has become the start position of the removal candidate area. Otherwise, the process proceeds to step S1204, where I is incremented by 1 and the process returns to the determination in step S1202.
[0055]
In step S1205, the variable J is initialized. The variable J is a variable indicating the end position of the removal candidate area, and is initialized by I + 1.
[0056]
Subsequent step S1206 is a determination of an end condition. When the investigation is completed for EndPoint, that is, for all D (i), the result is true, and the process ends. Otherwise, the process proceeds to step S1207.
[0057]
In step S1207, it is determined whether D (J) is 0. The fact that D (J) is 0 means that the original smoothed histogram HS(J), HSThis corresponds to the flatness between (J + 1). If it is flat, that is, if D (J) is 0, the determination in step S1207 is true, and the process proceeds to step S1208, increments J by 1, and returns to the determination in step S1206. Otherwise, the process flows to the determination process in step S1209.
[0058]
In the determination processing in step S1209, D (I) to D (J), that is, the smoothed histogram HS(I) -HSIt is determined whether there is a small peak between (J + 1). In the case of a concave type or a convex type, D (I) and D (J) need to have different signs. Therefore, in the case of the concave or convex type, D (I) × D (J) is a negative value. In the determination in step S1209, J-I is further compared with Th. This is a threshold process for the horizontal length in the histogram graph of the concave portion or the convex portion. In other words, it is a threshold value that controls the operation of this processing to determine whether a change up to how wide the level range (J-I + 1) is to be regarded as a small displacement and removed or not removed.
[0059]
In the experiment, good results were obtained when Th was a value of 4 to 5, but other values may of course be used. Alternatively, another threshold value Th2 is provided, and if J-I is equal to or greater than Th and equal to or less than Th2, deformation such as a small displacement is easily considered.
[0060]
If the determination in step S1209 is false, the interval represented by D (I) to D (J), that is, HS(I) -HSIt is determined that there is no small displacement during (J + 1), and the process proceeds to step S1210, where I is initialized to J as the next investigation start point, and the process returns to step S1202. If the determination in step S1209 is true, the process flows to step S1211.
[0061]
Step S1211 is processing for actually removing small peaks. Specifically, this is realized by adding the value of D (I) to D (J), which is the end point of the small displacement area, and setting the value of D (I) to 0.
[0062]
In a succeeding step S1212, I is initialized to J + 1 as a next investigation start point, and the process returns to the step S1202.
[0063]
FIG. 6 is a diagram illustrating a histogram shape corresponding to the difference sequence D (i) updated by the small displacement removal processing. In the smoothed histogram of FIG. 5, small displacement convex portions were present in the sections A and B. However, in the corresponding histogram sections A and B of the histogram of FIG. 6 after the small displacement removal processing, the small displacement convex portions were removed. Note that
[0064]
The description returns to the flowchart of FIG.
[0065]
Subsequent to the processing in steps S301 to S305, in step S306, coarse division processing is performed using D (i) after the removal of the small displacement.
[0066]
In the coarse division process, the histogram is sequentially examined while increasing the level from 0 to 1 and changing it to 255,
・ Area where frequency is monotonically increasing
・ Area where the frequency decreases monotonically
And a region in which the monotonically increasing region and the monotonically decreasing region are combined is used as a temporary histogram peak region.
[0067]
In the present embodiment, a coarse division process is performed using the difference sequence D (i) after small displacement removal, instead of directly referring to the histogram. FIG. 13 is a flowchart showing the flow of the rough division processing in step S306.
[0068]
First, in step S1301, each variable is initialized. The variable K is an index value and is initialized with 0. The variable EndPoint represents the maximum value of i in D (i). In the case of the present embodiment, the maximum value of the level is 255, and the maximum value of i in the difference sequence D (i) is 254. A variable m is a variable representing the number of areas detected as a result of the coarse division processing, and is initialized to 0.
[0069]
In a succeeding step S1302, it is determined whether or not D (K) is 0. If D (K) is 0, the process flows to step S1303.
[0070]
Step S1303 is for judging whether or not all of the difference sequence has been checked. If the condition is false, the entire process has been completed since all of the difference sequence have been checked. The condition determination in step S1303 is false when all the values of D (i) are 0. If the condition is true, the value of K is incremented by 1 in step S1304, and the process returns to S1302.
[0071]
In other words, the process of steps S1302 to S1304 is a process of examining D (K) in the order of K = 0, 1, 2,... And obtaining a position (K) where D (K) becomes non-zero first. .
[0072]
In step S1305, it is determined whether K is 0. If K is 0, the process proceeds to S1306. If it is not 0, the process goes to step S1309.
[0073]
In step S1306, it is determined whether D (K) is positive. The fact that the process flows to step S1306 means that the difference sequences D (0), D (1),..., D (K) have values of D (0) to D (K−1) of 0. , D (K) is non-zero. Further, as determined here, when the value of D (K) is positive, the histogram shape is flat from H (0) to H (K), and the frequency increases with H (K + 1). You will be doing. In this case, that is, when the determination in step S1306 is true, the processing indicated by A in FIG. 13 is performed. The process A is a process for searching for an area where the frequency monotonically increases as described above. Details of the process A will be described later.
[0074]
On the other hand, if the determination in step S1306 is false, the histogram shape is flat from H (0) to H (K), and the frequency decreases at H (K + 1). In this case, the process flows to step S1315, in which variables StartPos and PeakPos holding output values of process A described later are initialized to 0 and K, respectively, and then process A is skipped in FIG. Perform the indicated process. The process B is a process for searching for an area where the frequency monotonically decreases as described above. Details of the process B will be described later.
[0075]
In step S1315, 0 is assigned to the variable StartPos as the start position of the area, and K is assigned to PeakPos as the search start position of the process B, and the process proceeds to process B. StartPos and PeakPos are variables holding an output value of process A described later, and EndPos is a variable holding an output value of process B described later.
[0076]
In step S1307, it is determined whether all the difference sequence D (i) has been checked. If this determination is true, the process proceeds to step S1313, and the value of PeakPos detected in process A is substituted for EndPos. In the following step S1314, the values of StartPos, EndPos, and PeakPos are stored in SP (m), EP (m), and PP (m), respectively, and m is incremented by one, and the process ends.
[0077]
On the other hand, if the determination in step S1307 is false, process B described below is executed, and then the process flows to step S1308, and the values of StartPos, EndPos, and PeakPos are respectively set to SP (m), EP (m), PP (m), and increments m by 1, and proceeds to step S1310.
[0078]
In step S1309, it is determined whether the value of D (0) is positive or negative. When the condition is false, that is, when D (0) is negative, it corresponds to a decrease in the left end of the histogram outline. In this case, the process flows to step S1315. On the other hand, if the condition is true, the process flows to step S1310.
[0079]
Step S1310 is for judging whether or not all of the difference sequence has been checked. If the condition is true, the process ends because all of the difference sequence has been checked. If false, the process indicated by A in FIG. 13 is performed, and the process further flows to step S1311.
[0080]
Step S1311 is for determining whether or not all of the difference sequence has been checked. If the condition is true, it means that all of the difference sequence has been checked. In this case, the process flows to S1314 to output the region detected in the process A as the region information. If false, the process indicated by B in FIG. 13 is performed, and the process further flows to step S1312.
[0081]
Step S1312 updates K to EndPos + 1 in addition to the same processing as step S1314 of outputting the area detected by processing A and processing B as the area information, and then returns to step S1310.
[0082]
FIG. 14 is a flowchart showing the process A in FIG.
[0083]
In step S1401, variables are initialized. The variable X is an index variable and is initialized with K. Further, K is substituted for a StartPos variable indicating the start position of the area.
[0084]
In the following step S1402, it is determined whether or not all of the difference sequence D (i) has been checked. If the determination is true, the process proceeds to S1406, where EndLevel is substituted for PeakPos, and the process A ends. If the determination is false, the process flows to step S1402.
[0085]
A step S1402 checks the value of D (X). Since the process A is a process of detecting a monotonically increasing region, if D (X) becomes negative, the process flows to S1405 and ends. If D (X) is 0 or positive, the value of X is increased by 1 in step S1403, and the process returns to step S1402.
[0086]
Step S1405 is a process performed when an X satisfying D (X) <0 is detected. X-1 is substituted for PeakPos, and the process A ends.
[0087]
FIG. 15 is a flowchart showing the process B in FIG.
[0088]
In step S1501, variables are initialized. The variable X is an index variable and is initialized by PeakPos + 1.
[0089]
In the following step S1502, it is determined whether or not all of the difference sequence D (i) has been checked. If the determination is true, the process proceeds to step S1506, where EndLevel is substituted for EndPos, and the process B ends. If the determination is false, the process flows to step S1503.
[0090]
A step S1503 checks the value of D (X). Since the process B is a process for detecting a monotonically decreasing area, the process proceeds to S1505 when D (X) is positive, and when D (X) is 0 or negative, the value of X is set to 1 in step S1503. And returns to step S1502.
[0091]
Step S1505 is a process performed when an X satisfying D (X)> 0 is detected. X-1 is substituted for EndPos, and the process B ends.
[0092]
As described above, the coarse division processing in step S306 in FIG. 3 is realized by the processing described with reference to FIGS.
[0093]
As described above, in the coarse division process, the histogram after the smoothing process is roughly divided using a section from a monotonically increasing area to a monotonically decreasing area as a mountain area.
[0094]
FIG. 7 is a diagram illustrating an example of a division result by the coarse division processing in step S306. This example shows that the histogram shown in FIG. 6 is divided into three areas 0 to P, P to Q, and Q to 255 by the coarse division processing.
[0095]
Subsequent to the rough division processing in step S306, flat part division processing in step S307 is performed.
[0096]
The case of FIG. 7 will be described as an example. It is assumed that the histogram is divided into areas 0 to P, P to Q, and Q to 255 by the coarse division processing in step S306 as shown in FIG. In this case, the number m of temporary areas and the variable strings SP (j) and EP (j) (0 ≦ j <m) representing the start point and end point of the area described in the flowchart of FIG.
m = 3,
SP (0) = 0, EP (0) = P-1, PP (0) = u, (0 <u <P-1)
SP (1) = P, EP (1) = Q-1, PP (1) = v (0 <v <Q-1)
SP (2) = Q, EP (2) = 254, PP (2) = 254
It has become. For each of these three regions, it is determined whether or not there is a flat portion from the left and right sides of each region, and if so, it is cut from the temporary region as a flat portion. Also, adjacent flat portions are merged into one region.
[0097]
This can also be calculated from the difference sequence D (i). In the experiment, good results were obtained by setting the region where the frequency was +3 or less and the level range was 5 or more from the search start position as a flat portion.
[0098]
As described above, in the present embodiment, a flat portion is cut out by detecting a relatively flat portion from the left and right of the previously determined temporary region. However, another method, for example, a curve approximating a histogram shape is calculated. To calculate an inflection point.
[0099]
FIG. 8 is a diagram illustrating a state after the flat part division processing is performed on the histogram and the coarse division result illustrated in FIG. 7. Compared to FIG. 7, regions 0 to P in FIG. 7 are divided into flat portions 0 to R and peak portions R to P, and regions P to Q are divided into peak portions PS and flat portions S to Q. Understand.
[0100]
The crest integration processing of the subsequent step S308 is processing for examining adjacent crests and integrating them as necessary.
[0101]
FIG. 16 is a diagram for explaining this peak integration processing. In the divided state as shown in FIG. 8, it is assumed that the integration of the immediately adjacent peaks R to P and peaks PS is determined. In the present embodiment, the level p at which the frequency is maximum at the peaks R to P1, The level p at which the frequency is highest in the peaks PSTwoIs calculated with reference to the histogram. In this embodiment, the frequency of each level is checked for the sections R to P and P to S of the original histogram H (i). Also, H (p1) And H (pTwo) Is defined as f (in the case of FIG. 16, f = H (p1)). At this time, the value S is calculated according to the following equation (6).1, STwoIs calculated.
[0102]
Figure 2004200808
[0103]
Furthermore, STwo/ S1, And a predetermined threshold SthCompared to STwo/ S1Is the threshold SthIf it is larger, adjacent peaks are integrated into one peak region. Conversely, STwo/ S1Is the threshold SthIn the following case, the integration judgment is realized by not performing the integration assuming that the two mountain parts are independent mountain parts. In the experiment, the threshold SthWas set to about 0.7, good results were obtained.
[0104]
This corresponds to the determination based on whether or not the ratio of the area of the partial histogram 1602 in the square 1601 in FIG. 16 exceeds the threshold. That is, this processing is performed in the histogram area when all frequencies in a section sandwiched by the luminance levels that are the maximum frequencies of the two adjacent mountain regions are the largest of the two maximum frequencies. In other words, it can be said that the two peak areas are integrated into one peak area based on the ratio of the actual histogram area in the section.
[0105]
Here, in comparison with the threshold, STwo/ S1Is the threshold SthAlthough the region integration is not performed when the values match, it is not an essential matter which method is used when the equal sign is satisfied. Also, the threshold value may be another value. Also, instead of square 1601, level p1, PTwoAnd H (p1), H (pTwo) Can easily be modified by comparing the ratio between the trapezoid and the partial waveform 1602 determined by the threshold value to the threshold value.
[0106]
Although the original histogram H (i) is used in the present embodiment, the normalized histogram H (i) is used.N(i) and H after smoothingS(i) It is also possible to use a histogram reconstructed from the difference sequence D (i) or the difference sequence D (i) after the small displacement removal processing.
[0107]
FIG. 9 illustrates a state in which the peaks R to P and the peaks PS are integrated by the above determination in the example of FIG.
[0108]
As a result of the analysis processing as described above, detailed level area division is performed based on the shape of the histogram. In the case of the example of FIG.
・ Flat part 0-R
・ Yamabe RS
・ Flat parts S to Q
・ Yamabe Q ~ 255
Can be obtained.
[0109]
Next, the image correction processing performed in step S204 will be described in detail.
[0110]
FIG. 17 is a flowchart showing the image correction processing in step S204.
[0111]
First, in step S1701, it is determined whether the subject is backlit. In the case of an image captured in backlight, a histogram (eg, luminance) relating to the brightness of the image has a peak of the histogram at its maximum level and one or more peaks at a level darker than that. Further, in the level range between the peak of the maximum level and the peak of the dark level, there is a flat portion of the histogram having a relatively small frequency. In many cases, the main subject of an image is included in a dark level mountain. Conversely, the peak at the maximum level is composed of pixels corresponding to the light source of the backlight at the time of photographing or its surroundings, and there is almost no information as an image. Therefore, a good image can be obtained by performing correction such that the dark level mountain moves in the bright direction.
[0112]
Therefore, in the present embodiment, in the area division result obtained by the image analysis processing,
.There are two or more mountain areas
・ The brightest mountain area is the area containing the maximum level
・ There is a flat part between the second brightest mountain area and the brightest mountain area
Is satisfied, it is assumed that the image is a backlight image. This can be easily determined by referring to the range and type (mountain / flat portion) of each area information obtained by the image analysis processing.
[0113]
Alternatively, threshold processing may be performed on the size of the peak portion on the brightest side (the area on the histogram graph), and the result may be used as one of the criteria for determining whether or not the image is a backlight image.
[0114]
Step S1702 is a process branch based on the determination result in step S1701, and the process ends if it is determined that the subject is not backlit. On the other hand, if it is determined that the subject is backlit, the process proceeds to step S1703.
[0115]
In step S1703, a correction parameter is calculated. In the present embodiment, the maximum level of the second brightest mountain area is calculated according to a correction process described later. In the case of the example of FIG. 9, S is obtained as the maximum level of the peaks R to S, which is the second peak area from the high luminance side.
[0116]
In S1704, a correction amount is calculated. In the present embodiment, assuming that image correction (γ correction) using a γ curve is performed, a γ curve used for correction is determined and calculated in step S1704. The equation for gamma correction is as follows.
[0117]
y = x1 / γ            (7)
Here, x is an input signal before correction, and y is an output signal after correction.
[0118]
In the present embodiment, in order to determine the γ value of the γ correction, the γ value is calculated by a method as shown in FIG.
[0119]
In FIG. 18, reference numeral 1801 is the same as the diagram showing the analysis result of FIG. In step S1703, the maximum level S of the second brightest mountain area was obtained. The γ value of the γ curve 1802 is calculated so that the level S input signal becomes the target level T. The calculation of the γ value is performed by substituting S and T for x and y in equation (7) obtained by modifying equation (6).
[0120]
γ = logx / logy (8)
[0121]
In the present embodiment, the target level T is determined by the following equation (9).
[0122]
T = S + (255−S) × c1            (9)
[0123]
c1Is a parameter for controlling the correction strength. In the experiment, good results were obtained at a value of about 0.33 to 0.5. Of course, other values may be used depending on experimental results and tuning. With this correction, it is possible to calculate a correction curve that brightens the level ranges 0 to S in which the main subject is captured. The output value of the correction curve is calculated in advance for each input level from 0 to 255, and is stored in the form of a look-up table (LUT) in the RAM 106 or the like.
[0124]
As described above, the target level T is set between S and 255, and the γ value is adaptively determined using the level S and the level T.
[0125]
In step S1705, the image is read pixel by pixel, and the LUT calculated in step S1704 is applied to each pixel. In the present embodiment, a matrix operation represented by the following equation (10) is performed on each pixel of the input image, the input RGB signal is converted into a YCbCr signal, and the Y signal is corrected by an LUT. An output R′G′B ′ signal is obtained by a matrix operation represented by Expression (11), and a backlight corrected image is obtained.
[0126]
Figure 2004200808
[0127]
In some cases, the corrected RGB signal may have a negative value or exceed 255. In such a case, the RGB signal may be set to 0 or 255 (clip processing). Alternatively, depending on the output system, a negative value or a value exceeding 255 may be handled, but in such a case, clipping is not particularly necessary.
[0128]
Also, depending on the output system, there is a case where the YCbCr signal can be directly handled, but in that case, conversion from YCbCr to RGB is not particularly necessary.
[0129]
In the present embodiment, the RGB signal of each pixel is converted into a YCbCr signal, and the Y signal is corrected by the LUT to return to the RGB signal. However, the LUT calculated in step S1704 is applied to the RGB value of each pixel. Alternatively, a backlight correction image may be obtained.
[0130]
As described above, according to the present invention, the luminance histogram of an image is analyzed in detail, a backlight determination is performed, and when the image is determined to be a backlight image as a determination result, according to the state of the image brightness distribution. It is possible to suitably perform backlight correction.
[0131]
(Embodiment 2)
In the first embodiment described above, the γ value is determined using the maximum level S of the second brightest mountain part. In the present embodiment, the γ value is determined according to the histogram area of the levels S to 255 (that is, the number of pixels in the range). Determine the γ value.
[0132]
After calculating S by the correction parameter calculation in step S1703 in FIG. 17, the histogram area in the level range S to 255 is obtained. Histogram area SHIs obtained by the following equation (12).
[0133]
Figure 2004200808
[0134]
Here, instead of the histogram H (i), the normalized histogram HN(i) may be used.
[0135]
In the present embodiment, the histogram area SHT is determined by the following equation (13) so that the interval between T and 255 becomes narrower as is smaller.
[0136]
T = 255− (255−S) × SH        (13)
[0137]
Thus, the histogram area S between S and 255HThe target level T is set according to the equation (1), and the γ value is adaptively determined using the level S and the level T.
[0138]
According to the second embodiment, the gradation characteristics can be adaptively corrected according to the number of pixels on the high luminance side.
[0139]
(Embodiment 3)
In Embodiments 1 and 2 described above, correction using a simple γ curve has been described. Here, an embodiment using a correction method by combining a plurality of correction curves will be described.
[0140]
In step S1703 of FIG. 17, in addition to the processing described in the first or second embodiment, the reference level of the second brightest mountain is calculated. The reference level is used in the subsequent correction amount determination processing, and is a level value representing the second brightest peaks R to S. In the present embodiment, the average value ave of the level range of the peaks R to S of the original histogram is used as the reference level value. In addition, a median value of the peaks R to S or a level value having the maximum frequency may be used.
[0141]
In a succeeding step S1704, a correction amount is determined by a method described below.
[0142]
19 and 20 are diagrams illustrating examples of the correction curve.
[0143]
First, a curve represented by 1901 in FIG. 19 is determined. This is composed of a straight line connecting the coordinates (0, 0) and (S, T) and a straight line connecting (S, T) and (255, 255). The calculation of T is based on the equation (9) used in the first embodiment.
[0144]
Subsequently, a curve represented by 2001 in FIG. 20 is determined. The curve 2001 is the γ curve described in Embodiments 1 and 2, but the value T calculated by the following equation is used.2And ave, and in equation (8) x is ave and y is T1Is calculated.
[0145]
T2= Ave + (Tgt-ave) × c2        (14)
Here, Tgt is a corrected brightness target value of the second brightest mountain, which is presumed to include the main subject.
[0146]
If the main subject is a person, especially a face, it is preferably about 60% to 80% of the maximum level (255), so that the level is determined in advance. Good results were obtained in experiments with values of around 70%.
[0147]
Whether the main subject of the image is a person is not always necessary and not the main subject of the present invention. However, if necessary, it can be determined by applying a known face detection technique in advance. Alternatively, when the input image is an image in a known Exif format, information (for example, a shooting scene type) stored in an Exif tag (Tag) and camera manufacturer-specific information (maker note) are referred to. It is also conceivable to determine whether the setting of the camera at the time of shooting is a setting for shooting a person.
[0148]
C2Is a parameter for controlling the correction intensity. In the experiment, good results were obtained at about 0.33 to 0.5. Equation (14) is an equation for determining the γ curve so that the brightness approaches the target. The reason why the target value is not used directly is that if the γ value is too large, the gradation of the entire image is impaired. C2As the value of, another value may be used depending on experimental results and tuning.
[0149]
For the correction curves 1901 and 2001, output values are calculated in advance for each input level of 0 to 255, and stored in the RAM 106 or the like in the form of a look-up table (LUT).
[0150]
In subsequent S1705, the correction results are obtained by sequentially applying the correction curves 1901 and 2001 to each pixel of the image.
[0151]
The present embodiment is characterized in that a better correction result is obtained for a backlight image in which the main subject is a person than in the first and second embodiments.
[0152]
(Other embodiments)
As described above, the embodiments of the present invention have been described in detail. However, the present invention may be applied to a system including a plurality of devices, or may be applied to an apparatus including a single device.
[0153]
According to the present invention, a software program for realizing the functions of the above-described embodiments is directly or remotely supplied to a system or an apparatus, and a computer of the system or apparatus reads and executes the supplied program code. Including the case where this is also achieved. In this case, the form does not need to be a program as long as it has the function of the program.
[0154]
Accordingly, since the functions of the present invention are implemented by computer, the program code installed in the computer also implements the present invention.
That is, the claims of the present invention also include the computer program itself for realizing the functional processing of the present invention.
[0155]
In this case, any form of the program, such as an object code, a program executed by an interpreter, and script data to be supplied to the OS, may be used as long as the program has a function.
[0156]
As a recording medium for supplying the program, for example, a flexible disk, hard disk, optical disk, magneto-optical disk, MO, CD-ROM, CD-R, CD-RW, magnetic tape, nonvolatile memory card, ROM, DVD (DVD-ROM, DVD-R).
[0157]
Other methods of supplying the program include connecting to a homepage on the Internet using a browser of a client computer, and downloading the computer program itself of the present invention or a compressed file including an automatic installation function to a recording medium such as a hard disk from the homepage. Can also be supplied. Further, the present invention can also be realized by dividing the program code constituting the program of the present invention into a plurality of files and downloading each file from a different homepage. In other words, a WWW server that allows a plurality of users to download a program file for implementing the functional processing of the present invention on a computer is also included in the claims of the present invention.
[0158]
In addition, the program of the present invention is encrypted, stored in a storage medium such as a CD-ROM, distributed to users, and downloaded to a user who satisfies predetermined conditions from a homepage via the Internet to download key information for decryption. It is also possible to execute the encrypted program by using the key information and install the program on a computer to realize the program.
[0159]
The functions of the above-described embodiments are implemented when the computer executes the read program, and an OS or the like running on the computer executes a part of the actual processing based on the instructions of the program. Alternatively, the functions of the above-described embodiments can be realized by performing the entire process.
[0160]
Further, after the program read from the recording medium is written into a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer, the function expansion board or the A CPU or the like provided in the function expansion unit performs part or all of the actual processing, and the functions of the above-described embodiments are also realized by the processing.
[0161]
The present invention is characterized by the following configuration according to the embodiment described above.
[0162]
(Embodiment 1) Embodiment 1 is an image processing method for correcting an image based on a luminance histogram calculated from an input image,
An analyzing step of analyzing a schematic shape of the calculated luminance histogram,
A correction amount calculating step of calculating a correction amount of the image based on the analysis result of the luminance histogram;
A correction step of correcting the image based on the calculated correction amount,
It is characterized by having.
(Embodiment 2) In Embodiment 1, the analysis step includes:
A smoothing step of smoothing the brightness histogram,
A dividing step of dividing the smoothed luminance histogram into a mountain region and a flat region,
It is characterized by including.
(Embodiment 3) In Embodiment 2, the smoothing step includes:
A normalization step of normalizing the luminance histogram,
An averaging step of averaging the normalized luminance histogram by a moving average method;
A small displacement removing step of removing a small displacement of the averaged luminance histogram;
It is characterized by including.
(Embodiment 4) In Embodiment 2, the dividing step includes:
A coarse division step of coarsely dividing the luminance histogram smoothed in the smoothing step from a monotonically increasing area to a monotonically decreasing area as a mountain area;
A flat portion dividing step of further dividing the flat portion region in each mountain region obtained in the coarse dividing step,
In the histogram area when all frequencies in the section sandwiched by the luminance levels that are the maximum frequencies of the two adjacent mountain regions are the larger maximum frequency of those two maximum frequencies, An integration step of integrating the two crest regions into one crest region based on a ratio occupied by the histogram area of
It is characterized by including.
(Embodiment 5) In Embodiment 2, further comprising a determination step of determining whether or not the image is backlit based on a division result in the division step,
When the backlight is determined in the determining step, the correction amount calculating step and the correcting step are performed.
(Embodiment 6) In the embodiment 5, as for the determination step, as a result of the division by the division step, the first peak region having two or more peak regions and the first peak region on the brightest side is the maximum luminance. When there is a flat region between the second mountain region and the first mountain region that are at the second level from the brighter side and include the level M, the image is backlight. It is characterized by determining.
(Embodiment 7) In Embodiment 6, in the correction amount calculating step, a target level T is set between the maximum luminance level S and the maximum luminance level M in the second mountain region, and the input level is set to the target level T. A γ curve in which the output level at the maximum luminance level S in the second mountain region becomes the target level T is calculated.
(Eighth Embodiment) In the seventh embodiment, the target level T is set to a binary value of the maximum luminance level S and the maximum luminance level M in the second mountain region.
(Embodiment 9) In Embodiment 8, the target level T is set based on a histogram area at or above the maximum luminance level S in the second mountain region.
(Embodiment 10) In Embodiment 6, the correction amount calculating step includes:
Calculating a predetermined reference level for the second peak area;
When the input is in the range from the minimum luminance level to the maximum luminance level S in the second peak area, the output takes a value in the range from the minimum luminance level to the target level T, and the input is in the second peak area. Calculating a first correction curve whose output takes a value in a range from the target level T to the maximum luminance level in a range larger than the maximum luminance level S;
Calculating a second correction curve based on the reference level and a predetermined target level T ';
It is characterized by having.
(Embodiment 11) In Embodiment 10, the second correction curve is a γ curve in which the output level when the input level is the reference level is the target level T '.
(Embodiment 12) An image processing apparatus for correcting an image based on a luminance histogram calculated from the input image,
Analysis means for analyzing a schematic shape of the calculated luminance histogram,
Correction amount calculation means for calculating a correction amount of the image based on the analysis result of the luminance histogram,
Correction means for correcting the image based on the calculated correction amount,
An image processing apparatus comprising:
(Thirteenth Embodiment) A program according to a thirteenth embodiment is stored in a computer.
Calculating a luminance histogram from the input image;
An analyzing step of analyzing a schematic shape of the calculated luminance histogram;
A correction amount calculating step of calculating a correction amount of the image based on the analysis result of the luminance histogram;
A correction step of correcting the image based on the calculated correction amount,
Is executed.
[0163]
【The invention's effect】
According to the present invention, it is possible to realize a correction process that can obtain a more sufficient effect.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration of an image processing apparatus according to an embodiment.
FIG. 2 is a flowchart illustrating image processing according to the embodiment.
FIG. 3 is a flowchart illustrating an image analysis process according to the embodiment.
FIG. 4 is a diagram illustrating an example of a normalized histogram according to the embodiment.
FIG. 5 is a diagram illustrating an example of a histogram after a smoothing process according to the embodiment.
FIG. 6 is a diagram illustrating an example of a histogram after a small displacement removal process according to the embodiment.
FIG. 7 is a diagram illustrating a result of a coarse division process in the embodiment.
FIG. 8 is a diagram illustrating a result of flat portion division processing according to the embodiment.
FIG. 9 is a diagram illustrating a result of a mountain integration process according to the embodiment;
FIG. 10 is a diagram illustrating a small displacement removal process according to the embodiment.
FIG. 11 is a diagram illustrating a small displacement removal process according to the embodiment.
FIG. 12 is a flowchart illustrating a small displacement removal process according to the embodiment.
FIG. 13 is a flowchart illustrating a coarse division process according to the embodiment.
FIG. 14 is a flowchart illustrating a coarse division process according to the embodiment.
FIG. 15 is a flowchart illustrating a coarse division process according to the embodiment.
FIG. 16 is a diagram illustrating a mountain part integration process according to the embodiment.
FIG. 17 is a flowchart illustrating an image correction process according to the embodiment.
FIG. 18 is a diagram illustrating a method for obtaining a correction curve according to the embodiment.
FIG. 19 is a diagram illustrating a method for obtaining a correction curve according to the embodiment.
FIG. 20 is a diagram illustrating a method for obtaining a correction curve according to the embodiment.

Claims (1)

入力した画像から算出した輝度ヒストグラムに基づいてその画像の補正を行う画像処理方法であって、
前記算出した輝度ヒストグラムの概略形状を解析する解析ステップと、
前記輝度ヒストグラムの解析結果に基づいて、前記画像の補正量を算出する補正量算出ステップと、
算出した補正量に基づいて前記画像の補正を行う補正ステップと、
を有することを特徴とする画像処理方法。
An image processing method for correcting an image based on a luminance histogram calculated from an input image,
An analyzing step of analyzing a schematic shape of the calculated luminance histogram,
A correction amount calculating step of calculating a correction amount of the image based on the analysis result of the luminance histogram;
A correction step of correcting the image based on the calculated correction amount,
An image processing method comprising:
JP2002364328A 2002-12-16 2002-12-16 Image processing method, apparatus, and program Expired - Fee Related JP4018524B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002364328A JP4018524B2 (en) 2002-12-16 2002-12-16 Image processing method, apparatus, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002364328A JP4018524B2 (en) 2002-12-16 2002-12-16 Image processing method, apparatus, and program

Publications (3)

Publication Number Publication Date
JP2004200808A true JP2004200808A (en) 2004-07-15
JP2004200808A5 JP2004200808A5 (en) 2005-04-07
JP4018524B2 JP4018524B2 (en) 2007-12-05

Family

ID=32762229

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002364328A Expired - Fee Related JP4018524B2 (en) 2002-12-16 2002-12-16 Image processing method, apparatus, and program

Country Status (1)

Country Link
JP (1) JP4018524B2 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006318255A (en) * 2005-05-13 2006-11-24 Konica Minolta Photo Imaging Inc Image processing method, image processor and image processing program
JP2007208846A (en) * 2006-02-03 2007-08-16 Noritsu Koki Co Ltd Image processing apparatus and method
JP2008276217A (en) * 2007-05-01 2008-11-13 Samsung Electronics Co Ltd Method and apparatus for auto-focusing in image sensor
JP2011071952A (en) * 2009-08-31 2011-04-07 Canon Inc Image processing apparatus and control method thereof
JP2011128212A (en) * 2009-12-15 2011-06-30 Canon Inc Image processor, method and program
US8599257B2 (en) 2006-08-18 2013-12-03 Nec Corporation Vehicle detection device, vehicle detection method, and vehicle detection program
JP2014130320A (en) * 2012-11-29 2014-07-10 Brother Ind Ltd Control device and computer program
US9413925B2 (en) 2013-10-30 2016-08-09 Canon Kabushiki Kaisha Image processing apparatus, image processing method, and storage medium
JP6117982B1 (en) * 2016-11-04 2017-04-19 株式会社LinkPro Image processing apparatus, image processing method, and image processing program

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006318255A (en) * 2005-05-13 2006-11-24 Konica Minolta Photo Imaging Inc Image processing method, image processor and image processing program
JP2007208846A (en) * 2006-02-03 2007-08-16 Noritsu Koki Co Ltd Image processing apparatus and method
US8599257B2 (en) 2006-08-18 2013-12-03 Nec Corporation Vehicle detection device, vehicle detection method, and vehicle detection program
JP2008276217A (en) * 2007-05-01 2008-11-13 Samsung Electronics Co Ltd Method and apparatus for auto-focusing in image sensor
JP2011071952A (en) * 2009-08-31 2011-04-07 Canon Inc Image processing apparatus and control method thereof
JP2011128212A (en) * 2009-12-15 2011-06-30 Canon Inc Image processor, method and program
JP2014130320A (en) * 2012-11-29 2014-07-10 Brother Ind Ltd Control device and computer program
US9413925B2 (en) 2013-10-30 2016-08-09 Canon Kabushiki Kaisha Image processing apparatus, image processing method, and storage medium
JP6117982B1 (en) * 2016-11-04 2017-04-19 株式会社LinkPro Image processing apparatus, image processing method, and image processing program
JP2018073320A (en) * 2016-11-04 2018-05-10 株式会社LinkPro Image processing device, image processing method, and image processing program

Also Published As

Publication number Publication date
JP4018524B2 (en) 2007-12-05

Similar Documents

Publication Publication Date Title
JP5032911B2 (en) Image processing apparatus and image processing method
US8094935B2 (en) Representative color extracting method and apparatus based on human color sense and data histogram distributions
US20040190789A1 (en) Automatic analysis and adjustment of digital images with exposure problems
US6836565B1 (en) Image processing apparatus and method, and recording medium
EP1819143A1 (en) Color adjusting device and method
JP2009038498A (en) Unit and method for processing image
JP4262151B2 (en) Image processing method, image processing apparatus, computer program, and storage medium
JP2004341762A (en) Image processor
JP4018524B2 (en) Image processing method, apparatus, and program
JP4208396B2 (en) Image processing method, apparatus, and recording medium
US7340104B2 (en) Correction parameter determining method, correction parameter determining apparatus, computer program, and recording medium
JPH10302061A (en) Digital processing method combining color cast removal and contrast emphasis of digital color image
JP2003018412A (en) Image compressor, and image compression method, program code and storage medium
JP3673092B2 (en) Image quality adjusting apparatus, image quality adjusting method, and recording medium recording image adjusting program
JP4146506B1 (en) Mosaic image generating apparatus, method and program
JP4693289B2 (en) Image compression apparatus, image compression method, program code, and storage medium
JPWO2008004439A1 (en) Gradation correction characteristic evaluation apparatus, image processing apparatus, gradation correction characteristic evaluation method, image processing method, gradation correction characteristic evaluation program, and image processing program
US7397947B2 (en) Image processing apparatus, method and program able to infer the color space of image data
JPH11120325A (en) Image evaluating method, medium where image evaluating program is recorded, and image evaluating device
JPH118768A (en) Image processor, image processing method and medium recording image processing control program
JP2005346474A (en) Image processing method and image processor and program and storage medium
JP2000137805A (en) Processor and method for image processing
JP4498040B2 (en) Image processing method and apparatus
JP2000306088A (en) Image correcting device and recording medium storing image correcting program
JP2000105820A (en) Device and method for monotone conversion and medium where monotone converting program is recorded

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040527

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040527

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070309

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070423

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070907

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070920

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100928

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100928

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110928

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110928

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120928

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120928

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130928

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees