(57)【要約】【課題】小型かつ高精度な防振システムの提供。【解決手段】撮像手段から取得した複数の画像を用いて画像のぶれを補正する画像処理装置であって、画像のぶれを補正する範囲を決定する決定手段と、複数の画像間のぶれ量を検出するぶれ検出手段と、前記検出されたぶれ量を用いて複数の画像を合成する画像合成手段とを備え、前記決定手段は、角度のぶれ量、画素ピッチ及び焦点距離に基づいて撮影条件ごとに前記ぶれを補正する範囲を決定する。【選択図】      図１
2006086741.tif 000002
【特許請求の範囲】
【請求項１】
撮像手段から取得した複数の画像を用いて画像のぶれを補正する画像処理装置であって、
画像のぶれを補正する範囲を決定する決定手段と、
複数の画像間のぶれ量を検出するぶれ検出手段と、
前記検出されたぶれ量を用いて複数の画像を合成する画像合成手段とを備え、
前記決定手段は、角度のぶれ量、画素ピッチ及び焦点距離に基づいて撮影条件ごとに前記ぶれを補正する範囲を決定することを特徴とする画像処理装置。
【請求項２】
前記角度のぶれ量は、連写間隔情報を用いて予め決められた最大ぶれ角度以下の範囲に設定されることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記画素ピッチは、撮影時に選択した画像サイズに基づいて算出されることを特徴とする請求項１に記載の画像処理装置。
【請求項４】
撮像手段から取得した複数の画像を用いて画像のぶれを補正する画像処理装置であって、
複数の画像間のぶれ量を検出するぶれ検出手段と、
前記検出されたぶれ量を用いて複数の画像を合成する画像合成手段と、
前記ぶれ量の検出に先立って、画像の光学的な変形を補正する変形補正手段とを具備することを特徴とする画像処理装置。
【請求項５】
前記画像合成手段による合成後の画像を、補正前の変形量だけ再度光学的に変形させる逆補正手段を更に備えることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記ぶれ検出手段は、画像を複数の領域に分割する分割手段と、分割された各領域ごとの動きのベクトル値を検出するベクトル検出手段と、前記検出したベクトル値の信頼度を判定する判定手段とを備え、
予め決められた信頼度以上のベクトル値に基づいて画像のシフトぶれおよび回転ぶれを検出することを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記シフトぶれの検出は、予め決められた信頼度以上のベクトル値のうち、最も頻度の高いベクトル値をシフトぶれ量とすることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記回転ぶれの検出は、前記シフトぶれを補正した後のベクトル値の中からゼロ近傍のベクトルを抽出し、当該ベクトルの回転角を回転ぶれ量とすることを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記判定手段は、ベクトル検出範囲の中の最大値のベクトルを、前記予め決められた信頼度以上のベクトル値から除外することを特徴とする請求項６乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
撮像手段から取得した複数の画像を用いて画像のぶれを補正する画像処理方法であって、
画像のぶれを補正する範囲を決定する決定工程と、
複数の画像間のぶれ量を検出するぶれ検出工程と、
前記検出されたぶれ量を用いて複数の画像を合成する画像合成工程とを備え、
前記決定工程では、角度のぶれ量、画素ピッチ及び焦点距離に基づいて撮影条件ごとに前記ぶれを補正する範囲を決定することを特徴とする画像処理方法。
【請求項１１】
撮像手段から取得した複数の画像を用いて画像のぶれを補正する画像処理方法であって、
複数の画像間のぶれ量を検出するぶれ検出工程と、
前記検出されたぶれ量を用いて複数の画像を合成する画像合成工程と、
前記ぶれ量の検出に先立って、画像の光学的な変形を補正する変形補正工程とを具備することを特徴とする画像処理方法。
【請求項１２】
請求項１０または１１に記載の画像処理方法をコンピュータに実行させるためのプログラム。
【請求項１３】
請求項１０または１１に記載の画像処理方法をコンピュータに実行させるためのプログラムを記憶したことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像された複数の画像を合成して画像のぶれを補正する技術に関する。
【背景技術】
【０００２】
現在のカメラは露出決定やピント合わせ等の撮影にとって重要な作業は全て自動化され、カメラ操作に未熟な人でも撮影失敗を起こす可能性は非常に少なくなっている。
【０００３】
また、最近では、カメラに加わる手ぶれを防ぐシステムも研究されており、撮影者の撮影ミスを誘発する要因はほとんどなくなってきている。
【０００４】
ここで、手ぶれを防ぐ防振システムについて簡単に説明する。
【０００５】
撮影時のカメラの手ぶれは、周波数として通常１Ｈｚないし１０Ｈｚの振動であるが、露光時点においてこのような手ぶれを起こしていても像ぶれのない写真を撮影可能とするための基本的な考えとして、手ぶれによるカメラの振動を検出し、この検出結果に応じて補正レンズを光軸直交面内で変位させなければならない（光学防振システム）。
【０００６】
すなわち、カメラぶれが生じても像ぶれが生じない写真を撮影するためには、第１にカメラの振動を正確に検出し、第２に手ぶれによる光軸変化を補正することが必要となる。
【０００７】
像ぶれの補正は、原理的には、加速度計、振動ジャイロ、レーザージャイロ等により加速度、角加速度、角速度、角変位等を検出し、この検出結果に対して適宜演算処理する振動検出手段をカメラに搭載することによって行うことができる。そして、振動検出手段からのカメラぶれの検出情報に基づき撮影光軸を偏心させる補正レンズを駆動する（補正光学手段）ことにより像ぶれ補正が行われる。
【０００８】
一方、手ぶれが生じない程度の露光時間で複数回撮影を繰り返し、これらの撮影により得られた画像に対して画像のズレを修正しながら合成して長い露光時間の撮影画像（合成画像）を得る方法がある（例えば、特許文献１）。
【特許文献１】特開平９−２６１５２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
最近のデジタルカメラは、銀塩コンパクトカメラに比べて小さくなってきており、特にＶＧＡクラスの撮像素子を持つカメラは携帯電子機器（例えば、携帯電話）に内蔵されるほど小型になってきている。
【００１０】
このような中で、上述した光学防振システムをカメラに搭載しようとすると、補正光学手段をよりいっそう小型化する必要がある。
【００１１】
しかし、補正光学手段は、補正レンズを支持し、これを手ぶれに合わせて高精度且つ大きなストロークで駆動する必要があるために小型化には限度がある。
【００１２】
一方、別の防振システムとして、特許文献１に示すような画像処理を用いた防振システムでは、上述した光学防振システムのような専用の補正レンズが不要となるため、製品全体を小型にできるメリットがある。
【００１３】
しかも、１回の撮影の露光時間を短くして、それらを合成する方法では露光時間を短くするほど防振精度が良くなるメリットがある。
【００１４】
この画像処理による防振では、画像間で最も相関の高い位置を見つけるための範囲を決める必要がある（以降、これをサーチ範囲と呼ぶ。）。しかしながら、このサーチ範囲を決めるには、下記のような問題がある。すなわち、
サーチ範囲の設定を小さくしたために、実際の動き（ぶれ）がサーチ範囲を超えてしまった場合、正しい位置合わせができなくなる。逆にサーチ範囲の設定を大きくし過ぎると、正しい位置を求めるために膨大な処理時間を必要としてしまう。
【００１５】
したがって、本発明の目的は、最適なサーチ範囲を算出することにより、小型でありながらも高精度な画像を得ることができる画像処理を用いた防振システムを構築することにある。
【課題を解決するための手段】
【００１６】
上記課題を解決するため、本発明の画像処理装置（又は画像処理方法）は、撮像手段から取得した複数の画像を用いて画像のぶれを補正する装置（又は方法）であって、画像のぶれを補正する範囲を決定する決定手段（工程）と、複数の画像間のぶれ量を検出するぶれ検出手段（工程）と、前記検出されたぶれ量を用いて複数の画像を合成する画像合成手段（工程）とを備え、前記決定手段（工程）は、角度のぶれ量、画素ピッチ及び焦点距離に基づいて撮影条件ごとに前記ぶれを補正する範囲を決定する。
【００１７】
また、本発明の画像処理装置（又は画像処理方法）は、撮像手段から取得した複数の画像を用いて画像のぶれを補正する装置（又は方法）であって、複数の画像間のぶれ量を検出するぶれ検出手段（工程）と、前記検出されたぶれ量を用いて複数の画像を合成する画像合成手段（工程）と、前記ぶれ量の検出に先立って、画像の光学的な変形を補正する変形補正手段（工程）とを具備する。
【００１８】
なお、本発明は、上記画像処理方法をコンピュータに実行させるためのプログラムや当該プログラムを記憶したコンピュータ可読記憶媒体として適用した場合にも有用である。
【発明の効果】
【００１９】
以上説明したように、本発明によれば、カメラでの撮影条件に関する情報から最適なぶれ補正範囲を決定できるので、画像のぶれを適正に補正することができる小型かつ高精度な防振システムを実現することができる。
【００２０】
また、画像の光学的な変形（歪）を補正した後に複数の画像を合成するので、正確な位置合わせが可能となり、画像のぶれを適正に補正することができる小型かつ高精度な防振システムを実現することができる。
【発明を実施するための最良の形態】
【００２１】
以下、図面を参照して、本発明の好適な実施形態について詳細に説明する。
＜第１の実施形態＞
図１は、本発明に係る第１の実施形態の画像処理装置の一例であるデジタルカメラの構成を示すブロック図である。なお、第１の実施形態の画像処理装置は、デジタルカメラに限らず、デジタルビデオカメラ、カメラ付き携帯電話、カメラ付きコンピュータ等の撮像装置で実現することもできる。
【００２２】
撮影レンズ１１からの入射光束（撮影光）は、絞り１３ａで光量制限されたのちに、シャッター１２ａを通り撮像部１９に結像する。
【００２３】
撮像部１９は、ＣＭＯＳイメージセンサーやＣＣＤイメージセンサーなどの撮像素子を用いて受光した光を画像信号に変換する。
【００２４】
撮影レンズ１１は更に複数の光学レンズ群により構成され、これらのレンズ群のうち一部又は全部がＡＦ駆動モータ１４ａからの駆動力を受けて光軸１０上を移動し、所定の合焦位置に停止することで焦点調節を行う。
【００２５】
ＡＦ駆動モータ１４ａは焦点駆動部１４ｂからの駆動信号を受けることで駆動する。
【００２６】
また、撮影レンズ１１のうち一部の光学レンズ群は、ズーム駆動モータ１５ａからの駆動力を受けて光軸１０上を移動し、所定のズーム位置に停止することで撮影画角を変更する。ズーム駆動モータ１５ａは、ズーム駆動部１５ｂからの駆動信号を受けることで駆動する。
【００２７】
絞り１３ａは、複数の絞り羽根を有しており、これらの絞り羽根は、絞り駆動部１３ｂからの駆動力を受けることで作動して光通過口となる開口面積（絞り口径）を変化させる。
【００２８】
シャッター１２ａは、複数のシャッター羽根を有しており、これらのシャッター羽根は、シャッタ−駆動部１２ｂからの駆動力を受けることで光通過口となる開口部を開閉する。これにより、撮像部１９に入射する光束を制御する。
【００２９】
また、撮影時の条件（被写体輝度等）などに応じてストロボ１６ａは閃光駆動部１６ｂからの駆動信号を受けて駆動（発光）する。
【００３０】
さらに、撮影動作を撮影者に知らせるためにスピーカー１７ａが発音駆動部１７ｂからの駆動信号を受けて駆動（発音）する。
【００３１】
焦点駆動部１４ｂ、ズーム駆動部１５ｂ、絞り駆動部１３ｂ、シャッタ−駆動部１２ｂ、閃光駆動部１６ｂ、発音駆動部１７ｂの駆動は、撮影制御部１８により制御されている。
【００３２】
撮影制御部１８には、シャッターボタン１２ｃ、絞り操作部１３ｃ、ズーム操作部１５ｃ、閃光操作部１６ｃの操作信号が入力されるようになっており、デジタルカメラの撮影状態に合わせて上記操作信号を各々シャッタ−駆動部１２ｂ、絞り駆動部１３ｂ、焦点駆動部１４ｂ、ズーム駆動部１５ｂ、閃光駆動部１６ｂに与えて撮影条件を設定し、撮影を行うようにしている。なお、シャッターボタン１２ｃは、半押しでオンになる第１レリーズスイッチ（ＳＷ１）と全押しでオンになる第２のレリーズスイッチ（ＳＷ２）とを有する。
【００３３】
なお、絞り１３ａの開口径やストロボ１６ａの発光は、通常は撮影時にデジタルカメラ側で自動的に設定するために、絞り操作部１３ｃおよび閃光駆動部１６ｂは不要であるが、撮影者が任意に撮影条件を設定する時のために設けられている。
【００３４】
撮影制御部１８は、後述する画像処理部１１１に取り込まれた画像信号に基づいて被写体輝度の測定（測光）を行い、この測光結果に基づいて絞り１３ａの絞り口径とシャッター１２ａの閉じタイミング（露光時間）を定めている。
【００３５】
また、撮影制御部１８は、焦点駆動部１４ｂを駆動させながら、画像処理部１１１からの出力に基づいて撮影レンズ１１の合焦位置を求めている。
【００３６】
撮像部１９から出力される画像信号は、Ａ／Ｄ変換器１１０によりデジタル画像信号に変換されて画像処理部１１１に入力される。
【００３７】
画像処理部１１１は、Ａ／Ｄ変換器１１０からのデジタル画像信号から撮影画像に対応する画像データを生成する。
【００３８】
そして、画像処理部１１１で生成された画像データは、一旦メモリ１１３に記憶される。ぶれ検出部１１４では、メモリ１１３に記憶されている複数の画像から画像間のぶれ量を検出する。このとき、ぶれ量を求めるサーチ範囲は、撮影制御部１８の情報を元に、最大ぶれ範囲検出部１４０が算出した範囲に設定する。ぶれ量を検出した後は、座標変換部１１５により位置合わせを行い、画像合成部１１６により目的とする最適画像を得る。表示部１１８は、生成した合成画像をデジタルカメラに内蔵した液晶画面で確認するためのものである。記録部１１９では、メモリーカードなどの記録媒体に生成した合成画像を記録する。
【００３９】
図２は撮影動作をまとめたフローチャートであり、このフローチャートはデジタルカメラの電源がオンになったときにスタートする。
【００４０】
ステップＳ２０１では撮影者がシャッターボタン１２ｃの半押しを行い、撮影準備部動作を行うまでこのステップを循環して待機し、第１レリーズスイッチ（ＳＷ１）がオンされるとステップＳ２０２に進む。
【００４１】
ステップＳ２０２では撮像部１９が被写体を撮像し、画像処理部１１１でその画像のコントラストを検出しながら撮影制御部１８によりＡＦモータ１４ａを駆動してレンズ１１を繰り出し、最もコントラストが高かった位置でレンズ１１の繰り出しを停止することでピント合わせを行う。また、同時に撮像部１９の出力より被写体の明るさを求める。
【００４２】
ステップＳ２０３ではステップＳ２０２で求めた被写体の明るさ等の撮影条件から撮影する枚数と各々の露光時間を求める。
【００４３】
ここでいう撮影条件とは、
・被写体の明るさ
・撮影光学系の焦点距離
・撮影光学系の明るさ（絞りの値）
・撮像素子の感度
の４点である。
【００４４】
例えば撮像素子の感度がＩＳＯ２００に設定されていたとする。このとき被写体の明るさを測光し、それを適正に露光するためには絞り１３ａは全開（例えばｆ２．８）シャッター１２ａは露光時間１／８が必要である計算になったとする。このときの撮影焦点距離が３５ｍｍフィルム換算で３０ｍｍであるときは１／８の撮影では手ぶれの虞があるので手ぶれの虞がない露光時間１／３２に設定し４回撮影を行うように設定する。
【００４５】
同様に撮影焦点距離が３００ｍｍであるときには手ぶれの虞のない露光時間１／３２０に設定し４０回撮影を行うように設定する。
【００４６】
以上のように、複数枚撮影を行う時の露光時間を撮影条件に合わせて決定し、更に何枚撮影するかも撮影条件に合わせて設定する。
【００４７】
以上の計算が終了した後でデジタルカメラのファインダや液晶表示に求めた撮影枚数を表示し撮影者に知らせる。
【００４８】
また、複数枚撮影を連続して行うときの撮影間隔に関する情報も同時に記憶しておく。
【００４９】
ステップＳ２０４では、シャッターボタン１２ｃが全押しされたか否かを判定する。シャッターボタン１２ｃが全押しされた場合、第２レリーズスイッチ（ＳＷ２）はオンになる。
【００５０】
第２レリーズスイッチ（ＳＷ２）をオンにした場合、１枚目の撮影を開始する。ステップＳ２０５では、撮像部１９の電荷をリセットし、再蓄積を開始させる。
【００５１】
次にステップＳ２０３で求められた露光時間待機し、その後シャッタを閉じて電荷の転送を行う。また、同時に撮影開始の発音を発音駆動部１７ｂを介してスピーカー１７ａで発音する。
【００５２】
この音は例えばピッ！という電子音でもよいし、フィルムカメラなどにおけるシャッタの開き音、ミラーアップの音でもよい。
【００５３】
ステップＳ２０６ではすべての撮影が完了するまでステップＳ２０５を循環して待機する。そして撮影が完了するとステップＳ２０７に進む。
【００５４】
ステップＳ２０７では撮影完了の発音を発音駆動部１７ｂを介してスピーカー１７ａで発音する。
【００５５】
この音は例えばピッピッ！と云う電子音でもよいし、フィルムカメラなどにおけるシャッタの閉じ音、ミラーダウン音やフィルム巻き上げ音でもよい。
【００５６】
このように複数枚撮影する場合においてもその動作を表す発音は１セット（最初の撮影の露光開始から最後の撮影の露光完了までに１回）なので撮影者に複数枚撮影の違和感を与える事はない。
【００５７】
ステップＳ２０８は、撮影した複数枚の画像から合成画像を生成する画像処理である。  詳細は図３以降のフローチャートを用いて説明する。
【００５８】
図３は、図２のステップＳ２０８で説明した合成画像を生成する処理の詳細なフローチャートである。まず、ステップＳ３０１にて、サーチ範囲の算出を行う。サーチ範囲の算出方法は、後ほど詳しく説明する。ステップＳ３０２では、メモリに一時記憶されている撮影画像を読み出し、ステップＳ３０３で、この画像の光学歪の補正を行う。光学歪とは、レンズの特性により画面周辺部に生じる歪のことである。図８（ａ）に示すような、格子状のパターンは、光学歪により（ｂ）に示すような変形される。歪を補正しないままでは、位置合わせが正確に行えないので、（ｂ）のパターンを（ａ）のパターンに変換する処理を行う。この歪補正は、実際の測定値から近似式を用いて計算してもよいし、あらかじめテーブルを用意しておき、近い値から変換してもよい。また、魚眼レンズによる撮影のように、歪をデフォルメ効果として利用する場合は、一旦（ａ）のパターンに変換して合成した後、（ｂ）のパターンに逆変換処理を行う。この（ａ）のパターンから（ｂ）のパターンに逆変換する場合は、ステップＳ３０７の後に行う（図３のフローチャートには示していない。）。
【００５９】
光学歪の補正が終わると、ステップＳ３０４でぶれの補正を行う。ぶれ補正は、複数枚の画像を用い、その画像間の相関からぶれ量を算出するものである。ぶれ補正を行うためのサーチ範囲の設定に、ステップＳ３０１で求めた値を用いる。連写撮影する際に、通常どの画像も同じサーチ範囲で構わないので、フローチャートの先頭で処理しているが、画像毎にサーチ範囲を設定しなおす場合は、繰り返し処理の中で行う。ぶれ補正の詳細は、後述するする。
【００６０】
ぶれ補正により位置合わせが終わると、ステップＳ３０５で、画像の重ね合わせ処理を行う。ステップＳ３０６では、撮影枚数分だけ、ステップＳ３０２からの処理を繰り返す。全画像の処理が終わった段階で、ステップＳ３０７に進み、合成画像の画面端処理を行う。合成画像の生成には、位置を補正して重ねているため、画面端で画像の重ならない領域が生じる。したがって、このステップで補正処理を行う。ここではいくつかの例を示す。最も簡単な方法は、重ならない領域はカットしてしまうというトリミングの処理である。画像サイズを同じにしたい場合は、補間処理により画像全体を少し拡大する。また別の方法として、重ならない領域のみゲインアップにより明るさを揃えてもよい。撮影枚数をｍ、重なっている枚数をｎとすると、重なり数に応じて（ｍ／ｎ）倍する。画面端の処理を終えると、ステップＳ３０８で、合成画像の表示を行い、ステップＳ３０９でこれを記録メディアに記録する。以上ですべての処理が終了する。
【００６１】
ここで、４枚の画像を補正して合成する場合の処理を説明する。
【００６２】
まず１枚目の画像がメモリより読み出され、光学歪の補正が行われる。１枚目の画像を基準とする場合は、ぶれ補正処理は必要ない。画像を重ね合わせる処理では、１枚目の画像はそのまま一時保存することになる。次に２枚目の画像がメモリより読み出され、光学歪の補正が行われる。ぶれ補正処理は、１枚目の光学歪補正後の画像とのぶれ量を算出する。画像を重ね合わせる処理では、先に一時保存していた１枚目の画像と２枚目のぶれ補正処理後の画像を重ね、これを新たな重ね合わせ画像として、一時保存する。次に３枚目の画像がメモリから読み出され、光学歪の補正が行われる。ぶれ補正処理は、２枚目の光学歪補正後の画像とのぶれ量を算出する。２枚目の画像を基準にぶれ量を算出しているので、全体の補正量は、先に求めたぶれ量と現ぶれ量とを加算した値になる。画像を重ね合わせる処理では、先に一時保存していた画像と３枚目の補正処理後の画像を重ね、これを新たな重ね合わせ画像として、一時保存する。４枚目の画像も同様に、メモリから読み出され、光学歪の補正が行われる。ぶれ補正処理は、３枚目の光学歪補正後の画像とのぶれ量を算出する。３枚目の画像を基準にぶれ量を算出しているので、全体の補正量は、先に求めたぶれ量と現ぶれ量とを加算した値になる。画像を重ね合わせる処理では、先に一時保存していた画像と４枚目の補正処理後の画像を重ね、これを新たな重ね合わせ画像とする。この時点で生成した重ね合わせ画像を、最終的な合成画像とし、記録メディアに記録する。
【００６３】
図４と図６を用いて、図３のステップＳ３０１の処理を詳しく説明する。背景技術で説明したように、手ぶれは周期性のある変動である。図６は、周期Ｔの手ぶれを示す図である。まず、ステップＳ４０１にて、最大ぶれ量角度の設定を行う。図６における最大ぶれ量角度は、θｍａｘである。次にステップＳ４０２で連写間隔情報の取得を行い、ステップＳ４０３でぶれ量角度の範囲設定を行う。図６で、連写間隔がｔｔの時、ぶれ量角度はθとなる。次にステップＳ４０４で画素ピッチの情報を算出する。例えば、撮像素子が縦横２０００×２０００並んでおり、そのサイズが２０×２０ｍｍとすると、画素ピッチＰは、２０／２０００より、１／１０００ｍｍとなる。撮影時の設定で、画像サイズを小さくした場合は、画素ピッチが大きくなる。スモールサイズに設定し、この時の撮像素子数が縦横１０００×１０００に相当するとすると、画素ピッチＰは、２０／１０００より、１／５００ｍｍとなる。更にステップＳ４０５で焦点距離情報を取得する。ステップＳ４０８で、以上の情報を元に手ぶれの範囲を検出する。レンズの焦点距離をｆ、ぶれによる画素の重なり数をｎとすると、
ｎ＝ｆ・θ／Ｐ・・・（１）
となる。ステップＳ４０７では、ｎに補正係数をかけた値をサーチ範囲として決定する。
【００６４】
以上のように、連写間隔の情報を利用すると、サーチ範囲を限定することができ、ぶれ補正を効率的に行うことが可能となる。
【００６５】
図５のフローチャートを用いて、ぶれ補正処理について更に詳しく説明する。ここではブロック毎のマッチング処理により、全体の動きを推定し、補正する方法について説明する。ステップＳ５０１でまず画面を１６画素×１６画素程度の小ブロック群に分割する。ブロックのサイズは任意であるが、小さすぎるとマッチングを正しく行いにくく、大きすぎると処理の負荷が大きくなる。次にステップＳ５０２にて、分割したブロック毎に動きベクトルの検出を行う。動きベクトルは、マッチングの取れた画像間の水平、垂直のずれ量である。次にステップＳ５０３で、動きベクトルの検証を行う。これは、算出した動きベクトルが正しいかどうかの確からしさを検証する処理である。通常のマッチング処理では、対象となるブロックと参照する画像との間で、位置を１画素ずつずらしながら差分二乗和もしくは差分絶対値和を求め、算出値が最小であったところをマッチングの取れた位置としている。したがって、実際にマッチングが取れなくても、サーチ範囲の中のいずれかの位置を算出結果としてしまう。誤算出された動きベクトルには、サーチ範囲中の最大値を含んでいるなどの特徴があるため、これを利用して除外処理を行う。また、画面端でも、対応する領域が見つからない場合があるので、周辺位置に対して除外処理をしてもよい。
【００６６】
ステップＳ５０４では、求めた動きベクトルを後の処理のため、一時的に記憶しておく。１画面分、全ブロックに対してステップＳ５０２からＳ５０４の処理を繰り返す。ステップＳ５０５で全画面分の処理が終わった段階で、ステップＳ５０６の最頻ベクトルの検出を行う。これは、一時記憶しておいた動きベクトルの中からもっとも発生頻度の高かった動きベクトルを求め、そのベクトルの動き量がこの画面のシフトぶれであると推定するものである。ステップＳ４０７では、最頻ベクトル値をシフトのぶれ量として補正する。図８は、ぶれ補正の説明図である。（ａ）と（ｂ）の間で、シフトぶれを求めた結果が（ｃ）である。水平方向のぶれがｄｘ、垂直方向のぶれがｄｙとなっている。ここまでは、シフトぶれに関する補正であったが、次に回転ぶれの補正に関して説明する。ステップＳ５０８にて、先に求めたベクトル値からシフトぶれ量を引いた値を新たなベクトル値とする。手ぶれがシフトぶれのみである場合は、理論的に補正後のベクトル値は（０，０）となる。しかし回転ぶれを含んでいる場合は、（０，０）の近傍、すなわち（０，１）や（−１，０）などといったベクトル値が多く検出される。ステップＳ５０９では、これらのベクトル値を検出する。ステップＳ５１０では、先のステップＳ５０３と同様これらのベクトル値の信頼性を検証する。ステップＳ５１１では、信頼できるベクトルを元に回転角の算出を行う。算出した回転角がこの画面の回転ぶれと推定できるので、ステップＳ５１２で回転角分の回転ぶれ補正を行う。図８（ｄ）は、回転ぶれの補正を説明する図である。図中のｄθがぶれの回転角を示している。これで、シフトぶれと回転ぶれが補正され、位置合わせが終了する。ここでは、シフトぶれの補正の後に回転ぶれの補正を行ったが、シフト量と回転角を求めた後に、一回で補正処理を行うことも可能である。また、シフトぶれの補正後、再度動きベクトルを求めてから回転ぶれを算出してもよい。以上ですべての処理が終了する。
＜第２の実施形態＞
以下、本発明に係る第２の実施形態について説明する。第１の実施形態では、複数枚の画像の撮影から合成画像の生成までの処理をすべてデジタルカメラ内で行っていたのに対し、本実施形態では、撮影した複数枚の画像から合成画像の生成までの処理をソフトウェアで実現する例である。これは、図２のフローチャートにおけるステップＳ２０８の処理に相当する。
【００６７】
図９は、ＰＣとデジタルカメラの連携図であり、ＰＣ３３にデジタルカメラ３１をＵＳＢケーブル３２などでケーブル接続している。これによりデジタルカメラ３１の画像データをＰＣ３３とやり取りできる。なお、ＵＳＢなどのケーブル接続ではなく、デジタルカメラ３１に内蔵される記録部１１９をデジタルカメラ３１から取り外してＰＣ３３などに設けられたスロット３４に差し込むことでデータの引渡しを行ってもよい。ＰＣ３３には予め本発明の実施形態であるソフトウェアがインストールされている。
【００６８】
ソフトウェアで画像合成を行うためには、レンズ焦点距離や連写間隔等の情報が必要であるが、これらは、撮影画像を記録する際に、付加情報として一緒に記録しておく。図１０は、ファイルのフォーマットを簡単に示した図である。画像そのもののデータの後に、付加データが続けて記録されている。ヘッダデータには、データサイズや付加データの記録位置などの情報が含まれている。
【００６９】
本実施形態では、デジタルカメラで撮影された複数枚の画像から合成画像の生成までをアプリケーション側の処理としたが、デジタルカメラ側の処理を、光学歪の補正処理までとしたり、ぶれの補正までとすることもできる。すなわち、処理に必要な情報をＰＣ側に渡すことができれば、デジタルカメラ側とＰＣ側で処理の分担を任意に切り分けることが可能となる。
【００７０】
本実施形態は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録したコンピュータ読み取り可能な記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによって、達成することができる。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７１】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７２】
本実施形態を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【００７３】
尚、本実施形態は、複数の機器（例えば、ホストコンピュータ、インタフェース機器、リーダ、プリンタ等）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置等）に適用してもよい。
【図面の簡単な説明】
【００７４】
【図１】本発明に係る第１の実施形態のデジタルカメラの構成の一例を示すブロック図である。
【図２】本発明に係る第１の実施形態のデジタルカメラで実行される処理を示すフローチャートである。
【図３】本発明に係る第１の実施形態の合成画像の生成処理を示すフローチャートである。
【図４】本発明に係る第１の実施形態における動きベクトルのサーチ範囲の算出方法を示すフローチャートである。
【図５】本発明に係る第１の実施形態の手ぶれ補正処理を示すフローチャートである。
【図６】本発明に係る第１の実施形態の手ぶれの範囲を説明する図である。
【図７】本発明に係る第１の実施形態の光学歪の補正処理を説明する図である。
【図８】本発明に係る第１の実施形態の手ぶれ補正処理を説明する図である。
【図９】本発明に係る第２の実施形態のデジタルカメラとＰＣとを接続したシステムを示す図である。
【図１０】本発明に係る第２の実施形態の画像データのファイルフォーマットを示す図である。
【図１】
2006086741.tif 000003
【図２】
2006086741.tif 000004
【図３】
2006086741.tif 000005
【図４】
2006086741.tif 000006
【図５】
2006086741.tif 000007
【図６】
2006086741.tif 000008
【図７】
2006086741.tif 000009
【図８】
2006086741.tif 000010
【図９】
2006086741.tif 000011
【図１０】
2006086741.tif 000012