(57)【要約】【課題】  大気中の微小粒子成分による影響を含む撮像画像における該影響を抑制する範囲や効果の強弱を調整可能な技術を提供すること。【解決手段】  撮像画像に対するユーザ操作に応じて指定された大気の透過率の範囲を取得し、該範囲に基づいて、撮像画像における大気中の微粒子成分による影響を抑制した補正画像を生成する。【選択図】  図１
2020134273.tif 000002
【特許請求の範囲】
【請求項１】
撮像画像に対するユーザ操作に応じて指定された大気の透過率の範囲を取得する第１の取得手段と、
前記範囲に基づいて、前記撮像画像における大気中の微粒子成分による影響を抑制した補正画像を生成する生成手段と
を備えることを特徴とする画像処理装置。
【請求項２】
更に、
前記撮像画像において参照する複数の画素位置を該撮像画像の輝度値に基づいて特定し、該複数の画素位置における画素値の色ごとの総和に基づいて、大気による散乱光成分である大気光成分を求める第２の取得手段を備え、
前記生成手段は、前記大気光成分に基づいて前記補正画像を生成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記生成手段は、前記撮像画像を前記大気光成分および前記範囲に基づいて補正した複数の補正画像を生成し、前記補正画像および前記撮像画像に基づき、前記撮像画像のミー散乱成分およびレイリー散乱成分を推定し、該推定したミー散乱成分およびレイリー散乱成分に基づいて、前記補正画像を生成することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記生成手段は、前記撮像画像における着目画素および該着目画素を囲む周辺画素の色ごとの画素値のうちより低い複数の画素値に基づいて、第１の画像の着目画素の画素値を求め、該第１の画像に基づく透過率分布において前記範囲の外側を非透過とするべく該透過率分布を補正し、該補正した透過率分布と前記大気光成分とに基づいて前記撮像画像を補正した第１の補正画像を生成することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記生成手段は、前記撮像画像における色ごとのプレーンを前記大気光成分に基づいて補正し、該補正したプレーンごとに、該プレーンにおける着目画素および該着目画素を囲む周辺画素の画素値のうちより低い複数の画素値に基づいて第２の画像の着目画素の該プレーンの画素値を求め、該第２の画像に基づく透過率分布において前記範囲の外側を非透過とするべく該透過率分布を補正し、該補正した透過率分布と前記大気光成分とに基づいて前記撮像画像を補正した第２の補正画像を生成することを特徴とする請求項３または４に記載の画像処理装置。
【請求項６】
前記生成手段は、前記撮像画像と前記第１の補正画像とに基づいて、前記撮像画像におけるミー散乱成分に相当する画像であるミー散乱成分画像を生成することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記生成手段は、前記撮像画像と前記第２の補正画像と前記ミー散乱成分画像とに基づいて、前記撮像画像におけるレイリー散乱成分に相当する画像であるレイリー散乱成分画像を生成することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記生成手段は、前記第２の補正画像と前記ミー散乱成分画像と前記レイリー散乱成分画像との合成画像を、前記撮像画像における大気中の微粒子成分による影響を抑制した補正画像として生成することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記撮像画像は、微小粒子成分が発生しているシーンを撮像した撮像画像であることを特徴とする請求項１乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
更に、前記撮像画像の輝度値に基づいて、該撮像画像が屋内で撮像された画像であるのか屋外で撮像された画像であるのかを判断し、該判断の結果に応じて前記生成手段のパラメータを制御する手段を備えることを特徴とする請求項１乃至９のいずれか１項に記載の画像処理装置。
【請求項１１】
画像処理装置が行う画像処理方法であって、
前記画像処理装置の第１の取得手段が、撮像画像に対するユーザ操作に応じて指定された大気の透過率の範囲を取得する第１の取得工程と、
前記画像処理装置の生成手段が、前記範囲に基づいて、前記撮像画像における大気中の微粒子成分による影響を抑制した補正画像を生成する生成工程と
を備えることを特徴とする画像処理方法。
【請求項１２】
コンピュータを、請求項１乃至１０のいずれか１項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大気中の微小粒子成分の影響により視認性が低下した撮像画像の画質を改善するための技術に関するものである。
【背景技術】
【０００２】
監視カメラなどの分野において、カメラから被写体までの間に存在する微小粒子成分（例えば、霧）によって視認性が低下し、撮像画像の画質が劣化することが問題となっている。霧などの微小粒子成分によって視認性が低下した撮像画像を補正する技術（霧霞除去技術）として、特許文献１が提案されている。特許文献１では、着目画素ごとに周囲の所定範囲におけるＲＧＢチャンネル内での最小値を算出し、この最小値画像を用いてコントラストを補正することで視認性の改善を行う。また、特許文献２では、入力映像中のヒストグラムをもとに、霧霞除去のパラメータを決定している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国公開公報２０１１／０１８８７７５号明細書
【特許文献２】米国公開公報２０１６／０３２８８３２号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の技術では、画像処理を行う際のパラメータを画像全体で一意に保持している。しかしながら、比較的近い距離にある被写体に対して霧霞除去技術を適用する場合と、遠い距離にある被写体に対して霧霞除去技術を適用する場合と、では、パラメータを変えたほうが良い場合がある。遠い距離にある被写体向けのパラメータで処理を行うと、近い距離にある被写体に対しては効果が強くなりすぎてしまい、不自然な画像となる可能性があった。また、特許文献２に記載の技術では、画像全体のヒストグラムをもとにパラメータを決定してしまうため、ユーザの指定に合わせてパラメータを決めることはできなかった。本発明では、大気中の微小粒子成分による影響を含む撮像画像における該影響を抑制する範囲や効果の強弱を調整可能な技術を提供する。
【課題を解決するための手段】
【０００５】
本発明の一様態は、撮像画像に対するユーザ操作に応じて指定された大気の透過率の範囲を取得する第１の取得手段と、前記範囲に基づいて、前記撮像画像における大気中の微粒子成分による影響を抑制した補正画像を生成する生成手段とを備えることを特徴とする。
【発明の効果】
【０００６】
本発明の構成によれば、大気中の微小粒子成分による影響を含む撮像画像における該影響を抑制する範囲や効果の強弱を調整可能な技術を提供することができる。
【図面の簡単な説明】
【０００７】
【図１】画像処理装置のハードウェア構成例を示すブロック図。
【図２】画像処理装置１００の機能構成例を示すブロック図。
【図３】処理部２０２の機能構成例を示すブロック図。
【図４】画像処理装置１００の全体処理のフローチャート。
【図５】ステップＳ４０４における処理の詳細を示すフローチャート。
【図６】ステップＳ５０２を説明する図。
【図７】ステップＳ５０１における処理の詳細を示すフローチャート。
【図８】ステップＳ５０３における処理の詳細を示すフローチャート。
【図９】ステップＳ５０４における処理の詳細を示すフローチャート。
【図１０】フィルタ処理の詳細を示す図。
【図１１】ステップＳ５０５における処理の詳細を示すフローチャート。
【図１２】ステップＳ５０６における処理の詳細を示すフローチャート。
【図１３】ＧＵＩの表示例を示す図。
【図１４】画像処理装置１００の全体処理のフローチャート。
【図１５】ステップＳ１４０２における処理の詳細を示すフローチャート。
【図１６】ステップＳ１５０２における処理の詳細を示すフローチャート。
【発明を実施するための形態】
【０００８】
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでするものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【０００９】
［第１の実施形態］
＜第１の実施形態の概要＞
先ず、第１の実施形態の概要について説明する。本実施形態では、霧などの微小粒子成分が多く発生しているシーンを撮像した撮像画像（大気中の微小粒子成分による影響を含む撮像画像）では、微小粒子成分があまり発生していない場合に比べてコントラストが低下してしまう。この原因として光が大気中を通過する際に、微小粒子成分により光が散乱してしまうことがあげられる。大気中の光散乱には２種類知られており、１つはミー散乱であり、塵、埃、水蒸気の粒など光の波長と比較して粒子径が大きい粒子によって引き起こされる散乱である。ミー散乱は光の波長に依存せず起こるため、ミー散乱が起きた場合、遠方の被写体ほどコントラストが低下して白く見えるようになる。もう１つはレイリー散乱であり、空気分子のような光の波長と比較して粒子径が小さい粒子によって引き起こされる散乱である。なおレイリー散乱では波長の短い光ほどよく散乱する。
【００１０】
本実施形態では、撮像画像における大気中の微小粒子成分による影響を抑制する除去処理を実行する。このような除去処理は、霧霞除去やヘイズ除去などと呼ばれる。さらに本実施形態では、シーンにおいて微小粒子成分による影響を抑制する距離範囲をユーザ操作に応じて設定する。そして、この設定された距離範囲に基づいて、撮像画像の微小粒子成分としてミー散乱成分およびレイリー散乱成分を推定し、該推定したミー散乱成分とレイリー散乱成分を個別に抑制して再合成することで、微小粒子成分の影響を抑制した撮像画像を得る。
【００１１】
具体的には、まず撮像画像（散乱光によりコントラストが低下した画像）に対し、大気による散乱光成分である大気光成分を推定する。本実施形態では、撮像画像は、各画素の画素値がＲ成分の画素値、Ｇ成分の画素値、Ｂ成分の画素値の３つの画素値を有するＲＧＢ画像（Ｒのプレーン、Ｇのプレーン、Ｂのプレーンを有する撮像画像）であるものとする。次に、撮像画像の色ごとのプレーンに対し、着目画素を中心とした画像領域内の下位画素値の集合（ＲＧＢ下位画素値画像）、プレーン全体での下位画素値の集合（下位画素値画像）を求める。そして、下位画素値画像およびＲＧＢ下位画素値画像に対して、先の距離範囲に相当する画素値範囲以外の値を変更するそれらの結果を用いて、ミー散乱成分とレイリー散乱成分の二種類の散乱成分を推定し、最後にそれらを合成する。
【００１２】
＜画像処理装置の構成例＞
次に、本実施形態に係る画像処理装置のハードウェア構成例について、図１のブロック図を用いて説明する。図１に示す如く本実施形態に係る画像処理装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、ＨＤＤ（ハードディスクドライブ）Ｉ／Ｆ（インターフェース）１０４，ＨＤＤ１０５、入力Ｉ／Ｆ１０６、出力Ｉ／Ｆ１０７、システムバス１０８を有する。
【００１３】
ＣＰＵ１０１は、ＲＡＭ１０２やＲＯＭ１０３に格納されているコンピュータプログラムやデータを用いて各種の処理を実行する。これによりＣＰＵ１０１は、画像処理装置１００全体の動作制御を行うと共に、画像処理装置１００が行うものとして後述する各処理を実行若しくは制御する。
【００１４】
ＲＡＭ１０２は、ＲＯＭ１０３やＨＤＤ１０５からロードされたコンピュータプログラムやデータ、入力Ｉ／Ｆ１０６を介して外部メモリ１０９や撮像部１１１から受信したデータ、を格納するためのエリアを有する。さらにＲＡＭ１０２は、ＣＰＵ１０１が各種の処理を実行する際に用いるワークエリアを有する。このようにＲＡＭ１０２は、各種のエリアを適宜提供することができる。ＲＯＭ１０３には、画像処理装置１００の設定データや起動プログラムなどが格納されている。
【００１５】
ＨＤＤＩ／Ｆ１０４は、例えばシリアルＡＴＡ（ＳＡＴＡ）等のインタフェースであり、二次記憶装置としてのＨＤＤ１０５をシステムバス１０８に接続するためのものである。ＣＰＵ１０１は、このＨＤＤＩ／Ｆ１０４を介してＨＤＤ１０５に対する情報の読み書きを行う。
【００１６】
ＨＤＤ１０５は、大容量情報記憶装置の一例である。ＨＤＤ１０５には、ＯＳ（オペレーティングシステム）や、画像処理装置１００が行うものとして後述する各処理をＣＰＵ１０１に実行若しくは制御させるためのコンピュータプログラムやデータが保存されている。ＨＤＤ１０５に保存されているデータには、以下の説明において既知の情報として画像処理装置１００が取り扱う情報が含まれている。ＨＤＤ１０５に保存されているコンピュータプログラムやデータは、ＣＰＵ１０１による制御に従って適宜ＨＤＤＩ／Ｆ１０４を介してＲＡＭ１０２にロードされ、ＣＰＵ１０１による処理対象となる。なお、二次記憶装置はＨＤＤ１０５に限らず、光ディスクドライブ等の記憶デバイスでもよい。
【００１７】
入力Ｉ／Ｆ１０６は、例えばＵＳＢやＩＥＥＥ１３９４等のシリアルバスインタフェースであり、画像処理装置１００は、入力Ｉ／Ｆ１０６を介して操作部１１２、外部メモリ１０９、撮像部１１１に接続されている。
【００１８】
操作部１１２は、キーボード、マウス、タッチパネル画面などのユーザインターフェースであり、ユーザが操作することで各種の指示を入力Ｉ／Ｆ１０６を介してＣＰＵ１０１に入力することができる。
【００１９】
外部メモリ１０９は、ハードディスクドライブ、メモリカード、ＣＦカード、ＳＤカード、ＵＳＢメモリなどの記憶媒体であり、画像処理装置１００で処理されたデータを保存することができる。ＣＰＵ１０１は、入力Ｉ／Ｆ１０６を介して外部メモリ１０９に対する情報の読み書きを行うことができる。
【００２０】
撮像部１１１は、動画像もしくは静止画像を撮像し、該動画像における各フレームの画像もしくは該静止画像を撮像画像として出力する。ＣＰＵ１０１は、撮像部１１１から出力された撮像画像を入力Ｉ／Ｆ１０６を介して取得し、該取得した撮像画像をＲＡＭ１０２やＨＤＤ１０５に格納する。
【００２１】
出力Ｉ／Ｆ１０７は、例えばＤＶＩやＨＤＭＩ等の映像出力インタフェースであり、画像処理装置１００は、出力Ｉ／Ｆ１０７を介して表示部１１０に接続されている。表示部１１０は、液晶画面やタッチパネル画面などを有し、ＣＰＵ１０１による処理結果を画像や文字などでもって表示することができる。
【００２２】
システムバス１０８は、各種データの転送経路であり、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、ＨＤＤＩ／Ｆ１０６、入力Ｉ／Ｆ１０６、出力Ｉ／Ｆ１０７は何れもシステムバス１０８を介して相互に接続されている。
【００２３】
なお、本実施形態に係る画像処理装置の構成は図１に示した構成に限らない。例えば、撮像部１１１と画像処理装置１００とを一体化させても良く、その場合、撮像部１１１が一体化された画像処理装置１００は、カメラ付スマートフォンやディジタルカメラなどの撮像機能を有するコンピュータ装置となる。
【００２４】
図２は、画像処理装置１００の機能構成例を示すブロック図であり、図３は、図２の処理部２０２の機能構成例を示すブロック図である。以下では、記憶部と称する機能部を除く他の機能部（実行機能部）を処理の主体として説明するが、実際には、実行機能部の機能をＣＰＵ１０１に実現させるためのコンピュータプログラムをＣＰＵ１０１が実行することで実行機能部の機能を実現させる。また、図２，３において記憶部と称する機能部については、ＲＡＭ１０２、ＲＯＭ１０３、ＨＤＤ１０５、外部メモリ１０９などのメモリ装置で実装することができる。なお、図２，３に示した各機能部はハードウェアで実装しても良い。
【００２５】
＜画像処理装置１００の全体処理＞
撮像画像中の「大気中の微小粒子成分による影響」を抑制した撮像画像を生成して出力するために画像処理装置１００が行う処理について、図４のフローチャートに従って説明する。
【００２６】
ステップＳ４０１では、取得部２０１は、撮像部１１１から送出された撮像画像を取得し、該取得した撮像画像を記憶部２０４に格納する。なお、撮像画像の取得元は特定の取得元に限らない。
【００２７】
ステップＳ４０２では、処理部２０２は、ステップＳ４０１で取得した撮像画像と、微小粒子成分の影響を抑制する距離範囲を指定するためのＧＵＩ（グラフィカルユーザインターフェース）と、を表示部１１０に表示させる。
【００２８】
このＧＵＩの表示例を図１３に示す。ＧＵＩ１３０１は、微小粒子成分の影響を抑制する距離範囲の一端（処理開始距離）を指定するためのスライダバー１３０２と他端（処理終了距離）を指定するためのスライダバー１３０３とを有する。
【００２９】
処理開始距離と処理終了距離は、透過率分布とおおよそ反比例することが分かっている。すなわち、距離が遠くなると透過率は少なくなり、距離が近くなると透過率は多くなる。そこで、処理開始距離として、微小粒子成分の影響を抑制する距離範囲において最も近い距離（透過率の上限ｔ＿ｔｈ＿ｍａｘ）を指定する。また、処理終了距離として、微小粒子成分の影響を抑制する距離範囲において最も遠い距離（透過率の下限ｔ＿ｔｈ＿ｍｉｎ）を指定する。
【００３０】
スライダバー１３０２上にはスライダ１３０２ａが位置しており、ユーザは操作部１１２を操作してこのスライダ１３０２ａをスライダバー１３０２上で左右に移動させることができる。スライダ１３０２ａがスライダバー１３０２の左端に近いほどｔ＿ｔｈ＿ｍａｘとしてより小さい値が設定され、右端に近いほどｔ＿ｔｈ＿ｍａｘとしてより大きい値が設定される。
【００３１】
スライダバー１３０３上にはスライダ１３０３ａが位置しており、ユーザは操作部１１２を操作してこのスライダ１３０３ａをスライダバー１３０３上で左右に移動させることができる。スライダ１３０３ａがスライダバー１３０３の左端に近いほどｔ＿ｔｈ＿ｍｉｎとしてより小さい値が設定され、右端に近いほどｔ＿ｔｈ＿ｍｉｎとしてより大きい値が設定される。
【００３２】
ステップＳ４０３では、処理部２０２は、ユーザが操作部１１２を操作してスライダ１３０２ａやスライダ１３０２ｂを左右に移動させる操作入力を受け付ける。そしてユーザが操作部１１２を操作してｔ＿ｔｈ＿ｍａｘおよびｔ＿ｔｈ＿ｍｉｎの設定を完了させる旨の指示を入力したとする。この入力に応じて処理部２０２は、現在のスライダ１３０２ａの位置に対応するｔ＿ｔｈ＿ｍａｘおよび現在のスライダ１３０３ａの位置に対応するｔ＿ｔｈ＿ｍｉｎを記憶部３１６に格納する。
【００３３】
なお、微小粒子成分の影響を抑制する距離範囲の一端および他端を設定するための方法は特定の方法に限らない。例えば、ＧＵＩの構成は図１３に示した構成に限らず、例えば、ｔ＿ｔｈ＿ｍａｘおよびｔ＿ｔｈ＿ｍｉｎのそれぞれの値を直接入力するようなＧＵＩであっても良い。また例えば、距離範囲の一端および他端を音声入力にて設定するようにしても良い。
【００３４】
ステップＳ４０４では、処理部２０２は、ステップＳ４０１で記憶部２０４に記憶した撮像画像に対して、微小粒子成分の影響を抑制するための処理である霧霞除去処理を行い、霧霞除去処理済みの撮像画像を記憶部２０５に格納する。ステップＳ４０４における処理の詳細については後述する。
【００３５】
そしてステップＳ４０５では、出力部２０３は、ステップＳ４０４で記憶部２０５に格納した撮像画像をＨＤＤＩ／Ｆ１０４を介してＨＤＤ１０５に出力することで、該撮像画像を該ＨＤＤ１０５に保存する。なお、霧霞除去処理済みの撮像画像の出力先はＨＤＤ１０５に限らない。
【００３６】
＜霧霞除去処理：ステップＳ４０４＞
上記のステップＳ４０４における霧霞除去処理の詳細について、図５のフローチャートに従って説明する。なお、霧霞除去処理は、微小粒子成分の影響を除去する処理、または微小粒子成分の影響を抑制するための処理であると言える。 
ステップＳ５０１では、算出部３０１は、記憶部２０４に格納されている撮像画像に基づいて、大気による散乱光成分である大気光成分を推定し、該推定した大気光成分を記憶部３０９に格納する。ステップＳ５０１における処理の詳細については後述する。
【００３７】
ステップＳ５０２では、算出部３０２は、記憶部２０４に格納されている撮像画像から下位画素画像を生成し、該生成した下位画素画像を記憶部３１０に格納する。ステップＳ５０２における処理の詳細については後述する。
【００３８】
ステップＳ５０３では、補正処理部３０４は、記憶部３０９に格納されている大気光成分、記憶部３１０に格納されている下位画素画像、記憶部３１６に格納されているｔ＿ｔｈ＿ｍａｘおよびｔ＿ｔｈ＿ｍｉｎ、を第１の補正用情報として取得する。そして補正処理部３０４は、記憶部２０４に格納されている撮像画像を第１の補正用情報を用いて補正した補正画像（下位画素画像による補正画像）を生成し、該生成した補正画像を記憶部３１２に格納する。ステップＳ５０３における処理の詳細については後述する。
【００３９】
ステップＳ５０４では、補正処理部３０５は、記憶部２０４に格納されている撮像画像、記憶部３０９に格納されている大気光成分、記憶部３１６に格納されているｔ＿ｔｈ＿ｍａｘおよびｔ＿ｔｈ＿ｍｉｎ、を第２の補正用情報として取得する。そして補正処理部３０５は、記憶部２０４に格納されている撮像画像を第２の補正用情報を用いて補正した補正画像（ＲＧＢ下位画素画像による補正画像）を生成し、該生成した補正画像を記憶部３１３に格納する。ステップＳ５０４における処理の詳細については後述する。
【００４０】
ステップＳ５０５では、算出部３０６は、記憶部２０４に格納されている撮像画像と、記憶部３１２に格納されている補正画像と、を用いて、記憶部２０４に格納されている撮像画像のミー散乱成分に相当するミー散乱成分画像を生成する。そして算出部３０６は、該生成したミー散乱成分画像を記憶部３１４に格納する。ステップＳ５０５における処理の詳細については後述する。
【００４１】
ステップＳ５０６で算出部３０７は、記憶部２０４に格納されている撮像画像と記憶部３１３に格納されている補正画像と記憶部３１４に格納されているミー散乱成分画像とを用いて、該撮像画像のレイリー散乱成分に相当するレイリー散乱成分画像を生成する。そして算出部３０７は、該生成したレイリー散乱成分画像を記憶部３１５に格納する。ステップＳ５０６における処理の詳細については後述する。
【００４２】
ステップＳ５０７では、合成処理部３０８は、記憶部３１３に格納されている補正画像と、記憶部３１４に格納されているミー散乱成分画像と、記憶部３１５に格納されているレイリー散乱成分画像と、を用いた画像合成を行うことで合成画像を生成する。そして合成処理部３０８は、該生成した合成画像を、除去処理済みの撮像画像として記憶部２０５に格納する。
【００４３】
＜大気光成分の推定：ステップＳ５０１＞
上記のステップＳ５０１における大気光成分の推定処理の詳細について、図７のフローチャートに従って説明する。大気光成分の推定処理では、撮像画像（ＲＧＢ画像）の輝度画像（Ｙ画像）における最大輝度値を特定し、該最大輝度値の９９％以上の輝度値を有する画素の位置を参照画素位置候補として特定する。そして参照画素位置候補の中から、大気光を推定するために参照する画素位置（参照画素位置）をロバスト推定処理により決定し、撮像画像における参照画素位置の画素値に基づいて大気光成分を推定する。
【００４４】
ステップＳ７０１では、算出部３０１は、記憶部２０４に格納されている撮像画像を取得する。そしてステップＳ７０２では、算出部３０１は、ステップＳ７０１で取得した撮像画像を輝度画像に変換する。この変換には、例えば、一般的なＲＧＢ−Ｙ色変換式を適用すれば良い。
【００４５】
ステップＳ７０３では、算出部３０１は、ステップＳ７０２における変換で得られた輝度画像における最大輝度値を特定し、該最大輝度値の規定割合（本実施形態では９９％）以上の輝度値を有する画素の位置を参照画素位置候補として特定する。なお、本実施形態では、「最大輝度値の９９％以上の輝度値を有する画素の位置」を参照画素位置候補として特定したが、「９９％」以外の数値を用いても構わない。
【００４６】
ステップＳ７０４では、算出部３０１は、ステップＳ７０３で特定した参照画素位置候補のうち、大気光成分を推定するために参照する参照画素位置を、ＲＡＮＳＡＣ法などのロバスト推定を用いて決定する。これは、大気光として選択されるべき画素位置は、本来は空部分の画素位置が望ましく、画像上で空以外の高輝度部分を、選択されるべき画素位置の候補から除外したいためである。一般的には空以外の高輝度部分は画像上に占める割合は少なく、かつ、空の色とは輝度が異なる傾向にあるため、それを外れ値として扱い、除外することができるロバスト推定を行う。また、この時、画素位置の数を制限することもできる。これは、画像上で空の色がグラデーションになっていたりする場合、同じ空でも画素値が異なるため、あまり多くの画素を参照すると、色が変わった空部分まで推定の対象としてしまうことを避けるためである。
【００４７】
ステップＳ７０５では、算出部３０１は、ステップＳ７０４で決定した参照画素位置のうち１つを選択参照画素位置として選択する。ステップＳ７０５では例えば、ステップＳ７０４で決定した参照画素位置のうち撮像画像／輝度画像の左上隅に最も近い参照画素位置を選択参照画素位置として選択する。ここで、算出部３０１は、以下で用いる変数ＳＲ、ＳＧ、ＳＢを０に初期化する。
【００４８】
ステップＳ７０６では、算出部３０１は、撮像画像における選択参照画素位置の画素値（Ｒ，Ｇ，Ｂ）を取得し、ＳＲ＝ＳＲ＋Ｒ、ＳＧ＝ＳＧ＋Ｇ、ＳＢ＝ＳＢ＋Ｂを計算する。ＳＲは、これまでに選択参照画素位置として選択された参照画素位置におけるＲ成分の画素値の総和である。ＳＧは、これまでに選択参照画素位置として選択された参照画素位置におけるＧ成分の画素値の総和である。ＳＢは、これまでに選択参照画素位置として選択された参照画素位置におけるＢ成分の画素値の総和である。
【００４９】
ステップＳ７０７では、算出部３０１は、ステップＳ７０４で決定した参照画素位置の全てを選択参照画素位置として選択したか否かを判断する。この判断の結果、ステップＳ７０４で決定した参照画素位置の全てを選択参照画素位置として選択した場合には、処理はステップＳ７０９に進む。一方、ステップＳ７０４で決定した参照画素位置のうち選択参照画素位置として選択していない参照画素位置が残っている場合には、処理はステップＳ７０８に進む。
【００５０】
ステップＳ７０８では、算出部３０１は、ステップＳ７０４で決定した参照画素位置のうち未選択の１つを選択参照画素位置として選択する。例えば、ステップＳ７０８では、算出部３０１は、前回選択した参照画素位置の右隣の参照画素位置を選択参照画素位置として選択する。前回選択した参照画素位置の右隣に参照画素位置がない場合には、前回選択した参照画素位置よりも画像下方向に位置する参照画素位置のうち最上且つ左端に最も近い参照画素位置を選択参照画素位置として選択する。そして処理はステップＳ７０６に進む。
【００５１】
ステップＳ７０９では、算出部３０１は、上記の処理において求めたＳＲ、ＳＧ、ＳＢを用いて、大気光成分ＡＲＧＢ、下位画素画像の大気光成分の値ＡＹを以下の式（１）、（２）に従って求める。
【００５２】
ＡＲＧＢ＝（ＳＲ／ｎ，ＳＧ／ｎ，ＳＢ／ｎ）  …  （１）
ＡＹ＝（ＳＲ／ｎ＋ＳＧ／ｎ＋ＳＢ／ｎ）／３   …  （２）
ここで、ｎはステップＳ７０４で決定した参照画素位置の総数である。なお、ここで示した式（１）、（２）はあくまで一例であり、大気光成分ＡＲＧＢや下位画素画像の大気光成分の値ＡＹは、他の式を用いて求めてもよい。例えば、式（２）を用いる代わりに、ＳＲ／ｎ、ＳＧ／ｎ、ＳＢ／ｎの中で最も小さい値をＡＹとしても構わない。
【００５３】
そして算出部３０１は、上記の式（１）によって求めた大気光成分ＡＲＧＢおよび式（２）によって求めた下位画素画像の大気光成分の値ＡＹを、記憶部３０９に格納する。
【００５４】
＜下位画素画像の生成：ステップＳ５０２＞
上記のステップＳ５０２における下位画素画像の生成処理の詳細について、図６を例に取り説明する。図６（ａ）は、撮像画像における着目画素Ｐ５と該着目画素Ｐ５を囲む８個の画素Ｐ１〜Ｐ４，Ｐ６〜Ｐ９とで構成される画像領域を示す図である。ここで、画素Ｐｍ（ｍ＝１〜９）における画素値を（Ｒｍ，Ｇｍ，Ｂｍ）と表記する。また、画素Ｐ１〜Ｐ９のそれぞれのＲ，Ｇ，Ｂのそれぞれの画素値の大小関係が、Ｒ５＞Ｂ３＞Ｒ２＞…＞Ｒ４＞Ｂ１＞Ｇ９＞Ｇ７であったとする。
【００５５】
図６（ｂ）は、撮像画像と同サイズ（縦の画素数と横の画素数が撮像画像と同じ）の下位画素画像において着目画素Ｐ５に対応する位置の画素Ｔ１とその周辺の画素を示す図である。このとき、画素Ｔ１の画素値Ｔ１は、以下の式（３）に示す如く、画素Ｐ１〜Ｐ９のそれぞれのＲ，Ｇ，Ｂの画素値のうち最下位の画素値Ｇ７を除いた下位３つの画素値（Ｒ４，Ｂ１，Ｇ９）の加重平均により求める。
【００５６】
Ｔ１＝（２×Ｒ４＋４×Ｂ１＋２×Ｇ９）／８  …（３）
最小値ではなく加重平均を取ることで、下位画素画像がセンサノイズの影響を強く受けることを抑制する。つまり、最小値を取る場合に比べ、処理後の画像にセンサノイズの影響を強く受けた画素が生成されてしまうことを抑制できる。
【００５７】
このような処理により、撮像画像における着目画素Ｐ５に対応する下位画素画像中の画素Ｔ１の画素値を決定することができる。然るに、撮像画像における各画素を着目画素Ｐ５として上記の処理を行うことで、撮像画像における各画素に対応する下位画素画像中の画素の画素値を決定することができ、結果として下位画素画像を生成することができる。
【００５８】
なお、式（３）は下位画素画像における画素値を決定するための計算式の一例であり、他の計算式を用いて下位画素画像における画素値を決定しても良い。たとえば、下位２番目から下位４つの画素値の平均値を画素値Ｔ１として求めてもよい。また、本実施形態では、着目画素の周辺画素として該着目画素に隣接する８画素を用いたが、周辺画素はこの８画素に限らず、例えば該８画素を囲む１６画素を加えた計２４画素であっても良いし、より多くの画素を周辺画素として用いても良い。
【００５９】
＜下位画素画像による補正画像の生成：ステップＳ５０３＞
上記のステップＳ５０３における処理の詳細について、図８のフローチャートに従って説明する。ステップＳ８０１では、補正処理部３０４は、記憶部３０９に格納されている大気光成分ＡＹ、記憶部３１０に格納されている下位画素画像、記憶部３１６に格納されているｔ＿ｔｈ＿ｍａｘおよびｔ＿ｔｈ＿ｍｉｎ、を取得する。
【００６０】
ステップＳ８０２では、補正処理部３０４は、ステップＳ８０１で取得した下位画素画像を、ステップＳ８０１で取得した大気光成分ＡＹを用いて補正することで、補正済みの下位画素画像を生成する。大気光成分ＡＹによる下位画素画像の補正は、例えば以下の式（４）に従って行う。
【００６１】
ｌｏｗｅｒ＿Ａ＝Ｔｉｎ＿ｌｏｗｅｒ／ＡＹ  …（４）
Ｔｉｎ＿ｌｏｗｅｒはステップＳ８０１で取得した下位画素画像、ｌｏｗｅｒ＿Ａは、ステップＳ８０１で取得した下位画素画像をステップＳ８０１で取得した大気光成分ＡＹを用いて補正した補正済みの下位画素画像である。この式（４）は、下位画素画像Ｔｉｎ＿ｌｏｗｅｒにおける各画素の画素値をＡＹで除算することで得られる画像を補正済みの下位画素画像ｌｏｗｅｒ＿Ａとすることを表している。
【００６２】
ステップＳ８０３では、補正処理部３０４は、ステップＳ８０２で生成した補正済みの下位画素画像ｌｏｗｅｒ＿Ａから透過率分布ｔｌｏｗｅｒを生成する。補正済みの下位画素画像ｌｏｗｅｒ＿Ａにおける画素位置（ｘ、ｙ）の画素値をｌｏｗｅｒ＿Ａ（ｘ、ｙ）とすると、透過率分布ｔｌｏｗｅｒにおいて画素位置（ｘ、ｙ）に対応する値ｔｌｏｗｅｒ（ｘ、ｙ）は以下の式（５）に従って求める。
【００６３】
ｔｌｏｗｅｒ（ｘ、ｙ）＝１．０−ω（ｌｏｗｅｒ＿Ａ（ｘ、ｙ））  …  （５）
ωは調整のための係数で、例えば０．９とする。ωは、対象の画素の透過光が霧などの微小粒子による散乱光のみで構成されていた場合は透過率が０になり、微小粒子除去処理後の画素値が０になるのを避けるために設けられた値であって、上で挙げた０．９でなくても良い。式（５）の計算を全てのｘ、ｙについて行うことで、全てのｘ、ｙに対応する透過率分布ｔｌｏｗｅｒの値を確定させることができる。
【００６４】
ステップＳ８０４では、補正処理部３０４は、ステップＳ８０３で求めた透過率分布ｔｌｏｗｅｒを、記憶部２０４に格納されている撮像画像や、ステップＳ８０１で取得したｔ＿ｔｈ＿ｍａｘおよびｔ＿ｔｈ＿ｍｉｎを用いて整形（補正）する。
【００６５】
これは、透過率分布を、撮像画像に含まれる構造物等、被写体形状に合わせる必要があることと、ｔ＿ｔｈ＿ｍａｘおよびｔ＿ｔｈ＿ｍｉｎによって規定される距離範囲に処理範囲を限定するためである。ステップＳ８０３までの処理で、透過率分布は、撮像画像内の大まかな被写体形状情報のみが含まれている状態にあり、被写体形状を精度よく分離する必要があるためである。具体的には、非特許文献１に記載されるような公知のエッジキープ型フィルタを用いればよい。
【００６６】
次に、ｔ＿ｔｈ＿ｍａｘおよびｔ＿ｔｈ＿ｍｉｎによって規定される距離範囲に含まれない画素の領域については、微小粒子による影響を抑制するための処理を行わないようにする。そのため、撮像画像の各画素位置（ｘ、ｙ）に対応するｔｌｏｗｅｒ（ｘ、ｙ）のうちｔｌｏｗｅｒ（ｘ、ｙ）＞ｔ＿ｔｈ＿ｍａｘもしくはｔｌｏｗｅｒ（ｘ、ｙ）＜ｔ＿ｔｈ＿ｍｉｎを満たすｔｌｏｗｅｒ（ｘ、ｙ）の値を「１」（非透過を表す値）に更新する。つまり、撮像画像の各画素位置（ｘ、ｙ）に対応するｔｌｏｗｅｒ（ｘ、ｙ）のうち距離範囲の外側に対応する値を有するものについては該値を「１」に更新する。
【００６７】
なお、本実施形態では、フィルタ処理後に、ｔ＿ｔｈ＿ｍａｘおよびｔ＿ｔｈ＿ｍｉｎを用いた透過率分布の補正を行っているが、ｔ＿ｔｈ＿ｍａｘおよびｔ＿ｔｈ＿ｍｉｎを用いた透過率分布の補正後にフィルタ処理を行っても良い。
【００６８】
ステップＳ８０５では、補正処理部３０４は、ステップＳ８０４で整形した透過率分布ｔｌｏｗｅｒと、ステップＳ８０１で取得した大気光成分ＡＹと、を用いて、記憶部２０４に格納されている撮像画像を補正した補正画像を生成する。この補正は以下の式（６）に従って行う。
【００６９】
Ｊｌｏｗｅｒ（ｘ、ｙ）＝（Ｉ（ｘ，ｙ）−ＡＹ）／ｍａｘ（ｔ０，ｔｌｏｗｅｒ（ｘ、ｙ））＋ＡＹ  …  （６）
Ｊｌｏｗｅｒ（ｘ、ｙ）は、補正画像Ｊｌｏｗｅｒにおける画素位置（ｘ、ｙ）の画素値、Ｉ（ｘ，ｙ）は記憶部２０４に格納されている撮像画像Ｉにおける画素位置（ｘ、ｙ）の画素値である。ｍａｘ（Ａ，Ｂ）はＡ＞ＢならばＡを出力し、Ｂ＜ＡならばＢを出力する関数である。ｔ０は調整のための係数で、例えば０．１とする。これは、ｔｌｏｗｅｒが限りなく小さい値であった場合、Ｊｌｏｗｅｒの値は、Ｉのわずかな差、つまり、撮像時のショットノイズ等によって値が大きく変動してしまうのを防ぐために設けられた値であって、上で挙げた０．１でなくても良い。
【００７０】
そしてステップＳ８０６では、補正処理部３０４は、ステップＳ８０５で生成した補正画像Ｊｌｏｗｅｒを記憶部３１２に格納する。このような処理を行うことで、下位画素画像による微粒子成分の影響を補正した画像を作成することができる。
【００７１】
＜ＲＧＢ下位画素画像による補正画像の生成：ステップＳ５０４＞
上記のステップＳ５０４における処理の詳細について、図９のフローチャートに従って説明する。ステップＳ９０１では、補正処理部３０５は、記憶部２０４に格納されている撮像画像、記憶部３０９に格納されている大気光成分ＡＲＧＢ、記憶部３１６に格納されているｔ＿ｔｈ＿ｍａｘおよびｔ＿ｔｈ＿ｍｉｎ、を取得する。
【００７２】
ステップＳ９０２では、補正処理部３０５は、撮像画像のＲプレーン、Ｇプレーン、Ｂブレーンのそれぞれを、大気光成分ＡＲＧＢを用いて補正する。この補正は以下の式（７）に従って行う。
【００７３】
ＲＧＢ＿Ａ（ｘ、ｙ、ｃ）＝Ｔｉｎ＿ＲＧＢ（ｘ、ｙ、ｃ）／ＡＲＧＢ  …  （７）
Ｔｉｎ＿ＲＧＢ（ｘ、ｙ、ｃ）は、撮像画像におけるｃ（ｃ＝Ｒ，Ｇ，Ｂ）プレーン中の画素位置（ｘ、ｙ）の画素値を表す。ＲＧＢ＿Ａ（ｘ、ｙ、ｃ）は、ＲＧＢ下位画素画像ＲＧＢ＿Ａにおけるｃプレーン中の画素位置（ｘ、ｙ）の画素値を表す。
【００７４】
そして補正処理部３０５は、ＲＧＢ下位画素画像ＲＧＢ＿Ａに対してフィルタ処理を行うことで、ＲＧＢ下位画素値画像ｐａｔｃｈ＿ＲＧＢ＿Ａを生成する。ＲＧＢ下位画素画像ＲＧＢ＿Ａに対して行うフィルタ処理の詳細について、図１０を用いて説明する。
【００７５】
図１０（ａ）は、ＲＧＢ下位画素画像ｐａｔｃｈ＿ＲＧＢ＿Ａにおける着目画素Ｔ３とその周辺の画素を表しており、以下では、この着目画素Ｔ３の画素値Ｔ３を確定するためのフィルタ処理を説明する。然るに以下に説明するフィルタ処理をＲＧＢ下位画素画像ｐａｔｃｈ＿ＲＧＢ＿Ａにおける各画素について行うことで、ＲＧＢ下位画素画像ｐａｔｃｈ＿ＲＧＢ＿Ａの各画素の画素値が確定する。図１０（ｂ）〜（ｄ）はそれぞれ、ＲＧＢ下位画素画像ＲＧＢ＿ＡのＲプレーン、Ｇプレーン、Ｂプレーンを示している。
【００７６】
図１０（ｂ）においてＴ３Ｒは、ＲＧＢ下位画素画像ＲＧＢ＿ＡのＲプレーンにおいて着目画素Ｔ３に対応する画素を表している。Ｒ１〜Ｒ４はそれぞれ、画素Ｔ３Ｒを中心とする５画素×５画素の画像領域に属する２５画素のうち最小の画素値の画素、２番目に小さい画素値の画素、３番目に小さい画素値の画素、４番目に小さい画素値の画素である。つまり、Ｒ４＞Ｒ３＞Ｒ２＞Ｒ１を満たす。
【００７７】
図１０（ｃ）においてＴ３Ｇは、ＲＧＢ下位画素画像ＲＧＢ＿ＡのＧプレーンにおいて着目画素Ｔ３に対応する画素を表している。Ｇ１〜Ｇ４はそれぞれ、画素Ｔ３Ｇを中心とする５画素×５画素の画像領域に属する２５画素のうち最小の画素値の画素、２番目に小さい画素値の画素、３番目に小さい画素値の画素、４番目に小さい画素値の画素である。つまり、Ｇ４＞Ｇ３＞Ｇ２＞Ｇ１を満たす。
【００７８】
図１０（ｄ）においてＴ３Ｂは、ＲＧＢ下位画素画像ＲＧＢ＿ＡのＢプレーンにおいて着目画素Ｔ３に対応する画素を表している。Ｂ１〜Ｂ４はそれぞれ、画素Ｔ３Ｂを中心とする５画素×５画素の画像領域に属する２５画素のうち最小の画素値の画素、２番目に小さい画素値の画素、３番目に小さい画素値の画素、４番目に小さい画素値の画素である。つまり、Ｂ４＞Ｂ３＞Ｂ２＞Ｂ１を満たす。
【００７９】
このような場合、画素Ｔ３のＲ成分の画素値ＴＲ、画素Ｔ３のＧ成分の画素値ＴＧ、画素Ｔ３のＢ成分の画素値ＴＢ、はそれぞれ以下の式（８Ａ）〜（８Ｃ）に従って求める。
【００８０】
ＴＲ＝（２×Ｒ２＋４×Ｒ３＋２×Ｒ４）／８  …  （８Ａ）
ＴＧ＝（２×Ｇ２＋４×Ｇ３＋２×Ｇ４）／８  …  （８Ｂ）
ＴＢ＝（２×Ｂ２＋４×Ｂ３＋２×Ｂ４）／８  …  （８Ｃ）
ＴＲ、ＴＧ、ＴＢのそれぞれは、対応する色プレーン内のみの画素値を用いて求めることが、下位画素画像との違いである。下位画素画像は、ＲＧＢ下位画素画像とは異なり、着目画素周辺の全プレーンの画素を対象に行われる。このため、採用される画素は、ＲＧＢいずれのプレーンの画素からも採用される可能性があるが、ＲＧＢ下位画素画像の場合は、各色プレーンからのみ採用される。この違いにより、光の散乱の波長による影響を考慮することができる。
【００８１】
図９に戻って、次に、ステップＳ９０３では、補正処理部３０５は、ステップＳ９０２で生成したＲＧＢ下位画素値画像ｐａｔｃｈ＿ＲＧＢ＿Ａから透過率分布ｔＲＧＢを生成する。ＲＧＢ下位画素値画像ｐａｔｃｈ＿ＲＧＢ＿Ａのｃプレーンにおける画素位置（ｘ、ｙ）の画素値をｐａｔｃｈ＿ＲＧＢ＿Ａ（ｘ、ｙ、ｃ）とする。このとき、透過率分布ｔＲＧＢにおいてｃプレーンにおける画素位置（ｘ、ｙ）に対応する値ｔＲＧＢ（ｘ、ｙ、ｃ）は以下の式（９）に従って求める。
【００８２】
ｔＲＧＢ（ｘ、ｙ、ｃ）＝１．０−ω（ｐａｔｃｈ＿ＲＧＢ＿Ａ（ｘ、ｙ、ｃ））  …  （９）
式（９）の計算を全てのｘ、ｙ、ｃについて行うことで、全てのｘ、ｙ、ｃに対応する透過率分布ｔＲＧＢの値を確定させることができる。そしてステップＳ９０４では、補正処理部３０５は、透過率分布ｔＲＧＢの色プレーン毎に上記のステップＳ８０４と同様の処理を適用することで、透過率分布ｔＲＧＢを色プレーンごとに整形（補正）する。
【００８３】
ステップＳ９０５では、補正処理部３０５は、ステップＳ９０４で整形した透過率分布ｔＲＧＢと、ステップＳ９０１で取得した大気光成分ＡＲＧＢと、を用いて、記憶部２０４に格納されている撮像画像を補正した補正画像を生成する。この補正は以下の式（１０）に従って行う。
【００８４】
ＪＲＧＢ（ｘ、ｙ、ｃ）＝（Ｉ（ｘ，ｙ、ｃ）−ＡＲＧＢ）／ｍａｘ（ｔ０，ｔＲＧＢ（ｘ、ｙ、ｃ））＋ＡＲＧＢ  …  （１０）
ＪＲＧＢ（ｘ、ｙ、ｃ）は、補正画像ＪＲＧＢのｃプレーンにおける画素位置（ｘ、ｙ）の画素値、Ｉ（ｘ，ｙ、ｃ）は記憶部２０４に格納されている撮像画像Ｉのｃプレーンにおける画素位置（ｘ、ｙ）の画素値である。ｔ０は調整のための係数で、例えば０．１とする。これは、ｔＲＧＢが限りなく小さい値であった場合、ＪＲＧＢの値は、Ｉのわずかな差、つまり、撮像時のショットノイズ等によって値が大きく変動してしまうのを防ぐために設けられた値であって、上で挙げた０．１でなくても良い。
【００８５】
そしてステップＳ９０６では、補正処理部３０５は、ステップＳ９０５で生成した補正画像ＪＲＧＢを記憶部３１３に格納する。このような処理を行うことで、ＲＧＢ下位画素画像による微粒子成分の影響を補正した画像を作成することができる。
【００８６】
＜ミー散乱成分の算出：ステップＳ５０５＞
上記のステップＳ５０５における処理の詳細について、図１１のフローチャートに従って説明する。ステップＳ１１０１では、算出部３０６は、記憶部２０４に格納されている撮像画像と、記憶部３１２に格納されている補正画像と、を取得する。そしてステップＳ１１０２では、算出部３０６は、ステップＳ１１０１で取得した撮像画像Ｉおよび補正画像Ｊｌｏｗｅｒを用いて以下の式（１１）に示す演算処理を行うことで、撮像画像Ｉのミー散乱成分に相当するミー散乱成分画像Ｍを生成する。
【００８７】
Ｉ（ｘ，ｙ，ｃ）−Ｊｌｏｗｅｒ（ｘ，ｙ，ｃ）≧０のとき  ：  Ｍ（ｘ，ｙ，ｃ）＝Ｉ（ｘ，ｙ，ｃ）−Ｊｌｏｗｅｒ（ｘ，ｙ，ｃ）
Ｉ（ｘ，ｙ，ｃ）−Ｊｌｏｗｅｒ（ｘ，ｙ，ｃ）＜０のとき  ：  Ｍ（ｘ，ｙ，ｃ）＝０  …  （１１）
Ｍ（ｘ，ｙ，ｃ）は、ミー散乱成分画像Ｍのｃプレーンにおける画素位置（ｘ、ｙ）の画素値である。この式（１１）に従った演算処理を全てのｘ、ｙ、ｃについて行うことで、ミー散乱成分画像Ｍにおいて全てのｘ、ｙ、ｃに対応する値（画素値）が確定する。そしてステップＳ１１０３では、算出部３０６は、ステップＳ１１０２で生成したミー散乱成分画像Ｍを記憶部３１４に格納する。
【００８８】
＜レイリー散乱成分の算出：ステップＳ５０６＞
上記のステップＳ５０６における処理の詳細について、図１２のフローチャートに従って説明する。ステップＳ１２０１では、算出部３０７は、記憶部２０４に格納されている撮像画像と記憶部３１３に格納されている補正画像と記憶部３１４に格納されているミー散乱成分画像とを取得する。
【００８９】
ステップＳ１２０２では、算出部３０７は、ステップＳ１２０１で取得した撮像画像Ｉ、補正画像ＪＲＧＢ、ミー散乱成分画像Ｍを用いて以下の式（１２）に示す演算処理を行う。これにより算出部３０７は、撮像画像Ｉのレイリー散乱成分に相当するレイリー散乱成分画像Ｒを生成する。
【００９０】
Ｉ（ｘ，ｙ，ｃ）−ＪＲＧＢ（ｘ，ｙ，ｃ）−Ｍ（ｘ，ｙ，ｃ）≧０のとき  ：  Ｒ（ｘ，ｙ，ｃ）＝Ｉ（ｘ，ｙ，ｃ）−ＪＲＧＢ（ｘ，ｙ，ｃ）−Ｍ（ｘ，ｙ，ｃ）
Ｉ（ｘ，ｙ，ｃ）−ＪＲＧＢ（ｘ，ｙ，ｃ）−Ｍ（ｘ，ｙ，ｃ）＜０のとき  ：  Ｒ（ｘ，ｙ，ｃ）＝０  …  （１２）
Ｒ（ｘ，ｙ，ｃ）は、レイリー散乱成分画像Ｒのｃプレーンにおける画素位置（ｘ、ｙ）の画素値である。この式（１２）に従った演算処理を全てのｘ、ｙ、ｃについて行うことで、レイリー散乱成分画像Ｒにおいて全てのｘ、ｙ、ｃに対応する値（画素値）が確定する。そしてステップＳ１２０３では、算出部３０７は、ステップＳ１２０２で生成したレイリー散乱成分画像Ｒを記憶部３１５に格納する。
【００９１】
＜合成処理：ステップＳ５０７＞
上記のステップＳ５０７における処理の詳細について説明する。合成画像Ｊｏｕｔのｃプレーンにおける画素位置（ｘ、ｙ）の画素値Ｊｏｕｔ（ｘ、ｙ、ｃ）は以下の式（１３）に従って求める。
【００９２】
Ｊｏｕｔ（ｘ，ｙ，ｃ）＝ＪＲＧＢ（ｘ，ｙ，ｃ）＋ｍ・Ｍ（ｘ，ｙ，ｃ）＋ｒ・Ｒ（ｘ，ｙ，ｃ）  …  （１３）
ｍはミー散乱強度係数、ｒはレイリー散乱強度係数である。本実施形態ではｒ＝０．５、ｍ＝０．１など、０〜１の間を取ることが望ましいが、それ以外の値を用いてもかまわない。また、このときｍ＝０、ｒ＝０とすることで、コントラストの向上のみに特化し、色付きを考慮しない画像を生成することも可能である。このように、ｍとｒの値を任意に変えて画像を合成することにより、光の散乱による影響の割合を制御することができる。この式（１３）に従った演算処理を全てのｘ、ｙ、ｃについて行うことで、合成画像Ｊｏｕｔにおいて全てのｘ、ｙ、ｃに対応する値（画素値）が確定する。
【００９３】
このように、本実施形態によれば、撮像画像中の微小粒子成分による影響を抑制する処理を行う際に、大気の散乱成分であるミー散乱成分とレイリー散乱成分を推定できる。そして、それぞれの成分を任意の割合で合成することによりセンサノイズを考慮しつつ、微小粒子成分による影響で低下したコントラストを向上させ、視認性を改善させた画像を生成することが可能となる。
【００９４】
［第２の実施形態］
＜第２の実施形態の概要＞
先ず、第２の実施形態の概要について説明する。本実施形態では、撮像画像において空の領域であると判断される透過率の低い画素の割合を、霧霞除去の処理パラメータを決めるための判断基準として使用する。本実施形態では、霧霞除去処理に、空領域の判定が加わり、空領域が少ないと判定された場合には、微小粒子成分による影響を除去するためのパラメータを変更して除去処理を行う点が第１の実施形態と異なる。以下では、第１の実施形態との差分について説明し、以下で特に触れない限りは、第１の実施形態と同様であるものとする。
【００９５】
＜画像処理装置１００の全体処理＞
撮像画像中の「大気中の微小粒子成分による影響」を抑制した撮像画像を生成して出力するために画像処理装置１００が行う処理について、図１４のフローチャートに従って説明する。
【００９６】
ステップＳ１４０１では、取得部２０１は、撮像部１１１から送出された撮像画像を取得し、該取得した撮像画像を記憶部２０４に格納する。ステップＳ１４０２では、処理部２０２は、ステップＳ１４０１で記憶部２０４に記憶した撮像画像に対して、微小粒子成分による影響を抑制するための処理である除去処理を行い、微小粒子除去処理済みの撮像画像を記憶部２０５に格納する。ステップＳ１４０２における処理の詳細については後述する。そしてステップＳ１４０３では、出力部２０３は、ステップＳ１４０２で記憶部２０５に格納した撮像画像をＨＤＤＩ／Ｆ１０４を介してＨＤＤ１０５に出力することで、該撮像画像を該ＨＤＤ１０５に保存する。
【００９７】
＜微小粒子除去処理＞
上記のステップＳ１４０２における霧霞除去処理の詳細について、図１５のフローチャートに従って説明する。本実施形態では、第１の実施形態と比較して、大気光成分算出および空領域判定の処理が異なる。この処理はステップＳ１５０２に該当する。
【００９８】
ステップＳ１５０２では、算出部３０１は、記憶部２０４に格納されている撮像画像内に空領域が多く含まれているか否かを判定する。そして算出部３０１は、空領域が少ないと判定した場合には、大気光成分を算出するために用いるパラメータを変更し、該変更後のパラメータを用いて大気光成分を求め（推定し）、該求めた大気光成分を記憶部３０９に格納する。ステップＳ１５０２における処理の詳細については後述する。
【００９９】
＜空領域の判定および大気光成分の算出：ステップＳ１５０２＞
上記のステップＳ１５０２における処理の詳細について、図１６のフローチャートに従って説明する。ステップＳ１６０３では、算出部３０１は、ステップＳ７０２における変換で得られた輝度画像を構成する画素のうち、閾値よりも高い輝度値を有する画素（空の領域を構成する画素）の数を計数する。
【０１００】
ステップＳ１６０４では、算出部３０１は、輝度画像の全画素数に対する「ステップＳ１６０３で計数した画素数」の割合が閾値（例えば２０％）以上であるか否かを判断する。この判断の結果、輝度画像の全画素数に対する「ステップＳ１６０３で計数した画素数」の割合が閾値以上であれば、撮像画像は屋外で撮像された画像であると判断する。一方、輝度画像の全画素数に対する「ステップＳ１６０３で計数した画素数」の割合が閾値未満であれば、撮像画像は屋内で撮像された画像であると判断する。
【０１０１】
そして算出部３０１は、撮像画像が屋内で撮像された画像であると判断した場合には、ステップＳ７０３で使用する上記の規定割合を９２％に設定する。一方、算出部３０１は、撮像画像が屋外で撮像された画像であると判断した場合には、ステップＳ７０３で使用する上記の規定割合を９９％に設定する。
【０１０２】
なお、本実施形態では、撮像画像が屋内で撮像された画像であるのか屋外で撮像された画像であるのかを、輝度画像において閾値以上の画素値を有する画素の数に基づいて判断した。しかし、撮像画像が屋内で撮像された画像であるのか屋外で撮像された画像であるのかを判断する方法は特定の方法に限らない。例えば輝度画像の全画素数に対する「輝度画像の上半分の領域内で閾値以上の画素値を有する画素の数」の割合が閾値以上であれば、撮像画像は屋外で撮像された画像であると判断し、閾値未満であれば、撮像画像は屋内で撮像された画像であると判断しても良い。
【０１０３】
また、本実施形態では、撮像画像が屋外で撮像された画像であるのか屋外で撮像された画像であるのかに応じて上記の規定割合を変更した。しかし、変更するパラメータは規定割合に限らず、透過率分布を決定する際の係数ωなど、他のパラメータを規定割合に代えて若しくは加えて変更するようにしても良い。
【０１０４】
このように、本実施形態によれば、撮像画像が屋内で撮像された画像であるのか屋外で撮像された画像であるのかに応じて、微小粒子成分による影響を抑制するためのパラメータを変更して処理を行うことができる。
【０１０５】
なお、本実施形態では、撮像画像が撮像されたシーンが屋内であるのか屋外であるのかを判断していたが、より多くの種類のシーンのうち何れであるのかを判断し、その判断したシーンに応じたパラメータを設定（制御）するようにしても良い。
【０１０６】
［第３の実施形態］
上記の説明において使用した数値や数式は具体的な説明を行うために使用したものであり、上記の各実施形態が、使用した数値や数式に限定されることを意図したものではない。また、以上説明した各実施形態の一部若しくは全部を適宜組み合わせて使用しても構わない。また、以上説明した各実施形態の一部若しくは全部を選択的に使用しても構わない。
【０１０７】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【０１０８】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【０１０９】
２０１：取得部  ２０２：処理部  ２０３：出力部  ２０４：記憶部  ２０５：記憶部
【図１】
2020134273.tif 000003
【図２】
2020134273.tif 000004
【図３】
2020134273.tif 000005
【図４】
2020134273.tif 000006
【図５】
2020134273.tif 000007
【図６】
2020134273.tif 000008
【図７】
2020134273.tif 000009
【図８】
2020134273.tif 000010
【図９】
2020134273.tif 000011
【図１０】
2020134273.tif 000012
【図１１】
2020134273.tif 000013
【図１２】
2020134273.tif 000014
【図１３】
2020134273.tif 000015
【図１４】
2020134273.tif 000016
【図１５】
2020134273.tif 000017
【図１６】
2020134273.tif 000018