(57)【要約】【課題】複数画像間において被写体の動きや、ノイズ及び量子化誤差が発生する場合でも、複数画像間の露光量比を正確に算出する。【解決手段】ヒストグラム算出部３１が、撮像部１２で撮像された短時間露光画像及び長時間露光画像について、ＲＡＷデータを用いて画素値毎の画素数で表されるヒストグラムを算出する。露光量比算出部３２が、短時間露光画像のヒストグラムの各画素値の画素数を、画素値をＫ倍したヒストグラムの対応する画素値の部分に割り当てて、短時間露光画像のＫ倍の露光量で撮像したと仮定した画像のＫ倍ヒストグラムを推定する。Ｋ倍ヒストグラムと長時間露光画像のヒストグラムとの形状の類似度が最大のときのＫを２画像間の露光量比Ｎとして算出する。画素値調整部３４は、露光量比Ｎに基づいて２画像の明るさ合わせを行う。合成部３７は、明るさ合わせした２画像の画素値に基づいて、ＨＤＲ合成画像を合成する。【選択図】図２
2014143613.tif 000002
【特許請求の範囲】
【請求項１】
撮像部により異なる露光量で撮像された複数の画像について、前記複数の画像の各々に含まれる画素の画素値毎の画素数で表されるヒストグラムを画像毎に算出するヒストグラム算出部と、
前記複数の画像の内の第一の画像から算出された第一ヒストグラムの形状と、前記複数の画像の内の第二の画像から算出された第二ヒストグラムの形状との類似度に基づいて、前記第一の画像に対する露光量と前記第二の画像に対する露光量との比を露光量比として算出する露光量比算出部と、
前記露光量比算出部により算出された露光量比に基づいて、前記第一の画像及び前記第二の画像の内の一方に含まれる画素の画素値を調整する画素値調整部と、
前記画素値調整部による画素値の調整後の前記第一の画像及び前記第二の画像の内の一方と、前記第一の画像及び前記第二の画像の内の他方とを合成する合成部と、
を含む画像処理装置。
【請求項２】
前記露光量比算出部は、前記第一ヒストグラムの各画素値の画素数を所定倍し、前記第二ヒストグラムの形状との類似度を求める請求項１記載の画像処理装置。
【請求項３】
前記露光量比算出部は、前記類似度として、前記第一ヒストグラムの各画素値の画素数と前記第二ヒストグラムの対応する各画素値の画素数との関係を示す画素値毎の関係値を全画素値分加算した値を算出する請求項１または請求項２記載の画像処理装置。
【請求項４】
前記露光量比算出部は、前記関係値を、前記第一ヒストグラムの各画素値の画素数と前記第二ヒストグラムの対応する各画素値の画素数との差分絶対値または差分の二乗に、ヒストグラムにおける画素値の中央値に近いほど大きい重み付け値を乗算した値とする請求項３記載の画像処理装置。
【請求項５】
前記露光量比算出部は、前記類似度の最大値との差が所定範囲内となる類似度が複数存在する場合に、前記重み付け値を大きくし、前記類似度を再度求める請求項４記載の画像処理装置。
【請求項６】
前記ヒストグラム算出部は、ヒストグラムを算出するための画素値として、前記撮像部から出力され、デジタル変換された信号が示す画素値を用いる請求項１〜請求項５のいずれか１項記載の画像処理装置。
【請求項７】
前記撮像部と、
請求項１〜請求項６のいずれか１項記載の画像処理装置と、
前記合成部で合成された画像を表示するための表示部と、
を含む撮像装置。
【請求項８】
撮像部により異なる露光量で撮像された複数の画像について、前記複数の画像の各々に含まれる画素の画素値毎の画素数で表されるヒストグラムを画像毎に算出し、
前記複数の画像の内の第一の画像から算出された第一ヒストグラムの形状と、前記複数の画像の内の第二の画像から算出された第二ヒストグラムの形状との類似度に基づいて、前記第一の画像に対する露光量と前記第二の画像に対する露光量との比を露光量比として算出し、
算出された露光量比に基づいて、前記第一の画像及び前記第二の画像の内の一方に含まれる画素の画素値を調整し、
画素値の調整後の前記第一の画像及び前記第二の画像の内の一方と、前記第一の画像及び前記第二の画像の内の他方とを合成する
ことを含む画像処理方法。
【請求項９】
コンピュータに、
撮像部により異なる露光量で撮像された複数の画像について、前記複数の画像の各々に含まれる画素の画素値毎の画素数で表されるヒストグラムを画像毎に算出し、
前記複数の画像の内の第一の画像から算出された第一ヒストグラムの形状と、前記複数の画像の内の第二の画像から算出された第二ヒストグラムの形状との類似度に基づいて、前記第一の画像に対する露光量と前記第二の画像に対する露光量との比を露光量比として算出し、
算出された露光量比に基づいて、前記第一の画像及び前記第二の画像の内の一方に含まれる画素の画素値を調整し、
画素値の調整後の前記第一の画像及び前記第二の画像の内の一方と、前記第一の画像及び前記第二の画像の内の他方とを合成する
ことを含む処理を実行させるための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、画像処理装置、画像処理方法、画像処理プログラム、及び撮像装置に関する。
【背景技術】
【０００２】
通常、デジタルカメラ等の撮像装置で撮像を行う場合、イメージセンサのダイナミックレンジに制限があるため、逆光などの影響を受けて、背景が白飛びしたり人物の顔が黒く潰れてしまったりする場合がある。
【０００３】
このような白飛びや黒潰れを解消するために、露光時間の異なる複数の撮像条件で撮像した画像の各々を合成することで、ダイナミックレンジを拡大する手法が一般的に知られている。この手法では、例えば、シャッター速度を速く設定した短時間露光画像を撮像すると共に、シャッター速度を遅く設定した長時間露光画像を撮像する。そして、長時間露光画像と短時間露光画像とを、明るさが等しくなるように明るさ合わせを行った上で、明るい領域は短時間露光画像を用い、暗い領域は長時間露光画像を用いるなどして、長時間露光画像と短時間露光画像とを合成する。このため、明るさ合わせが正確に行われていない場合には、合成画像の明るさに不自然なつながりが発生し、合成画像の画質が劣化してしまう。
【０００４】
また、上記のように、撮像された時間が異なる２つの画像を合成する場合には、２画像間で手振れによる位置のずれや、被写体が動いたことによる被写体ブレが発生する。手振れや被写体ブレが生じている画像を用いて合成を行うと、被写体が２重に映るなどして、合成画像の画質が劣化する。このような手振れや被写体ブレによる合成画像の画質の劣化を解消するために、２画像間の手振れや被写体ブレを検出し、画像を合成する際に補正を加える手法が提案されている。このような手法では、画像の合成時に、検出された手振れ量分画像を平行移動して位置合わせを行ったり、被写体ブレ領域では短時間露光画像または長時間露光画像のうち適切な方の画素値を用いたりして画像を合成する。
【０００５】
このような手振れや被写体ブレの検出手法として、２画像間の輝度値の差分に基づいて行う手法が知られている。輝度値の差分に基づいて手振れや被写体ブレを検出する場合、２画像間の明るさ合わせが正確に行われている必要がある。明るさ合わせが正確でない場合、動いていない領域も輝度値の差分が大きく発生し、手振れや被写体ブレとして誤検出されてしまう場合があり、画像の合成時に不要な補正処理が行われ、合成画像の画質が劣化する。
【０００６】
上記のように、短時間露光画像と長時間露光画像とを合成する際には、明るさ合わせを正確に行う必要がある。この明るさ合わせを行うために必要な、短時間露光画像の露光量と長時間露光画像の露光量との露光量比は、シャッター速度などの撮像条件から求めることができる。しかし、光源環境の変化や設定値の誤差などによって、実撮像画像における露光量比と撮像条件から求めた露光量比とが異なってしまう可能性がある。
【０００７】
そこで、実撮像画像から露光量比を求める手法が提案されている。例えば、長時間露光信号と短時間露光信号との露光量比を撮像画面に分割形成したブロック毎に検出する手法が提案されている。この手法では、検出したブロック毎の露光量比に基づいて、ダイナミックレンジ拡大における長時間露光信号と短時間露光信号とのゲイン調整をブロック毎に行っている。
【０００８】
また、検出部で検出したピーク値と閾値とを比較し短時間露光の露光時間を制御し、比較した結果が一定の範囲内であれば、さらにピーク値と閾値とを一致するように露光時間の制御を行う手法が提案されている。この手法では、検出部で検出したピーク値に対する閾値においては高輝度被写体の階調を広くする値に設定する。さらに、短時間露光画像のヒストグラム分布から、短時間露光画像の階調が広がるようにＡＧＣ部によるゲイン調整処理、ガンマ補正の設定を行う。短時間露光画像と長時間露光画像との合成処理においても、ヒストグラム分布のパターンから、それぞれのパターンに合わせて予め決めた比率で合成を行っている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００２−１０１３４７号公報
【特許文献２】特開２００１−３３９６３３号公報
【特許文献３】特開２００９−２１３０３２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、ブロック毎の露光量比を求める従来の手法では、長時間露光画像で白飛びしている領域、及び短時間露光画像で黒潰れしている領域に含まれる画素も露光量比の算出に使用してしまうため、露光量比の算出精度が低下する、という問題がある。白飛びしている領域及び黒潰れしている領域に含まれる画素を除外して露光量比を算出する方法も考えられるが、白飛びしている領域や黒潰れしている領域が２画像間で動いていた場合には、除外処理が適切に行えず、露光量比算出の精度が落ちてしまう。
【００１１】
また、輝度値のピーク値を用いる従来の手法では、ノイズや量子化誤差の影響でピーク値が変動する可能性があり、正確なピーク値を検出することができず、露光量比の算出精度も低下する、という問題がある。
【００１２】
開示の技術は、一つの側面として、複数画像間において被写体の動きや、ノイズ及び量子化誤差が発生する場合でも、複数画像間の露光量比を正確に算出することが目的である。
【課題を解決するための手段】
【００１３】
開示の技術は、撮像部により異なる露光量で撮像された複数の画像について、前記複数の画像の各々に含まれる画素の画素値毎の画素数で表されるヒストグラムを画像毎に算出するヒストグラム算出部を備えている。また、開示の技術は、前記複数の画像の内の第一の画像に対する露光量と前記複数の画像の内の第二の画像に対する露光量との比を露光量比として算出する露光量比算出部を備えている。露光量比算出部は、前記第一の画像から算出された第一ヒストグラムの形状と、前記第二の画像から算出された第二ヒストグラムの形状との類似度に基づいて露光量比を算出する。また、開示の技術は、前記露光量比算出部により算出された露光量比に基づいて、前記第一の画像及び前記第二の画像の内の一方に含まれる画素の画素値を調整する画素値調整部を備えている。また、開示の技術は、前記画素値調整部による画素値の調整後の前記第一の画像及び前記第二の画像の内の一方と、前記第一の画像及び前記第二の画像の内の他方とを合成する合成部を備えている。
【発明の効果】
【００１４】
開示の技術は、一つの側面として、複数画像間において被写体の動きや、ノイズ及び量子化誤差が発生する場合でも、複数画像間の露光量比を正確に算出することができる、という効果を有する。
【図面の簡単な説明】
【００１５】
【図１】第１実施形態に係る撮像装置の構成の一例を示すブロック図である。
【図２】画像処理部の機能的構成の一例を示すブロック図である。
【図３】ヒストグラムの算出を説明するための概略図である。
【図４】画素値の合計や平均を用いた従来手法の露光量比の算出を説明するための概略図である。
【図５】画素値の合計や平均を用いた従来手法の問題点を説明するための概略図である。
【図６】画素値のピーク値を用いた従来手法の露光量比の算出を説明するための概略図である。
【図７】ヒストグラムの形状の類似度の算出を説明するための概略図である。
【図８】ヒストグラムの形状の類似度の算出を説明するための概略図である。
【図９】ヒストグラムの形状の類似度の算出を説明するための概略図である。
【図１０】ＹＣｂＣｒ変換部の機能的構成の一例を示すブロック図である。
【図１１】手振れの発生を示すイメージ図である。
【図１２】手振れ検出を説明するための概略図である。
【図１３】被写体に動きが生じた場合を示すイメージ図である。
【図１４】被写体ブレ検出を説明するための概略図である。
【図１５】合成部の機能的構成の一例を示すブロック図である。
【図１６】ブレンド比を計算するためのテーブルの一例を示す概略図である。
【図１７】トーンマッピング処理のためのテーブルの一例を示す概略図である。
【図１８】第１実施形態における画像処理を示すフローチャートである。
【図１９】第１実施形態における露光量比算出処理を示すフローチャートである。
【図２０】第２実施形態における露光量比算出処理を示すフローチャートである。
【図２１】重み付けの変更を説明するための概略図である。
【図２２】第３実施形態に係る撮像装置の画像処理部として機能するコンピュータの一例を示す概略ブロック図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。
【００１７】
〔第１実施形態〕
図１に、第１実施形態に係る撮像装置１０を示す。撮像装置１０は、撮像部１２、表示部１４、及び画像処理部１６を備えている。
【００１８】
撮像部１２は、例えばＣＣＤ（Charge Coupled Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）等の撮像素子と、例えば複数の光学レンズを含むレンズ群、絞り調整機構、ズーム機構、及び自動焦点調節機構等を含むレンズ部とを備えている。なお、ズーム機構を省略し、撮像倍率の変更を電子ズームによって実現してもよい。撮像部１２は、画像の撮像が指示されると、設定された撮像条件に従って撮像素子により撮像された電気信号（アナログ信号）をデジタル信号に変換して出力する。ここで出力されるデジタル信号は、撮像部１２に設定された各種情報に基づいて三原色の画像データに加工する前のいわゆるＲＡＷデータである。
【００１９】
表示部１４は、例えば、液晶ディスプレイ等である。表示部１４は、撮像部１２で撮像され、画像処理部１６で画像処理された画像が表示される。また、各種設定を行うためのメニュー画面を表示するようにしてもよい。
【００２０】
画像処理部１６は、図１に示すように、ＣＰＵ（Central Processing Unit）２１、ＲＡＭ（Random Access Memory）２２、ヒストグラム算出回路２３、ＹＣｂＣｒ変換回路２４、及び画像処理回路２５を備えている。画像処理部１６は、例えば、画像処理プロセッサである。画像処理部１６は、撮像部１２から出力されたＲＡＷデータを入力として受け付け、後述する画像処理を行う。なお、画像処理部１６は、開示の技術の画像処理装置の一例である。
【００２１】
ＣＰＵ２１は、撮像部１２に所定の撮像条件に従った撮像を指示する。本実施形態では、１度の撮像指示において、シャッター速度を速く設定した短時間露光の撮像条件による撮像と、シャッター速度を遅く設定した長時間露光の撮像条件による撮像とを指示する。また、ＣＰＵ２１は、短時間露光の撮像条件により撮像部１２で撮像されて出力されたＲＡＷデータ＿Ｓ、及び長時間露光の撮像条件により撮像部１２で撮像されて出力されたＲＡＷデータ＿Ｌを取得して、ＲＡＭ２２に記憶する。なお、ＲＡＷデータ＿ＳとＲＡＷデータ＿Ｌとを区別なく説明する場合には、単に「ＲＡＷデータ」と記す。
【００２２】
さらに、ＣＰＵ２１は、ＲＡＭ２２と、ヒストグラム算出回路２３、ＹＣｂＣｒ変換回路２４、及び画像処理回路２５の各々との間でのデータの入出力を制御する。
【００２３】
ここで、画像処理部１６の機能的構成の一例を図２に示す。画像処理部１６は、ヒストグラム算出部３１、露光量比算出部３２、ＹＣｂＣｒ変換部３３、画素値調整部３４、手振れ検出部３５、被写体ブレ検出部３６、及び合成部３７を備えている。ヒストグラム算出部３１は、ヒストグラム算出回路２３の機能を表すブロックである。また、ＹＣｂＣｒ変換部３３は、ＹＣｂＣｒ変換回路２４の機能を表すブロックである。また、露光量比算出部３２は、ＣＰＵ２１により実行される機能を表すブロックである。また、画素値調整部３４、手振れ検出部３５、被写体ブレ検出部３６、及び合成部３７は、画像処理回路２５の機能を表すブロックである。
【００２４】
ヒストグラム算出部３１は、ＲＡＷデータ＿Ｓから短時間露光画像のヒストグラムを算出し、また、ＲＡＷデータ＿Ｌから長時間露光画像のヒストグラムを算出する。例えば、撮像素子上に配置されたベイヤ配列カラーフィルタを介して得られたＲＡＷデータのＧｒ成分の画素値毎の画素数を求め、図３に示すようなヒストグラムを算出する。なお、ＲＡＷデータのＲ成分やＢ成分の画素値を用いてヒストグラムを算出してもよい。ただし、Ｇｒ成分が最も輝度成分に近いため、Ｇｒ成分の画素値を用いることが好ましい。また、近接画素の画素値を用いて各画素のＲＧＢ値を算出した上で、各画素の輝度値を算出し、求めた輝度値のヒストグラムを算出するようにしてもよい。さらに、全画素（特定の成分を用いる場合には、用いる成分についての全画素）を用いてヒストグラムを算出する場合に限らず、ヒストグラムの算出精度及び処理速度を考慮して、ヒストグラムに用いる画素を適宜間引きしてもよい。
【００２５】
露光量比算出部３２は、ヒストグラム算出部３１で算出された短時間露光画像のヒストグラムと長時間露光画像のヒストグラムに基づいて、短時間露光画像に対する露光量と長時間露光画像に対する露光量との露光量比を算出する。具体的には、露光量比算出部３２は、短時間露光画像のヒストグラムに基づいて、短時間露光画像撮像時の露光量のＫ倍の露光量で撮像したと仮定した画像のヒストグラムを推定する。以下では、この推定するヒストグラムを「Ｋ倍ヒストグラム」という。そして、露光量比算出部３２は、Ｋ倍ヒストグラムの形状と、長時間露光画像のヒストグラムの形状との類似度が最大のときのＫを露光量比Ｎとして算出する。
【００２６】
ここで、ヒストグラムの形状の類似度を用いることで、露光量比の算出精度が向上することの理由について説明する。なお、開示の技術におけるヒストグラムの形状とは、画素値毎の画素数で表されるヒストグラムにおける画素値の下限から上限までの全範囲における各画素値に対する画素数の分布である。
【００２７】
露光量比を算出する従来手法として、単純に画像全体または画像を分割したブロック毎に含まれる画素の画素値の合計や平均値から露光量比を算出する手法が存在する。この手法では、短時間露光画像の黒潰れ領域の画素値や、長時間露光画像の白飛び領域の画素値が露光量比を算出するための画素に含まれてしまい、露光量比の算出精度が低下する。そこで、この対処策として、図４に示すように、長時間露光画像から白飛び領域を除外した領域を露光量比算出領域に設定し、短時間露光画像及び長時間露光画像において、この露光量比算出領域に含まれる画素の画素値を用いて露光量比を求めることが考えられる。
【００２８】
しかし、図５に示すように、２画像間で被写体（人）が動いていた場合には、露光量比算出領域のうち、被写体（人）に対応する領域は、短時間露光画像においては、被写体（人）ではなく背景領域となってしまい、正確な露光量比を算出することができない。
【００２９】
上記のように被写体が動いた場合でも、画像に映っている被写体の種類（図５の例では、木、空、雲、及び人）は変わらないため、画像から算出したヒストグラムの形状も大きくは変わらない。そこで、本実施形態のように、ヒストグラムの形状の類似度を用いることで、被写体に動きがあった場合でも、露光量比を正確に算出することができる。
【００３０】
また、露光量比を算出する従来手法として、画素値のピーク値を用いて露光量比を算出する手法が存在する。例えば、図６に示すように、短時間露光画像及び長時間露光画像の各々のヒストグラムから画素数が最大となる画素値（ピーク値）を検出し、各ヒストグラムから検出されたピーク値の比から露光量比を算出する。図６の例では、短時間露光画像のヒストグラムのピーク値５と、長時間露光画像のヒストグラムのピーク値１１から５／１１という露光量比を算出することができる。
【００３１】
このような露光量比の算出手法では、以下のような問題がある。まず、短時間露光画像は、信号レベルに対してノイズレベルが大きいため、ノイズの影響を受け易く、画像内に極大値が複数存在する場合、ノイズの影響でピーク値が変動する可能性がある。また、同様に量子化誤差の影響によりピーク値が変動する可能性も考えられる。また、長時間露光画像では、最大値付近の画素値は飽和している可能性が高く、正確なピーク値を検出できない可能性がある。
【００３２】
上記のような理由により、ピーク値が正確に検出されなかった場合には、露光量比の算出も正確に行うことができない。このような誤ったピーク値が検出されてしまうことを排除するために、最小値付近の画素値及び最大値付近の画素値を除外してピーク値を検出することも考えられる。図６の例においても、最小値付近及び最大値付近に表れている極大値は除外してピーク値を検出している。
【００３３】
しかし、この除外領域の正確な値は露光量比が分からないと求めることができないため、推定した除外領域に従ってピーク値を検出する必要がある。仮に、推定した除外領域が狭過ぎた場合には、長時間露光画像で飽和している画素値をピーク値として検出してしまう可能性がある。また、推定した除外領域が広過ぎた場合には、ピーク値が除外領域に含まれてしまい、正しいピーク値を検出できない可能性がある。
【００３４】
上記のような理由により、ピーク値を用いる従来手法では、除外領域の推定精度によってピーク値の検出精度が落ち、露光量比の算出精度の低下を招く可能性がある。
【００３５】
一方、本実施形態では、ヒストグラムの形状の類似度を用いて露光量比を算出する。ノイズや量子化誤差が発生した場合でも、ヒストグラムの形状は大きく変化しないと考えられるため、ノイズや量子化誤差の影響を排除して、露光量比を正確に算出することができる。また、ヒストグラム中の除外領域を推定する必要がないため、従来手法のような問題は起こらない。
【００３６】
上記のような理由に従って、露光量比算出部３２は、Ｋ倍ヒストグラムの形状と長時間露光画像のヒストグラムの形状との類似度から、露光量比Ｎを算出する。なお、本実施形態では、短時間露光画像及び長時間露光画像を示すデータとして、撮像素子への入射光量に対してリニアな特性を有するＲＡＷデータを用いることにより、より正確に露光量比を算出することができる。
【００３７】
具体的には、露光量比算出部３２は、まず、図７に示すように、短時間露光画像のヒストグラム及び長時間露光画像のヒストグラムの各々にローパスフィルタ（ＬＰＦ）をかけて平滑化する。これにより、ＲＡＷデータに含まれるノイズ成分の影響を低減することができる。
【００３８】
露光量比算出部３２は、ＬＰＦ後の短時間露光画像のヒストグラムからＫ倍ヒストグラムを推定する。具体的には、ＬＰＦ後の短時間露光画像のヒストグラムの各画素値の画素数を、画素値をＫ倍したヒストグラムの対応する画素値の部分に分配して割り当てて、Ｋ倍ヒストグラムを推定する。
【００３９】
なお、Ｋ倍ヒストグラムと長時間露光画像のヒストグラムとの形状の類似度を算出するため、Ｋ倍ヒストグラムと長時間露光画像のヒストグラムとで画素値の範囲を揃える必要がある。例えば、Ｋ倍ヒストグラムにおいて、Ｋ倍前の最大画素値より大きい画素値の画素数をＫ倍前の最大画素値の画素数へ加算することにより、画素値の範囲を揃えることができる。また、最大画素値だけでなく、最大画素値付近の複数の画素値や、最大画素値以下の全ての画素値に、Ｋ倍前の最大画素値より大きい画素値の画素数を分配して加算するようにしてもよい。
【００４０】
例えば、Ｋ＝２、最大画素値＝４０９５、ＬＰＦ後の短時間露光画像のヒストグラムにおいて、画素値４の画素数が１００の場合を例に、Ｋ倍ヒストグラムの推定方法について説明する。図８に示すように、２倍ヒストグラムでは、画素値４の２倍に対応する画素値８及び画素値９に１００画素を分配して割り当てる。例えば、２倍ヒストグラムの画素値８に５０画素、画素値９に５０画素を割り当てることができる。同様に、短時間露光画像の他の画素値についても、Ｋ倍ヒストグラムの対応する画素値へ割り当てる。最後に、２倍ヒストグラムにおいて、画素値４０９６〜８１９０の画素数の合計を画素値４０９５の画素数に加算して、２倍ヒストグラムを推定することができる。
【００４１】
また、露光量比算出部３２は、Ｋ倍ヒストグラムとＬＰＦ後の長時間露光画像のヒストグラムとの形状の類似度を求め、この類似度が最大となるときのＫ倍を露光量比Ｎとして算出する。
【００４２】
類似度の計算の一例として、差分絶対値和（Sum of Absolute Difference、ＳＡＤ）を用いる場合について、図９を参照して説明する。まず、Ｋ倍ヒストグラムの各画素値の画素数とＬＰＦ後の長時間露光画像のヒストグラムの対応する各画素値の画素数との差分絶対値を求める。この差分絶対値に、ヒストグラムにおける画素値の中央値に近いほど重くなるように設定した乗算値を乗算する。暗い画素値は、信号レベルに対してノイズレベルが大きく、ノイズの影響を受け易い。また、飽和領域に近い明るい画素値は、センサの特性上、入射光量に対して非線形な特性となる可能性があり、正しい露光量比が求められない可能性が高い。このため、暗い画素値及び飽和領域に近い明るい画素値よりも、中央値に近い画素値の影響を強くして類似度を算出した方が高精度に類似度を算出することができる。なお、ヒストグラム全体の形状の類似度をみるため、中央値から遠い画素値に対応する乗算値であっても０にはしないようにする。
【００４３】
画素数の差分絶対値に上記のような乗算値が乗算された画素値毎の値を、ヒストグラムの全要素（全画素値）分加算することにより、ヒストグラムの形状の類似度として差分絶対値和を算出することができる。この場合、差分絶対値和が小さいほど２つのヒストグラムの形状の類似度が大きいことを表すため、差分絶対値和が最小となるときに類似度が最大となる。
【００４４】
なお、類似度の算出方法は、ヒストグラムの形状の類似度を算出することができるものであれば、上記の例に限定されない。例えば、差分二乗和（Sum of Squared Differences、ＳＳＤ）、相関係数等を類似度として求めてもよい。また、Ｋ倍ヒストグラムの各画素値の画素数と長時間露光画像のヒストグラムの対応する各画素値の画素数との関係を示す関係値として画素数の差分の二乗を求め、上記のような乗算値を乗算してヒストグラムの全画素値分加算した値を類似度として求めてもよい。
【００４５】
ＹＣｂＣｒ変換部３３は、図１０に示すように、色補間部３３Ａ、色補正部３３Ｂ、ガンマ補正部３３Ｃ、及び色変換部３３Ｄを備えており、ＲＡＷデータ＿ＳをＹＣｂＣｒ画像＿Ｓに、ＲＡＷデータ＿ＬをＹＣｂＣｒ画像＿Ｌに変換する。
【００４６】
色補間部３３Ａは、ベイヤ配列のＲＡＷデータを、色補間処理によりＲＧＢ画像に変換する。
【００４７】
色補正部３３Ｂは、ホワイトバランス補正や色強調処理などの色補正処理を行って、画像が正しい色で表示部１４に表示されるように調整する。
【００４８】
ガンマ補正部３３Ｃは、撮像素子への入射光量に対してリニアな特性を有するＲＡＷデータに対して、ＪＰＥＧなどのコンテナの格納時に対応したデータとなるように、ガンマ補正処理を行う。
【００４９】
色変換部３３Ｄは、色変換を行って、ＲＧＢ画像をＹＣｂＣｒ画像に変換する。
【００５０】
画素値調整部３４は、ＹＣｂＣｒ変換部３３で変換された短時間露光画像のＹＣｂＣｒ画像＿Ｓの画素値Ｙ、Ｃｂ、及びＣｒの各々を、露光量比算出部３２で算出した露光量比Ｎを１／γ乗した値で乗算する。なお、γは、ＹＣｂＣｒ変換部３３のガンマ補正部３３Ｃで用いるガンマ補正値であり、例えば２．２である。ＲＡＷデータをＹＣｂＣｒ画像に変換する際にガンマ補正処理が適用されるため、ＲＡＷデータを用いて算出した露光量比をそのままＹＣｂＣｒ画像に適用することができない。そこで、露光量比Ｎを１／γ乗することにより、ＲＡＷデータを用いて算出した露光量比を、ガンマ補正処理後のＹＣｂＣｒ画像に適用させた露光量比に変換することができる。
【００５１】
また、ＹＣｂＣｒ画像＿Ｓの各画素の画素値をＮ＾（１／γ）倍することにより、画素値調整部３４から出力されるＹＣｂＣｒ画像＿Ｓの各画素の画素値を表すビット数が増える。例えば、ＹＣｂＣｒ変換部３３から出力されたＹＣｂＣｒ画像＿Ｓが８ビット階調の画像の場合、ＹＣｂＣｒ画像＿Ｓの各画素は０〜２５５の情報を持つ。この各画素の画素値を、例えば４倍にすると各画素が０〜１０２０の情報を持つ画像、つまり１０ビット階調の画像に変換される。
【００５２】
以下では、画素値調整部３４で各画素の画素値がＮ＾（１／γ）倍された画像を「Ｎ＊ＹＣｂＣｒ画像＿Ｓ」と表記する。
【００５３】
手振れ検出部３５は、画素値調整部３４で画素値調整されたＮ＊ＹＣｂＣｒ画像＿Ｓと、ＹＣｂＣｒ変換部３３で変換されたＹＣｂＣｒ画像＿Ｌとに基づいて、２画像間の手振れ量を算出して出力する。
【００５４】
短時間露光画像の撮像時と長時間露光画像の撮像時との間に手振れが生じている場合には、図１１に示すように、被写体の位置が２画像間で異なってしまう。手振れが生じた画像を用いて画像を合成する場合、例えば、短時間露光画像上で黒潰れしている箇所に対して、長時間露光画像の画素の画素値を用いようとしても、同じ画素位置の画素が白飛びしている背景の画素になっている場合もある。そこで、２画像間の手振れ量を算出して、画像の合成時に２画像間の手振れを補正するものである。
【００５５】
具体的には、図１２に示すように、入力画像１を矩形ブロックに分割し、分割したブロック毎に、そのブロックが入力画像２ではどの位置にあるか探索することで移動量を算出する。探索には、公知のブロックマッチング法などを用いることができる。入力画像１内の全てのブロックに対して算出した移動量の平均値を手振れ量として算出する。なお、手振れ検出部３５では、入力画像１及び入力画像２は、Ｎ＊ＹＣｂＣｒ画像＿Ｓ及びＹＣｂＣｒ画像＿Ｌであり、いずれを入力画像１または入力画像２としてもよい。
【００５６】
被写体ブレ検出部３６は、画素値調整部３４で画素値調整されたＮ＊ＹＣｂＣｒ画像＿Ｓと、ＹＣｂＣｒ変換部３３で変換されたＹＣｂＣｒ画像＿Ｌとに基づいて、２画像間の被写体ブレを検出する。
【００５７】
短時間露光画像の撮像時と長時間露光画像の撮像時との間に、被写体の動きがあった場合には、図１３に示すように、被写体の位置が２画像間で異なってしまう。このため、上述の手振れが生じた場合と同様に、このまま２画像を合成すると、被写体が２重に映るなどの問題が生じる。そこで、２画像間の被写体ブレを検出して、画像の合成時に２画像間の被写体ブレを補正するものである。
【００５８】
具体的には、まず、手振れ検出部３５から出力された手振れ量を受け付けて、入力画像１に対して入力画像２を手振れ量分平行移動させて２画像間の位置合わせを行い、手振れを補正する。そして、図１４に示すように、入力画像のＹ成分（輝度成分）の画素値を用いて、２つの入力画像間の各画素における差分絶対値を求める。そして、差分絶対値が所定の閾値以上の画素を動体、差分絶対値が所定の閾値未満の画素を非動体とする被写体ブレマスクを生成して出力する。なお、手振れ検出部３５では、入力画像１及び入力画像２は、Ｎ＊ＹＣｂＣｒ画像＿Ｓ及びＹＣｂＣｒ画像＿Ｌであり、いずれを入力画像１または入力画像２としてもよい。
【００５９】
合成部３７は、図１５に示すように、ブレンド比計算部３７Ａ、αブレンド部３７Ｂ、及びトーンマッピング部３７Ｃを備えており、短時間露光画像と長時間露光画像とに基づいて、高ダイナミックレンジ（ＨＤＲ）画像を合成する。合成部３７に入力される短時間露光画像はＮ＊ＹＣｂＣｒ画像＿Ｓであり、長時間露光画像はＹＣｂＣｒ画像＿Ｌである。
【００６０】
ブレンド比計算部３７Ａは、ＹＣｂＣｒ変換部３３から出力されたＹＣｂＣｒ画像＿Ｌと、被写体ブレ検出部３６から出力された被写体ブレマスクとに基づいて、Ｎ＊ＹＣｂＣｒ画像＿ＳとＹＣｂＣｒ画像＿Ｌとを合成する際のブレンド比を算出する。ブレンド比は、例えば、図１６に示すようなＹＣｂＣｒ画像＿ＬのＹ成分とブレンド比との関係を予め定めたテーブルを参照し、ＹＣｂＣｒ画像＿ＬのＹ成分に応じたブレンド比を取得する。また、被写体ブレマスクで動体と判定され、かつＹＣｂＣｒ画像＿Ｌで白飛びしていない画素はＮ＊ＹＣｂＣｒ画像＿Ｓを用い、ＹＣｂＣｒ画像＿Ｌが白飛びしている画素（Ｙ成分値が２５５）はＹＣｂＣｒ画像＿Ｌを用いるようなブレンド比を計算してもよい。
【００６１】
αブレンド部３７Ｂは、まず、手振れ検出部３５から出力された手振れ量を受け付けて、Ｎ＊ＹＣｂＣｒ画像＿ＳとＹＣｂＣｒ画像＿Ｌとの位置合わせを行い、手振れを補正する。そして、ブレンド比計算部３７ａにより計算されたブレンド比に基づいて、Ｎ＊ＹＣｂＣｒ画像＿ＳとＹＣｂＣｒ画像＿Ｌとを合成する。ここで合成された画像は、Ｎ＊ＹＣｂＣｒ画像＿Ｓのビット数と同じビット数（このビット数をｎとする）を持った画像となる。
【００６２】
トーンマッピング部３７Ｃは、αブレンド部３７Ｂで合成された画像に対して、トーンマッピング処理を行う。例えば、ＹＣｂＣｒ画像＿Ｌが８ビット階調の画像の場合、Ｎ＊ＹＣｂＣｒ画像＿Ｓは８ビットより大きなｎビット階調の画像となっている。表示部１４が、通常のディスプレイと同様に８ビット階調の画像しか表示することができない場合、αブレンド部３７Ｂで合成された画像をそのままディスプレイに表示することができない。そこで、トーンマッピング処理を行い、ｎビット階調の画像を８ビット階調の画像に階調圧縮する。階調圧縮は、例えば、図１７に示すように、予め定めた階調変換のテーブルに従って、ｎビット（図１７の例ではｎ＝１０）を８ビットに変換することにより行う。図１７に示したテーブルのカーブは、シーンに応じて変換してもよい。
【００６３】
次に、第１実施形態に係る撮像装置１０の作用について説明する。撮像装置１０では、図１８に示す画像処理が実行される。
【００６４】
図１８に示す画像処理のステップ１００で、ＣＰＵ２１が、撮像部１２に撮像の指示をすることにより、撮像部１２において、短時間露光画像及び長時間露光画像を撮像する。
【００６５】
次に、ステップ１０２で、ＣＰＵ２１が、撮像部１２で撮像された短時間露光画像を示すＲＡＷデータ＿Ｓ及び長時間露光画像を示すＲＡＷデータ＿Ｌを取得し、ＲＡＭ２２に記憶する。
【００６６】
次に、ステップ１０４で、ＣＰＵ２１が、ＲＡＭ２２に記憶されたＲＡＷデータ＿Ｓを読み出して、ヒストグラム算出回路２３に入力する。ヒストグラム算出回路２３は、入力されたＲＡＷデータ＿ＳのＧｒ成分の画素値毎の画素数を求め、短時間露光画像のヒストグラムを算出する。ＣＰＵ２１は、ヒストグラム算出回路２３で算出された短時間露光画像のヒストグラムをＲＡＭ２２に記憶する。
【００６７】
次に、ステップ１０６で、ＣＰＵ２１が、ＲＡＭ２２に記憶されたＲＡＷデータ＿Ｌを読み出して、ヒストグラム算出回路２３に入力する。ヒストグラム算出回路２３は、上記ステップ１０４と同様に、入力されたＲＡＷデータ＿Ｌから長時間露光画像のヒストグラムを算出する。ＣＰＵ２１は、ヒストグラム算出回路２３で算出された長時間露光画像のヒストグラムをＲＡＭ２２に記憶する。
【００６８】
次に、ステップ１０８で、ＣＰＵ２１が、露光量比算出処理を実行する。ここで、図１９を参照して、露光量比算出処理について説明する。
【００６９】
図１９に示す露光量比算出処理のステップ１０８０で、ＣＰＵ２１が、短時間露光画像のヒストグラムの画素値を何倍するかを示す変数Ｋ、及びＫの１探索ステップを示す変数ａを初期値に設定する。
【００７０】
次に、ステップ１０８２で、ＣＰＵ２１が、上記ステップ１０４で算出された短時間露光画像のヒストグラム、及び上記ステップ１０６で算出された長時間露光画像のヒストグラムの各々にＬＰＦをかけて平滑化する。
【００７１】
次に、ステップ１０８４で、ＣＰＵ２１が、ＬＰＦ後の短時間露光画像のヒストグラムの各画素値の画素数を、画素値をＫ倍したヒストグラムの対応する画素値の部分に割り当てたヒストグラムを、Ｋ倍ヒストグラムとして推定する。
【００７２】
次に、ステップ１０８６で、ＣＰＵ２１が、上記ステップ１０８４で推定したＫ倍ヒストグラムの形状と、上記ステップ１０８２で平滑化した長時間露光画像のヒストグラムの形状との類似度を算出する。
【００７３】
次に、ステップ１０８８で、ＣＰＵ２１が、上記ステップ１０８６で算出した類似度がこれまでに算出した類似度の中で最大か否かを判定する。類似度が最大の場合には、ステップ１０９０へ移行し、ＣＰＵ２１が、現在のＫの値をＫｍａｘに設定して、ステップ１０９２へ移行する。類似度が最大ではない場合には、ステップ１０９０をスキップして、ステップ１０９２へ移行する。
【００７４】
ステップ１０９２では、ＣＰＵ２１が、現在の変数Ｋに変数ａを加えて１探索ステップ分増加した値を新たなＫとする。
【００７５】
次に、ステップ１０９４で、ＣＰＵ２１が、変数Ｋが予め定めた探索範囲を超えたか否かを判定する。変数Ｋが探索範囲を超えていない場合には、ステップ１０８４へ戻って、上記ステップ１０９２で設定した新たなＫについて、ステップ１０８４〜１０９２の処理を繰り返す。変数Ｋが探索範囲を超えた場合には、ステップ１０９６へ移行し、ＣＰＵ２１が、Ｋｍａｘに設定されている値から変数ａを引いた値を新たなＫとし、ステップ１０９８で、探索範囲が細かくなるように、変数ａを１段階小さい値に設定する。
【００７６】
次に、ステップ１１００で、ＣＰＵ２１が、変数ａが予め定めた最小探索ステップ以下になったか否かを判定する。変数ａが最小探索ステップより大きい場合には、ステップ１０８４へ戻って、上記ステップ１０９６で設定した新たなＫについて、ステップ１０８４〜１０９８の処理を繰り返す。変数ａが最小探索ステップ以下となった場合には、ステップ１１０２へ移行し、ＣＰＵ２１が、Ｋｍａｘに設定されている値を露光量比Ｎとして出力し、図１８に示す画像処理へリターンする。
【００７７】
次に、図１８に示す画像処理のステップ１１０では、ＣＰＵ２１が、ＲＡＭ２２に記憶されたＲＡＷデータ＿Ｓを読み出して、ＹＣｂＣｒ変換回路２４に入力する。ＹＣｂＣｒ変換回路２４は、入力されたＲＡＷデータ＿ＳをＹＣｂＣｒ画像＿Ｓに変換する。ＣＰＵ２１は、ＹＣｂＣｒ変換回路２４で変換されたＹＣｂＣｒ画像＿ＳをＲＡＭ２２に記憶する。
【００７８】
次に、ステップ１１２で、ＣＰＵ２１が、ＲＡＭ２２に記憶されたＲＡＷデータ＿Ｌを読み出して、ＹＣｂＣｒ変換回路２４に入力する。ＹＣｂＣｒ変換回路２４は、入力されたＲＡＷデータ＿ＬをＹＣｂＣｒ画像＿Ｌに変換する。ＣＰＵ２１は、ＹＣｂＣｒ変換回路２４で変換されたＹＣｂＣｒ画像＿ＬをＲＡＭ２２に記憶する。
【００７９】
次に、ステップ１１４で、ＣＰＵ２１が、ＲＡＭ２２に記憶されたＹＣｂＣｒ画像＿Ｓを読み出して、画像処理回路２５に入力する。画像処理回路２５は、入力されたＹＣｂＣｒ画像＿Ｓの画素値Ｙ、Ｃｂ、及びＣｒの各々を、上記ステップ１１０２で算出された露光量比Ｎを１／γ乗した値（Ｎ＾（１／γ））で乗算することにより、画素値を調整する。
【００８０】
次にステップ１１６で、ＣＰＵ２１が、ＲＡＭ２２に記憶されたＹＣｂＣｒ画像＿Ｌを読み出して、画像処理回路２５に入力する。画像処理回路２５は、上記ステップ１１４で画素値調整を行ったＮ＊ＹＣｂＣｒ画像＿Ｓと、入力されたＹＣｂＣｒ画像＿Ｌとに基づいて、２画像間の手振れを検出し、手振れ量を算出する。
【００８１】
次に、ステップ１１８で、画像処理回路２５が、Ｎ＊ＹＣｂＣｒ画像＿ＳとＹＣｂＣｒ画像＿Ｌとに基づいて、２画像間の被写体ブレを検出し、被写体ブレマスクを生成する。
【００８２】
次に、ステップ１２０で、画像処理回路２５が、ＹＣｂＣｒ画像＿Ｌと、上記ステップ１１８で生成した被写体ブレマスクとに基づいて、Ｎ＊ＹＣｂＣｒ画像＿ＳとＹＣｂＣｒ画像＿Ｌとを合成する際のブレンド比を算出する。そして、画像処理回路２５は、上記ステップ１１６で算出した手振れ量に基づいて、Ｎ＊ＹＣｂＣｒ画像＿ＳとＹＣｂＣｒ画像＿Ｌ間の手振れを補正し、計算したブレンド比に基づいて、Ｎ＊ＹＣｂＣｒ画像＿ＳとＹＣｂＣｒ画像＿Ｌとを合成する。さらに、画像処理回路２５は、合成した画像に対して、トーンマッピング処理を行って、ＨＤＲ合成画像を生成する。
【００８３】
次に、ステップ１２２で、ＣＰＵ２１が、上記ステップ１２０で、画像処理回路２５で生成されたＨＤＲ合成画像をＲＡＭ２２に記憶し、ＨＤＲ合成画像が表示部１４に表示されるように制御して、画像処理を終了する。
【００８４】
以上説明したように、第１実施形態に係る撮像装置によれば、短時間露光画像のＫ倍の露光量で撮像したと仮定した画像のヒストグラムをＫ倍ヒストグラムとして推定する。そして、Ｋ倍ヒストグラムと長時間露光画像のヒストグラムとの形状の類似度に基づいて、短時間露光画像と長時間露光画像との露光量比を算出する。これにより、短時間露光画像と長時間露光画像とにおいて被写体の動きや、ノイズ及び量子化誤差が発生する場合でも、露光量比を正確に算出することができる。
【００８５】
その結果、合成画像に不自然なつながりが発生することを低減することができ、また、手振れ検出や被写体ブレ検出の性能が向上することで、合成画像の画質が劣化することを抑制することができる。
【００８６】
また、第１実施形態に係る撮像装置によれば、露光量比を算出する際に、ＹＣｂＣｒ画像ではなく、撮像素子の出力そのものであり、撮像素子への入射光量に対してリニアな特性を有するＲＡＷデータを用いる。これにより、ガンマ補正等の非線形な処理が施されたＹＣｂＣｒ画像を用いて露光量比を算出する場合に比べて、より正確に露光量比を算出することができる。
【００８７】
さらに、通常の画像処理プロセッサは、ヒストグラム算出機能を有するものが多く、汎用のハードウェアを用いて開示の技術の画像処理装置を実現することができ、コスト削減につながる。
【００８８】
〔第２実施形態〕
次に、第２実施形態について説明する。なお、第２実施形態に係る撮像装置１０の構成は、第１実施形態に係る撮像装置１０の構成と同様であるため、説明を省略する。
【００８９】
第２実施形態に係る撮像装置１０の作用は、ＣＰＵ２１により実行される露光量比算出処理が第１実施形態と異なるだけであるので、図２０を参照して、第２実施形態における露光量比算出処理について説明する。なお、第２実施形態における露光量比算出処理において、第１実施形態における露光量比算出処理と同様のステップについては、同一符号を付して詳細な説明を省略する。
【００９０】
図２０に示す露光量比算出処理のステップ１０８０〜１０８６を経て、ＣＰＵ２１が、Ｋ倍ヒストグラムと長時間露光画像のヒストグラムとの形状の類似度を算出する。類似度の算出には、例えば、ヒストグラムの画素値の中央値に近いほど重くなるように重み付けした差分絶対値和を用いることができる。
【００９１】
次に、ステップ１１１０で、ＣＰＵ２１が、上記ステップ１０８６で算出した類似度と現在のＫの値とを対応付けたテーブルをＲＡＭ２２に保存する。
【００９２】
次に、ステップ１０９２で、ＣＰＵ２１が、Ｋにａを加えて新たなＫとし、次に、ステップ１０９４で、変数Ｋが予め定めた探索範囲を超えたか否かを判定する。変数Ｋが探索範囲を超えていない場合には、ステップ１０８４へ戻って、上記ステップ１０９２で設定した新たなＫについて、ステップ１０８４〜１０９２の処理を繰り返す。変数Ｋが探索範囲を超えた場合には、ステップ１１１２へ移行し、上記ステップ１１１０で保存したテーブルを検査し、類似度の最大値を一意に決定可能か否かを判定する。
【００９３】
例えば、類似度の最大値として同一の類似度が複数存在する場合や、最大の類似度との差が所定範囲内となる類似度が複数存在する場合がある。類似度の差が所定範囲内とは、例えば、類似度として差分絶対値和を用いた場合では、類似度の差が０〜１程度の微小な差となる範囲である。このような場合には、いずれの類似度に対応付けられたＫをＫｍａｘとして選択すればよいかを正確に判断することができず、誤ったＫの選択により、露光量比を正確に算出できない場合がある。
【００９４】
そこで、本ステップ１１１２では、上記のように、類似度の最大値として同一の類似度が複数存在する場合や、最大の類似度との差が所定範囲内となる類似度が複数存在する場合には、類似度の最大値を一意に決定できないと判定する。類似度の最大値を一意に決定できない場合には、ステップ１１１４へ移行し、ＣＰＵ２１が、ステップ１０８６で類似度を算出する際に用いる重み付けを変更する。具体的には、画素値の中央値付近により強い重みがかかるように、例えば、図２１に示すように変更する。
【００９５】
上記ステップ１１１４で、重み付けを変更したら、上記ステップ１０８４へ戻って、上記ステップ１１１４で変更した重み付けを用いて、ステップ１０８４〜１０９２の処理を繰り返す。上記ステップ１１１４を経由して上記ステップ１０８４へ戻った場合には、上記ステップ１１１０で保存したテーブルにおいて、類似度の最大値を含む所定範囲内の類似度に対応付けられたＫについてのみ、繰り返し処理をするようにしてもよい。
【００９６】
上記ステップ１１１２で、ＣＰＵ２１が、類似度の最大値を一意に決定可能であると判定した場合には、ステップ１１１６へ移行し、類似度の最大値に対応するＫの値をテーブルから抽出して、Ｋｍａｘとして設定する。
【００９７】
以下、ステップ１０９６〜１１０２で、ＣＰＵ２１が、第１実施形態における露光量比算出処理と同様に処理して、露光量比Ｎを出力し、図１８に示す画像処理へリターンする。
【００９８】
以上説明したように、第２実施形態に係る撮像装置によれば、ヒストグラムの形状の類似度の最大値を一意に決定できない場合には、類似度算出の重み付けを画素値の中央値付近により強い重みがかかるように変更して、再度類似度の算出を行う。これにより、露光量比をより正確に算出することができる。
【００９９】
〔第３実施形態〕
次に、第３実施形態について説明する。第１及び第２実施形態では、画像処理部１６を画像処理プロセッサとする場合について説明した。第３実施形態に係る撮像装置１０における画像処理部１６は、例えば図２２に示すコンピュータ４０で実現することができる。コンピュータ４０はＣＰＵ４２、メモリ４４、及び不揮発性の記憶部４６を備えている。ＣＰＵ４２、メモリ４４、及び記憶部４６は、バス４８を介して互いに接続されている。また、コンピュータ４０には、撮像部１２及び表示部１４が接続されている。
【０１００】
記憶部４６はＨＤＤ（Hard Disk Drive）やフラッシュメモリ等によって実現できる。記録媒体としての記憶部４６は、コンピュータ４０を画像処理部１６として機能させるための画像処理プログラム５０が記憶されている。ＣＰＵ４２は、画像処理プログラム５０を記憶部４６から読み出してメモリ４４に展開し、画像処理プログラム５０が有するプロセスを順次実行する。
【０１０１】
画像処理プログラム５０は、ヒストグラム算出プロセス５１、露光量比算出プロセス５２、ＹＣｂＣｒ変換プロセス５３、画素値調整プロセス５４、手振れ検出プロセス５５、被写体ブレ検出プロセス５６、及び合成プロセス５７を備えている。
【０１０２】
ＣＰＵ４２は、ヒストグラム算出プロセス５１を実行することで、図２に示すヒストグラム算出部３１として動作する。また、ＣＰＵ４２は、露光量比算出プロセス５２を実行することで、図２に示す露光量比算出部３２として動作する。また、ＣＰＵ４２は、ＹＣｂＣｒ変換プロセス５３を実行することで、図２に示すＹＣｂＣｒ変換部３３として動作する。また、ＣＰＵ４２は、画素値調整プロセス５４を実行することで、図２に示す画素値調整部３４として動作する。また、ＣＰＵ４２は、手振れ検出プロセス５５を実行することで、図２に示す手振れ検出部３５として動作する。また、ＣＰＵ４２は、被写体ブレ検出プロセス５６を実行することで、図２に示す被写体ブレ検出部３６として動作する。また、ＣＰＵ４２は、合成プロセス５７を実行することで、図２に示す合成部３７として動作する。これにより、画像処理プログラム５０を実行したコンピュータ４０が、画像処理部１６として機能することになる。
【０１０３】
以上説明したように、第３実施形態に係る撮像装置によれば、第１及び第２実施形態に係る撮像装置と同様の効果を、プログラムにより実現することができる。
【０１０４】
なお、上記では開示の技術における画像処理プログラムの一例である画像処理プログラム５０が記憶部４６に予め記憶（インストール）されている態様を説明した。しかし、開示の技術における画像処理プログラムは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の記録媒体に記録されている形態で提供することも可能である。
【０１０５】
また、第１及び第２実施形態では、画像処理プロセッサがヒストグラム算出回路、ＹＣｂＣｒ変換回路、及び画像処理回路の専用回路を備え、露光量比算出処理以外の処理をこれらの専用回路で行う場合について説明したが、これに限定されない。例えば、露光量比算出処理についても、露光量比算出処理を実行するための専用回路を設けてもよい。また、第１及び第２実施形態において各専用回路で行うヒストグラムの算出処理、ＹＣｂＣｒ画像への変換処理、画素値調整の処理、手振れ検出の処理、被写体ブレ検出の処理、及び合成処理のうちの１つまたは複数の処理をＣＰＵで実行するようにしてもよい。
【０１０６】
また、上記各実施形態では、ヒストグラムの類似度算出の際の重み付けについて、図９及ぶ図２１に、画素値に対して直線的に変化する重み付けをかける例を示したが、これに限定されない。画素値に対して曲線的に変化する重み付けをかけるようにしてもよい。
【０１０７】
また、上記各実施形態では、短時間露光画像からＫ倍ヒストグラムを推定する場合について説明したが、これに限定されない。長時間露光画像撮像時の露光量のＫ倍の露光量で撮像したと仮定した画像のヒストグラムをＫ倍ヒストグラムとして推定してもよい。この場合、Ｋは０から１の値とする。また、長時間露光画像のヒストグラムの各画素値の画素数を、画素値をＫ倍したヒストグラムの対応する画素値の部分に統合して割り当てるようにするとよい。例えば、Ｋ＝０．５の場合、長時間露光画像の画素値２ｎ（ｎ＝０，１，２，・・・）に対する画素数と画素値（２ｎ＋１）に対する画素値との和を、Ｋ倍ヒストグラムの画素値ｎの画素値とすることができる。
【０１０８】
また、上記各実施形態では、短時間露光画像及び長時間露光画像の２つの画像を合成する場合について説明したが、３つ以上の画像を合成する場合にも開示の技術を適用することができる。例えば、短時間露光画像と長時間露光画像との間の露光時間の中時間露光画像を加えた３つの画像を合成するようにしてもよい。この場合、上記実施形態と同様に、中時間露光画像のヒストグラムから露光時間Ｋ倍ヒストグラムを推定し、長時間露光画像のヒストグラムとの類似度が最大となるときのＫを中時間露光画像と長時間露光画像との露光量比Ｎ’として算出することができる。そして、短時間露光画像を露光量比Ｎに基づいて画素値調整すると共に、中時間露光画像を露光量比Ｎ’に基づいて画素値調整する。このように画素値調整を行ったうえで、３つの画像の合成処理を行えばよい。
【０１０９】
また、上記各実施形態では、露光時間を異ならせて露光量の異なる複数の画像を撮像する場合について説明したが、絞りの調整や照明の有無などにより露光量を異ならせた複数の画像を撮像するようにしてもよい。
【０１１０】
以上の実施形態に関し、更に以下の付記を開示する。
【０１１１】
（付記１）
撮像部により異なる露光量で撮像された複数の画像について、前記複数の画像の各々に含まれる画素の画素値毎の画素数で表されるヒストグラムを画像毎に算出するヒストグラム算出部と、前記複数の画像の内の第一の画像から算出された第一ヒストグラムの形状と、前記複数の画像の内の第二の画像から算出された第二ヒストグラムの形状との類似度に基づいて、前記第一の画像に対する露光量と前記第二の画像に対する露光量との比を露光量比として算出する露光量比算出部と、前記露光量比算出部により算出された露光量比に基づいて、前記第一の画像及び前記第二の画像の内の一方に含まれる画素の画素値を調整する画素値調整部と、前記画素値調整部による画素値の調整後の前記第一の画像及び前記第二の画像の内の一方と、前記第一の画像及び前記第二の画像の内の他方とを合成する合成部と、を含む画像処理装置。
【０１１２】
（付記２）
前記露光量比算出部は、前記第一ヒストグラムの各画素値の画素数を所定倍し、前記第二ヒストグラムの形状との類似度を求める付記１記載の画像処理装置。
【０１１３】
（付記３）
前記露光量比算出部は、前記類似度として、前記第一ヒストグラムの各画素値の画素数と前記第二ヒストグラムの対応する各画素値の画素数との関係を示す画素値毎の関係値を全画素値分加算した値を算出する付記１または付記２記載の画像処理装置。
【０１１４】
（付記４）
前記露光量比算出部は、前記関係値を、前記第一ヒストグラムの各画素値の画素数と前記第二ヒストグラムの対応する各画素値の画素数との差分絶対値または差分の二乗に、ヒストグラムにおける画素値の中央値に近いほど大きい重み付け値を乗算した値とする付記３記載の画像処理装置。
【０１１５】
（付記５）
前記露光量比算出部は、前記類似度の最大値との差が所定範囲内となる類似度が複数存在する場合に、前記重み付け値を大きくし、前記類似度を再度求める付記４記載の画像処理装置。
【０１１６】
（付記６）
前記ヒストグラム算出部は、ヒストグラムを算出するための画素値として、前記撮像部から出力され、デジタル変換された信号が示す画素値を用いる付記１〜付記５のいずれか１つに記載の画像処理装置。
【０１１７】
（付記７）
前記撮像部と、付記１〜付記６のいずれか１つに記載の画像処理装置と、前記合成部で合成された画像を表示するための表示部と、を含む撮像装置。
【０１１８】
（付記８）
撮像部により異なる露光量で撮像された複数の画像について、前記複数の画像の各々に含まれる画素の画素値毎の画素数で表されるヒストグラムを画像毎に算出し、前記複数の画像の内の第一の画像から算出された第一ヒストグラムの形状と、前記複数の画像の内の第二の画像から算出された第二ヒストグラムの形状との類似度に基づいて、前記第一の画像に対する露光量と前記第二の画像に対する露光量との比を露光量比として算出し、算出された露光量比に基づいて、前記第一の画像及び前記第二の画像の内の一方に含まれる画素の画素値を調整し、画素値の調整後の前記第一の画像及び前記第二の画像の内の一方と、前記第一の画像及び前記第二の画像の内の他方とを合成することを含む画像処理方法。
【０１１９】
（付記９）
前記第一ヒストグラムの各画素値の画素数を所定倍し、前記第二ヒストグラムの形状との類似度を求める付記８記載の画像処理方法。
【０１２０】
（付記１０）
前記類似度として、前記第一ヒストグラムの各画素値の画素数と前記第二ヒストグラムの対応する各画素値の画素数との関係を示す画素値毎の関係値を全画素値分加算した値を算出する付記８または付記９記載の画像処理方法。
【０１２１】
（付記１１）
前記関係値を、前記第一ヒストグラムの各画素値の画素数と前記第二ヒストグラムの対応する各画素値の画素数との差分絶対値または差分の二乗に、ヒストグラムにおける画素値の中央値に近いほど大きい重み付け値を乗算した値とする付記１０記載の画像処理方法。
【０１２２】
（付記１２）
前記類似度の最大値との差が所定範囲内となる類似度が複数存在する場合に、前記重み付け値を大きくし、前記類似度を再度求める付記１１記載の画像処理方法。
【０１２３】
（付記１３）
ヒストグラムを算出するための画素値として、前記撮像部から出力され、デジタル変換された信号が示す画素値を用いる付記８〜付記１２のいずれか１つに記載の画像処理方法。
【０１２４】
（付記１４）
コンピュータに、撮像部により異なる露光量で撮像された複数の画像について、前記複数の画像の各々に含まれる画素の画素値毎の画素数で表されるヒストグラムを画像毎に算出し、前記複数の画像の内の第一の画像から算出された第一ヒストグラムの形状と、前記複数の画像の内の第二の画像から算出された第二ヒストグラムの形状との類似度に基づいて、前記第一の画像に対する露光量と前記第二の画像に対する露光量との比を露光量比として算出し、算出された露光量比に基づいて、前記第一の画像及び前記第二の画像の内の一方に含まれる画素の画素値を調整し、画素値の調整後の前記第一の画像及び前記第二の画像の内の一方と、前記第一の画像及び前記第二の画像の内の他方とを合成することを含む処理を実行させるための画像処理プログラム。
【０１２５】
（付記１５）
コンピュータに、前記第一ヒストグラムの各画素値の画素数を所定倍し、前記第二ヒストグラムの形状との類似度を求めることを含む処理を実行させるための付記１４記載の画像処理プログラム。
【０１２６】
（付記１６）
コンピュータに、前記類似度として、前記第一ヒストグラムの各画素値の画素数と前記第二ヒストグラムの対応する各画素値の画素数との関係を示す画素値毎の関係値を全画素値分加算した値を算出することを含む処理を実行させるための付記１４または付記１５記載の画像処理プログラム。
【０１２７】
（付記１７）
前記関係値を、前記関係値を、前記第一ヒストグラムの各画素値の画素数と前記第二ヒストグラムの対応する各画素値の画素数との差分絶対値または差分の二乗に、ヒストグラムにおける画素値の中央値に近いほど大きい重み付け値を乗算した値とする付記１６記載の画像処理プログラム。
【０１２８】
（付記１８）
コンピュータに、前記類似度の最大値との差が所定範囲内となる類似度が複数存在する場合に、前記重み付け値を大きくし、前記類似度を再度求めることを含む処理を実行させるための付記１７記載の画像処理プログラム。
【０１２９】
（付記１９）
ヒストグラムを算出するための画素値として、前記撮像部から出力され、デジタル変換された信号が示す画素値を用いる付記８〜付記１２のいずれか１つに記載の画像処理プログラム。
【符号の説明】
【０１３０】
１０   撮像装置
１２   撮像部
１４   表示部
１６   画像処理部
２３   ヒストグラム算出回路
２４   ＹＣｂＣｒ変換回路
２５   画像処理回路
３１   ヒストグラム算出部
３２   露光量比算出部
３３   ＹＣｂＣｒ変換部
３４   画素値調整部
３５   手振れ検出部
３６   被写体ブレ検出部
３７   合成部
４０   コンピュータ
【図１】
2014143613.tif 000003
【図２】
2014143613.tif 000004
【図３】
2014143613.tif 000005
【図７】
2014143613.tif 000006
【図８】
2014143613.tif 000007
【図９】
2014143613.tif 000008
【図１０】
2014143613.tif 000009
【図１５】
2014143613.tif 000010
【図１６】
2014143613.tif 000011
【図１７】
2014143613.tif 000012
【図１８】
2014143613.tif 000013
【図１９】
2014143613.tif 000014
【図２０】
2014143613.tif 000015
【図２１】
2014143613.tif 000016
【図２２】
2014143613.tif 000017
【図４】
2014143613.tif 000018
【図５】
2014143613.tif 000019
【図６】
2014143613.tif 000020
【図１１】
2014143613.tif 000021
【図１２】
2014143613.tif 000022
【図１３】
2014143613.tif 000023
【図１４】
2014143613.tif 000024