(57)【特許請求の範囲】
【請求項１】
発光手段が発光している状態で撮影された発光画像と該発光手段が発光していない状態で撮影された非発光画像とから、前記発光画像において前記発光手段による光が当たる発光領域を検出する画像処理装置であって、
前記発光画像と前記非発光画像とをそれぞれ複数の領域に分割し、領域ごとに輝度値を算出する輝度算出手段と、
前記領域ごとの前記発光画像の輝度値と前記非発光画像の輝度値との差分と前記非発光画像の輝度値との比率に基づいて、前記発光手段による発光が前記発光画像の各領域の輝度値に与えた影響を示す発光影響度を前記領域ごとに算出する影響度算出手段と、
前記発光影響度が所定の閾値より大きい領域を前記発光領域と判定する判定手段と、を有し、
前記所定の閾値は、前記発光影響度を算出した領域の、前記非発光画像の輝度値が小さくなるにつれて値が大きくなるように設定されることを特徴とする画像処理装置。
【請求項２】
発光手段が発光している状態で撮影された発光画像と該発光手段が発光していない状態で撮影された非発光画像とから、前記発光画像において前記発光手段による光が当たる発光領域を検出する画像処理装置であって、
前記発光画像と前記非発光画像とをそれぞれ複数の領域に分割し、領域ごとに輝度値を算出する輝度算出手段と、
前記領域ごとの前記発光画像の輝度値と前記非発光画像の輝度値との差分と前記非発光画像の輝度値との比率に基づいて、前記発光手段による発光が前記発光画像の各領域の輝度値に与えた影響を示す発光影響度を前記領域ごとに算出する影響度算出手段と、
前記発光影響度が所定の閾値より大きい領域を前記発光領域と判定する判定手段と、を有し、
前記所定の閾値は、前記発光画像の輝度値と前記非発光画像の輝度値の差分が小さいほど大きな値となるように、前記差分の大きさに応じて複数設定されており、
前記影響度算出手段による前記発光影響度の算出と、前記判定手段による判定とが、前記発光画像の輝度値と前記非発光画像の輝度値の差分の大きさに応じて段階的に実行されることを特徴とする画像処理装置。
【請求項３】
発光手段が発光している状態で撮影された発光画像と該発光手段が発光していない状態で撮影された非発光画像とから、前記発光画像において前記発光手段による光が当たる発光領域を検出する画像処理装置であって、
前記発光画像と前記非発光画像とをそれぞれ複数の領域に分割し、領域ごとに輝度値を算出する輝度算出手段と、
前記領域ごとの前記発光画像の輝度値と前記非発光画像の輝度値との差分に基づいて、前記発光手段による発光が前記発光画像の各領域の輝度値に与えた影響を示す発光影響度を前記領域ごとに算出する影響度算出手段と、
前記発光影響度が所定の閾値より大きい領域を前記発光領域と判定する判定手段と、を有し、
前記所定の閾値は、前記発光影響度を算出した領域の、前記非発光画像の輝度値が小さくなるにつれて値が大きくなるように設定されることを特徴とする画像処理装置。
【請求項４】
発光手段が発光している状態で撮影された発光画像と該発光手段が発光していない状態で撮影された非発光画像とから、前記発光画像において前記発光手段による光が当たる発光領域を検出する画像処理装置であって、
前記発光画像と前記非発光画像とをそれぞれ複数の領域に分割し、領域ごとに輝度値を算出する輝度算出手段と、
前記領域ごとの前記発光画像の輝度値と前記非発光画像の輝度値との差分に基づいて、前記発光手段による発光が前記発光画像の各領域の輝度値に与えた影響を示す発光影響度を前記領域ごとに算出する影響度算出手段と、
前記発光影響度が所定の閾値より大きい領域を前記発光領域と判定する判定手段と、を有し、
前記所定の閾値は、前記発光画像の輝度値と前記非発光画像の輝度値の差分が小さいほど大きな値となるように、前記差分の大きさに応じて複数設定されており、
前記影響度算出手段による前記発光影響度の算出と、前記判定手段による判定とが、前記発光画像の輝度値と前記非発光画像の輝度値の差分の大きさに応じて段階的に実行されることを特徴とする画像処理装置。
【請求項５】
前記影響度算出手段は、前記発光画像の輝度値と前記非発光画像の輝度値との差分が予め定めた閾値よりも大きい領域については、前記発光影響度の算出を行わないことを特徴とする請求項１ないし請求項４のいずれか１項に記載の画像処理装置。
【請求項６】
前記発光画像と前記非発光画像との位置ずれを検出する位置ずれ検出手段をさらに有し、
前記位置ずれ検出手段は、前記発光領域と判定された位置の領域の輝度値は、位置ずれの検出に使用しないことを特徴とする請求項１ないし請求項５のいずれか１項に記載の画像処理装置。
【請求項７】
前記画像処理装置の振れ量を検出する振れ量検出手段をさらに有し、
前記位置ずれ検出手段は、前記発光画像と前記非発光画像との位置ずれを、前記発光画像と前記非発光画像の領域ごとの動きベクトルに基づいて検出し、
前記輝度算出手段が前記輝度値を算出するための領域は、前記動きベクトルを算出するための領域と中心位置が共通であり、当該領域のサイズは前記振れ量検出手段によって検出された前記振れ量が大きいほど大きいことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記位置ずれ検出手段が検出した位置ずれに基づいて、前記発光画像と前記非発光画像との位置ずれを補正する位置ずれ補正手段をさらに有することを特徴とする請求項６または請求項７に記載の画像処理装置。
【請求項９】
請求項１ないし請求項８のいずれか１項に記載の画像処理装置と、
撮像手段と、
前記発光手段と、
前記撮像手段および前記発光手段を制御し、撮影により前記発光画像および前記非発光画像を取得させる制御手段と、を有することを特徴とする撮像装置。
【請求項１０】
発光手段が発光している状態で撮影された発光画像と該発光手段が発光していない状態で撮影された非発光画像とから、前記発光画像において前記発光手段による光が当たる発光領域を検出する画像処理装置の制御方法であって、
輝度算出手段が、前記発光画像と前記非発光画像とをそれぞれ複数の領域に分割し、領域ごとに輝度値を算出する輝度算出ステップと、
影響度算出手段が、前記領域ごとの前記発光画像の輝度値と前記非発光画像の輝度値との差分と前記非発光画像の輝度値との比率に基づいて、前記発光手段による発光が前記発光画像の各領域の輝度値に与えた影響を示す発光影響度を前記領域ごとに算出する影響度算出ステップと、
判定手段が、前記発光影響度が所定の閾値より大きい領域を前記発光領域と判定する判定ステップと、を有し、
前記所定の閾値は、前記発光影響度を算出した領域の、前記非発光画像の輝度値が小さくなるにつれて値が大きくなるように設定されることを特徴とする画像処理装置の制御方法。
【請求項１１】
発光手段が発光している状態で撮影された発光画像と該発光手段が発光していない状態で撮影された非発光画像とから、前記発光画像において前記発光手段による光が当たる発光領域を検出する画像処理装置の制御方法であって、
輝度算出手段が、前記発光画像と前記非発光画像とをそれぞれ複数の領域に分割し、領域ごとに輝度値を算出する輝度算出ステップと、
影響度算出手段が、前記領域ごとの前記発光画像の輝度値と前記非発光画像の輝度値との差分に基づいて、前記発光手段による発光が前記発光画像の各領域の輝度値に与えた影響を示す発光影響度を前記領域ごとに算出する影響度算出ステップと、
判定手段が、前記発光影響度が所定の閾値より大きい領域を前記発光領域と判定する判定ステップと、を有し、
前記所定の閾値は、前記発光影響度を算出した領域の、前記非発光画像の輝度値が小さくなるにつれて値が大きくなるように設定されることを特徴とする画像処理装置の制御方法。
【請求項１２】
コンピュータを、請求項１ないし請求項８のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置およびその制御方法に関し、特には複数の画像データの位置合わせ（あるいは位置ずれの補正）を行う技術に関する。
【背景技術】
【０００２】
近年、テレビジョンカメラ、電子スチルカメラ等において、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等の固体撮像素子が多く使用されている。また、固体撮像素子のダイナミックレンジ拡大やノイズの低減、手ぶれの抑制などを目的として、同一シーンを複数回撮影して得られた複数の画像を合成して１枚の画像を生成する手法が提案されている。
【０００３】
手持ちで複数回撮影した場合、得られる複数の画像間には手ぶれの影響による位置ずれが発生するため、位置ずれを補正した（位置合わせした）後で合成する。位置ずれは例えば画像間の移動ベクトルとして検出できる。具体的には、画像を小ブロックに分割し、小ブロックごとに輝度のＳＡＤ（Sum of Absolute Difference）が最小となる対応点を算出することで、ブロック毎の動きベクトルが検出できる。算出した動きベクトルから算出した写像パラメータを画像に適用することで位置ずれが補正できる。
【０００４】
フラッシュを発光させて撮影した発光画像とフラッシュを発光させないで撮影した非発光画像とを、上述のＳＡＤに基づく動きベクトルの検出を利用して位置合わせする場合を考える。この場合、発光画像でフラッシュが当たった（フラッシュ光により輝度が高まった）小ブロックについて検出された動きベクトルは正常な検出結果でない可能性がある。誤った動きベクトルに基づいて算出された写像パラメータを適用した場合、画像の位置合わせ精度が低下するおそれがある。そのため、フラッシュが当たった小ブロックについて検出された動きベクトルは位置合わせ用の写像パラメータの算出から除外することが望ましい。また、輝度のＳＡＤを使用する方法に限らず、フラッシュの発光が検出結果に影響を与える位置ずれ検出方法においては、フラッシュが当たった領域の情報は使用しないことが望ましい。
【０００５】
特許文献１では、特徴点の動きベクトルを検出して位置合わせを行う際、発光画像を利用して動きベクトルの検出精度を高める技術を開示している。具体的には、動きのある被写体からの特徴点を用いて精度の良い動きベクトルを検出するのは困難であるため、発光画像と非発光画像とで明るさが変化しない領域を動きのない背景領域として抽出し、背景領域の特徴点を用いて動きベクトルを検出している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−２６２８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載されるように、同一シーンの発光画像と非発光画像の輝度の差から、フラッシュが当たった領域を検出しようとした場合、図１２（ｂ）に示すような、フラッシュが弱く当たった小ブロックを検出するには、検出閾値を小さくする必要がある。しかし、検出閾値を小さくすると誤検出の可能性も増えるため検出精度が低下する。図１２（ａ）は発光画像、図１２（ｂ）は非発光画像であり、図１２（ａ）に線のハッチングで示した領域（地面）が、フラッシュが弱く当たっている領域である。
【０００８】
また、発光画像と非発光画像の輝度の差は、フラッシュの発光有無だけで無く、手ぶれの影響も受ける。例えば図１２に太枠で示した小ブロックには、フラッシュが当たっていないが、発光画像に含まれていた高輝度被写体が手ぶれによって非発光画像に含まれなくなる（あるいは含まれる量が減少する）と、小ブロックの輝度が低下する。この、発光画像と非発光画像の輝度差が、太枠部分にフラッシュが当たったことによるものと誤検出されないようにする必要があるが、特許文献１においてはこのような手ぶれの影響は考慮されていない。
【０００９】
本発明は、発光手段による発光を伴って撮影された発光画像と発光手段による発光を伴わずに撮影された非発光画像と合成する際の位置合わせ精度を向上させる画像処理装置および制御方法の提供を目的とする。
【課題を解決するための手段】
【００１０】
上述の目的は、発光手段が発光している状態で撮影された発光画像と発光手段が発光していない状態で撮影された非発光画像とから、発光画像において発光手段による光が当たる発光領域を検出する画像処理装置であって、発光画像と非発光画像とをそれぞれ複数の領域に分割し、領域ごとに輝度値を算出する輝度算出手段と、領域ごとの発光画像の輝度値と非発光画像の輝度値との差分と非発光画像の輝度値との比率に基づいて、発光手段による発光が発光画像の各領域の輝度値に与えた影響を示す発光影響度を領域ごとに算出する影響度算出手段と、発光影響度が所定の閾値より大きい領域を発光領域と判定する判定手段と、を有し、所定の閾値は、発光影響度を算出した領域の、非発光画像の輝度値が小さくなるにつれて値が大きくなるように設定されることを特徴とする画像処理装置によって達成される。
【発明の効果】
【００１１】
本発明によれば、発光画像と非発光画像を合成する際の位置合わせ精度を向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態に係る画像処理装置の一例としてのデジタルカメラの信号処理に係る機能構成例を示すブロック図
【図２】本発明の第１の実施形態におけるフラッシュ受光部検出回路の動作を説明するためのフローチャート
【図３】本発明の第１の実施形態における発光画像と非発光画像のブロック分割例を示す図
【図４】本発明の実施形態における、非発光画像の輝度の積分値に対するフラッシュ影響度の閾値関数の例を示す図
【図５】本発明の第１の実施形態に係るフラッシュ受光部検出回路の検出結果の例を示す図
【図６】本発明の第２の実施形態におけるフラッシュ受光部検出回路の動作を説明するためのフローチャート
【図７】本発明の第３の実施形態におけるフラッシュ受光部検出回路の動作を説明するためのフローチャート
【図８】本発明の第４の実施形態に係る画像処理装置の一例としてのデジタルカメラが有する手ぶれ量検出回路が有するジャイロセンサの出力の積分値と手ぶれ量の関係を示す図
【図９】本発明の第４の実施形態におけるフラッシュ受光部検出回路の動作を説明するためのフローチャート
【図１０】本発明の第４の実施形態における、輝度積分値算出用ブロックサイズの変更例を示す図
【図１１】本発明の第４の実施形態に係るフラッシュ受光部検出回路の検出結果の例を示す図
【図１２】従来のフラッシュ受光部検出における課題を説明するための図
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の例示的な実施形態について詳細に説明する。なお、以下の実施形態においては、本発明に係る画像処理装置の一例としての撮像装置を説明するが、本発明においては、同一シーンを撮影した発光画像と非発光画像とが取得可能であればその取得方法に制限はなく、従って撮像機能は必須でない。なお、同一シーンとは撮像時の視野が重複していることを意味し、視野や被写体の完全一致を必要としない。
【００１４】
（第１の実施形態）
図１は、本発明の第１の実施形態に係る画像処理装置の一例としてのデジタルカメラの信号処理に係る機能構成例を示すブロック図である。本実施形態では、フラッシュ（発光手段）が発光している状態で撮影された画像（発光画像）とフラッシュが発光していない状態で撮影された画像（非発光画像）とを、合成するために位置合わせする。本実施形態では、発光画像においてフラッシュが当たった（フラッシュの光が到達して輝度が上昇した）発光領域を、非発光画像の輝度の積分値に対するフラッシュの影響度によって検出する。なお、フラッシュとは数百μｓ〜数ｍｓの発光時間を有する例えばキセノンランプ等からなる補助光源をさすが、本実施形態では発光画像とはこれに限らず、常時発光している白熱灯、蛍光灯、ＬＥＤ等の照明を発光手段としている場合も同様に考慮できる。以下、フラッシュが発光手段である場合を例に挙げて本実施形態を含めた各実施形態を説明する。また本実施形態では、画素が有限大の開口を有することの影響を補正するアパチャー補正など、一般的に行われている処理については説明を省略するが、記載のない処理の実施が排除されないことに留意されたい。
【００１５】
図１において、撮像レンズ１０はズームレンズ、フォーカスレンズを含むレンズ群である。撮像素子１１は光学像を電気信号に変換するＣＣＤやＣＭＯＳイメージセンサ等で構成される。Ａ／Ｄ変換器１２は、撮像素子１１から出力されるアナログ信号をデジタル信号に変換する。画像処理回路１３は、Ａ／Ｄ変換器１２から出力されるデジタル信号（データ）に対し、所定の画素補間、縮小といったリサイズ処理、ホワイトバランスの調整、色変換処理などを適用する。
【００１６】
発光画像と非発光画像の撮影は、通常、続けて行われる。撮影間隔に特に制限は無いが、通常は数秒以内であろう。もちろん、例えばスタジオのように、外光の影響を無視できる環境であれば、より長い撮影間隔であってもよい。例えば画像合成を行う撮影モードにおいて撮影指示があった場合、デジタルカメラは発光画像と非発光画像を連続的に撮影するように構成されていてよい。このような撮影モードには、画像合成による手ぶれ補正モードや、ダイナミックレンジ拡大モード（ＨＤＲモード）などが含まれてよい。なお、本実施形態では発光画像と非発光画像との位置合わせについて説明するが、合成される画像がこれら２枚に限定されない。
【００１７】
画像処理回路１３は、発光画像を発光画像メモリ１４に保存し、非発光画像を非発光画像メモリ１５に保存する。フラッシュ受光部検出回路１６は、発光画像メモリ１４に保存された発光画像と非発光画像メモリ１５に保存された非発光画像とから、発光画像においてフラッシュが当たった領域（発光領域）を検出する。なお、本実施形態では、画像を複数のブロックに分割し、ブロック単位でフラッシュの当たった領域を検出するものとする。
【００１８】
位置ずれ検出回路１７は、フラッシュ受光部検出回路１６で検出した、フラッシュの当たった領域（ブロック）以外の領域について、発光画像と非発光画像の位置ずれを検出する。位置ずれ補正回路１８は、位置ずれ検出回路１７の検出結果を使用して発光画像と非発光画像の位置ずれ補正（位置合わせ）を行う。
【００１９】
位置ずれ補正回路１８の出力は記録制御部１９で所定の圧縮、符号化処理等が行われ記憶媒体３０に記憶される。あるいは位置ずれ補正回路１８の出力は、表示制御部２０で表示媒体３１の解像度に合わせてリサイズされたり、ガンマ処理などが施され、表示媒体３１に表示される。あるいは、外部に出力される。記憶媒体３０は内蔵される不揮発性メモリであっても良いし、着脱可能なＳＤカード等であってもよい。表示媒体３１は液晶であるがこれに限らない。
【００２０】
発光部２１は撮影の補助光として撮影時に発光される。本実施形態では露出、被写体の動き等の撮影条件に応じて数百μｓ〜数ｍｓの発光時間で発光するフラッシュとする。
制御部２２はバスを介して上述したカメラ内の各部を制御する。
【００２１】
手ぶれ量検出回路１０１は、例えばジャイロセンサを有し、デジタルカメラの手ぶれ量を検出する。手ぶれ量検出回路１０１については、第４の実施形態において使用する。
【００２２】
フラッシュ受光部検出回路１６の動作を図２のフローチャートを用いて説明する。なお、フラッシュ受光部検出回路１６はその一部あるいは全てをハードウェアまたはソフトウェアで構成されていてもよい。また以下の処理の一部を制御部２２の指示あるいは演算により行っても良い。また、本処理の前に所定のプログラム線図に従って制御部２２の指示により、発光部２１を発光させて撮影する発光画像と、発光部２１を発光させずに撮影する非発光画像の取得が行われ、発光画像メモリ１４、非発光画像メモリ１５にそれぞれ記憶されている。ここで発光画像はカメラ内でない外部の何らかの発光手段からの発光を伴う撮影により得られる画像であってもよい。また上記に限らず、他のカメラ等から得られた発光画像と非発光画像を発光画像メモリ１４、非発光画像メモリ１５にそれぞれ記憶していても良いものとする。
【００２３】
Ｓ１００においてフラッシュ受光部検出回路１６は、発光画像と非発光画像のホワイトバランスを、いずれかの画像を基準として合わせる。
Ｓ１０１とＳ１０２においてフラッシュ受光部検出回路１６は、発光画像と非発光画像で撮影条件（たとえば感度、絞り値、シャッター速度）が異なる場合、条件の違いを相殺するようなゲイン調整を行う。例えば、発光画像と非発光画像の撮影条件のうち、感度と絞り値が同じで、発光画像の撮影時のシャッター速度が１段早い場合、フラッシュ受光部検出回路１６は発光画像のゲインを１段分増加させる。撮影条件は、自身で撮影した画像であれば撮影時の設定を記憶しておき利用する。他のカメラ等で得られた画像であれば、ヘッダ等に記載された撮影条件を読み出して使用する。
【００２４】
ホワイトバランスを合わせる処理（撮影条件が違う場合にはさらにゲイン調整処理）により、フラッシュが当たっていない領域に関しては、位置ずれや動体の影響が無ければ、発光画像と非発光画像の輝度は同等となる。
【００２５】
Ｓ１０３においてフラッシュ受光部検出回路１６は、図３に示すように発光画像と非発光画像を同様にして複数のブロックに分割する。図３（ａ）が発光画像で、図３（ｂ）が非発光画像である。図３（ａ）において、点ハッチングした領域はフラッシュが強く当たった領域であり、線ハッチングした領域はフラッシュが弱く当たった領域を示している。輝度算出手段としてのフラッシュ受光部検出回路１６は、発光画像と非発光画像のそれぞれについて、ブロックごとの輝度値として、輝度の積分値を算出する。
【００２６】
Ｓ１０４においてフラッシュ受光部検出回路１６は、発光画像と非発光画像の対応する位置のブロック間で、輝度の積分値の差を算出する。
さらに、影響度算出手段としてのフラッシュ受光部検出回路１６は、発光画像の輝度の積分値をItg_flash、非発光画像の輝度の積分値をItg_no_flashとし、以下のように定義するフラッシュ影響度（発光影響度）を算出する。
フラッシュ影響度 = (Itg_flash - Itg_no_flash)/Itg_no_flash
フラッシュ影響度は、フラッシュが発光したことが輝度の積分値に与えた影響（輝度の増加割合）を示す値である。フラッシュ影響度を発光画像と非発光画像の差分と、非発光画像との比率で定義することで、例えば非発光画像において元々暗い領域にノイズや手振れによって上記差分が大きくなってしまい、その差分で発光領域と誤判別されてしまうことを軽減する。
【００２７】
Ｓ１０５においてフラッシュ受光部検出回路１６は、ブロックの位置ごとにフラッシュ影響度を算出する。
【００２８】
Ｓ１０６においてフラッシュ受光部検出回路１６は、個々のブロック位置について求めたフラッシュ影響度が、フラッシュ影響度の算出に用いられた非発光画像の輝度の積分値Itg_no_flashの値に対応する閾値より大きいか否かを判別する。図４（ａ）は、非発光画像の輝度の積分値Itg_no_flashの値とフラッシュ影響度の閾値との対応関係（閾値関数）の例を示している。図４(ａ)に示す通り、閾値は非発光画像の輝度の積分値が小さいほど（すなわちフラッシュに依らない元の画像の明るさが暗いほど）閾値を上げて、少しの差分では発光領域と判別されにくくする。これもノイズや手振れによって発光領域と誤判別されてしまうことを軽減するためである。
【００２９】
フラッシュ受光部検出回路１６は、非発光画像ブロックで算出した輝度の積分値Itg_no_flashに対応付けられた閾値より大きいフラッシュ影響度が算出された位置の発光画像ブロックは、フラッシュが当たったと判別する。
【００３０】
そして、フラッシュ受光部検出回路１６は、フラッシュが当たったと判別されたブロックについては、位置合わせから除外する（Ｓ１０７）。具体的には、除外されたブロックについては、位置ずれ検出回路１７で動きベクトルを検出しない。フラッシュ影響度が閾値以下の場合は、フラッシュが当たっていないブロックとしてそのブロックは位置合わせに使用する（Ｓ１０８）。
【００３１】
閾値関数は、以下のように求めることができる。まず事前に撮影した、対応関係にある発光画像と非発光画像を用いて、ブロック位置ごとに、非発光画像の輝度の積分値とフラッシュ影響度を算出し、閾値とするブロックを複数選択する。この作業を複数の撮影シーンに対して行う。図４（ｂ）に示すように、閾値としたブロックの非発光画像の輝度の積分値に対するフラッシュ影響度の近似曲線を算出して、この近似曲線を閾値関数とする。このような閾値関数を用いることで、人物の背景に高輝度な被写体がある場合や地面に弱くフラッシュが当たった場合も、フラッシュが当たったブロックを精度良く検出することができる。
【００３２】
図３の画像に対してフラッシュ受光部検出回路１６でフラッシュが当たったブロックを検出した結果の例を図５に示す。図５で×を示したブロックが、フラッシュが当たったと検出されたブロックを示している。
【００３３】
次に位置ずれ検出回路１７の動作を説明する。位置ずれ検出回路１７は、個々の画像を任意のサイズのブロックに分割して、対応する位置のブロックごとに、同じ位置の画素の輝度値の差の絶対値の合計輝度のＳＡＤが最小となる対応点を算出して、動きベクトルを算出する。そして、算出した動きベクトルを用いて位置合わせ（位置ずれの補正）を行う。
【００３４】
本実施形態では、位置ずれ検出回路１７のブロックのサイズはフラッシュ受光部検出回路１６で輝度の積分値を算出したブロックのサイズと同じとする。位置ずれ検出回路１７はフラッシュ受光部検出回路１６で検出したフラッシュが当たったブロックを除いて、ブロックごとに動きベクトルを算出する。このように画像をブロックに分割して動きベクトルを算出する技術は公知であるため、その詳細についての説明は省略する。
【００３５】
次に位置ずれ補正回路１８の動作を説明する。位置ずれ補正回路１８は、位置ずれ検出回路１７で算出した動きベクトルを使用して位置ずれ補正を行う。位置ずれ補正回路１８は、ブロック毎に算出された複数の動きベクトルからアフィン変換や射影変換などにより写像パラメータを算出する。複数の動きベクトルから写像パラメータの算出に使用する動きベクトルを選択する技術は、例えば特開２０１１−１３８９０号公報に記載されるよう公知であり、また本発明ではどのような方法であっても利用可能であるため、その詳細についての説明は省略する。算出した写像パラメータを使用して一方の画像を変換することで位置ずれを補正する。写像パラメータを適用する画像は、発光画像であっても非発光画像であってもよい。例えば発光画像を基準として非発光画像の動きベクトルを算出した場合、非発光画像に写像を適用して位置ずれを補正することができる。
【００３６】
位置ずれが補正された画像はダイナミックレンジ拡大や手ぶれ補正等の目的に応じて合成することができる。
【００３７】
以上説明したように、本実施形態によれば、フラッシュが発光したことが輝度の積分値に与えた影響（輝度の増加割合）を示す値として、フラッシュ影響度を導入し、非発光画像の輝度に対し、フラッシュ影響度の閾値の関係を予め定めておく。そして、発光画像の輝度と非発光画像の輝度とから求まるフラッシュ影響度が、非発光画像の輝度に対応するフラッシュ影響度の閾値より大きい場合には、非発光画像中の被写体にフラッシュが当たっているものと判定する。このように、発光画像の輝度と非発光画像の輝度の単なる差だけでなく、非発光画像の輝度に応じた閾値を考慮してフラッシュが当たったかどうかを判定することで、精度良い判定が可能になる。
【００３８】
そして、発光画像と非発光画像との位置合わせを行う場合、この判定を両画像の対応する位置のブロックごとに行い、発光画像においてフラッシュが当たったと判定されるブロックは位置合わせに用いる動きベクトルの算出処理から除外する。そのため、動きベクトルの算出精度、ひいては位置合わせの精度を向上させることができる。
【００３９】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。本実施形態は、第１の実施形態に対し、発光画像と非発光画像の輝度の積分値の差によってフラッシュ受光部（フラッシュの当たったブロック）を判定する処理を加えたものである。本実施形態では、フラッシュ受光部検出回路１６を除く構成は第１の実施形態と同じものとし、第１の実施形態と重複する説明は省略する。
【００４０】
図６は、本実施形態におけるフラッシュ受光部検出回路１６の処理を説明するためのフローチャートである。図６のステップＳ２００〜Ｓ２０４の処理は、第１の実施形態で説明した図２のＳ１００〜Ｓ１０４と同様の処理なので説明を省略する。
【００４１】
Ｓ２０５において、フラッシュ受光部検出回路１６は、対応する位置のブロック毎に、発光画像と非発光画像の輝度の積分値の差を、予め定めた第１の閾値と比較する。発光画像と非発光画像の輝度の積分値の差が第１の閾値よりも大きい場合、フラッシュ受光部検出回路１６は、処理対象のブロックを、フラッシュが当たったブロックとして判定し、位置合わせから除外する（Ｓ２０８）。発光画像と非発光画像の輝度の積分値の差が第１の閾値以下の場合、フラッシュ受光部検出回路１６は、第１の実施形態のＳ１０５と同様にフラッシュ影響度を算出する（Ｓ２０６）。
【００４２】
Ｓ２０７においてフラッシュ受光部検出回路１６は、フラッシュ影響度を第２の閾値（第１の実施形態における閾値に対応する）と比較する。そして、フラッシュ影響度が第２の閾値よりも大きい場合、フラッシュ受光部検出回路１６は、処理対象のブロックを、フラッシュが当たったブロックとして判定し、位置合わせから除外する（Ｓ２０８）。フラッシュ影響度が第２の閾値以下の場合、フラッシュ受光部検出回路１６は、処理対象のブロックをフラッシュが当たっていないブロックと判定し、位置合わせに使用する（Ｓ２０９）。
【００４３】
輝度の積分値の差が十分に大きい場合、その位置のブロックには強くフラッシュが当たっている可能性が高い。そのため、本実施形態では、発光画像と非発光画像とで輝度の積分値の差が第１の閾値より大きい場合、フラッシュ影響度の算出をするまでもなくフラッシュが当たったブロックと判定することで、処理を簡略化している。これにより、判定処理速度を第１の実施形態よりも向上させることができる。
なお、発光画像と非発光画像とで輝度の積分値の差が第１の閾値より大きい場合でも、フラッシュ影響度の算出は行ってもよい。
【００４４】
（第３の実施形態）
次に、本発明の第３の実施形態について説明する。本実施形態は、第２の実施形態におけるフラッシュ影響度の算出条件を変更したものである。本実施形態では、フラッシュ受光部検出回路１６を除く構成は第１の実施形態と同じものとし、第１の実施形態と重複する説明は省略する。
【００４５】
図７は、本実施形態におけるフラッシュ受光部検出回路１６の処理を説明するためのフローチャートである。図７のステップＳ３００〜Ｓ３０５の処理は、第１の実施形態で説明した図２のＳ１００〜Ｓ１０４および第２の実施形態で説明した図６のＳ２０５と同様の処理なので説明を省略する。
【００４６】
発光画像と非発光画像の輝度の積分値の差が第１の閾値以下の場合、フラッシュ受光部検出回路１６は、輝度の積分値の差を閾値と比較する処理と、フラッシュ影響度を閾値と比較する処理を、閾値を変更しながら繰り返す。
【００４７】
Ｓ３０６においてフラッシュ受光部検出回路１６は、輝度の積分値の差を閾値と比較する処理とフラッシュ影響度を閾値と比較する処理の閾値（Ｎ＝１）の設定を行う。ここで設定する閾値のうち、輝度の積分値の差と比較する第２Ｎの閾値は、第１の閾値より小さい所定値とする。また、フラッシュ影響度と比較する第（２Ｎ＋１）の閾値は、第２Ｎの閾値の大きさに応じて予め複数用意された閾値である。具体的には、第２Ｎの閾値の大きさが小さくなるほど、第（２Ｎ＋１）の閾値は大きくなるような閾値を設定する。
【００４８】
フラッシュ受光部検出回路１６は、ブロック毎に、発光画像と非発光画像の輝度の積分値の差を、第（２Ｎ）の閾値と比較する（Ｓ３０７）。発光画像と非発光画像の輝度の積分値の差が第（２Ｎ）の閾値以下の場合、フラッシュ受光部検出回路１６は、後述する閾値判定処理の実行回数判定（Ｓ３１０）を行う。発光画像と非発光画像の輝度の積分値の差が第（２Ｎ）の閾値よりも大きい場合、フラッシュ受光部検出回路１６はフラッシュ影響度を算出する（Ｓ３０８）。
【００４９】
Ｓ３０９においてフラッシュ受光部検出回路１６は、フラッシュ影響度を第（２Ｎ＋１）の閾値と比較する。そしてフラッシュ受光部検出回路１６は、フラッシュ影響度が第（２Ｎ＋１）の閾値よりも大きい場合、処理対象のブロックをフラッシュが当たったブロックと判定し、位置合わせから除外する（Ｓ３１２）。
【００５０】
一方、フラッシュ影響度が第（２Ｎ＋１）の閾値以下の場合、フラッシュ受光部検出回路１６は、フラッシュが当たっていないブロックと判定し、位置合わせに使用する（Ｓ３１３）。
【００５１】
Ｓ３１０においてフラッシュ受光部検出回路１６は、閾値判定処理を所定の回数実行していない場合、閾値を再設定する（Ｓ３１１）。具体的には、フラッシュ受光部検出回路１６は、Ｎを１増加させるとともに、第（２Ｎ）の閾値についてはさらに小さい閾値を設定し、第（２Ｎ＋１）の閾値については、第（２Ｎ）の閾値に対応する閾値を設定する。
【００５２】
積分値の差だけでフラッシュが当たったかどうかを判定するより、フラッシュ影響度を考慮した方が精度のよい判定結果が得られるが、積分値の差によって閾値を変化させることにより、一層きめ細かく精度のよい判定が可能である。そのため、本実施形態では、第（２Ｎ）の閾値を段階的に小さくしながら輝度の積分値の差との比較を行い、積分値の差の範囲に応じた適切な閾値を用いてフラッシュ影響度にもとづく判定を行っている。第（２Ｎ）の閾値を低減させる程度や、第（２Ｎ）の閾値に対応する閾値は、撮像素子やフラッシュの特性などに応じて適宜決定することができる。
【００５３】
Ｓ３１０において、閾値判定処理を所定の回数実行している場合、フラッシュ受光部検出回路１６は、その時点でフラッシュが当たったと判定されていないブロックはフラッシュが当たっていないブロックと判定し、位置合わせに使用する（Ｓ３１３）。
【００５４】
このように、本実施形態では、輝度の積分値の差に応じたフラッシュ影響度の閾値を用いることにより、特にフラッシュが弱く当たったブロックの判定精度を上げることができる。
【００５５】
（第４の実施形態）
次に、本発明の第４の実施形態について説明する。第１〜第３の実施形態では、フラッシュ受光部検出に使用する輝度の積分値算出のブロックサイズと、動きベクトル検出時に輝度のＳＡＤを算出するブロックサイズを同じ（同じブロック分割方法）としていた。これに対し、本実施形態では、装置の振れ量に応じてこれらのブロックサイズと閾値関数の閾値のすくなくとも一方を変更する。本実施形態は、第１〜第３の実施形態のいずれにおいても適用可能である。また、第１〜第３の実施形態と重複する説明は省略する。
【００５６】
本実施形態では、手ぶれ量検出回路１０１が検出する振れ量を用いる。手ぶれ量検出回路１０１が有するセンサ、例えば３軸ジャイロセンサの、１つの軸の出力の積分値の絶対値と振れ量の関係の例を図８に示す。このように、手ぶれ量検出回路１０１の出力値を積分することにより、デジタルカメラの振れ量を検出することができる。
【００５７】
本実施形態では図９に示すように、フラッシュ受光部検出回路１６が輝度の積分値を算出するブロックのサイズ（点線）と、位置ずれ検出回路１７が輝度のＳＡＤを算出するブロックのサイズ（実線）とが異なる。ただし、ブロックの中心位置は共通となるようにブロックを設定する。また、図９（ａ）は発光画像、図９（ｂ）は非発光画像を示している。
【００５８】
なお、図９においては便宜上、ブロック間に隙間があるように図示しているが、実際には隙間がなくてもよい。例えば、第１〜第３の実施形態におけるブロック分割をＳＡＤを算出するブロックに適用し、輝度の積分値を算出するブロックは重複するように設定してもよい。
【００５９】
また、本実施形態においてフラッシュ受光部検出回路１６は、手ぶれ量検出回路１０１により検出した振れ量に応じて、図１０に示すようにフラッシュ受光部検出回路１６の輝度の積分値を算出するブロックのサイズ変更することができる。また、フラッシュ受光部検出回路１６は、図４（ｃ）に示すように第１の実施形態で説明した閾値関数の閾値を変更したり、第２および第３の実施形態で説明した閾値を変更することができる。ブロックサイズの変更と、閾値の変更とは、いずれか一方のみ行っても、両方行ってもよい。
【００６０】
図１０（ａ）〜（ｃ）は、検出可能な振れ量の範囲を３段階に区分して、フラッシュ受光部検出回路１６が輝度の積分値を算出するためのブロックサイズを変更する例を示している。振れ量の区分を振れ量（大）、振れ量（中）、振れ量（小）とすると、図１０（ａ）、図１０（ｂ）、図１０（ｃ）はそれぞれ振れ量（大）、振れ量（中）、振れ量（小）に対応している。ここでは、位置ずれ補正回路１８が輝度のＳＡＤを算出するブロックのサイズは変化させず、フラッシュ受光部検出回路１６が輝度の積分値を算出するためのブロックサイズを変更させている。
【００６１】
図１０（ｄ）は、振れ量に比例して、フラッシュ受光部検出回路１６の輝度の積分値を算出するブロックのサイズを変更する例を示している。ここで、垂直方向の振れ量をＩｖとし、水平方向の振れ量をＩｈとする。輝度の積分値を算出するブロックのサイズは、輝度のＳＡＤを算出するブロックのサイズを基準として、振れ量に比例したサイズ分大きくする。垂直方向に大きくするブロックのサイズをＬｖとし、水平方向に大きくするブロックのサイズをＬｈとする。係数αを用いて、Ｌｖ＝α×Ｉｖ、Ｌｈ＝α×Ｉｈのサイズ分大きくする。
【００６２】
図４（ｃ）は振れ量に応じて閾値関数の閾値を変更する例を示す。事前に複数人が撮影した際の振れ量の平均値Ｉｍを算出しておき、振れ量の平均値Ｉｍを基準とした閾値関数を決定しておく。ここで撮影時の振れ量を
Ｉ＝√｛（Ｉｖ）2＋（Ｉｈ）2｝
とし、係数をβとする。β×Ｉｍ／Ｉを、振れ量の平均値Ｉｍを基準とした閾値関数に重みとして乗じることで、閾値関数の閾値を変更することができる。
【００６３】
また、第２および第３の実施形態で説明した閾値１から第（２Ｎ）の閾値＋１に対しては、振れ量に応じてβ×Ｉｍ／Ｉを乗じることで閾値を変更することができる。
【００６４】
図９の画像に対してフラッシュ受光部検出回路１６でフラッシュが当たったブロックを検出した結果を図１１に示す。図１１において×で示したブロックが、フラッシュが当たったと判定されたブロックを示している。
【００６５】
本実施形態のようにすることで、手ぶれによって発生する位置ずれによる輝度の変化の影響を小さくすることが可能となり、フラッシュが当たったブロックの検出精度を向上させることができる。
【００６６】
また、上記各実施形態では、フラッシュ影響度として各ブロックについて発光画像の輝度の積分値と非発光画像の輝度の積分値との差分を非発光画像の輝度の積分値で除した値を用いた。しかし発光画像の輝度の積分値と非発光画像の輝度の積分値との差分に基づいていれば、除する値は比較対象である閾値との関係によるので、適宜変更可能である。例えば閾値関数を調整し、発光画像の輝度の積分値と非発光画像の輝度の積分値との差分をフラッシュ影響度とし、調整された閾値関数に基づく閾値とを比較するようにも出来る。
【００６７】
さらに、上記各実施形態では、フラッシュ影響度と比較する閾値を非発光画像の輝度値の関数とした。しかしこれに限らず、閾値は発光画像の輝度値の関数として設定することもできる。
【００６８】
また、上記各実施形態では、ブロックごとの輝度値の指標として輝度の積分値を算出しているが、本発明はこれに限らない。ブロックの輝度値としては平均値、中央値、ブロック内のヒストグラムを生成したときの輝度の最頻値などを算出し、上記実施形態に当てはめることもできる。
【００６９】
また、上記各実施形態では、発光領域であるか否かを検出する際に各画像を図９に示すようにブロックに領域分割しているが、領域の分割方法はこれに限らない。すなわち、矩形以外の形状の領域に分けたり、予め被写体検出などが行われその形状に沿って領域分割がなされていたりしてもよい。その際領域の大きさが領域間で均一でない場合が考えられるので、大きさに応じて算出された値に重みづけをする等のことを行ってもよい。
【００７０】
また、上記各実施形態では、ブロックごとの明るさの比較として画像処理回路１３から出力された後の輝度値（ＹＵＶ信号のＹ信号）を用いたが、本発明はこれに限らない。ベイヤー配列の状態の画像の各色成分値（例えばＲ、Ｇ、Ｂ）や補間処理後の画像の各画素ごとのＲ、Ｇ、Ｂの値の一部あるいは全部を用いて輝度値を算出し、明るさの比較を行って発光領域を判別しても良い。
【００７１】
（その他の実施形態）
以上、本発明の好ましい実施形態について説明したが、本発明に係る画像処理装置およびその制御方法はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【００７２】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005848662.tif 000002
【図２】
0005848662.tif 000003
【図４】
0005848662.tif 000004
【図６】
0005848662.tif 000005
【図７】
0005848662.tif 000006
【図８】
0005848662.tif 000007
【図１０】
0005848662.tif 000008
【図３】
0005848662.tif 000009
【図５】
0005848662.tif 000010
【図９】
0005848662.tif 000011
【図１１】
0005848662.tif 000012
【図１２】
0005848662.tif 000013