画像処理装置、撮像装置、及び画像処理方法
【課題】ダイナミックレンジの大きな画像データを生成する際に行う複数の画像データの位置合わせを精度良く行うようにする。
【解決手段】領域抽出部106は、複数の画像データの画面をブロック化する。そして、領域抽出部106は、動きベクトルの検出対象のブロックと、そのブロックに対する参照画像のブロックとの双方に、位置合わせに不適切な除外画素が含まれていなければ、それらのブロックを共通ブロックとする。レベル補正部107は、共通ブロック内の画素値の平均値a1、a2を求め、その平均値a1、a2を用いて、共通ブロックの輝度レベルを合わせる。位置ずれ検出部108は、輝度レベルが合った共通ブロックを用いて位置のずれを検出し、位置補正部109は、その位置のずれ量に応じて、複数の画像データの位置を補正する。画像合成部110は、位置の補正を行った複数の画像データを合成する。
【解決手段】領域抽出部106は、複数の画像データの画面をブロック化する。そして、領域抽出部106は、動きベクトルの検出対象のブロックと、そのブロックに対する参照画像のブロックとの双方に、位置合わせに不適切な除外画素が含まれていなければ、それらのブロックを共通ブロックとする。レベル補正部107は、共通ブロック内の画素値の平均値a1、a2を求め、その平均値a1、a2を用いて、共通ブロックの輝度レベルを合わせる。位置ずれ検出部108は、輝度レベルが合った共通ブロックを用いて位置のずれを検出し、位置補正部109は、その位置のずれ量に応じて、複数の画像データの位置を補正する。画像合成部110は、位置の補正を行った複数の画像データを合成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、撮像装置、及び画像処理方法に関し、特に、複数の画像データを合成して、画像データのダイナミックレンジを拡大するために用いて好適なものに関する。
【背景技術】
【0002】
近年、デジタル画像処理技術の発達により、撮影した複数の画像を加工することで、これまでには難しかった様々な処理が行えるようになってきた。露出の異なる複数の画像から、ダイナミックレンジを拡大した合成画像を作るといった処理もそのひとつである。この処理は、同一の被写体に対し、低輝度画像と高輝度画像とを生成し、低輝度領域においては低輝度画像を、高輝度領域においては高輝度画像を夫々用いることにより、全ての輝度領域で、階調性のよい画像を得るものである。
【0003】
特許文献1には、露光量を互いに変えて撮像した同一被写体の複数の画像データの位置関係を合わせた後、各画像データの輝度の平均値の比に基づいて、各画像データの輝度レベルを合わせ、輝度レベルを合わせた各画像データを合成する技術が開示されている。この特許文献1では、画像データの位置合わせの技術と画像データの合成の技術との組み合わせによって、ダイナミックレンジの大きい画像データを得ることができる。
【0004】
ところで、露光量を互いに変えて同一被写体に対し複数回の撮影を行う際は、撮影と撮影との間に僅かな時間差が生じる。このため、手ぶれ等により、得られる複数の画像データに相対的な位置のずれが生じる虞がある。従って、複数の画像データを精度よく合成するためには、この位置合わせの技術が極めて重要となる。
【0005】
【特許文献1】特許第3553999号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、前述した特許文献1に記載の技術では、位置合わせの精度を確保するための処理については考慮されていない。従って、従来の技術では、撮影条件の異なる2つの画像データ間の位置合わせの精度が低下してしまう虞があるという問題点があった。
本発明は、このような問題点に鑑みてなされたものであり、ダイナミックレンジの大きな画像データを生成する際に行う複数の画像データの位置合わせを精度良く行うようにすることを目的とする。
【課題を解決するための手段】
【0007】
本発明の画像処理装置は、異なる露光条件で撮像された同一被写体の複数の画像データを、階調性を保持している適正領域と、階調性を失っている不適正領域とに分類する分類手段と、前記複数の画像データの適正領域から、前記複数の画像データに共通の適正領域を抽出する抽出手段と、前記抽出手段により抽出された共通の適正領域の輝度レベルを、前記複数の画像データ毎に補正する輝度レベル補正手段と、前記輝度レベル補正手段により輝度レベルが補正された複数の画像データ間における位置のずれを検出する検出手段と、前記抽出手段により抽出された共通の適正領域間における位置のずれに基づいて、前記複数の画像データの位置を補正する位置補正手段と、前記位置補正手段により位置が補正された複数の画像データに基づいて、合成画像データを生成する生成手段とを備えることを特徴とする。
本発明の撮像装置は、撮像手段と、前記撮像手段によって異なる露光条件で撮像された同一被写体の複数の画像データを一時的に記憶する記憶手段と、前記記憶手段に記憶された複数の画像データを、階調性を保持している適正領域と、階調性を失っている不適正領域とに分類する分類手段と、前記複数の画像データの適正領域から、前記複数の画像データに共通の適正領域を抽出する抽出手段と、前記抽出手段により抽出された共通の適正領域の輝度レベルを、前記複数の画像データ毎に補正する輝度レベル補正手段と、前記輝度レベル補正手段により輝度レベルが補正された複数の画像データ間における位置のずれを検出する検出手段と、前記抽出手段により抽出された共通の適正領域間における位置のずれに基づいて、前記複数の画像データの位置を補正する位置補正手段と、前記位置補正手段により位置が補正された複数の画像データに基づいて、合成画像データを生成する生成手段とを備えることを特徴とする。
【0008】
本発明の画像処理方法は、異なる露光条件で撮像された同一被写体の複数の画像データを、階調性を保持している適正領域と、階調性を失っている不適正領域とに分類する分類ステップと、前記複数の画像データの適正領域から、前記複数の画像データに共通の適正領域を抽出する抽出ステップと、前記抽出ステップにより抽出された共通の適正領域の輝度レベルを、前記複数の画像データ毎に補正する輝度レベル補正ステップと、前記輝度レベル補正ステップにより輝度レベルが補正された複数の画像データ間における位置のずれを検出する検出ステップと、前記抽出ステップにより抽出された共通の適正領域間における位置のずれに基づいて、前記複数の画像データの位置を補正する位置補正ステップと、前記位置補正ステップにより位置が補正された複数の画像データに基づいて、合成画像データを生成する生成ステップとを有することを特徴とする。
【0009】
本発明のコンピュータプログラムは、異なる露光条件で撮像された同一被写体の複数の画像データを、階調性を保持している適正領域と、階調性を失っている不適正領域とに分類する分類ステップと、前記複数の画像データの適正領域から、前記複数の画像データに共通の適正領域を抽出する抽出ステップと、前記抽出ステップにより抽出された共通の適正領域の輝度レベルを、前記複数の画像データ毎に補正する輝度レベル補正ステップと、前記輝度レベル補正ステップにより輝度レベルが補正された複数の画像データ間における位置のずれを検出する検出ステップと、前記抽出ステップにより抽出された共通の適正領域間における位置のずれに基づいて、前記複数の画像データの位置を補正する位置補正ステップと、前記位置補正ステップにより位置が補正された複数の画像データに基づいて、合成画像データを生成する生成ステップとをコンピュータに実行させることを特徴とする。
本発明のコンピュータ読み取り可能な記憶媒体は、前記コンピュータプログラムを記憶したことを特徴とする。
【発明の効果】
【0010】
本発明によれば、ダイナミックレンジの大きな画像データを生成する際に行う複数の画像データの位置合わせを、従来よりも精度よく行える。従って、ダイナミックレンジが拡大された画像を従来よりも確実に生成することができる。
【発明を実施するための最良の形態】
【0011】
(第1の実施形態)
以下、図面を参照して、本発明の第1の実施形態について詳細に説明する。
図1は、本実施形態おける撮像装置の一例であるデジタルカメラの構成の一例を示したブロック図である。
図1において、撮像部101は、絞りと、シャッタと、撮像レンズ群と、C−MOSやCCD等の半導体撮像素子とを備える。撮影制御部102は、シャッタ駆動、絞り駆動、焦点駆動、及びズーム駆動等を制御する。
【0012】
A/D変換部103は、撮像部101から出力された映像信号を、デジタル画像データに変換して、画像処理部104に出力する。画像処理部104は、入力されたデジタル画像データに基づく輝度信号や色差信号を形成する等の処理を行うことにより、カラー画像データを生成する。
【0013】
画像表示部111は、画像処理部104で生成されたカラー画像データを、例えば、デジタルカメラ本体が備える液晶モニタに表示する。尚、画像処理部104で生成されたカラー画像データは、画像記録部112によって、例えばデジタルカメラ内部に設けられた記録媒体に記録される。
【0014】
以下に、画像データのダイナミックレンジを拡大するときの画像処理部104における処理の一例について説明する。
ダイナミックレンジを拡大した画像データを生成するためには、撮影制御部102によって撮影毎に露出(露光量や露出時間等の露光条件)を変化させて、短い間隔で複数回の撮影を行い、複数の画像データを得るようにする。このような撮影を行う方法としては、ブラケット撮影と呼ばれる方法が一般的である。
【0015】
このような撮影により得られた映像信号は、A/D変換部103でデジタル画像データに変換される。このデジタル画像データは、一旦メモリ部105に蓄えられる。メモリ部105に蓄えられたの複数のデジタル画像データは、手ぶれ等を原因とする相対的な位置のずれを伴っている。そこで、位置補正部109は、メモリ部105に蓄えられたの複数のデジタル画像データに対して、相対的な位置のずれを補正する。
【0016】
画像合成部110は、相対的な位置のずれが補正された複数のデジタル画像データにおける画素の選択を行い、複数のデジタル画像データの合成処理を行う。
位置ずれ検出部108は、位置補正部109が行う位置のずれの補正に必要な情報として、複数の画像データにおける相対的な位置のずれ量を検出する。複数のデジタル画像データにおける相対的な位置のずれ量を検出するにあたり、その検出の精度を上げるために行う2つの前処理が、領域抽出部106とレベル補正部107とで行われる処理である。
【0017】
領域抽出部106は、複数のデジタル画像データの中から適正なレンジを持つ共通領域を求める。これにより、複数のデジタル画像データにおける相対的な位置のずれ量を検出するときの誤判定を防ぐことができる。
レベル補正部107は、複数のデジタル画像データ間の共通領域における輝度レベルを合致させる。これにより、複数のデジタル画像データにおける相対的な位置のずれ量の検出精度を向上できる。
【0018】
図2は、画像処理部104における処理の概要の一例を説明するフローチャートである。
図2のステップS201において、メモリ部105は、A/D変換部103で得られた複数のデジタル画像データであって、露光条件が互いに異なる複数のデジタル画像データを入力して記憶する。
次に、ステップS202において、領域抽出部106は、メモリ部105に記憶された各デジタル画像データから、適正領域を検出する。適正領域とは、後述するように、デジタル画像データの画像領域のうち、黒つぶれや白とび等によって階調性が失われている領域を除いた領域をいう。
【0019】
次に、ステップS203において、領域抽出部106は、各デジタル画像データに共通する適正領域を検出する。尚、以下の説明では、各デジタル画像データに共通する適正領域を共通領域と称する。
次に、ステップS204において、レベル補正部107は、各デジタル画像データの共通領域における輝度レベルの補正処理を行う。
次に、ステップS205において、位置ずれ検出部108は、輝度レベルが補正された共通領域間における相対的な位置のずれ量を検出する。
尚、ステップS202〜S205の詳細については後述する。
【0020】
共通領域間における相対的な位置のずれ量が検出されると、ステップS206に進む。そして、位置補正部109は、ステップS205で検出されたずれ量に応じて、メモリ部105に一時的に記憶されたデジタル画像データ(元のデジタル画像データ)の位置を補正する。例えば、2枚のデジタル画像データがメモリ部105に記憶されている場合、2枚目のデジタル画像データの位置を補正して、2枚目のデジタル画像データの位置を、1枚目のデジタル画像データの位置に合わせてもよいし、その逆でも構わない。このようにして、メモリ部105に記憶されている複数のデジタル画像データの相対的な位置合わせがなされると、ステップS207において、画像合成部110は、それら複数のデジタル画像データの合成処理を行う。
【0021】
以下に、図2に示した各ステップの詳細な処理の一例を説明する。
図3は、図2のステップS202における処理(適正領域を抽出する処理)の一例を説明するフローチャートである。この処理は、デジタル画像データ毎に行われる。
露出がアンダーな状態(露光量が少ない状態)で撮影された画像には、黒つぶれと呼ばれる階調が再現できない領域(暗い領域)が生じる場合がある。この領域では、画像の特徴が失われている。従って、複数のデジタル画像データにおける相対的な位置のずれを、この領域を含めて検出すると、誤判定を引き起こす可能性がある。そこで、この領域を除外するため、ステップS301において、領域抽出部106は、入力したデジタル画像データの画素の値が、予め定められた閾値Tl以上であるか否かを判定する。
【0022】
この判定の結果、入力したデジタル画像データの画素の値が、予め定められた閾値Tlよりも小さければ、その画素を黒つぶれしている領域の画素と判断して、ステップS302に進む。そして、領域抽出部106は、その画素を、複数のデジタル画像データにおける相対的な位置のずれを検出する際に用いる画素から除外する。即ち、黒つぶれしている領域の画素は、位置ずれ検出部108での検出対象から除外する。
一方、入力したデジタル画像データの画素の値が、予め定められた閾値Tl以上であれば、ステップS303に進む。
【0023】
露出がオーバーな状態(露光量が多い状態)で撮影された画像には、白とびと呼ばれる階調が再現できない領域(明るい領域)が生じる場合がある。この領域では、画像の特徴が失われている。従って、複数のデジタル画像データにおける相対的な位置のずれを、この領域を含めて検出すると、誤判定を引き起こす可能性がある。そこで、この領域を除外するため、ステップS303において、領域抽出部106は、入力したデジタル画像データの画素の値が、予め定められた閾値Th以下であるか否かを判定する。この判定の結果、入力したデジタル画像データの画素の値が、予め定められた閾値Thよりも大きければ、その画素を白とびしている領域の画素と判断して、前述したステップS302に進む。そして、ステップS302において、領域抽出部106は、白とびしている領域の画素を、位置ずれ検出部108での検出対象から除外する。
【0024】
一方、入力したデジタル画像データの画素の値が、予め定められた閾値Th以上であれば、ステップS304に進む。そして、領域抽出部106は、ステップS303において値が閾値Th以上であると判定した画素を、複数のデジタル画像データにおける相対的な位置のずれを検出する際に用いる画素の候補とする。即ち、領域抽出部106は、入力したデジタル画像データの画素のうち、値が閾値Tl以上閾値Th以下の範囲内にある画素のみを、階調性を保持している適正領域の画素とし、その画素を位置ずれ検出部108での検出対象の候補とする。
【0025】
次に、ステップS305において、領域抽出部106は、入力したデジタル画像データの全ての画素に対する処理を終えたか否かを判定する。この判定の結果、入力したデジタル画像データの全ての画素に対する処理を終えていない場合には、入力したデジタル画像データの全ての画素についての処理が終了するまで、ステップS301〜S305の処理を繰り返し行う。そして、入力したデジタル画像データの全ての画素について処理が終わると、一画面分の適正領域が抽出される。そして、図2のフローチャートに戻る。
【0026】
図4は、図2のステップS203における処理(画素単位の共通領域の抽出処理)の一例を説明するフローチャートである。この処理は、適正領域を求めた画像間で行われる。尚、ここでは、説明を簡単にするために、2つのデジタル画像データ間での処理を行う場合を例に挙げて説明する。そして、以下の説明では、これら2つのデジタル画像データを、それぞれ第1の入力画像及び第2の入力画像と称する。
【0027】
まず、ステップS401において、領域抽出部106は、第1の入力画像の画素が適正領域内の画素であるか否かを判定する。この判定の結果、第1の入力画像の画素が適正領域内の画素でなければ、ステップS402に進む。そして、領域抽出部106は、その画素を、位置ずれ検出部108での検出対象から除外する。尚、以下の説明において、位置ずれ検出部108での検出対象から除外した画素を、必要に応じて除外画素と称する。
【0028】
一方、第1の入力画像の画素が適正領域内の画素であれば、ステップS403に進む。そして、領域抽出部106は、第2の入力画像の画素が適正領域内の画素であるか否かを判定する。ここで、領域抽出部106は、ステップS401で判定した第1の入力画像の画素と同一位置の画素を第2の入力画像から抽出し、抽出した画素が適正領域内の画素であるか否かを判定する。この判定の結果、第2の入力画像の画素が適正領域内の画素でなければ、ステップS402に進み、領域抽出部106は、その画素を、位置ずれ検出部108での検出対象から除外する。
【0029】
一方、第2の入力画像の画素が適正領域内の画素であれば、ステップS404に進む。そして、領域抽出部106は、ステップS401、S403で適正領域内にあると判定した2つの画素を共通領域の画素とし、それら2つの画素を、位置ずれ検出部108で検出対象とする。即ち、領域抽出部106は、第1の入力画像の画素と、第2の入力画像の画素との両方が、適正範囲の中にある画素である場合に限り、それらの画素を共通領域の画素とし、それら2つの画素を、位置ずれ検出部108での検出対象とする。尚、以下の説明において、位置ずれ検出部108での検出対象となる画素を、必要に応じて共通画素と称する。
【0030】
次に、ステップS405において、領域抽出部106は、第1の入力画像と第2の入力画像との全ての画素について処理を終えたか否かを判定する。この判定の結果、第1の入力画像と第2の入力画像との全ての画素について処理を終えていない場合には、第1の入力画像と第2の入力画像との全ての画素についての処理が終了するまで、ステップS401〜S405の処理を繰り返し行う。そして、第1の入力画像と第2の入力画像との全ての画素について処理が終わると、一組分の共通領域が抽出される。
【0031】
尚、例えば、3枚の画像を用いてダイナミックレンジの拡大を図る場合には、以下のようにすればよい。まず、1枚目の画像と2枚目の画像との間で図4の処理を行った後、2枚目の画像と3枚目の画像との間で図4の処理を行う。そして、3枚の画像の画素の全てが適正領域である場合に、それらの画素を共通領域の画素とする。
【0032】
図5は、図4に続く処理(ブロック単位の共通領域の抽出方法)の一例を説明するフローチャートである。図5に示す処理は、後述するようにして複数のデジタル画像データの位置のずれをブロック単位で検出する際に、その位置のずれの検出精度を向上させるための処理であり、図4で求めた共通領域よりも更に検出領域を狭める処理となる。
【0033】
まず、ステップS501において、領域抽出部106は、画面全体を一定の画素サイズのブロック(縦横1画素以上で構成されるブロック)に分割する。以下の処理は、このブロック単位での処理となる。
次に、ステップS502において、領域抽出部106は、ステップS501で分割したブロック内に、ステップS402で決定された除外画素があるか否かを判定する。この判定の結果、ステップS501で分割したブロック内に、ステップS402で決定された除外画素がある場合には、ステップS503に進む。そして、領域抽出部106は、そのブロックを、位置ずれ検出部108での検出対象から除外する。尚、以下の説明において、位置ずれ検出部108での検出対象から除外した画素を、必要に応じて除外ブロックと称する。
【0034】
一方、ステップS501で分割したブロック内に、ステップS402で決定された除外画素がない場合には、ステップS504に進む。そして、領域抽出部106は、ステップS502で除外画素がないと判定されたブロックに対して検出される動きベクトルのサーチ範囲内のブロック(後述する参照画像のブロック)に、除外画素があるか否かを判定する。この判定の結果、サーチ範囲内に除外画素がある場合には、ステップS503に進み、領域抽出部106は、それら複数のブロックを、位置ずれ検出部108での検出対象から除外する。
【0035】
一方、ステップS502で除外画素がないと判定されたブロックと、そのブロックに対して検出される動きベクトルのサーチ範囲内のブロックとに除外画素が無い場合には(ステップS504のNo)、ステップS505に進む。そして、領域抽出部106は、それら複数のブロックを、位置ずれ検出部108での検出対象とする。尚、以下の説明において、位置ずれ検出部108での検出に用いるブロックを、必要に応じて共通ブロックと称する。
【0036】
次に、ステップS506において、領域抽出部106は、ステップS501で分割した全てのブロックに対して処理を終えたか否かを判定する。この判定の結果、ステップS501で分割した全てのブロックに対して処理を終えていない場合には、処理を終えるまでステップS502〜506を繰り返し行う。そして、ステップS501で分割した全てのブロックに対してステップS502〜S506の処理が終わったところで、図2のフローチャートに戻る。
【0037】
図6は、図2のステップS204における処理(共通領域のレベル補正処理)の一例を説明するフローチャートである。尚、ここでも、説明を簡単にするために、2つのデジタル画像データ(第1及び第2の入力画像)間での処理を行う場合を例に挙げて説明する。
【0038】
複数のデジタル画像データの位置のずれの検出は、一般的に、位置のずれの検出対象である複数のデジタル画像データ間の相関値に基づいて行われる。しかしながら、位置のずれの検出対象である複数のデジタル画像データ間で輝度レベルが合致していないと、それら複数のデジタル画像データ間の相関値の算出精度を下げることになる。画像データのダイナミックレンジを拡大する場合には、互いに異なる露出で撮影された複数のデジタル画像データ間で位置ずれを検出するので、対応する画像間の輝度レベルは大きく異なっている。従って、輝度レベルの補正は、位置のずれの検出精度を高めるための重要な処理となる。本実施形態の特徴の1つは、共通ブロック間で輝度レベルを合わせた後に、それら共通ブロックに生じている位置のずれを検出することにある。
【0039】
まず、ステップS601において、レベル補正部107は、共通ブロック内における第1の入力画像の画素の平均値a1を算出する。
同様に、ステップS602において、レベル補正部107は、共通ブロック内における第2の入力画像の画素の平均値a2を算出する。
【0040】
次に、ステップS603において、レベル補正部107は、第1の入力画像のゲインr1を算出する。第1の入力画像のゲインr1と、平均値a1、a2との関係は、式(1)で表すことができる。
r1=(a1+a2)/(2×a1) ・・・ (1)
【0041】
同様に、ステップS604において、レベル補正部107は、第2の入力画像のゲインr2を算出する。第2の入力画像のゲインr2と、平均値a1、a2との関係は、式(2)で表すことができる。
r2=(a1+a2)/(2×a2) ・・・ (2)
【0042】
次に、ステップS605において、レベル補正部107は、第1の入力画像の各画素の画素値に、ゲインr1を乗じて輝度レベルの補正値を算出する。即ち、第1の入力画像の各画素の画素値に、ゲインr1を乗じた値が輝度レベルの補正値となる。
同様に、ステップS606において、レベル補正部107は、第2の入力画像の各画素の画素値に、ゲインr2を乗じて輝度レベルの補正値を算出する。即ち、第2の入力画像の各画素の画素値に、ゲインr2を乗じた値が輝度レベルの補正値となる。こうして、一連のレベル補正処理を終えると、図2のフローチャートに戻る。
【0043】
図7は、図2のステップS205における処理(位置ずれを検出処理)の一例を説明するフローチャートである。ここでは、ブロック毎に動きベクトルを求め、求めた動きベクトルを用いて、画面全体の動き量をアフィンパラメータとして求める方法を一例として説明する。
【0044】
ステップS801において、位置ずれ検出部108は、ブロック毎に動きベクトルを求めるための前処理として、有効ブロックの判定を行う。これは、正しい動きベクトルが求まらない可能性のあるブロックを除外する処理である。詳細は後述する。
次に、ステップS802において、位置ずれ検出部108は、ブロックの動きベクトルを算出する。ここでは、一般的なブロックマッチング法を用いてブロックの動きベクトルを算出する場合を例に挙げて説明する。
【0045】
ブロックマッチング法では、マッチングの評価値としてブロック内の画素間の差分二乗和又は差分絶対値和を用いる。動きベクトルを求める対象ブロックにおける参照画像内のブロックを参照画像のサーチ範囲内で順次動かしなら評価値を求めていく。サーチ範囲内で求めた全ての評価値の中から最小の評価値を持つ位置(参照画像のブロック)が、対象ブロックと最も相関の高い位置(ブロック)となる。そして、対象ブロックと、その対象ブロックと最も相関の高いブロックとの移動量が動きベクトルとなる。ここで、サーチ範囲内で1画素ずつ評価値を求めていく方法をフルサーチと呼ぶ。これに対し、サーチ範囲内の間引かれた画素の中から最小の評価値を求め、求めた最小の評価値を有する画素の近傍の画素に対して細かくサーチする方法を、ステップサーチと呼ぶ。ステップサーチは高速に動きベクトルを求める方法としてよく知られている。
【0046】
次に、ステップS803において、位置ずれ検出部108は、有効動きベクトルの判定を行う。これは、求めた動きベクトルのうち、算出結果が正しくないと判断されるものを除外する処理である。詳細は後述する。
次に、ステップS804において、位置ずれ検出部108は、全てのブロックに対して処理を終えたか否かを判定する。この判定の結果、全てのブロックに対して処理を終えていない場合には、処理を終えるまでステップS801〜S804の処理を繰り返し行う。そして、全てのブロックに対して処理を終えると、ステップS805に進む。そして、位置ずれ検出部108は、ステップS803で得られた有効な動きベクトルを用いて、アフィンパラメータを検出する。
【0047】
図8は、アフィンパラメータの検出を説明するための図である。
図8に示すように、対象ブロックの中心座標が、(x,y)であるとする。そして、有効な動きベクトルの算出結果から、対象ブロックの中心座標(x,y)が、参照画像におけるブロックの中心座標(x',y')に移動したとすると、これらの関係は,式(3)のように表すことができる。
【0048】
【数1】
【0049】
ここで、式(3)の右辺における3×3の行列がアフィン変換行列である。このアフィン変換行列の各要素がアフィンパラメータである。アフィンパラメータa、b、d、eがそれぞれ1、0、0、1(a=1,b=0,d=0,e=1)のとき、この変換は平行移動となる。このとき、アフィンパラメータcが水平方向の移動量となり、アフィンパラメータfが垂直方向の移動量となる。また、回転角をθとすると、回転移動は、式(4)〜(7)のように表すことができる。
【0050】
a=cosθ ・・・(4)
b=−sinθ ・・・(5)
d=sinθ ・・・(6)
e=cosθ ・・・(7)
【0051】
また、式(3)は、一般化した行列の形式で、式(8)のように表現することができる。
x'=A・x ・・・(8)
ここで、xとx'は1×3の行列、Aは3×3の行列である。有効な動きベクトルがn個であった場合、対象画像の座標値は、式(9)のようにn×3の行列で表現できる。
X=(x1x2・・・xn) ・・・(9)
【0052】
同様に、移動後の座標値も式(10)のようにn×3の行列で表現できる。
X'=(x1'x2'・・・xn') ・・・(10)
よって、n個の動きベクトルに対しては、式(11)のような表現となる。
X'=A・X ・・・(11)
【0053】
即ち、式(11)におけるアフィン変換行列Aを求めれば、それが画面全体の位置ずれ量になる。式(11)を変形すると、アフィン変換行列Aは式(12)のようにして求まる。
A=X'・XT・(X・XT)-1 ・・・(12)
【0054】
以上のように、複数のデジタル画像データの位置のずれを求める場合には、アフィンパラメータを用いて、複数のデジタル画像データの動き量を表現できる。このため、デジタルカメラを保持しているときに起こるシフトぶれによる動き量以外にも、面内方向で生じるロールぶれや前後方向で生じるズームぶれ等による動き量を求めることが可能である。
【0055】
ここで、図9のフローチャートを参照しながら、図7のステップS801における処理(有効ブロックの判定処理)の一例を説明する。
ブロックマッチング法によりブロック間の相関を求めようとする場合、ブロック内の画像が何らかの特徴量を持っている必要がある。平坦で殆ど直流成分しか含んでいないブロックでは正しい動きベクトルを求めることはできない。逆に水平方向や垂直方向にエッジを含んでいると、マッチングがとり易くなると考えられる。図9に示す処理は、このような平坦部のブロックを除外するための処理の一例である。尚、ここでは、説明を簡単にするために、1つのブロックに対して処理を行う場合を例に挙げて説明する。
【0056】
まず、ステップS901において、位置ずれ検出部108は、ブロック内の水平方向の1つのラインにおける画素値の最大値と最小値との差分値を算出する。例えば、ブロックのサイズが50×50の画素で構成されているとすると、ブロック内の水平方向の50個の画素から最大値と最小値とを求め、その最大値と最小値との差分値を算出する。
【0057】
次に、ステップS902において、位置ずれ検出部108は、ブロックの全ての水平ラインに対して、ステップS901の算出を行ったか否かを判定する。前述した例では、ステップS901の算出を、水平ライン数分、即ち50回繰り返し行ったか否かを判定する。この判定の結果、ブロックの全ての水平ラインに対して、ステップS901の算出を行っていない場合には、ブロックの全ての水平ラインに対して、ステップS901の算出を行うまでステップS901、S902を繰り返し行う。
【0058】
そして、ブロックの全ての水平ラインに対して、ステップS901の算出を行うと、ステップS903に進む。そして、位置ずれ検出部108は、ステップS901で算出した差分値の中から最大の差分値を求める。前述した例では、50個の差分値の中から最大の差分値を求める。
【0059】
次に、ステップS904において、位置ずれ検出部108は、予め設定された閾値Txよりも、ステップS903で求めた最大の差分値が大きいか否かを判定する。この判定の結果、予め設定された閾値Txよりも、ステップS903で求めた最大の差分値が大きくなければ、位置ずれ検出部108は、処理対象のブロックが、水平方向には特徴量を持たないブロックであるとみなしてステップS905に進む。そして、位置ずれ検出部108は、処理対象のブロックを無効ブロックと判定する。
【0060】
一方、予め設定された閾値Txよりも、ステップS903で求めた最大の差分値が大きければ、位置ずれ検出部108は、処理対象のブロックが、水平方向に特徴量を持つブロックであるとみなして、垂直方向で水平方向と同様の検証を行う。
まず、ステップS906において、位置ずれ検出部108は、ブロック内の垂直方向の1つのラインにおける画素値の最大値と最小値との差分値を算出する。前述した例では、ブロック内の垂直方向の50個の画素から最大値と最小値とを求め、その最大値と最小値との差分値を算出する。
【0061】
次に、ステップS907において、位置ずれ検出部108は、ブロックの全ての垂直ラインに対して、ステップS906の算出を行ったか否かを判定する。前述した例では、ステップS906の算出を、垂直ライン数分、即ち50回繰り返し行ったか否かを判定する。この判定の結果、ブロックの全ての垂直ラインに対して、ステップS906の算出を行っていない場合には、ブロックの全ての垂直ラインに対して、ステップS906の算出を行うまでステップS906、S907を繰り返し行う。
【0062】
そして、ブロックの全ての垂直ラインに対して、ステップS906の算出を行うと、ステップS908に進む。そして、位置ずれ検出部108は、ステップS906で算出した差分値の中から最大の差分値を求める。前述した例では、50個の差分値の中から最大の差分値を求める。
【0063】
次に、ステップS909において、位置ずれ検出部108は、予め設定された閾値Tyよりも、ステップS908で求めた最大の差分値が大きいか否かを判定する。この判定の結果、予め設定された閾値Tyよりも、ステップS908で求めた最大の差分値が大きくなければ、位置ずれ検出部108は、処理対象のブロックが、垂直方向には特徴量を持たないブロックであるとみなしてステップS905に進む。そして、前述したように、位置ずれ検出部108は、処理対象のブロックを無効ブロックと判定する。
【0064】
一方、予め設定された閾値Tyよりも、ステップS908で求めた最大の差分値が大きければ、位置ずれ検出部108は、処理対象のブロックが、垂直方向及び水平方向の両方向に特徴量を持つブロックであるとみなす。この場合、正確なブロックマッチングを行えることが期待できる。そこで、ステップS910に進み、位置ずれ検出部108は、処理対象のブロックを有効ブロックと判定する。
【0065】
次に、図10のフローチャートを参照しながら、図7のステップS803における処理(有効動きベクトルの判定処理)の一例を説明する。
まず、ステップS1001において、位置ずれ検出部108は、図7のステップS802で検出した動きベクトルを入力する。そうすると、ステップS1002において、位置ずれ検出部108は、その動きベクトルの発生頻度を算出する。
【0066】
次に、ステップS1003において、位置ずれ検出部108は、図7のステップS802で検出した全ての動きベクトルの発生頻度を求め終えたか否かを判定する。この判定の結果、図7のステップS802で検出した全ての動きベクトルの発生頻度を求め終えていない場合には、求め終えるまでステップS1001〜S1003を繰り返し行う。そして、図7のステップS802で検出した全ての動きベクトルの発生頻度を求め終えると、ステップS1004に進む。そして、位置ずれ検出部108は、ステップS1002で求めた動きベクトルの発生頻度に基づいて、最大発生頻度の動きベクトルを求める。
【0067】
次に、ステップS1005において、位置ずれ検出部108は、図7のステップS802で検出した動きベクトルを再度入力する。そして、ステップS1006において、位置ずれ検出部108は、再度入力した動きベクトルが最大発生頻度の動きベクトル、又はその動きベクトルの近傍の動きベクトルであるか否かを判定する。画面全体のぶれが、前述したシフトぶれのみである場合、各ブロックの動きベクトルは、最大発生頻度の動きベクトルに略一致すると考えられる。また、前述したロールぶれを伴う場合には、最大発生頻度の動きベクトルの近傍に多くの動きベクトルが発生すると考えられる。
【0068】
従って、ステップS1006の判定の結果、再度入力した動きベクトルが、最大発生頻度の動きベクトル、又はその動きベクトルの近傍の動きベクトルである場合には、ステップS1007に進む。そして、位置ずれ検出部108は、その動きベクトルを有効動きベクトルと判定する。
一方、再度入力した動きベクトルが、最大発生頻度の動きベクトル、又はその動きベクトルの近傍の動きベクトルでない場合には、ステップS1008に進む。そして、位置ずれ検出部108は、その動きベクトルを無効動きベクトルと判定する。
【0069】
次に、ステップS1009において、位置ずれ検出部108は、図7のステップS802で検出した全ての動きベクトルに対して処理が終わったか否かを判定する。この判定の結果、図7のステップS802で検出した全ての動きベクトルに対して処理が終わっていなければ、終わるまでステップS1005〜S1009を繰り返し行う。
【0070】
図11は、図2のステップS207で行われる画像データの合成処理の一例を説明する図である。画像データの合成は、画素値(画素レベル)がある閾値以下の場合には、低輝度側のデジタル画像データを用い、閾値より大きい場合には、高輝度側のデジタル画像データを用いるというのが基本である。しかしながら実際には、設定された閾値が低輝度側と高輝度側との間の不連続点となってしまうのを避けるための処理を行う。ここでは、低輝度側と高輝度側とが共通に持つ値の範囲内で、2つの閾値Ta、Tbを設定している。本実施形態の画像合成部110は、これら2つの閾値Ta、Tbを用いて画素値(画素レベル)を判定することにより、低輝度側から高輝度側へのデジタル画像データの混合比が1から0へ順次(徐々に)変化するように画像データの合成処理を行う。
【0071】
以上のように本実施形態では、領域抽出部106は、複数のデジタル画像データの画素の中から、黒つぶれや白とび等によって階調性が失われた領域の画素を除いた画素を適正画素とする。そして、領域抽出部106は、複数のデジタル画像データの同一位置の画素であって、共に適正画素である画素を共通画素とし、そうでない画素を除外画素とする。更に領域抽出部106は、複数のデジタル画像データの画面全体をブロック化する。領域抽出部106は、動きベクトルの検出対象のブロックと、そのブロックに対する参照画像のブロックとの双方に除外画素が含まれていなければ、それらのブロックを共通ブロックとする。レベル補正部107は、共通ブロック内における画素値(輝度レベル)の平均値a1、a2を求め、求めた平均値a1、a2を用いて、共通ブロックの輝度レベルを合わせる。位置ずれ検出部108は、輝度レベルが合った共通ブロックを用いて位置のずれを検出し、位置補正部109は、その位置のずれ量に応じて、複数のデジタル画像データの位置を補正する。
【0072】
以上のように、互いに輝度レベルを合わせた共通ブロックを用いて動きベクトルを検出することによって、複数のデジタル画像データの位置のずれを検出する。そして、検出したずれの量に応じて、複数のデジタル画像データの位置を合わせてから、複数のデジタル画像データを合成する。従って、ダイナミックレンジの大きな画像データを生成する際に行う複数のデジタル画像データの位置合わせを従来よりも精度よく行うことが可能となる。
【0073】
また、本実施形態では、水平方向又は垂直方向に特徴量を持たないブロックを処理対象から除外するようにした。また、シフトぶれによる動き量、面内方向で生じるロールぶれ、又は前後方向で生じるズームぶれに起因すると推定される動きベクトルだけを用いて、複数のデジタル画像データの位置のずれを検出するようにした。従って、複数のデジタル画像データの位置合わせの精度をより向上させることが可能になる。
【0074】
(第2の実施形態)
次に、本発明の第2実施形態について説明する。前述した第1の実施形態では、共通ブロック内における画素値の平均値a1、a2を求め、求めた平均値a1、a2を用いて、共通ブロックの輝度レベルを合わせるようにした。これに対し、本実施形態では、撮像制御部102で得られた撮像情報を利用して、共通ブロックの輝度レベルを合わせるようにする。このように、本実施形態と前述した第1の実施形態とは、共通ブロックの輝度レベルを合わせるための処理の一部が主として異なる。従って、以下の説明において、前述した第1の実施形態と同一の部分については、図1〜図11に付した符号と同一の符号を付す等して詳細な説明を省略する。
【0075】
図12は、本実施形態における撮像装置の一例であるデジタルカメラの構成の一例を示したブロック図である。
図12に示すデジタルカメラと、図1に示した第1の実施形態のデジタルカメラとの違いは、画像処理部1201内のレベル補正部1202の処理において、撮影制御部102で得られる撮像情報を利用することにある。図13のフローチャートを参照しながら、本実施形態のレベル補正部1202の処理(図2のステップS204における処理(共通領域のレベル補正処理))の一例を説明する。尚、ここでは、説明を簡単にするために、2つのデジタル画像データ(第1及び第2の入力画像)間での処理を行う場合を例に挙げて説明する。
【0076】
撮影制御部102で得られる撮影情報は、具体的には、適正露出からどれだけアンダー又はオーバーの露出で撮影したかという情報である。この情報を用いることで、第1の実施形態の図6で説明した平均値の演算を行うことなく、輝度レベルの補正が可能となる。
まず、ステップS701において、レベル補正部1202は、第1の入力画像の撮影情報を取得する。
同様に、ステップS702において、レベル補正部1202は、第2の入力画像の撮影情報を取得する。
【0077】
次に、ステップS703において、レベル補正部1202は、第1の入力画像の撮影情報を用いて、第1の入力画像のゲインr1を算出する。例えば、第1の入力画像が1段アンダーで撮影されたとすると、第1の入力画像を得た際の露出時間は本来の半分ということになる。従って、適正な明るさにするためのゲインr1は「2」となる。
同様に、ステップS704において、レベル補正部1202は、第2の入力画像の撮影情報を用いて、第2の入力画像のゲインr2を算出する。例えば、第2の入力画像が1段オーバーで撮影されたとすると、第2の入力画像を得た際の露出時間は本来の2倍ということになる。従って、適正な明るさにするためのゲインr2は「1/2」となる。
【0078】
次に、ステップS705において、レベル補正部1202は、第1の入力画像の各画素の画素値に、ゲインr1を乗じて輝度レベルの補正値を算出する。即ち、第1の入力画像の各画素に、ゲインr1を乗じた値が輝度レベルの補正値となる。
同様に、ステップS706において、レベル補正部1202は、第2の入力画像の各画素の画素値に、ゲインr2を乗じて輝度レベルの補正値を算出する。即ち、第2の入力画像の各画素に、ゲインr2を乗じた値が輝度レベルの補正値となる。こうして、一連のレベル補正処理を終え、図2のフローチャートに戻る。
【0079】
以上のように本実施形態では、適正露出からのずれに関する撮像情報を用いて、共通ブロックの輝度レベルを合わせるようにした。従って、第1の実施形態のように、平均値a1、a2の演算を行う処理を省略できる。よって、本実施形態では、前述した第1の実施形態で説明した効果に加えて、複数のデジタル画像データの位置合わせを容易に行うことができるという効果を有する。
【0080】
尚、撮像装置(デジタルカメラ)内で前述した処理を行う場合には、撮像制御部102から撮像情報を得ることになる。ただし、PCのアプリケーションソフトウェアで後から処理する場合には、画像ファイル内に記録されている付加情報の中から、撮像情報を得て前述した処理と同様の処理をPC等で行うことになる。
【0081】
図14は、前述した第1及び第2の実施形態で説明した処理を実行可能なコンピュータのハードウェアの構成の一例を示す図である。尚、このコンピュータは、例えば、撮像装置とインタフェースを介して相互に接続可能であり、撮像装置で撮像された映像信号を入力して、前述した第1及び第2の実施形態で説明した処理を実行する。
【0082】
図14において、バス2001には、中央処理装置(CPU)2002、ROM2003、RAM2004、ネットワークインタフェース2005、入力装置2006、出力装置2007及び外部記憶装置2008が接続されている。CPU2002は、データの処理又は演算を行うと共に、バス2001を介して接続された各種構成要素を制御するものである。ROM2003には、予めCPU2002の制御手順(コンピュータプログラム)を記憶させておく。このコンピュータプログラムをCPU2002が実行することにより、コンピュータが起動する。
【0083】
外部記憶装置2008にコンピュータプログラムが記憶されており、そのコンピュータプログラムがRAM2004にコピーされて実行される。RAM2004は、データの入出力や送受信のためのワークメモリとして用いられたり、各構成要素の制御のための一時的な記憶領域として用いられたりする。
【0084】
外部記憶装置2008は、例えばハードディスク記憶装置やCD−ROM等であり、画像データ等を記憶する。電源を切っても外部記憶装置2008の記憶内容は消えない。CPU2002は、RAM2004内のコンピュータプログラムを実行することにより、前述した実施形態の処理を行う。ネットワークインタフェース2005は、ネットワークに接続するためのインタフェースである。入力装置2006は、例えばキーボード及びマウス等であり、各種指定又は入力等を行うことができる。出力装置2007は、ディスプレイ及びプリンタ等である。
【0085】
(本発明の他の実施形態)
前述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置あるいはシステム内のコンピュータに対し、前記実施形態の機能を実現するためのソフトウェアのプログラムコードを供給してもよい。そのシステムあるいは装置のコンピュータ(CPUあるいはMPU)に格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
【0086】
また、この場合、前記ソフトウェアのプログラムコード自体が前述した実施形態の機能を実現することになる。また、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、例えば、かかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
【0087】
また、コンピュータが供給されたプログラムコードを実行することにより、前述の実施形態の機能が実現されるだけでない。そのプログラムコードがコンピュータにおいて稼働しているオペレーティングシステムあるいは他のアプリケーションソフト等と共同して前述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
【0088】
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードに備わるCPUが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
また、供給されたプログラムコードがコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいて機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
【0089】
前述した各実施形態における処理の内容を前記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【0090】
尚、前述した各実施形態は、複数の機器(例えば、ホストコンピュータ、インタフェース機器、リーダ、プリンタ等)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置等)に適用してもよい。
【0091】
また、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【0092】
【図1】本発明の第1の実施形態を示し、デジタルカメラの構成の一例を示したブロック図である。
【図2】本発明の第1の実施形態を示し、画像処理部における処理の概要の一例を説明するフローチャートである。
【図3】本発明の第1の実施形態を示し、図2のステップS202における処理(適正領域を抽出する処理)の一例を説明するフローチャートである。
【図4】本発明の第1の実施形態を示し、図2のステップS203における処理(画素単位の共通領域の抽出処理)の一例を説明するフローチャートである。
【図5】本発明の第1の実施形態を示し、図4に続く処理(ブロック単位の共通領域の抽出方法)の一例を説明するフローチャートである。
【図6】本発明の第1の実施形態を示し、図2のステップS204における処理(共通領域のレベル補正処理)の一例を説明するフローチャートである。
【図7】本発明の第1の実施形態を示し、図2のステップS205における処理(位置ずれを検出処理)の一例を説明するフローチャートである。
【図8】本発明の第1の実施形態を示し、アフィンパラメータの検出を説明するための図である。
【図9】本発明の第1の実施形態を示し、図7のステップS801における処理(有効ブロックの判定処理)の一例を説明するフローチャートである。
【図10】本発明の第1の実施形態を示し、図7のステップS803における処理(有効動きベクトルの判定処理)の一例を説明するフローチャートである。
【図11】本発明の第1の実施形態を示し、図2のステップS207で行われる画像データの合成処理の一例を説明する図である。
【図12】本発明の第2の実施形態を示し、デジタルカメラの構成の一例を示したブロック図である。
【図13】本発明の第2の実施形態を示し、レベル補正部の処理(図2のステップS204における処理(共通領域のレベル補正処理))の一例を説明するフローチャートである。
【図14】本発明の実施形態を示し、コンピュータのハードウェアの構成の一例を示す図である。
【符号の説明】
【0093】
101 撮像部
102 撮像制御部
103 A/D変換部
104、1201 画像処理部
105 メモリ部
106 領域抽出部
107、1202 レベル補正部
108 位置ずれ検出部
109 位置補正部
110 画像合成部
111 画像表示部
112 画像記録部
【技術分野】
【0001】
本発明は、画像処理装置、撮像装置、及び画像処理方法に関し、特に、複数の画像データを合成して、画像データのダイナミックレンジを拡大するために用いて好適なものに関する。
【背景技術】
【0002】
近年、デジタル画像処理技術の発達により、撮影した複数の画像を加工することで、これまでには難しかった様々な処理が行えるようになってきた。露出の異なる複数の画像から、ダイナミックレンジを拡大した合成画像を作るといった処理もそのひとつである。この処理は、同一の被写体に対し、低輝度画像と高輝度画像とを生成し、低輝度領域においては低輝度画像を、高輝度領域においては高輝度画像を夫々用いることにより、全ての輝度領域で、階調性のよい画像を得るものである。
【0003】
特許文献1には、露光量を互いに変えて撮像した同一被写体の複数の画像データの位置関係を合わせた後、各画像データの輝度の平均値の比に基づいて、各画像データの輝度レベルを合わせ、輝度レベルを合わせた各画像データを合成する技術が開示されている。この特許文献1では、画像データの位置合わせの技術と画像データの合成の技術との組み合わせによって、ダイナミックレンジの大きい画像データを得ることができる。
【0004】
ところで、露光量を互いに変えて同一被写体に対し複数回の撮影を行う際は、撮影と撮影との間に僅かな時間差が生じる。このため、手ぶれ等により、得られる複数の画像データに相対的な位置のずれが生じる虞がある。従って、複数の画像データを精度よく合成するためには、この位置合わせの技術が極めて重要となる。
【0005】
【特許文献1】特許第3553999号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、前述した特許文献1に記載の技術では、位置合わせの精度を確保するための処理については考慮されていない。従って、従来の技術では、撮影条件の異なる2つの画像データ間の位置合わせの精度が低下してしまう虞があるという問題点があった。
本発明は、このような問題点に鑑みてなされたものであり、ダイナミックレンジの大きな画像データを生成する際に行う複数の画像データの位置合わせを精度良く行うようにすることを目的とする。
【課題を解決するための手段】
【0007】
本発明の画像処理装置は、異なる露光条件で撮像された同一被写体の複数の画像データを、階調性を保持している適正領域と、階調性を失っている不適正領域とに分類する分類手段と、前記複数の画像データの適正領域から、前記複数の画像データに共通の適正領域を抽出する抽出手段と、前記抽出手段により抽出された共通の適正領域の輝度レベルを、前記複数の画像データ毎に補正する輝度レベル補正手段と、前記輝度レベル補正手段により輝度レベルが補正された複数の画像データ間における位置のずれを検出する検出手段と、前記抽出手段により抽出された共通の適正領域間における位置のずれに基づいて、前記複数の画像データの位置を補正する位置補正手段と、前記位置補正手段により位置が補正された複数の画像データに基づいて、合成画像データを生成する生成手段とを備えることを特徴とする。
本発明の撮像装置は、撮像手段と、前記撮像手段によって異なる露光条件で撮像された同一被写体の複数の画像データを一時的に記憶する記憶手段と、前記記憶手段に記憶された複数の画像データを、階調性を保持している適正領域と、階調性を失っている不適正領域とに分類する分類手段と、前記複数の画像データの適正領域から、前記複数の画像データに共通の適正領域を抽出する抽出手段と、前記抽出手段により抽出された共通の適正領域の輝度レベルを、前記複数の画像データ毎に補正する輝度レベル補正手段と、前記輝度レベル補正手段により輝度レベルが補正された複数の画像データ間における位置のずれを検出する検出手段と、前記抽出手段により抽出された共通の適正領域間における位置のずれに基づいて、前記複数の画像データの位置を補正する位置補正手段と、前記位置補正手段により位置が補正された複数の画像データに基づいて、合成画像データを生成する生成手段とを備えることを特徴とする。
【0008】
本発明の画像処理方法は、異なる露光条件で撮像された同一被写体の複数の画像データを、階調性を保持している適正領域と、階調性を失っている不適正領域とに分類する分類ステップと、前記複数の画像データの適正領域から、前記複数の画像データに共通の適正領域を抽出する抽出ステップと、前記抽出ステップにより抽出された共通の適正領域の輝度レベルを、前記複数の画像データ毎に補正する輝度レベル補正ステップと、前記輝度レベル補正ステップにより輝度レベルが補正された複数の画像データ間における位置のずれを検出する検出ステップと、前記抽出ステップにより抽出された共通の適正領域間における位置のずれに基づいて、前記複数の画像データの位置を補正する位置補正ステップと、前記位置補正ステップにより位置が補正された複数の画像データに基づいて、合成画像データを生成する生成ステップとを有することを特徴とする。
【0009】
本発明のコンピュータプログラムは、異なる露光条件で撮像された同一被写体の複数の画像データを、階調性を保持している適正領域と、階調性を失っている不適正領域とに分類する分類ステップと、前記複数の画像データの適正領域から、前記複数の画像データに共通の適正領域を抽出する抽出ステップと、前記抽出ステップにより抽出された共通の適正領域の輝度レベルを、前記複数の画像データ毎に補正する輝度レベル補正ステップと、前記輝度レベル補正ステップにより輝度レベルが補正された複数の画像データ間における位置のずれを検出する検出ステップと、前記抽出ステップにより抽出された共通の適正領域間における位置のずれに基づいて、前記複数の画像データの位置を補正する位置補正ステップと、前記位置補正ステップにより位置が補正された複数の画像データに基づいて、合成画像データを生成する生成ステップとをコンピュータに実行させることを特徴とする。
本発明のコンピュータ読み取り可能な記憶媒体は、前記コンピュータプログラムを記憶したことを特徴とする。
【発明の効果】
【0010】
本発明によれば、ダイナミックレンジの大きな画像データを生成する際に行う複数の画像データの位置合わせを、従来よりも精度よく行える。従って、ダイナミックレンジが拡大された画像を従来よりも確実に生成することができる。
【発明を実施するための最良の形態】
【0011】
(第1の実施形態)
以下、図面を参照して、本発明の第1の実施形態について詳細に説明する。
図1は、本実施形態おける撮像装置の一例であるデジタルカメラの構成の一例を示したブロック図である。
図1において、撮像部101は、絞りと、シャッタと、撮像レンズ群と、C−MOSやCCD等の半導体撮像素子とを備える。撮影制御部102は、シャッタ駆動、絞り駆動、焦点駆動、及びズーム駆動等を制御する。
【0012】
A/D変換部103は、撮像部101から出力された映像信号を、デジタル画像データに変換して、画像処理部104に出力する。画像処理部104は、入力されたデジタル画像データに基づく輝度信号や色差信号を形成する等の処理を行うことにより、カラー画像データを生成する。
【0013】
画像表示部111は、画像処理部104で生成されたカラー画像データを、例えば、デジタルカメラ本体が備える液晶モニタに表示する。尚、画像処理部104で生成されたカラー画像データは、画像記録部112によって、例えばデジタルカメラ内部に設けられた記録媒体に記録される。
【0014】
以下に、画像データのダイナミックレンジを拡大するときの画像処理部104における処理の一例について説明する。
ダイナミックレンジを拡大した画像データを生成するためには、撮影制御部102によって撮影毎に露出(露光量や露出時間等の露光条件)を変化させて、短い間隔で複数回の撮影を行い、複数の画像データを得るようにする。このような撮影を行う方法としては、ブラケット撮影と呼ばれる方法が一般的である。
【0015】
このような撮影により得られた映像信号は、A/D変換部103でデジタル画像データに変換される。このデジタル画像データは、一旦メモリ部105に蓄えられる。メモリ部105に蓄えられたの複数のデジタル画像データは、手ぶれ等を原因とする相対的な位置のずれを伴っている。そこで、位置補正部109は、メモリ部105に蓄えられたの複数のデジタル画像データに対して、相対的な位置のずれを補正する。
【0016】
画像合成部110は、相対的な位置のずれが補正された複数のデジタル画像データにおける画素の選択を行い、複数のデジタル画像データの合成処理を行う。
位置ずれ検出部108は、位置補正部109が行う位置のずれの補正に必要な情報として、複数の画像データにおける相対的な位置のずれ量を検出する。複数のデジタル画像データにおける相対的な位置のずれ量を検出するにあたり、その検出の精度を上げるために行う2つの前処理が、領域抽出部106とレベル補正部107とで行われる処理である。
【0017】
領域抽出部106は、複数のデジタル画像データの中から適正なレンジを持つ共通領域を求める。これにより、複数のデジタル画像データにおける相対的な位置のずれ量を検出するときの誤判定を防ぐことができる。
レベル補正部107は、複数のデジタル画像データ間の共通領域における輝度レベルを合致させる。これにより、複数のデジタル画像データにおける相対的な位置のずれ量の検出精度を向上できる。
【0018】
図2は、画像処理部104における処理の概要の一例を説明するフローチャートである。
図2のステップS201において、メモリ部105は、A/D変換部103で得られた複数のデジタル画像データであって、露光条件が互いに異なる複数のデジタル画像データを入力して記憶する。
次に、ステップS202において、領域抽出部106は、メモリ部105に記憶された各デジタル画像データから、適正領域を検出する。適正領域とは、後述するように、デジタル画像データの画像領域のうち、黒つぶれや白とび等によって階調性が失われている領域を除いた領域をいう。
【0019】
次に、ステップS203において、領域抽出部106は、各デジタル画像データに共通する適正領域を検出する。尚、以下の説明では、各デジタル画像データに共通する適正領域を共通領域と称する。
次に、ステップS204において、レベル補正部107は、各デジタル画像データの共通領域における輝度レベルの補正処理を行う。
次に、ステップS205において、位置ずれ検出部108は、輝度レベルが補正された共通領域間における相対的な位置のずれ量を検出する。
尚、ステップS202〜S205の詳細については後述する。
【0020】
共通領域間における相対的な位置のずれ量が検出されると、ステップS206に進む。そして、位置補正部109は、ステップS205で検出されたずれ量に応じて、メモリ部105に一時的に記憶されたデジタル画像データ(元のデジタル画像データ)の位置を補正する。例えば、2枚のデジタル画像データがメモリ部105に記憶されている場合、2枚目のデジタル画像データの位置を補正して、2枚目のデジタル画像データの位置を、1枚目のデジタル画像データの位置に合わせてもよいし、その逆でも構わない。このようにして、メモリ部105に記憶されている複数のデジタル画像データの相対的な位置合わせがなされると、ステップS207において、画像合成部110は、それら複数のデジタル画像データの合成処理を行う。
【0021】
以下に、図2に示した各ステップの詳細な処理の一例を説明する。
図3は、図2のステップS202における処理(適正領域を抽出する処理)の一例を説明するフローチャートである。この処理は、デジタル画像データ毎に行われる。
露出がアンダーな状態(露光量が少ない状態)で撮影された画像には、黒つぶれと呼ばれる階調が再現できない領域(暗い領域)が生じる場合がある。この領域では、画像の特徴が失われている。従って、複数のデジタル画像データにおける相対的な位置のずれを、この領域を含めて検出すると、誤判定を引き起こす可能性がある。そこで、この領域を除外するため、ステップS301において、領域抽出部106は、入力したデジタル画像データの画素の値が、予め定められた閾値Tl以上であるか否かを判定する。
【0022】
この判定の結果、入力したデジタル画像データの画素の値が、予め定められた閾値Tlよりも小さければ、その画素を黒つぶれしている領域の画素と判断して、ステップS302に進む。そして、領域抽出部106は、その画素を、複数のデジタル画像データにおける相対的な位置のずれを検出する際に用いる画素から除外する。即ち、黒つぶれしている領域の画素は、位置ずれ検出部108での検出対象から除外する。
一方、入力したデジタル画像データの画素の値が、予め定められた閾値Tl以上であれば、ステップS303に進む。
【0023】
露出がオーバーな状態(露光量が多い状態)で撮影された画像には、白とびと呼ばれる階調が再現できない領域(明るい領域)が生じる場合がある。この領域では、画像の特徴が失われている。従って、複数のデジタル画像データにおける相対的な位置のずれを、この領域を含めて検出すると、誤判定を引き起こす可能性がある。そこで、この領域を除外するため、ステップS303において、領域抽出部106は、入力したデジタル画像データの画素の値が、予め定められた閾値Th以下であるか否かを判定する。この判定の結果、入力したデジタル画像データの画素の値が、予め定められた閾値Thよりも大きければ、その画素を白とびしている領域の画素と判断して、前述したステップS302に進む。そして、ステップS302において、領域抽出部106は、白とびしている領域の画素を、位置ずれ検出部108での検出対象から除外する。
【0024】
一方、入力したデジタル画像データの画素の値が、予め定められた閾値Th以上であれば、ステップS304に進む。そして、領域抽出部106は、ステップS303において値が閾値Th以上であると判定した画素を、複数のデジタル画像データにおける相対的な位置のずれを検出する際に用いる画素の候補とする。即ち、領域抽出部106は、入力したデジタル画像データの画素のうち、値が閾値Tl以上閾値Th以下の範囲内にある画素のみを、階調性を保持している適正領域の画素とし、その画素を位置ずれ検出部108での検出対象の候補とする。
【0025】
次に、ステップS305において、領域抽出部106は、入力したデジタル画像データの全ての画素に対する処理を終えたか否かを判定する。この判定の結果、入力したデジタル画像データの全ての画素に対する処理を終えていない場合には、入力したデジタル画像データの全ての画素についての処理が終了するまで、ステップS301〜S305の処理を繰り返し行う。そして、入力したデジタル画像データの全ての画素について処理が終わると、一画面分の適正領域が抽出される。そして、図2のフローチャートに戻る。
【0026】
図4は、図2のステップS203における処理(画素単位の共通領域の抽出処理)の一例を説明するフローチャートである。この処理は、適正領域を求めた画像間で行われる。尚、ここでは、説明を簡単にするために、2つのデジタル画像データ間での処理を行う場合を例に挙げて説明する。そして、以下の説明では、これら2つのデジタル画像データを、それぞれ第1の入力画像及び第2の入力画像と称する。
【0027】
まず、ステップS401において、領域抽出部106は、第1の入力画像の画素が適正領域内の画素であるか否かを判定する。この判定の結果、第1の入力画像の画素が適正領域内の画素でなければ、ステップS402に進む。そして、領域抽出部106は、その画素を、位置ずれ検出部108での検出対象から除外する。尚、以下の説明において、位置ずれ検出部108での検出対象から除外した画素を、必要に応じて除外画素と称する。
【0028】
一方、第1の入力画像の画素が適正領域内の画素であれば、ステップS403に進む。そして、領域抽出部106は、第2の入力画像の画素が適正領域内の画素であるか否かを判定する。ここで、領域抽出部106は、ステップS401で判定した第1の入力画像の画素と同一位置の画素を第2の入力画像から抽出し、抽出した画素が適正領域内の画素であるか否かを判定する。この判定の結果、第2の入力画像の画素が適正領域内の画素でなければ、ステップS402に進み、領域抽出部106は、その画素を、位置ずれ検出部108での検出対象から除外する。
【0029】
一方、第2の入力画像の画素が適正領域内の画素であれば、ステップS404に進む。そして、領域抽出部106は、ステップS401、S403で適正領域内にあると判定した2つの画素を共通領域の画素とし、それら2つの画素を、位置ずれ検出部108で検出対象とする。即ち、領域抽出部106は、第1の入力画像の画素と、第2の入力画像の画素との両方が、適正範囲の中にある画素である場合に限り、それらの画素を共通領域の画素とし、それら2つの画素を、位置ずれ検出部108での検出対象とする。尚、以下の説明において、位置ずれ検出部108での検出対象となる画素を、必要に応じて共通画素と称する。
【0030】
次に、ステップS405において、領域抽出部106は、第1の入力画像と第2の入力画像との全ての画素について処理を終えたか否かを判定する。この判定の結果、第1の入力画像と第2の入力画像との全ての画素について処理を終えていない場合には、第1の入力画像と第2の入力画像との全ての画素についての処理が終了するまで、ステップS401〜S405の処理を繰り返し行う。そして、第1の入力画像と第2の入力画像との全ての画素について処理が終わると、一組分の共通領域が抽出される。
【0031】
尚、例えば、3枚の画像を用いてダイナミックレンジの拡大を図る場合には、以下のようにすればよい。まず、1枚目の画像と2枚目の画像との間で図4の処理を行った後、2枚目の画像と3枚目の画像との間で図4の処理を行う。そして、3枚の画像の画素の全てが適正領域である場合に、それらの画素を共通領域の画素とする。
【0032】
図5は、図4に続く処理(ブロック単位の共通領域の抽出方法)の一例を説明するフローチャートである。図5に示す処理は、後述するようにして複数のデジタル画像データの位置のずれをブロック単位で検出する際に、その位置のずれの検出精度を向上させるための処理であり、図4で求めた共通領域よりも更に検出領域を狭める処理となる。
【0033】
まず、ステップS501において、領域抽出部106は、画面全体を一定の画素サイズのブロック(縦横1画素以上で構成されるブロック)に分割する。以下の処理は、このブロック単位での処理となる。
次に、ステップS502において、領域抽出部106は、ステップS501で分割したブロック内に、ステップS402で決定された除外画素があるか否かを判定する。この判定の結果、ステップS501で分割したブロック内に、ステップS402で決定された除外画素がある場合には、ステップS503に進む。そして、領域抽出部106は、そのブロックを、位置ずれ検出部108での検出対象から除外する。尚、以下の説明において、位置ずれ検出部108での検出対象から除外した画素を、必要に応じて除外ブロックと称する。
【0034】
一方、ステップS501で分割したブロック内に、ステップS402で決定された除外画素がない場合には、ステップS504に進む。そして、領域抽出部106は、ステップS502で除外画素がないと判定されたブロックに対して検出される動きベクトルのサーチ範囲内のブロック(後述する参照画像のブロック)に、除外画素があるか否かを判定する。この判定の結果、サーチ範囲内に除外画素がある場合には、ステップS503に進み、領域抽出部106は、それら複数のブロックを、位置ずれ検出部108での検出対象から除外する。
【0035】
一方、ステップS502で除外画素がないと判定されたブロックと、そのブロックに対して検出される動きベクトルのサーチ範囲内のブロックとに除外画素が無い場合には(ステップS504のNo)、ステップS505に進む。そして、領域抽出部106は、それら複数のブロックを、位置ずれ検出部108での検出対象とする。尚、以下の説明において、位置ずれ検出部108での検出に用いるブロックを、必要に応じて共通ブロックと称する。
【0036】
次に、ステップS506において、領域抽出部106は、ステップS501で分割した全てのブロックに対して処理を終えたか否かを判定する。この判定の結果、ステップS501で分割した全てのブロックに対して処理を終えていない場合には、処理を終えるまでステップS502〜506を繰り返し行う。そして、ステップS501で分割した全てのブロックに対してステップS502〜S506の処理が終わったところで、図2のフローチャートに戻る。
【0037】
図6は、図2のステップS204における処理(共通領域のレベル補正処理)の一例を説明するフローチャートである。尚、ここでも、説明を簡単にするために、2つのデジタル画像データ(第1及び第2の入力画像)間での処理を行う場合を例に挙げて説明する。
【0038】
複数のデジタル画像データの位置のずれの検出は、一般的に、位置のずれの検出対象である複数のデジタル画像データ間の相関値に基づいて行われる。しかしながら、位置のずれの検出対象である複数のデジタル画像データ間で輝度レベルが合致していないと、それら複数のデジタル画像データ間の相関値の算出精度を下げることになる。画像データのダイナミックレンジを拡大する場合には、互いに異なる露出で撮影された複数のデジタル画像データ間で位置ずれを検出するので、対応する画像間の輝度レベルは大きく異なっている。従って、輝度レベルの補正は、位置のずれの検出精度を高めるための重要な処理となる。本実施形態の特徴の1つは、共通ブロック間で輝度レベルを合わせた後に、それら共通ブロックに生じている位置のずれを検出することにある。
【0039】
まず、ステップS601において、レベル補正部107は、共通ブロック内における第1の入力画像の画素の平均値a1を算出する。
同様に、ステップS602において、レベル補正部107は、共通ブロック内における第2の入力画像の画素の平均値a2を算出する。
【0040】
次に、ステップS603において、レベル補正部107は、第1の入力画像のゲインr1を算出する。第1の入力画像のゲインr1と、平均値a1、a2との関係は、式(1)で表すことができる。
r1=(a1+a2)/(2×a1) ・・・ (1)
【0041】
同様に、ステップS604において、レベル補正部107は、第2の入力画像のゲインr2を算出する。第2の入力画像のゲインr2と、平均値a1、a2との関係は、式(2)で表すことができる。
r2=(a1+a2)/(2×a2) ・・・ (2)
【0042】
次に、ステップS605において、レベル補正部107は、第1の入力画像の各画素の画素値に、ゲインr1を乗じて輝度レベルの補正値を算出する。即ち、第1の入力画像の各画素の画素値に、ゲインr1を乗じた値が輝度レベルの補正値となる。
同様に、ステップS606において、レベル補正部107は、第2の入力画像の各画素の画素値に、ゲインr2を乗じて輝度レベルの補正値を算出する。即ち、第2の入力画像の各画素の画素値に、ゲインr2を乗じた値が輝度レベルの補正値となる。こうして、一連のレベル補正処理を終えると、図2のフローチャートに戻る。
【0043】
図7は、図2のステップS205における処理(位置ずれを検出処理)の一例を説明するフローチャートである。ここでは、ブロック毎に動きベクトルを求め、求めた動きベクトルを用いて、画面全体の動き量をアフィンパラメータとして求める方法を一例として説明する。
【0044】
ステップS801において、位置ずれ検出部108は、ブロック毎に動きベクトルを求めるための前処理として、有効ブロックの判定を行う。これは、正しい動きベクトルが求まらない可能性のあるブロックを除外する処理である。詳細は後述する。
次に、ステップS802において、位置ずれ検出部108は、ブロックの動きベクトルを算出する。ここでは、一般的なブロックマッチング法を用いてブロックの動きベクトルを算出する場合を例に挙げて説明する。
【0045】
ブロックマッチング法では、マッチングの評価値としてブロック内の画素間の差分二乗和又は差分絶対値和を用いる。動きベクトルを求める対象ブロックにおける参照画像内のブロックを参照画像のサーチ範囲内で順次動かしなら評価値を求めていく。サーチ範囲内で求めた全ての評価値の中から最小の評価値を持つ位置(参照画像のブロック)が、対象ブロックと最も相関の高い位置(ブロック)となる。そして、対象ブロックと、その対象ブロックと最も相関の高いブロックとの移動量が動きベクトルとなる。ここで、サーチ範囲内で1画素ずつ評価値を求めていく方法をフルサーチと呼ぶ。これに対し、サーチ範囲内の間引かれた画素の中から最小の評価値を求め、求めた最小の評価値を有する画素の近傍の画素に対して細かくサーチする方法を、ステップサーチと呼ぶ。ステップサーチは高速に動きベクトルを求める方法としてよく知られている。
【0046】
次に、ステップS803において、位置ずれ検出部108は、有効動きベクトルの判定を行う。これは、求めた動きベクトルのうち、算出結果が正しくないと判断されるものを除外する処理である。詳細は後述する。
次に、ステップS804において、位置ずれ検出部108は、全てのブロックに対して処理を終えたか否かを判定する。この判定の結果、全てのブロックに対して処理を終えていない場合には、処理を終えるまでステップS801〜S804の処理を繰り返し行う。そして、全てのブロックに対して処理を終えると、ステップS805に進む。そして、位置ずれ検出部108は、ステップS803で得られた有効な動きベクトルを用いて、アフィンパラメータを検出する。
【0047】
図8は、アフィンパラメータの検出を説明するための図である。
図8に示すように、対象ブロックの中心座標が、(x,y)であるとする。そして、有効な動きベクトルの算出結果から、対象ブロックの中心座標(x,y)が、参照画像におけるブロックの中心座標(x',y')に移動したとすると、これらの関係は,式(3)のように表すことができる。
【0048】
【数1】
【0049】
ここで、式(3)の右辺における3×3の行列がアフィン変換行列である。このアフィン変換行列の各要素がアフィンパラメータである。アフィンパラメータa、b、d、eがそれぞれ1、0、0、1(a=1,b=0,d=0,e=1)のとき、この変換は平行移動となる。このとき、アフィンパラメータcが水平方向の移動量となり、アフィンパラメータfが垂直方向の移動量となる。また、回転角をθとすると、回転移動は、式(4)〜(7)のように表すことができる。
【0050】
a=cosθ ・・・(4)
b=−sinθ ・・・(5)
d=sinθ ・・・(6)
e=cosθ ・・・(7)
【0051】
また、式(3)は、一般化した行列の形式で、式(8)のように表現することができる。
x'=A・x ・・・(8)
ここで、xとx'は1×3の行列、Aは3×3の行列である。有効な動きベクトルがn個であった場合、対象画像の座標値は、式(9)のようにn×3の行列で表現できる。
X=(x1x2・・・xn) ・・・(9)
【0052】
同様に、移動後の座標値も式(10)のようにn×3の行列で表現できる。
X'=(x1'x2'・・・xn') ・・・(10)
よって、n個の動きベクトルに対しては、式(11)のような表現となる。
X'=A・X ・・・(11)
【0053】
即ち、式(11)におけるアフィン変換行列Aを求めれば、それが画面全体の位置ずれ量になる。式(11)を変形すると、アフィン変換行列Aは式(12)のようにして求まる。
A=X'・XT・(X・XT)-1 ・・・(12)
【0054】
以上のように、複数のデジタル画像データの位置のずれを求める場合には、アフィンパラメータを用いて、複数のデジタル画像データの動き量を表現できる。このため、デジタルカメラを保持しているときに起こるシフトぶれによる動き量以外にも、面内方向で生じるロールぶれや前後方向で生じるズームぶれ等による動き量を求めることが可能である。
【0055】
ここで、図9のフローチャートを参照しながら、図7のステップS801における処理(有効ブロックの判定処理)の一例を説明する。
ブロックマッチング法によりブロック間の相関を求めようとする場合、ブロック内の画像が何らかの特徴量を持っている必要がある。平坦で殆ど直流成分しか含んでいないブロックでは正しい動きベクトルを求めることはできない。逆に水平方向や垂直方向にエッジを含んでいると、マッチングがとり易くなると考えられる。図9に示す処理は、このような平坦部のブロックを除外するための処理の一例である。尚、ここでは、説明を簡単にするために、1つのブロックに対して処理を行う場合を例に挙げて説明する。
【0056】
まず、ステップS901において、位置ずれ検出部108は、ブロック内の水平方向の1つのラインにおける画素値の最大値と最小値との差分値を算出する。例えば、ブロックのサイズが50×50の画素で構成されているとすると、ブロック内の水平方向の50個の画素から最大値と最小値とを求め、その最大値と最小値との差分値を算出する。
【0057】
次に、ステップS902において、位置ずれ検出部108は、ブロックの全ての水平ラインに対して、ステップS901の算出を行ったか否かを判定する。前述した例では、ステップS901の算出を、水平ライン数分、即ち50回繰り返し行ったか否かを判定する。この判定の結果、ブロックの全ての水平ラインに対して、ステップS901の算出を行っていない場合には、ブロックの全ての水平ラインに対して、ステップS901の算出を行うまでステップS901、S902を繰り返し行う。
【0058】
そして、ブロックの全ての水平ラインに対して、ステップS901の算出を行うと、ステップS903に進む。そして、位置ずれ検出部108は、ステップS901で算出した差分値の中から最大の差分値を求める。前述した例では、50個の差分値の中から最大の差分値を求める。
【0059】
次に、ステップS904において、位置ずれ検出部108は、予め設定された閾値Txよりも、ステップS903で求めた最大の差分値が大きいか否かを判定する。この判定の結果、予め設定された閾値Txよりも、ステップS903で求めた最大の差分値が大きくなければ、位置ずれ検出部108は、処理対象のブロックが、水平方向には特徴量を持たないブロックであるとみなしてステップS905に進む。そして、位置ずれ検出部108は、処理対象のブロックを無効ブロックと判定する。
【0060】
一方、予め設定された閾値Txよりも、ステップS903で求めた最大の差分値が大きければ、位置ずれ検出部108は、処理対象のブロックが、水平方向に特徴量を持つブロックであるとみなして、垂直方向で水平方向と同様の検証を行う。
まず、ステップS906において、位置ずれ検出部108は、ブロック内の垂直方向の1つのラインにおける画素値の最大値と最小値との差分値を算出する。前述した例では、ブロック内の垂直方向の50個の画素から最大値と最小値とを求め、その最大値と最小値との差分値を算出する。
【0061】
次に、ステップS907において、位置ずれ検出部108は、ブロックの全ての垂直ラインに対して、ステップS906の算出を行ったか否かを判定する。前述した例では、ステップS906の算出を、垂直ライン数分、即ち50回繰り返し行ったか否かを判定する。この判定の結果、ブロックの全ての垂直ラインに対して、ステップS906の算出を行っていない場合には、ブロックの全ての垂直ラインに対して、ステップS906の算出を行うまでステップS906、S907を繰り返し行う。
【0062】
そして、ブロックの全ての垂直ラインに対して、ステップS906の算出を行うと、ステップS908に進む。そして、位置ずれ検出部108は、ステップS906で算出した差分値の中から最大の差分値を求める。前述した例では、50個の差分値の中から最大の差分値を求める。
【0063】
次に、ステップS909において、位置ずれ検出部108は、予め設定された閾値Tyよりも、ステップS908で求めた最大の差分値が大きいか否かを判定する。この判定の結果、予め設定された閾値Tyよりも、ステップS908で求めた最大の差分値が大きくなければ、位置ずれ検出部108は、処理対象のブロックが、垂直方向には特徴量を持たないブロックであるとみなしてステップS905に進む。そして、前述したように、位置ずれ検出部108は、処理対象のブロックを無効ブロックと判定する。
【0064】
一方、予め設定された閾値Tyよりも、ステップS908で求めた最大の差分値が大きければ、位置ずれ検出部108は、処理対象のブロックが、垂直方向及び水平方向の両方向に特徴量を持つブロックであるとみなす。この場合、正確なブロックマッチングを行えることが期待できる。そこで、ステップS910に進み、位置ずれ検出部108は、処理対象のブロックを有効ブロックと判定する。
【0065】
次に、図10のフローチャートを参照しながら、図7のステップS803における処理(有効動きベクトルの判定処理)の一例を説明する。
まず、ステップS1001において、位置ずれ検出部108は、図7のステップS802で検出した動きベクトルを入力する。そうすると、ステップS1002において、位置ずれ検出部108は、その動きベクトルの発生頻度を算出する。
【0066】
次に、ステップS1003において、位置ずれ検出部108は、図7のステップS802で検出した全ての動きベクトルの発生頻度を求め終えたか否かを判定する。この判定の結果、図7のステップS802で検出した全ての動きベクトルの発生頻度を求め終えていない場合には、求め終えるまでステップS1001〜S1003を繰り返し行う。そして、図7のステップS802で検出した全ての動きベクトルの発生頻度を求め終えると、ステップS1004に進む。そして、位置ずれ検出部108は、ステップS1002で求めた動きベクトルの発生頻度に基づいて、最大発生頻度の動きベクトルを求める。
【0067】
次に、ステップS1005において、位置ずれ検出部108は、図7のステップS802で検出した動きベクトルを再度入力する。そして、ステップS1006において、位置ずれ検出部108は、再度入力した動きベクトルが最大発生頻度の動きベクトル、又はその動きベクトルの近傍の動きベクトルであるか否かを判定する。画面全体のぶれが、前述したシフトぶれのみである場合、各ブロックの動きベクトルは、最大発生頻度の動きベクトルに略一致すると考えられる。また、前述したロールぶれを伴う場合には、最大発生頻度の動きベクトルの近傍に多くの動きベクトルが発生すると考えられる。
【0068】
従って、ステップS1006の判定の結果、再度入力した動きベクトルが、最大発生頻度の動きベクトル、又はその動きベクトルの近傍の動きベクトルである場合には、ステップS1007に進む。そして、位置ずれ検出部108は、その動きベクトルを有効動きベクトルと判定する。
一方、再度入力した動きベクトルが、最大発生頻度の動きベクトル、又はその動きベクトルの近傍の動きベクトルでない場合には、ステップS1008に進む。そして、位置ずれ検出部108は、その動きベクトルを無効動きベクトルと判定する。
【0069】
次に、ステップS1009において、位置ずれ検出部108は、図7のステップS802で検出した全ての動きベクトルに対して処理が終わったか否かを判定する。この判定の結果、図7のステップS802で検出した全ての動きベクトルに対して処理が終わっていなければ、終わるまでステップS1005〜S1009を繰り返し行う。
【0070】
図11は、図2のステップS207で行われる画像データの合成処理の一例を説明する図である。画像データの合成は、画素値(画素レベル)がある閾値以下の場合には、低輝度側のデジタル画像データを用い、閾値より大きい場合には、高輝度側のデジタル画像データを用いるというのが基本である。しかしながら実際には、設定された閾値が低輝度側と高輝度側との間の不連続点となってしまうのを避けるための処理を行う。ここでは、低輝度側と高輝度側とが共通に持つ値の範囲内で、2つの閾値Ta、Tbを設定している。本実施形態の画像合成部110は、これら2つの閾値Ta、Tbを用いて画素値(画素レベル)を判定することにより、低輝度側から高輝度側へのデジタル画像データの混合比が1から0へ順次(徐々に)変化するように画像データの合成処理を行う。
【0071】
以上のように本実施形態では、領域抽出部106は、複数のデジタル画像データの画素の中から、黒つぶれや白とび等によって階調性が失われた領域の画素を除いた画素を適正画素とする。そして、領域抽出部106は、複数のデジタル画像データの同一位置の画素であって、共に適正画素である画素を共通画素とし、そうでない画素を除外画素とする。更に領域抽出部106は、複数のデジタル画像データの画面全体をブロック化する。領域抽出部106は、動きベクトルの検出対象のブロックと、そのブロックに対する参照画像のブロックとの双方に除外画素が含まれていなければ、それらのブロックを共通ブロックとする。レベル補正部107は、共通ブロック内における画素値(輝度レベル)の平均値a1、a2を求め、求めた平均値a1、a2を用いて、共通ブロックの輝度レベルを合わせる。位置ずれ検出部108は、輝度レベルが合った共通ブロックを用いて位置のずれを検出し、位置補正部109は、その位置のずれ量に応じて、複数のデジタル画像データの位置を補正する。
【0072】
以上のように、互いに輝度レベルを合わせた共通ブロックを用いて動きベクトルを検出することによって、複数のデジタル画像データの位置のずれを検出する。そして、検出したずれの量に応じて、複数のデジタル画像データの位置を合わせてから、複数のデジタル画像データを合成する。従って、ダイナミックレンジの大きな画像データを生成する際に行う複数のデジタル画像データの位置合わせを従来よりも精度よく行うことが可能となる。
【0073】
また、本実施形態では、水平方向又は垂直方向に特徴量を持たないブロックを処理対象から除外するようにした。また、シフトぶれによる動き量、面内方向で生じるロールぶれ、又は前後方向で生じるズームぶれに起因すると推定される動きベクトルだけを用いて、複数のデジタル画像データの位置のずれを検出するようにした。従って、複数のデジタル画像データの位置合わせの精度をより向上させることが可能になる。
【0074】
(第2の実施形態)
次に、本発明の第2実施形態について説明する。前述した第1の実施形態では、共通ブロック内における画素値の平均値a1、a2を求め、求めた平均値a1、a2を用いて、共通ブロックの輝度レベルを合わせるようにした。これに対し、本実施形態では、撮像制御部102で得られた撮像情報を利用して、共通ブロックの輝度レベルを合わせるようにする。このように、本実施形態と前述した第1の実施形態とは、共通ブロックの輝度レベルを合わせるための処理の一部が主として異なる。従って、以下の説明において、前述した第1の実施形態と同一の部分については、図1〜図11に付した符号と同一の符号を付す等して詳細な説明を省略する。
【0075】
図12は、本実施形態における撮像装置の一例であるデジタルカメラの構成の一例を示したブロック図である。
図12に示すデジタルカメラと、図1に示した第1の実施形態のデジタルカメラとの違いは、画像処理部1201内のレベル補正部1202の処理において、撮影制御部102で得られる撮像情報を利用することにある。図13のフローチャートを参照しながら、本実施形態のレベル補正部1202の処理(図2のステップS204における処理(共通領域のレベル補正処理))の一例を説明する。尚、ここでは、説明を簡単にするために、2つのデジタル画像データ(第1及び第2の入力画像)間での処理を行う場合を例に挙げて説明する。
【0076】
撮影制御部102で得られる撮影情報は、具体的には、適正露出からどれだけアンダー又はオーバーの露出で撮影したかという情報である。この情報を用いることで、第1の実施形態の図6で説明した平均値の演算を行うことなく、輝度レベルの補正が可能となる。
まず、ステップS701において、レベル補正部1202は、第1の入力画像の撮影情報を取得する。
同様に、ステップS702において、レベル補正部1202は、第2の入力画像の撮影情報を取得する。
【0077】
次に、ステップS703において、レベル補正部1202は、第1の入力画像の撮影情報を用いて、第1の入力画像のゲインr1を算出する。例えば、第1の入力画像が1段アンダーで撮影されたとすると、第1の入力画像を得た際の露出時間は本来の半分ということになる。従って、適正な明るさにするためのゲインr1は「2」となる。
同様に、ステップS704において、レベル補正部1202は、第2の入力画像の撮影情報を用いて、第2の入力画像のゲインr2を算出する。例えば、第2の入力画像が1段オーバーで撮影されたとすると、第2の入力画像を得た際の露出時間は本来の2倍ということになる。従って、適正な明るさにするためのゲインr2は「1/2」となる。
【0078】
次に、ステップS705において、レベル補正部1202は、第1の入力画像の各画素の画素値に、ゲインr1を乗じて輝度レベルの補正値を算出する。即ち、第1の入力画像の各画素に、ゲインr1を乗じた値が輝度レベルの補正値となる。
同様に、ステップS706において、レベル補正部1202は、第2の入力画像の各画素の画素値に、ゲインr2を乗じて輝度レベルの補正値を算出する。即ち、第2の入力画像の各画素に、ゲインr2を乗じた値が輝度レベルの補正値となる。こうして、一連のレベル補正処理を終え、図2のフローチャートに戻る。
【0079】
以上のように本実施形態では、適正露出からのずれに関する撮像情報を用いて、共通ブロックの輝度レベルを合わせるようにした。従って、第1の実施形態のように、平均値a1、a2の演算を行う処理を省略できる。よって、本実施形態では、前述した第1の実施形態で説明した効果に加えて、複数のデジタル画像データの位置合わせを容易に行うことができるという効果を有する。
【0080】
尚、撮像装置(デジタルカメラ)内で前述した処理を行う場合には、撮像制御部102から撮像情報を得ることになる。ただし、PCのアプリケーションソフトウェアで後から処理する場合には、画像ファイル内に記録されている付加情報の中から、撮像情報を得て前述した処理と同様の処理をPC等で行うことになる。
【0081】
図14は、前述した第1及び第2の実施形態で説明した処理を実行可能なコンピュータのハードウェアの構成の一例を示す図である。尚、このコンピュータは、例えば、撮像装置とインタフェースを介して相互に接続可能であり、撮像装置で撮像された映像信号を入力して、前述した第1及び第2の実施形態で説明した処理を実行する。
【0082】
図14において、バス2001には、中央処理装置(CPU)2002、ROM2003、RAM2004、ネットワークインタフェース2005、入力装置2006、出力装置2007及び外部記憶装置2008が接続されている。CPU2002は、データの処理又は演算を行うと共に、バス2001を介して接続された各種構成要素を制御するものである。ROM2003には、予めCPU2002の制御手順(コンピュータプログラム)を記憶させておく。このコンピュータプログラムをCPU2002が実行することにより、コンピュータが起動する。
【0083】
外部記憶装置2008にコンピュータプログラムが記憶されており、そのコンピュータプログラムがRAM2004にコピーされて実行される。RAM2004は、データの入出力や送受信のためのワークメモリとして用いられたり、各構成要素の制御のための一時的な記憶領域として用いられたりする。
【0084】
外部記憶装置2008は、例えばハードディスク記憶装置やCD−ROM等であり、画像データ等を記憶する。電源を切っても外部記憶装置2008の記憶内容は消えない。CPU2002は、RAM2004内のコンピュータプログラムを実行することにより、前述した実施形態の処理を行う。ネットワークインタフェース2005は、ネットワークに接続するためのインタフェースである。入力装置2006は、例えばキーボード及びマウス等であり、各種指定又は入力等を行うことができる。出力装置2007は、ディスプレイ及びプリンタ等である。
【0085】
(本発明の他の実施形態)
前述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置あるいはシステム内のコンピュータに対し、前記実施形態の機能を実現するためのソフトウェアのプログラムコードを供給してもよい。そのシステムあるいは装置のコンピュータ(CPUあるいはMPU)に格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
【0086】
また、この場合、前記ソフトウェアのプログラムコード自体が前述した実施形態の機能を実現することになる。また、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、例えば、かかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
【0087】
また、コンピュータが供給されたプログラムコードを実行することにより、前述の実施形態の機能が実現されるだけでない。そのプログラムコードがコンピュータにおいて稼働しているオペレーティングシステムあるいは他のアプリケーションソフト等と共同して前述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
【0088】
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードに備わるCPUが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
また、供給されたプログラムコードがコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいて機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
【0089】
前述した各実施形態における処理の内容を前記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【0090】
尚、前述した各実施形態は、複数の機器(例えば、ホストコンピュータ、インタフェース機器、リーダ、プリンタ等)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置等)に適用してもよい。
【0091】
また、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【0092】
【図1】本発明の第1の実施形態を示し、デジタルカメラの構成の一例を示したブロック図である。
【図2】本発明の第1の実施形態を示し、画像処理部における処理の概要の一例を説明するフローチャートである。
【図3】本発明の第1の実施形態を示し、図2のステップS202における処理(適正領域を抽出する処理)の一例を説明するフローチャートである。
【図4】本発明の第1の実施形態を示し、図2のステップS203における処理(画素単位の共通領域の抽出処理)の一例を説明するフローチャートである。
【図5】本発明の第1の実施形態を示し、図4に続く処理(ブロック単位の共通領域の抽出方法)の一例を説明するフローチャートである。
【図6】本発明の第1の実施形態を示し、図2のステップS204における処理(共通領域のレベル補正処理)の一例を説明するフローチャートである。
【図7】本発明の第1の実施形態を示し、図2のステップS205における処理(位置ずれを検出処理)の一例を説明するフローチャートである。
【図8】本発明の第1の実施形態を示し、アフィンパラメータの検出を説明するための図である。
【図9】本発明の第1の実施形態を示し、図7のステップS801における処理(有効ブロックの判定処理)の一例を説明するフローチャートである。
【図10】本発明の第1の実施形態を示し、図7のステップS803における処理(有効動きベクトルの判定処理)の一例を説明するフローチャートである。
【図11】本発明の第1の実施形態を示し、図2のステップS207で行われる画像データの合成処理の一例を説明する図である。
【図12】本発明の第2の実施形態を示し、デジタルカメラの構成の一例を示したブロック図である。
【図13】本発明の第2の実施形態を示し、レベル補正部の処理(図2のステップS204における処理(共通領域のレベル補正処理))の一例を説明するフローチャートである。
【図14】本発明の実施形態を示し、コンピュータのハードウェアの構成の一例を示す図である。
【符号の説明】
【0093】
101 撮像部
102 撮像制御部
103 A/D変換部
104、1201 画像処理部
105 メモリ部
106 領域抽出部
107、1202 レベル補正部
108 位置ずれ検出部
109 位置補正部
110 画像合成部
111 画像表示部
112 画像記録部
【特許請求の範囲】
【請求項1】
異なる露光条件で撮像された同一被写体の複数の画像データを、階調性を保持している適正領域と、階調性を失っている不適正領域とに分類する分類手段と、
前記複数の画像データの適正領域から、前記複数の画像データに共通の適正領域を抽出する抽出手段と、
前記抽出手段により抽出された共通の適正領域の輝度レベルを、前記複数の画像データ毎に補正する輝度レベル補正手段と、
前記輝度レベル補正手段により輝度レベルが補正された複数の画像データ間における位置のずれを検出する検出手段と、
前記抽出手段により抽出された共通の適正領域間における位置のずれに基づいて、前記複数の画像データの位置を補正する位置補正手段と、
前記位置補正手段により位置が補正された複数の画像データに基づいて、合成画像データを生成する生成手段とを備えることを特徴とする画像処理装置。
【請求項2】
前記輝度レベル補正手段は、前記抽出手段により抽出された共通の適正領域の画素値の平均値を、前記複数の画像データ毎に算出する平均値算出手段と、
前記平均値算出手段により算出された平均値に基づいて、前記複数の画像データのそれぞれに対する補正係数を算出する補正係数算出手段と、
前記補正係数算出手段により算出された補正係数を、前記複数の画像データの画素値に乗じる乗算手段とを備えることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記輝度レベル補正手段は、前記複数の画像データの撮像時に設定された露光条件に関する情報に基づいて、前記複数の画像データのそれぞれに対する補正係数を算出する補正係数算出手段と、
前記補正係数算出手段により算出された補正係数を、前記複数の画像データの画素値に乗じる乗算手段とを備えることを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記抽出手段は、前記複数の画像データの同一位置における画素が共に適正であるときに、その画素を共通の適正画素として抽出することを特徴とする請求項1〜3の何れか1項に記載の画像処理装置。
【請求項5】
前記抽出手段は、前記複数の画像データの画面全体を縦横1画素以上で構成されるブロックに分割する分割手段と、
前記分割手段により分割されたブロック内の画素が全て前記共通の適正画素であるときに、そのブロックを共通の適正画素領域として抽出することを特徴とする請求項4に記載の画像処理装置。
【請求項6】
前記検出手段は、前記分割手段により分割されたブロックを用いて動きベクトルを検出する動きベクトル検出手段を備え、
前記抽出手段は、前記動きベクトルの検出対象となるブロックの画素と、そのブロックに対する動きベクトルの検索範囲内にあるブロックの画素との全てが前記共通の適正画素であるときに、そのブロックを共通の適正画素領域として抽出することを特徴とする請求項5に記載の画像処理装置。
【請求項7】
前記検出手段は、前記分割手段により分割された各ブロックが、有効なブロックであるか否かを判定する有効ブロック判定手段と、
前記動きベクトル検出手段により検出された動きベクトルが、有効な動きベクトルであるか否かを判定する有効動きベクトル判定手段と、
前記有効動きベクトル判定手段により有効な動きベクトルであると判定された動きベクトルに基づいて、前記複数の画像データの動き量を算出する動き量算出手段とを備え、
前記動きベクトル検出手段は、前記有効ブロック判定手段により有効なブロックであると判定されたブロックを用いて動きベクトルを検出することを特徴とする請求項6に記載の画像処理装置。
【請求項8】
前記動き量算出手段は、前記有効動きベクトル判定手段により有効な動きベクトルであると判定された動きベクトルに基づいて、前記複数の画像データの動き量を示すアフィンパラメータを算出し、
前記位置補正手段は、前記動き量算出手段により算出されたアフィンパラメータを用いた変換により、前記複数の画像データに生じた相対的なずれ量を補正することを特徴とする請求項7に記載の画像処理装置。
【請求項9】
撮像手段と、
前記撮像手段によって異なる露光条件で撮像された同一被写体の複数の画像データを一時的に記憶する記憶手段と、
前記記憶手段に記憶された複数の画像データを、階調性を保持している適正領域と、階調性を失っている不適正領域とに分類する分類手段と、
前記複数の画像データの適正領域から、前記複数の画像データに共通の適正領域を抽出する抽出手段と、
前記抽出手段により抽出された共通の適正領域の輝度レベルを、前記複数の画像データ毎に補正する輝度レベル補正手段と、
前記輝度レベル補正手段により輝度レベルが補正された複数の画像データ間における位置のずれを検出する検出手段と、
前記抽出手段により抽出された共通の適正領域間における位置のずれに基づいて、前記複数の画像データの位置を補正する位置補正手段と、
前記位置補正手段により位置が補正された複数の画像データに基づいて、合成画像データを生成する生成手段とを備えることを特徴とする撮像装置。
【請求項10】
異なる露光条件で撮像された同一被写体の複数の画像データを、階調性を保持している適正領域と、階調性を失っている不適正領域とに分類する分類ステップと、
前記複数の画像データの適正領域から、前記複数の画像データに共通の適正領域を抽出する抽出ステップと、
前記抽出ステップにより抽出された共通の適正領域の輝度レベルを、前記複数の画像データ毎に補正する輝度レベル補正ステップと、
前記輝度レベル補正ステップにより輝度レベルが補正された複数の画像データ間における位置のずれを検出する検出ステップと、
前記抽出ステップにより抽出された共通の適正領域間における位置のずれに基づいて、前記複数の画像データの位置を補正する位置補正ステップと、
前記位置補正ステップにより位置が補正された複数の画像データに基づいて、合成画像データを生成する生成ステップとを有することを特徴とする画像処理方法。
【請求項11】
異なる露光条件で撮像された同一被写体の複数の画像データを、階調性を保持している適正領域と、階調性を失っている不適正領域とに分類する分類ステップと、
前記複数の画像データの適正領域から、前記複数の画像データに共通の適正領域を抽出する抽出ステップと、
前記抽出ステップにより抽出された共通の適正領域の輝度レベルを、前記複数の画像データ毎に補正する輝度レベル補正ステップと、
前記輝度レベル補正ステップにより輝度レベルが補正された複数の画像データ間における位置のずれを検出する検出ステップと、
前記抽出ステップにより抽出された共通の適正領域間における位置のずれに基づいて、前記複数の画像データの位置を補正する位置補正ステップと、
前記位置補正ステップにより位置が補正された複数の画像データに基づいて、合成画像データを生成する生成ステップとをコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項12】
前記請求項11に記載のコンピュータプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【請求項1】
異なる露光条件で撮像された同一被写体の複数の画像データを、階調性を保持している適正領域と、階調性を失っている不適正領域とに分類する分類手段と、
前記複数の画像データの適正領域から、前記複数の画像データに共通の適正領域を抽出する抽出手段と、
前記抽出手段により抽出された共通の適正領域の輝度レベルを、前記複数の画像データ毎に補正する輝度レベル補正手段と、
前記輝度レベル補正手段により輝度レベルが補正された複数の画像データ間における位置のずれを検出する検出手段と、
前記抽出手段により抽出された共通の適正領域間における位置のずれに基づいて、前記複数の画像データの位置を補正する位置補正手段と、
前記位置補正手段により位置が補正された複数の画像データに基づいて、合成画像データを生成する生成手段とを備えることを特徴とする画像処理装置。
【請求項2】
前記輝度レベル補正手段は、前記抽出手段により抽出された共通の適正領域の画素値の平均値を、前記複数の画像データ毎に算出する平均値算出手段と、
前記平均値算出手段により算出された平均値に基づいて、前記複数の画像データのそれぞれに対する補正係数を算出する補正係数算出手段と、
前記補正係数算出手段により算出された補正係数を、前記複数の画像データの画素値に乗じる乗算手段とを備えることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記輝度レベル補正手段は、前記複数の画像データの撮像時に設定された露光条件に関する情報に基づいて、前記複数の画像データのそれぞれに対する補正係数を算出する補正係数算出手段と、
前記補正係数算出手段により算出された補正係数を、前記複数の画像データの画素値に乗じる乗算手段とを備えることを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記抽出手段は、前記複数の画像データの同一位置における画素が共に適正であるときに、その画素を共通の適正画素として抽出することを特徴とする請求項1〜3の何れか1項に記載の画像処理装置。
【請求項5】
前記抽出手段は、前記複数の画像データの画面全体を縦横1画素以上で構成されるブロックに分割する分割手段と、
前記分割手段により分割されたブロック内の画素が全て前記共通の適正画素であるときに、そのブロックを共通の適正画素領域として抽出することを特徴とする請求項4に記載の画像処理装置。
【請求項6】
前記検出手段は、前記分割手段により分割されたブロックを用いて動きベクトルを検出する動きベクトル検出手段を備え、
前記抽出手段は、前記動きベクトルの検出対象となるブロックの画素と、そのブロックに対する動きベクトルの検索範囲内にあるブロックの画素との全てが前記共通の適正画素であるときに、そのブロックを共通の適正画素領域として抽出することを特徴とする請求項5に記載の画像処理装置。
【請求項7】
前記検出手段は、前記分割手段により分割された各ブロックが、有効なブロックであるか否かを判定する有効ブロック判定手段と、
前記動きベクトル検出手段により検出された動きベクトルが、有効な動きベクトルであるか否かを判定する有効動きベクトル判定手段と、
前記有効動きベクトル判定手段により有効な動きベクトルであると判定された動きベクトルに基づいて、前記複数の画像データの動き量を算出する動き量算出手段とを備え、
前記動きベクトル検出手段は、前記有効ブロック判定手段により有効なブロックであると判定されたブロックを用いて動きベクトルを検出することを特徴とする請求項6に記載の画像処理装置。
【請求項8】
前記動き量算出手段は、前記有効動きベクトル判定手段により有効な動きベクトルであると判定された動きベクトルに基づいて、前記複数の画像データの動き量を示すアフィンパラメータを算出し、
前記位置補正手段は、前記動き量算出手段により算出されたアフィンパラメータを用いた変換により、前記複数の画像データに生じた相対的なずれ量を補正することを特徴とする請求項7に記載の画像処理装置。
【請求項9】
撮像手段と、
前記撮像手段によって異なる露光条件で撮像された同一被写体の複数の画像データを一時的に記憶する記憶手段と、
前記記憶手段に記憶された複数の画像データを、階調性を保持している適正領域と、階調性を失っている不適正領域とに分類する分類手段と、
前記複数の画像データの適正領域から、前記複数の画像データに共通の適正領域を抽出する抽出手段と、
前記抽出手段により抽出された共通の適正領域の輝度レベルを、前記複数の画像データ毎に補正する輝度レベル補正手段と、
前記輝度レベル補正手段により輝度レベルが補正された複数の画像データ間における位置のずれを検出する検出手段と、
前記抽出手段により抽出された共通の適正領域間における位置のずれに基づいて、前記複数の画像データの位置を補正する位置補正手段と、
前記位置補正手段により位置が補正された複数の画像データに基づいて、合成画像データを生成する生成手段とを備えることを特徴とする撮像装置。
【請求項10】
異なる露光条件で撮像された同一被写体の複数の画像データを、階調性を保持している適正領域と、階調性を失っている不適正領域とに分類する分類ステップと、
前記複数の画像データの適正領域から、前記複数の画像データに共通の適正領域を抽出する抽出ステップと、
前記抽出ステップにより抽出された共通の適正領域の輝度レベルを、前記複数の画像データ毎に補正する輝度レベル補正ステップと、
前記輝度レベル補正ステップにより輝度レベルが補正された複数の画像データ間における位置のずれを検出する検出ステップと、
前記抽出ステップにより抽出された共通の適正領域間における位置のずれに基づいて、前記複数の画像データの位置を補正する位置補正ステップと、
前記位置補正ステップにより位置が補正された複数の画像データに基づいて、合成画像データを生成する生成ステップとを有することを特徴とする画像処理方法。
【請求項11】
異なる露光条件で撮像された同一被写体の複数の画像データを、階調性を保持している適正領域と、階調性を失っている不適正領域とに分類する分類ステップと、
前記複数の画像データの適正領域から、前記複数の画像データに共通の適正領域を抽出する抽出ステップと、
前記抽出ステップにより抽出された共通の適正領域の輝度レベルを、前記複数の画像データ毎に補正する輝度レベル補正ステップと、
前記輝度レベル補正ステップにより輝度レベルが補正された複数の画像データ間における位置のずれを検出する検出ステップと、
前記抽出ステップにより抽出された共通の適正領域間における位置のずれに基づいて、前記複数の画像データの位置を補正する位置補正ステップと、
前記位置補正ステップにより位置が補正された複数の画像データに基づいて、合成画像データを生成する生成ステップとをコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項12】
前記請求項11に記載のコンピュータプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2008−118555(P2008−118555A)
【公開日】平成20年5月22日(2008.5.22)
【国際特許分類】
【出願番号】特願2006−301930(P2006−301930)
【出願日】平成18年11月7日(2006.11.7)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成20年5月22日(2008.5.22)
【国際特許分類】
【出願日】平成18年11月7日(2006.11.7)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]