(57)【特許請求の範囲】
【請求項１】
所定の速度で移動する被写体を撮像して得られた複数の画像を合成処理して合成画像を得る画像処理装置であって、
前記複数の画像の各々を複数のブロックに分割して、前記ブロックの各々についてその動きベクトルを検出する検出手段と、
前記複数の画像を得た際の焦点距離および露光間隔に応じて前記動きベクトルを選別する選別手段と、
前記選別手段によって選別された動きベクトルに基づいて前記複数の画像におけるずれを補正して前記複数の画像を合成処理して前記合成画像を得る合成手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記検出手段は、前記ブロックの各々において抽出したエッジの信号レベルの総和が予め設定された第１の閾値を超えるブロックを特徴ブロックとして選択し、前記特徴ブロックについて前記動きベクトルを検出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記検出手段は、前記特徴ブロックの数が予め設定された第２の閾値を超えた場合に、前記特徴ブロックについて前記動きベクトルを検出することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記選別手段は、前記焦点距離および露光間隔に応じて前記複数の画像における前記被写体の移動量の最大量を示す被写体最大移動量を推定して、前記被写体最大移動量よりも小さいスカラー量を有する動きベクトルを選別することを特徴とする請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記選別手段は、前記動きベクトルの全てにおいてそのスカラー量のばらつき度を算出し、前記焦点距離および露光間隔に加えて、当該ばらつき度に応じて前記動きベクトルを選別することを特徴とする請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項６】
前記選別手段は、前記被写体最大移動量に応じて選別された動きベクトルの全てにおいてそのスカラー量のばらつき度を算出し、当該ばらつき度に応じて前記動きベクトルをさらに選別することを特徴とする請求項４に記載の画像処理装置。
【請求項７】
前記ばらつき度は前記スカラー量の平均値および標準偏差であることを特徴とする請求項５又は６に記載の画像処理装置。
【請求項８】
前記選別手段は前記平均値および前記標準偏差に基づいて前記動きベクトルを選別するための選別範囲を設定し、当該選別範囲にそのスカラー量がある動きベクトルを選別することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記被写体は天空に位置する星であることを特徴とする請求項１〜８のいずれか１項に記載の画像処理装置。
【請求項１０】
請求項１〜９のいずれか１項に記載の画像処理装置と、
前記被写体を撮像して、前記複数の画像を得る撮像手段と、
前記画像処理装置で得られた合成画像をメモリに記録する記録手段と、
を有することを特徴とする撮像装置。
【請求項１１】
所定の速度で移動する被写体を撮像して得られた複数の画像を合成処理して合成画像を得る画像処理装置の制御方法であって、
前記複数の画像の各々を複数のブロックに分割して、前記ブロックの各々についてその動きベクトルを検出する検出ステップと、
前記複数の画像を得た際の焦点距離および露光間隔に応じて前記動きベクトルを選別する選別ステップと、
前記選別ステップで選別された動きベクトルに基づいて前記複数の画像におけるずれを補正して前記複数の画像を合成処理して前記合成画像を得る合成ステップと、
を有することを特徴とする制御方法。
【請求項１２】
所定の速度で移動する被写体を撮像して得られた複数の画像を合成処理して合成画像を得る画像処理装置で用いられる制御プログラムであって、
前記画像処理装置が備えるコンピュータに、
前記複数の画像の各々を複数のブロックに分割して、前記ブロックの各々についてその動きベクトルを検出する検出ステップと、
前記複数の画像を得た際の焦点距離および露光間隔に応じて前記動きベクトルを選別する選別ステップと、
前記選別ステップで選別された動きベクトルに基づいて前記複数の画像におけるずれを補正して前記複数の画像を合成処理して前記合成画像を得る合成ステップと、
を実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、その制御方法、および制御プログラム、並びに撮像装置に関し、特に、複数枚の画像を合成処理するための画像処理装置に関する。
【背景技術】
【０００２】
一般に、天体を撮影する際には、星の光量が微量であることを考慮して３０秒又は１分などの長時間の露光を行うことが多い。そして、天体は地球の自転に合わせて日周運動をしているので、長時間の露光を行うと星（天体）が点像とならずに光跡となってしまう。
【０００３】
光跡を回避するため、星が光跡にならない程度の露光時間で複数枚の画像を撮影して、画像間で生じる日周運動による星のずれを補正して、複数枚の画像を１枚の画像に合成することが行われている。これによって、星を光跡とすることなく、長秒の露光を行った場合と同様にして天体を撮像することができる。
【０００４】
複数枚の画像において生じる星のずれを補正する際には、画像を複数のブロックに分割して、各ブロックについてその動きベクトルを算出する。その後、動きベクトルに基づいて画像の動きを算出してずれ補正を行っている。
【０００５】
例えば、被写体である天体の明るさに応じてトータルの露光時間を決定して、星が光跡にならない程度の露光時間でＮ回の分割露光を行って、画像のずれ補正を行うようにしたものがある（特許文献１参照）。
【０００６】
さらに、画像を複数のブロックに分割して、ブロックに孤立点があると、当該ブロックについて動きベクトルを検出して、画像のずれ補正を行うようにしたものがある（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−２５９１８４号公報
【特許文献２】特開２００８−１０９５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、動きベクトルを求める際には、ノイズなどの外乱の影響によってブロックの各々について精度よく動きベクトルが検出できないことがある。このような場合に、特許文献１および２に記載の手法では、精度の低い動きベクトルが画像の動きを算出する際に用いられることになる。その結果、画像間のずれを精度よく補正することができず、画像がぶれて合成されてしまうことがある。
【０００９】
そこで、本発明の目的は、複数枚の画像を合成処理する際、ノイズなどの外乱が多い撮影シーンにおいても精度よく画像のずれ補正を行って合成処理を行うことのできる画像処理装置、その制御方法、および制御プログラム、並びに撮像装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記の目的を達成するため、本発明による画像処理装置は、所定の速度で移動する被写体を撮像して得られた複数の画像を合成処理して合成画像を得る画像処理装置であって、前記複数の画像の各々を複数のブロックに分割して、前記ブロックの各々についてその動きベクトルを検出する検出手段と、前記複数の画像を得た際の焦点距離および露光間隔に応じて前記動きベクトルを選別する選別手段と、前記選別手段によって選別された動きベクトルに基づいて前記複数の画像におけるずれを補正して前記複数の画像を合成処理して前記合成画像を得る合成手段と、を有することを特徴とする。
【００１１】
本発明による撮像装置は、上記の画像処理装置と、前記被写体を撮像して前記複数の画像を得る撮像手段と、前記画像処理装置で得られた合成画像をメモリに記録する記録手段と、を有することを特徴とする。
【００１２】
本発明による制御方法は、所定の速度で移動する被写体を撮像して得られた複数の画像を合成処理して合成画像を得る画像処理装置の制御方法であって、前記複数の画像の各々を複数のブロックに分割して、前記ブロックの各々についてその動きベクトルを検出する検出ステップと、前記複数の画像を得た際の焦点距離および露光間隔に応じて前記動きベクトルを選別する選別ステップと、前記選別ステップで選別された動きベクトルに基づいて前記複数の画像におけるずれを補正して前記複数の画像を合成処理して前記合成画像を得る合成ステップと、を有することを特徴とする。
【００１３】
本発明による制御プログラムは、所定の速度で移動する被写体を撮像して得られた複数の画像を合成処理して合成画像を得る画像処理装置で用いられる制御プログラムであって、前記画像処理装置が備えるコンピュータに、前記複数の画像の各々を複数のブロックに分割して、前記ブロックの各々についてその動きベクトルを検出する検出ステップと、前記複数の画像を得た際の焦点距離および露光間隔に応じて前記動きベクトルを選別する選別ステップと、前記選別ステップで選別された動きベクトルに基づいて前記複数の画像におけるずれを補正して前記複数の画像を合成処理して前記合成画像を得る合成ステップと、を実行させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、ノイズなどの外乱が多い撮影シーンにおいても精度よく画像のずれ補正を行って合成処理を行うことができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態による画像処理装置を備える撮像装置の一例についてその構成を示すブロック図である。
【図２】図１に示すカメラで行われる合成撮像モードによる撮像処理を説明するためのフローチャートである。
【図３】図２の示すずれ補正量算出処理の一例を説明するためのフローチャートである。
【図４】天の赤道における星の移動と撮像部（撮像素子）との関係を示す図である。
【図５】図１に示すカメラで行われる動きベクトルの検出を説明するため図であり、（ａ）は基準輝度画像を示す図、（ｂ）は対象輝度画像を示す図、（ｃ）は特徴ブロックの選択結果を示す図、（ｄ）は動きベクトルの検出結果を示す図である。
【図６】図３に示す動きベクトル選択処理の一例を説明するためのフローチャートである。
【図７】図１に示すカメラで行われる動きベクトル選択処理を説明するための図であり、（ａ）は動きベクトルの検出結果を示す図、（ｂ）は被写体最大移動量を用いた際の動きベクトルの選択結果を示す図、（ｃ）は（ｂ）に示す動きベクトル選択結果に対してさらに動きベクトルのスカラー量のばらつき度を用いて動きベクトルを選択した際の動きベクトルの選択結果を示す図である。
【図８】図１に示すカメラにおいて動きベクトル選択処理を行う際の動きベクトルを選択する選択範囲を説明するための図であり、（ａ）は被写体最大移動量による動きベクトルの選択範囲を示す図、（ｂ）は動きベクトルのスカラー量のばらつき度による動きベクトルの選択範囲を示す図である。
【発明を実施するための形態】
【００１６】
以下に、本発明の実施の形態による画像処理装置を備える撮像装置の一例について図面を参照して説明する。
【００１７】
図１は、本発明の実施の形態による画像処理装置を備える撮像装置の一例についてその構成を示すブロック図である。
【００１８】
図示の撮像装置は、例えば、デジタルカメラ（以下単にカメラと呼ぶ）１００であり、撮影レンズユニット（以下単に撮影レンズと呼ぶ）１０３を有している。この撮影レンズ１０３は、ズームレンズおよびフォーカスレンズを含むレンズ群である。撮影レンズ１０３の後段にはシャッター１０１が配置され、このシャッター１０１には絞り機能が備えられている。
【００１９】
シャッター１０１の後段には、撮像部２２が配置されている。撮像部２２は光学像（被写体像）を電気信号（アナログ信号）に変換するＣＣＤ又はＣＭＯＳ素子などの撮像素子を備える撮像センサーである。Ａ／Ｄ変換器２３は、撮像部２２の出力であるアナログ信号をデジタル信号に変換する。
【００２０】
バリア１０２は、撮影レンズ１０３を含む撮像系を覆うことによって、撮影レンズ１０３、シャッター１０１、および撮像部２２を含む撮像系の汚れおよび破損を防止する。
【００２１】
画像処理部２４は、Ａ／Ｄ変換器２３の出力であるデジタル信号（画像データ）、又はメモリ制御部１５からの画像データに対して所定の画素補間および縮小処理などのリサイズ処理と色変換処理とを行う。また、画像処理部２４はメモリ制御部１５から得た２枚の画像データに対して、その１つを基準画像とし、基準画像に対する画像のずれおよび大きさを示す動きベクトルを検出する。
【００２２】
さらに、画像処理部２４は、撮影の結果得られた画像データを用いて所定の演算処理を行う。そして、システム制御部５０は、画像処理部２４で得られた演算結果に基づいて露光制御および測距制御を行う。これによって、ＴＴＬ（スルー・ザ・レンズ）方式のＡＦ（オートフォーカス）処理、ＡＥ（自動露出）処理、およびＥＦ（フラッシュプリ発光）処理が行われる。
【００２３】
加えて、画像処理部２４は撮影の結果得られた画像データを用いて所定の演算処理を行って、当該演算結果に基づいてＴＴＬ方式のＡＷＢ（オートホワイトバランス）処理を行う。
【００２４】
Ａ／Ｄ変換回路２３の出力である画像データは、画像処理部２４およびメモリ制御部１５を介して、或いはメモリ制御部１５を介してメモリ３２に書き込まれる。メモリ３２には、撮影の結果得られた画像データが格納されるとともに、表示部２８に表示するための表示用画像データが格納される。なお、メモリ３２は、所定枚数の静止画像、所定時間の動画像および音声を格納するための十分な記憶容量を備えている。また、メモリ３２は画像表示用のメモリ（ビデオメモリ）を兼ねている。
【００２５】
Ｄ／Ａ変換器１３は、メモリ３２に格納された表示用画像データをアナログ画像信号に変換して表示部２８に送る。これによって、表示部２８には表示用画像データに応じた画像が表示される。このようにして、メモリ３２に格納された表示用画像データはＤ／Ａ変換器１３を介して表示部２８に表示されることになる。なお、表示部２８は、例えば、ＬＣＤである。
【００２６】
Ａ／Ｄ変換器２３で一度Ａ／Ｄ変換されメモリ３２に格納された画像データをＤ／Ａ変換器１３においてＤ／Ａ変換して、表示部２８に逐次転送して表示することによって、表示部２８は電子ビューファインダとして機能し、スルー画像表示（ライブビュー表示）を行う。
【００２７】
不揮発性メモリ５６は、電気的に消去・記録可能なメモリであって、例えば、ＥＥＰＲＯＭが用いられる。不揮発性メモリ５６には、システム制御部５０の動作用の定数およびプログラムなどが記憶される。このプログラムとは、後述する各種フローチャートを実行するためのプログラムである。
【００２８】
システム制御部５０は、カメラ１００全体を制御する。システム制御部５０は、前述の不揮発性メモリ５６に記録されたプログラムを実行して、後述する各処理を行う。システムメモリ５２は、例えば、ＲＡＭであり、システムメモリ５２には、システム制御部５０の動作用の定数、変数、および不揮発性メモリ５６から読み出したプログラムなどが展開される。なお、システム制御部はメモリ３２、Ｄ／Ａ変換器１３、および表示部２８など制御して表示制御を行う。
【００２９】
システムタイマー５３は各種制御に用いる時間および内蔵された時計の時間を計測する計時部である。モード切替スイッチ６０、シャッターボタン６１、および操作部７０の各々はシステム制御部５０に各種の動作指示を入力する際に用いられる。
【００３０】
モード切替スイッチ６０は、システム制御部５０の動作モードを、例えば、静止画記録モード、動画記録モード、および再生モードなどのいずれかに切り替える。静止画記録モードに含まれるモードとして、例えば、オート撮影モード、オートシーン判別モード、マニュアルモード、撮影シーン別の撮影設定となる各種シーンモード、プログラムＡＥモード、およびカスタムモードがある。
【００３１】
モード切り替えスイッチ６０を用いれば、メニューボタンに含まれるモードのいずれかに直接切り替えることができる。また、モード切り替えスイッチ６０を用いてメニューボタンに一旦切り換えた後、メニューボタンに含まれるモードのいずれかに他の操作部材を用いて切り替えるようにしてもよい。同様に、動画撮影モードにも複数のモードが含まれるようにしてもよい。
【００３２】
シャッターボタン６１の操作途中、つまり、シャッターボタン６１が半押し（撮影準備指示）されると、第１シャッタースイッチがオンとなって、第１シャッタースイッチ信号ＳＷ１がシステム制御部５０に送られる。そして、第１シャッタースイッチ信号ＳＷ１に応答して、システム制御部５０の制御下でＡＦ（オートフォーカス）処理、ＡＥ（自動露出）処理、ＡＷＢ（オートホワイトバランス）処理、ＥＦ（フラッシュ自動調光発光）処理などの動作が開始される。
【００３３】
シャッターボタン６１の操作完了、つまり、シャッターボタン６１が全押し（撮影指示）されると、第２シャッタースイッチがオンとなって第２シャッタースイッチ信号ＳＷ２がシステム制御部５０に送られる。システム制御部５０は、第２シャッタースイッチ信号ＳＷ２に応答して、撮像部２２の信号読み出しから記録媒体２００に画像データを書き込むまでの一連の撮影処理の動作を開始する。
【００３４】
操作部７０に備えられた各操作部材は、表示部２８に表示される種々の機能アイコンを選択操作することなどによって場面毎に適宜機能が割り当てられ、各種機能ボタンとして作用する。機能ボタンとして、例えば、終了ボタン、戻るボタン、画像送りボタン、ジャンプボタン、絞込みボタン、および属性変更ボタンがある。例えば、メニューボタンが押されると、各種の設定を行うためのメニュー画面が表示部２８に表示される。ユーザは、表示部２８に表示されたメニュー画面と、上下左右の４方向ボタンおよびＳＥＴボタンとを用いて直感的に各種設定を行うことができる。
【００３５】
操作部７０には操作部材の一つとしてコントローラホイールが備えられており、このコントローラホイールは方向ボタンとともに選択項目を指示する際などに用いられる。
【００３６】
コントローラホイールを回転操作すると、当該操作量に応じて電気的なパルス信号が生成され、このパルス信号に基づいて、システム制御部５０はカメラ１００を制御する。そして、システム制御部５０は当該パルス信号によって、コントローラホイールが回転操作された角度および回転数などを判定することができる。
【００３７】
なお、コントローラホイールは回転操作が検出できる操作部材であればどのようなものでもよい。例えば、ユーザの回転操作に応じてコントローラホイール自体が回転してパルス信号を発生するダイヤル操作部材であってもよい。また、タッチセンサからなる操作部材であってもよく、この場合には、コントローラホイール自体は回転せず、コントローラホイール上におけるユーザの指の回転動作などを検出する（所謂タッチホイール）。
【００３８】
電源制御部８０は、電池検出回路、ＤＣ−ＤＣコンバータ、および通電するブロックを切り替えるスイッチ回路などによって構成され、電池の装着の有無、電池の種類、および電池残量の検出を行う。また、電源制御部８０は、その検出結果およびシステム制御部５０の指示に基づいてＤＣ−ＤＣコンバータを制御して、必要な電圧を必要な期間、記録媒体２００を含む各部に供給する。
【００３９】
電源部３０は、アルカリ電池又はリチウム電池などの一次電池やＮｉＣｄ電池、又はＮｉＭＨ電池又はＬｉ電池などの二次電池を有するとともに、ＡＣアダプターなどを有している。記録媒体Ｉ／Ｆ１８は、メモリカード（半導体メモリ）又はハードディスクなどの記録媒体２００とのインターフェースである。記録媒体２００には、撮影の結果得られた画像データが記録される。
【００４０】
通信部５４は、無線回線又は有線ケーブルによって外部機器と接続される。そして、通信部５４は、システム制御部５０の制御下で画像データおよび音声データなどを外部機器と送受する。通信部５４は無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）およびインターネットに接続可能である。
【００４１】
通信部５４は撮影の結果得られた画像データ（スルー画像を含む）、そして、記録媒体２００に記録された画像データを外部機器に送信可能である。さらに、通信部５４は外部機器から画像データおよびその他の各種情報を受信することができる。
【００４２】
図２は、図１に示すカメラ１００で行われる合成撮像モードによる撮像処理を説明するためのフローチャートである。
【００４３】
なお、図示のフローチャートに係る処理は、システム制御部５０が不揮発性メモリ５６に記憶された処理プログラムを読み出してシステムメモリ５２に展開して実行することによって行われる。
【００４４】
図示のカメラ１００においては静止画記録モードの一つとして星空合成モード（合成撮像モードともいう）が備えられている。星空合成モードにおいては、カメラ１００において複数回の撮像が行われる。そして、星（天体）について、撮像の結果得られた複数枚の画像間におけるずれを補正した後、画像合成を行って１枚の合成画像を生成する。
【００４５】
なお、星空合成モードによる撮像処理は、例えば、カメラ１００において星空合成モードに設定された後、撮影指示がなされると開始される。そして、以下の説明においては、カメラ１００は三脚に固定され、被写体である星の方向に向けられているものとする。
【００４６】
星空合成モードが開始されると、システム制御部５０は、一回の撮像に係る露光時間、必要な合成枚数（つまり、所定枚数）、およびゲインなどの撮像条件を決定する（ステップＳ２０１）。例えば、システム制御部５０は、ユーザがシャッターボタン６１を半押しして第１のシャッタースイッチがオンとなった場合の被写体の露光時間、必要な合成枚数、およびゲインを決定する。この際、システム制御部５０は、露光時間として星が光跡とならない露光時間を決定する。
【００４７】
続いて、システム制御部５０は、ユーザがシャッターボタン６１を全押しして第２のシャッタースイッチ６４がオンした場合に、前述の露光時間に応じて２枚の画像の撮像する（ステップＳ２０２：撮像処理）。
【００４８】
ここでは、システム制御部５０は、露光によって撮像部２２から出力されたアナログ信号をＡ／Ｄ変換機２３によってＡ／Ｄ変換処理してデジタル信号（画像データ）を画像処理部２４に出力する。そして、システム制御部５０は、画像処理部２４を制御して画像データをＹＵＶ形式に変換して、ノイズリダクション処理およびエッジ強調処理を行う。
【００４９】
その後、システム制御部５０は、メモリ制御部１５を介して画像処理部２４で得られた２枚の出力画像データをメモリ３２に格納する。さらに、システム制御部５０はシステムタイマー５３から露光開始時間を得て、当該露光開始時間を画像データに対応づけてメモリ３２に格納する。この際には、システム制御部５０は、ＡＦ制御で得られた焦点距離に係る情報をメモリ３２に記録する。
【００５０】
次に、システム制御部５０は、ずれ補正量が算出されている状態（ずれ補正量算出済み）であるか否かを判定する（ステップＳ２０３）。ずれ補正量が算出されていない状態であると（ステップＳ２０３において、ＮＯ）、システム制御部５０はメモリ３２に格納されている画像データのうち最も新しい画像データをずれ補正量を算出する際の基準画像に設定する。そして、システム制御部５０は基準画像を用いてずれ補正量を算出する（ステップＳ２０４）。なお、ここでは、ずれ補正量として、後述するアフィン係数を用いるが、ずれ補正量として水平および垂直方向の大きさを用いるようにしてもよい。
【００５１】
ステップＳ２０４の処理の後、システム制御部５０はずれ補正量の算出が成功したか否かを判定する（ステップＳ２０５）。ずれ補正量の算出が成功しないと（ステップＳ２０５において、ＮＯ）、システム制御部５０はステップＳ２０２の処理に戻って撮像処理を行う。
【００５２】
ここでは、システム制御部５０は１回の撮像を行って、メモリ３２に格納されている２枚の画像データのうち露光開始時間が古い画像データに新たな撮像で得られた画像データを上書してメモリ３２に格納する。
【００５３】
一方、ずれ補正量の算出に成功すると（ステップＳ２０５において、ＹＥＳ）、システム制御部５０はずれ補正量を用いて画像処理部２４によってメモリ３２に格納された２枚の画像データを合成処理する（ステップＳ２０６）。なお、ずれ補正量が算出されている状態であると（ステップＳ２０３において、ＹＥＳ）、システム制御部５０はステップＳ２０６の処理に進む。
【００５４】
ステップＳ２０６の処理においては、システム制御部５０はずれ補正量を単位時間当たりの移動量に正規化する。そして、システム制御部５０は、合成を行う２枚の画像データに関してメモリ３２に格納された露光開始時間の差と上記の移動量とに応じて補正量を求める。
【００５５】
次に、システム制御部５０はメモリ３２に格納された画像データにおいて露光開始時間が最も新しい画像を基準画像とする。システム制御部５０は画像処理部２４によって上記の補正量を用いて基準画像に他方の画像（古い画像）の位置を合わせて合成処理を行う。合成処理が終了すると、システム制御部５０はメモリ３２に現在の合成枚数を格納する。
【００５６】
続いて、システム制御部５０は、ステップＳ２０１で合成枚数が必要な合成枚数である所定枚数に達したか否かを判定する（ステップＳ２０７）。合成枚数が所定枚数に達していないと（ステップＳ２０７において、ＮＯ）、システム制御部５０はステップＳ２０２の処理に戻る。
【００５７】
一方、合成枚数が所定枚数に達すると（ステップＳ２０７において、ＹＥＳ）、システム制御部５０は画像処理部２４で処理された合成画像（合成画像データ）を記録媒体２００に記録する（ステップＳ２０８）。そして、システム制御部５０は星空合成モードによる撮像処理を終了する。
【００５８】
図３は、図２の示すずれ補正量算出処理の一例を説明するためのフローチャートである。
【００５９】
なお、ずれ補正量算出処理においては、システム制御部５０はメモリ３２に格納された合成対象である２枚の画像データを用いてずれ補正量算出処理を行う。
【００６０】
ずれ補正量算出処理を開始すると。システム制御部５０は合成対象である２枚の画像データに関する露光開始時間と露光開始時における焦点距離とを撮影情報としてメモリ３２から読み込む（ステップＳ３０１）続いて、システム制御部５０は、露光開始時間と焦点距離とに応じて、被写体の最大移動量を推定する（ステップＳ３０２）。
【００６１】
ここで、被写体を星とした場合において、被写体の最大移動量の推定手法について説明する。
【００６２】
図４は、天の赤道における星の移動と撮像部２２（撮像素子）との関係を示す図である。
【００６３】
天の赤道は地球の赤道面を天空に延長した際に天球上に交わる点を結んだ線である。星は日周運動によって移動するが、天の赤道上の星（天体）が最も速く移動する。天の赤道上においては、２４時間当たり３６０度回転するので、１秒当たりの回転量θｓ（度／秒）は、次の式（１）で得られる。
【００６４】
θｓ＝３６０／（２４×６０×６０）      （１）
合成対象である２枚の画像データに関する露光開始時間を、露光開始時間が早い順にそれぞれＴ１および  Ｔ２（秒）とすると、２枚の画像データにおける露光間隔Ｔ（秒）は、次の式（２）で得られる。
【００６５】
Ｔ＝Ｔ２−Ｔ１      （２）
そして、２枚の画像データにおける露光間隔当たりの星の回転量θ（度）は、次の式（３）で与えられる。
【００６６】
θ＝θｓ×Ｔ      （３）
いま、前述の焦点距離をｆ（ｍｍ）とすると、撮像素子上における星の移動量Ｄｉｓｔ（ｍｍ）は、次の式（４）で与えられる。
【００６７】
Ｄｉｓｔ＝ｆ×ｔａｎθ      （４）
撮像素子のピクセル数（画素数）に移動量Ｄｉｓｔを換算すると、２枚の画像データの間において星がとりうる移動量の最大値Ｄｉｓｔｍａｘ（ピクセル）を求めることができる。
【００６８】
システム制御部５０は、不揮発性メモリ５６に格納された式（１）〜式（４）を用いて最大値Ｄｉｓｔｍａｘを算出して、当該最大値Ｄｉｓｔｍａｘを被写体最大移動量（被写体の移動量の最大量）としてメモリ３２に格納する。
【００６９】
ここでは、天の赤道における星の最大移動量を推定する手法について説明したが、ＧＰＳ又は方位センサーなどを用いて、天の北極周りなど異なる方角における星の最大移動量を求めるようにしてもよい。さらに、こでは、星を被写体とした場合の被写体最大移動量の推定手法について説明したが、飛行機など一定の速度で移動する被写体についても、被写体の移動速度を通信部５４から取得して最大移動量を求めるなど他の被写体の最大移動量を推定する際にも適用することができる。
【００７０】
再び図３を参照して、システム制御部５０は、Ｍ×Ｎ画素（ＭおよびＮの各々は１以上の整数）で構成されるブロック枠をメモリ３２に格納する（ステップＳ３０３：ブロック分割）。次に、システム制御部５０はメモリ３２に格納された画像データのうち露光開始時間が最新の画像データを基準画像として設定する。そして、システム制御部５０は当該基準画像における輝度信号を示す輝度画像（以下基準輝度画像と呼ぶ）を画像処理部２４に出力して、画像処理部２４においてエッジ抽出を行う。
【００７１】
例えば、システム制御部５０は、基準輝度画像のエッジ抽出を行うため、画像処理部２４によって基準輝度画像に対して高域通過フィルタ処理を行う。そして、システム制御部５０はメモリ３２に格納されたブロック枠を基準輝度画像に対して適用して基準輝度画像を複数のブロックに分割する。
【００７２】
その後、システム制御部５０は、ブロックの各々において抽出されたエッジの信号レベルの総和が動きベクトル検出のための予め設定された第１の閾値ＩＴＨを超えるか否かを判定する。エッジの信号レベルの総和が第１の閾値ＩＴＨ以下であると、システム制御部５０は画像間のずれ検出の基準となる画像特徴が少なく、動きベクトルの検出が困難であるとする。そして、システム制御部５０は、ブロックの各々において抽出されたエッジの信号レベルの総和を求めて、当該総和が第１の閾値ＩＴＨを超える場合に当該ブロックを特徴ブロックとして選択する（ステップＳ３０４）。
【００７３】
なお、特徴ブロックの選択の際には、ブロック毎に抽出されたエッジの信号レベルの総和に応じて特徴ブロックの選択を行うようにしたが、輝度のコントラストが大きいブロックを特徴ブロックとして選択するようにしてもよい。
【００７４】
続いて、システム制御部５０は、選択された特徴ブロックの数を数える。そして、システム制御部５０は特徴ブロックの数が予め設定された第２の閾値ＮＢＴＨを超えているか否かを判定する（ステップＳ３０５）。
【００７５】
特徴ブロックの数が第２の閾値ＮＢＴＨ以下であると（ステップＳ３０５において、ＮＯ）、システム制御部５０はずれ補正量の算出に失敗したとしてずれ補正量算出処理を終了する。一方、特徴ブロックの数が第２の閾値ＮＢＴＨを超えていると（ステップＳ３０５において、ＹＥＳ）、システム制御部５０は基準輝度画像を画像処理部２４に送る。
【００７６】
続いて、システム制御部５０はメモリ３２に格納された２枚の画像データにおいて基準画像ではない他方の画像データを対象画像として、対象画像における輝度画像（以下対象輝度画像と呼ぶ）を画像処理部２４に送り、画像処理部２４によって動きベクトルを検出する（ステップＳ３０６）。
【００７７】
図５は、図１に示すカメラ１００で行われる動きベクトルの検出を説明するため図である。そして、図５（ａ）は基準輝度画像を示す図であり、図５（ｂ）は対象輝度画像を示す図である。また、図５（ｃ）は特徴ブロックの選択結果を示す図であり、図５（ｄ）は動きベクトルの検出結果を示す図である。
【００７８】
前述のようにして、図５（ａ）に示す基準輝度画像について、特徴ブロックの選択処理を行った際、図５（ｃ）に示す特徴ブロックの選択結果が得られたものとする。図５（ｃ）にはおいては、白地で示すブロックが特徴ブロックである。
【００７９】
システム制御部５０は、画像処理部２４によって特徴ブロックの各々について、図５（ｂ）に示す対象輝度画像とのパターンマッチングを行う。そして、システム制御部５０は画像処理部２４によって特徴ブロック毎にその動きベクトルを検出する（図５（ｄ）参照）。この際、システム制御部５０はパターンマッチングで用いる探索範囲を特徴ブロックの中心から水平および垂直方向に、例えば、被写体最大移動量の２倍となるように画像処理部２４に設定する。
【００８０】
なお、動きベクトル検出の際には、被写体最大移動量よりも探索範囲を広く設定すればよいので、例えば、システム制御部５０は不揮発メモリ５６から探索範囲の補正量を固定値で得て、当該固定値を被写体最大移動量に加えて探索範囲を設定するようにしてもよい。
【００８１】
次に、システム制御部５０は、検出した動きベクトルから、メモリ３２に格納された被写体最大移動量に応じて補正量の算出に用いる動きベクトルを選択する（ステップＳ３０７）。
【００８２】
図６は、図３に示す動きベクトル選択処理の一例を説明するためのフローチャートである。
【００８３】
動きベクトル選択処理を開始すると、システム制御部５０は、ステップＳ３０６の処理で検出した動きベクトルの一つについてそのスカラー量を算出する。そして、システム制御部５０は、メモリ３２に格納された被写体最大移動量Ｄｉｓｔｍａｘと当該動きベクトルのスカラー量とを比較して、スカラー量が推定値である被写体最大移動量Ｄｉｓｔｍａｘよりも小さいか否かを判定する（ステップＳ４０１）。
【００８４】
スカラー量が被写体最大移動量Ｄｉｓｔｍａｘよりも小さいと（ステップＳ４０１において、ＹＥＳ）、システム制御部５０は当該動きベクトルを選択する（ステップＳ４０２）。一方、スカラー量が被写体最大移動量Ｄｉｓｔｍａｘ以上であると（ステップＳ４０１において、ＮＯ）、システム制御部５０は当該動きベクトルを除外する（ステップＳ４０３）。
【００８５】
ステップＳ４０２又はＳ４０３の処理の後、システム制御部５０は、ステップＳ３０６の処理で検出した全ての動きベクトルついて選択処理を終了したか判定する（ステップＳ４０４）。全ての動きベクトルついて選択処理を終了していないと（ステップＳ４０４において、ＮＯ）、システム制御部５０は、ステップＳ４０１の処理に戻って、次の動きベクトルのスカラー量と被写体最大移動量Ｄｉｓｔｍａｘとを比較する。
【００８６】
一方、全ての動きベクトルついて選択処理を終了すると（ステップＳ４０４において、ＹＥＳ）、システム制御部５０は、選択した動きベクトルの全てについてスカラー量のばらつき度を算出する（ステップＳ４０５）。例えば、システム制御部５０は選択した動きベクトルのスカラー量の平均値を求めるとともに、標準偏差を求めて、これら平均値および標準偏差をばらつき度としてメモリ３２に格納する。
【００８７】
図７は、図１に示すカメラ１００で行われる動きベクトル選択処理を説明するための図である。そして、図７（ａ）は動きベクトルの検出結果を示す図であり、図７（ｂ）は被写体最大移動量を用いた際の動きベクトルの選択結果を示す図である。また、図７（ｃ）は、図７（ｂ）に示す動きベクトル選択結果に対してさらに動きベクトルのスカラー量のばらつき度を用いて動きベクトルを選択した際の動きベクトルの選択結果を示す図である。
【００８８】
いま、図３に示すステップＳ３０６の処理によって、図７（ａ）に示す動きベクトル検出結果が得られたとする。そして、図６に示すステップＳ４０１〜Ｓ４０４の処理によって、図７（ｂ）に示す動きベクトル選択結果が得られたものとする。
【００８９】
図８は、図１に示すカメラ１００において動きベクトル選択処理を行う際の動きベクトルを選択する選択範囲を説明するための図である。そして、図８（ａ）は被写体最大移動量による動きベクトルの選択範囲を示す図であり、図８（ｂ）は動きベクトルのスカラー量のばらつき度による動きベクトルの選択範囲を示す図である。
【００９０】
ステップＳ４０１〜Ｓ４０４の処理においては、被写体最大移動量に応じて動きベクトルの選択を行っており、ここでは、動きベクトルのスカラー量が被写体最大移動量よりも小さいと、当該動きベクトルが選択される。つまり、ここでは、図８（ａ）に示すように、動きベクトルの選択範囲（選別範囲）が設定されて、スカラー量が被写体最大移動量よりも小さい動きベクトルが選択されることになる。この結果、ノイズおよび雲などの外乱の影響を受ける動きベクトルが除外することが容易となる。
【００９１】
再び図６を参照して、ステップＳ４０５の処理の後、システム制御部５０は前述のスカラー量の平均値および標準偏差に基づいて、利用する動きベクトルのスカラー量の上限値および下限値を設定する（ステップＳ４０６）。そして、システム制御部５０はこれら上限値および下限値をメモリ３２に記録する。
【００９２】
ここでは、図８（ｂ）に示すように、システム制御部５０はスカラー量の平均値から標準偏差を減算して得られた第１の演算値を下限値とし、スカラー量の平均値と標準偏差とを加算した第２の演算値を上限値とする。そして、システム制御部５０は上限値および下限値で規定される範囲を動きベクトルの選択範囲とする。
【００９３】
続いて、システム制御部５０はメモリ３２に格納されているスカラー量の上限値と下限値とに応じて動きベクトルの選択範囲を設定する。そして、システム制御部５０は動きベクトルのスカラー量が当該選択範囲にあるか否かを判定する（ステップＳ４０７）。
【００９４】
動きベクトルのスカラー量が選択範囲にあると（ステップＳ４０７において、ＹＥＳ）、システム制御部５０は当該動きベクトルを選択する（ステップＳ４０８）。一方、動きベクトルのスカラー量が選択範囲にないと（ステップＳ４０７において、ＮＯ）、システム制御部５０は当該動きベクトルを除外する（ステップＳ４０９）。
【００９５】
ステップＳ４０７〜Ｓ４０９の処理においては、図８（ｂ）に示すように、ばらつき度に応じて被写体の動きに近い動きベクトルを選択することができる。この結果、ノイズおよび雲などの外乱の影響を受ける動きベクトルを除外することが容易となる。
【００９６】
ステップＳ４０８又はＳ４０９の処理の後、システム制御部５０は、ステップＳ４０１〜Ｓ４０４の処理で選択した全ての動きベクトルついて選択処理を終了したか判定する（ステップＳ４１０）。全ての動きベクトルついて選択処理を終了していないと（ステップＳ４１０において、ＮＯ）、システム制御部５０は、ステップＳ４０７の処理に戻って、次の動きベクトルについてそのスカラー量が上限値と下限値とによって規定される選択範囲にあるか否かを判定する。
【００９７】
一方、全ての動きベクトルついて選択処理を終了すると（ステップＳ４１０において、ＹＥＳ）、システム制御部５０は、最終的に選択された動きベクトルをメモリ３２に記録して動きベクトル選択処理を終了する。
【００９８】
上述のようにして、動きベクトル選択処理を行うと、例えば、図７（ｃ）に示す動きベクトル選択結果が得られる。
【００９９】
再び図３を参照して、ステップＳ３０７の処理において動きベクトルを選択した後、システム制御部５０は選択した動きベクトルの個数を数える。そして、システム制御部５０は選択した動きベクトルの個数が予め設定された第３の閾値ＮＶＴＨを超えているか否かを判定する（ステップＳ３０８）。動きベクトルの個数が第３の閾値ＮＶＴＨ以下であると（ステップＳ３０８において、ＮＯ）、システム制御部５０はずれ補正量算出処理に失敗したとしてずれ補正量算出処理を終了する。
【０１００】
一方、動きベクトルの個数が第３の閾値ＮＶＴＨを超えていると（ステップＳ３０８において、ＹＥＳ）、システム制御部５０は、動きベクトルの統合を行う（ステップＳ３０９）。ここでは、システム制御部５０は選択した動きベクトルに応じて、基準画像に対する対象画像の動きを算出する。例えば、システム制御部５０は対象画像の動きをアフィン係数によって表すものとする。
【０１０１】
いま、基準画像における注目画素の座標を（ｘ，ｙ）とし、当該注目画素が対応する対象画像の座標を（ｘ’，ｙ’）とすると、座標は（ｘ’，ｙ’）はアフィン変換におけるアフィン係数（ａ，ｂ，ｃ，ｄ）を用いて、式（５）で表される。
【数１】
0006418879.tif 000002
【０１０２】
システム制御部５０は、複数の動きベクトルのうち少なくとも３つの動きベクトルを用いてアフィン係数を算出する。そして、システム制御部５０は、算出したアフィン係数を用いて、次の式（６）によって動きベクトルの誤差Ｅを求める。
【数２】
0006418879.tif 000003
【０１０３】
続いて、システム制御部５０は所定の回数、動きベクトルの選び方のパターンを変更して上述の処理を行って、誤差Ｅ以下になる動きベクトルの個数が最も多いアフィン係数を求める。そして、システム制御部５０は当該アフィン係数をずれ補正量として決定して、アフィン係数をメモリ３２に格納しずれ補正量算出処理を終了する。
【０１０４】
このように、本発明の実施の形態では、検出した動きベクトルを露光間隔および焦点距離に応じて被写体が取りうる動きベクトルの大きさで限定し、ずれ補正の際に用いる動きベクトルを選択する。この結果、複数枚の画像を合成処理する際、ノイズなどの外乱が多い撮影シーンにおいても精度よく画像のずれ補正を行って合成処理を行うことができる。
【０１０５】
なお、上述の実施の形態では、デジタルカメラを例に挙げて説明したが、複数の画像について画像間のずれを補正して合成処理を行うＰＣなどの機器にも適用することができる。
【０１０６】
上述の説明から明らかなように、図１に示す例では、少なくとも画像処理部２４およびシステム制御部５０が画像処理装置を構成する。また、システム制御部５０および画像処理部２４は、検出手段、選別手段、および合成手段として機能する。さらに、撮影レンズ１０３、シャッター１０１、撮像部２２、およびＡ／Ｄ変換器２４は撮像手段として機能し、システム制御部５０は記録手段として機能する。
【０１０７】
以上、本発明について実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
【０１０８】
例えば、上記の実施の形態の機能を制御方法として、この制御方法を画像処理装置に実行させるようにすればよい。また、上述の実施の形態の機能を有するプログラムを制御プログラムとして、当該制御プログラムを画像処理装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
【０１０９】
また、本発明は、以下の処理を実行することによっても実現される。つまり、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種の記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵなど）がプログラムを読み出して実行する処理である。
【符号の説明】
【０１１０】
２２  撮像部
２４  画像処理部
２８  表示部
５０  システム制御部
５４  通信部
６０  モード切替スイッチ
６１  シャッターボタン
７０  操作部
８０  電源制御部
２００  記録媒体
【図１】
0006418879.tif 000004
【図２】
0006418879.tif 000005
【図３】
0006418879.tif 000006
【図４】
0006418879.tif 000007
【図５】
0006418879.tif 000008
【図６】
0006418879.tif 000009
【図７】
0006418879.tif 000010
【図８】
0006418879.tif 000011