(57)【要約】【課題】  画像内の陰影部のコントラストを改善する。【解決手段】  陰影部領域検出部１００により画像内の陰影部領域を検出し、陰影部ヒストグラム検出部３００により、上記陰影部領域にある複数の画素の実ヒストグラムを検出し、目標ヒストグラム生成部４００により、検出された実ヒストグラムから、当該陰影部に関する改善されたコントラストを実現するための目標ヒストグラムを決定する。具体的には、実ヒストグラムの中央領域を最大輝度範囲に拡大し、実ヒストグラムの下側領域と上側領域をほぼ一様な頻度を有するヒストグラムに変換し、上記拡大されたヒストグラムと合成して目標ヒストグラムを生成する。輝度変換部５００により、前記陰影部の前記複数の画素の輝度を前記目標ヒストグラムになるように変換し、非陰影部の画像と合成して、陰影部のコントラストを改善した画像を生成する。【選択図】図１
2005202807.tif 000002
【特許請求の範囲】
【請求項１】
画像内の、陰影部が存在する陰影部領域を検出する陰影部領域検出ステップと、
検出された陰影部領域にある複数の画素の輝度ヒストグラムを検出するヒストグラム検出ステップと、
検出された輝度ヒストグラムから、当該陰影部に関する改善されたコントラストを表す目標ヒストグラムを決定する目標ヒストグラム決定ステップと、
前記陰影部の改善後の輝度ヒストグラムが前記目標ヒストグラムになるように、前記陰影部の複数の画素の輝度を変換する輝度変換ステップと、
輝度を変換された後の前記陰影部と、前記画像の前記陰影部以外の部分とを合成して、輝度改善された画像を生成する画像合成ステップと、
をコンピュータに実行させる陰影部輝度を補正可能なプログラム。
【請求項２】
前記目標ヒストグラム決定ステップは、
前記画像が取りうる最大輝度から最小輝度までの範囲に拡大されるべき、前記輝度ヒストグラムの中央領域を、前記輝度ヒストグラムに基づいて決定する中央領域決定ステップと、
前記輝度ヒストグラムの前記中央領域を、前記最大輝度から最小輝度までの範囲に分布する拡大ヒストグラムに拡大する中央領域拡大ステップと、
前記輝度ヒストグラムのうち、前記決定された中央領域より小さい輝度に対するヒストグラム下側領域と、前記中央領域より大きい輝度に対するヒストグラム上側領域とを組み合わせて、前記最小輝度から前記最大輝度までの輝度範囲に対して画素数が概略一様なヒストグラムに変換し、変換で生成された前記概略一様なヒストグラムを前記中央領域変換ステップにより生成される前記拡大ヒストグラムに合成して前記目標ヒストグラムを生成する上下側領域拡大ステップと、
を含むことを特徴とする請求項１に記載の陰影部輝度を補正可能なプログラム。
【請求項３】
前記プログラムは、前記陰影部領域検出ステップの後、前記輝度ヒストグラム検出ステップの前に、前記画像を複数のブロックに分割する領域分割ステップを更にコンピュータに実行させるプログラムであり、
ヒストグラム検出ステップと、前記目標ヒストグラム決定ステップと、前記変換データ生成ステップと、前記輝度変換ステップと、前記陰影部領域の一部が含まれる一群のブロックの各々内の陰影部部分領域に関して実行される、
ことを特徴とする請求項１又は２に記載の陰影部輝度を補正可能なプログラム。
【請求項４】
画像内の、陰影部が存在する陰影部領域を検出する陰影部領域検出ステップと、
検出された陰影部領域にある複数の画素の輝度ヒストグラムを検出するヒストグラム検出ステップと、
検出された輝度ヒストグラムから、当該陰影部に関する改善されたコントラストを表す目標ヒストグラムを決定する目標ヒストグラム決定ステップと、
前記陰影部の改善後の輝度ヒストグラムが前記目標ヒストグラムになるように、前記陰影部の複数の画素の輝度を変換する輝度変換ステップと、
輝度を変換された後の前記陰影部と、前記画像の前記陰影部以外の部分とを合成して、輝度改善された画像を生成する画像合成ステップと、
を含むことを特徴とする陰影部輝度補正方法。
【請求項５】
前記目標ヒストグラム決定ステップは、
前記画像が取りうる最大輝度から最小輝度までの範囲に拡大されるべき、前記輝度ヒストグラムの中央領域を、前記輝度ヒストグラムに基づいて決定する中央領域決定ステップと、
前記輝度ヒストグラムの前記中央領域を、前記最大輝度から最小輝度までの範囲に分布する拡大ヒストグラムに変換する中央領域拡大ステップと、
前記輝度ヒストグラムのうち、前記決定された中央領域より小さい輝度に対するヒストグラム下側領域と、前記中央領域より大きい輝度に対するヒストグラム上側領域とを組み合わせて、前記最小輝度から前記最大輝度までの輝度範囲に対して画素数が概略一様なヒストグラムに変換し、変換で生成された前記概略一様なヒストグラムを前記中央領域変換ステップにより生成される前記拡大ヒストグラムに合成して前記目標ヒストグラムを生成する上下側領域拡大ステップと、
を含むことを特徴とする請求項６に記載の陰影部輝度補正方法。
【請求項６】
前記陰影部領域検出ステップの後、ヒストグラム検出ステップの前に、前記画像を複数のブロックに分割する領域分割ステップを更に含み、前記ヒストグラム検出ステップと、前記目標ヒストグラム決定ステップと、前記変換データ生成ステップと、前記輝度変換ステップは、前記陰影部領域の一部が含まれる一群のブロックの各々に対して実行される、ことを特徴とする請求項５又は６に記載の陰影部輝度補正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、人工衛星等から地表を撮影して得た画像等に含まれる、ビル等の建物の比較的大きい陰影部の画像のコントラストを改善して当該陰影部の画像を見やすい画像（すなわち、視認性を向上した画像）にする、陰影部輝度を補正可能なプログラム及び陰影部輝度補正方法に関する。
【背景技術】
【０００２】
本明細書では、特に断らない限り画像は白黒画像であると仮定して、その画像の濃度のコントラストに関する問題及びそれを解決する発明を説明するが、本発明は、カラー画像にも適用でき、カラー画像の場合には、濃度に代わり明度を使用すればよい。しかし、本明細書では、カラー画像の明度も考慮して、濃度に代えて、白黒画像の濃度と反対の白さ又はカラー画像の明度の両方を指す用語として輝度を主に使用する。したがって、輝度は、白黒画像の場合には濃度の反対である白さを指すが、通常、白黒画像の処理では、白さに代えて濃度が処理されるので、輝度は濃度を指すと考えてもよいものとする。但し、その場合には、以下の説明における輝度の大小又は高低は、濃度の小大又は低高と読み替えるものとする。カラー画像の場合には、輝度は明度を指すと考えるものとする。
【０００３】
近年、人工衛星又は航空機等（以下、人工衛星等と呼ぶことがある）により地表を高所から撮影して得られる、地表を撮影した画像（以下、この画像を地理画像と呼ぶ場合がある）に関する地理画像データの利用が広まってきている。例えば、地図の生成や都市部での土地の利用状況の把握あるいは森林等における樹木の存在状態あるいは生育状態という目的に利用され、地表上の広大な領域に関する、目的とする情報を地理画像から高速に得ることが可能になってきている。
【０００４】
しかし、都市部では高層ビル群等の高層建築物の陰となる部分（以下、陰部分と呼ぶことがある）及び影となる部分（以下影部分と呼ぶことがある）は全体として非常に暗く、画像のコントラストが非常に小さく、視認性に欠ける場合が起きている。以下では、陰部分と影部分を合わせて陰影部と呼ぶことがある。
【０００５】
ここで、陰部分は、例えばビル等の物体のうち、その物体の他の部分により太陽光が遮断され、太陽光が照射されなくなった部分である。例えばビルの壁面のうち太陽光が照射されていない壁面である。ビルのいずれかの壁面が陰部分となった場合には、その陰部分の輝度が濃くなり、陰部分内で画像のコントトラスが少なくなり、その壁面に存在する窓等の構造物を識別しにくくなるか識別できなくなるという視認性の問題が発生する。場合よっては、何階のビルであるかも判別したくても、それが困難になるか不可能になる。
【０００６】
影部分は、ビル等の太陽光が照射された物体により地表に投影される黒い部分である。この影部分の濃度が非常に小さくなり、その影部分内の画像のコントラストが少ないと、影部分が投影される地上の物体、例えば、ビル周辺の地面の表面構造を識別しにくくなるか識別できなくなるという、影部分の視認性に関する問題が発生する。より具体的には、道路と歩道との境界部分あるいは歩道にある樹木が識別しにくくなるか識別できなくなる。更には影部分が近傍の他のビルの壁面あるいは屋上に投影された場合には、そのビルの一階と地面との境界部分あるいはそのビルの壁面又は屋上の構造が識別しにくくなるか、識別できなくなる。
【０００７】
このように陰影部の濃度が濃く、画像のコントラストが少ないと、その陰影部内にある物体を明瞭に識別することが難しくなるという、陰影部の視認性の問題が発生し、このことが地理画像データの利用時の問題の一つとなっている。そのため、従来からも陰影部内の視認性を向上させるための研究が活発に行われている。その一例として、特許文献１は、地理画像から影部分を削除する方法を提案している。具体的には、この提案では、衛星画像データに含まれる撮影日時情報とビル等の物体の高さ情報とを取得し、取得された情報に基づいてその物体への太陽光の照射方向、照射角度、当該物体の存在により発生する影の幅とその長さを算出し、算出された情報に基づいてビル等の物体の影部分の存在位置を決定し、当該決定に基づいて影部分を地理画像から削除する技術が提案されている。
【０００８】
なお、地理画像と異なる他の画像についてではあるが、対象物に対する照明が悪いとかあるいは逆光で撮影された場合のように、対象物を撮影して得られる画像のコントラストが低い場合に、画像のコントラストを改善するための方法として、いくつかの手法は知られている。例えば、濃度ヒストグラムを均一化する手法あるいは濃度を線形又は非線形に変換するという手法は知られている（例えば、特許文献２、３、４及び非特許文献１参照）。また、画像のノイズを除去して画像を鮮明にする方法自体も知られている（例えば、非特許文献２参照）。
【特許文献１】特開平１０−２６９３４７号公報
【特許文献２】特開２００２−２０９４００号公報
【特許文献３】特開２００１−１１８０６２号公報
【特許文献４】特開２００２−１４０７００号公報
【非特許文献１】酒井幸市，「デジタル画像処理入門」，ＣＱ出版株式会社，２００２年１０月１日，ｐ．３８−４９
【非特許文献２】八木伸行、外５名，「Ｃ言語で学ぶ実践画像処理」，株式会社オーム社，１９９９年１２月８日，ｐ．５４−６３，８４−９７
【発明の開示】
【発明が解決しようとする課題】
【０００９】
特許文献１に開示されている技術では、影部分のみの除去を行うことを提案しているので、影部分が投影された地上の物体に関する画像情報がなくなり、その物体を全く識別できなくなる。したがって、影部分を削除してもよいという用途にしか適用できない。更に、特許文献１では、陰部分の視認性の低さの問題は何も解決していない。
【００１０】
したがって、本発明の目的は、画像内の陰部分及び影部分の両方を含む陰影部のコントラストを改善して陰影部の視認性を向上するように、画像内の陰影部の輝度を補正可能なプログラム及び陰影部輝度補正方法を提供することである。
【課題を解決するための手段】
【００１１】
上記の目的を問題を解決するために、本発明に係る陰影部の輝度を補正可能なプログラムは、画像内の、陰影部が存在する陰影部領域を検出する陰影部領域検出ステップと、検出された陰影部領域にある複数の画素の輝度ヒストグラムを検出するヒストグラム検出ステップと、検出された輝度ヒストグラムから、当該陰影部に関する改善されたコントラストを表す目標ヒストグラムを決定する目標ヒストグラム決定ステップと、前記陰影部の改善後の輝度ヒストグラムが前記目標ヒストグラムになるように、前記陰影部の複数の画素の輝度を変換する輝度変換ステップと、輝度を変換された後の前記陰影部と、前記画像の前記陰影部以外の部分とを合成して、輝度改善された画像を生成する画像合成ステップと、をコンピュータに実行させるものである。
【００１２】
これにより、陰影部の輝度ヒストグラムに基づいて、陰影部の改善後の目標ヒストグラムを決定でき、陰影部の輝度のコントラストをこの目標ヒストグラムとなるように改善して陰影部以外の部分と合成して輝度改善された画像を生成可能になる。
【００１３】
より具体的には、前記目標ヒストグラム決定ステップは、前記画像が取りうる最大輝度から最小輝度までの範囲に拡大されるべき、前記輝度ヒストグラムの中央領域を前記輝度ヒストグラムに基づいて決定する中央領域決定ステップと、前記輝度ヒストグラムの前記中央領域を、前記最大輝度から最小輝度までの範囲に分布する拡大ヒストグラムに変換する中央領域拡大ステップと、前記輝度ヒストグラムのうち、前記決定された中央領域より小さい輝度に対するヒストグラム下側領域と、前記中央領域より大きい輝度に対するヒストグラム上側領域とを組み合わせて、前記最小輝度から前記最大輝度までの輝度範囲に対して画素数が概略一様なヒストグラムに変換し、変換で生成された前記概略一様なヒストグラムを前記中央領域変換ステップにより生成される前記拡大ヒストグラムに合成して前記目標ヒストグラムを生成する上下側領域拡大ステップと、を含む。
【００１４】
これにより、陰影部の輝度ヒストグラムの中央領域を、画像が持ちうる最小輝度から最大輝度までに分布するように拡大することができ、更に、この拡大対象から除外されたヒストグラム下側領域とヒストグラム上側領域を組み合わせて、最小輝度から最大輝度までの範囲に対して画素数がほぼ一様なヒストグラムに変換するので、陰影部の輝度を、元のヒストグラム下側領域とヒストグラム上側領域に属する輝度を有していた画素の情報を除去しないで、かつ、輝度の分布範囲を最小輝度から最大輝度までの範囲に拡大でき、陰影部の輝度のコントラストを改善することが可能になる。
【００１５】
更に具体的には、前記陰影部領域検出ステップは、前記陰影部が抽出されるように前記地理画像を２値化する２値化ステップと、前記２値化ステップで生成された２値画像から微小な領域を除去し、微小領域を含まない前記陰影部の存在領域を表す陰影部領域画像を生成する、微小領域除去ステップと、を含むものである。これにより、微小な、陰影部でない領域を除いて、陰影部が存在する領域を表す画像を生成することができる。
より具体的には、前記輝度変換ステップは、前記陰影部の改善後の輝度ヒストグラムが前記目標ヒストグラムになるように、前記陰影部の複数の画素の輝度を変換するための輝度変換データを、前記検出された輝度ヒストグラムと前記決定された目標ヒストグラムとに依存して生成する変換データ生成ステップと、前記陰影部の前記複数の画素の輝度を、前記生成された輝度変換データに基づいて変換する輝度変換実行ステップと、を含むものである。これにより、輝度変換前に輝度変換データを生成するので、この輝度変換データを用いて輝度変換を複数の画素に対して続けて実行可能になる。
【００１６】
本発明に係る陰影部の輝度を補正可能なプログラムの他の望ましい態様は、前記プログラムが、前記陰影部領域検出ステップの後、ヒストグラム検出ステップの前に、前記画像を複数のブロックに分割する領域分割ステップを更にコンピュータに実行させるプログラムであり、前記ヒストグラム検出ステップと、前記目標ヒストグラム決定ステップと、前記変換データ生成ステップと、前記輝度変換ステップとは、前記陰影部領域の一部が含まれる一群のブロックの各々に対して実行されるものである。これにより、ブロックに含まれる陰影部部分領域の輝度のヒストグラムがブロック毎に大きく異なっていても、ブロック毎に陰影部領域の輝度のコントラストを改善することが可能になる。
【発明の効果】
【００１７】
本発明によれば、画像に含まれた陰影部のコントラストを改善でき、陰影部の視認性を向上することができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明に係る画像内の陰影部を補正可能なプログラム及び陰影部補正方法の実施の形態を図面を参照して詳細に説明する。
図１は、本発明に係る画像の陰影部を補正可能な装置の一つの実施形態の概略ブロック図である。符号１は、上記装置の一つの実施の形態の全体を指す。本装置１は、例えばパソコン又はワークステーションにより実現される処理装置１０と、メインメモリとして使用されるＲＡＭ（ランダムアクセスメモリ）（図示せず）及び磁気ディスク記憶装置のような補助記憶装置（図示せず）とを含む記憶装置２０と、入出力装置３０とを備えている。入出力装置３０は、キーボード及びマウス等のポインティングデバイスを含む入力装置３１と、ＣＲＴディスプレイ装置等の表示装置３２又はプリンタ３３などの出力装置を備えている。入力装置３１はパラメータの入力やコマンドの起動などに使われる。表示装置３２又はプリンタ３３は、陰影部輝度の補正対象とする画像あるいは当該画像から生成された陰影部を補正した画像などの表示又は印字に使われる。記憶装置２０内にデータが記憶されるときに、当該データが図示しないＲＡＭと図示しない補助記憶装置のいずれに記憶されるかは、あらかじめ当該データ毎に決められている。
【００１９】
処理装置１０には、画像の陰影部の輝度を補正可能なプログラム４０が組み込まれている。プログラム４０は、陰影部領域検出部１００と、領域分割部２００と、陰影部ヒストグラム検出部３００と、目標ヒストグラム生成部４００と、輝度変換部５００というモジュールを含む。陰影部領域検出部１００は、２値化部１１０とノイズ除去部１２０というモジュールを含む。目標ヒストグラム生成部４００は、中央領域決定部４１０と、中央領域拡大部４２０と、上下側領域拡大部４３０というモジュールを含む。輝度変換部５００は、輝度変換データ生成部６００と、輝度変換実行部７００というモジュールを含む。
【００２０】
記憶装置２０には、あらかじめ画像データ２１が記憶され、この画像データ２１をプログラム４０により処理して、２値画像データ２２と、陰影領域データ２３と、領域分割データ２４と、実ヒストグラムデータ２５と、目標ヒストグラムデータ２６と、輝度変換データ２７と、輝度補正後画像データ２８が生成され、記憶装置２０に格納される。以下では断らない限り、画像データ２１は、白黒の多値画像（グレイスケール画像）のデータであると仮定する。
【００２１】
より具体的には、本実施の形態では、陰影部を含む画像の例として、例えば人工衛星や航空機等の高度飛翔体から地表を撮影して得られた地理画像が使用される。プログラム４０は、当該画像を表す画像データ２１に基づいて、当該画像内の陰影部を含む陰影部領域を検出して陰影部領域データ２３を生成し、当該画像を複数のブロックに分割して領域分割データ２４を生成し、上記陰影部領域の一部を含む一群のブロックの各々について、そのブロック内の陰影部部分領域に含まれる複数の画素の輝度に関する実ヒストグラムデータ２５を検出し、その実ヒストグラムデータ２５から、コントラストが改善された目標とする目標ヒストグラムデータ２６を決定し、目標ヒストグラムデータに基づいて、当該陰影部部分領域の前記複数の画素の輝度を変換するための輝度変換データ２７を、前記検出された実ヒストグラムデータ２５と前記決定された目標ヒストグラムデータ２６とに依存して生成し、前記陰影部領域内の前記複数の画素の輝度を前記生成された輝度変換データ２７に基づいて変換して、陰影部のコントラストが改善された、陰影部輝度補正後画像の画像データ２８が生成される。
【００２２】
処理装置１０は、プログラム４０内のそれぞれのモジュールが実行されたときに、陰影部領域を検出する機能ブロック、画像を複数のブロックに領域分割する機能ブロック、陰影部のヒストグラムを検出する機能ブロックと、目標ヒストグラムを生成する機能ブロックと、陰影部の輝度を変換する機能ブロックという複数の機能ブロックとしてコンピュータを動作させる。したがって、処理装置１０とプログラム４０のこれらのモジュールにより、それぞれのモジュールに対応する複数の機能ブロックが実現されることになる。したがって、処理装置１０と、記憶装置２０と、入出力装置３０と、陰影部領域検出部１００、領域分割部２００、陰影部ヒストグラム検出部３００、目標ヒストグラム生成部４００、輝度変換部５００は、本発明に係る、画像の陰影部の輝度を補正可能な装置の一つの実施の形態を実現することになる。
【００２３】
プログラム４０は、本発明に係る、画像の陰影部輝度を補正可能なプログラムの一つの実施の形態を実現するものであり、記録媒体に記録してあるいはネットワークを介して記憶装置２０に記憶され処理装置１０で実行される。プログラム４０は、記録媒体に記録されて又はネットワークを介して販売可能である。処理装置１０が画像の陰影部輝度を補正可能なプログラム４０を実行して画像の陰影部輝度を補正する手順は、本発明に係る画像の陰影部輝度補正方法の一つの実施の形態を実現する。
【００２４】
図２は、地理画像の一例を模式的に示す図である。図には、ビルＡ（２１１）、ビルＢ（２１２）、ビルＣ（２１３）が存在し、複数の箇所に道路２１４が存在し、複数の車２１５が存在している。図では画面右上方から太陽光が照射され、ビルＡ（２１１）の影２２１、Ｂ（２１２）の影２２２、Ｃ（２１３）の影２２３ができ、雲の影２２４もできている。
【００２５】
非常に広範囲に陰影部が存在している。それぞれのビルの壁面は、太陽光が当たらない陰部分となっている。例えばビルＣ（２１３）には、ビルＡの影２２１が投影されており、ビルＣの下方部の地面には、ビルＣの影２２３も重畳して投影されている。ビルＢ（２１２）には、ビルＡ（２１１）の影２２１と雲の影２２４が重なって投影され、更に、ビルＢの下方部の地面には、更にビルＢの影２２２も重畳されている。このため、このビルＢの下方部の地面は非常に濃度が濃くなっており、その部分の画像は識別しにくい。ビルＢの壁面も同様に識別しにくい。一方、ビルＣの壁面及びその下方部の地面の濃度はそれほど濃くない。一方、陰影部でないところでは、太陽光が直接照射されているので、非常に濃度が低く、画像全体としては、濃度の範囲は非常に広く、陰影部が非常にコントラストが低い状態にあり、陰影部の視認性が低いことが分かる。
【００２６】
従来、画像のコントラストを改良する方法として、線形変換あるいは輝度ヒストグラムの平坦化という手法が知られている（例えば、非特許文献２参照）。
図１６は従来技術による線形変換とその問題点を説明するための図である。線形変換は、同（ａ）に示すように、輝度のヒストグラムの輝度の範囲［ａ+１，ｂ-１］を輝度の範囲［ａ'，ｂ'］に変換することで輝度のコントラストを拡大する手法である。任意の画素の輝度ｉ（ａ+１≦ｉ≦ｂ-１）が輝度ｉ'（ａ'≦ｉ'≦ｂ'）に変換される。例えば、同図（ｂ）のヒストグラムに示すように、画像の輝度の範囲が実質的に輝度の範囲［ａ+1，ｂ-1］内である場合、ａ'＝０、ｂ'＝ＭＡＸ（最高の輝度）のときは、変換後の輝度の範囲［ａ'，ｂ'］は、同図（ｃ）のヒストグラムに示すように、輝度の最大の範囲［０，ＭＡＸ］となりコントラストが改善される。
【００２７】
図１７（ａ）は、図２のように、陰影部と明るい非陰影部を含む画像に対するヒストグラムの例を模式的に示す図であり、同図（ｂ）は、このヒストグラムに対して線形変換をした結果得られるヒストグラムの例を模式的に示す図である。図１７（ａ）から分かるように、図２に例示したような画像では、陰影部の輝度の最小値ａ＋１も画像が取りうる輝度の最小値０に近く、かつ非陰影部の輝度の最大値ｂ−１も、画像が取りうる輝度の最大輝度ＭＡＸに近い。このような画像に線形変換を施しても、得られるヒストグラムの輝度の範囲は、図１７（ｂ）に示すように、同図（ａ）に示した元の輝度の分布範囲に比べてそれほど大きくは拡大されない。したがって、図２のような画像に対しては、従来の線形変換では、コントラストの改善は難しい。
【００２８】
また、ダイナミックレンジの拡大のために、線形変換する輝度の範囲［ａ+1，ｂ-1］を図１７（ａ）内の画素が存在する輝度の範囲内の一部の範囲に制限して、その範囲内の画素のみの輝度を輝度の最大の範囲［０，ＭＡＸ］に変換することも考えられるが、この場合には、輝度ｉがｉ≦ａ+1となる輝度の画素は処理後に輝度が０となり、つぶれという現象が起きる。また、ｂ-1≦ｉとなる輝度の画素は処理後に輝度がＭＡＸとなり、白とびという現象が起きる。白とびやつぶれが起きるとその部分の情報が失われるという問題がある。
更に、従来技術によるヒストグラムの平坦化では、得られる画像は、コントラストが強すぎ、ノイズも多く発生して、見にくい画像になってしまう。
【００２９】
本発明では、図２のような画像に含まれたコントラストが低い陰影部の視認性を向上するために、陰影部が存在する陰影部領域を検出して、その陰影部領域にある画素に対して輝度を補正する処理を施す。なお、非陰影部領域内の画素の輝度の分布も場所により大きく異なるので、本実施の形態では、画像を複数のブロックに分割し、各ブロック内の陰影部領域部分ごとに陰影部の輝度補正を施す方法を採る。しかし、画像によっては、ブロックに分割しなくてもよい場合もある。
【００３０】
図１において、プログラム４０は、起動されると、まず、陰影部領域検出部１００を実行する。陰影部領域検出部１００は、まず、２値化部１１０を起動する。２値化部１１０は、図１６（ａ）に例示したように、陰影部に属する画素の輝度が値１になり、非陰影部の画素の輝度が値０となるように、画像データ２１を適当な閾値を用いて２値化して２値画像データ２２に変換する。２値化部１１０での２値化処理には、モード法、判別分析法、Ｐタイル法、微分ヒストグラム法などの種々の周知技術を適用可能である。どの方法で２値化を行うのが適切であるかは対象画像によって異なるので、画像に合わせて適切な方法を選択すればよい。
【００３１】
なお、Ｐタイル法は、抽出すべき対象図形の面積、あるいは面積の全体に対する割合があらかじめ予測できる場合に使用する。モード法は、絵柄領域と背景領域とからなる画像の場合、輝度のヒストグラムが２つの山をもつことが多いことを利用し、輝度のヒストグラムの谷の値を輪郭に相当する閾値として決定する手法である。微分ヒストグラム法は、輝度のヒストグラムの形が急変する部分を利用して閾値を決定する手法である。判別分析法は、ある値ｆｔにて画像全体の輝度のヒストグラムを２つのクラス（級）に分けた場合、級間分散÷（クラス１の級内分散＋クラス２の級内分散）の算出結果が最大となるときのｆｔをしきい値として決定する手法である。なお、一般的には判別分析法を用いると陰影部と非陰影部を区分しやすい。本実施の形態でも判別分析法を使用した。
【００３２】
図３（ａ）は、２値化部１１０により図２に示す図から生成された２値画像を模式的に示す図である。２値化部１１０の処理により単に閾値で２値化して陰影部領域を検出しようとすると、非常に小さな領域までも検出してしまい、この領域がノイズとなり見にくい画像となってしまう。例えば、この図に示すように、道路の境界線あるいはビルＣの屋上の境界線の一部というような細い線あるいは自動車というような小さな画像も検出されている。このような画像部分は、元の地理画像中の、陰影部以外の明るい領域に存在した部分的に暗い部分である。これらは、陰影部を示す画像ではなく、陰影部から見るとノイズである。更に、陰影部分内に明るい小さな物体が存在したときに、明るい小さな画像が検出されることがある。このような画像も本来は陰影部として検出されるべきノイズ部分である。あるいは陰影部の境界がギザギザになる場合もある。
【００３３】
ノイズ除去部１２０は、このような、陰影部ではないと考えられる、黒い小さい画像、細い線、あるいは逆に陰影部として検出されるべき明るい小さい画像あるいは輪郭のギザギザ等をノイズとして除去する。ノイズ除去には、膨張収縮処理やラベリング処理による小面積除去処理などが知られている（例えば、非特許文献２参照。）。
【００３４】
図４は、ノイズ除去部１２０の処理の一例を示す概略フローチャートである。まず、２値画像データ２２を読み込み（ステップＳ１２１）、膨張収縮回数α、小面積サイズβを利用者により入力装置から入力させる（ステップＳ１２２）。つぎに膨張→収縮→収縮→膨張の順番でそれぞれ1画素分ずつα回行う。すなわち、α回膨張処理（ステップＳ１２３）、α回収縮処理（ステップＳ１２４）、α回収縮処理（ステップＳ１２５） α回膨張処理（ステップＳ１２６）を実行する。以上の処理を行うことで２値画像データ２２から、ノイズとなる細長い黒色又は白色の領域が消え、また、ギザギザの輪郭が滑らかな輪郭になる。つぎに、面積がβ以下の領域を除去するための処理を行い微小領域を除去する。すなわち、β以下のサイズの黒領域を白領域に変換し（ステップＳ１２７）、β以下の白領域を黒領域に変換する（ステップＳ１２８）。本実施の形態では、黒領域を白領域に変換する処理（ステップＳ１２７）→白領域を黒領域に変換する処理（ステップＳ１２８）の順番で行ったが、順番を逆にしてもよい。以上の処理結果を陰影領域データ２３として記憶装置２０に保存する（ステップＳ１２９）。
【００３５】
陰影領域データ２３は、陰影部が存在する領域内の画素の輝度値が１であり、他の画素の輝度値は０である画像データである。この画像データの各画素は、画像データ２１の一つの画素に対応していて、画像データ２１内の対応する画素が陰影部領域内に位置しているか否かを示すことになる。
【００３６】
図３（ｂ）に戻り、同は、ノイズ除去部１２０の処理の後に得られる陰影領域データ２３が表す、陰影部が存在する領域の例を示す図である。黒色で示された領域が、その領域である。図から分かるように、ビルなどの比較的大きな陰影部だけが示され、図３（ａ）に含まれたノイズ部分は、除去されている。こうして、ノイズ除去部１２０の処理が終了し、陰影部領域検出部１００の処理が終了する。
【００３７】
本発明では、陰影部のダイナミックレンジを拡げるために陰影部に対して輝度補正を行う。輝度補正を行うのは、図２の画像のうち、図３（ｂ）の黒色で示された陰影部領域に含まれた画素に対してである。陰影部領域内の画素の輝度の分布は画像内の場所により大きく異なる。例えば図２に例示した地理画像には、いくつかの影が重なり合うことによってさまざまな輝度の陰影部分が含まれている。そのためそれぞれの陰影部分領域の輝度のヒストグラムにあった輝度補正を行うことが望ましい。そのため本実施の形態では、画像を複数のブロックに分割し、各ブロック内の陰影部部分領域ごとに陰影部の輝度補正を施す方法を採る。そのため、陰影部領域検出部１００が終了すると、図１に戻り、プログラム４０内の領域分割部２００が実行され、画像データ２１に基づいて画像を複数のブロックに分割して、領域分割データ２４を生成して記憶装置２０に記憶する。
【００３８】
図５（ａ）は、図２の画像を複数のブロック２４Ｂに分割した状態を示す図である。ブロック２４Ｂは、ここでは正方形と仮定し、そのサイズ（一辺の画素の数）をＮｂする。利用者は、そのサイズＮｂを陰影部の輝度の分布状態によって適宜指定可能である。図では画像が４×４個のブロックに分割されているが、このようなブロックサイズは一例であり、他のサイズのブロックを使用してもよいことは言うまでもない。例えば、サイズＮｂを試行錯誤的に決めることもできる。ブロックサイズＮｂの初期値を決め、そのブロックサイズの元で、補正対象の陰影画像を補正し、その後、そのブロックサイズを増大あるいは減少する方向に変更し、変更後の陰影画像の補正結果を変更前の陰影画像の補正結果とを見比べて、ブロックサイズの変更により、陰影画像の補正結果がよくなっているか否かを判断し、よくなっていると判断したときには、更にサイズをそれまでのサイズの変化の方向と同じ方向（大きくする方向又は小さくする方向）に変化することを繰り返し、サイズの変更がよくないと判断したときに、サイズを変更前の値に戻すようにしてもよい。なお、ブロックサイズを上記初期値より増大又は減少した後の補正結果が、ブロックサイズが上記初期値であるときの補正結果よりよくないと判断されたときには、ブロックサイズの変更方向を逆方向にして、以上と同様にして望ましいブロックサイズを決めればよい。あるいは、ブロックサイズを決める他の方法として、画像内の陰影部のサイズに依存してブロックサイズを決めることも考えられる。例えば、大きなビルの陰影部分のほぼ全体が一つのブロックに収まるように、ブロックサイズを決めることも考えられる。同図（ｂ）は、画像データ２１内のブロック２４Ｂに関するいくつかのパラメータを説明するための図である。ここでは、画像の左上角の画素の位置に原点があり、ｘ軸、ｙ軸が図に示すように、垂直下方方向及び水平右方向に定義される。画像データ２１のｘ軸方向とｙ軸方向のサイズ（画素数）をＮｘ、Ｎｙとする。ブロックのサイズをブロックの行数Ｒow、列数Ｃolは、ブロックのサイズＮｂと画像のサイズＮｘ、Ｎｙにより定まる。ブロックには、行番号ｉＢlk、列番号ｊＢlkが与えられる。各ブロックの一つの画素が、ブロック代表画素とする。例えば、各ブロックの左上角の画素をブロック代表画素とする。
【００３９】
ブロック代表画素を図に示すように左上角の頂点の画素Ａとすると、その座標（ｘｂ，ｙｂ）は下記の式１ａ、１ｂにより与えられる。
ｘｂ＝ｉＢlk×Ｒow        （１ａ）
ｙｂ＝ｊＢlk×Ｃol        （１ｂ）
ブロックの他の３個の頂点の画素Ｂ、Ｃ、Ｄの座標は、それぞれつぎのとおりである。Ｂ（ｘｂ＋Ｎｂ−１，ｙｂ）、Ｃ（ｘｂ＋Ｎｂ−１，ｙｂ＋Ｎｂ−１）、Ｄ（ｘｂ，ｙｂ＋Ｎｂ−１）。
【００４０】
図５（ｃ）は、領域分割データ２４の例を示す図である。図に示すように、領域分割データ２４は、複数のブロックに共通なデータとして、画像のサイズＮｘ、Ｎｙと、ブロックのサイズＮｂと、ブロックの行数Ｒowと列数Ｃolとを含んでいる。領域分割データ２４には、ブロック別データとして、各ブロックの行番号ｉＢlkと列番号ｊＢlkの組に対応して、陰影部存在フラグＦｓとブロック内陰影部総画素数Ｃとが記憶される。ブロックに対応する陰影部存在フラグＦｓは、当該ブロック内に陰影部に属する画素があるか否かを示すフラグであり、陰影部に属する画素があるときには値１となる。当該ブロックに対するブロック内陰影部総画素数Ｃは、そのブロック内に存在する、陰影領域データ２３に所属する画素の総数である。
【００４１】
陰影領域データ２３も、論理的には、画像データ２１の複数のブロックにそれぞれ対応する、当該ブロックと同じサイズの複数のブロックに分割されていると考えることができる。画像データ２１内の各ブロック内に陰影部に属する画素があるか否かは、当該ブロックに対応する、陰影領域データ２３内のブロック内に値１の画素があるか否かにより判断される。画像データ２１内の当該ブロックに対するブロック内陰影部総画素数Ｃは、陰影領域データ２３内の、当該ブロックに対応するブロック内にある値１の画素の数である。
【００４２】
陰影部存在フラグＦｓの決定にあたっては、まず当該ブロックについてブロック内陰影部総画素数Ｃを計数し、この総数Ｃが０でないときには、陰影部存在フラグＦｓの値を１にセットし、総数Ｃが０であるときには、陰影部存在フラグＦｓの値を０にセットすればよい。なお、陰影部存在フラグＦｓを使用しないで、ブロック内陰影部総画素数Ｃのみを記憶し、総数Ｃが０でないかあるいは０であるかにより、当該ブロック内に陰影部に属する画素が少なくとも一つ存在すると判断するようにしてもよい。あるいは、逆に、陰影部存在フラグＦｓのみをブロックに対応して記憶し、ブロック内陰影部総画素数Ｃは、必要となる毎に、陰影部存在フラグＦｓが値１である場合には、その内部の画素に対応する陰影領域データ２３内の画素の値に基づいて、ブロック内陰影部総画素数Ｃを計数するようにしてもよい。陰影部存在フラグＦｓが値０である場合には、ブロック内陰影部総画素数Ｃの値は計数するまでもなく０である。
【００４３】
後に説明するように、いずれかのブロック内の陰影部の画素のヒストグラムを検出するときに、当該ブロック内に陰影部に属する画素が含まれているか否かを、当該ブロックに対する陰影部存在フラグＦｓの値が１であるか否かにより判別して、当該ブロックに対する陰影部存在フラグＦｓの値が１であるときには、当該ブロック内の各画素が陰影部内の画素であるかを判別すればよい。しかし、当該ブロックに対する陰影部存在フラグＦｓの値が０であるときには、当該ブロック内には陰影部内の画素が存在しないので、そのブロックに対しては、輝度ヒストグラムを生成する必要はない。
【００４４】
図１に戻り、領域分割部２００の処理の終了後に、プログラム４０は、陰影部に属する画素が存在している一群のブロックの各々に対して、以下の処理を実行する。陰影部に属する画素が存在している一群のブロックは、既に述べたように、対応して記憶された陰影部存在フラグＦｓの値が１であるブロックである。
【００４５】
まず、陰影部ヒストグラム検出部３００が実行される。陰影部ヒストグラム検出部３００は、各ブロック別に、当該ブロック内の全画素のうち、陰影部内にある複数の画素についての輝度ヒストグラムを検出し、実ヒストグラムデータ２５として記憶装置２０に記憶する。なお、ブロック内の画素のうち陰影部に属さない画素は、本実施の形態では処理されない。非陰影部は太陽光が照射されている箇所であるため既に見やすい画像であるためである。本実施の形態では、陰影部にだけ輝度補正を行うことにより処理時間も短縮できるようになっている。
【００４６】
図１に戻り、陰影部ヒストグラム検出部３００の処理の終了後に目標ヒストグラム生成部４００が実行される。目標ヒストグラム生成部４００は、各ブロック別に、当該ブロック内の画素のうち陰影部に属する画素のコントラストを改良した後のヒストグラムを、当該ブロックに対する目標ヒストグラムとして生成し、目標ヒストグラムデータ２６として記憶装置に格納する。目標ヒストグラム生成部４００には、中央領域決定部４１０と、中央領域拡大部４２０と、上下側領域拡大部４３０とが含まれている。
【００４７】
図６は、目標ヒストグラム生成部４００の処理の概要を説明するための図である。同図（ａ）において、ｆ(ｉ)はいずれかのブロックに対して検出された輝度ヒストグラムを模式的に表し、輝度ｉを有する画素数を示す関数である。Ａはヒストグラムの下側領域、Ｂは中央領域、Ｃは上側領域を示す。
【００４８】
本実施の形態では、ヒストグラムの中央領域Ｂを、同図（ｂ）に示すように、画像が取りうる最小輝度０から最大輝度ＭＡＸまでの範囲の輝度を有するように拡大されたヒストグラムｇ（ｉ）に変換する。このとき、同（ａ）に示すヒストグラムの下側領域Ａと上側領域Ｃに属する輝度を有する複数の画素は、従来技術によれば、同図（ｂ）に示すように、輝度０又はＭＡＸにそれぞれ変換される。このままなら、輝度ｉがｉ≦ａ+1となる輝度ｉは処理後に輝度が０となり、つぶれという現象が起きる。また、ｂ-1≦ｉとなる輝度ｉは処理後に輝度がＭＡＸとなり、白とびという現象が起きる。白とびやつぶれが起きるとその部分の情報が失われるという問題がある。このような問題をなくすために、本実施の形態では、それらの領域の画素の輝度別の画素数を、同図（ｃ）に示すように、最小輝度０から最大輝度ＭＡＸの範囲でほぼ一様であるヒストグラムに変換し、上記拡大されたヒストグラムｇ(ｉ)と上記ほぼ一様なヒストグラムとを合成して、目標ヒストグラムｈ(ｉ)を生成する。
【００４９】
これにより、同図（ａ）に示すヒストグラムの中央領域Ｂが最大範囲に拡大でき、このときに変換されなかった同図（ａ）の下側領域Ｂと上側領域Ｃに属する画素が、無視されることなく、同図（ｃ）に示すようにほぼ一様なヒストグラムに属するように、目標ヒストグラムが決定される。本発明では、このように、元のヒストグラムの下側領域Ａと上側領域Ｃに属する画素を切り出し、同図（ｃ）に示すようにほぼ一様なヒストグラムに属させることをクリッピングと呼ぶことがある。上記下側領域Ａの輝度限界値と上記上側領域Ｃの輝度限界値をそれぞれ下側限界値又は上側限界値と呼ぶことがあり、あるいはそれぞれの限界値を下側クリッピング値及び上側クリッピング値と呼ぶことがある。
【００５０】
図１に戻り、目標ヒストグラム生成部４００では、まず中央領域決定部４１０が実行される。
図７は、中央領域決定部４１０の処理の一例の概略フローチャートである。本実施の形態では、ブロック内に存在する陰影部内に属する画素の総数Ｃのうち、一定の比率Ｒを有する輝度が小さい側の画素の集合を下側領域Ａとし、ブロック内に存在する陰影部内に属する画素の総数Ｃのうち、一定の比率Ｒを有する輝度が大きい側の画素の集合を上側領域Ｃと定める。一定の比率Ｒは、利用者にあらかじめ指定させておく。
【００５１】
図７において、まず、輝度値ｎを初期値０に設定し（ステップＳ４１１）、いずれかの処理中のブロックに対して得られたヒストグラムデータを表す関数ｆ(ｉ)に基づいて、最小の輝度値０から輝度値ｎ迄の画素数の累積値がブロック内陰影部総画素数Ｃと一定の比率Ｒとの積Ｃ×Ｒを越えたか否かを判定し（ステップＳ４１２）、越えていないときには、輝度値ｎを値１だけ増大する（ステップＳ４１３）ことを繰り返し、ステップＳ４１２において、初めて画素数の積算値が上記積を越えたと判断されたときに、そのときの輝度値ｎの値を、ヒストグラム下限領域Ａの上限輝度ａに設定する（ステップＳ４１４）。中央領域Ｂの下限輝度はａ+１になる。
【００５２】
その後ステップＳ４１５で輝度値ｎの値を１だけ増やして、最小の輝度値０から輝度値ｎまでの値に対する画素数の累積値がブロック内陰影部総画素数Ｃと（１−Ｒ）との積にＣ×（１−Ｒ）を初めて越えるとステップＳ４１６で判定されるまで、輝度値ｎを繰り返し値１ずつ増大し（ステップＳ４１７）、上記累積値が初めて上記積を越えたときに、そのときの輝度値ｎより１小さい値をヒストグラムの上側領域Ｃの下限輝度ｂとする（ステップＳ４１８）。中央領域Ｂの上限はｂ−１となる。
【００５３】
これにより、中央領域Ｂとして、輝度ａ+1からｂ-1までの輝度に対するヒストグラム部分が決定される。ヒストグラムの下側領域の最大輝度はａとなり、上側領域Ｃの最小輝度はｂとなる。なお、以上のようにして求めた値ａ、ｂをそれぞれヒストグラムの中央領域Ｃの最小輝度、最大輝度としてもよいことは言うまでもない。このときには、下側領域Ａの上限輝度はａ-１となり、上側領域Ｃの下限輝度はｂ+１となる。
【００５４】
こうして中央領域決定部４１０の処理が終了すると、中央領域拡大部４２０が実行される。ここでは、決定された中央領域Ｂの下限輝度ａ+１と上限輝度ｂ-１とを使用して、図６（ａ）に示した中央領域Ｂに対して、図１６（ａ）に示したような線形変換が実施され、図６（ｂ）に示したように、中央領域Ｂは、最小輝度０から最大輝度ＭＡＸまでの拡大された輝度範囲に分布するヒストグラムｇ(ｉ)に変換される。なお、ここでは、中央領域を拡大するために線形変換を使用したが、場合により非線形変換等の他の変換を使用してもよい。
【００５５】
図６（ｂ）に示すように、従来技術での線形変換では、元のヒストグラムの下側領域Ａに属する画素の輝度は輝度０のところに変換され、元の上側領域Ｃに属していた画素の輝度は輝度の最大輝度ＭＡＸのところに変換されるが、本実施の形態では、これらの領域に属していた画素には上記線形変換を施さない。上下側領域拡大部４３０は、これらの領域Ａ、Ｃの画素を、図６（ｃ）に示したように、最小輝度から最大輝度ＭＡＸまで概略一様なヒストグラムに変換し、変換で生成される概略一様なヒストグラムを先に生成された拡大ヒストグラムｇ(ｉ)と合成して目標ヒストグラムｈ(ｉ)を生成する。この結果、従来技術で生じる白とびやつぶれは生じない。上記のように、上下側領域拡大部４３０による処理は、線形変換で発生するオーバーフローした画素を、線形変換後の輝度のヒストグラムの下部に配置する処理であるとも言える。本明細書では、このような処理をクリッピングとも呼ぶことがある。
【００５６】
図８は、上下側領域拡大部４３０の処理の一例の概略フローチャートである。ステップＳ４３１では、元のヒストグラムの下側領域の画素数の累積と上側領域の画素数の累積との総和を異なる輝度数である（ＭＡＸ＋１）で割ることにより平均画素数ａveを計算する。この平均値ａveは、これらの下側領域と上側領域を一様なヒストグラムに変換したときの各輝度における画素数を与えるものである。ステップＳ４３２以降では、この一様なヒストグラムと、先に線形変換で得られた拡大されたヒストグラムｇ(ｉ)とを合成して目標ヒストグラムｈ(ｉ)を生成するようになっている。
【００５７】
まず、ステップＳ４３２では、輝度ｉを最小値０に設定する。その後ステップＳ４３３で、輝度ｉに対して拡大されたヒストグラムｇ(ｉ)と平均画素数ａveとを加算して、合成後のヒストグラムを表す関数ｈ(ｉ)を計算する。その後ステップＳ４３３で輝度ｉを１だけ増大して、輝度が最大輝度ＭＡＸを超えない範囲でステップＳ４３４の計算を繰り返す。こうして、先に得られた拡大されたヒストグラムと上記一様なヒストグラムを合成したヒストグラムｈ(ｉ)が得られ、このヒストグラムｈ(ｉ)が、目標ヒストグラムとして使用される。この目標ヒストグラムを表すデータ２６が記憶装置２０に格納される。
【００５８】
なお、ステップＳ４３１において計算された平均画素数ａveは、一般には整数ではない。したがって、合成後の目標ヒストグラムｈ(ｉ)も整数でなくなる。しかし、ステップＳ４３３で目標ヒストグラムｈ(ｉ)を決定するときには、画素数ｈ(ｉ)を、整数となるように決定するものとする。そのためにの一つの方法は、平均画素数ａveが整数でないときには、ステップＳ４３３において、拡大されたヒストグラムの画素数ｇ(ｉ)と平均画素数ａveを加算するときに、輝度ｉに応じて、加算する平均画素数ａveの値として、ステップＳ４３１で計算された平均画素数ａveを越えない最大の整数と、それより１大きな整数との一組の整数を交互に選んで使用し、全ての輝度ｉに対して使用した平均画素数ａveの総和が、ステップＳ４３１の平均の計算式の分子で計算された総画素数に等しくなるように、輝度ｉに応じて平均の画素数ａveを調整すればよい。もちろん、他の方法を使用するこｔもできる。以下では、このようにして、目標ヒストグラムの画素数ｈ(ｉ)は整数になるように決定されるとする。なお、目標ヒストグラムの画素数ｈ(ｉ)は非整数のままにして、後で輝度変換するときに、上に述べたのと類似の方法を使用して、非整数の平均値ｈ(ｉ)に対して割り当てる画素の数が整数となるように、割当てる画素数を調整してもよい。
【００５９】
こうして目標ヒストグラム生成部４００の処理が終わると、プログラム４０は、つぎに、輝度変換部５００（図１）を実行する。輝度変換部５００は、まず輝度変換データ生成部６００を実行し、輝度変換データを生成する。このデータは、実ヒストグラムデータ２５を目標ヒストグラムデータ２６に変換するのに使用される。輝度変換データ生成部６００の処理の詳細を説明する前に、輝度変換がどのように行われるかを説明する。
【００６０】
図９（ａ）は、いずれかのブロックの陰影部領域内の画素に関する実ヒストグラム２５の例を示す図である。同図（ｂ）は、そのブロックに対する目標ヒストグラムの例を示す図である。同図（ｃ）は、同図（ａ）に示す実ヒストグラムを表す関数ｆ(ｉ)のグラフを示す図である。同図（ｄ）は、同図（ｂ）に示す目標ヒストグラムを表す関数ｈ(ｉ)のグラフを示す図である。同図（ｃ）では、同じ輝度の画素に関しては、同じ斜線等の模様を用いて画素数が示されている。同図（ｄ）では、同図（ｃ）の輝度が変換される前の画素に対して用いた模様が、輝度が変換された後の画素にも付けられている。
【００６１】
例えば、目標ヒストグラムの輝度０には、実ヒストグラムの輝度０、１のそれぞれ一つの画素と、輝度２の２個の画素のうちの一つの合計３つの画素が割り当てられる。同様に、目標ヒストグラムの輝度１には、実ヒストグラムの輝度２の２個の画素のうちの残りの一つと、現輝度３の３つの画素のうちの２個の画素との合計３個の画素が割り当てられる。同様に、目標ヒストグラムの輝度２には、実ヒストグラムの輝度３の３個の画素のうちの残りの一つと、現輝度４の４つの画素のうちの３個の画素との合計４個の画素が割り当てられる。同様に、目標ヒストグラムの輝度３には、実ヒストグラムの輝度４の４個の画素のうちの残りの一つと、現輝度５の５つの画素のうちの４個の画素との合計５個の画素が割り当てられる。以下、同様である。
【００６２】
図１０は、図９（ａ）、（ｂ）に示された実ヒストグラムと目標ヒストグラムに対する輝度変換データ２７の例としての輝度変換テーブルの例を示す図である。以下では、輝度変換テーブルも参照符号２７を付けて呼ぶ場合もある。輝度変換データ２７は、変換元の画素の輝度ｉ（２７Ａ）と、当該輝度ｉを有する変換対象画素の総数ｆ(ｉ)（２７Ｂ）と、当該輝度ｉに対する変換先輝度Ｔ(ｉ)（２７Ｃ）と、同じ輝度ｉに対する変換先輝度Ｔ(ｉ)が複数個ある場合には、同じ輝度ｉの変換対象画素の総数ｆ(ｉ)のうちそれぞれの変換先輝度Ｔ(ｉ)に変換される部分変換対象画素数２７Ｄとを含む。変換先輝度Ｔ(ｉ)は、目標ヒストグラムｈ(ｉ)となるように、元画像のヒストグラムを低輝度から順に足し合わせていき、輝度補正する際の各画素の輝度の割当てを再構成する。もちろん高輝度の画素から順に割り当てるようにしてもよい。この際、同じ変換元の輝度ｉに対する変換先の輝度Ｔ(ｉ)が複数個ある場合には、それぞれの変換先輝度毎に、その輝度に変換されるべき部分変換対象画素数を決めてある。なお、元の画素の輝度の変換にあたっては、輝度変換対象画素の総数から、それぞれの変換先輝度に変換される画素をランダムに決定する。この決定については、後に例を用いて更に詳しく説明する。
【００６３】
図１１は、輝度変換データ生成部６００の処理の一例の概略フローチャートであり、ここでは、輝度変換データ２７として、図１０に例示した輝度変換テーブル２７を生成する。以下では、図９（ａ）又は（ｃ）に示した変換元の実ヒストグラムと図９（ｂ）又は（ｄ）に示した変換目標ヒストグラムとを適宜参照して、輝度変換データ生成部６００の処理を説明する。
【００６４】
輝度変換データ生成部６００は、まずステップＳ６０１で、輝度ｉを０にセットし、変数HighとＬowを０にセットする。変数Highは、目標の輝度ｉに割り当てる元の画像の輝度の最大輝度であり、変数Ｌowは、目標の輝度ｉに割り当てる元の画像の輝度の最小値である。ステップＳ６０２で、輝度ｉが最大輝度ＭＡＸ以下であるかを判定し、そうであれば、ステップＳ６０３にて変数Ｓumを初期値０にセットする。変数Ｓumは、目標ヒストグラムの輝度ｉにおける画素数ｈ(ｉ)に割当て候補とされた元の画像の画素の数を表す。
【００６５】
つぎにステップＳ６０４において変数Ｓumが、目標ヒストグラムの輝度ｉにおける画素数ｈ(ｉ)より小さいことを判定する。すなわち、目標ヒストグラムの輝度ｉにおける画素数ｈ(ｉ)より小さいときには、元の画像の輝度Highの画素を割り当てられる可能性があることになる。ステップＳ６０４での判定の結果が肯定的であれば、ステップＳ６０５において、元の実ヒストグラムの輝度Highでの画素数ｆ(High)、今の例ではｆ(０)を変数Ｓumに加算し、変数Highの値を１だけ増大する。今の例では、変数Ｓumは、ｆ(０)に等しくなり、変数Highは値１になる。その後、ステップＳ６０４以降が再度実行される。ステップＳ６０４では、ステップＳ６０５で更新された変数Ｓumの更新後の値が目標ヒストグラムの輝度ｉにおける画素数ｈ(ｉ)より小さいか否かを判定する。小さい限り、ステップＳ６０５が繰り返される。
【００６６】
図９（ａ）又は（ｃ）の場合には、目標ヒストグラムの輝度０における画素数ｈ(０)は３であり、元の画像の輝度０、１、２における画素数はそれぞれ１、１、２であるので、Ｓumがｆ(０)（＝１）になり、変数Highが１になり、その後にＳumがｆ(０)＋ｆ(１)＝２に増大され、変数Highも値２に増大された後も、ステップＳ６０４では、Ｓumはまだ目標画素数ｈ(０)（＝３）より小さいと判断され、ステップＳ６０５で再度Ｓumに次の元の画素数ｆ(２)が加算されてＳumの値はｆ(０)＋ｆ(１)＋ｆ(２）(＝４）になり、変数Highが３に増大される。加算後のＳumの値４は、目標の画素数ｈ(０)＝３より大きくなる。このことは、目標の輝度ｉ＝０に対して、元の画像の輝度０、１の画素を割り付けることができるが、輝度２の画素は全てを割り付けられないことを意味する。したがって、処理はステップＳ６０６に移る。そこでは、変数Highが１だけ減じられ、今の例では値２になり、差分Deltを次式２により求める。
【００６７】
Delt＝ｆ(High)−（Ｓum−ｈ(ｉ)）    （２）
ここで、（Ｓum−ｈ(ｉ)）は、割当て候補の画素の総数Ｓumのうち、目標の画素数ｈ(ｉ)を越えた画素の総数であり、差分Deltは、割当て候補の画素のうちの最大の輝度の画素数ｆ(High)のうち、上記目標の画素数ｈ(ｉ)を越えた画素の総数分だけ少ない画素の数、すなわち、画素数ｆ(High)のうち目標の輝度ｉに割当て可能な画素の数を表す。例えば、図９（ａ）又は（ｃ）の場合には、Ｓumは４であり、ｈ(０)は３であり、ｆ(２)は４であるので、上記差分Deltは１となる。すなわち、元の画像の輝度２の２個の画素のうち１個は目標の輝度０に割り当てられるが、残りの１個は、目標の輝度０には割り当てられないことを示している。
【００６８】
ステップＳ６０７では、変数Ｌow（今の場合には０）が変数High（今の場合は２）より小さいので、ステップＳ６０８において、変数Ｔmpが変数Ｌowの値（今の場合は０）にセットされ、ステップＳ６１０で、輝度変換テーブルの輝度Ｔmp（今の例では０）に対する変換先輝度Ｔ(Ｔmp)（今の例ではＴ(０)）として輝度ｉ（今の例では０）を設定する。すなわち、陰影部部分領域内の輝度０に変換先Ｔ(０)として輝度０が決定される。ステップＳ６１０が繰り返される毎にステップＳ６０９で、変数Ｔmpが変数Highより小さいか否かが判定され、小さいときに、ステップＳ６１０が繰り返される。こうしてステップＳ６１０が繰り返され変数Ｔmpを１だけ増大し、同様に、元の輝度１に対する変換先輝度Ｔ(１)として輝度０が決定される。以上により、元の画素の輝度ｉが０、１のときには、変換先の輝度はいずれも輝度０であると決定される。このように変換元の輝度に対して変換先の輝度が決定された場合には、輝度変換テーブル２７内に、変換元輝度ｉに対応して輝度変換テーブル２７内の変換先輝度Ｔ(ｉ)（２７Ｃ）に決定された変換先の輝度が格納される。ステップＳ６１０では、更に変数Ｔmpを１だけ増大する。その結果、変数Ｔmpは２になる。その後、ステップＳ６０９において、変数Ｔmpが変数Highより小さくないと判断されると、処理はステップＳ６１１に移る。
【００６９】
ステップＳ６１１では、変換元の画像の輝度Highに対する画素数ｆ(High)（例えばｆ()２）（＝２）のうち、式２で計算した差分Deltの数だけの画素（今の例では１個）を目標の輝度ｉに割り当てる。すなわち、この画素の対してＴ(High)＝ｉとする。すなわち、今の例では、元の輝度２の画素１個に対して変換先輝度Ｔ(２h)＝０が決定される。元の画像の輝度High（今の例では２）を有する画素の数は２であるので、目標の輝度ｉ（今の例では２）に割り当てられる画素の総数（部分変換対象画素数）は１となる。この部分変換対象画素数が、輝度変換テーブル２７内に、変換元の輝度ｉと変換先目標の輝度ｉとの組に対応して部分変換対象画素数２７Ｄとして格納される。以下でも部分変換対象画素数が決定されるごとに、その部分変換対象画素数が輝度変換テーブル２７内に部分変換対象画素数２７Ｄとして格納される。
【００７０】
その後ステップＳ６１２では、次の式３により、元の画像の輝度Highの画素の数ｆ(High)を、元の画像の輝度Highの画素のうちの未割当ての画素の総数に設定しなおす。
ｆ(High)＝Ｓum−ｈ(ｉ)          （３）
【００７１】
今の例では、この値は１に等しい。ステップＳ６１２では、更に、変数Ｌowを変数Highの値（今の例では２）に等しくし、目標の輝度ｉを１だけ増大して値３にする。今の例では、輝度ｉは値１になる。その後処理はステップＳ６０２に戻る。目標のヒストグラムの輝度１の画素数は、図９（ｂ）又は（ｄ）の場合には３であるから、目標の輝度１には、上記ｆ(High)の値（未割当ての画素１個分）がステップＳ６０５にて変数Ｓumに加算され、Ｓumは値１になり、変数Highは１だけ増大され、値３になる。ステップＳ６０４が再度実行された場合、今の仮定のようにＳum（＝１）が画素数ｈ(１)（＝３）より小さく、そのときにはステップＳ６０５が再度実行され、変数Ｓumにｆ(３)の値（今の例では３）が加算され、Ｓumは４になる。その後、変数Highが１だけ増大され４になる。ステップＳ６０４では、変数Ｓum（＝４）が、目標の画素数ｈ(１)（今の例では３）より大きくなるので、処理はステップＳ６０６に再度移る。
【００７２】
ステップＳ６０６では、変数Highの値を１だけ減らして３に戻す。更に、上に説明した式２により差分Deltを計算する。今の場合には、この差分Deltは２になる。その後ステップＳ６０７では、今の場合、変数Ｌowが２であり、変数Highは３であるので、変数Ｌowが変数Highより小さいと判断され、ステップＳ６０８にて、変数Ｔmpが変数Ｌowの値２に設定され、ステップＳ６０９にて、変数Ｔmpは変数Highより小さいと判断されるので、ステップＳ６１０で、元の輝度２の画素のうち、未割当ての画素１個に対する割り当て先の輝度Ｔ(２)として輝度１が決定されれる。すなわち、元の輝度２の２個の画素のうち、未割当ての画素１個に輝度１が割り当てられる。こうして、元の輝度２の２個の画素に対して、目標の輝度０に割り当てられる部分変換対象画素数が１であり、目標の輝度１に割り当てられる部分変換対象画素数が１となる。
【００７３】
その後、変数Ｔmpが１だけ増大されて３になると、ステップＳ６０９では、変数Ｔmpは変数High（３）より小さくないと判断され、処理はステップＳ６１１に移る。ステップＳ６１１では、既に述べたように、輝度High（＝３）を有する元の画素数ｆ(High)（今の例では３）のうち、ステップＳ６０６で計算された差分Delt（今の場合は値２）の数の画素に対して割当て先の輝度Ｔ(３)として、輝度ｉ（今の例では１である）を決定する。割当て先を選択する確率は、割当て画素数（今の場合は２）／割当て候補の画素数（今の場合は３）により決まる２／３である。こうして、元の輝度３の画素３個のうちの２個に対して輝度１が割り当てられる。
【００７４】
その後、既に述べたように輝度３の元の画素の未割当ての画素数を上に述べた式３により計算され、その数が、元の画素の輝度３に対する画素数ｆ(High)に設定される。以下、同様にして、元の画像の後続の輝度の画素に対して、新たな割り当て先の輝度Ｔ(ｉ)が決定される。なお、以上の説明では、ステップＳ６０７による判定では変数Ｌowが変数Highより小さくないという場合は発生しなかった。このような場合が発生するのは、ステップＳ６１２を実行して変数Ｌowを変数Highの値に等しくした後に、ステップＳ６０５が実行され、変数Ｓumが未割当ての元の画素の画素数の値ｆ(High)にされたに、画素数ｆ(High)が次の目標の輝度の画素数ｈ(ｉ)より小さい場合には、ステップＳ６０４では変数Ｓumが画素数ｈ(ｉ)より小さいと判断される。処理はステップＳ６０６に移る。その場合、ステップＳ６０６では、差分Deltが式２にしたがって計算され、その値は画素数ｈ(ｉ)と等しくなる。このような場合には、その後ステップＳ６０７では、変数Ｌowが変数Highより小さくない（両者が等しいと判定されることになる。この場合には処理はステップＳ６１１に移る。ステップＳ６１１の処理は既に説明したとおりであるので、省略する。
【００７５】
以上のようにして、輝度変換データ生成部６００により、図１０に示したような輝度変換テーブル２７が生成される。このデータは、後に図９（ｃ）に示す実のヒストグラムを同図（ｄ）に示すような目標ヒストグラムに変換するのに使用される。
【００７６】
プログラム４０では、輝度変換部５００は、輝度変換データ生成部６００の実行後に輝度変換実行部７００を実行する。この処理では、画像データ２１をコピーしたコピー画像データ（図示せず）を記憶装置２０に記憶し、先に生成された輝度変換テーブル２７を用いて、このコピー画像データ内の処理中のブロック内に含まれる陰影部部分領域に属する画素の輝度を変換して、その画素の輝度を変換後の輝度で置換すればよい。
【００７７】
例えば、図１０の輝度変換テーブルの場合には、変換元輝度ｉが０、１の場合には、それらに対する変換先輝度Ｔ(０)、Ｔ(１)はいずれも０である。元の画素の輝度Ｔ(i)を変換するときに、同じ変換元の輝度ｉに対する変換先の輝度Ｔ(ｉ)が複数個ある場合には、上に述べたように、それぞれの変換先輝度毎に、その輝度に変換されるべき部分変換対象画素数が決定され、輝度変換テーブル２７に格納されている。このような画素の輝度の変換にあたっては、輝度変換対象画素の総数分の画素から、それぞれの変換先輝度に変換される画素を、部分変換対象画素数／輝度変換対象画素の総数の確率で決定すればよい。
【００７８】
例えば、図１０の輝度変換テーブルの場合、元の輝度ｉが２の場合には変換先輝度Ｔ(２)は、０と１の二つがあり、それぞれに対する部分変換対象画素数はいずれも１である。したがって、元の輝度ｉが２の変換対象画素の総数２のうち、１個づつが変換先輝度０と１に変換される。この元の輝度２の２個の画素のそれぞれに対して、変換先輝度０と１を、部分変換対象画素数／輝度変換対象画素の総数の確率、すなわちいずれの変換先に対しても１／２の確率でランダムに決定すればよい。同様に、元の輝度ｉが３の場合には、輝度変換対象画素の総数は３であり、変換先輝度は、１と２の二つがあり、それぞれに変換されるべき部分変換対象画素数は２と１である。したがって、輝度変換対象画素の総数３の画素を、２／３、１／３の確率でランダムに変換先輝度１と２に変換すればよい。
【００７９】
輝度２の２個の画素の輝度の変換先をランダムに決定するには、異なる変換先輝度値を、それぞれの変換先輝度に対する部分変換対象画素数だけ生成して、合計で輝度変換対象画素の総数に等しい変換先輝度値のグループを生成し、輝度が２である変換すべき画素が最初に見つかった場合には、このグループからランダムに一つの変換先輝度値を取りだし、その値をその変換すべき画素の変換先の輝度値とし、当該グループからも、上記取り出された変換先輝度値を削除するようにして、後続の輝度２を有する変換すべき画素の輝度を上記グループを使用してランダムに決定すればよい。
【００８０】
以上のようにして、ブロック内の陰影部部分領域内の複数の画素の輝度をそれぞれ変換して、コピー画像データ内のそれらの画素の輝度を、変換後の輝度で書き換えることにより、当該ブロックの陰影部分領域の輝度変換した画像がコピー画像データ内に生成される。本実施の形態では、輝度を変換するのは各ブロック内の陰影部部分領域内の画素のみであり、ブロック内の非陰影部部分領域に属する画素に対しては輝度変換を行わない。上記コピー画像データには、非陰影部部分領域に属さない画素の輝度も含まれている。したがって、上記コピー画像データに含まれた陰影部部分領域内の画素に対して上記書き換えを行うだけで、当該ブロックの陰影部分領域の書き換え後の画像と、陰影部分領域以外の元の画像とが結果として合成され、当該ブロックについて陰影部領域の輝度を補正した後の当該ブロックの画像が得られる。
【００８１】
以上のような、目標ヒストグラム生成部４００、輝度変換部５００の処理を、陰影部の一部を含む一群のブロックについて行えば、元の画像の陰影部の輝度の補正が完了し、上記コピー画像データは、元の画像の陰影部の輝度を補正した画像データ２８（図１）として使用可能なデータになる。
【００８２】
以上から分かるように、元の画像のヒストグラムの下側領域の画素数又は上側領域の画素数と全画素数との比率Ｒの値を調整することにより、補正後の画像のコントラストを自由に調整することができる。すなわち、比率Ｒを大きくするほど、下側領域と上側領域のいずれの領域についても、それらに含まれる画素の数が多くなり、それらの画素の輝度が一様なヒストグラムになるように変換されるので、コントラストは一様に強くなり、はっきりと視認できるようになる。また、比率Ｒを小さくすればコントラストは強くはないが、その分、自然な画像になる。また、比率Ｒはすべてのブロックに対して一定値を設定してもよいし、ブロックごとにその値を設定してもよい。すべてのブロックで一定にすれば比率の設定処理が簡単になるが、ブロックごとに比率Ｒの値を決定すれば、陰影部部分領域をコントラストを付けてはっきりと見たいブロックと、陰影部部分領域を自然なコントラストで見たいブロックとを区別して、それぞれのブロックに適した比率Ｒを使用することが可能になる。あるいは、元の画像データ２１の全てのブロックで同じ比率Ｒを使用する場合でも、異なる比率Ｒを使用して、複数の補正後の画像データ２８を生成して、コントラストが強いことが望ましい用途と、画像の自然さが高いことが望ましい用途に応じて、得られた複数の補正後の画像データ２８を使い分けてもよい。
【００８３】
図１２は、図２に示した画像に対して本実施の形態で示した陰影部輝度補正を施した結果得られる画像を模式的に示す図である。この図に示すように、陰影部の輝度のコントラストが増大し、陰影部の視認性が向上している。
【００８４】
図１３（ａ）は、人工衛星により地上を撮影して得られた実際の地理画像の例を示す図である。右側の道路の周囲以外は陰影部である。陰影部の内部はほとんど識別できないくらい輝度のコントラストが少ない。同図（ｂ）は、同図（ａ）の画像を２×２のブロックに区切ったときの、左下角のブロックに対する輝度のヒストグラムである。輝度の低いところに多くの画素があり、全体として、輝度の最小値０に近い値から最大輝度ＭＡＸに近い値まで輝度が分布していることが分かる。この図において、ａは、中央領域拡大部４２０（図１）で拡大されるヒストグラム中央領域の下限輝度ａ＋１より１小さい値であり、同様に図においてｂはヒストグラム中央領域の上限輝度ｂ-１より１大きい値である。これらの限界輝度ａ、ｂは、ヒストグラム下側領域と上側領域との全ヒストグラムに対する比率Ｒ（図７）を０．０５として決定されたときの値である。
【００８５】
図１４（ａ）は、図１３（ａ）の画像に関して、当該画像を２×２個のブロックに分割して、本実施の形態により陰影部の輝度補正をブロック毎に行った結果得られた濃度補正後の画像の例を示す図である。比率Ｒは、ブロックごとに視認性をよくするように調整した。他のブロックに対しては、比率Ｒは、左上角のブロックに対しては、０．０４５であり、右上角のブロックに対しては、０．０４であり、右下角のブロックに対しては、０．０７である。右下角のブロックはビルの影が２〜３重に重なっているため他のブロックよりも暗く、コントラストが弱い。そのため他のブロックよりもＲを大きく設定した。このように、濃い影と薄い影とでＲは変えることが有効である。すなわち、濃い影の部分はＲを大きくし、薄い影の部分はＲを小さくする。これにより、濃い影の部分も薄い影の部分も、内部がどのようになっているかを視認可能になる。ただし、不自然な画像にならないよう、ノイズが目立たない程度に、これらの部分のコントラストが抑えられるようにＲの値を決めることが望ましい。
【００８６】
本実施の形態により陰影部の輝度を補正すると、陰影部内の車を視認でき、道路や建物も視認できるようになっている。また、ノイズも目立たない。更にブロックごとに比率Ｒを調整しているためブロック間での輝度差が少なく、自然な画像となっている。
【００８７】
同図（ｂ）は、同図（ａ）の左下角のブロックに対する輝度補正後の輝度のヒストグラムである。このヒストグラムは、図１３（ｂ）に示した元のヒストグラムに近い形状を有するヒストグラム形状であるためことが分かる。この結果、図１４（ａ）に示した、輝度補正を行った後の画像には不自然さが少なくなっている。
【００８８】
図１５は、比較のために図１３の画像の各ブロックの陰影部領域に対して、ブロック毎に従来技術によるヒストグラム平坦化を行った結果得られた画像を示す図である。同図では、陰影部内の視認性は高いが、コントラストが強すぎ、ノイズが目立つ。また、ブロックごとの輝度の変換の程度が大きく異なるためブロックの境界線付近等のほぼ同一箇所の輝度がブロック毎に大きく異なり不自然な画像となっている。これに対し、図１４（ａ）に示した本実施の形態により得られた画像では、このような、ノイズが少なく、かつブロックの境界等のほぼ同じ箇所の輝度はブロックが異なっても極端には輝度は異なっておらず、自然な画像となっている。
【００８９】
したがって、本実施の形態で示したように、陰影部を補正することにより陰影部のコントラストを改善できるだけでなく、自然な輝度変化をする画像を得ることができる。すなわち、ヒストグラムの中央領域に対して線形変換するとともに、ヒストグラムの下側領域と上側領域の画素に対してヒストグラム均等化を施した結果、従来の線形変換のみで得られるコントラストよりは強く、従来のヒストグラム平坦化のみを行った場合よりは弱いコントラストを有し、いわば両方の変換の中間程度のコントラストを有するように陰影部のコントラストを変換でき、かつ陰影部の変換後の画像を自然な画像にすることができる。すわなち、陰影部内の視認性と画像の自然さを両立するように、陰影部の画像を改良できている。
【００９０】
本発明は、上記の実施の形態に限定されるものではなく、本発明の要旨を変更しない範囲で変更又は修正して他の形態で実施してもよいことは言うまでもない。
【００９１】
例えば、上記実施の形態では、画像を複数のブロックに分割し、各ブロックごとに、そこに含まれる陰影部部分領域に対して輝度を補正する処理を施した。図２に例示した地理画像のように、影が重なり合うことによってさまざまな輝度の陰影部分が含まれている場合には、このように画像を複数のブロックに分割して各ブロック毎に陰影部の輝度を補正することができ、各ブロックのコントラストをブロック毎に改善することができる。また、既に述べたように、元の画像のヒストグラムの下側領域の画素数又は上側領域の画素数と全画素数との比率Ｒの値をブロックごとに調整することが可能になり、例えば、陰影部部分領域をコントラストを付けてはっきりと見たいブロックと、陰影部部分領域を自然なコントラストで見たいブロックとを区別して、それぞれのブロックに適した比率Ｒを使用することも可能になる。
しかし、本発明は画像を複数のブロックに分割しない場合にも適用可能である。この場合には、既に説明した処理を処理対象の画像の陰影部の全体に対して実行すればよい。
【００９２】
なお、以上では、各ブロックの陰影部部分領域の輝度が非陰影部部分領域の輝度とは無関係に決定されるため、それらの領域の境界部付近では、輝度が急激に不連続に変化することになる。これを解消するために、陰影部領域のうち非陰影部に隣接する部分の変更後の輝度を、隣接する非陰影部の輝度とに基づいて、輝度の変化が不連続とならないように修正するようにしてもよい。あるいは、陰影部領域のうち非陰影部に隣接する部分の変更後の輝度と、当該部分に隣接する非陰影部の部分の輝度との両方を、それらの両方の部分における輝度の変化が連続に変化するように、変更してもよい。
【００９３】
また、以上の実施の形態では、元のヒストグラムの中央領域を線形変換を用いて拡大したが、線形変換に代えて他の変換、例えば非線形変換、区分線形変換を用いてもよい。また。元のヒストグラムの下側領域と上側領域を全輝度範囲に対して一様となるように平坦化したが、これに代えて完全に平坦でなくてもよく、ほぼ一様であればよい。更には、ほぼ一様でなくてもよく、全輝度範囲に分布するように変換してもよい。
【図面の簡単な説明】
【００９４】
【図１】本発明に係る画像の陰影部を補正可能な装置の一つの実施形態の概略ブロック図である。
【図２】地理画像の一例を模式的に示す図である。
【図３】（ａ）は２値化部により生成された２値画像を模式的に示す図である。（ｂ）は、ノイズ除去部の処理の後に得られる陰影領域データが表す、陰影部存在領域の例を示す図である。
【図４】ノイズ除去部の処理の一例を示す概略フローチャートである。
【図５】（ａ）は、図２の画像を複数のブロックに分割した状態を示す図である。（ｂ）は、画像データ内のブロックに関するいくつかのパラメータを説明するための図である。（ｃ）は、領域分割データの例を示す図である。
【図６】目標ヒストグラム生成部の処理の概要を説明するための図である。（ａ）はいずれかのブロックに対して検出された実ヒストグラムを模式的に表す関数ｆ(ｉ)を示す図である。（ｂ）は、実ヒストグラムの中央領域から変換して得られる拡大されたヒストグラムを模式的に表す関数ｇ（ｉ）の例を示す図である。（ｃ）は、実ヒストグラムに対して生成される目標ヒストグラムを模式的に表す関数ｈ(ｉ)を示す図である。
【図７】中央領域決定部の処理の一例の概略フローチャートである。
【図８】上下側領域拡大部の処理の一例の概略フローチャートである。
【図９】（ａ）はいずれかのブロックの陰影部領域内の画素に関する実ヒストグラムの例を示す図である。（ｂ）はそのブロックに対する目標ヒストグラムの例を示す図である。（ｃ）は（ａ）に示す実ヒストグラムを表す関数ｆ(ｉ)の値を示すグラフである。（ｄ）は（ｂ）に示す目標ヒストグラムを表す関数ｈ(ｉ)の値を示すグラフである。
【図１０】図９（ａ）、（ｂ）に示された実ヒストグラムと目標ヒストグラムに対する輝度変換データの例としての輝度変換テーブルの例を示す図である。
【図１１】輝度変換データ生成部の処理の一例の概略フローチャートである。
【図１２】図２に示した画像に対して陰影部輝度補正を施した結果得られる画像を模式的に示す図である。
【図１３】（ａ）は、人工衛星により地上を撮影して得られた実際の地理画像の例を示す図である。（ｂ）は、（ａ）の画像を２×２のブロックに区切ったときの、左下角のブロックに対する輝度のヒストグラムである。
【図１４】（ａ）は、図１３（ａ）の画像に関して、本実施の形態により陰影部の輝度補正をブロック毎に行った結果得られた濃度補正後の画像である。（ｂ）は、（ａ）の左下角のブロックに対する輝度補正後の輝度のヒストグラムである。
【図１５】比較のために図１３の画像の各ブロックの陰影部領域に対して、ブロック毎に従来技術によるヒストグラム平坦化を行った結果得られた画像を示す図である。
【図１６】従来技術による線形変換とその問題点を説明するための図である。（ａ）は、返還前の輝度範囲と変換後の輝度範囲を示す図である。（ｂ）はヒストグラムの例を示す図である。（ｃ）は、（ｂ）のヒストグラムに対して線形変換を施された後のヒストグラムの例を示す図である。
【図１７】（ａ）は、陰影部と明るい非陰影部を含む画像に対するヒストグラムの例を模式的に示す図である。（ｂ）は、このヒストグラムに対して線形変換をした結果得られるヒストグラムの例を模式的に示す図である。
【符号の説明】
【００９５】
ｆ(ｉ)…実ヒストグラムを表す関数、ｇ(ｉ)…実ヒストグラムの中央領域の範囲を拡大した後の拡大ヒストグラムを表す関数、ｈ(ｉ)…目標ヒストグラムを表す関数。
【図１】
2005202807.tif 000003
【図３】
2005202807.tif 000004
【図４】
2005202807.tif 000005
【図７】
2005202807.tif 000006
【図８】
2005202807.tif 000007
【図９】
2005202807.tif 000008
【図１０】
2005202807.tif 000009
【図１１】
2005202807.tif 000010
【図１６】
2005202807.tif 000011
【図１７】
2005202807.tif 000012
【図２】
2005202807.tif 000013
【図５】
2005202807.tif 000014
【図６】
2005202807.tif 000015
【図１２】
2005202807.tif 000016
【図１３】
2005202807.tif 000017
【図１４】
2005202807.tif 000018
【図１５】
2005202807.tif 000019
【手続補正書】
【提出日】平成16年6月22日(2004.6.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
記憶装置にあらかじめ記憶された画像内の、陰影部が存在する陰影部領域を検出する陰影部領域検出ステップと、
検出された陰影部領域にある複数の画素の輝度ヒストグラムを検出するヒストグラム検出ステップと、
検出された輝度ヒストグラムから、当該陰影部に関する改善されたコントラストを表す目標ヒストグラムを決定する目標ヒストグラム決定ステップと、
前記陰影部の改善後の輝度ヒストグラムが前記目標ヒストグラムになるように、前記陰影部の複数の画素の輝度を変換する輝度変換ステップと、
輝度を変換された後の前記陰影部と、前記画像の前記陰影部以外の部分とを合成して、輝度改善された画像を生成する画像合成ステップと、
をコンピュータに実行させる陰影部輝度を補正可能なプログラム。
【請求項２】
前記目標ヒストグラム決定ステップは、
前記画像が取りうる最大輝度から最小輝度までの範囲に拡大されるべき、前記輝度ヒストグラムの中央領域を、前記輝度ヒストグラムに基づいて決定する中央領域決定ステップと、
前記輝度ヒストグラムの前記中央領域を、前記最大輝度から最小輝度までの範囲に分布する拡大ヒストグラムに拡大する中央領域拡大ステップと、
前記輝度ヒストグラムのうち、前記決定された中央領域より小さい輝度に対するヒストグラム下側領域と、前記中央領域より大きい輝度に対するヒストグラム上側領域とを組み合わせて、前記最小輝度から前記最大輝度までの輝度範囲に対して画素数が概略一様なヒストグラムに変換し、変換で生成された前記概略一様なヒストグラムを前記中央領域変換ステップにより生成される前記拡大ヒストグラムに合成して前記目標ヒストグラムを生成する上下側領域拡大ステップと、
を含むことを特徴とする請求項１に記載の陰影部輝度を補正可能なプログラム。
【請求項３】
前記プログラムは、前記陰影部領域検出ステップの後、前記輝度ヒストグラム検出ステップの前に、前記画像を複数のブロックに分割する領域分割ステップを更にコンピュータに実行させるプログラムであり、
ヒストグラム検出ステップと、前記目標ヒストグラム決定ステップと、前記変換データ生成ステップと、前記輝度変換ステップと、前記陰影部領域の一部が含まれる一群のブロックの各々内の陰影部部分領域に関して実行される、
ことを特徴とする請求項１又は２に記載の陰影部輝度を補正可能なプログラム。
【請求項４】
処理装置により実行される陰影部輝度補正方法であって、
記憶装置にあらかじめ記憶された画像内の、陰影部が存在する陰影部領域を検出する陰影部領域検出ステップと、
検出された陰影部領域にある複数の画素の輝度ヒストグラムを検出するヒストグラム検出ステップと、
検出された輝度ヒストグラムから、当該陰影部に関する改善されたコントラストを表す目標ヒストグラムを決定する目標ヒストグラム決定ステップと、
前記陰影部の改善後の輝度ヒストグラムが前記目標ヒストグラムになるように、前記陰影部の複数の画素の輝度を変換する輝度変換ステップと、
輝度を変換された後の前記陰影部と、前記画像の前記陰影部以外の部分とを合成して、輝度改善された画像を生成する画像合成ステップと、
を含むことを特徴とする陰影部輝度補正方法。
【請求項５】
前記目標ヒストグラム決定ステップは、
前記画像が取りうる最大輝度から最小輝度までの範囲に拡大されるべき、前記輝度ヒストグラムの中央領域を、前記輝度ヒストグラムに基づいて決定する中央領域決定ステップと、
前記輝度ヒストグラムの前記中央領域を、前記最大輝度から最小輝度までの範囲に分布する拡大ヒストグラムに変換する中央領域拡大ステップと、
前記輝度ヒストグラムのうち、前記決定された中央領域より小さい輝度に対するヒストグラム下側領域と、前記中央領域より大きい輝度に対するヒストグラム上側領域とを組み合わせて、前記最小輝度から前記最大輝度までの輝度範囲に対して画素数が概略一様なヒストグラムに変換し、変換で生成された前記概略一様なヒストグラムを前記中央領域変換ステップにより生成される前記拡大ヒストグラムに合成して前記目標ヒストグラムを生成する上下側領域拡大ステップと、
を含むことを特徴とする請求項４に記載の陰影部輝度補正方法。
【請求項６】
前記陰影部領域検出ステップの後、ヒストグラム検出ステップの前に、前記画像を複数のブロックに分割する領域分割ステップを更に含み、前記ヒストグラム検出ステップと、前記目標ヒストグラム決定ステップと、前記変換データ生成ステップと、前記輝度変換ステップは、前記陰影部領域の一部が含まれる一群のブロックの各々に対して実行される、ことを特徴とする請求項４又は５に記載の陰影部輝度補正方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
なお、地理画像と異なる他の画像についてではあるが、対象物に対する照明が悪いとかあるいは逆光で撮影された場合のように、対象物を撮影して得られる画像のコントラストが低い場合に、画像のコントラストを改善するための方法として、いくつかの手法は知られている。例えば、濃度ヒストグラムを均一化する手法あるいは濃度を線形又は非線形に変換するという手法は知られている（例えば、特許文献２、３、４及び非特許文献１参照）。また、画像のノイズを除去して画像を鮮明にする方法自体も知られている（例えば、非特許文献２参照）。
【特許文献１】特開平１０−２６９３４７号公報
【特許文献２】特開２００２−２０９１１５号公報
【特許文献３】特開２００１−１１８０６２号公報
【特許文献４】特開２００２−１４０７００号公報
【非特許文献１】酒井幸市，「デジタル画像処理入門」，ＣＱ出版株式会社，２００２年１０月１日，ｐ．３８−４９
【非特許文献２】八木伸行、外５名，「Ｃ言語で学ぶ実践画像処理」，株式会社オーム社，１９９９年１２月８日，ｐ．５４−６３，８４−９７
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
上記の目的を問題を解決するために、本発明に係る陰影部の輝度を補正可能なプログラムは、記憶装置にあらかじめ記憶された画像内の、陰影部が存在する陰影部領域を検出する陰影部領域検出ステップと、検出された陰影部領域にある複数の画素の輝度ヒストグラムを検出するヒストグラム検出ステップと、検出された輝度ヒストグラムから、当該陰影部に関する改善されたコントラストを表す目標ヒストグラムを決定する目標ヒストグラム決定ステップと、前記陰影部の改善後の輝度ヒストグラムが前記目標ヒストグラムになるように、前記陰影部の複数の画素の輝度を変換する輝度変換ステップと、輝度を変換された後の前記陰影部と、前記画像の前記陰影部以外の部分とを合成して、輝度改善された画像を生成する画像合成ステップと、をコンピュータに実行させるものである。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
図３（ｂ）は、ノイズ除去部１２０の処理の後に得られる陰影領域データ２３が表す、陰影部が存在する領域の例を示す図である。黒色で示された領域が、その領域である。図から分かるように、ビルなどの比較的大きな陰影部だけが示され、図３（ａ）に含まれたノイズ部分は、除去されている。こうして、ノイズ除去部１２０の処理が終了し、陰影部領域検出部１００の処理が終了する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００４８
【補正方法】変更
【補正の内容】
【００４８】
本実施の形態では、ヒストグラムの中央領域Ｂを、同図（ｂ）に示すように、画像が取りうる最小輝度０から最大輝度ＭＡＸまでの範囲の輝度を有するように拡大されたヒストグラムｇ（ｉ）に変換する。このとき、同図（ａ）に示すヒストグラムの下側領域Ａと上側領域Ｃに属する輝度を有する複数の画素は、従来技術によれば、同図（ｂ）に示すように、輝度０又はＭＡＸにそれぞれ変換される。このままなら、輝度ｉがｉ≦ａ+1となる輝度ｉは処理後に輝度が０となり、つぶれという現象が起きる。また、ｂ-1≦ｉとなる輝度ｉは処理後に輝度がＭＡＸとなり、白とびという現象が起きる。白とびやつぶれが起きるとその部分の情報が失われるという問題がある。このような問題をなくすために、本実施の形態では、それらの領域の画素の輝度別の画素数を、同図（ｃ）に示すように、最小輝度０から最大輝度ＭＡＸの範囲でほぼ一様であるヒストグラムに変換し、上記拡大されたヒストグラムｇ(ｉ)と上記ほぼ一様なヒストグラムとを合成して、目標ヒストグラムｈ(ｉ)を生成する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００５８
【補正方法】変更
【補正の内容】
【００５８】
なお、ステップＳ４３１において計算された平均画素数ａveは、一般には整数ではない。したがって、合成後の目標ヒストグラムｈ(ｉ)も整数でなくなる。しかし、ステップＳ４３３で目標ヒストグラムｈ(ｉ)を決定するときには、画素数ｈ(ｉ)を、整数となるように決定するものとする。そのためにの一つの方法は、平均画素数ａveが整数でないときには、ステップＳ４３３において、拡大されたヒストグラムの画素数ｇ(ｉ)と平均画素数ａveを加算するときに、輝度ｉに応じて、加算する平均画素数ａveの値として、ステップＳ４３１で計算された平均画素数ａveを越えない最大の整数と、それより１大きな整数との一組の整数を交互に選んで使用し、全ての輝度ｉに対して使用した平均画素数ａveの総和が、ステップＳ４３１の平均の計算式の分子で計算された総画素数に等しくなるように、輝度ｉに応じて平均の画素数ａveを調整すればよい。もちろん、他の方法を使用することもできる。以下では、このようにして、目標ヒストグラムの画素数ｈ(ｉ)は整数になるように決定されるとする。なお、目標ヒストグラムの画素数ｈ(ｉ)は非整数のままにして、後で輝度変換するときに、上に述べたのと類似の方法を使用して、非整数の平均値ｈ(ｉ)に対して割り当てる画素の数が整数となるように、割当てる画素数を調整してもよい。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００６７
【補正方法】変更
【補正の内容】
【００６７】
Delt＝ｆ(High)−（Ｓum−ｈ(ｉ)）    （２）
ここで、（Ｓum−ｈ(ｉ)）は、割当て候補の画素の総数Ｓumのうち、目標の画素数ｈ(ｉ)を越えた画素の総数であり、差分Deltは、割当て候補の画素のうちの最大の輝度の画素数ｆ(High)のうち、上記目標の画素数ｈ(ｉ)を越えた画素の総数分だけ少ない画素の数、すなわち、画素数ｆ(High)のうち目標の輝度ｉに割当て可能な画素の数を表す。例えば、図９（ａ）又は（ｃ）の場合には、Ｓumは４であり、ｈ(０)は３であり、ｆ(２)は２であるので、上記差分Deltは１となる。すなわち、元の画像の輝度２の２個の画素のうち１個は目標の輝度０に割り当てられるが、残りの１個は、目標の輝度０には割り当てられないことを示している。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００６８
【補正方法】変更
【補正の内容】
【００６８】
ステップＳ６０７では、変数Ｌow（今の場合には０）が変数High（今の場合は２）より小さいので、ステップＳ６０８において、変数Ｔmpが変数Ｌowの値（今の場合は０）にセットされ、ステップＳ６１０で、輝度変換テーブルの輝度Ｔmp（今の例では０）に対する変換先輝度Ｔ(Ｔmp)（今の例ではＴ(０)）として輝度ｉ（今の例では０）を設定する。すなわち、陰影部部分領域内の輝度０に変換先Ｔ(０)として輝度０が決定される。ステップＳ６１０が繰り返される毎にステップＳ６０９で、変数Ｔmpが変数Highより小さいか否かが判定され、小さいときに、ステップＳ６１０が繰り返される。こうしてステップＳ６１０が繰り返され変数Ｔmpを１だけ増大し、同様に、元の輝度１に対する変換先輝度Ｔ(１)として輝度０が決定される。以上により、元の画素の輝度ｉが０、１のときには、変換先の輝度はいずれも輝度０であると決定される。このように変換元の輝度に対して変換先の輝度が決定された場合には、変換元輝度ｉに対応した、輝度変換テーブル２７内の変換先輝度Ｔ(ｉ)（２７Ｃ）に、当該決定された変換先の輝度が格納される。ステップＳ６１０では、更に変数Ｔmpを１だけ増大する。その結果、変数Ｔmpは２になる。その後、ステップＳ６０９において、変数Ｔmpが変数Highより小さくないと判断されると、処理はステップＳ６１１に移る。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００６９
【補正方法】変更
【補正の内容】
【００６９】
ステップＳ６１１では、変換元の画像の輝度Highに対する画素数ｆ(High)（例えばｆ(２）（＝２））のうち、式２で計算した差分Deltの数だけの画素（今の例では１個）を目標の輝度ｉに割り当てる。すなわち、この画素の対してＴ(High)＝ｉとする。すなわち、今の例では、元の輝度２の画素１個に対して変換先輝度Ｔ(２)＝０が決定される。元の画像の輝度High（今の例では２）を有する画素の数は２であるので、目標の輝度ｉ（今の例では０）に割り当てられる画素の総数（部分変換対象画素数）は１となる。この部分変換対象画素数が、輝度変換テーブル２７内に、変換元の輝度ｉと変換先目標の輝度highとの組に対応して部分変換対象画素数２７Ｄとして格納される。以下でも部分変換対象画素数が決定されるごとに、その部分変換対象画素数が輝度変換テーブル２７内に部分変換対象画素数２７Ｄとして格納される。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
ステップＳ６０６では、変数Highの値を１だけ減らして３に戻す。更に、上に説明した式２により差分Deltを計算する。今の場合には、この差分Deltは２になる。その後ステップＳ６０７では、今の場合、変数Ｌowが２であり、変数Highは３であるので、変数Ｌowが変数Highより小さいと判断され、ステップＳ６０８にて、変数Ｔmpが変数Ｌowの値２に設定され、ステップＳ６０９にて、変数Ｔmpは変数Highより小さいと判断されるので、ステップＳ６１０で、元の輝度２の画素のうち、未割当ての画素１個に対する割り当て先の輝度Ｔ(２)として輝度１が決定される。すなわち、元の輝度２の２個の画素のうち、未割当ての画素１個に輝度１が割り当てられる。こうして、元の輝度２の２個の画素に対して、目標の輝度０に割り当てられる部分変換対象画素数が１であり、目標の輝度１に割り当てられる部分変換対象画素数が１となる。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００７４
【補正方法】変更
【補正の内容】
【００７４】
その後、既に述べたように輝度３の元の画素の未割当ての画素数を上に述べた式３により計算され、その数が、元の画素の輝度３に対する画素数ｆ(High)に設定される。以下、同様にして、元の画像の後続の輝度の画素に対して、新たな割り当て先の輝度Ｔ(ｉ)が決定される。なお、以上の説明では、ステップＳ６０７による判定では変数Ｌowが変数Highより小さくないという場合は発生しなかった。このような場合が発生するのは、ステップＳ６１２を実行して変数Ｌowを変数Highの値に等しくした後に、ステップＳ６０５が実行され、変数Ｓumが未割当ての元の画素の画素数の値ｆ(High)にされ、更に、画素数ｆ(High)が次の目標の輝度の画素数ｈ(ｉ)より小さい場合には、ステップＳ６０４では変数Ｓumが画素数ｈ(ｉ)より小さいと判断される。その場合は、処理はステップＳ６０６に移る。その場合、ステップＳ６０６では、差分Deltが式２にしたがって計算され、その値は画素数ｈ(ｉ)と等しくなる。このような場合には、その後ステップＳ６０７では、変数Ｌowが変数Highより小さくない（両者が等しい）と判定されることになる。この場合には処理はステップＳ６１１に移る。ステップＳ６１１の処理は既に説明したとおりであるので、省略する。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００７７
【補正方法】変更
【補正の内容】
【００７７】
例えば、図１０の輝度変換テーブルの場合には、変換元輝度ｉが０、１の場合には、それらに対する変換先輝度Ｔ(０)、Ｔ(１)はいずれも０である。元の画素の輝度Ｔ(i)を変換するときに、同じ変換元の輝度ｉに対する変換先の輝度ｉが複数個ある場合には、上に述べたように、それぞれの変換先輝度毎に、その輝度に変換されるべき部分変換対象画素数が決定され、輝度変換テーブル２７に格納されている。このような画素の輝度の変換にあたっては、輝度変換対象画素の総数分の画素から、それぞれの変換先輝度に変換される画素を、部分変換対象画素数／輝度変換対象画素の総数の確率で決定すればよい。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００７８
【補正方法】変更
【補正の内容】
【００７８】
例えば、図１０の輝度変換テーブルの場合、元の輝度ｉが２の場合には変換先輝度Ｔ(２)は、０と１の二つがあり、それぞれに対する部分変換対象画素数はいずれも１である。したがって、元の輝度ｉが２の変換対象画素の総数２のうち、１個ずつが変換先輝度０と１に変換される。この元の輝度２の２個の画素のそれぞれに対して、変換先輝度０と１を、部分変換対象画素数／輝度変換対象画素の総数の確率、すなわちいずれの変換先に対しても１／２の確率でランダムに決定すればよい。同様に、元の輝度ｉが３の場合には、輝度変換対象画素の総数は３であり、変換先輝度は、１と２の二つがあり、それぞれに変換されるべき部分変換対象画素数は２と１である。したがって、輝度変換対象画素の総数３の画素を、２／３、１／３の確率でランダムに変換先輝度１と２に変換すればよい。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００８９
【補正方法】変更
【補正の内容】
【００８９】
したがって、本実施の形態で示したように、陰影部を補正することにより陰影部のコントラストを改善できるだけでなく、自然な輝度変化をする画像を得ることができる。すなわち、ヒストグラムの中央領域に対して線形変換するとともに、ヒストグラムの下側領域と上側領域の画素に対してヒストグラム均等化を施した結果、従来の線形変換のみで得られるコントラストよりは強く、従来のヒストグラム平坦化のみを行った場合よりは弱いコントラストを有し、いわば両方の変換の中間程度のコントラストを有するように陰影部のコントラストを変換でき、かつ陰影部の変換後の画像を自然な画像にすることができる。すなわち、陰影部内の視認性と画像の自然さを両立するように、陰影部の画像を改良できている。