以下、図面を参照して本発明の実施の形態を説明する。
[実施形態1]
図1から図11は本発明の実施形態1を示したものであり、図1は撮像装置の構成を示すブロック図である。なお、本実施形態においては、撮像装置としてデジタルカメラを例に挙げて説明するが、これに限定されるものではなく、撮像機能を備えた装置であれば任意の装置であって構わない。
この撮像装置は、交換式レンズ1とカメラ本体2とをインタフェース(I/F)3を介して通信できるように接続して構成されていて、連写して得られる複数枚の画像データを合成して1枚の合成画像データを生成する機能を有している。
交換式レンズ1は、例えばレンズマウントを介してカメラ本体2に対して着脱自在に装着されるようになっており、レンズマウントに形成した電気接点(交換式レンズ1側に設けられた電気接点およびカメラ本体2側に設けられた電気接点)等によりインタフェース3が構成されている。
交換式レンズ1は、レンズ11と、絞り12と、ドライバ13と、フラッシュメモリ14と、マイクロコンピュータ15と、を備えている。
レンズ11は、被写体の光学像をカメラ本体2の後述する撮像素子22上に結像するための撮影光学系である。
絞り12は、レンズ11から撮像素子22へ向かう光束の通過範囲を制御する光学絞りである。
ドライバ13は、マイクロコンピュータ15からの指令に基づき、レンズ11を駆動してフォーカス位置の調整を行い、レンズ11が電動ズームレンズ等である場合にはさらに焦点距離の変更も行う。加えて、ドライバ13は、マイクロコンピュータ15からの指令に基づき、絞り12を駆動して開口径を変化させる。この絞り12の駆動により、被写体の光学像の明るさが変化し、ボケの大きさなども変化する。
フラッシュメモリ14は、マイクロコンピュータ15により実行される制御プログラムや、交換式レンズ1に関する各種の情報を記憶する記憶媒体である。
マイクロコンピュータ15は、いわゆるレンズ側コンピュータであり、ドライバ13、フラッシュメモリ14、およびインタフェース3と接続されている。そして、マイクロコンピュータ15は、インタフェース3を介して後述する本体側コンピュータであるマイクロコンピュータ50と通信し、マイクロコンピュータ50からの指令を受けて、フラッシュメモリ14に記憶されている情報の読出/書込を行い、ドライバ13を制御する。さらに、マイクロコンピュータ15は、この交換式レンズ1に関する各種の情報をマイクロコンピュータ50へ送信する。
インタフェース3は、交換式レンズ1のマイクロコンピュータ15と、カメラ本体2のマイクロコンピュータ50とを、双方向に通信できるように接続する。
次に、カメラ本体2は、メカニカルシャッタ21と、撮像素子22と、IS(Image Stabilization)ユニット23と、アナログ処理部24と、アナログ/デジタル変換部(A/D変換部)25と、バス26と、SDRAM27と、AE処理部28と、AF処理部29と、AWB処理部30と、位置合せ処理部31と、合成処理部32と、画像処理部33と、JPEG処理部38と、ブレ検知ユニット39と、LCDドライバ41と、LCD42と、EVF(電子ビューファインダ:Electronic View Finder)ドライバ43と、EVF44と、メモリインタフェース(メモリI/F)45と、記録媒体46と、操作部47と、フラッシュメモリ48と、マイクロコンピュータ50と、を備えている。
メカニカルシャッタ21は、レンズ11からの光束が撮像素子22へ到達する時間を制御するものであり、例えばシャッタ幕を走行させる構成の光学シャッタとなっている。このメカニカルシャッタ21は、マイクロコンピュータ50の指令により駆動されて、撮像素子22への光束の到達時間、つまり撮像素子22による被写体の露光時間を制御する。
撮像素子22は、撮像面に所定の画素ピッチで2次元状に配列された複数の画素を有し、撮像制御部であるマイクロコンピュータ50の制御に基づき、レンズ11および絞り12からの光束を受光し撮像して(つまり、結像された被写体の光学像を光電変換して)アナログ画像信号を生成する撮像部である。ここに、撮像素子22は、レンズ11の光軸に垂直な面を受光面とするように配置されているために、複数の画素の2次元状配列方向は、レンズ11の光軸に垂直な方向となる。
本実施形態の撮像素子22は、例えば、垂直方向および水平方向に配列された複数の画素の前面に原色ベイヤー配列(R(赤色)G(緑色)B(青色)ベイヤー配列)のカラーフィルタを配置した単板式の撮像素子として構成されている。なお、撮像素子22は、単板式の撮像素子に限らないことは勿論であり、例えば基板厚み方向に色成分を分離するような積層式の撮像素子であっても良い。
ISユニット23は、ブレ検知ユニット39により後述するように検知されたブレ量に基づき、レンズ11と撮像素子22との少なくとも一方を駆動対象として駆動することにより露光中のブレを補正すると共に、1枚の画像の露光が終了して次の1枚の画像の露光が始まるまでの間に駆動対象を所定位置にリセットするセンタリング処理が可能なブレ補正部である。
本実施形態においては、ISユニット23が、ブレ検知ユニット39により後述するように検知される撮像装置の動きに基づき、光軸に垂直な面内において手ブレをキャンセルする方向に撮像素子22を移動するセンサシフト方式の構成を例に挙げて説明する。ただし、ブレ補正部として、レンズ11を移動させるレンズシフト方式を採用しても良いし、センサシフト方式とレンズシフト方式との両方を採用しても構わない。
さらに、ISユニット23は、1枚の画像毎に、露光が終了した段階で、撮像素子22が所定位置である初期位置からどれだけ移動しているかを示すセンタリング情報(つまり、撮像素子22を初期位置にリセットするに必要な移動量を示す情報)をマイクロコンピュータ50へ出力するようになっている。
アナログ処理部24は、撮像素子22から読み出されたアナログ画像信号に対して、リセットノイズ等を低減した上で波形整形を行い、さらに目的の明るさとなるようにゲインアップを行う。
A/D変換部25は、アナログ処理部24から出力されたアナログ画像信号をデジタル画像信号(適宜、画像データという)に変換する。
バス26は、撮像装置内のある場所で発生した各種のデータや制御信号を、撮像装置内の他の場所へ転送するための転送路である。本実施形態におけるバス26は、ISユニット23と、A/D変換部25と、SDRAM27と、AE処理部28と、AF処理部29と、AWB処理部30と、位置合せ処理部31と、合成処理部32と、画像処理部33と、JPEG処理部38と、ブレ検知ユニット39と、LCDドライバ41と、EVFドライバ43と、メモリI/F45と、マイクロコンピュータ50と、に接続されている。
A/D変換部25から出力された画像データ(以下では適宜、RAW画像データという)は、バス26を介して転送され、SDRAM27に一旦記憶される。
SDRAM27は、上述したRAW画像データ、あるいは合成処理部32、画像処理部33、JPEG処理部38等において処理された画像データ等の各種データを一時的に記憶する記憶部である。
AE処理部28は、RAW画像データに基づき、被写体輝度を算出する。ここで算出された被写体輝度は、自動露出(AE)制御、すなわち、絞り12の制御やメカニカルシャッタ21の制御、撮像素子22の露光タイミング制御(あるいは、いわゆる電子シャッタの制御)等に用いられる。
AF処理部29は、RAW画像データから高周波成分の信号を抽出して、AF(オートフォーカス)積算処理により、合焦評価値を取得する。ここで取得された合焦評価値は、レンズ11のAF駆動に用いられる。なお、AFがこのようなコントラストAFに限定されないことは勿論であり、例えば専用のAFセンサ(あるいは撮像素子22上のAF用画素)を用いて位相差AFを行うように構成しても構わない。
AWB処理部30は、RAW画像データに基づき、被写体のカラーバランスを検出して、RGB各成分に対するゲインをそれぞれ算出し、算出したゲインを乗算することでホワイトバランスを調整するオートホワイトバランス処理を行う。
位置合せ処理部31は、連写して得られる複数枚の画像データの内の、任意の2枚の画像データ(一方を、基準画像、他方を対象画像という)に対して、それぞれ所定の領域内における画像データを用いて相関値を算出する相関値演算部であり、算出した相関値に基づいて基準画像に対する対象画像のズレ量を算出する。
具体的に、位置合せ処理部31は、上述したISユニット23からのセンタリング情報に基づき概略の位置ズレを推定して、基準画像と対象画像との共通領域を算出し、基準画像およびにおける対象画像における共通領域を相関値演算領域として設定し、さらに、基準画像の相関値演算領域と、対象画像の相関値演算領域と、の間で相関値算出を行い、相関値を算出し、ひいてはズレ量を算出する。従って、位置合せ処理部31は、相関値を算出するに際して、センタリング処理を行った際のセンタリング情報を用いている。この位置合せ処理部31によるズレ量の算出については、後で、図5〜図11を参照してより詳細に説明する。
合成処理部32は、位置合せ処理部31により算出された相関値に基づく位置ずれに応じて、基準画像と対象画像とを位置合わせしてから合成し、1枚の合成画像データを生成する画像合成部である。ここで行われる画像合成は、例えば、露出量が異なる複数枚の画像を用いた高ダイナミックレンジ画像合成(HDR画像合成)、時分割露光を行った複数枚の画像を用いた加算合成、平均合成、比較明合成、あるいは比較暗合成、画素ピッチの非整数倍の移動量で画素ずらしした複数枚の画像を用いた超解像画像合成、などの何れであっても構わない。
連写合成モードにおいて取得された複数枚の画像を合成する場合には、例えば、まず1枚目に取得された画像を基準画像に設定し、それ以降は合成後の画像を基準に順次設定する(ただし、後述するように、ユーザが最初の基準画像を選択するようにしても構わない)。そして、2枚目、もしくはそれ以降に新たに取得された画像を対象画像に順次設定しながら、位置合せ処理部31および合成処理部32により上述したような処理を行うことを最終画像が取得されるまで行うことにより、最終的な合成画像を生成する。
なお、位置合せ処理部31および合成処理部32による処理は、RAW画像データに対して行っても良いし、画像処理部33によって画像処理が行われた画像データに対して行っても構わない。
画像処理部33は、RAW画像データ、あるいは合成処理部32によりRAW画像データから生成された合成画像データに対して種々の画像処理を行うものであり、WB補正部34、同時化処理部35、色再現処理部36、およびNR処理部37を含んでいる。
WB補正部34は、白色の被写体が白色として観察されるように、画像データに対してホワイトバランス処理を行う。
同時化処理部35は、1画素につきRGB成分の内の1色成分のみが存在するRGBベイヤー配列の画像データから、着目画素に存在しない色成分を周辺画素から補完して求めることにより、全画素がRGBの3色成分を全て備える画像データに変換するデモザイキング処理を行う。
色再現処理部36は、画像データにカラーマトリクス演算を行うことにより、被写体の色をより忠実に再現する処理を行う。
NR処理部37は、画像データに空間周波数に応じたコアリング処理などを行うことによりノイズ低減処理を行う。
こうして画像処理部33によって各種の処理が行われた後の画像データは、SDRAM27に再び記憶される。
JPEG処理部38は、画像データを記録する際には、SDRAM27から画像データを読み出してJPEG圧縮方式に従って圧縮してJPEG画像データを生成し、SDRAM27に記憶させる。このSDRAM27に記憶されたJPEG画像データは、マイクロコンピュータ50によりヘッダ等を付加されて、メモリI/F45を介して記録媒体46にJPEGファイルとして記録される。
また、JPEG処理部38は、圧縮画像データの伸張も行う。すなわち、記録済み画像の再生を行う場合には、マイクロコンピュータ50の制御に基づき、例えばJPEGファイルがメモリI/F45を介して記録媒体46から読み出され、SDRAM27に一旦記憶される。JPEG処理部38は、SDRAM27に記憶されたJPEGファイル中のJPEG画像データをJPEG伸張方式に従って伸張し、伸張した画像データをSDRAM27に記憶させる。
ブレ検知ユニット39は、ジャイロセンサ等を備えたブレ検知部であり、例えば手ブレなどによる撮像装置の動きの大きさをブレ量として検知する。そして、ブレ検知ユニット39は、検知結果をマイクロコンピュータ50へ出力するようになっている。
LCDドライバ41は、SDRAM27に記憶されている画像データを読み出して、読み出した画像データを映像信号へ変換し、LCD42を駆動制御して映像信号に基づく画像をLCD42に表示させる。
LCD42は、上述したようなLCDドライバ41の駆動制御により、画像を表示すると共に、この撮像装置に係る各種の情報を表示する。
EVFドライバ43は、SDRAM27に記憶されている画像データを読み出して、読み出した画像データを映像信号へ変換し、EVF44を駆動制御して映像信号に基づく画像をEVF44に表示させる。
EVF44は、上述したようなEVFドライバ43の駆動制御により、画像を表示すると共に、この撮像装置に係る各種の情報を表示する。
ここに、LCD42またはEVF44において行われる画像表示には、撮影直後の画像データを短時間だけ表示するレックビュー表示、記録媒体46に記録されたJPEGファイルの再生表示、およびライブビュー表示などがある。
メモリI/F45は、記録媒体46へ画像データを記録する制御を行う記録制御部であり、さらに、記録媒体46からの画像データの読み出しも行う。
記録媒体46は、画像データを不揮発に記憶する記録部であり、例えばカメラ本体2に着脱できるメモリカード等により構成されている。ただし、記録媒体46は、メモリカードに限定されるものではなく、ディスク状の記録媒体でも構わないし、その他の任意の記録媒体であっても良い。従って、記録媒体46は、撮像装置に固有の構成である必要はない。
操作部47は、この撮像装置に対する各種の操作入力を行うためのものであり、撮像装置の電源をオン/オフするための電源ボタン、画像の撮影開始を指示するための例えば1st(ファースト)レリーズスイッチおよび2nd(セカンド)レリーズスイッチを有して構成されている2段式操作ボタンでなるレリーズボタン、記録画像の再生を行うための再生ボタン、撮像装置の設定等を行うためのメニューボタン、項目の選択操作に用いられる十字キーや選択項目の確定操作に用いられるOKボタン等の操作ボタンなどを含んでいる。ここに、メニューボタンや十字キー、OKボタン等を用いて設定できる項目には、撮影モード(通常撮影モード、連写合成モード等)、記録モード(JPEG記録モード、RAW+JPEG記録モード等)、再生モードなどが含まれている。この操作部47に対して操作が行われると、操作内容に応じた信号がマイクロコンピュータ50へ出力される。
フラッシュメモリ48は、マイクロコンピュータ50により実行される処理プログラムと、この撮像装置に係る各種の情報と、を不揮発に記憶する記憶媒体である。ここに、フラッシュメモリ48が記憶する情報としては、例えば、画像処理に用いるパラメータ、撮像装置を特定するための機種名や製造番号、ユーザにより設定された設定値、などが幾つかの例として挙げられる。このフラッシュメモリ48が記憶する情報は、マイクロコンピュータ50により読み取られる。
マイクロコンピュータ50は、カメラ本体2内の各部を制御すると共に、インタフェース3を介してマイクロコンピュータ15に指令を送信し交換式レンズ1を制御するものであり、この撮像装置を統括的に制御する制御部である。マイクロコンピュータ50は、ユーザにより操作部47から操作入力が行われると、フラッシュメモリ48に記憶されている処理プログラムに従って、フラッシュメモリ48から処理に必要なパラメータを読み込んで、操作内容に応じた各種シーケンスを実行する。
制御部であるマイクロコンピュータ50は、特に、上述したISユニット23にブレ補正を行わせながら撮像素子22に撮像を行わせて1枚の画像データを取得させ、1枚の画像を露光した直後の撮像素子22の初期位置からのズレ量をセンタリング情報としてISユニット23から取得することを、連写合成モードにおいて取得される全ての画像データに対して行わせる撮像制御部としても機能するようになっている。
次に、図2は、撮像装置の連写合成モードにおける処理を示すフローチャートである。この処理(および、以下の各フローチャートに示す処理)は、制御部であるマイクロコンピュータ50の制御に基づき行われる。
電源ボタンにより撮像装置の電源がオンされて図示しないメインルーチンの処理を行っているときに、操作部47の操作により撮像装置が連写合成モードに設定されると、この処理が実行される。
するとまず、初期設定を行う(ステップS1)。この初期設定では、例えば、連写合成モードにおいて、予め決められている設定値、例えば連写枚数などを読み込む。
次に、レリーズボタンが半押しされて1stレリーズスイッチがオンしているか否かを判定する(ステップS2)。
ここで、1stレリーズスイッチがオフであると判定された場合には、1stレリーズスイッチがオンされるのを待機する。この1stレリーズスイッチがオンされるのを待機する間は、メカニカルシャッタ21が開いた状態となっていて、ライブビューが行われているものとする。
そして、1stレリーズスイッチがオンしていると判定された場合には、ライブビューにおいて取得された最新の画像に基づいて、AE処理部28により測光演算を行い、AF処理部29により測距演算を行って、撮影条件を算出する(ステップS3)。なお、撮影シーンに応じて合成処理を行うか否かを切り替える連写合成モードの場合には、この1stレリーズスイッチが押下されたタイミングで合成処理を行うか否かを判断して、連写枚数などの条件を算出して設定するようにしても良い。
さらに、ブレ検知ユニット39の出力に応じてブレ補正部であるISユニット23を駆動することにより、ブレ補正動作を行う(ステップS4)。これにより、手ブレによる影響を排除した状態で画角を確認することが可能となる。
続いて、レリーズボタンが全押しされて2ndレリーズスイッチがオンしたか否かを判定する(ステップS5)。
ここで、2ndレリーズスイッチがオフであると判定された場合には、1stレリーズスイッチがオフに変化したか否かを判定する(ステップS6)。
そして、1stレリーズスイッチがオフに変化したと判定された場合にはステップS2に戻って上述した処理を行い、1stレリーズスイッチがオンのままであると判定された場合にはステップS5に戻って2ndレリーズスイッチがオンするのを待機する。
こうして、ステップS5において、2ndレリーズスイッチがオンしたと判定された場合には、撮像素子22により露光を行って、生成された画像をアナログ処理部24およびA/D変換部25により処理してSDRAM27に記憶する画像取り込みを行う(ステップS7)。なお、ここでの露光は、メカニカルシャッタ21により行っても良いし、撮像素子22の電子シャッタにより行っても構わない。
このステップS7における露光を行っている最中でも、ブレ検知ユニット39の出力に応じてブレ補正部であるISユニット23を駆動し続けることにより、露光中の手ブレによる露光ブレを補正している。
露光が終了すると、次の露光を行うための準備として、初期位置から移動した位置となっているISユニット23を、再び初期位置に戻すセンタリング処理を行う(ステップS8)。ここでのセンタリング処理は、次の画像を露光する際に、露光中のブレを前画像と同様のストロークで補正するために必要な動作となる。
さらに、マイクロコンピュータ50は、後段の処理に用いるために、ISユニット23からセンタリンク情報を取得して、例えばSDRAM27に一旦記録しておく(ステップS9)。
そして、マイクロコンピュータ50は、連写が完了したか否かを判定して(ステップS10)、完了していないと判定された場合には、必要に応じて撮影条件の変更を行い(ステップS11)、ステップS7へ戻って次の画像の露光と取り込みを行う。
一方、ステップS10において連写が完了したと判定された場合には、取得された複数枚の画像を用いて画像合成を行うことにより、最終的な例えば1枚の合成画像を生成する(ステップS12)。この画像合成の処理については、後で図3を参照して説明する。
こうして合成画像が生成されたら、この処理から図示しないメイン処理にリターンする。
次に、図3は、図2のステップS12における画像合成の処理の詳細を示すフローチャートである。なお、この図3には、ある特定の一枚の画像に対して別の一枚の画像を合成し、以降その合成画像に対して、さらにそれ以外の画像を順次合成して行く処理の例を示しているが、この処理順序に限定されるものではない。
この処理を開始すると、まず、合成処理を行う際の基準となる画像(基準画像)を選択する(ステップS21)。この選択は、LCD42等にグラフィックユーザインタフェース(GUI)を表示して、ユーザに選択させるようにしても良いし、レリーズタイムラグ等を考慮して、連写1枚目を自動的に基準画像として選択するようにしても構わない。
次に、基準画像を除く他の連写画像の中から、基準画像に対して最初に合成する対象画像を選択する(ステップS22)。この処理は、通常は、自動処理により連写順に画像を選択すれば良い。
続いて、累積センタリング情報の算出を行う(ステップS23)。
ここで、センタリング情報について説明する。
通常、手ブレ補正では、露光中の撮像装置の動きを補正するために、ISユニット23を露光中に移動させている。このために、露光終了時点のISユニット23の位置、およびその状態から初期位置に戻る際のセンタリング情報は、連写間隔と露光時間(1枚の画像の露光時間)とが概ね一致する場合(図4に示す例のように、n枚目の露光と(n+1)枚目の露光とが、ほとんど時間を空けることなく行われる場合)においては、連写画像間の位置ズレと考えることができる。
例えば、上記特開2006−86741号公報に記載の技術では、ブレ検知ユニットのブレ情報を用いて連写間に動いた撮像装置の動きを算出している。ここに、ブレ検知ユニットから得られる情報は、ヨー、ピッチ、ロール等の様々な方向の角速度であるために、これら各方向の角速度からブレ補正機構の移動方向に変換して、最終的に撮像面でのズレ量に変換する必要がある。従って、複雑な演算処理が必要となっている。
これに対して、本実施形態において用いるセンタリング情報は、元々、手ブレによるブレが画像に影響を与えないようにするためにISユニット23をシフトさせた量であるから、撮像面でのズレ量を考慮された情報になっている。従って、連写間に動いた撮像装置の動きに基づいて連写画像間の位置ズレを算出する上では、センタリング情報を用いる方がブレ検知ユニット39のブレ情報を用いるよりも演算負荷が小さく効率が良い。
そこで、基準画像および対象画像が選択されると、これら2枚の画像間のセンタリング情報を取得する。このセンタリング処理は、図4に示すように行われる。ここに、図4は連写間隔と露光時間とが概ね一致する場合の各画像の露光とセンタリングの様子を示すタイムチャートである。
図4に示すように、センタリング処理は連写撮影時の各画像間で実施されるために、連続する2枚の画像間のズレ量に相当するが、合成する2枚の画像は連続する2枚の画像であるとは限らない。そこで、2枚の画像間で行ったセンタリング情報を累積した累積センタリング情報を算出する。例えば、
1枚目と2枚目の合成時:「センタリング1−2」の情報
1枚目と4枚目の合成時:「センタリング1−2」「センタリング2−3」「センタリング3−4」の累積情報
をそれぞれの累積センタリング情報とする。
具体的に、(x,y)により撮像面におけるx方向のズレ量およびy方向のズレ量を表し、「センタリング1−2」の情報が(x12,y12)、「センタリング2−3」の情報が(x23,y23)、「センタリング3−4」の情報が(x34,y34)であるとすると、
(x,y)=(x12+x23+x34,y12+y23+y34)
により累積センタリング情報(x,y)を算出すれば良い。
次に、算出された累積センタリング情報を用いて、図5を参照して後述するように相関値演算範囲算出の処理を行う(ステップS24)。
さらに、図9を参照して後述するように、相関値およびベクトル演算を行って、基準画像に対する対象画像のローカルベクトルおよびグローバルベクトルを算出する(ステップS25)。
その後、現在の合成画像に対象画像を合成する処理を行う(ステップS26)。この合成処理は、対象画像を基準画像に位置合わせするように行われるために、生成された合成画像の位置は基準画像と同一となる。また、具体的な画像の合成方法については、例えば上記特開2012−49603号公報に記載されたような、得られたローカルベクトル、グローバルベクトルを用いて位置合せを行い、2枚の画像を合成する方法を用いれば良い。
そして、全ての画像の合成が完了したか否かを判定し(ステップS27)、まだ未合成の画像が存在する場合には、ステップS22へ戻って上述したような処理を行う。
一方、ステップS27において、全ての画像の合成が完了したと判定された場合には、位置合わせの結果、合成されなかった画像周辺部分を必要に応じてトリミング処理し(ステップS28)、この処理からリターンする。
続いて、図5は図3のステップS24における相関値演算範囲算出処理の詳細を示すフローチャートである。
この処理を開始すると、まず、上述したステップS23の処理により算出した累積センタリング情報から、図6に示すような撮像面ズレ量Vsを算出する(ステップS31)。
ここに図6は、ISユニット23における基準画像SIと対象画像OIとの撮像面ズレ量Vsの例を示す図である。
対象画像OIの露光開始時点の中心位置は、センタリング処理によりISユニット23の中心位置Oに一致する。これに対して、基準画像SIの露光終了時点の中心位置Osは、一般に、ISユニット23の中心位置Oとずれた位置にある。このような配置において、撮像素子22の撮像面上における中心位置Osと中心位置Oとのズレ量が撮像面ズレ量Vsである。ここに撮像面ズレ量Vsは、上述において(x,y)成分によりセンタリング情報を示したことから分かるように、レンズ11の光軸に垂直な撮像面を含む平面におけるベクトル量である。
なお、センサシフト方式の場合には、ISユニット23から取得したセンタリング情報が既に撮像面ズレ量Vsとなっているが、レンズシフト方式の場合には、シフトレンズのズレ量と撮像面でのズレ量とが異なるために、取得したセンタリング情報を撮像面でのズレ量に変換する処理を行う。さらに、センサシフト方式とレンズシフト方式とを併用する場合には、レンズシフト方式におけるセンタリング情報を変換した撮像面ズレ量と、センサシフト方式におけるセンタリング情報として取得した撮像面ズレ量と、をベクトル的に加算すれば良い。
次に、算出した撮像面ズレ量Vsを画素ピッチpで次のように割ることで、
Vp=Vs/p
画素単位の画角ズレ量Vpに換算する(ステップS32)。
さらに、算出された画素単位の画角ズレ量Vpに基づいて、基準画像SIにおける相関値演算領域を算出し(ステップS33)、さらに対象画像OIにおける相関値演算領域を算出する(ステップS34)。
図7は基準画像SIに設定された相関値演算領域CCAを示す図、図8は対象画像OIに設定された相関値演算領域CCAを示す図である。
図7に示すように、基準画像SIに対しては、画素単位の画角ズレ量Vpの分だけ画角を削った領域を相関値演算領域CCAとする。
また、図8に示すように、対象画像OIに対しては、正負反転した画素単位の画角ズレ量Vpの分(−Vp)だけ画角を削った領域を相関値演算領域CCAとする。
こうして、基準画像SIおよび対象画像OIにおける相関値演算領域CCAを算出したら、この処理からリターンする。
次に、図9は、図3のステップS25における相関値・ベクトル演算処理の詳細を示すフローチャートである。
ローカルベクトルおよびグローバルベクトルを算出する方法には様々な方法があるが、ここでは一般的なブロックマッチングによる算出方法を例に挙げて説明する。
この処理を開始すると、まず、相関値を算出するための領域の数であるパッチ数、評価用領域である評価パッチEPのサイズ、探索用領域であるサーチパッチSPのサイズなどを設定値として読み込む(ステップS41)。
次に、基準画像SIに対して複数の領域としての評価パッチEPを配置する(ステップS42)。ここに、図10は、基準画像SIの相関値演算領域CCAに評価パッチEPを配置した様子を示す図である。図示のように、評価パッチEPは、例えば一定の間隔をおいて、基準画像SIの相関値演算領域CCA内のみに配置されている。
さらに、対象画像OIに対して、評価パッチEPよりもサイズが大きい領域であるサーチパッチSPを、基準画像SIの評価パッチEPに1対1に対応するように配置する(ステップS43)。ここに、図11は、対象画像OIの相関値演算領域CCAにサーチパッチSPを配置した様子を示す図である。図示のように、サーチパッチSPも、例えば一定の間隔をおいて、対象画像OIの相関値演算領域CCA内のみに配置されている。
続いて、ブロックマッチングを行う。すなわち、位置が対応する評価パッチEPおよびサーチパッチSPを1組選択する。そして、サーチパッチSP内で評価パッチEPをスキャンして、各スキャン位置毎に差分絶対値和(SAD(Sum of Absolute Difference)値)を相関値として算出する(ステップS44)。
そして、スキャンしながら算出された複数のSAD値の内の、最小値を与えるものが最も相関値が高いとして、そのスキャン位置と、元の評価パッチEPの位置と、のベクトルをローカルベクトルとして算出する(ステップS45)。
その後、位置が対応する評価パッチEPおよびサーチパッチSPの組を全て処理し終えたか否かを判定する(ステップS46)。ここで、未だ全ての組の処理を終えていないと判定された場合には、ステップS44へ戻って次の評価パッチEPおよびサーチパッチSPの組を選択して、上述したような処理を行う。従って、相関値の算出は、設定した領域であるパッチ毎に行われる。
こうして、ステップS46において、全ての評価パッチEPおよびサーチパッチSPの組の処理が完了したと判定された場合には、全てのローカルベクトルのベクトルヒストグラムを算出して、算出したベクトルヒストグラムにおける例えば最頻ベクトル(ただし、最頻ベクトルに限るものではなく、平均ベクトルや加重平均ベクトル等であっても構わない)を、グローバルベクトルとしてから(ステップS47)、この処理からリターンする。
このような実施形態1によれば、センタリング情報を用いて相関値を算出するようにしたために、ブレ検知結果をそのまま使うよりも効率的に画像間のズレ量を算出することができる。
具体的に、センタリング情報に基づき、2枚の画像データの共通領域(つまり、合成対象となる領域)を算出し、共通領域を相関値演算領域として相関値を算出するようにしたために、画像全体に対して相関値を算出するよりも効率化を図ることができる。
さらに、2枚の画像データのズレ量がセンタリング情報に基づき概略分かっているために、サーチパッチSPのサイズを大型化する必要がなく、サーチパッチSP内におけるスキャンを高速化することができる。
また、センタリング情報を画素ピッチで割るだけの簡単な演算で基準画像と対象画像のズレ量を算出することができるために、ブレ検知ユニットの出力に基づいてズレ量を算出する技術に比して、小さい演算負荷で相関値演算領域を決めることができる。
[実施形態2]
図12は本発明の実施形態2を示したものであり、図12は撮像装置の連写合成モードにおける処理を示すフローチャートである。
この実施形態2において、上述の実施形態1と同様である部分については同一の符号を付すなどして説明を適宜省略し、主として異なる点についてのみ説明する。
上述した実施形態1においては、図4に示したように、連写における1枚の画像が取得される毎にセンタリング処理を行っていた。しかし、手ブレの大きさがISユニット23の補正限界(ストローク限界)よりも余裕をもって小さく、センタリング処理をしなくても次の画像の露光中のブレを補正可能であると予測される場合には、センタリング処理を行わない方が、合成後にトリミングされる領域を小さくすることができて合成時の画角変化が少なくなる。本実施形態は、この点を考慮したものとなっている。
すなわち、図12に示す処理を開始すると、ステップS1〜S7の処理を上述したように行う。
次に、駆動対象である撮像素子22の現在の位置に基づいて、マイクロコンピュータ50が予測量算出部として機能して、仮にセンタリング処理を行った場合のセンタリング予測量を算出する(ステップS51)。ここに、撮像素子22の現在の位置は、ISユニット23から取得した過去の1つ以上のセンタリング情報に基づいて動き予測等により算出しても良いし、ISユニット23の駆動状態(駆動電流値等)に基づいて算出しても構わない。
そして、算出したセンタリング予測量が、予め定められたセンタリング閾値(センタリングTH)よりも小さいか否かを判定する(ステップS52)。
ここで、センタリング予測量がセンタリングTHよりも小さいと判定された場合には、センタリング処理を行うことなく、ステップS9の処理に進んでセンタリング情報(ここではセンタリングを行っていない旨の情報)を記録し、連写が完了していない場合には次の画像の撮影に移行する。
一方、ステップS52において、センタリング予測量がセンタリングTH以上であると判定された場合には、上述した実施形態1と同様に、ステップS8のセンタリング処理を実行する。
このような実施形態2によれば、上述した実施形態1とほぼ同様の効果を奏するとともに、センタリング予測量が予め定められたセンタリング閾値よりも小さく、センタリング処理を行わなくても露光中の手ブレを抑制可能であると推定される場合には、センタリング処理を行わないようにしたために、合成画像の画角が小さくなるのを抑制することができる。
そして、センタリング処理が必要であるか否かを、ブレ検知ユニット39のブレ検知結果に基づいて判定するのではなく、ISユニット23から取得したセンタリング情報を用いて行うようにしたために、小さい処理負荷で効率的に判定することができる。
[実施形態3]
図13から図18は本発明の実施形態3を示したものであり、図13は画像合成処理を示すフローチャートである。
この実施形態3において、上述の実施形態1,2と同様である部分については同一の符号を付すなどして説明を適宜省略し、主として異なる点についてのみ説明する。
本実施形態は、画角ズレ量Vpの大きさに応じて、サーチパッチSPのサイズを適応的に変化させるものとなっている。
すなわち、図13に示す処理を開始すると、ステップS21〜S23の処理を図3と同様に行う。
次に、相関値演算範囲算出を行うが、本実施形態においては、基準画像SIの全体を相関値演算領域に設定すると共に、対象画像OIの全体を相関値演算領域に設定する(ステップS61)。従って、上述した実施形態1の図5に示したような、基準画像SIと対象画像OIとの共通領域に基づく相関値演算領域の設定は行わない。
続いて、図14を参照して後述するような相関値・ベクトル演算処理を行う(ステップS62)。
その後は、図3と同様にステップS26〜S28の処理を行って、ステップS28の処理を終えたらリターンする。
図14は、図13のステップS62における相関値・ベクトル演算処理の詳細を示すフローチャートである。
この処理を開始すると、相関値を算出するための領域の数であるパッチ数、および評価パッチEPのサイズを設定値として読み込むと共に、画角ズレ量Vpの重みテーブルWcntTBL、画角ズレの最大想定量Vpmax、サーチパッチSPの初期サイズSPinit、サーチパッチSPの最大拡張量SPexを設定値として読み込んでおく(ステップS71)。
次に、図5のステップS31と同様に、累積センタリング情報から撮像面ズレ量Vsを算出し(ステップS72)、図5のステップS32と同様に、撮像面ズレ量Vsを、画素ピッチpを用いて、画素単位の画角ズレ量Vpに換算する(ステップS73)。
こうして得られた画角ズレ量Vpと、画角ズレの最大想定量Vpmaxとの比率|Vp/Vpmax|を算出した上で、算出した比率に応じた重み係数Wcntを画角ズレ量Vpの重みテーブルWcntTBLを用いて算出する(ステップS74)。
ここに、図15は、画角ズレ量Vpの重みテーブルWcntTBLに記録されている、画角ズレ量Vpと画角ズレの最大想定量Vpmaxとの比率|Vp/Vpmax|と、重み係数Wcntと、の関係を示す線図である。
この図15に示す例では、重み係数Wcntは、比率|Vp/Vpmax|が1未満のある値になるまでは単調増加(例えば比例して増加)するが、比率|Vp/Vpmax|がある値になったところで1に達し、比率|Vp/Vpmax|がある値よりも大きくなっても1のままとなっている。
続いて、次の数式1に示すように、ステップS74により得られた重み係数Wcntを、サーチパッチSPのサイズを変更する際の重み係数Weightとする。
[数1]
Weight=Wcnt
そして、位置合せ処理部31が、サーチパッチSPのサイズSPsizeを、サーチパッチSPの初期サイズSPinitと最大拡張量SPexとを用いて次の数式2に示すように算出する(ステップS75)。
[数2]
SPsize=Weight×SPex+SPinit
その後、サーチパッチSPのサイズを、ステップS75において算出したサーチパッチSPのサイズSPsizeに変更する(ステップS76)。
ここに、図16は基準画像SIの全体に配置された評価パッチEPの様子を示す図、図17は対象画像OIの全体に配置されたサーチパッチSPの、画角ズレ量Vpが小さいときの様子を示す図、図18は対象画像OIの全体に配置されたサーチパッチSPの、画角ズレ量Vpが大きいときの様子を示す図である。
図17および図18を比較すれば分かるように、画角ズレ量が大きいときには、サーチパッチSPのサイズが大きくなるように設定される。
その後は、ステップS42〜S47の処理を上述した図9と同様に行って、この処理からリターンする。
このような実施形態3によれば、センタリング情報を画素ピッチで割るだけの簡単な演算で基準画像と対象画像のズレ量を算出することができるために、ブレ検知ユニットの出力に基づいてズレ量を算出する技術に比して、小さい演算負荷で相関値演算領域を決めることができる。こうして、センタリング情報を用いた相関値の算出が、ブレ検知結果をそのまま使う場合に比して効率的となる。
また、センタリング情報に基づいて画角ズレ量が大きいと判断した場合に、サーチパッチSPのサイズを大きくし、逆に、画角ズレ量が小さいと判断した場合には、サーチパッチSPのサイズを適度な大きさに設定することにより、ローカルベクトルおよびグローバルベクトルを適切な演算負荷で効率的に算出することができる。
[実施形態4]
図19から図22は本発明の実施形態4を示したものであり、図19は相関値・ベクトル演算処理を示すフローチャートである。
この実施形態4において、上述の実施形態1〜3と同様である部分については同一の符号を付すなどして説明を適宜省略し、主として異なる点についてのみ説明する。
本実施形態は、基準画像SIと対象画像OIとに回転方向のズレが発生する場合を考慮したものとなっている。
ここに、図20はISユニット23における基準画像と対象画像とのズレ量に回転ズレ量が含まれる場合の例を示す図である。
本実施形態においては、図20に示すように、基準画像SIの露光終了時点の中心位置OsがISユニット23の中心位置O(つまり、対象画像OIの露光開始時点の中心位置)とずれた位置にあるだけでなく、基準画像SIと対象画像OIとには回転方向のズレ量(回転ズレ量)θが生じている例を考える。
まず、センタリング情報に回転方向の情報が含まれる場合には、(x,y,θ)により撮像面におけるx方向のズレ量、y方向のズレ量、および回転ズレ量を表すとすれば、累積センタリング情報(x,y,θ)は、例えば、次のようになる。
例えば、「センタリング1−2」の情報が(x12,y12,θ12)、「センタリング2−3」の情報が(x23,y23,θ23)、「センタリング3−4」の情報が(x34,y34,θ34)であるとすると、
(x,y,θ)=(x12+x23+x34,y12+y23+y34
,θ12+θ23+θ34)
により累積センタリング情報(x,y,θ)を算出すれば良い。
そして、基準画像SIと対象画像OIとのズレ量に回転ズレ量が含まれる場合においても、まず、図5〜図8を参照して説明したように、シフト方向のズレ量を表す画素単位の画角ズレ量Vpに基づいて、水平方向および垂直方向(x,y)の位置合わせを行う(図21参照)。
その後に、図19に示す処理を開始すると、まず、ステップS41〜S42の処理を上述した図9と同様に行う。
次に、回転方向の累積センタリング情報を取得する(ステップS81)。
ここで、取得した累積センタリング情報に、回転方向の情報が含まれているか否かを判定する(ステップS82)。
そして、回転方向の情報が含まれている(つまり、回転方向にセンタリング処理がなされた)と判定した場合には、図5〜図8を参照して説明したような相関値演算領域CCAの中心(図21参照)を、回転中心RCとして算出する(ステップS83)。
続いて、図21に示すように、算出した回転中心RC周りに対象画像OIを回転ズレ量θだけ回転させる(ステップS84)。ここに、図21は、対象画像OIを回転中心RC周りに回転ズレ量θだけ回転させる様子を示す図である。
このステップS84を行った場合には回転された対象画像OIに対して、また、ステップS82において累積センタリング情報に回転方向の情報が含まれていないと判定された場合には、回転されていない対象画像OIに対して、ステップS43の処理によりサーチパッチSPの配置を行う。ここに、図22は、回転された対象画像OIに対するサーチパッチSPの配置の例を示す図である。
その後も、ステップS44〜S47の処理を上述した図9と同様に行って、この処理からリターンする。
このような実施形態4によれば、上述した実施形態1とほぼ同様の効果を奏するとともに、センタリング情報に2枚の画像データの回転ズレ量が含まれている場合に、回転ズレ量に基づいて一方の画像データを回転させて相関値を算出するようにしたために、回転方向のセンタリングが行われた場合にも対応することができる。
[実施形態5]
図23から図25は本発明の実施形態5を示したものであり、図23は相関値・ベクトル演算処理を示すフローチャートである。
この実施形態5において、上述の実施形態1〜4と同様である部分については同一の符号を付すなどして説明を適宜省略し、主として異なる点についてのみ説明する。
上述した実施形態4では、基準画像SIと対象画像OIとの回転方向のズレに対応するために、対象画像OIを回転ズレ量θだけ回転させていた。これに対して本実施形態は、サーチパッチSPを回転させるものとなっている。
すなわち、図23の処理を開始すると、ステップS41〜S43の処理を上述した図9と同様に行って、評価パッチEPを配置した後に、サーチパッチSPを一旦配置する。
次に、ステップS81〜S82の処理を上述した図19と同様に行って、回転方向の累積センタリング情報を取得し、取得した情報に回転方向の情報が含まれているか否かを判定する。
ここで、回転方向の情報が含まれていると判定した場合には、ステップS83の処理を上述した図19と同様に行って回転中心RCを算出する。
続いて、算出した回転中心RC周りに、対象画像OIに対して全てのサーチパッチSPを、回転ズレ量θだけ回転させる(ステップS91)。ここに、図24は、対象画像OIに対してサーチパッチSPを回転中心RC周りに回転ズレ量θだけ回転させる様子を示す図である。
このステップS91を行った場合にはサーチパッチSPが回転された対象画像OIに対して、また、ステップS82において累積センタリング情報に回転方向の情報が含まれていないと判定された場合には、サーチパッチSPが回転されていない対象画像OIに対して、ステップS44の処理を上述した図9と同様に行う。
そして、ステップS44によりサーチパッチSP内で評価パッチEPをスキャンして算出された複数の差分絶対値和(SAD値)の内の、最小値を与える(つまり、相関性が最も高い)組に係るスキャン位置と元の評価パッチEPの位置とのベクトルを、ローカルベクトルLVpreとして算出する。ここに、i番目のパッチの組に対して算出されるローカルベクトルをLVpre(i)と表記することにする。
ここで、図25は、回転後のサーチパッチSPAの位置と回転前のサーチパッチSPBの位置とからローカルベクトルLVを算出する方法を説明するための図である。
次に、算出したローカルベクトルLVpre(i)を用いて、回転前のi番目のサーチパッチSPBの中心位置E1(i)と、回転後のi番目のサーチパッチSPBの中心位置E2(i)と、例えば図25に示すような適宜の座標基準Oとに基づいて、次の数式3に示すようなベクトル演算を行うことにより、i番目のパッチの組に対する最終的なローカルベクトルLV(i)を算出する(ステップS92)。
[数3]
その後、ステップS46の処理により、総数n個のパッチの組全てに対してローカルベクトルLV(i)を算出したか否かを判定し、全てのパッチの組の処理を終えるまで上述したステップS44およびステップS92の処理を繰り返して行う。
こうして、ステップS46において、全ての評価パッチEPおよびサーチパッチSPの組の処理が完了したと判定された場合には、グローバルベクトルGVを算出する(ステップS93)。本実施形態においてはパッチ毎に回転量が異なるために、ここでのグローバルベクトルGVの算出も、それぞれのパッチ毎に算出する。
具体的に、上述したように相関値に基づき算出されたローカルベクトルLVpre(i)を用いて、例えば次の数式4に示すような平均値として、グローバルベクトルGVpreを一旦算出する。
[数4]
そして、算出したグローバルベクトルGVpreを、回転前のi番目のサーチパッチSPBの中心位置E1(i)と、回転後のi番目のサーチパッチSPBの中心位置E2(i)と、座標基準Oとに基づいて、次の数式5に示すようにベクトル演算することにより、i番目のパッチの組に対する最終的なグローバルベクトルGV(i)を算出する。
[数5]
こうして、全てのパッチの組に対してグローバルベクトルGV(i)を算出したら、この処理からリターンする。
このような実施形態5によれば、対象画像OIを回転させる代わりに複数の領域であるサーチパッチSPを回転させて相関値を算出することによっても、上述した実施形態4とほぼ同様の効果を奏することができる。
[実施形態6]
図26から図29は本発明の実施形態6を示したものであり、図26は相関値・ベクトル演算処理を示すフローチャートである。
この実施形態6において、上述の実施形態1〜5と同様である部分については同一の符号を付すなどして説明を適宜省略し、主として異なる点についてのみ説明する。
基準画像SIと対象画像OIとにシフト方向のズレが生じただけでなく、さらに回転方向のズレが生じた場合には、回転中心RCに近いほどブレが小さく、回転中心RCから遠ざかるに従ってブレが大きくなる。さらに、回転ズレ量θの値が大きいほど、回転中心RCに近いか遠いかでブレの大きさの相違が顕著になる。
そこで本実施形態は、回転中心RCからの距離r、および回転ズレ量θに応じて、サーチパッチSPのサイズを変更するようにしたものとなっている。
すなわち、図26に示す処理を開始すると、まず、相関値を算出するための領域の数であるパッチ数、および評価パッチEPのサイズを設定値として読み込むと共に、ISユニット23における回転方向の最大補正量θmax、サーチパッチSPの初期サイズSPinit、サーチパッチSPの最大拡張量SPex、回転中心RCからの距離rの重みテーブルWrTBL、回転ズレ量θの重みテーブルWθTBLを設定値として読み込んでおく(ステップS101)。
次に、ステップS42〜S43,ステップS81〜S82の処理を上述したように行って、取得した情報に回転方向の情報が含まれていると判定した場合には、ステップS83の処理を上述したように行って回転中心RCを算出する。
続いて、位置合せ処理部31が、相関値演算領域CCA内における回転中心RCからの最大距離rmax(例えば、回転中心RCから最も遠いパッチの中心までの距離)を算出する(ステップS102)。
そして、累積センタリング情報の回転ズレ量θと回転方向の最大補正量θmaxとの絶対値比率|θ/θmax|を算出した上で、算出した比率に応じた重み係数Wθを、図27に示すような回転ズレ量θの重みテーブルWθTBLを用いて算出する(ステップS103)。
ここに図27は、回転ズレ量θの重みテーブルWθTBLに記録されている、回転ズレ量θと回転方向の最大補正量θmaxとの比率|θ/θmax|と、重み係数Wθと、の関係を示す線図である。
この図27に示す例では、重み係数Wθは、比率|θ/θmax|が1未満のある値になるまでは単調増加(例えば比例して増加)するが、比率|θ/θmax|がある値になったところで1に達し、比率|θ/θmax|がある値よりも大きくなっても1のままとなっている。
その後、ステップS91の処理を上述したように行って、回転中心RC周りに、対象画像OIに対して全てのサーチパッチSPを、回転ズレ量θだけ回転させる。
このステップS91を行った場合、また、ステップS82において回転方向の情報が含まれていないと判定された場合には、各パッチの回転中心RCからの距離rを算出する(ステップS104)。すなわち、本実施形態の位置合せ処理部31は、回転中心RCと、複数の領域であるパッチそれぞれの領域中心と、の距離rを算出する距離算出部としての機能を備えている。
次に、各パッチの回転中心RCからの距離rと最大距離rmaxとの比率r/rmaxを算出した上で、算出した比率r/rmaxに応じた重み係数Wrを、図28に示すような距離rの重みテーブルWrTBLを用いて算出する(ステップS105)。
ここに図28は、回転中心RCからの距離rの重みテーブルWrTBLに記録されている、距離rと最大距離rmaxとの比率r/rmaxと、重み係数Wrと、の関係を示す線図である。
この図28に示す例では、重み係数Wrは、比率r/rmaxに応じて単調増加(例えば比例して増加)しており、比率r/rmaxが1になったところで重み係数Wrも1になっている。
続いて、上述したように得られた重み係数Wθと重み係数Wrとを次の数式6に示すように乗算して、サーチパッチSPのサイズを変更する際の最終的な重み係数Weightを算出する。
[数6]
Weight=Wθ×Wr
こうして算出した重み係数Weightを用いて、位置合せ処理部31が、上述した数式2によりサーチパッチSPのサイズSPsizeを算出する(ステップS106)。
そして、サーチパッチSPのサイズを、ステップS106において算出したサーチパッチSPのサイズSPsizeに変更する(ステップS107)。
ここに、図29は、対象画像OIに対して回転中心RC周りに回転ズレ量θだけ回転させたサーチパッチSPを、回転中心RCからの距離に応じた大きさに変更した様子を示す図である。
図示のように、相関値演算領域CCA内に配置されているサーチパッチSPは、回転中心RC周りに回転ズレ量θだけ回転されていると共に、回転中心RCからの距離が遠いほど、サイズが大きくなっている。
そして、ステップS44〜S47の処理を上述したように行うことで、全てのパッチの組に対する処理が行われ、その後にこの処理からリターンする。
なお、ここではサーチパッチSPのサイズを、回転中心RCからの距離rと、回転ズレ量θと、の両方に応じて最適化したが、何れか一方のみに応じて最適化しても構わない。
また、ここでは、回転ズレ量θおよび距離rに応じてサーチパッチSPのサイズを変更する技術を、サーチパッチSPを回転させる実施形態5の方法に適用した例を説明したが、これに限るものではなく、対象画像OIを回転させる実施形態4の方法に適用してももちろん構わない。
このような実施形態6によれば、上述した実施形態4あるいは実施形態5とほぼ同様の効果を奏するとともに、サーチパッチSPのサイズが、回転中心RCからの距離rに応じて、さらに回転ズレ量θに応じて最適化されるために、回転ズレがある場合の相関値、ひいてはベクトルの算出を、効率良くかつ精度良く行うことができる。
[実施形態7]
図30から図33は本発明の実施形態7を示したものであり、図30は露光時間が連写間隔よりも短い場合の各画像の露光とセンタリングの様子を示すタイムチャートである。
この実施形態7において、上述の実施形態1〜6と同様である部分については同一の符号を付すなどして説明を適宜省略し、主として異なる点についてのみ説明する。
上述したように、連写間隔と露光時間が概ね一致する場合(図4参照)には、センタリング情報と連写画像間の位置ズレとが概ね一致する。しかし、図30に示すように、連写間隔と露光時間とが一致せず、例えば露光時間が連写間隔よりもかなり短い場合には、センタリング情報と連写画像間の位置ズレとは一致しない。
具体的に、図30には、各画像の露光時間がTe、連写間隔(フレームレートではなく、連写を行う時間間隔)がTaであって、未露光時間(Ta−Te)が露光時間Teよりも長い場合、つまり、
Te<(Ta−Te)
となる場合を示している。
このような場合には、n枚目の画像の露光終了時点でISユニット23を初期位置にリセットして得られるセンタリング情報(ひいては、n枚目の画像の露光終了時点におけるISユニット23の位置)は、n枚目の画像と(n+1)枚目の画像との画像間の位置ズレ量と一致しないために、センタリング情報を用いて画像同士の位置合わせをしようとしても位置ズレが生じてしまう。そして、この位置ズレは、未露光時間における手ブレが大きいほど大きくなる。
本実施形態は、このような、連写間隔と露光時間とが一致しない場合に対応するものとなっている。
図31は、相関値・ベクトル演算処理を示すフローチャートである。
この図31に示す処理を開始すると、まず、相関値を算出するための領域の数であるパッチ数、および評価パッチEPのサイズを設定値として読み込むと共に、露光時間Teの重みテーブルWexpTBL、サーチパッチSPの初期サイズSPinit、サーチパッチSPの最大拡張量SPexを設定値として読み込んでおく(ステップS111)。
次に、図30に示すような連写時の露光時間Teを読み込むと共に(ステップS112)、連写間隔Taを読み込んで(ステップS113)、これらの比率Te/Taを算出した上で、算出した比率Te/Taに応じた重み係数Wexpを、図32に示すような露光時間Teの重みテーブルWexpTBLを用いて算出する(ステップS114)。
ここに図32は、露光時間Teの重みテーブルWexpTBLに記録されている、露光時間Teと連写間隔Taとの比率Te/Taと、重み係数Wexpと、の関係を示す線図である。
この図32に示す例では、重み係数Wexpは、比率Te/Taが1未満のある値になるまでは1のままであるが、比率Te/Taがある値になったところで単調減少を開始し、比率Te/Taが1になったところで0になっている。
こうして得られた重み係数Wexpを、次の数式7に示すように、サーチパッチSPのサイズを変更する際の重み係数Weightとする。
[数7]
Weight=Wexp
こうして算出した重み係数Weightを用いて、位置合せ処理部31が、上述した数式2によりサーチパッチSPのサイズSPsizeを算出する(ステップS115)。
そして、サーチパッチSPのサイズを、ステップS115において算出したサーチパッチSPのサイズSPsizeに変更する(ステップS116)。
ここに、図33は、露光時間Teが連写間隔Taよりも短い場合のサーチパッチSPのサイズSPsizeの例を示す図である。
一方、露光時間Teと連写間隔Taとが概ね一致する場合のサーチパッチSPのサイズSPsizeは、例えば上述した図11に示したようになる。
図11と図33とを比較すれば分かるように、露光時間Teが連写間隔Taよりも短くなると、サーチパッチSPのサイズSPsizeが大きくなっている。
その後は、ステップS42〜S47の処理を上述したように行って、この処理からリターンする。
このような実施形態7によれば、上述した実施形態1とほぼ同様の効果を奏するとともに、連写時の連写間隔と露光時間とに応じて(つまり、未露光時間における手ブレの影響を考慮して)サーチパッチSPのサイズを変更するようにしたために、露光時間Teが連写間隔Taよりも短いときでも、相関値、ひいてはベクトルの算出を、効率良くかつ精度良く行うことができる。
なお、上述では主として撮像装置について説明したが、撮像装置と同様の処理を行う画像処理方法であっても良いし、コンピュータに撮像装置と同様の処理を行わせるための処理プログラム、該処理プログラムを記録するコンピュータにより読み取り可能な一時的でない記録媒体、等であっても構わない。
また、本発明は上述した実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明の態様を形成することができる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除しても良い。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
具体例としては、実施形態3に示したような画角ズレ量Vpと画角ズレの最大想定量Vpmaxとの比率|Vp/Vpmax|に応じたサーチパッチSPのサイズ変更技術と、実施形態6に示したような回転ズレ量θと回転方向の最大補正量θmaxとの比率|θ/θmax|に応じたサーチパッチSPのサイズ変更技術と、実施形態6に示したような距離rと最大距離rmaxとの比率r/rmに応じたサーチパッチSPのサイズ変更技術と、実施形態7に示したような露光時間Teと連写間隔Taとの比率Te/Taに応じたサーチパッチSPのサイズ変更技術と、を適宜に組み合わせても構わない。この例に限らず、上記実施形態に示した各技術を組み合わせても良い。
このように、発明の主旨を逸脱しない範囲内において種々の変形や応用が可能であることは勿論である。