(57)【特許請求の範囲】
【請求項１】
少なくとも２枚の入力画像データに対して画像処理を行う画像処理装置であって、
前記入力画像データ間の複数の領域における位置ズレ量を検出する検出手段と、
少なくとも２枚の前記入力画像データを合成する際の合成比率を複数の領域において設定する設定手段と、
前記検出手段により検出された位置ズレ量と前記設定手段により設定された合成比率から補正量を算出し、前記入力画像データに前記補正量を用いて前記入力画像データ間の位置ズレを補正する補正手段と、
位置ズレが補正された前記入力画像データを前記合成比率で領域ごとに合成する合成手段と、を備え、
前記補正手段は、少なくとも２枚の前記入力画像データを加重加算する領域の位置ズレの補正を優先させて算出された補正量で前記位置ズレの補正を行うことを特徴とする画像処理装置。
【請求項２】
前記入力画像データは、互いに異なる露光条件で撮像された画像データであることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記検出手段は、入力画像データを複数の領域に分割し、分割された領域ごとに入力画像データ間の相対的な位置ズレ量を表す動きベクトルを求めることを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記補正手段は、前記検出手段により分割された領域に対して合成比率が１：１に近い度合いを表す評価値を求め、前記評価値が設定値以下で設定個数以上隣接している分割された領域を加重加算ブロックと判定し、前記加重加算ブロックの集合を加重加算領域とみなし、前記加重加算領域に属する動きベクトルを優先的に使用して、前記補正量を算出することを特徴とする請求項１又は請求項３に記載の画像処理装置。
【請求項５】
入力画像データにおける主要被写体領域を検出する領域検出手段を備え、
前記補正手段は、前記領域検出手段により検出された主要被写体領域かつ前記加重加算領域に属する動きベクトルを優先的に使用して、前記補正量を算出することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記補正手段は、前記加重加算領域が複数存在する場合、前記補正量の算出を前記複数の前記加重加算領域に対して行い、前記複数の前記加重加算領域に対して算出された補正量を補間することで、各画素ごとの補正量を算出することを特徴とする請求項４に記載の画像処理装置。
【請求項７】
前記設定手段は、入力画像データの中で露光量の最も低い画像から生成される基準輝度画像の輝度値を参照し、前記輝度値が低い領域には、入力画像データの中から露光量の大きい画像データの合成比率が高くなるよう設定し、前記輝度値が大きい領域には、入力画像データの中から露光量の小さい画像データの合成比率が高くなるように設定することを特徴とする請求項１に記載の画像処理装置。
【請求項８】
請求項１乃至７のいずれか１項に記載の画像処理装置を備えることを特徴とする撮像装置。
【請求項９】
少なくとも２枚の入力画像データに対して画像処理を行う画像処理装置の制御方法であって、
前記入力画像データ間の複数の領域における位置ズレ量を検出する検出工程と、
少なくとも２枚の前記入力画像データを合成する際の合成比率を複数の領域において設定する設定工程と、
前記検出工程により検出された位置ズレ量と前記設定工程により設定された合成比率から補正量を算出し、前記入力画像データに前記補正量を用いて前記入力画像データ間の位置ズレを補正する補正工程と、
位置ズレが補正された前記入力画像データを前記合成比率で領域ごとに合成する合成工程と、を備え、
前記補正工程では、少なくとも２枚の前記入力画像データを加重加算する領域の位置ズレの補正を優先させて算出された補正量で前記位置ズレの補正を行うことを特徴とする制御方法。
【請求項１０】
請求項９に記載の画像処理装置の制御方法をコンピュータに実行させるためのコンピュータで読み取り可能なプログラムコードを有するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の画像データを合成する機能を有する画像処理装置、撮像装置、制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、異なる露出で撮影した複数枚の画像データを合成することにより、ダイナミックレンジを拡大した合成画像データを得る画像処理に関わる技術が提案されている。この種の画像処理は、低輝度領域に対しては高露出画像データを主に使用し、高輝度領域に対しては低露出画像データを主に使用することで、「白飛び」や「黒潰れ」の影響を低減し、画像のダイナミックレンジを拡大するものである。
【０００３】
上記画像処理において、複数枚撮影されたそれぞれの画像データは、撮影者の手ぶれ等により相対的な位置ズレが発生している。画像データを合成する際に、画像データ間に位置ズレが発生している場合、合成画像において像が多重に写り、合成画像の画質が低下する。従って、複数枚撮影された画像データの位置合わせは重要な技術となる。
【０００４】
上記画像データの位置合わせ技術に関しては、多くの技術が開示されている（例えば、特許文献１参照）。
【０００５】
特許文献１記載の技術では、画像データ間の対応点を複数求め、信頼度の高い一部の対応点から仮の移動パラメータを算出し、移動パラメータから算出した対応点と、予め求まっている各々の対応点との誤差を求めて合格判定を行う。この画像処理を、仮の移動パラメータを求める対応点の組み合わせを変えながら繰り返した後、合格判定された対応点の数が最大となる組み合わせを用いて、最終的な移動パラメータを確定し、位置合わせを行う。
【０００６】
更に、上記画像データの位置合わせ技術に関しては、次の技術が開示されている（例えば、特許文献２参照）。
【０００７】
特許文献２記載の技術では、画像データを複数の位置ズレ検出ブロックに分割し、各々の位置ズレ検出ブロックに対して白飛び判定、黒潰れ判定、及び低コントラスト判定を行う。その後、好適と判断された位置ズレ検出ブロックにおける動きベクトルの発生頻度から、画像データの位置合わせに用いる動きベクトルを選択する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−２２９８６８号公報
【特許文献２】特開２００８−１１８５５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した特許文献１及び特許文献２に記載の技術においては、被写体の微小な動きや、被写体の距離差による動きの違いにより、画像データの位置合わせで補正しきれず、画像データの位置ズレが残留することが予想される。
【００１０】
本発明の目的は、複数の画像データを合成する際に発生する位置ズレの影響を低減することを可能とした画像処理装置、撮像装置、制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明は、少なくとも２枚の入力画像データに対して画像処理を行う画像処理装置であって、前記入力画像データ間の複数の領域における位置ズレ量を検出する検出手段と、少なくとも２枚の前記入力画像データを合成する際の合成比率を複数の領域において設定する設定手段と、前記検出手段により検出された位置ズレ量と前記設定手段により設定された合成比率から補正量を算出し、前記入力画像データに前記補正量を用いて前記入力画像データ間の位置ズレを補正する補正手段と、位置ズレが補正された前記入力画像データを前記合成比率で領域ごとに合成する合成手段と、を備え、前記補正手段は、少なくとも２枚の前記入力画像データを加重加算する領域の位置ズレの補正を優先させて算出された補正量で前記位置ズレの補正を行うことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、検出された位置ズレ量と設定された合成比率に基づいて入力画像データ間の位置ズレを補正する。これにより、複数枚の画像データを合成する場合において、複数枚の画像データを合成する際に発生する位置ズレの影響を低減することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施の形態に係る撮像装置の画像処理部を中心とした構成を示すブロック図である。
【図２】アンダー画像の階調変換特性とオーバー画像の階調変換特性を示す図である。
【図３】画像処理部の位置ズレ検出部の処理の流れを示すフローチャートである。
【図４】画像データを水平方向にＮ分割及び垂直方向にＭ分割の複数ブロックに分割した例を示す図である。
【図５】画像処理部の合成比率設定部の処理の流れを示すフローチャートである。
【図６】アンダー画像の合成比率テーブルとオーバー画像の合成比率テーブルを示す図である。
【図７】画像処理部の位置ズレ補正部の処理の流れを示すフローチャートである。
【図８】図７における加重加算領域判定の処理の流れを示すフローチャートである。
【図９ａ】図７における画像変換係数算出の処理の流れを示すフローチャートである。
【図９ｂ】図７における画像変換係数算出の処理の流れを示すフローチャートである。
【図１０】加重加算領域が存在しない場合について動きベクトルの優先度を設定する方法を示す図である。
【図１１】加重加算領域が１個存在する場合について動きベクトルの優先度を設定する方法を示す図である。
【図１２】加重加算領域が複数存在する場合について動きベクトルの優先度を設定する方法を示す図である。
【図１３】加重加算領域が２個存在する場合における画像変換係数の補間の例を示す図である。
【図１４】本発明の第２の実施の形態に係る撮像装置の画像処理部を中心とした構成を示すブロック図である。
【図１５】主要被写体領域が存在する場合について動きベクトルの優先度を設定する方法を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について図面を参照しながら説明する。
【００１５】
〔第１の実施の形態〕
本実施の形態では、複数枚の画像を合成してダイナミックレンジの拡張を行う。
【００１６】
ダイナミックレンジの拡大を目的とした画像合成では、低輝度領域においては高露出画像データの合成比率を高く設定し、高輝度領域においては低露出画像データの合成比率を高く設定する。更に、合成画像に生じる急な切り替わりを防止するために、中間輝度領域では高露出画像データと低露出画像データを加重加算するように合成比率を設定する。        
【００１７】
従って、高露出画像データと低露出画像データを加重加算する領域において位置ズレが残留している場合には、画像データの合成の際に前記位置ズレが目立って見えてしまい、合成画像の画質が劣化するという課題がある。
【００１８】
本実施の形態は上記の課題を解決するものである。しかし、実施形態としてはこれに限らず、画像全体の領域の中で加重加算領域が存在する合成処理であれば、特に合成に伴う処理は限定されない。
【００１９】
図１は、本発明の第１の実施の形態に係る撮像装置の画像処理部を中心とした構成を示すブロック図である。図２は、アンダー画像の階調変換特性とオーバー画像の階調変換特性を示す図である。
【００２０】
図１において、本実施の形態の撮像装置は、画像データのダイナミックレンジを拡大する機能を有する。撮像装置は、撮像部１０１、Ａ／Ｄ変換部１０２、画像処理部１０３、画像表示部１１０、画像記録部１１１を備えている。
【００２１】
撮像部１０１は、撮像レンズ群と半導体撮像素子（ＣＭＯＳセンサあるいはＣＣＤセンサ等）から構成されている。撮像部１０１は、同一被写体に対して露光量を変化させながら複数回の撮影を行うことが可能であり、複数回の撮影で撮像された映像信号をＡ／Ｄ変換部１０２に出力する。Ａ／Ｄ変換部１０２は、撮像部１０１から入力された映像信号をデジタルの画像データに変換し、画像処理部１０３に出力する。
【００２２】
画像処理部１０３は、撮像部１０１により互いに異なる露光条件で撮像されＡ／Ｄ変換部１０２から入力された少なくとも２枚の画像データ（入力画像データ）の位置ズレを補正し、位置ズレが補正された画像データを合成する処理を行う。
【００２３】
画像表示部１１０は、画像処理部１０３で生成された画像データを撮像装置本体に装備されている液晶モニタ（不図示）に表示する。更に、画像記録部１１１は、画像処理部１０３で生成された画像データを記録媒体（不図示）に記録する。
【００２４】
次に、画像処理部１０３の詳細について説明する。画像処理部１０３は、階調補正部１０４、メモリ部１０５、位置ズレ検出部１０６、合成比率設定部１０７、位置ズレ補正部１０８、画像合成部１０９から構成されている。
【００２５】
階調補正部１０４は、Ａ／Ｄ変換部１０２から入力された複数の画像データ（入力画像データ）に対して、輝度レベルを合わせる処理を行う。本実施の形態では、入力画像データの枚数を例えば２枚と仮定し、露光量の異なる入力画像データにおいて、相対的に露光量の大きい画像をオーバー画像とし、オーバー画像に対して露光量の小さい画像をアンダー画像とする。
【００２６】
階調補正部１０４は、オーバー画像とアンダー画像のそれぞれに対し、図２に示すような異なる階調変換特性を持った階調変換を施すことで、オーバー画像とアンダー画像の輝度レベルを合わせる処理を行う。ただし、本実施の形態では、アンダー画像の輝度レベルをオーバー画像の輝度レベルに合わせている。階調補正部１０４で処理された画像データは、メモリ部１０５に蓄えられる。
【００２７】
ここで、図２の横軸は入力信号値、縦軸は出力信号値であり、上側の曲線がアンダー画像の階調変換特性、下側の曲線がオーバー画像の階調変換特性を示している。アンダー画像の階調変換特性における入力信号値をＳｕ、オーバー画像の階調変換特性における入力信号値をＳｏ、アンダー画像とオーバー画像の露出量の差をＮｅＶ（Ｎ：整数）とした時、Ｓｕ＝２−ＮＳｏが成立する。
【００２８】
メモリ部１０５に蓄えられた入力画像データは、撮影者の手ぶれ等に起因する相対的な位置のずれを伴っている。そのため、位置ズレ検出部１０６、合成比率設定部１０７、及び位置ズレ補正部１０８によって、入力画像データ間の位置ズレを補正する。位置ズレ検出部１０６、合成比率設定部１０７、位置ズレ補正部１０８の詳細な処理については、以下の動作説明において後述する。
【００２９】
次に、上記の構成を備える本実施の形態の撮像装置の動作について図３乃至図１３を参照しながら説明する。
【００３０】
＜位置ズレ検出部１０６の処理＞
図３は、画像処理部１０３の位置ズレ検出部１０６の処理の流れを示すフローチャートである。
【００３１】
図３において、位置ズレ検出部１０６は、メモリ部１０５から画像データが入力されると（ステップＳ３０１）、入力画像データに対し、位置ズレを求める基準となる基準画像を設定する（ステップＳ３０２）。ここでは、アンダー画像を基準画像に設定する。即ち、本実施の形態における位置ズレとは、アンダー画像に対するオーバー画像の位置ズレを意味する。
【００３２】
次に、位置ズレ検出部１０６は、図４に示すように、入力画像データを水平方向にＮ分割すると共に垂直方向にＭ分割することで複数のブロックに分割する（ステップＳ３０２）。ここで、今後の処理の説明のために、各分割ブロックをｂｌｋ［０］〜ｂｌｋ［Ｍ＊Ｎ−１］と呼ぶ（図４参照）。
【００３３】
次に、位置ズレ検出部１０６は、動きベクトルを検出する分割ブロックの順番をカウントするカウンタｉの値にｉ＝０を設定する（ステップＳ３０４）。更に、位置ズレ検出部１０６は、ｉ番目の分割ブロックｂｌｋ［ｉ］について、アンダー画像とオーバー画像の間の相対的な位置ズレ量を表す動きベクトルを検出する（ステップＳ３０５）。動きベクトルの検出方法としては、例えば、差分絶対値和を評価値としたパターンマッチング処理が挙げられる。
【００３４】
次に、位置ズレ検出部１０６は、分割ブロックｂｌｋ［Ｍ＊Ｎ−１］まで動きベクトルの検出を行ったか否かを判定する（ステップＳ３０６）。分割ブロックｂｌｋ［Ｍ＊Ｎ−１］まで動きベクトルの検出を行っていない場合は、位置ズレ検出部１０６は、カウンタｉの値ｉをインクリメントしながら（ステップＳ３０７）、全ての分割ブロックにおける動きベクトルを検出する。分割ブロックｂｌｋ［Ｍ＊Ｎ−１］まで動きベクトルの検出を行った場合は、本処理を終了する。
【００３５】
＜合成比率設定部１０７の処理＞
図５は、画像処理部１０３の合成比率設定部１０７の処理の流れを示すフローチャートである。
【００３６】
図５において、合成比率設定部１０７は、基準輝度画像の設定を行う（ステップＳ５０１）。基準輝度画像とは、入力画像データの合成比率を設定するために参照する、露光量の最も低い輝度画像である。ここでは、基準輝度画像としてアンダー画像の輝度成分を使用する。
【００３７】
アンダー画像を使用する理由としては、オーバー画像では白飛びによって階調性が失われている領域が存在すると考えられるため、合成比率を設定するために参照する情報としてはアンダー画像の方が好ましいからである。なお、基準輝度画像としては、アンダー画像に既定の画像処理を施した画像を使用してもよい。
【００３８】
次に、合成比率設定部１０７は、基準輝度画像の画素値から、合成比率テーブルに基づいて各画素におけるアンダー画像とオーバー画像の合成比率を設定する（ステップＳ５０２）。合成比率テーブルとは、基準となる輝度値に対して、アンダー画像とオーバー画像を合成する比率である合成比率を設定するテーブルである。
【００３９】
図６に本実施の形態の合成比率テーブルを示す。図６の横軸は基準輝度値、縦軸は合成比率（％）であり、合成比率テーブルを次のように設定している。基準輝度値をＹとした時、Ｙ≦Ｙ１の領域では、オーバー画像を１００％使用する。Ｙ２≦Ｙの領域では、アンダー画像を１００％使用する。Ｙ１＜Ｙ＜Ｙ２の領域では、アンダー画像とオーバー画像を加重加算する。ここで、Ｙ１、Ｙ２は、予め設定された輝度値である。
【００４０】
即ち、入力された画像データの中で露光量の最も低い画像から生成される基準輝度画像の輝度値を参照し、合成比率を次のように設定する。輝度値が低い領域には、入力された画像データの中から露光量の大きい画像データの合成比率が高くなるよう設定し、輝度値が大きい領域には、入力された画像データの中から露光量の小さい画像データの合成比率が高くなるように設定する。
【００４１】
＜位置ズレ補正部１０８の処理＞
位置ズレ補正部１０８は、位置ズレ検出部１０６で求めた各分割ブロックにおける動きベクトル、及び合成比率設定部１０７で設定した画素単位の合成比率を入力とする。
【００４２】
図７は、画像処理部１０３の位置ズレ補正部１０８の処理の流れを示すフローチャートである。
【００４３】
図７において、位置ズレ補正部１０８は、加重加算領域を判定する（ステップＳ７０１）。加重加算領域とは、アンダー画像とオーバー画像の合成比率が１：１に近い（本実施の形態では、ｋ：１−ｋ，０．４≦ｋ≦０．６を満たす合成比率）画素を多数持つ分割ブロックの集合である。なお、加重加算領域の定義となる合成比率ｋ：１−ｋは上記に限らず、ｋ＝０，１以外であれば本発明を適用可能である。
【００４４】
次に、位置ズレ補正部１０８は、位置ズレ検出部１０６により検出された位置ズレ量と合成比率設定部１０７により設定された合成比率から、画像変換係数（補正量）を算出する（ステップＳ７０２）。画像変換係数については後述するが、画像データ間の位置ズレを補正するために一方の画像データをもう一方の画像データに合わせて変形するための座標変換係数のことである。画像変換係数は、上記加重加算領域に属する動きベクトルを優先的に使用して算出する。
【００４５】
更に、位置ズレ補正部１０８は、算出した画像変換係数に基づいてオーバー画像の変形を行う（ステップＳ７０３）。ステップＳ７０１及びＳ７０２の詳細は後述する。
【００４６】
図８は、図７における加重加算領域判定の処理の流れを示すフローチャートである。
【００４７】
図８において、位置ズレ補正部１０８は、評価値の算出を行う分割ブロックの順番をカウントするカウンタｉの値にｉ＝０を設定する（ステップＳ８０１）。次に、位置ズレ補正部１０８は、ｉ番目の分割ブロックｂｌｋ［ｉ］における評価値Ｖ［ｉ］を算出する（ステップＳ８０２）。
【００４８】
評価値Ｖ［ｉ］とは、分割ブロックｂｌｋ［ｉ］に含まれる各画素に対する、アンダー画像とオーバー画像の合成比率が１：１に近い度合い、つまり加重加算によって位置ズレが見えやすい度合いを表すものである。評価値Ｖ［ｉ］の計算式は下記の通りである。
【００４９】
【数１】
0005804801.tif 000002
【００５０】
ここで、ｒ［ｉ］［ｋ］は、分割ブロックｂｌｋ［ｉ］の第ｋ画素におけるアンダー画像の合成比率、Ｂ［ｉ］は、分割ブロックｂｌｋ［ｉ］に含まれる画素の総数、ｎは合成枚数であり、本実施形態では２枚合成なので、ｎ＝２である。また、和の記号は、分割ブロックｂｌｋ［ｉ］の全画素にわたって和をとることを示している。上記計算式によれば、評価値Ｖ［ｉ］の値が小さいほど合成比率が１：１に近い画素の多い（加重加算される度合いが強い）ブロックとなる。以下、評価値Ｖ［ｉ］が設定値以下となるブロックのことを加重加算ブロックと呼ぶ。
【００５１】
次に、位置ズレ補正部１０８は、分割ブロックｂｌｋ［Ｍ＊Ｎ−１］まで評価値の算出を行ったか否かを判定する（ステップＳ８０３）。分割ブロックｂｌｋ［Ｍ＊Ｎ−１］まで評価値の算出を行っていない場合は、位置ズレ補正部１０８は、カウンタｉの値ｉをインクリメントしながら（ステップＳ８０４）、全ての分割ブロックにおける評価値を算出する。
【００５２】
分割ブロックｂｌｋ［Ｍ＊Ｎ−１］まで評価値の算出を行った場合は、位置ズレ補正部１０８は、上記評価値を使用して加重加算領域の判定を行う（ステップＳ８０５）。ここでは、加重加算ブロックの集合を加重加算領域とし、加重加算ブロックが所定の個数（設定個数）以上隣接している場合、隣接している加重加算ブロックの集合を加重加算領域とみなす。これにより、本処理を終了する。
【００５３】
図９ａ及び図９ｂは、図７における画像変換係数算出の処理の流れを示すフローチャートである。
【００５４】
図９ａ及び図９ｂにおいて、位置ズレ補正部１０８は、以下のように加重加算領域の個数を数える。まず、位置ズレ補正部１０８は、加重加算領域の個数が０個であるか１個以上であるかを判定する（ステップＳ９０１）。加重加算領域の個数が０個でない場合は、位置ズレ補正部１０８は、加重加算領域の個数が１個であるか２個以上であるかを判定する（ステップＳ９０５）。
【００５５】
即ち、位置ズレ補正部１０８は、加重加算領域が０個の場合、加重加算領域が１個存在する場合、加重加算領域が２個以上存在する場合に分けて、それぞれの場合で画像データの分割ブロック、つまり動きベクトルの優先度を設定する。更に、設定した動きベクトルの優先度から、画像データ間の位置ズレを補正するための画像変換係数を求める。
【００５６】
以下、加重加算領域が０個の場合、加重加算領域が１個存在する場合、加重加算領域が２個以上存在する場合のそれぞれの処理を図１０〜図１２を用いて説明する。
【００５７】
なお、本実施の形態では、加重加算領域の判定において隣接する加重加算ブロックの設定個数を４としている。つまり、評価値Ｖ［ｉ］が設定値以下の加重加算ブロックが４個以上隣接（設定個数以上隣接）していると、これら加重加算ブロックの集合は加重加算領域とみなされる。この加重加算領域の判定条件は、図１０〜図１２において同様に適用される。
【００５８】
・加重加算領域が存在しない場合
図１０は、加重加算領域が存在しない場合について動きベクトルの優先度を設定する方法を示す図である。
【００５９】
加重加算領域が存在しない場合には、図１０に示すように、基準点を画像中心とし基準点からの距離が近い順に動きベクトルに優先度を設定する（図９ａのステップＳ９０２）。
【００６０】
なお、図１０の（１）〜（１０）で示す区画は加重加算ブロック、カッコ付き数字はブロック（動きベクトル）の優先度＝基準点からの距離順である。また、上述した通り加重加算領域の判定において隣接ブロックの閾値（設定値）を４としており（ｅｘ.Ａ＝４）、後述の図１１及び図１２においても同様である。
【００６１】
次に、設定した優先度に基づいて画像変換係数を算出する。画像変換係数とは、画像データ間の位置ズレを補正するために一方の画像データをもう一方の画像データに合わせて変形するための座標変換係数のことであり、例えばアフィン係数などが挙げられる。画像変換係数を算出する手法としては、複数の動きベクトルを入力し、入力された動きベクトルから最小二乗法により画像変換係数の推定を行うという手法が提案されている。
【００６２】
本実施の形態では前記の手法を採用するため、画像変換係数の推定を行うために入力する動きベクトルを前もって選択する処理を行う（ステップＳ９０３）。動きベクトルを選択する理由としては、誤検出や局所的な移動体の存在等が原因で、画像データ間の位置ズレを表す動きベクトルとして信頼性に乏しい動きベクトルが存在するためである。
【００６３】
動きベクトルを選択する手法としては、まず設定した優先度の高い順に複数個の動きベクトルを選択し、選択した動きベクトルから仮の画像変換係数を推定する。
【００６４】
次に、推定した仮の画像変換係数を使用して、各ブロックの代表点を移動させ、当該ブロックで求まっている動きベクトルとの誤差を算出する。この時、誤差が小さい動きベクトルは、先に求めた仮の画像変換係数と相関が強い動きベクトルと考えられる。
【００６５】
従って、誤差が所定の値以下となる動きベクトルが所定の個数以上存在する場合に、それらの動きベクトルは画像データ間の相対的な位置ズレを表すものとして信頼性が高いと考え、最終的に選択する動きベクトルとする。誤差が所定の値以下となる動きベクトルが所定の個数以上存在しない場合には、仮の画像変換係数を求める動きベクトルの組み合わせを変えて、同様の処理を繰り返す。
【００６６】
次に、上記ステップＳ９０３の処理で選択した動きベクトルから、最終的な画像変換係数を推定する（ステップＳ９０４）。
【００６７】
・加重加算領域が１個存在する場合
図１１は、加重加算領域が１個存在する場合について動きベクトルの優先度を設定する方法を示す図である。
【００６８】
加重加算領域が１個存在する場合には、図１１に示すように、加重加算領域の重心を基準点とし、基準点からの距離が近い順に動きベクトルに優先度を設定する。この際、加重加算領域に属する動きベクトルの優先度を高く設定する（図９ａのステップＳ９０６）。
【００６９】
以降、画像変換係数を推定するまでの処理は、上述した加重加算領域が存在しない場合と同様の処理となる（ステップＳ９０７、ステップＳ９０８）。
【００７０】
なお、図１１の（１）〜（１２）で示す区画は加重加算領域に属するブロック、（１３）〜（１４）で示す区画は加重加算ブロックだが加重加算領域ではないブロック、カッコ付き数字はブロック（動きベクトル）の優先度＝基準点からの距離順である。
【００７１】
・加重加算領域が複数存在する場合
図１２は、加重加算領域が複数存在する場合について動きベクトルの優先度を設定する方法を示す図である。ただし、図１２では、加重加算領域の個数を２としている。
【００７２】
加重加算領域が複数存在する場合には、ある加重加算領域に着目し、着目した加重加算領域の重心を基準点とし、基準点からの距離が近い順に動きベクトルに優先度を設定する。この際、着目している加重加算領域に属する動きベクトルの優先度を高く設定する（図９ｂのステップＳ９０９、ステップＳ９１０、ステップＳ９１１）。
【００７３】
次に、着目している加重加算領域に対する動きベクトルの優先度を基に、画像変換係数を推定する。画像変換係数の推定の手法は、上述した加重加算領域が存在しない場合と同様である。上記の処理を、加重加算領域が存在する個数の分だけ繰り返し、加重加算領域が存在する個数と同数の画像変換係数を得る（ステップＳ９１２）。
【００７４】
即ち、全ての加重加算領域に着目して、画像変換係数を算出したか否かを判定し（ステップＳ９１３）、画像変換係数を算出していない場合は、着目する加重加算領域を更新する（ステップＳ９１４）。更に、着目する加重加算領域の重心からの距離及び評価値に基づき、動きベクトルの優先度を設定し（ステップＳ９１０）、動きベクトルの優先度に基づいて、画像変換係数の算出に使用する動きベクトルを選択する（ステップＳ９１１）。そして、画像変換係数を算出する（ステップＳ９１２）。
【００７５】
画像変換係数を算出した場合は、画像変換係数の補間を行い（ステップＳ９１５）、各画素ごとの画像変換係数を算出する。本実施の形態では、補間方法として、各画像変換係数に対する重みづけ係数を、各画像変換係数に対応する加重加算領域の重心からの距離によって算出し、各画像変換係数の重みづけ加算を行う。
【００７６】
なお、図１２の（１）〜（１２）で示す区画は加重加算領域１に属するブロック、１〜６で示す区画は加重加算領域２に属するブロックである。カッコ付き数字は加重加算領域１におけるブロック（動きベクトル）の優先度＝基準点からの距離順、カッコ付きでない数字は加重加算領域２におけるブロック（動きベクトル）の優先度＝基準点からの距離順である。
【００７７】
図１３は、加重加算領域が２個存在する場合における画像変換係数の補間の例を示す図である。
【００７８】
図１３において、間隔の狭い斜線で示す区画は加重加算領域１に属するブロック、間隔の広い斜線で示す区画は加重加算領域２に属するブロックである。基準点１は加重加算領域１の重心、基準点２は加重加算領域２の重心である。
【００７９】
Ａｋを加重加算領域ｋにおける画像変換係数とし、Ｗｋを加重加算領域ｋにおける画像変換係数Ａｋの重みとすると、点（ｘ，ｙ）における画像変換係数Ａｘ,ｙは下記の式で表すことができる。
【００８０】
Ａｘ,ｙ＝ｗ１Ａ１＋ｗ２Ａ２
（ｗ１＝αｘ（ｘ）αｙ（ｙ）,ｗ２＝１−ｗ１）
なお、αは、上記のｗ１を算出する際に使用する重みづけ係数である（０≦α≦１）。なお、図１３の水平方向の細長いバーと垂直方向の細長いバーを構成する白地部分と斜線部分の斜めの境界は、αが０から１まで変化していくことを示している。
【００８１】
また、加重加算領域がｎか所存在する場合の点（ｘ，ｙ）における画像変換係数Ａｘ,ｙは、図１３の下段に示す計算式で表すことができる。
【００８２】
上記の補間処理を行って算出された画素ごとの画像変換係数を、最終的な画像変換係数とする。
【００８３】
上記の図７乃至図１３で説明した内容が、画像処理部１０３の位置ズレ補正部１０８の処理となる。位置ズレ補正部１０８から画像合成部１０９には、位置合わせが完了したアンダー画像とオーバー画像が出力される。画像合成部１０９では、位置合わせが完了したアンダー画像とオーバー画像を、予め算出した合成比率に従って画素ごとに合成を行う。
【００８４】
以上の処理により、画像処理部１０３の位置ズレ補正部１０８においてアンダー画像とオーバー画像間の位置ズレを補正し、画像合成部１０９において位置ズレが補正されたアンダー画像とオーバー画像を合成する。これにより、ダイナミックレンジが拡大された合成画像データが生成される。
【００８５】
以上説明したように、本実施の形態によれば、合成比率が１：１に近い領域、つまり位置ズレが見えやすい領域を判定し、判定した領域を優先して位置ズレ補正を行う。そのため、合成画像においてアンダー画像とオーバー画像を加重加算する領域で目立つ位置ズレを低減することができる。
【００８６】
これにより、従来のように高露出画像データと低露出画像データを加重加算する領域で位置ズレが残留している場合に、画像データ合成の際に位置ズレが目立って見え、合成画像の画質が劣化するという問題を解消することができる。
【００８７】
即ち、本実施の形態では、複数枚の画像データを合成して画像データのダイナミックレンジを拡大する場合において、複数枚の画像データを加重加算する領域で発生する位置ズレを低減することができる。
【００８８】
〔第２の実施の形態〕
本発明の第２の実施の形態は、上記第１の実施の形態に対して、図１４、図１５で説明する点において相違する。
【００８９】
上記第１の実施の形態においては、位置ズレ補正を行うために使用する動きベクトルの優先度を、各分割ブロックにおけるアンダー画像とオーバー画像の合成比率から決定していた。これに対し、第２の実施の形態では、撮像装置の画像処理部の構成において、更に、主要被写体領域を検出する主要被写体領域検出部を追加した場合の処理について説明する。
【００９０】
図１４は、本発明の第２の実施の形態に係る撮像装置の画像処理部を中心とした構成を示すブロック図である。
【００９１】
図１４において、撮像装置は、撮像部１４０１、Ａ／Ｄ変換部１４０２、画像処理部１４０３、画像表示部１４１１、画像記録部１４１２を備えている。画像処理部１４０３は、階調補正部１４０４、主要被写体領域検出部１４０５、メモリ部１４０６、位置ズレ検出部１４０７、合成比率設定部１４０８、位置ズレ補正部１４０９、画像合成部１４１０から構成されている。
【００９２】
図１４に示す構成が図１に示す構成と相違する点は、画像処理部１４０３に主要被写体領域検出部１４０５を追加した点と、位置ズレ補正部１４０９の処理が異なる点である。これ以外は共通であるため共通部分については説明を省略する。
【００９３】
以下、主要被写体検出部１４０５の機能と、主要被写体検出部１４０５を追加した場合における位置ズレ補正部１４０９の処理について説明する。
【００９４】
主要被写体検出部１４０５は、階調補正部１４０４からの入力画像データ及び撮影時のＡＦ（Auto Focus）情報等から、入力画像データ内において主要と思われる被写体領域を抽出する。被写体領域は、図４に示した分割ブロックを単位として抽出されるものとする。また、主要被写体領域の検出方法に関しては、本実施の形態では特に限定しないものとする。
【００９５】
位置ズレ補正部１４０９の処理においては、上記第１の実施の形態と比較して、図９ａのステップＳ９０２、図９ａのステップＳ９０６、図９ｂのステップＳ９１０における、動きベクトルの優先度を決定する処理が異なる。撮影者にとっては画像データ間の位置ズレが最も良好に補正されてほしい領域は主要被写体領域であると考えられるため、主要被写体領域に属する動きベクトルの優先度を最も高く設定する。
【００９６】
図１５は、主要被写体領域が存在する場合について動きベクトルの優先度を設定する方法を示す図である。
【００９７】
図１５において、主要被写体領域かつ加重加算領域に属する（含まれる）動きベクトルを第一優先とし、主要被写体領域以外の加重加算領域に属する（含まれる）動きベクトルを第二優先としている。そして、基準点（加重加算領域の重心）からの距離順に優先度を設定している。
【００９８】
なお、図１５の太い実線で囲んだ区画は主要被写体領域である。また、（１）〜（１２）で示す区画は加重加算領域に属するブロック、（１３）〜（１４）で示す区画は加重加算ブロックだが加重加算領域ではないブロック、カッコ付き数字はブロック（動きベクトル）の優先度である。
【００９９】
以上説明したように、本実施の形態によれば、主要被写体領域かつ合成比率が１：１に近い領域、つまり位置ズレが見えやすい領域を最優先として位置ズレの補正を行う。そのため、特に主要被写体領域において、アンダー画像とオーバー画像を加重加算する領域で目立つ位置ズレを低減することができる。
【０１００】
〔他の実施の形態〕
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。前記プログラムは、画像処理装置の制御方法をコンピュータに実行させるためのコンピュータで読み取り可能なプログラムコードを有する。
【符号の説明】
【０１０１】
１０３、１４０３  画像処理部
１０６、１４０７  位置ズレ検出部
１０７、１４０８  合成比率設定部
１０８、１４０９  位置ズレ補正部
１０９、１４１０  画像合成部
【図１】
0005804801.tif 000003
【図２】
0005804801.tif 000004
【図３】
0005804801.tif 000005
【図４】
0005804801.tif 000006
【図５】
0005804801.tif 000007
【図６】
0005804801.tif 000008
【図７】
0005804801.tif 000009
【図８】
0005804801.tif 000010
【図９ａ】
0005804801.tif 000011
【図９ｂ】
0005804801.tif 000012
【図１０】
0005804801.tif 000013
【図１１】
0005804801.tif 000014
【図１２】
0005804801.tif 000015
【図１３】
0005804801.tif 000016
【図１４】
0005804801.tif 000017
【図１５】
0005804801.tif 000018