(57)【特許請求の範囲】
【請求項１】
明るさの変換を行う画像処理装置において、
前記明るさの値を少なくとも４つの範囲に分割し、当該分割した数の階級数を有するヒストグラムと、
前記階級数より１つ少ない数であって、前記明るさの値において規定される少なくとも暗部、中間部、および、明部である複数の明るさ部と、
が設定され、
画像処理を行う原画像の入力を受け付ける原画像入力手段と、
前記原画像から、前記明るさの変換を行う画素を順次特定する画素特定手段と、
前記特定された画素に応じて順次移動し、前記特定された画素を有する前記原画像の一部を含み、前記ヒストグラムを求めるための局所領域を設定する局所領域設定手段と、
前記ヒストグラムであって、前記局所領域における明るさに関する局所ヒストグラムを算出する局所ヒストグラム算出手段と、
前記局所ヒストグラムを累積して局所累積ヒストグラムを算出する局所累積ヒストグラム算出手段と、
前記明るさの値の関数であって、前記各明るさ部における前記局所累積ヒストグラムの階級の明るさの値および当該階級の累積度数値の近傍を通る各明るさ部の単調増加関数を決定する単調増加関数決定手段と、
前記明るさの値の関数であって、前記各明るさ部において極大値を有する各明るさ部の重み関数を決定する重み関数決定手段と、
前記各明るさ部の重み関数により重み付けされた前記各単調増加関数から、前記画素の明るさの変換関数を生成する変換関数生成手段と、
前記変換関数により前記画素の明るさを変換する変換手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記単調増加関数決定手段が、前記各単調増加関数をガンマ補正関数に決定することを特徴とする画像処理装置。
【請求項３】
請求項１または請求項２に記載の画像処理装置において、
前記単調増加関数決定手段が、前記各単調増加関数を１次関数に決定することを特徴とする画像処理装置。
【請求項４】
請求項１から請求項３のいずれか１項に記載の画像処理装置において、
前記局所ヒストグラム算出手段が、前記原画像の情報に基づき前記局所ヒストグラムの階級の幅を設定し、前記設定された前記局所ヒストグラムの階級の幅に基づき前記局所ヒストグラムを算出することを特徴とする画像処理装置。
【請求項５】
請求項４に記載の画像処理装置において、
前記局所ヒストグラム算出手段が、前記原画像における明るさに関するヒストグラムに基づき前記局所ヒストグラムの階級の幅を設定し、前記設定された前記局所ヒストグラムの階級の幅に基づき前記局所ヒストグラムを算出することを特徴とする画像処理装置。
【請求項６】
請求項１から請求項５のいずれか１項に記載の画像処理装置において、
前記変換関数生成手段が、前記各明るさ部の重み関数により重み付けされた前記各単調増加関数を加算して前記変換関数を生成することを特徴とする画像処理装置。
【請求項７】
請求項１から請求項６のいずれか１項に記載の画像処理装置において、
前記重み関数決定手段が、前記各明るさ部の重み関数の重なりの割合を変えることを特徴とする画像処理装置。
【請求項８】
請求項１から請求項７のいずれか１項に記載の画像処理装置において、
前記局所累積ヒストグラムの階級における累積度数値を調節する局所累積ヒストグラム調節手段を更に備えることを特徴とする画像処理装置。
【請求項９】
請求項８に記載の画像処理装置において、
前記局所累積ヒストグラム調節手段が、前記局所累積ヒストグラムの階級における累積度数値の上限および下限を設定することにより、前記累積度数値を調節することを特徴とする画像処理装置。
【請求項１０】
明るさの変換を行う画像処理方法において、
前記明るさの値を少なくとも４つの範囲に分割し、当該分割した数の階級数を有するヒストグラムと、
前記階級数より１つ少ない数であって、前記明るさの値において規定される少なくとも暗部、中間部、および、明部である複数の明るさ部と、
が設定され、
画像処理を行う原画像の入力を受け付ける原画像入力ステップと、
前記原画像から、明るさの変換を行う画素を順次特定する画素特定ステップと、
前記特定された画素に応じて順次移動し、前記特定された画素を有する前記原画像の一部を含み、前記ヒストグラムを求めるための局所領域を設定する局所領域設定ステップと、
前記ヒストグラムであって、前記局所領域における明るさに関する局所ヒストグラムを算出する局所ヒストグラム算出ステップと、
前記局所ヒストグラムを累積して局所累積ヒストグラムを算出する局所累積ヒストグラム算出ステップと、
前記明るさの値の関数であって、前記各明るさ部における前記局所累積ヒストグラムの階級の明るさの値および当該階級の累積度数値の近傍を通る各明るさ部の単調増加関数を決定する単調増加関数決定ステップと、
前記明るさの値の関数であって、前記明るさ部において極大値を有する各明るさ部の重み関数を決定する重み関数決定ステップと、
前記各明るさ部の重み関数により重み付けされた前記各単調増加関数から、前記画素の明るさの変換関数を生成する変換関数生成ステップと、
を備えることを特徴とする画像処理方法。
【請求項１１】
明るさの変換を行う画像処理装置用プログラムであって、
明るさの値を少なくとも４つの範囲に分割し、当該分割した数の階級数を有するヒストグラムと、
前記階級数より１つ少ない数であって、前記明るさの値において規定される少なくとも暗部、中間部、および、明部である複数の明るさ部と、
が設定され、
コンピュータを、
画像処理を行う原画像の入力を受け付ける原画像入力手段、
前記原画像から、明るさの変換を行う画素を順次特定する画素特定手段、
前記特定された画素に応じて順次移動し、前記特定された画素を有する前記原画像の一部を含み、前記ヒストグラムを求めるための局所領域を設定する局所領域設定手段、
前記ヒストグラムであって、前記局所領域における明るさに関する局所ヒストグラムを算出する局所ヒストグラム算出手段、
前記局所ヒストグラムを累積して局所累積ヒストグラムを算出する局所累積ヒストグラム算出手段、
前記明るさの値の関数であって、前記各明るさ部における前記局所累積ヒストグラムの階級の明るさの値および当該階級の累積度数値の近傍を通る各明るさ部の単調増加関数を決定する単調増加関数決定手段、
前記明るさの値の関数であって、前記各明るさ部において極大値を有する各明るさ部の重み関数を決定する重み関数決定手段、および、
前記各明るさ部の重み関数により重み付けされた前記各単調増加関数から、前記画素の明るさの変換関数を生成する変換関数生成手段として機能させることを特徴とする画像処理装置用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像に対し階調の画像補正を行う画像処理装置、画像処理方法、および、画像処理用プログラムに関する。
【背景技術】
【０００２】
市販のディジタルスチルカメラ（Digital still camera）および広ダイナミックレンジ（ＲＧＢ各色８ビット以上の表現力を持つ）カメラで撮像された画像の補正技術において、輝度や明度等の明るさの偏りを改善する技術に注目が集まっている。輝度等の偏りを改善するために、処理対象となる画像に対して、単一の輝度特性を用いた補正が主体であり、例えば、輝度特性を補正する関数には、ガンマ補正関数、対数関数、および、ヒストグラム平均化等の統計処理を用いて定義された関数等が用いられている。
【０００３】
また、光ファイバー等のブロードバンドインターネット接続の普及や高精細度テレビジョン放送等の動画等の高解像度化により、ディジタルスチルカメラおよびディジタルビデオカメラ（Digital video camera）といった機器が、数メガピクセルからギガピクセルのように高画質化してきたため、画像処理の高速化が求められるようになってきている。
【０００４】
そのため、高速化で適切に画像のコントラストを強調できるように、例えば、特許文献１には、階調圧縮画像を得るために、以下の画像処理装置が開示されている。この画像処理装置では、広ダイナミックレンジ画像の輝度が対数変換される。次のステップで、対数トーンカーブ補正画像が生成される。次に、対数縮小画像が生成され、さらに、補間演算により、対数平滑化画像の画素の輝度が算出される。そして次のステップで、ゲイン値が各画素位置に対して算出される。次に、対数階調圧縮画像の画素の輝度が算出されて、輝度が対数逆変換される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許４２１４４５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、画像処理の高速化のために、画像全体をブロックに分割し、ブロック毎に処理すると、ブロックノイズが発生してしまう。また、従来の画像補正において、画像内の黒つぶれの部分等を補正する場合、画像において輪郭部分の領域や特定輝度が集中する領域に不自然さが生じることがあり、十分とは言えなかった。
【０００７】
本発明は、上記課題を解決するためになされたものであり、高速化で適切に各画素の明るさを変換できる画像処理装置、画像処理方法、および、画像処理用プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、請求項１に記載の発明は、明るさの変換を行う画像処理装置において、前記明るさの値を少なくとも４つの範囲に分割し、当該分割した数の階級数を有するヒストグラムと、前記階級数より１つ少ない数であって、前記明るさの値において規定される少なくとも暗部、中間部、および、明部である複数の明るさ部と、が設定され、画像処理を行う原画像の入力を受け付ける原画像入力手段と、前記原画像から、前記明るさの変換を行う画素を順次特定する画素特定手段と、前記特定された画素に応じて順次移動し、前記特定された画素を有する前記原画像の一部を含み、前記ヒストグラムを求めるための局所領域を設定する局所領域設定手段と、前記ヒストグラムであって、前記局所領域における明るさに関する局所ヒストグラムを算出する局所ヒストグラム算出手段と、前記局所ヒストグラムを累積して局所累積ヒストグラムを算出する局所累積ヒストグラム算出手段と、前記明るさの値の関数であって、前記各明るさ部における前記局所累積ヒストグラムの階級の明るさの値および当該階級の累積度数値の近傍を通る各明るさ部の単調増加関数を決定する単調増加関数決定手段と、前記明るさの値の関数であって、前記各明るさ部において極大値を有する各明るさ部の重み関数を決定する重み関数決定手段と、前記各明るさ部の重み関数により重み付けされた前記各単調増加関数から、前記画素の明るさの変換関数を生成する変換関数生成手段と、前記変換関数により前記画素の明るさを変換する変換手段と、を備えることを特徴とする。
【０００９】
また、請求項２に記載の発明は、請求項１に記載の画像処理装置において、前記単調増加関数決定手段が、前記各単調増加関数をガンマ補正関数に決定することを特徴とする。
【００１０】
また、請求項３に記載の発明は、請求項１または請求項２に記載の画像処理装置において、前記単調増加関数決定手段が、前記各単調増加関数を１次関数に決定することを特徴とする。
【００１１】
また、請求項４に記載の発明は、請求項１から請求項３のいずれか１項に記載の画像処理装置において、前記局所ヒストグラム算出手段が、前記原画像の情報に基づき前記局所ヒストグラムの階級の幅を設定し、前記設定された前記局所ヒストグラムの階級の幅に基づき前記局所ヒストグラムを算出することを特徴とする。
【００１２】
また、請求項５に記載の発明は、請求項４に記載の画像処理装置において、前記局所ヒストグラム算出手段が、前記原画像における明るさに関するヒストグラムに基づき前記局所ヒストグラムの階級の幅を設定し、前記設定された前記局所ヒストグラムの階級の幅に基づき前記局所ヒストグラムを算出することを特徴とする画像処理装置。
【００１３】
また、請求項６に記載の発明は、請求項１から請求項５のいずれか１項に記載の画像処理装置において、前記変換関数生成手段が、前記各明るさ部の重み関数により重み付けされた前記各単調増加関数を加算して前記変換関数を生成することを特徴とする。
【００１４】
また、請求項７に記載の発明は、請求項１から請求項６のいずれか１項に記載の画像処理装置において、前記重み関数決定手段が、前記各明るさ部の重み関数の重なりの割合を変えることを特徴とする。
【００１６】
また、請求項８に記載の発明は、請求項１から請求項７のいずれか１項に記載の画像処理装置において、前記局所累積ヒストグラムの階級における累積度数値を調節する局所累積ヒストグラム調節手段を更に備えることを特徴とする。
【００１７】
また、請求項９に記載の発明は、請求項８に記載の画像処理装置において、前記局所
累積ヒストグラム調節手段が、前記局所累積ヒストグラムの階級における累積度数値の上限および下限を設定することにより、前記累積度数値を調節することを特徴とする。
【００１８】
また、請求項１０に記載の発明は、明るさの変換を行う画像処理方法において、前記明るさの値を少なくとも４つの範囲に分割し、当該分割した数の階級数を有するヒストグラムと、前記階級数より１つ少ない数であって、前記明るさの値において規定される少なくとも暗部、中間部、および、明部である複数の明るさ部と、が設定され、画像処理を行う原画像の入力を受け付ける原画像入力ステップと、前記原画像から、明るさの変換を行う画素を順次特定する画素特定ステップと、前記特定された画素に応じて順次移動し、前記特定された画素を有する前記原画像の一部を含み、前記ヒストグラムを求めるための局所領域を設定する局所領域設定ステップと、前記ヒストグラムであって、前記局所領域における明るさに関する局所ヒストグラムを算出する局所ヒストグラム算出ステップと、前記局所ヒストグラムを累積して局所累積ヒストグラムを算出する局所累積ヒストグラム算出ステップと、前記明るさの値の関数であって、前記各明るさ部における前記局所累積ヒストグラムの階級の明るさの値および当該階級の累積度数値の近傍を通る各明るさ部の単調増加関数を決定する単調増加関数決定ステップと、前記明るさの値の関数であって、前記明るさ部において極大値を有する各明るさ部の重み関数を決定する重み関数決定ステップと、前記各明るさ部の重み関数により重み付けされた前記各単調増加関数から、前記画素の明るさの変換関数を生成する変換関数生成ステップと、を備えることを特徴とする。
【００１９】
また、請求項１１に記載の発明は、明るさの変換を行う画像処理装置用プログラムであって、明るさの値を少なくとも４つの範囲に分割し、当該分割した数の階級数を有するヒストグラムと、前記階級数より１つ少ない数であって、前記明るさの値において規定される少なくとも暗部、中間部、および、明部である複数の明るさ部と、が設定され、コンピュータを、画像処理を行う原画像の入力を受け付ける原画像入力手段、前記原画像から、明るさの変換を行う画素を順次特定する画素特定手段、前記特定された画素に応じて順次移動し、前記特定された画素を有する前記原画像の一部を含み、前記ヒストグラムを求めるための局所領域を設定する局所領域設定手段、前記ヒストグラムであって、前記局所領域における明るさに関する局所ヒストグラムを算出する局所ヒストグラム算出手段、前記局所ヒストグラムを累積して局所累積ヒストグラムを算出する局所累積ヒストグラム算出手段、前記明るさの値の関数であって、前記各明るさ部における前記局所累積ヒストグラムの階級の明るさの値および当該階級の累積度数値の近傍を通る各明るさ部の単調増加関数を決定する単調増加関数決定手段、前記明るさの値の関数であって、前記各明るさ部において極大値を有する各明るさ部の重み関数を決定する重み関数決定手段、および、前記各明るさ部の重み関数により重み付けされた前記各単調増加関数から、前記画素の明るさの変換関数を生成する変換関数生成手段として機能させることを特徴とする。
【発明の効果】
【００２０】
本発明によれば、計算量を削減するためヒストグラムの階級を粗くしても、重み関数により重み付けされた各単調増加関数から、局所累積ヒストグラムに対応した変換関数が得られるため、高速化で適切に各画素の明るさを変換できる画像処理装置、画像処理方法、および、画像処理用プログラムを提供できる。
【図面の簡単な説明】
【００２１】
【図１】本発明の第１実施形態に係る画像処理装置の概要構成例を示すブロック図である。
【図２】図１の画像処理部の局所ヒストグラム算出手段の概要構成例を示すブロック図である。
【図３】図２に示したＹ方向の１階加算処理部の概要構成例を示すブロック図である。
【図４】図２に示したＸ方向の１階加算処理部の概要構成例を示すブロック図である。
【図５】図１の画像処理装置における動作例を示すフローチャートである。
【図６Ａ】図１の画像処理装置により画像処理をする原画像の一例を示す模式図である。
【図６Ｂ】図６Ａの原画像を画像処理した画像の一例を示す模式図である。
【図７Ａ】図６Ａの原画像において、輝度の変換を行うある画素を中心とした局所領域の一例を示す模式図である。
【図７Ｂ】図７Ａの局所領域における局所ヒストグラムの一例を示す線図である。
【図８】図７Ｂの局所ヒストグラムに対する局所累積ヒストグラムの一例を示す線図である。
【図９】図６の局所累積ヒストグラムの各階級におけるガンマ補正関数の一例を示す線図である。
【図１０】図９のガンマ補正関数に対する重み関数の一例を示す線図である。
【図１１】図９のガンマ補正関数と、図１０の重み関数とより生成された輝度変換関数の一例を示す線図である。
【図１２】図１１の輝度変換関数を生成の様子を示す模式図である。
【図１３】単調増加関数の第１の変形例を示す線図である。
【図１４Ａ】単調増加関数の第２の変形例を示す線図である。
【図１４Ｂ】中間部の階級におけるガンマ補正関数の頂点の範囲を示す模式図である。
【図１５】重み関数の変形例を示す線図である。
【図１６】本発明に係る第２実施形態の原理を説明するため、異なる局所領域における局所累積ヒストグラムの一例を示す模式図である。
【図１７】本発明の第２実施形態に係る画像処理装置における動作例を示すフローチャートである。
【図１８】局所累積ヒストグラムの累積度数値が取り得る範囲の一例を示す線図である。
【図１９】局所累積ヒストグラムの累積度数値が取り得る範囲の制御を示す模式図である。
【図２０】暗部の階級に対応する入力輝度値におけるガンマ補正関数を示す模式図である。
【図２１】中間部の階級に対応する入力輝度値におけるガンマ補正関数を示す模式図である。
【図２２】明部の階級に対応する入力輝度値におけるガンマ補正関数を示す模式図である。
【図２３】輝度のオフセットが調節された局所累積ヒストグラムを示す模式図である。
【図２４】輝度変換前の原画像の一例を示す模式図である。
【図２５Ａ】輝度変換後の画像の一例を示す模式図である。
【図２５Ｂ】輝度変換後の画像の一例を示す模式図である。
【図２５Ｃ】輝度変換後の画像の一例を示す模式図である。
【図２６】本発明の第３実施形態に係る画像処理装置の画像処理部の概要構成例を示すブロック図である。
【図２７】図２６の画像処理部における動作例を示すフローチャートである。
【図２８Ａ】階級幅の設定変更前の局所ヒストグラムの一例を示す模式図である。
【図２８Ｂ】階級幅の設定変更後の局所ヒストグラムの一例を示す模式図である。
【図２９】輝度変換前の原画像および局所領域の一例を示す模式図である。
【図３０】本発明に係る画像処理プログラムを実行するコンピュータの概要構成の一例を示すブロック図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照して本発明を実施するための形態について説明する。
【００２３】
（第１実施形態）
まず、本発明に係る第１実施形態に係る画像処理装置の概要構成および機能について、図に基づき説明する。
【００２４】
図１は、本発明の第１実施形態に係る画像処理装置の概要構成例を示すブロック図である。
【００２５】
図１に示すように、画像処理装置１は、画像処理用のＬＳＩ（Large Scale Integration）であり、各種の演算を行うＣＰＵ（Central Processing Unit）部２と、専用の画像処理を行う画像処理部３と、画像データ等を記憶する記憶部４と、処理される画像データを入力して処理結果を出力する入出力部（Ｉ／Ｏ）５と、を備える。これら各部は、画像処理装置１において、同一ダイ上に集積され、内部バス（図示せず）に接続されている。
【００２６】
ＣＰＵ部２は、演算装置やレジスタ等を有し、各種のプログラムを実行したり、入出力部５を通したデータの入手力を制御したり、画像処理部３に画像処理の指令したり、画像処理装置１外部のメインメモリ等を制御する。
制御したりする。
【００２７】
画像処理部３は、論理回路や、ラインメモリやシフトレジスタ等を有し、原画像から、輝度や明度等の明るさの変換を行う画素を中心とした局所領域を抽出したり、局所領域における明るさに関する局所ヒストグラムを算出したり、画素の明るさの変換関数を生成したり等、ＣＰＵ部２からの指令に従い専用の画像処理をする。また、画像処理部３は、Box-Filtering方式を利用した、高速に逐次的に局所ヒストグラムを算出するための回路（局所ヒストグラム算出手段）を有する。
【００２８】
記憶部４は、ＤＲＡＭ（Dynamic Random Access Memory）等により構成され、画像を記憶するためのメモリ、すなわち、フレーム・メモリの機能を有する。
【００２９】
次に、画像処理部３が有する局所ヒストグラム算出手段について、図に基づく説明する。
【００３０】
図２は、画像処理部３の局所ヒストグラム算出手段の概要構成例を示すブロック図である。ここで、Ｘ方向は、画像処理の対象である原画像に対して走査する方向であり、Ｙ方向とは、原画像に対してＸ方向に走査してＸ方向の端に来ると、Ｙ方向に順に走査を１画素移動させる方向である。
【００３１】
図２に示すように、画像処理部３は、原画像の画素データの値に応じて、画素データを分配する分配部７（７ａ、７ｂ）と、分配部７からの画素データを処理するＹ方向の加算処理部１０と、Ｙ方向の加算処理部１０からの画素データを処理するＸ方向の加算処理部２０とを備える。
【００３２】
分配部７は、ヒストグラムのビン数に応じて、分配数と輝度等の範囲が設定され、ビン数分の出力端を有する。分配部７の出力端の各々にＹ方向の加算処理部１０が接続される。Ｙ方向の加算処理部１０の入力端には、２つの分配部７における画素データの値の範囲が同じ出力端が接続される。各Ｙ方向の加算処理部１０には、Ｘ方向の加算処理部２０が各々接続される。
【００３３】
各分配部７ａ、７ｂに、Ｙ方向にタップ数TAP1分、離れた原画像の画像データfが入力され、画素データの値に応じて、分配部７は、値に対応した出力端に値１を出力する。
【００３４】
そして、画像処理部３は、分配部７からの出力を、Ｙ方向の加算処理部１０およびＸ方向の加算処理部２０により、タップ数TAP1の正方領域の局所的なヒストグラムを算出する。
【００３５】
このように、分配部７は、原画像の画素データの値に応じて、画素データを分配する分配部の一例として機能する。また、Ｙ方向の加算処理部１０の加算器は、分配部７からの第１入力画素データと、出力側からの画素データとを加算する第１加算器の一例として機能し、Ｙ方向の加算処理部１０の減算器は、第１加算器からの画素データから、分配部７からの第２入力画素データを減算して第１出力画素データを外部に出力する第１減算器の一例として機能し、Ｙ方向の加算処理部２０のラインメモリは、原画像における走査方向の画素数個分の第１出力画素データを順に記憶し、第１加算器に順に出力する第１記憶器の一例として機能する。
【００３６】
また、Ｘ方向の加算処理部２０の加算器は、第１加算処理部１０からの第３入力画素データと、出力側からの画素データとを加算する第２加算器の一例として機能し、Ｘ方向の加算処理部２０のシフトレジスタは、第３入力画素データを、加算する画素数分の記憶数個、順に記憶して出力する第３記憶器の一例として機能し、Ｘ方向の加算処理部２０の減算器は、第２加算器からの画素データから、加算する画素数分の走査前の第３入力画素データを減算して第２出力画素データを外部に出力する第２減算器の一例として機能し、Ｘ方向の加算処理部２０の記憶器は、第２出力画素データを１画素分記憶して、第２加算器に出力する第２記憶器の一例として機能する。
【００３７】
次に、Ｙ方向の１階加算処理部１０の概要構成および機能について、図に基づき説明する。
【００３８】
図３は、Ｙ方向の１階加算処理部１０の概要構成例を示すブロック図である。なお、１階加算処理部１０に入力する画素データとして、図１の前段の１階加算処理部１０の１つについて例示した。
【００３９】
図３に示すように、１階加算処理部１０は、入力側からの入力画素データf(x+16,y+16)と、出力側からのフィードバックされた画素データSUMy1(x+16,y-1)とを加算する加算器１１と、加算器１１からの出力画素データから、入力側からの入力画素データλ(x+16,y-17)を減算する減算器１２と、減算器１２からの出力画素データSUMy1(x+16,y)を原画像のＸ方向の画素数個分、順に記憶するラインメモリ１３と、を有する。なお、画像データの座標は一例である。
【００４０】
加算器１１は、例えば、半加算器や全加算器等から構成された複数ビット用の加算器であり、任意の桁数の２進数の加算を行う。
【００４１】
減算器１２は、例えば、not回路や全加算器等から構成された複数ビット用の減算器であり、任意の桁数の２進数の減算を行う。
【００４２】
ラインメモリ１３は、第１記憶器の一例であり、原画像のＸ方向のライン分の長さの画素データ等を記憶するメモリであり、減算器１２からの出力画素データSUMy1(x+16,y)を記憶し、１ライン分遅れた画素データSUMy1(x+16,y-1)を加算器１１に出力するシフトレジスタとして機能する。ここで、画像処理装置１は、Ｘ方向に１画素ずつ走査していき、１ライン分遅れた画素データを出力するので、ラインメモリ１３は、Ｙ方向に１画素マイナスの画素データを出力する。なお、ラインメモリ１３を、リード用およびライト用のポートを有するデュアルポートメモリ等から構成してもよい。制御部が、ライト用のポートから、減算器１２からの出力画素データをラインメモリ１３に記憶させる指令し、リード用のポートから、加算器１１に出力する画素データを読み出して消去する指令をする。
【００４３】
１階加算処理部１０の入力は、加算器１１の一方の入力端および減算器１２の一方の入力端により形成されている。加算器１１の出力端は、減算器１２の入力端に接続され、減算器１２の出力端は、１階加算処理部１０の外部に出力する出力端を形成し、この分岐がラインメモリ１３の入力端に接続されている。そして、ラインメモリ１３の出力端は、加算器１１の入力端に接続されている。
ここで、前段である１段目の１階加算処理部１０の１つは、
【数１】
0005493717.tif 000002
・・・（１）
の演算を実現した回路である。この式（１）は、Box-Filtering方式に基づいた式である（M.J. McDonnell, Box-Filtering techniques, Comput. Graph.Image Process. 17 (1) (1981) pp65-70）。λ(x,y)は、画素f(x,y)に対応した分配器７の出力であり、SUMy1は、次式（２）のように、λ(x,y)の総和である。
【数２】
0005493717.tif 000003
・・・（２）
ここで、総和の項数を、タップ数として、１階の加算処理の場合を、TAP1＝２×K1＋１とする。式（１）は、K1＝１６で、タップ数TAP1が３３の場合である。
【００４４】
これらのように、加算器１１は、原画像に関連した第１入力画素データと、出力側からの画素データとを加算する第１加算器の一例として機能し、減算器１２は、第１加算器からの画素データから、原画像に関連した第２入力画素データを減算して第１出力画素データを外部に出力する第１減算器としての一例機能し、ラインメモリ１３は、原画像における走査方向の画素数個分の第１出力画素データを順に記憶し、第１加算器に順に出力する第１記憶器の一例として機能する。
【００４５】
次に、Ｘ方向の１階加算処理部２０の概要構成および機能について、図に基づき説明する。
【００４６】
図４は、Ｘ方向の１階加算処理部２０の概要構成例を示すブロック図である。なお、１階加算処理部２０に入力する画素データとして、直接に接続された１階加算処理部２０の前段の１階加算処理部２０について例示した。
【００４７】
図４に示すように、Ｘ方向の１階加算処理部２０は、入力側からの入力画素データSUMy1(x+１６,y)と、出力側からのフィードバックされた画素データSUMy1x1(x+16,y-1)とを加算する加算器２１と、加算器２１からの画素データから、シフトレジストされた入力側からの入力画素データSUMy1(x-17,y)を減算して第２出力画素データSUMy1x1(x,y)を外部に出力する減算器２２と、入力側からの入力画素データSUMy1(x+16,y)をシフトレジストするシフトレジスタ２３と、減算器２２の出力画像データSUMy1x1(x,y)を１画素分記憶して、画像データSUMy1x1(x+16,y-1)を加算器２１に出力する記憶器２４と、を有する。なお、画像データの座標は一例である。
【００４８】
加算器２１は、加算器１１と同様の構成および機能を有し、減算器２２は、減算器１２と同様の構成および機能を有する。
【００４９】
シフトレジスタ２３は、第３記憶器の一例であり、タップ数分の画素データを記憶するシフトレジスタであり、入力側からの入力画素データSUMy1(x+16,y)を記憶し、タップ数分遅れた画素データSUMy1(x-17,y)を減算器２２に出力するシフトレジスタとして機能する。ここで、画像処理装置１は、Ｘ方向に１画素ずつ走査していき、タップ数が３３の場合、３３画素分Ｘ方向に走査するので、シフトレジスタ２３は、Ｘ方向に３３画素分シフトした画素データを出力する。
【００５０】
記憶器２４は、画素１個分を記憶する遅延素子である。
【００５１】
１階加算処理部２０の入力は、加算器２１およびシフトレジスタ２３の入力端に接続されている。加算器２１およびシフトレジスタ２３の出力端は、減算器２２の入力端に接続され、減算器２２の出力端は、１階加算処理部２０の外部に出力する出力端を形成し、この分岐が記憶器２４の入力端に接続されている。そして、記憶器２４の出力端は、加算器２１の入力端に接続されている。
【００５２】
ここで、１階加算処理部２０は、
【数３】
0005493717.tif 000004
・・・（３）
の演算を実現した回路である。f(x,y)は、原画像の座標(x,y)における画素の画像データで、SUMy1x1は、次式（４）で示すように、SUMy１の総和である。
【数４】
0005493717.tif 000005
・・・（４）
【００５３】
ここで、総和の項数を、タップ数として、１階の加算処理の場合を、TAP1＝２×K1＋１とする。本実施形態では、K1＝１６で、タップ数TAP1が３３の場合である。
【００５４】
これらのように、加算器２１は、第１加算処理部を経由してきた第３入力画素データと、出力側からの画素データとを加算する第２加算器の一例として機能する。また、減算器２２は、第２加算器からの画素データから、加算する画素数分の走査前の第３入力画素データを減算して第２出力画素データを外部に出力する第２減算器の一例として機能し、また、第２加算器からの画素データから、第３記憶器からの画素データを減算する第２減算器の一例として機能する。また、シフトレジスタ２３は、加算する画素数（タップ数）分である記憶数個の第３入力画素データを順に記憶して出力する第３記憶器の一例として機能し、記憶器２４は、第２出力画素データを１画素分記憶して、第２加算器に出力する第２記憶器の一例として機能する。
【００５５】
ここで、第１入力画素データおよび第２入力画素データは、１段目のＹ方向の１階加算処理部１０（第１加算処理部）の場合、原画像の画素データλであり、２段目以降のＹ方向の１階加算処理部１０の場合、前段の１階加算処理部１０からの出力画素データ、すなわち、第１出力画素データである。第３入力画素データは、１段目のＸ方向の１階加算処理部２０（第２加算処理部）の場合、１階加算処理部１０からの出力画素データであり、２段目以降のＸ方向の１階加算処理部２０場合、前段の１階加算処理部２０からの出力画素データ、すなわち、第２出力画素データである。このように、第３入力画素データは、Ｙ方向の１階加算処理部１０側からきたデータであり、Ｙ方向の１階加算処理部１０を少なくとも経由してきた画素データである。出力側からの画素データとは、加算処理部の出力から分岐して、記憶器を経由して戻ってきた画素データであり、Ｙ方向の１階加算処理部１０（第１加算処理部）の場合、減算器１２からの画素データであり、Ｘ方向の１階加算処理部２０（第２加算処理部）の場合、減算器２２からの画素データである。
【００５６】
次に、画像処理装置１の動作例について、図５から図１２に基づき説明する。
【００５７】
図５は、画像処理装置１における動作例を示すフローチャートである。図６Ａは、画像処理装置１により画像処理をする原画像の一例を示す模式図である。図６Ｂは、原画像を画像処理した画像の一例を示す模式図である。図７Ａは、原画像において、輝度の変換を行うある画素を中心とした局所領域の一例を示す模式図である。図７Ｂは、局所領域における局所ヒストグラムの一例を示す線図である。図８は、局所ヒストグラムに対する局所累積ヒストグラムの一例を示す線図である。図９は、局所累積ヒストグラムの各階級におけるガンマ補正関数の一例を示す線図である。図１０は、ガンマ補正関数に対する重み関数の一例を示す線図である。図１１は、ガンマ補正関数と、重み関数とより生成された輝度変換関数の一例を示す線図である。図１２は、輝度変換関数を生成の様子を示す模式図である。
【００５８】
まず、図５に示すように、画像処理装置１は、画像処理を行う原画像の入力を受け付ける（ステップＳ１）。具体的には、画像処理装置１のＣＰＵ部２が、画像処理装置１の外部から、図６Ａに示すような画像処理を行う原画像３０を取得して、記憶部４のフレーム・メモリに記憶させる。ここで、図６Ａに示すように、原画像では、逆光などで暗く見えにくくなってしまう”黒つぶれ”や、逆に明るく見えにくくなる”白とび”が生じていて、原画像は、輝度の偏りが生じている例である。
【００５９】
このように画像処理装置１は、画像処理を行う原画像の入力を受け付ける原画像入力手段の一例として機能する。
【００６０】
次に、画像処理装置１は、原画像から処理の対象画素を設定する（ステップＳ２）。具体的には、ＣＰＵ部２が、画像処理の指令を画像処理部３に与え、図７Ａに示すように、画像処理部３が、記憶部４の原画像３０から処理の対象画素３１を設定する。さらに具体的には、画像処理部３が、画像処理の対象である原画像に対してＸ方向に走査してＸ方向の端に来ると、Ｙ方向に順に走査を１画素移動させて、対象画素３１を設定していき、原画像を画素毎に順次ディジタル処理する。
【００６１】
次に、画像処理装置１は、対象画素を中心とした局所領域を設定する（ステップＳ３）。具体的には、画像処理装置１の画像処理部３は、図７Ａに示すように、明るさの変換を行う画素である対象画素３１を中心とした局所領域３２（３３×３３の画素）を設定する。ここで、Box-Filtering方式を利用する場合、タップ数を設定することにより、局所領域が決定される。図２に示すように、対象画素３１を１画素ずつ走査して、２箇所の画素データを入力することにより、局所ヒストグラムを求める局所領域も移動したことになる。
【００６２】
このように画像処理装置１は、原画像から、明るさの変換を行う画素を中心とした局所領域を設定する局所領域設定手段の一例として機能する。
【００６３】
次に、画像処理装置１は、階級が粗い局所ヒストグラムを算出する（ステップＳ４）。具体的には、図７Ａに示すように、画像処理部３は、図７Ｂに示すように、局所領域３２の統計情報である局所ヒストグラム（縦軸：画素数、横軸：輝度を基にした階級）を、横軸の階級を粗い精度、例えば、輝度に対し８ビット精度：０〜６３、６４〜１２７、１２８〜１９１、１９２〜２５５の４つの階級で求める。図２に示すように、局所ヒストグラムの階級は、画像処理部３の分配部７の画素判定の部分により決定される。
【００６４】
ヒストグラムは、特定の輝度範囲にある画素の個数を数えるのだから、ウインドウエリアを任意のサイズに分けて、数えても結果は同じになる。分割ウインドウの中の１つを考えてみる。局所領域３２が一画素、Ｙ方向に移動した場合を考える。移動前のウインドウエリアのヒストグラムをh_SUMy1(x,y-1)、移動後のウインドウエリアのヒストグラムをh_SUMy1(x,y)とする。ここでは、例示的にＹ方向の１階加算処理部１０による処理結果を示している。
【００６５】
そして、ヒストグラムは、特定の輝度範囲にある画素数の個数を数える処理である。従って、図３２に示すように、画素データf(x+16,y+16)の輝度が192-255の範囲で、画素データf(x+16,y-17)の輝度が128-191の範囲であった場合、h_SUMy1(x,y)に含まれる輝度128-191範囲の画素数の合計数をh128_SUMy1(x,y)、輝度192-255の範囲の画素数の合計数をh192_SUMy1(x,y)とすると、
【数５】
0005493717.tif 000006
・・・（５）
となる。
【００６６】
ヒストグラム全体では、
【数６】
0005493717.tif 000007
・・・（６）
と表せる。但しλ（ｘ、ｙ）は、座標(x,y)の画素の輝度が、ヒストグラムの輝度範囲内に属する個数で、常に１である。このように、ヒストグラムは常に＋１、−１の数え上げ処理を行うので、図２に示した回路の組み合わせで構成することが可能となる。
【００６７】
なお、図７Ａに示した局所領域３２のヒストグラムを求める場合、上記Ｙ方向の１階加算処理部１０による処理結果に対して、図２に示すように、Ｘ方向の１階加算処理部２０を行う。画像処理部３は、局所領域３２をＸ方向に走査しながら、局所領域３２のヒストグラムを算出していく。
【００６８】
このように画像処理装置１は、局所領域における明るさに関する局所ヒストグラムを算出する局所ヒストグラム算出手段の一例として機能する。
【００６９】
次に、画像処理装置１は、局所累積ヒストグラムを算出する（ステップＳ５）。具体的には、画像処理部３は、図７Ｂに示したような局所ヒストグラムを累積して、図８に示すように、局所領域３２における局所累積ヒストグラムを算出する。図８に示すように、局所累積ヒストグラムは、折れ線状の関数となり、この局所累積ヒストグラムの各折れ線の頂点は、暗部での頂点Pys、中間部の頂点Pym、明部での頂点Pyhである。ここで、局所累積ヒストグラムは、図８に示すように、例として４つの階級を持つ局所ヒストグラムに応じた局所累積ヒストグラムであり、入力輝度に対する出力輝度を出力し、コントラスト等を補正する画像補正関数に対応するが、このままでは、横軸の階級が粗いので、この後の処理により、局所累積ヒストグラムから、滑らかな変換関数を生成させる。
【００７０】
このように画像処理装置１は、局所ヒストグラムを累積して局所累積ヒストグラムを算出する局所累積ヒストグラム算出手段との一例として機能する。
【００７１】
次に、画像処理装置１は、ビン毎のガンマ補正関数の決定する（ステップＳ６）。具体的には、画像処理部３は、各階級のビンにおける累積度数値に対応した単調増加関数の一例であるガンマ補正関数を決定する。さらに具体的には、図９に示すように、累積ヒストグラムの各頂点Pys、Pym、Pyhの近くを通る汎用的な画像補正関数の一例であるガンマ補正関数Gs、Gm、Ghを頂点の数と同数、決定する（図９）。ここで単調増加関数とは、狭義の単調増加関数（ｘ＞ｙならば、ｆ（ｘ）＞ｆ（ｙ））の他に、広義の単調増加関数（ｘ≧ｙならば、ｆ（ｘ）≧ｆ（ｙ））を含む。
【００７２】
このように画像処理装置１は、局所累積ヒストグラムの第１および第２階級における累積度数値に対応した第１および第２単調増加関数を各々決定する単調増加関数決定手段の一例として機能する。
【００７３】
次に、画像処理装置１は、重み関数に基づき各補正関数を合成して変換関数を生成する（ステップＳ７）。具体的には、まず、画像処理部３は、図１０に示すように、各単調増加関数に対する各重み関数を決定する。さらに具体的には、階級毎に指定され、ガウス分布を持つ重み関数Bs、Bm、Bhを決定する。これらの重み関数は、各階級において極大値を有する。暗部の階級においては、ガウス分布関数Bsが、入力輝度値が０のとき極大となり、中間部の階級においては、ガウス分布関数Bmが、入力輝度値が中間値のとき極大となり、明部の階級においては、ガウス分布関数Bhが、入力輝度値が最大値のとき極大となる。このように画像処理装置１は、第１および第２単調増加関数に対する第１および第２重み関数を各々決定する重み関数決定手段の一例として機能する。また、画像処理装置１は、第１階級において極大値を有する第１重み関数、および、第２階級において極大値を有する第２重み関数を決定する重み関数決定手段の一例として機能する。
【００７４】
そして、設定された複数のガンマ補正関数を、階級毎に指定された重み関数Bs、Bm、Bhにより合成して、画素の明るさの変換関数を生成する。さらに具体的には、画像処理部３は、暗部、中間部、明部の各ガンマ補正関数を、暗部、中間部、明部の重み関数により各々重み付けして、これらを加算して画素の明るさの変換関数を生成する。粗い精度の折れ線状の画像補正関数（局所累積ヒストグラム）が、連続的な近似曲線の画像補正関数となり、輝度変化に対する滑らかな画像補正が可能となる。
【００７５】
このように画像処理装置１は、第１重み関数により重み付けされた第１単調増加関数と、第２重み関数により重み付けされた第２単調増加関数とから、画素の明るさの変換関数を生成する変換関数生成手段の一例として機能する。また画像処理装置１は、第１および第２単調増加関数の少なくとも一方をガンマ補正関数に決定する単調増加関数決定手段の一例として機能する。また画像処理装置１は、第１重み関数により重み付けされた第１単調増加関数と、第２重み関数により重み付けされた第２単調増加関数と、を加算して変換関数を生成する関数生成手段の一例として機能する。
【００７６】
次に、画像処理装置１は、対象画素に変換関数を適用する（ステップＳ８）。具体的には、画像処理部３は、局所累積ヒストグラムに対して連続な近似曲線（合成された関数）を画像補正関数（縦軸：出力輝度値Yout、横軸：入力輝度値Yin）とし、対象画素を画像処理する。画像補正は以下の式で行う。ここで、画像補正関数は、画素の明るさの変換関数の一例のである。
Yout = Gs（Yin）×Bs＋Gm（Yin）×Bm＋Gh（Yin）×Bh    ・・・（７）
【００７７】
次に、画像処理部３は、対象画素の位置情報に関連づけて、得られた出力輝度値を記憶部３に記憶する。このように画像処理装置１は、変換関数により画素の明るさを変換する変換手段の一例として機能する。
【００７８】
次に、画像処理装置１は、最後の画素か否かを判定する（ステップＳ９）。具体的には、画像処理部３は、原画像を走査していき、最後の画素まで来たか否かを判定する。もし最後の画素でなければ（ステップＳ９；ＮＯ）、画像処理部３は、ステップＳ２に戻り、次の対象画素に移動する。もし最後の画素でなければ（ステップＳ９；ＹＥＳ）、画像処理部３は、処理を終了し、ＣＰＵ部２に、画像処理終了の信号を送信する。図６Ｂに示すように、画像処理装置１により、原画像３０が画像処理されて、”黒つぶれ”していた顔の部分の画像がはっきりし、”白とび”していた窓の外の風景が明確な画像４０が得られる。
【００７９】
以上、図１２に示すように、画像処理装置１は、局所領域から、局所ヒストグラムを求め、局所累積ヒストグラムを求める。次に画像処理装置１は、局所累積ヒストグラムの各頂点Pys、Pym、Pyhにおける補正関数Ｉ、補正関数ＩＩ、補正関数ＩＩＩを求め、これらを重み関数に基づき合成して、変換関数の一例の合成補正関数を生成する。
【００８０】
本実施形態によれば、画像処理を行う原画像の入力を受け付け、原画像から、明るさの変換を行う画素を中心とした局所領域を設定し、局所領域における明るさに関する局所ヒストグラムを算出し、局所ヒストグラムを累積して局所累積ヒストグラムを算出し、局所累積ヒストグラムの第１および第２階級における累積度数値に対応した第１および第２単調増加関数を各々決定し、第１および第２単調増加関数に対する第１および第２重み関数を各々決定し、第１重み関数により重み付けされた第１単調増加関数と、第２重み関数により重み付けされた第２単調増加関数とから、画素の明るさの変換関数を生成し、変換関数により画素の明るさを変換することにより、計算量を削減するためヒストグラムの階級を粗くしても、重み関数により重み付けされた第１単調増加関数と第２単調増加関数とから、局所累積ヒストグラムに対応した変換関数が得られるため、高速化で適切に各画素の明るさを変換できる画像処理装置、画像処理方法、および、画像処理用プログラムを提供できる。また、画像処理装置１は、輝度オフセットの修正と局所領域間のコントラストの改善ができる。
【００８１】
ここで、局所領域における画像処理は、局所ヒストグラムの階級を細い精度（例えば：0、 1、 2、 … 、254、 255）で設定すると、演算量が多くなり、演算時間が増加する。一方、階級を粗い精度で設定すると演算時間は短くなるが、不連続な折れ線状の画像補正関数となってしまう。すなわち、入力輝度値に対する出力輝度値が、ある程度変わらないが、ある入力輝度値に対して急激に出力輝度値が変わりやすくなり、画像が不自然になる。
【００８２】
さらに、局所ヒストグラムの階級が細かい精度である場合、ヒストグラム取得時に、局所領域内に属する参照画素群のそれぞれの階級への分類とその画素数を保持する必要がある。また、画像補正関数に直結する局所累積ヒストグラムを求める演算が階級数分必要となる。
【００８３】
しかし、本実施形態の画像処理装置１は、粗い精度で計測された局所領域のヒストグラム等の統計情報を用いても、滑らかな画素の変換関数（例えば、累積ヒストグラムに近い滑らかな近似曲線）を得ることができ、適切な画像補正等ができる。具体的には、画像の局所領域において、逆光などで暗く見えにくくなってしまう”黒つぶれ”、逆に明るく見えにくくなる”白とび”等の輝度の偏りに対し、輝度オフセットの修正と局所領域間のコントラストの改善でき、また、画像の不自然さを解消できる。
【００８４】
また、特定輝度に画像が集中していると、細かい階級を持つヒストグラムの累積ヒストグラムを用いた場合、特定輝度部で変化が急峻となり、過度な強調を生じる輝度補正の可能性がある。例えば、空、雲、白い壁等輝度の変化が少ない部分の輝度範囲を広げてしまう等、画像の不自然さが生じるなど、画像補正の適切な調節が難しい。また、局所累積ヒストグラムの頂点数が多くなり、局所累積ヒストグラムに対応した変換関数の形状の制御、調節が難しくなる。
【００８５】
しかし、画像処理装置１は、粗い精度の階級の局所ヒストグラムに対して、各階級に対して、単調増加関数を独立に設定でき、すなわち、適切な画像補正を行うために、輝度階級毎のパラメータ調節も容易にできる。そして、画像処理装置１は、これら設定された単調増加関数を重み関数により合成するため、細かい階級を持つヒストグラムの場合と同じように、滑らかな変換関数を合成して生成できる。
【００８６】
また、局所ヒストグラムの算出に関して、図２から図４に示したBox Filtering技術と同様の画素アクセス手法を用いれば、局所領域の大きさに拠らない局所ヒストグラムの取得を行うことができる。また、この画素アクセス法を用いる場合、局所ヒストグラム情報を１列分保持する必要があり、細かい階級を持つヒストグラムは、より多くの記憶領域が必要となるが、階級を粗くすることにより記憶領域も少なくて済む。
【００８７】
また図２に示すように、画像処理部３は、原画像の画素データの値に応じて、画素データを分配する分配部７と、Ｙ方向の１階加算処理部１０と、Ｘ方向の１階加算処理部２０とにより、少ないメモリサイズで高速に原画像に対する、局所的なヒストグラムを算出することができる。また、局所的なヒストグラムを求める局所のサイズに依存せず、高速に処理できる。また、２階や３階の加算処理を適用することにより、重み付け局所ヒストグラムの生成回路を実現することもできる。ここで２階の場合、Ｙ方向の１階加算処理部１０を並列して、その各出力を１つのＹ方向の１階加算処理部１０に接続し、その後に、Ｘ方向の１階加算処理部２０を２段接続させる。
【００８８】
次に、本実施形態の第１変形例について図に基づき説明する。この変形例は、単調増加関数として、ガンマ補正関数の代わりに直線を用いた例である。
【００８９】
図１３は、単調増加関数の第１の変形例を示す線図である。
【００９０】
図１３に示すように、画像処理装置１の画像処理部３は、局所累積ヒストグラムの各頂点Pys、Pym、Pyhにおいて、累積度数値に対応した直線（１次関数）Ｌｓ、Ｌｍ、Ｌｈを決定する。画像処理部３は、局所累積ヒストグラムの各頂点Pys、Pym、Pyhにおいて独立に直線Ｌｓ、Ｌｍ、Ｌｈを設定できる。
【００９１】
ここで、図１３において、縦軸（出力輝度値）の方向の移動が、明るさのオフセットに対応し、直線の傾きがコントラストに対応する。図１３に示すように、各直線Ｌｓ、Ｌｍ、Ｌｈは、頂点Pys、Pym、Pyhを必ずしも通る必要はなく、各直線Ｌｓ、Ｌｍ、Ｌｈを各階級において縦軸（出力輝度値）の方向の移動（直線のｙ切片を上下）させることにより、オフセット値を調節できる。
【００９２】
このように画像処理装置１は、第１および第２単調増加関数の少なくとも一方を１次関数に決定する単調増加関数決定手段の一例として機能する。この場合、直感的に、明るさのオフセット値やコントラストが設定しやすくなる。
【００９３】
次に、本実施形態の第２変形例について図に基づき説明する。この変形例は、中間部の階級における単調増加関数として、ガンマ補正関数の代わりにシグモイド関数等を用いた例である。
【００９４】
図１４Ａは、単調増加関数の第２の変形例を示す線図である。図１４Ｂは、中間部の階級におけるガンマ補正関数の頂点の範囲を示す模式図である。
【００９５】
図１４Ａに示すように、画像処理装置１は、入力輝度値の中間部に、ガンマ補正関数と異なる関数として、シグモイド関数を割り当てる。
【００９６】
特定輝度領域が中間輝度に集中している状態で、中間輝度部分の補正用にガンマ関数を用いた場合、図１４Ｂに示すように、局所領域内における輝度のオフセットの調節、すなわち、輝度値を上げるか、または、下げるかの調節が主に行われる。一方、図１４Ａに示すように、中間輝度部分にシグモイド関数を用いた場合、コントラスト調節、すなわち、輝度変化を急峻にするか、または、和らげるかの補正が主にできる。このように、画像の特性によっては、異なる関数を用いることで、コントラスト調節も行うことができ、局所領域における中間輝度のコントラストをより改善することができる。
【００９７】
ここで、シグモイド関数式
Yout = 1/ (1+ exp（-aYin）)    ・・・（８）
である。
また、８ビット画像に対しては
【００９８】
Yout = 255/ (1+ exp（-a×（-1 + （Yin/128）））    ・・・（９）
となる。
なお、この変形例において、シグモイド関数の代わりに、単調増加の直線を用いてもよい。
【００９９】
次に、本実施形態のおいて、重み関数の変形例について図に基づき説明する。
【０１００】
図１５は、重み関数の変形例を示す線図である。
【０１０１】
図１５に示すように、入力輝度値がYin'のとき、Bs：Bm＝80：20であるが、点線で示される合成用の重みBs’、Bm’、Bh’を用いると、Bs’： Bm’＝5：95となる。このように、重み関数の形状を変化させることで、輝度毎の各単調増加関数の結合度合いを変化させることができる。
【０１０２】
このように画像処理装置１は、第１および第２重み関数の重なりの割合を変える重み関数決定手段の一例として機能する。この場合、各重み関数の重なる割合を制御することにより、各単調増加関数を独立に制御して、輝度毎の各単調増加関数の結合度合いを変化させ、変換関数を生成できる。階級が隣接する単調増加関数を接続して、変換関数を生成する際、重み関数の形状を変えることにより、接続の具合を変えることができる。各単調増加関数の結合度合いを変化させて、より適切な変換関数を生成することができる。
【０１０３】
（第２実施形態）
次に、本発明の第２実施形態に係る画像処理装置について説明する。
【０１０４】
第２実施形態に係る画像処理装置の概要構成は第１実施形態と同じである。なお、前記第１実施形態と同一または対応する部分には、同一の符号を用いて異なる構成および作用のみを説明する。その他の実施形態および変形例も同様とする。
【０１０５】
次に、第２実施形態に係る画像処理装置１の動作例について、図１６から図２３に基づき説明する。なお、本実施形態の動作例は、第１実施形態のステップＳ５およびＳ６の部分に異なる処理が入る。
【０１０６】
図１６は、異なる局所領域における局所累積ヒストグラムの一例を示す模式図である。図１７は、本発明の第２実施形態に係る画像処理装置における動作例を示すフローチャートである。図１８は、局所累積ヒストグラムの累積度数値が取り得る範囲の一例を示す線図である。図１９は、局所累積ヒストグラムの累積度数値が取り得る範囲の制御を示す模式図である。図２０は、暗部の階級に対応する入力輝度値におけるガンマ補正関数を示す模式図である。図２１は、中間部の階級に対応する入力輝度値におけるガンマ補正関数を示す模式図である。図２２は、明部の階級に対応する入力輝度値におけるガンマ補正関数を示す模式図である。図２３は、輝度のオフセットが調節された局所累積ヒストグラムを示す模式図である。
【０１０７】
まず、図１６に示すように、画像の局所領域毎３２Ｂ、３２Ｃにヒストグラムの形状は異なり、それに合わせて局所累積ヒストグラムの形状も異なる。局所累積ヒストグラムC1、C2各頂点も局所領域毎に異なる。本実施形態では、局所領域毎３２Ｂ、３２Ｃに異なる局所累積ヒストグラムの各頂点Pys、Pym、Pyhの取り得る値の範囲に対し、その範囲を制御することを考える。
【０１０８】
図１７に示すように、第１実施形態のステップＳ３の局所領域の抽出後、画像処理装置１は、各ビンでの最大値・最小値を設定する（ステップＳ１０）。具体的には、図１８に示すように、画像処理装置１の画像処理部３は、変換輝度範囲を制御するため、局所累積ヒストグラムの頂点に上限および下限パラメータ値（最大値、最小値）を設定する。ここでは、局所累積ヒストグラムの階級における累積度数値の一例である局所累積ヒストグラムの各頂点Pys、Pym、Pyhが取り得る値の範囲（最小値：０、最大値：局所領域内の画素数）に設定する。この設定された最小値、最大値により、後の処理により、累積ヒストグラムの形状制御として、本実施形態では、その範囲（最小値Min_Py{s,m,h}から最大値Max_Py{s,m,h}）を制御する(圧縮する)ことで、局所累積ヒストグラムの階級における累積度数値を調節する。
【０１０９】
次に、画像処理装置１は、局所ヒストグラムから局所累積ヒストグラムを算出する（ステップＳ１１）。具体的には、第１実施形態のステップＳ５と同様である。
【０１１０】
次に、画像処理装置１は、最大値・最小値に基づき局所累積ヒストグラムの各ビンの頂点を独立に制御する（ステップＳ１２）。具体的には、図１９に示すように、画像処理部３は、範囲の制御（圧縮）を、各頂点Pys、Pym、Pyhにおいて独立に行う。
【０１１１】
次に、画像処理装置１は、制御された頂点におけるビン毎の補正関数を決定する（ステップＳ１３）。具体的には、画像処理部３は、制御されて（圧縮されて）移動した各頂点Pys'、Pym'、Pyh'（Py’）に対して、その近くを通る各ガンマ補正関数を決定する。さらに具体的には、図２０〜図２２に示すように、制御された各頂点において、各ガンマ補正関数が決定される。
頂点の移動は、局所領域（３３×３３の画素）の場合、８ビット画像の変換の場合、例えば以下の式で行う。
Py’ = 255×（Min_Py＋（Max_Py−Min_Py）×Py /255）/1089・・・（１０）
【０１１２】
このように、画像処理装置１は、局所累積ヒストグラムの階級における累積度数値を調節する局所累積ヒストグラム調節手段の一例として機能する。また、画像処理装置１は、が、局所累積ヒストグラムの階級における累積度数値の上限および下限を設定することにより、累積度数値を調節する局所累積ヒストグラム調節手段の一例として機能する。
【０１１３】
本実施形態によれば、範囲を圧縮すると局所累積ヒストグラムC1,C2の圧縮後の局所累積ヒストグラムC1’、C2’の形状の差（縦軸方向）が小さくなる。そのため、補正後の空間方向の輝度の変動が緩やかとなり、空間方向のコントラストを抑制できる。
【０１１４】
局所累積ヒストグラムの３つの頂点の取り得る範囲を圧縮し、２つの局所累積ヒストグラムの差が小さくなる。そのため、２つの局所領域の輝度補正による変動が小さくなり、輝度補正後の空間的な輝度変動が抑制され、空間的なコントラストの抑制ができる。
【０１１５】
また、図２３に示すように、最小値が０でなく、その範囲の最小値・最大値（Max_Py{s,m,h},Min_Py{s,m,h}）を設定することで、画像補正における輝度の最小値・最大値を決めてもよい。つまり、頂点の値が取り得る範囲を制御することで、頂点を中心とした輝度範囲で、輝度のオフセットと空間方向のコントラストを輝度階調毎に設定することが可能となる。
【０１１６】
画像処理装置１が、局所累積ヒストグラムの３つの頂点の取り得る値の最大値、最小値を設定し、局所累積ヒストグラムの各頂点の最大値、最小値を決定し、局所領域の輝度補正における輝度最大値、最小値を決定することにより、輝度補正後の輝度オフセットが変化する。すなわち、画像処理装置１は、輝度のオフセットを制御できる。なお、局所領域の輝度補正における輝度最大値、最小値は、輝度階級毎に設定可能である。
【０１１７】
累積ヒストグラムの形状を制御する場合、特定の頂点値を制御すると累積度数値が変化し、他の頂点に影響を与えてしまう。本実施形態の場合、局所累積ヒストグラムの階級における累積度数値（頂点）の範囲制御において、頂点の取り得る値は、その範囲の中に圧縮される。各頂点にガンマ補正関数等の単調増加関数が設定されて合成が行われるため、各階級において独立に局所累積ヒストグラムの調節することができる。各頂点の制御として、最小値および最大値（最小値Min_Py{s,m,h}と最大値Max_Py{s,m,h}）の各設定は、処理対象である局所領域の輝度の階級毎の最低および最大輝度の設定に等しい。従って、これらの設定により、図２３に示すように、輝度オフセットを調節することができる。また、最小値および最大値の範囲は、空間的な補正関数の差に等しいので補正後の輝度変動を表す。そのため、画像処理装置１は、空間的なコントラストの強弱を制御することができる。
【０１１８】
ここで、図２５Ａは、最小値Min_Py{s,m,h}と最大値Max_Py{s,m,h}とを設定し、輝度のオフセットを調節した場合の一例である。図２５Ｂは、中間部と明部の空間的なコントラスト（局所領域間のコントラスト）を強調した場合で、例えば、雲が写っている領域のコントラストを増加させた場合である。図２５Ｃは、中間部と明部の空間的なコントラストを弱めた場合で、例えば、雲が写っている領域のコントラストを低下させた場合である。
【０１１９】
（第３実施形態）
次に、本発明の第３実施形態に係る画像処理装置について説明する。
【０１２０】
図２６は、本発明の第３実施形態に係る画像処理装置の画像処理部の概要構成例を示すブロック図である。
【０１２１】
図２６に示すように、画像処理装置１の画像処理部３は、グローバル処理部３ａと、ローカル処理部３ｂとを有する。
【０１２２】
グローバル処理部３ａは、主に、原画像大の画像データを処理する回路を有し、原画像全体のヒストグラム（グローバル・ヒストグラム）を算出したり、原画像のグラデーション領域を抽出等したりする。
【０１２３】
ローカル処理部３ｂは、第１実施形態の画像処理部３の処理とほぼ同様構成を有しほぼ同様処理を行う。
【０１２４】
次に、第３実施形態に係る画像処理装置の動作例について、図に基づき説明する。
【０１２５】
図２７は、図２６の画像処理部における動作例を示すフローチャートである。図２８Ａは、階級幅の設定変更前の局所ヒストグラムの一例を示す模式図である。図２８Ｂは、階級幅の設定変更後の局所ヒストグラムの一例を示す模式図である。図２９は、輝度変換前の原画像および局所領域の一例を示す模式図である。
【０１２６】
まず、画像処理部３Ｂのグローバル処理部３ａにおける動作例について説明する。
【０１２７】
画像処理部３Ｂは、原画像全体のグローバル・ヒストグラムを算出する（ステップＳ２０）。具体的には、図２８Ａに示すように、グローバル処理部３ａは、記憶部４に記憶されている原画像から、原画像全体のグローバル・ヒストグラムｇＨを算出する。この場合の階級は、局所ヒストグラムの場合より細かくする。なお、階級幅を決定するためなので、大まかな原画像全体のヒストグラムが分かればよいので、全画像を１画素ずつ走査せず、飛びとびに間引きしたデータより、グローバル・ヒストグラムを求めてもよい。
【０１２８】
次に、画像処理部３Ｂは、グラデーション領域を抽出する（ステップＳ２１）。具体的には、グローバル処理部３ａは、ｍａｘ‐ｍｉｎフィルタ等を使用して、明るい空が写っている領域や暗い部屋の中が写っている領域等、徐々に明るさが変わる領域や輝度の変化が少ない領域を抽出し、グラデーション領域を決定し、区分けをする。
【０１２９】
次に、画像処理部３Ｂは、グラデーション領域毎の階級幅を決定する（ステップＳ２２）。具体的には、図２８Ｂに示すように、グローバル処理部３ａは、グローバル・ヒストグラムｇＨのグラデーション領域に対応した階級幅Ｒの部分を包み込むように、局所ヒストグラムの階級幅を決定する。そして、局所ヒストグラムの階級幅は、処理対象の画素がどのグラデーション領域に属するかにより変わる。図２８Ｂに示した例は、空等の明るい領域の場合であるが、暗い領域にもピークがある場合、輝度が低い方のグローバル・ヒストグラムｇＨを包み込むように、局所ヒストグラムの階級幅を変える。また、もしどのグラデーション領域に属さなければ、局所ヒストグラムの階級幅は通常の等間隔である。
【０１３０】
また、図２８Ａでは、グローバル・ヒストグラムｇＨのグラデーション領域に対応した階級幅Ｒの部分が、局所ヒストグラムにおける２つの階級にまたがっている。しかし、階級幅を変えることにより、１つの階級にグラデーション領域を所属させることができる。
【０１３１】
なお、動画の場合、前のフレームにおける全体画像から、原画像全体のヒストグラムを求めておいてもよい。この場合、ローカル処理部３ｂは直ちに、階級幅等のデータを利用できる。
【０１３２】
次に、ローカル処理部３ｂにおける動作例について説明する。
【０１３３】
まず、第１実施形態のステップＳ１およびＳ２と同様、画像処理装置は、原画像を入力して、処理対象の画素を設定する。
【０１３４】
次に、画像処理部３Ｂは、対象画素を中心とした局所領域を設定する（ステップＳ２５）。具体的には、図２９に示すように、ローカル処理部３ｂが、対象画素３１Ｄを中心とした局所領域３２Ｄを設定する。
【０１３５】
次に、画像処理部３Ｂは、対象画素の所属領域を決定する（ステップＳ２６）。具体的には、ローカル処理部３ｂは、グローバル処理部３ａのステップＳ２１の結果に基づき、対象画素がグラデーション領域に属しているか否かを判定し、属しているならどのグラデーション領域に属しているか判定し、所属領域を決定する。
【０１３６】
次に、画像処理部３Ｂは、所属領域の階級幅に従った局所ヒストグラムを算出する（ステップＳ２７）。具体的には、ローカル処理部３ｂは、グローバル処理部３ａのステップＳ２２の結果に基づき、対象画素が属するグラデーション領域の階級幅に従った局所ヒストグラムを算出する。
【０１３７】
このように画像処理装置の画像処理部３Ｂは、原画像の情報に基づき局所ヒストグラムの階級の幅を設定し、設定された局所ヒストグラムの階級の幅に基づき局所ヒストグラムを算出する局所ヒストグラム算出手段の一例として機能する。また、画像処理装置の画像処理部３Ｂは、原画像における明るさに関するヒストグラムに基づき局所ヒストグラムの階級の幅を設定し、設定された局所ヒストグラムの階級の幅に基づき局所ヒストグラムを算出する局所ヒストグラム算出手段の一例として機能する。
【０１３８】
次に、画像処理部３Ｂは、局所累積ヒストグラムを算出する（ステップＳ２８）。具体的には、第１実施形態のステップＳ５とほぼ同じであるが、対象画素がグラデーション領域に属すると
【０１３９】
局所累積ヒストグラムの階級幅が異なることがある。従って、局所累積ヒストグラムの頂点の位置が、階級の軸方向にずれる。
【０１４０】
画像処理部３Ｂは、ビン毎のガンマ補正関数を決定する（ステップＳ２９）。具体的には、第１実施形態のステップＳ６とほぼ同じであるが、局所累積ヒストグラムの階級幅が変わることにより、ガンマ補正関数を決める局所累積ヒストグラムの頂点がずれる。
【０１４１】
次に、画像処理部３Ｂは、重み関数に基づき各ガンマ補正関数を合成して変換関数を生成する（ステップＳ３０）。具体的には、第１実施形態のステップＳ７とほぼ同じであるが、局所累積ヒストグラムの階級幅の変動に合わせて、重み関数の極大の位置が異なってくる場合がある。
【０１４２】
画像処理部３Ｂは、対象画素に変換関数を適用する（ステップＳ３１）。そして、第１実施形態のステップＳ９のように、最後の画素か判定する。
【０１４３】
画像の特性によっては、特定の輝度領域を１つのグループとして扱う方がより自然な画像補正を行うことができる。局所ヒストグラムの形状を考えたとき、特定の輝度領域を１つの階級幅に当てはめることで、１つのグループとして扱うことができる。この場合、階級幅を可変として、特定輝度の範囲に合わせる必要がある。
【０１４４】
例として、空の領域を含む画像を考える。空の領域は、局所的に大きな変化を起こすよりも、１つの輝度領域として扱う方が自然な画像補正ができる。８ビット画像に対して、空を構成する画素群の輝度範囲が（128〜224）の場合、単純に局所ヒストグラムの分割数を、４つに分割した場合、0〜63、64〜127、128〜191、192〜255となり、空の領域（128〜224）が、128〜191、192〜255の２つの階級幅にまたがってしまう。そこで、128〜191、192〜255の階級幅を、128〜225、226〜255と調節し、空の領域が１つの階級幅128〜225に含まれるようにする。
【０１４５】
可変である階級幅を決定するために、特定輝度範囲の画素群の情報を得る必要があるが、画像全体の統計量であるグローバル・ヒストグラムや、画像の領域分割、色情報を用いてもよい。
【０１４６】
本実施形態によれば、輝度オフセットの修正と局所領域間のコントラストとがより改善ができ、よりきれいに、より自然な画像を得ることができる。このように、局所ヒストグラムの階級の幅は、可変として扱うことができる。そして、画像全体の統計量である、グローバル・ヒストグラム情報から階級の幅を決める。
なお、本実施形態は、第１実施形態の変形例や第２実施形態の場合も適用できる。
また、第１〜第３実施形態の処理は、コンピュータにより実行してもよい。
【０１４７】
図３０は、本発明に係る画像処理プログラムを実行するコンピュータの概要構成の一例を示すブロック図である。
【０１４８】
コンピュータ５０は、コンピュータ５０全体を制御したり画像処理の演算を行ったりする制御部５１と、原画像を記憶したり制御部５１の演算結果等を保持する記憶部５２と、画像やテキスト等を表示する表示部５３と、キーボードやマウス等により構成される操作部５４と、を備え、これらは、バス５５により接続されている。
【０１４９】
制御部５１は、ＣＰＵを有し、として機能したり等各種の画像処理を行う。
【０１５０】
記憶部５２は、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）やハードディスク等を有し、画像処理のプログラムがロードされたり、画像データを保持するメモリ空間が形成されたりする。
【０１５１】
表示部５３は、ＣＲＴ（Cathode Ray Tube）、液晶表示素子またはＥＬ（Electro Luminescence）素子等によって構成され、画像処理された画像等が表示される。
【０１５２】
コンピュータ５０の制御部５１が、第１および第２実施形態の画像処理装置１のＣＰＵ部２や第３実施形態の画像処理部３Ｂの機能を有する。コンピュータ５０は、処理速度を高めるために、制御部５１は、ＣＰＵパッケージの中に複数のＣＰＵコアを有するマルチコア型のＣＰＵを有することが好ましい。記憶部５２は、原画像に関するデータを入出力できる高速のメモリが好ましい。
【０１５３】
さらに、第１〜第３実施形態における画像補正技術は、ディジタルスチルカメラやビデオカメラでの画像処理のみならず、医療、車載、監視等、様々な用途に適用できる。
【０１５４】
さらに、本発明は、上記各実施形態に限定されるものではない。上記各実施形態は、例示であり、本発明の特許請求の範囲に記載された技術的思想と実質的に同一な構成を有し、同様な作用効果を奏するものは、いかなるものであっても本発明の技術的範囲に包含される。
【符号の説明】
【０１５５】
１：画像処理装置
２：ＣＰＵ部
３、３Ｂ：画像処理部
４：記憶部
５０：コンピュータ
【図１】
0005493717.tif 000008
【図２】
0005493717.tif 000009
【図３】
0005493717.tif 000010
【図４】
0005493717.tif 000011
【図５】
0005493717.tif 000012
【図７Ｂ】
0005493717.tif 000013
【図８】
0005493717.tif 000014
【図１３】
0005493717.tif 000015
【図１７】
0005493717.tif 000016
【図１８】
0005493717.tif 000017
【図１９】
0005493717.tif 000018
【図２３】
0005493717.tif 000019
【図２６】
0005493717.tif 000020
【図２７】
0005493717.tif 000021
【図２８Ａ】
0005493717.tif 000022
【図２８Ｂ】
0005493717.tif 000023
【図３０】
0005493717.tif 000024
【図６Ａ】
0005493717.tif 000025
【図６Ｂ】
0005493717.tif 000026
【図７Ａ】
0005493717.tif 000027
【図９】
0005493717.tif 000028
【図１０】
0005493717.tif 000029
【図１１】
0005493717.tif 000030
【図１２】
0005493717.tif 000031
【図１４Ａ】
0005493717.tif 000032
【図１４Ｂ】
0005493717.tif 000033
【図１５】
0005493717.tif 000034
【図１６】
0005493717.tif 000035
【図２０】
0005493717.tif 000036
【図２１】
0005493717.tif 000037
【図２２】
0005493717.tif 000038
【図２４】
0005493717.tif 000039
【図２５Ａ】
0005493717.tif 000040
【図２５Ｂ】
0005493717.tif 000041
【図２５Ｃ】
0005493717.tif 000042
【図２９】
0005493717.tif 000043