(57)【要約】【課題】より十分な効果が得られる補正処理を実現すること。【解決手段】撮影された画像が逆光状態かどうかの判定を行い（ステップＳ１７０１）、逆光の場合には、算出した輝度ヒストグラムの概略形状（山部領域、平坦部領域に分割する）に基づいて、補正パラメータを算出し（ステップＳ１７０３）、その補正パラメータに基づいてγ曲線等の補正曲線を求める（ステップＳ１７０４）。そして、その補正曲線に基づき補正処理を行う（ステップＳ１７０５）。【選択図】  図１７
2004200808.tif 000002
【特許請求の範囲】
【請求項１】
入力した画像から算出した輝度ヒストグラムに基づいてその画像の補正を行う画像処理方法であって、
前記算出した輝度ヒストグラムの概略形状を解析する解析ステップと、
前記輝度ヒストグラムの解析結果に基づいて、前記画像の補正量を算出する補正量算出ステップと、
算出した補正量に基づいて前記画像の補正を行う補正ステップと、
を有することを特徴とする画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入力した画像の補正を行う画像処理技術に関する。
【０００２】
【従来の技術】
以前よりデジタル画像に対して、彩度、色調、コントラストや階調の調整等様々な画像処理を施すことが行われてきている。従来これらの画像処理は、画像に関して専門的な知識を持ったオペレータが専門的なソフトウェアを用いて、経験的な知識を駆使し、コンピュータのモニタ上で確認するなどしながら試行錯誤を行って好適な画像を得る、というものが一般的であった。
【０００３】
近年、インターネットの普及に牽引されるようにデジタルカメラの普及が進んでいる。これはデジタルカメラの撮影結果が、コンピュータにとって読み取り容易なデータファイルの形式であり、例えばデジタルカメラによって撮影した画像をWWW(World Wide Web)のサーバ上に保存して他者に対して公開する、といったことが容易に行えるからである。
【０００４】
しかし、デジタルカメラは旧来の銀塩カメラを自在に使いこなすようなユーザよりも、むしろコンピュータには詳しいもののカメラに関して知識が十分でないユーザが多いと考えられる。したがって、撮影された画像は必ずしも好適な条件で撮影された画像ばかりであるとは限らない。
【０００５】
好適でない条件で撮影した画像であっても、内容が撮影者にとって重要であった場合などには必ずしも廃棄できるものではなく、そのような場合には適切な画像補正が望まれる。
【０００６】
また、先に述べたように、必ずしもカメラや画像について精通したユーザばかりではない点等から、この画像補正は自動もしくは半自動によるものが好ましい。
【０００７】
画像を補正する技術としては、従来より、画像から算出したヒストグラムに基づいて画像を補正するものが開示されている（例えば特許文献１，２，３を参照。）。
【０００８】
【特許文献１】
特開２００２−１００７３号公報
【特許文献２】
特開２００２−９２６０７号公報
【特許文献３】
特開平１１−１６７６３３号公報
【０００９】
【発明が解決しようとする課題】
しかしながら、上記のような従来の補正処理ではその効果が十分とはいえない場合が生じていた。
【００１０】
そこで、本発明は、より十分な効果が得られる補正処理を実現することを目的とする。
【００１１】
【課題を解決するための手段】
上記した目的を達成するために、本発明の画像処理方法は、次の構成を有する。すなわち、入力した画像から算出した輝度ヒストグラムに基づいてその画像の補正を行う画像処理方法であって、前記算出した輝度ヒストグラムの概略形状を解析する解析ステップと、前記輝度ヒストグラムの解析結果に基づいて、前記画像の補正量を算出する補正量算出ステップと、算出した補正量に基づいて前記画像の補正を行う補正ステップとを有することを特徴とする。
【００１２】
【発明の実施の形態】
以下、図面を参照して本発明の好適な実施形態について詳細に説明する。
【００１３】
（実施形態１）
図１は、本実施形態における画像処理装置の構成を示すブロック図である。
【００１４】
図１の入力部１０１は、ユーザからの指示やデータを入力する装置で、キーボードやポインティング装置を含む。なお、ポインティング装置としては、マウス、トラックボール、トラックパッド、タブレット等が挙げられる。
【００１５】
データ保存部１０２は、画像データを保持する部分で、通常はハードディスク、フロッピディスク、ＣＤ−ＲＯＭやＣＤ−Ｒ、メモリーカード、ＣＦカード、スマートメディア、ＳＤカード、メモリスティック等で構成される。また、データ保存部１０２にプログラムやその他のデータを保存することも可能である。
【００１６】
通信部１０７は、機器間の通信を行うための、シリアルまたはパラレルのインタフェース（Ｉ／Ｆ）である。これは公知のイーサネット（登録商標）、ＵＳＢ、ＩＥＥＥ１２８４、ＩＥＥＥ１３９４などの有線通信方式であってもよいし、赤外線、ＩＥＥＥ８０２．１１ｂ、Ｂｌｕｅｔｏｏｔｈ等の無線通信方式によるものであってもよい。
【００１７】
表示部１０３は、画像処理前、または画像処理後の画像を表示したりＧＵＩ等の画像を表示する装置で、一般的にはＣＲＴや液晶ディスプレイなどが用いられる。あるいは、ケーブル等で接続された装置外部のディスプレイ装置であっても構わない。
【００１８】
１０４はＣＰＵであり、上述した各構成の処理を統括的に制御する。ＲＯＭ１０５とＲＡＭ１０６は、その処理に必要なプログラム、データ、作業領域などをＣＰＵ１０４に提供する。また、ＲＯＭ１０５には後述する処理を行うための制御プログラムが格納されている。
【００１９】
なお、図示しないが、さらに公知のＣＣＤなどの画像入力手段を設け、入力した画像をデータ保存部１０２に蓄えることができるにしてもよい。
【００２０】
図２は、本実施形態における画像処理装置において行われる画像処理を示すフローチャートである。このフローチャートに対応するプログラムはＲＯＭ１０５に記憶されている制御プログラムに含まれ、ＲＡＭ１０６にロードされＣＰＵ１０４によって実行されるものである。
【００２１】
まず、画像処理装置に画像を入力する（ステップＳ２０１）。画像の入力にはいくつかの方法が考えられる。データ保存部１０２が着脱可能な装置（例えばメモリカードやフロッピディスク）で構成されている場合には、データ保存部１０２に画像を保存したメディアを装着することによって画像を入力することができる。また、通信部１０７を介してスキャナ等の画像入力機器と接続し、ユーザが入力部１０１もしくは画像入力機器を操作して画像入力を指示して画像を読み込み、ＲＡＭ１０６もしくはデータ保存部１０２に画像を保存することによっても画像を入力することができる。あるいは、通信部１０７を介してネットワークによって他の機器と接続し、他の機器からの画像送信を検知して送信された画像をＲＡＭ１０６もしくはデータ保存部１０２に保存することによっても画像を入力することができる。さらに、図１に不図示のＣＣＤなどの画像入力手段を設ける場合には、ユーザが入力部１０１を操作するのをトリガとしてＣＣＤ装置より画像を読み込み、ＲＡＭ１０６もしくはデータ保存部１０２に画像を保存することによっても画像を入力することもできる。以下の説明ではメモリカード（データ保存部１０２）を本装置に装着することにより画像を入力するものとして説明する。
【００２２】
続いて、画像処理の対象となる画像を選択する（ステップＳ２０２）。画像の選択にはいくつかの方法が考えられる。本実施形態ではデータ保存部１０２の画像の一覧を表示部１０３に表示し、ユーザが入力部１０１を用いて画像を選択するものとして説明するが、例えば画像が入力されたことをトリガとして自動的に画像を選択するのであっても可能である。入力された画像が複数であっても、入力順、ファイル識別子順等によって画像の順序を決定し、順序づけされた画像に対して以下で説明する処理を順次適用していけばよい。
【００２３】
次に、選択された画像データの解析処理を行う（ステップＳ２０３）。解析処理では、選択された画像を参照し、画像の特徴量データ等を抽出する。この解析処理の詳細については後述する。
【００２４】
続くステップＳ２０４では、ステップＳ２０３での解析結果に基づいて、すなわち、抽出した画像データの特徴量データに基づいて画像の補正パラメータを決定し、さらに実際の画像データに対して画像補正処理を施す。この補正処理に関する詳細については後述する。
【００２５】
最後に、ステップＳ２０４で補正された画像データを出力し（ステップＳ２０５）、処理は終了する。ここでいう「出力」とはさまざまな態様が考えられるが、本実施形態は、データ保存部１０２に画像データを保存するものとする。この他にも、通信部１０７を介して公知のプリンタ装置と接続をしている場合には、プリンタに対して画像を送信して印刷することも考えられる。さらには、通信部１０７を介してネットワークによって他の機器と接続し、他の機器からの画像送信を受け取るような場合には、送信元の機器に対して画像を返信することも考えられる。
【００２６】
また、複数の出力方式が可能である場合には、画像選択処理Ｓ２０２もしくはステップＳ２０４でユーザに対して表示部１０３を介してメッセージを表示して選択を促したり、あるいはＧＵＩによる設定画面を設け、入力部１０１を介してユーザが出力方式を選択して決定するように構成することも可能である。
【００２７】
次に、ステップＳ２０３で行われる画像解析処理について図３のフローチャートを参照して詳細に説明する。
【００２８】
まず、ステップＳ２０２で選択された画像データを読み込み、この画像データの輝度ヒストグラムを算出する（ステップＳ３０１）。これは、画像の撮影状況を調べるためのもので、画像の明るさとその偏りに関する統計情報を収集する。具体的には例えば、入力画像の画素のＲＧＢ信号が各信号８ビット（０〜２５５）の場合、ＲＧＢ信号に対して次式で得られるＹ（輝度）に関してヒストグラムを作成する。
【００２９】
Ｙ＝0.2990Ｒ＋0.5870Ｇ＋0.1140Ｂ          （１）
【００３０】
式（１）によれば、入力信号がＲＧＢ各８ビットの場合、Ｙも０以上255以下の値になる。なお、本実施形態では式（１）によってＹ信号を得ているが、高速化等のため例えば次の式（２）のような近似式を使うようにしてもよい。
【００３１】
Ｙ＝（３Ｒ＋６Ｇ＋Ｂ）／10            （２）
【００３２】
あるいは、ＲＧＢのＧ信号（緑成分）やＲＧＢ３信号の最小値をＹの近似値として使用するようにしてもよい。また、Ｙではなく、CIE L*a*b*におけるL*を使うようにしてもよい。
【００３３】
また、入力画像の全画素について式（１）によって輝度を算出するのではなく、間引き処理によって適度にサンプリングされた画素について輝度を算出するのであっても構わない。あるいは、入力画像に対して適度に縮小処理を施して、縮小画像の全画素に対して式（１）を適用し輝度を算出するのであっても良い。
【００３４】
以下本実施形態では、入力画像信号はＲＧＢ各８ビットの整数値で０〜２５５の値を取り、またヒストグラム算出ステップＳ３０１では入力画像の全画素に対し式（１）によってＲＧＢ信号よりＹ信号を得てＹ信号のヒストグラムを算出するものとして説明を行う。
【００３５】
また、式（１）によって算出したＹ信号は式（１）は実数値であるが、小数点以下の数値を切り上げ、切り捨てあるいは四捨五入等して整数化することにより、０〜255の整数値となる。
【００３６】
ステップＳ３０１では、各画素の整数化されたＹ信号値（以下、「輝度レベル」または単に「レベル」という。）を算出するとともに、各レベルの画素数を数えることにより、原ヒストグラムH(i)（０≦ｉ≦255）を得る。
【００３７】
続くステップＳ３０２では、ステップＳ３０１で算出した原ヒストグラムH(i)に対して正規化処理を施す。この正規化処理は画像デ-タの画素数またはサンプリング数による影響を排除するためのもので、正規化ヒストグラムHN(i)は具体的には以下の式（３）により算出する。
【００３８】
2004200808.tif 000003
【００３９】
ただし、integer(x)はxを整数化する処理（関数）で、小数点以下の数値の切り上げ、切り捨てもしくは四捨五入である。また、Ａは係数で、本実施形態では実験値より10,000を用いた。
【００４０】
図４は、正規化ヒストグラムHN(i)の例を表す図である。
【００４１】
次に、ステップＳ３０３で、ステップＳ３０２で得た正規化ヒストグラムHN(i)に対して平滑化処理を施す。図４では模式的にヒストグラムを書いているが、実際のヒストグラムは隣接するレベル間で度数にばらつきがあり、かなりギザギザしているため、以後の解析処理における前処理として平滑化処理を行い、ヒストグラムの概略形状の解析を行い易くするために実行する。
【００４２】
本実施形態では、注目するレベルに対して上下４レベルと注目するレベルの合計９レベルのヒストグラム度数値を平均化することで平滑化を行う。すなわち、前後９点による移動平均法による平均化を行う。この場合、レベルが３以下、あるいは252以上の場合上下のいずれかに４レベル全ては存在しないが、その場合にはそれを存在するものだけを用いて平均化を行う。次式はこの移動平均処理を表す式である。
【００４３】
2004200808.tif 000004
【００４４】
図５は式（４）による平滑化後の平滑化ヒストグラムHS(i)を表す図である。
図４の平滑化前のヒストグラムに比べ、凹凸が減少していることがわかる。なお、この式（４）の平均化による平滑化処理は実験によって決定したものであるが、この平均化を行うレベル範囲を４以外としても、あるいは他の平滑化処理を用いてもよい。
【００４５】
次に、ステップＳ３０４で、平滑化ヒストグラム数列HS(i)より差数列D(i)を得る差数列算出処理を行う。この差数列算出処理は、次の小変位除去処理ステップＳ３０５のための処理で、具体的には次式により差数列D(i)を算出する。
【００４６】
D(i)＝HS(i+1)-HS(i)  (０≦i≦254）        （５）
【００４７】
続くステップＳ３０５の小変位除去処理では、ヒストグラムの小変位を除去する。これは整数化による丸め処理による変位を除去するための処理である。これは例えば式（３）、（４）の整数化処理integer(x)が小数点以下の数値に対する四捨五入の場合を例にして説明すると、あるレベルの整数化前の度数値が1.4で、それに隣接するレベルの整数化前の度数値が1.5であった場合、整数化処理integer(x)により前者は１となり後者は２となってしまうのを同一視するための処理である。
【００４８】
図１０、図１１はこの小変位除去処理を説明する図である。
【００４９】
図１０における部分ヒストグラム１００１は、あるヒストグラムの一部分を拡大して描いたものである。図１０、図１１において、横軸方向の破線の間隔は、平滑化ヒストグラムHS(i)における値１である。
【００５０】
図１０における、ａ〜ｂ間は、その前後のレベルより凹型にくぼんでおり、またｃ〜ｄ間は凸型に突き出ているが、ヒストグラム全体の概形からするとａ〜ｄ間は比較的なだらかに変移しているのであって、この局所的な凹凸はむしろ整数化による量子化誤差によって発生していると考えられる。そこで、ステップＳ３０５ではこの局所的な凹凸を除去し、図１１に示すような小変位除去後の部分ヒストグラム１１０１を生成する。
【００５１】
この小変位除去は例えば図１２のフローチャートに示す処理によって実現される。小変位除去処理では、ステップＳ３０４で算出した差数列D(i)を用いて処理を行う。
【００５２】
まず、ステップＳ１２０１で、変数ＩおよびEndPointの初期化を行う。変数Ｉは、除去候補領域の開始位置を表す変数であり、ステップＳ１２０１では０に初期化される。変数EndPointはD(i)でのiの最大値を表す。本実施形態の場合、レベルの最大値は255なので、その差数列D(i)でのiの最大値は254なので、254で初期化する。
【００５３】
ステップＳ１２０２は終了条件の判定で、EndPointすなわち全てのD(i)について調査が終わった場合に真となり処理は終了し、そうでない場合は処理はステップＳ１２０３に流れる。
【００５４】
ステップＳ１２０３は、D(i)が除去候補領域の開始位置となるかどうかを判定している。これまで説明した通り、小変位除去処理では度数が±1の範囲の凹凸を除去するので、差数列D(i)が±１の場合はステップＳ１２０３での判定は真となり処理はステップＳ１２０５に流れる。これは、Ｉが除去候補領域の開始位置となったことを表す。そうでない場合は処理はステップＳ１２０４に流れ、ステップＳ１２０４ではＩを１増加してステップＳ１２０２の判定に戻る。
【００５５】
ステップＳ１２０５では、変数Ｊの初期化を行う。変数Ｊは、除去候補領域の終了位置を表す変数であり、Ｉ＋１で初期化される。
【００５６】
続くステップＳ１２０６は終了条件の判定で、EndPointすなわち全てのD(i)について調査が終わった場合に真となり処理は終了し、そうでない場合は処理はステップＳ１２０７に流れる。
【００５７】
ステップＳ１２０７では、D(J)が０かどうかを判定している。D(J)が0であるということは、元の平滑化ヒストグラムHS(J)、HS(J+1)間が平坦であることに対応する。平坦である、すなわちD(J)が０である場合には、ステップＳ１２０７での判定は真となり処理はＳ１２０８に流れＪを１増加してステップＳ１２０６の判定に戻る。そうでない場合には、処理はステップＳ１２０９の判定処理に流れる。
【００５８】
ステップＳ１２０９での判定処理では、D(I)〜D(J)、すなわち平滑化ヒストグラムHS(I)〜HS(J+1)間が小ピ-クであるかどうかの判定を行う。凹型もしくは凸型の場合、D(I)とD(J)は符号が異なる必要がある。したがって、凹型もしくは凸型の場合にはD(I)×D(J)は負の値となる。またステップＳ１２０９での判定ではさらにJ-IをThと比較しているが、これは凹部もしくは凸部のヒストグラムグラフにおける横方向の長さに対する閾値処理である。つまり、どのくらい広いレベル範囲(J-I+1)までの変化を小変位とみなして除去するか、あるいはみなさずに除去しないかという本処理の動作を制御する閾値である。
【００５９】
実験ではThが４〜５といった値で良好な結果を得たが、もちろん他の値であっても構わない。あるいは、もう一つ閾値Th2を設けて、J-IがTh以上Th2以下であれば小変位とみなす等の変形は容易に考えられる。
【００６０】
ステップＳ１２０９での判定が偽であった場合、D(I)〜D(J)があらわす区間、すなわちHS(I)〜HS(J+1)間は小変位でないと判断され、処理はステップＳ１２１０に流れ、次の調査開始点としてＩをＪで初期化して処理はステップＳ１２０２に戻る。ステップＳ１２０９での判定が真の場合には、処理はステップＳ１２１１に流れる。
【００６１】
ステップＳ１２１１は実際に小ピークを除去する処理である。具体的には、小変位領域の終了点であるD(J)にD(I)の値を加え、さらにD(I)の値を０とすることで実現される。
【００６２】
続くステップＳ１２１２では、次の調査開始点として、IをJ+1で初期化し、さらに処理はステップＳ１２０２に戻る。
【００６３】
図６は、この小変位除去処理により更新された差分数列D(i)に対応するヒストグラムの形状を表す図である。図５の平滑化ヒストグラムでは区間Ａ〜Ｂに小変位の凸部があったのが、小変位除去処理後に対応する図６ヒストグラムのヒストグラムの区間Ａ〜Ｂでは小変位の凸部が除去されていることに注目されたい。
【００６４】
説明を図３のフローチャートに戻す。
【００６５】
上記ステップＳ３０１〜Ｓ３０５による処理に続いて、ステップＳ３０６では小変位除去後のD(i)を用いて粗分割処理を行う。
【００６６】
粗分割処理は、レベルを０から１ずつ増加して255まで変化させながらヒストグラムを順次調べ、
・度数が単調増加の領域
・度数が単調減少の領域
を探し、上記単調増加の領域と単調減少の領域をあわせた領域を仮のヒストグラムの山領域とする処理である。
【００６７】
本実施形態では、ヒストグラムを直接参照するのではなく、小変位除去後の差数列D(i)を用いて粗分割処理を行う。図１３はこのステップＳ３０６による粗分割処理の処理の流れを示す流れ図である。
【００６８】
まず、ステップＳ１３０１で各変数を初期化する。変数Ｋはインデックス値で、０で初期化される。変数EndPointはD(i)でのiの最大値を表す。本実施形態の場合、レベルの最大値は255で、その差数列D(i)でのiの最大値は254なので、254で初期化する。変数mは粗分割処理の結果検出した領域の数を表す変数で、０で初期化される。
【００６９】
続くステップＳ１３０２では、D(K)が０であるかどうかを調べる。D(K)が０の場合は、ステップＳ１３０３に処理は流れる。
【００７０】
ステップＳ１３０３は、差数列の全てを調べ終わったかどうかの判定であり、条件が偽の場合には差数列全てを調べ終わったので、処理は終了する。ステップＳ１３０３での条件判定が偽となるのは、D(i)の全ての値が０の場合である。条件が真の場合は、ステップＳ１３０４でＫの値を１増やし処理はＳ１３０２に戻る。
【００７１】
このステップＳ１３０２〜Ｓ１３０４の処理はすなわち、D(K)をK=0,1,2,...の順に調べ、最初にD(K)が非０となる位置(K)を求める処理である。
【００７２】
ステップＳ１３０５では、Ｋが０かどうかを判定している。Ｋが０である場合、処理はＳ１３０６に流れる。非０の場合には、処理はステップＳ１３０９に流れる。
【００７３】
ステップＳ１３０６では、D(K)が正であるかどうかを判定する。ステップＳ１３０６に処理が流れてくるということは、差数列D(0), D(1), ...,D(K)は、D(0)からD(K-1)の値が０で、D(K)が非０であるということである。さらにここで判定しているように、D(K)の値が正である場合、ヒストグラムの形状としてはH(0)〜H(K)で平坦で、H(K+1)で度数が増加していることになる。この場合、すなわちステップＳ１３０６での判定が真の場合には、図１３中にＡで示されている処理を行う。処理Ａは先に述べた度数が単調増加の領域を探す処理である。処理Ａの詳細については後述する。
【００７４】
一方、ステップＳ１３０６の判定が偽の場合には、ヒストグラムの形状としてはH(0)〜H(K)で平坦であって、H(K+1)で度数が減少していることになる。この場合は、処理はステップＳ１３１５に流れ、後述する処理Ａの出力値を保持する変数StartPos、PeakPosをそれぞれ０およびＫで初期化した後、さらに処理Ａをスキップする形で図１３中にＢで示される処理を行う。処理Ｂは先に述べた度数が単調減少の領域を探す処理である。処理Ｂの詳細については後述する。
【００７５】
ステップＳ１３１５では領域の開始位置として０を変数StartPosに、処理Ｂの検索開始位置としてPeakPosにＫを代入して、処理Ｂに移る。StartPos、PeakPosは後述する処理Ａの出力値を保持する変数であり、またEndPosは後述する処理Ｂの出力値を保持する変数である。
【００７６】
ステップＳ１３０７では、差数列D(i)の全てについて調べ終わったかどうかを判定する。この判定が真の場合、処理はステップＳ１３１３に流れ、EndPosに処理Ａにて検出したPeakPosの値を代入する。続くステップＳ１３１４では、StartPos、EndPos、PeakPosの値をそれぞれSP(m), EP(m), PP(m)に格納するとともに、ｍを１増加させて終了する。
【００７７】
一方、ステップＳ１３０７の判定が偽の場合には、後述する処理Ｂを実行し、その後、処理はステップＳ１３０８に流れ、StartPos、EndPos、PeakPosの値をそれぞれSP(m), EP(m), PP(m)に格納するとともに、ｍを１増加させ、ステップＳ１３１０に進む。
【００７８】
ステップＳ１３０９ではD(0)の値が正か負かを判定している。条件が偽、すなわちD(0)が負であるということは、ヒストグラム概形の左端が減少しているということに対応する。この場合は、処理はステップＳ１３１５に流れる。一方、条件が真の場合には、処理はステップＳ１３１０に流れる。
【００７９】
ステップＳ１３１０は、差数列の全てを調べ終わったかどうかの判定であり、条件が真の場合には差数列全てを調べ終わったので処理は終了する。偽の場合は図１３中にＡで示される処理を行い、さらに処理はステップＳ１３１１に流れる。
【００８０】
ステップＳ１３１１は、差数列の全てを調べ終わったかどうかの判定であり、条件が真の場合には差数列全てを調べ終わったことになる。この場合、処理Ａで検出した領域を領域情報として出力するために処理はＳ１３１４に流れる。偽の場合は図１３中にＢで示される処理を行い、さらに処理はステップＳ１３１２に流れる。
【００８１】
ステップＳ１３１２は処理Ａと処理Ｂによって検出した領域を領域情報として出力するステップＳ１３１４と同じ処理に加えて、ＫをEndPos+1に更新し、その後処理はステップＳ１３１０に戻る。
【００８２】
図１４は図１３中の処理Ａを示すフローチャートである。
【００８３】
ステップＳ１４０１は変数の初期化を行う。変数Ｘはインデックス変数で、Ｋで初期化する。また、領域の開始位置を表すStartPos変数にＫを代入する。
【００８４】
続くステップＳ１４０２は、差数列D(i)の全てを調べ終わったかどうかの判定で、判定が真の場合には処理はＳ１４０６に流れ、PeakPosにEndLevelを代入して処理Ａは終了する。判定が偽の場合には、処理はステップＳ１４０２に流れる。
【００８５】
ステップＳ１４０２はD(X)の値を調べる。処理Ａは単調増加の領域を検出する処理なので、D(X)が負となった場合処理はＳ１４０５に流れ終了する。D(X)が０もしくは正の場合には、ステップＳ１４０３でＸの値を１増し、ステップＳ１４０２に戻る。
【００８６】
ステップＳ１４０５はD(X)＜０となるＸを検出した場合に行われる処理で、PeakPosにX-1を代入し、処理Ａは終了する。
【００８７】
図１５は図１３中の処理Ｂを示すフローチャートである。
【００８８】
ステップＳ１５０１は変数の初期化を行う。変数Ｘはインデックス変数で、PeakPos+1で初期化する。
【００８９】
続くステップＳ１５０２は、差数列D(i)の全てを調べ終わったかどうかの判定で、判定が真の場合には処理はステップＳ１５０６に流れ、EndPosにEndLevelを代入して処理Ｂは終了する。判定が偽の場合には、処理はステップＳ１５０３に流れる。
【００９０】
ステップＳ１５０３はD(X)の値を調べる。処理Ｂは単調減少の領域を検出する処理なので、D(X)が正となった場合処理はＳ１５０５に流れ、D(X)が０もしくは負の場合には、ステップＳ１５０３でＸの値を１増し、ステップＳ１５０２に戻る。
【００９１】
ステップＳ１５０５はD(X)＞０となるＸを検出した場合に行われる処理で、EndPosにX-1を代入し、処理Ｂは終了する。
【００９２】
以上、図１３、１４、１５を用いて説明したような処理により、図３のステップＳ３０６の粗分割処理が実現される。
【００９３】
以上のようにこの粗分割処理は、平滑処理後のヒストグラムを、単調増加領域から単調減少領域までの区間を山部領域として粗分割する。
【００９４】
図７はステップＳ３０６の粗分割処理による分割結果の例を示す図である。この例では、図６に示したヒストグラムが、粗分割処理により０〜Ｐ、Ｐ〜Ｑ、Ｑ〜２５５の３つの領域に分割されたことを示している。
【００９５】
ステップＳ３０６の粗分割処理に続いて、ステップＳ３０７の平坦部分割処理を行う。
【００９６】
図７の場合を例に説明する。図７のようにステップＳ３０６の粗分割処理によってヒストグラムが０〜Ｐ、Ｐ〜Ｑ、Ｑ〜２５５の領域に分割されたとする。この場合、図１３のフローチャートで説明した仮領域の数ｍ、領域の開始点および終了点を表す変数列SP(j)、EP(j)（０≦ｊ＜ｍ）はそれぞれ、
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
となっている。この３つの領域のそれぞれについて、各領域の左右側からそれぞれ平坦な部分があるかどうか判定し、ある場合にはそれを平坦部として仮領域から切り分ける。また隣接する平坦部を１つの領域に併合する。
【００９７】
これも差数列D(i)から算出することが可能である。実験では、探査開始位置から度数が＋３以下、レベル範囲が５以上の領域を平坦部とすることにより良好な結果が得られた。
【００９８】
このように本実施形態では、先に決定した仮領域の左右から比較的平坦な部分を検出することで平坦部を切り出すようにしたが、別の方法、例えば、ヒストグラム形状を近似する曲線を算出して変曲点を算出する、等の処理であってもよい。
【００９９】
図８は、図７で例示したヒストグラムおよび粗分割結果に対して、平坦部分割処理を施した後の状態を表す図である。図７に比べて、図７の領域０〜Ｐが平坦部０〜Ｒと山部Ｒ〜Ｐに、領域Ｐ〜Ｑが山部Ｐ〜Ｓと平坦部Ｓ〜Ｑに分割されていることがわかる。
【０１００】
続くステップＳ３０８の山部統合処理は、隣接する山部を調べ、必要に応じてそれらを統合する処理である。
【０１０１】
図１６はこの山部統合処理を説明するための図である。図８で先に示したような分割状態で、今隣接する山部Ｒ〜Ｐと山部Ｐ〜Ｓの統合を判定するものとする。本実施形態では、山部Ｒ〜Ｐで度数が最大となるレベルp1、山部Ｐ〜Ｓで度数が最大となるレベルp2をヒストグラムを参照して算出する。本実施形態では原ヒストグラムH(i)の区間Ｒ〜Ｐ、Ｐ〜Ｓに対して各レベルの度数を調べるように構成した。また、H(p1)とH(p2)のうち大きな方をｆとする（図１６の場合、ｆ＝H(p1)）。このとき、次式（６）に従い値S1, S2を算出する。
【０１０２】
2004200808.tif 000005
【０１０３】
さらに、S2/S1を算出し、予め定めておいた閾値Sthと比較し、S2/S1が閾値Sthより大きい場合には、隣接する山部を統合し一つの山部領域とする。逆に、S2/S1が閾値Sth以下の場合には、2つの山部は独立した山部であるとして統合を行わないとすることにより統合判定を実現した。実験では、閾値Sthを0.7程度にすることで良好な結果が得られた。
【０１０４】
これは、図１６の四角形１６０１における部分ヒストグラム１６０２の面積が占める割合が閾値を超えるか否かによって判別していることに相当する。つまりこの処理は、隣接する２つの山部領域それぞれの最大度数となる輝度レベルで挟まれる区間における度数がすべて、それら２つの最大度数のうち大きい方の最大度数であるとしたときのヒストグラム面積における、当該区間における実際のヒストグラム面積が占める割合に基づいて、当該２つの山部領域を１つの山部領域に統合する処理であるといえる。
【０１０５】
ここで閾値との比較でS2/S1が閾値Sthと一致した場合には領域統合を行わないようにしたが、等号成立の場合どちらにするかということは本質的な問題ではない。また、閾値の値もこれの他の値であっても構わない。また、四角形1601ではなく、レベルp1、p2とH(p1)、H(p2)が決定する台形と部分波形1602との比を、閾値と比較することによって決定するような変形も容易に可能である。
【０１０６】
また、本実施形態では原ヒストグラムH(i)を用いたが、正規化後のヒストグラムHN(i)や平滑化後のHS(i)、差数列D(i)あるいは小変位除去処理後の差数列D(i)より再構成したヒストグラムを用いるように構成することも可能である。
【０１０７】
図９は、図１６の例で山部Ｒ〜Ｐと山部Ｐ〜Ｓを上記判定により領域統合したようすを示している。
【０１０８】
以上説明したような解析処理の結果、ヒストグラムの形状に基づいて詳細なレベル領域分割が行われ、図９の例の場合、
・平坦部０〜Ｒ
・山部Ｒ〜Ｓ
・平坦部Ｓ〜Ｑ
・山部Ｑ〜２５５
の各領域を得ることができる。
【０１０９】
次に、ステップＳ２０４で行われる画像補正処理について詳細に説明する。
【０１１０】
図１７は、ステップＳ２０４の画像補正処理を示すフローチャートである。
【０１１１】
まず、ステップＳ１７０１で逆光かどうかの判定を行う。逆光で撮影された画像の場合、その画像の明るさに関するヒストグラム（例えば輝度）ではその最大レベルにヒストグラムの山があるとともに、それに比べ暗いレベルに１つ以上山がある。また、最大レベルの山と暗いレベルの山の間のレベル範囲では比較的小数度数のヒストグラムの平坦部がある。多くの場合、画像の主被写体は暗いレベルの山に含まれる。逆に最大レベルの山は撮影時の逆光の光源、あるいはその周辺に相当する画素からなり、画像としては情報がほとんどない。したがって、この暗いレベルの山を明るい方向に移動するような補正を行えば良好な画像が得られることになる。
【０１１２】
そこで本実施形態では、画像解析処理で得られた領域分割結果において、
・２つ以上の山部領域がある
・最も明るい山部領域は、最大レベルを含む領域である
・２番目に明るい山部領域と、最も明るい山部領域の間に平坦部がある
という条件が全て成立した場合、その画像を逆光画像であるとするものとする。これは画像解析処理で得られた各領域情報の範囲と種類（山部／平坦部）を参照することで容易に判定することができる。
【０１１３】
あるいは、さらに最も明るい側の山部の大きさ（ヒストグラムグラフ上での面積）に対して閾値処理を施し、その結果を逆光画像か否かの判断基準の１つとしてもよい。
【０１１４】
ステップＳ１７０２は、ステップＳ１７０１での判定結果による処理分岐で、逆光でないと判定された場合は処理は終了する。一方、逆光であると判定された場合、処理はステップＳ１７０３に流れる。
【０１１５】
ステップＳ１７０３では補正パラメータの算出を行う。本実施形態では、後述する補正処理に応じて、２番目に明るい山部領域の最大レベルを算出する。これは図９の例の場合、高輝度側から２番目の山部の領域である山部Ｒ〜Ｓの最大レベルとしてＳを得る。
【０１１６】
続くＳ１７０４では補正量を算出する。本実施形態ではγ曲線による画像補正（γ補正）を行うものとして、ステップＳ１７０４では補正に用いるγ曲線を決定して算出する。γ補正の式は次のとおりである。
【０１１７】
ｙ＝ｘ1/γ            （７）
ただし、ｘは補正前の入力信号、ｙは補正後の出力信号である。
【０１１８】
本実施形態では、γ補正のγ値を決定するために図１８で示すような方法により算出する。
【０１１９】
図１８で１８０１は図９の解析結果を表す図と同一のものである。ステップＳ１７０３で２番目に明るい山部領域の最大レベルＳを得た。このレベルＳの入力信号が目標レベルＴとなるようにγ曲線１８０２のγ値を算出する。このγ値の算出は、式（６）を変形した式（７）のｘ，ｙにそれぞれＳ，Ｔを代入することによって算出される。
【０１２０】
γ＝logｘ/logｙ            （８）
【０１２１】
目標レベルＴの決定は本実施形態では、次の式（９）により行う。
【０１２２】
Ｔ＝Ｓ＋(255−Ｓ）×c1            （９）
【０１２３】
c1は補正強度を制御するパラメータで、実験では0.33〜0.5程度の値で良好な結果が得られた。もちろん、実験結果やチューニングによっては他の値を用いることも考えられる。この補正により、主被写体が写っているレベル範囲０〜Ｓを明るくするような補正曲線を算出することができる。補正曲線は予め０〜255の入力各レベルに対して出力値を計算し、ルックアップテーブル（ＬＵＴ）の形でＲＡＭ１０６などに記憶される。
【０１２４】
このように、Ｓ〜255の間に目標レベルＴを設定し、レベルＳとレベルＴを用いてγ値が適応的に決定される。
【０１２５】
そして、ステップＳ１７０５で、画像を１画素ずつ読み込み、各画素に対してステップＳ１７０４で算出したＬＵＴを適用する。本実施形態では、入力画像の各画素に対して、次の式（10）で示す行列演算を施し、入力ＲＧＢ信号をＹＣｂＣｒ信号に変換し、Ｙ信号に対してＬＵＴによる補正を適用した後に、式（11）で示す行列演算で出力Ｒ’Ｇ’Ｂ’信号にし、逆光補正画像を得る。
【０１２６】
2004200808.tif 000006
【０１２７】
補正後のＲＧＢ信号が負の値や255を超える場合があるが、その場合はそれぞれ０、255にする（クリップ処理）ようにすれば良い。あるいは出力システムによっては、負の値や255を超える値を扱える場合があるが、その場合には特にクリップ処理は必要ない。
【０１２８】
また、出力システムによってはＹＣｂＣｒ信号を直接扱える場合があるが、その場合には特にＹＣｂＣｒからＲＧＢへの変換は必要ない。
【０１２９】
本実施形態では、各画素のＲＧＢ信号をＹＣｂＣｒ信号に変換してＹ信号に対してＬＵＴによる補正を施してＲＧＢ信号に戻したが、各画素のＲＧＢ値にそれぞれステップＳ１７０４で算出したＬＵＴを適用して逆光補正画像を得るようにしてもよい。
【０１３０】
以上説明したように、本発明によれば画像の輝度ヒストグラムを詳細に解析し、逆光判定を行い、さらに判定結果として逆光画像と判定された場合に、その画像明るさの分布の状態にあわせて好適に逆光補正を行うことが可能となる。
【０１３１】
（実施形態２）
上述した実施形態１では、２番目に明るい山部の最大レベルＳを用いてγ値を決定したが、本実施形態ではレベルＳ〜２５５のヒストグラム面積（すなわち、その範囲の画素数）に応じてγ値を決定する。
【０１３２】
図１７のステップＳ１７０３による補正パラメータ算出でＳを算出した後に、レベル範囲Ｓ〜２５５におけるヒストグラム面積を得る。ヒストグラム面積SHは次の式（12）で求められる。
【０１３３】
2004200808.tif 000007
【０１３４】
ここで、ヒストグラムH(i)のかわりに、正規化ヒストグラムHN(i)を用いてもよい。
【０１３５】
本実施形態では、ヒストグラム面積SHが小さいほど、Ｔ〜255間を狭くするように次の式（13）によってＴを決定する。
【０１３６】
Ｔ＝255−(255−Ｓ）×SH        （13）
【０１３７】
このように、Ｓ〜255の間のヒストグラム面積SHに応じて目標レベルＴを設定して、レベルＳとレベルＴを用いてγ値が適応的に決定される。
【０１３８】
実施形態２によれば、高輝度側の画素数に応じて適応的に階調特性を補正することができる。
【０１３９】
（実施形態３）
上述した実施形態１，２では単純なγ曲線による補正について説明したが、ここでは複数の補正曲線の合成による補正方式を用いる実施形態について説明する。
【０１４０】
図１７のステップＳ１７０３において、実施形態１または２で説明した処理に加え、２番目に明るい山部の参照レベルを算出する。参照レベルは、続く補正量決定処理で用いるもので、２番目に明るい山部Ｒ〜Ｓを代表するレベル値である。本実施形態では参照レベル値として、原ヒストグラムの山部Ｒ〜Ｓのレベル範囲の平均値ａｖｅを用いるものとする。この他にも山部Ｒ〜Ｓの中央値や度数が最大のレベル値などを用いてもよい。
【０１４１】
続くステップＳ１７０４では、以下に説明する方法で補正量を決定する。
【０１４２】
図１９、図２０は補正曲線の例を表す図である。
【０１４３】
まず、図１９の１９０１で表される曲線を決定する。これは、座標（０，０）と（Ｓ，Ｔ）とを結ぶ直線と、（Ｓ，Ｔ）と（255，255）とを結ぶ直線で構成される。Ｔの算出は、実施形態１で用いた式（９）に従うものとする。
【０１４４】
続いて、図２０の２００１で表される曲線を決定する。曲線２００１は実施形態１、２で説明したγ曲線であるが、次式で算出される値Ｔ２とａｖｅを用い、式（８）のｘにａｖｅを、ｙにＴ１を代入して算出する。
【０１４５】
Ｔ２＝ａｖｅ＋（Ｔｇｔ−ａｖｅ）×ｃ２        （14）
ただし、Ｔｇｔは主被写体が写っていると推測される２番目に明るい山部の補正後の明るさの目標値である。
【０１４６】
主被写体が人物、特に顔であるとすると、レベル最大値（255）の６０％〜８０％程度が好ましいので、その範囲で予め定めておく。実験では７０％程度の値を用いて良好な結果が得られた。
【０１４７】
画像の主被写体が人物であるかどうかは必ずしも必要な判定ではなく本発明の主眼ではないが、必要であれば公知の顔検出技術を予め適用しておくことで判定可能である。あるいは、入力画像が公知のＥｘｉｆフォーマットによる画像である場合にはＥｘｉｆのタグ（Ｔａｇ）に格納されている情報（例えば撮影シーンタイプ等）や、カメラのメーカ固有情報（メーカーノート）を参照して、撮影時カメラのセッティングが人物撮影用セッティングであったか等判定することも考えられる。
【０１４８】
Ｃ２は補正強度を制御するパラメータであり、実験では０．３３〜０．５程度で良好な結果を得た。式（14）は目標に対して明るさを近づけるようにγ曲線を決定する式である。直接目標値を使っていないのは、あまりγ値を大きくすると画像全体の階調性が損なわれてしまうためである。Ｃ２の値は実験結果やチューニングによっては他の値を用いてもよい。
【０１４９】
補正曲線は１９０１、２００１はそれぞれ予め０〜２５５の入力各レベルに対して出力値を計算し、ルックアップテーブル（ＬＵＴ）の形でＲＡＭ１０６などに記憶される。
【０１５０】
続くＳ１７０５では、画像の各画素に対して補正曲線１９０１、２００１を順次適用して補正結果を得る。
【０１５１】
本実施形態によれば、実施形態１，２に比べ、主被写体が人物である逆光画像に対して良好な補正結果が得られるという特徴がある。
【０１５２】
（他の実施形態）
以上、本発明の実施形態を詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用してもよい。
【０１５３】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータがその供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。その場合、プログラムの機能を有していれば、その形態はプログラムである必要はない。
【０１５４】
従って、本発明の機能処理をコンピュータで実現するために、そのコンピュータにインストールされるプログラムコード自体も本発明を実現するものである。
つまり、本発明の特許請求の範囲には、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１５５】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１５６】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【０１５７】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、そのホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明のクレームに含まれるものである。
【０１５８】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１５９】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１６０】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【０１６１】
本発明は、以上説明した実施態様に従えば以下の構成を特徴とする。
【０１６２】
（実施態様１）  実施態様１は、入力した画像から算出した輝度ヒストグラムに基づいてその画像の補正を行う画像処理方法であって、
前記算出した輝度ヒストグラムの概略形状を解析する解析ステップと、
前記輝度ヒストグラムの解析結果に基づいて、前記画像の補正量を算出する補正量算出ステップと、
算出した補正量に基づいて前記画像の補正を行う補正ステップと、
を有することを特徴とする。
（実施態様２）  実施態様１において、前記解析ステップは、
前記輝度ヒストグラムを平滑化する平滑化ステップと、
平滑化した輝度ヒストグラムを、山部領域と平坦部領域とに分割する分割ステップと、
を含むことを特徴とする。
（実施態様３）  実施態様２において、前記平滑化ステップは、
前記輝度ヒストグラムを正規化する正規化ステップと、
正規化された輝度ヒストグラムを移動平均法により平均化する平均化ステップと、
平均化された輝度ヒストグラムの小変位を除去する小変位除去ステップと、
を含むことを特徴とする。
（実施態様４）  実施態様２において、前記分割ステップは、
前記平滑化ステップで平滑化された輝度ヒストグラムを、単調増加領域から単調減少領域までの区間を山部領域として粗分割する粗分割ステップと、
前記粗分割ステップで得られた各山部領域における平坦部領域を更に分割する平坦部分割ステップと、
隣接する２つの山部領域それぞれの最大度数となる輝度レベルで挟まれる区間における度数がすべて、それら２つの最大度数のうち大きい方の最大度数であるとしたときのヒストグラム面積における、当該区間における実際のヒストグラム面積が占める割合に基づいて、当該２つの山部領域を１つの山部領域に統合する統合ステップと、
を含むことを特徴とする。
（実施態様５）  実施態様２において、前記分割ステップでの分割結果に基づいて前記画像が逆光か否かを判定する判定ステップを更に有し、
前記判定ステップで逆光と判定されたときに、前記補正量算出ステップおよび補正ステップを実行することを特徴とする。
（実施態様６）  実施態様５において、前記判定ステップは、前記分割ステップによる分割の結果、山部領域が２つ以上あり、かつ、輝度の最も明るい側にある第１の山部領域が最大輝度レベルＭを含み、かつ、輝度の明るい側から２つ目にある第２の山部領域と前記第１の山部領域との間に平坦部領域があるときに、前記画像が逆光であると判定することを特徴とする。
（実施態様７）  実施態様６において、前記補正量算出ステップは、前記第２の山部領域における最大輝度レベルＳと前記最大輝度レベルＭとの間に目標レベルＴを設定し、入力レベルが前記第２の山部領域における最大輝度レベルＳであるときの出力レベルが前記目標レベルＴとなるγ曲線を算出することを特徴とする。
（実施態様８）  実施態様７において、前記目標レベルＴを、前記第２の山部領域における最大輝度レベルＳと前記最大輝度レベルＭとの２分値に設定することを特徴とする。
（実施態様９）  実施態様８において、前記目標レベルＴを、前記第２の山部領域における最大輝度レベルＳ以上におけるヒストグラム面積に基づいて設定することを特徴とする。
（実施態様１０）  実施態様６において、前記補正量算出ステップは、
前記第２の山部領域に係る所定の参照レベルを算出するステップと、
入力が最小輝度レベルから前記第２の山部領域における最大輝度レベルＳまでの範囲では、出力が最小輝度レベルから前記目標レベルＴの範囲の値をとり、入力が前記第２の山部領域における最大輝度レベルＳより大きい範囲では、出力が前記目標レベルＴから前記最大輝度レベルまでの範囲の値をとる、第１の補正曲線を算出するステップと、
前記参照レベルと所定の目標レベルＴ’とに基づいて第２の補正曲線を算出するステップと、
を有することを特徴とする。
（実施態様１１）  実施態様１０において、前記第２の補正曲線は、入力レベルが前記参照レベルであるときの出力レベルが前記目標レベルＴ’となるγ曲線であることを特徴とする。
（実施態様１２）  入力した画像から算出した輝度ヒストグラムに基づいてその画像の補正を行う画像処理装置であって、
前記算出した輝度ヒストグラムの概略形状を解析する解析手段と、
前記輝度ヒストグラムの解析結果に基づいて、前記画像の補正量を算出する補正量算出手段と、
算出した補正量に基づいて前記画像の補正を行う補正手段と、
を有することを特徴とする画像処理装置。
（実施態様１３）  実施態様１３のプログラムは、コンピュータに、
入力した画像から輝度ヒストグラムを算出するステップ、
前記算出した輝度ヒストグラムの概略形状を解析する解析ステップ、
前記輝度ヒストグラムの解析結果に基づいて、前記画像の補正量を算出する補正量算出ステップ、
算出した補正量に基づいて前記画像の補正を行う補正ステップ、
を実行させる。
【０１６３】
【発明の効果】
本発明によれば、より十分な効果が得られる補正処理を実現することができる。
【図面の簡単な説明】
【図１】実施形態における画像処理装置の構成を示すブロック図である。
【図２】実施形態における画像処理を示すフローチャートである。
【図３】実施形態における画像解析処理を示すフローチャートである。
【図４】実施形態における正規化ヒストグラムの一例を示す図である。
【図５】実施形態における平滑化処理後のヒストグラムの一例を示す図である。
【図６】実施形態における小変位除去処理後のヒストグラムの一例を示す図である。
【図７】実施形態における粗分割処理の結果を示す図である。
【図８】実施形態における平坦部分割処理の結果を示す図である。
【図９】実施形態における山部統合処理の結果を示す図である。
【図１０】実施形態における小変位除去処理を説明する図である。
【図１１】実施形態における小変位除去処理を説明する図である。
【図１２】実施形態における小変位除去処理を示すフローチャートである。
【図１３】実施形態における粗分割処理を示すフローチャートである。
【図１４】実施形態における粗分割処理を示すフローチャートである。
【図１５】実施形態における粗分割処理を示すフローチャートである。
【図１６】実施形態における山部統合処理を説明するための図である。
【図１７】実施形態における画像補正処理を示すフローチャートである。
【図１８】実施形態における補正曲線を求める方法を説明する図である。
【図１９】実施形態における補正曲線を求める方法を説明する図である。
【図２０】実施形態における補正曲線を求める方法を説明する図である。
【図１】
2004200808.tif 000008
【図２】
2004200808.tif 000009
【図３】
2004200808.tif 000010
【図４】
2004200808.tif 000011
【図５】
2004200808.tif 000012
【図６】
2004200808.tif 000013
【図７】
2004200808.tif 000014
【図８】
2004200808.tif 000015
【図９】
2004200808.tif 000016
【図１０】
2004200808.tif 000017
【図１１】
2004200808.tif 000018
【図１２】
2004200808.tif 000019
【図１３】
2004200808.tif 000020
【図１４】
2004200808.tif 000021
【図１５】
2004200808.tif 000022
【図１６】
2004200808.tif 000023
【図１７】
2004200808.tif 000024
【図１８】
2004200808.tif 000025
【図１９】
2004200808.tif 000026
【図２０】
2004200808.tif 000027