(57)【要約】【課題】  補正限界に達する確率を低くして、かつ手ぶれなどによる画像ぶれを軽減することができる画像処理装置、画像処理方法、画像処理プログラムを提供する。【解決手段】  動き軌跡算出部１２０は、取得されたフレーム画像の動きベクトルを算出し、動きベクトルを用いてフレーム画像の動き軌跡を算出する。補正動き軌跡算出部１３０では、動き軌跡にローパスフィルタをかけて、高い周波数成分を減衰させた補正動き軌跡を算出する。補正位置ベクトル算出部１４０は、動き軌跡と補正動き軌跡の差から補正位置ベクトルを算出する。補正位置ベクトルが補正可能な範囲を超えているフレームが存在する場合、補正動き軌跡算出部は、ローパスフィルターの遮断周波数を高くして、補正限界を超えている付近の補正動き軌跡を更新する。補正フレーム画像生成部１５０は、算出された補正位置ベクトルに基づいて補正フレーム画像を生成する。【選択図】      図１
2006285655.tif 000002
【特許請求の範囲】
【請求項１】
動画像または時系列に連続する静止画像からフレーム画像を取得するフレーム画像取得部と、
前記取得したフレーム画像を用いてフレーム画像の動き軌跡を算出する動き軌跡算出部と、
所定の遮断周波数より高い周波数帯域を減衰させるフィルタを用いて前記動き軌跡から高周波成分を減衰させた第１の補正動き軌跡を算出する補正動き軌跡算出部と、
前記動き軌跡と前記第１の補正動き軌跡とのフレームごとの座標の差から、前記取得したフレーム画像を切り出す位置を示す補正位置ベクトルを算出する補正位置ベクトル算出部と、
前記算出された補正位置ベクトルに基づいて、前記取得されたフレーム画像を切り出した補正フレーム画像を生成する補正フレーム画像生成部とを備え、
前記補正動き軌跡算出部は、前記補正位置ベクトルが所定の補正量より大きい場合に、前記フィルタの遮断周波数を高くしたフィルタを用いて前記動き軌跡から第２の補正動き軌跡を算出し、前記第２の補正動き軌跡を用いて前記第１の補正動き軌跡を更新することを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記補正動き軌跡算出部は、前記補正位置ベクトルが前記所定の補正量より大きいフレームを検出し、当該フレームとその前後の所定の数のフレームを補正動き軌跡更新期間とし、前記補正動き軌跡更新期間において前記第２の補正動き軌跡と前記第１の補正動き軌跡とを合成処理したものを前記第１の補正動き軌跡として更新することを特徴とする画像処理装置。
【請求項３】
請求項２に記載の画像処理装置であって、
前記補正動き軌跡算出部は、前記補正位置ベクトルが前記所定の補正量より大きいフレーム群の両端のフレームの間で前記第１の補正動き軌跡に漸近するように前記第１の補正動き軌跡と前記第２の補正動き軌跡とを合成処理することを特徴とする画像処理装置。
【請求項４】
請求項３に記載の画像処理装置であって、
前記補正動き軌跡算出部は、前記第１の補正動き軌跡と前記第２の補正動き軌跡の合成処理に際して、窓関数Ｗ（ｎ）を用いて、
Ｘ３（ｎ）＝（１−Ｗ（ｎ））×Ｘ１（ｎ）  ＋  Ｗ（ｎ）×Ｘ２（ｎ）
ｎ：時系列順に付けられたフレームの番号
Ｘ１（ｎ）：第１の補正動き軌跡上のｎ番目のフレームに対応する座標
Ｘ２（ｎ）：第２の補正動き軌跡上のｎ番目のフレームに対応する座標
Ｗ（ｎ）：窓関数のｎ番目のフレームに対応する値
で算出される座標Ｘ３（ｎ）から前記第１の補正動き軌跡を更新し、
窓関数Ｗ（ｎ）は、前記補正動き軌跡更新期間の時系列順で最初のフレームと最後のフレームではＸ３（ｎ）の座標が更新前の前記第１の補正動き軌跡上の座標に近くなる値をとり、前記所定の補正量より大きい連続したフレーム群のうち一以上のフレームがとる最大値に向かうに従って連続的に値が増加することを特徴とする画像処理装置。
【請求項５】
請求項１〜４のいずれか一項に記載の画像処理装置であって、
前記補正動き軌跡算出部は、前記補正位置ベクトルが前記所定の補正量を超えるか否かを判定し、前記所定の補正量より大きい場合は前記第１の補正動き軌跡の更新を繰り返し実行することを特徴とする画像処理装置。
【請求項６】
請求項１〜５のいずれか一項に記載の画像処理装置であって、
前記補正フレーム生成部は、前記算出された補正位置ベクトルに基づいて、前記取得されたフレーム画像を切り出した画像を拡大して前記補正フレーム画像を生成することを特徴とする画像処理装置。
【請求項７】
請求項１〜５のいずれか一項に記載の画像処理装置であって、
前記補正フレーム生成部は、前記算出された補正位置ベクトルに基づいて、前記取得されたフレーム画像を切り出した画像の周囲に背景をつけて前記補正フレーム画像を生成することを特徴とする画像処理装置。
【請求項８】
動画像または時系列に連続する静止画像からフレーム画像を取得するフレーム画像取得工程と、
前記取得したフレーム画像を用いてフレーム画像の動き軌跡を算出する動き軌跡算出工程と、
所定の遮断周波数より高い周波数帯域を減衰させるフィルタを用いて前記動き軌跡から高周波成分を減衰させた第１の補正動き軌跡を算出する補正動き軌跡算出工程と、
前記動き軌跡と前記第１の補正動き軌跡とのフレームごとの座標の差から、前記取得したフレーム画像を切り出す位置を示す補正位置ベクトルを算出する補正位置ベクトル算出工程と、
前記算出された補正位置ベクトルに基づいて、前記取得されたフレーム画像を切り出した補正フレーム画像を生成する補正フレーム画像生成工程とを備え、
前記補正動き軌跡算出工程は、前記補正位置ベクトルが所定の補正量より大きい場合に、前記フィルタの遮断周波数を高くしたフィルタを用いて前記動き軌跡から第２の補正動き軌跡を算出し、前記第２の補正動き軌跡を用いて前記第１の補正動き軌跡を更新することを特徴とする画像処理方法。
【請求項９】
コンピュータに、
動画像または時系列に連続する静止画像からフレーム画像を取得するフレーム画像取得機能と、
前記取得したフレーム画像を用いてフレーム画像の動き軌跡を算出する動き軌跡算出機能と、
所定の遮断周波数より高い周波数帯域を減衰させるフィルタを用いて前記動き軌跡から高周波成分を減衰させた第１の補正動き軌跡を算出する補正動き軌跡算出機能と、
前記動き軌跡と前記第１の補正動き軌跡とのフレームごとの座標の差から、前記取得したフレーム画像を切り出す位置を示す補正位置ベクトルを算出する補正位置ベクトル算出機能と、
前記算出された補正位置ベクトルに基づいて、前記取得されたフレーム画像を切り出した補正フレーム画像を生成する補正フレーム画像生成機能とを実現させるプログラムであって、
前記補正動き軌跡算出機能は、前記補正位置ベクトルが所定の補正量より大きい場合に、前記フィルタの遮断周波数を高くしたフィルタを用いて前記動き軌跡から第２の補正動き軌跡を算出し、前記第２の補正動き軌跡を用いて前記第１の補正動き軌跡を更新することを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像または時系列に連続する静止画像からフレーム画像を取得し、取得したフレーム画像から所定の画像を切り出して、補正フレーム画像を生成する画像処理技術に関するものである。
【背景技術】
【０００２】
近年ビデオカメラやデジタルカメラ、さらに画像撮影機能を有する携帯電話などの撮影機器を用いて、運動会など所望する画像を動画像として撮影することが行われている。その際、撮影装置を手持ちで撮影すると、手ぶれによって撮影画像に画像ぶれが生じてしまうことがある。このため、従来より、動画像の手ぶれを軽減するために動画像を補正する画像処理技術が提案されている（例えば、非特許文献１）。
【０００３】
手ぶれによる動画像の揺れは、撮影者の意図的なカメラモーションによる動きよりも高い周波数であることが知られている。非特許文献１には、動画像からグローバルモーションを検出し、検出したグローバルモーションにローパスフィルターをかけたグローバルモーションの目標値を算出し、動画像のグローバルモーションが目標値になるように動画像を補正して手ぶれ補正をする技術が開示されている。非特許文献１の技術は、グローバルモーションにローパスフィルタをかけることで、手ぶれによって発生する高い周波数の動きを減衰させている。
【０００４】
【非特許文献１】椿  他、「手ぶれ補正による映像酔いの軽減に関する検討」、２００４年映像情報メディア学会冬季大会１１−４
【発明の開示】
【発明が解決しようとする課題】
【０００５】
通常、手ぶれ補正した結果出力される補正フレームは、補正フレームのサイズを入力フレーム画像のサイズよりも小さくし、入力フレーム画像の中から補正フレーム画像のサイズの画像を切り抜いて生成される。入力フレーム画像から切り抜く位置は、補正によって算出した補正量（手ぶれによる動画像の揺れを軽減する方向と量）に従ってシフトした位置になる。また、シフトできる範囲（補正限界）は、フレーム画像のサイズと補正フレームのサイズで決まる。
【０００６】
しかし、非特許文献１の画像処理技術では、動画像のグローバルモーションにローパスフィルタをかけたグローバルモーションを目標として補正する。しかし、手ぶれによって発生する動画像の揺れが大きな個所（高い周波数の揺れが大きい個所）では、元のグローバルモーションとローパスフィルタをかけたグローバルモーションの差が大きくなるためシフトする量が大きくなり補正限界を越えてしまい、補正後のフレーム画像の切り出し位置が元のフレーム画像の外側に出てしまうという課題があった。
【０００７】
本発明は、このような課題を解決するためのなされたもので、補正限界に達する確率を低くして、かつ手ぶれなどによる画像ぶれを補正限界に応じて補正できる画像処理装置、画像処理方法、画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を達成する本発明の画像処理装置は、動画像または時系列に連続する静止画像からフレーム画像を取得するフレーム画像取得部と、前記取得したフレーム画像を用いてフレーム画像の動き軌跡を算出する動き軌跡算出部と、所定の遮断周波数より高い周波数帯域を減衰させるフィルタを用いて前記動き軌跡から高周波成分を減衰させた第１の補正動き軌跡を算出する補正動き軌跡算出部と、前記動き軌跡と前記第１の補正動き軌跡とのフレームごとの座標の差から、前記取得したフレーム画像を切り出す位置を示す補正位置ベクトルを算出する補正位置ベクトル算出部と、前記算出された補正位置ベクトルに基づいて、前記取得されたフレーム画像を切り出した補正フレーム画像を生成する補正フレーム画像生成部とを備え、前記補正動き軌跡算出部は、前記補正位置ベクトルが所定の補正限界内に収まらない（つまり所定の補正量より大きい）場合に、前記フィルタの遮断周波数を高くしたフィルタを用いて前記動き軌跡から第２の補正動き軌跡を算出し、前記第２の補正動き軌跡を用いて前記第１の補正動き軌跡を更新することを要旨とする。
【０００９】
かかる画像処理装置によれば、補正位置ベクトルが補正限界に達している場合は、フィルタの遮断周波数を高くして補正位置ベクトルが補正限界を超えないようにした第２の補正動き軌跡を用いて第１の補正動き軌跡を更新することができる。この結果、補正限界の範囲内で補正量（補正位置ベクトル）を調節することが可能になり、切り出し位置を規定する補正位置ベクトルが、補正限界に達する確率を低くし、かつ手ぶれなどによる画像の揺れを補正することが可能になる。
【００１０】
また、前記補正動き軌跡算出部は、前記補正位置ベクトルが前記所定の補正量より大きいフレームを検出し、当該フレームとその前後の所定の数のフレームを補正動き軌跡更新期間とし、前記補正動き軌跡更新期間において前記第２の補正動き軌跡と前記第１の補正動き軌跡とを合成処理したものを前記第１の補正動き軌跡として更新する。
【００１１】
こうすれば、第１の補正動き軌跡と第２の補正動き軌跡を合成するフレームを補正動き更新期間だけに限定することができる。そのため、第１の補正動き軌跡と第２の補正動き軌跡を合成する補正動き軌跡更新期間のフレーム数を必要以上に長くしなくてもよい。また、補正動き軌跡更新期間以外のフレームでは、第１の補正動き軌跡を補正目標とすることができ、手ぶれなど画像の揺れを十分に取り除くことができる。
【００１２】
また、前記補正動き軌跡算出部は、前記補正位置ベクトルが前記所定の補正量より大きいフレーム群の両端のフレームの間で、前記第１の補正動き軌跡に漸近するように前記第１の補正動き軌跡と前記第２の補正動き軌跡とを合成処理する。
【００１３】
こうすれば、補正位置ベクトルが所定の補正量より大きいフレーム群の両端のフレーム付近で第１の補正動き軌跡に漸近するように、第１の補正動き軌跡と第２の補正動き軌跡とを合成処理することができる。その結果、第１の補正動き軌跡と第２の補正動き軌跡を合成処理した結果の軌跡の座標は、補正位置ベクトルが所定の補正量より大きいフレーム群の略中央付近から両端のフレーム付近に向かって、合成処理前の第１の補正動き軌跡の座標に漸近していくように近づけることができる。そのため、更新された前記第１の補正動き軌跡が急激に変化することがなく、補正後のフレーム画像の不自然な動きを防ぐことができる。
【００１４】
また、前記補正動き軌跡算出部は、前記第１の補正動き軌跡と前記第２の補正動き軌跡の合成処理に際して、窓関数Ｗ（ｎ）を用いて、
Ｘ３（ｎ）＝（１−Ｗ（ｎ））×Ｘ１（ｎ）  ＋  Ｗ（ｎ）×Ｘ２（ｎ）
ｎ：時系列順に付けられたフレームの番号
Ｘ１（ｎ）：第１の補正動き軌跡上のｎ番目のフレームに対応する座標
Ｘ２（ｎ）：第２の補正動き軌跡上のｎ番目のフレームに対応する座標
Ｗ（ｎ）：窓関数のｎ番目のフレームに対応する値
で算出される座標Ｘ３（ｎ）から前記第１の補正動き軌跡を更新し、
窓関数Ｗ（ｎ）は、前記補正動き軌跡更新期間の時系列順で最初のフレームと最後のフレームではＸ３（ｎ）の座標が更新前の前記第１の補正動き軌跡上の座標に近くなる値をとり、前記所定の補正量より大きい連続したフレーム群のうち一以上のフレームがとる最大値に向かうに従って連続的に値が増加する。こうすれば、第１の補正動き軌跡から第２の補正動き軌跡の合成が簡単に算出でき、また、接続部分も滑らかにすることができる。
【００１５】
また、前記補正動き軌跡算出部は、前記補正位置ベクトルが前記所定の補正量を超えるか否かを判定し、前記所定の補正量より大きい場合は前記第１の補正動き軌跡の更新を繰り返し実行する。こうすれば、前記補正位置ベクトルが補正限界を超えた量に応じて前記フィルタの遮断周波数を高くすることが可能になるので、前記補正位置ベクトルが前記補正限界を超えないようにすることができる。
【００１６】
また、前記補正フレーム生成部は、前記算出された補正位置ベクトルに基づいて、前記取得されたフレーム画像を切り出した画像を拡大して前記補正フレーム画像を生成する。こうすれば、補正前と後でフレームのサイズが同じになるので、補正後の画面サイズの変化による画像出力時の操作の煩雑さを軽減することができる。
【００１７】
また、前記補正フレーム生成部は、前記算出された補正位置ベクトルに基づいて、前記取得されたフレーム画像を切り出した画像の周囲に背景をつけて前記補正フレーム画像を生成する。こうすれば、補正前と後でフレームのサイズが同じになるので、補正後の画面サイズの変化による画像出力時の操作の煩雑さを軽減することができる。また、補正フレームに背景を付けるだけなので、画像の処理も簡単である。
【００１８】
また、本発明を画像処理方法として捉えることもできる。すなわち、動画像または時系列に連続する静止画像からフレーム画像を取得するフレーム画像取得工程と、前記取得したフレーム画像を用いてフレーム画像の動き軌跡を算出する動き軌跡算出工程と、所定の遮断周波数より高い周波数帯域を減衰させるフィルタを用いて前記動き軌跡から高周波成分を減衰させた第１の補正動き軌跡を算出する補正動き軌跡算出工程と、前記動き軌跡と前記第１の補正動き軌跡とのフレームごとの座標の差から、前記取得したフレーム画像を切り出す位置を示す補正位置ベクトルを算出する補正位置ベクトル算出工程と、前記算出された補正位置ベクトルに基づいて、前記取得されたフレーム画像を切り出した補正フレーム画像を生成する補正フレーム画像生成工程とを備え、前記補正動き軌跡算出工程は、前記補正位置ベクトルが所定の補正量より大きい場合に、前記フィルタの遮断周波数を高くしたフィルタを用いて前記動き軌跡から第２の補正動き軌跡を算出し、前記第２の補正動き軌跡を用いて前記第１の補正動き軌跡を更新することを要旨とする。
【００１９】
この構成によれば、本発明の画像処理装置と同等の効果が得られる。
【００２０】
また、本発明はコンピュータプログラムとして捉えることもできる。すなわち、コンピュータに、動画像または時系列に連続する静止画像からフレーム画像を取得するフレーム画像取得機能と、前記取得したフレーム画像を用いてフレーム画像の動き軌跡を算出する動き軌跡算出機能と、所定の遮断周波数より高い周波数帯域を減衰させるフィルタを用いて前記動き軌跡から高周波成分を減衰させた第１の補正動き軌跡を算出する補正動き軌跡算出機能と、前記動き軌跡と前記第１の補正動き軌跡とのフレームごとの座標の差から、前記取得したフレーム画像を切り出す位置を示す補正位置ベクトルを算出する補正位置ベクトル算出機能と、前記算出された補正位置ベクトルに基づいて、前記取得されたフレーム画像を切り出した補正フレーム画像を生成する補正フレーム画像生成機能とを実現させるプログラムであって、前記補正動き軌跡算出機能は、前記補正位置ベクトルが所定の補正量より大きい場合に、前記フィルタの遮断周波数を高くしたフィルタを用いて前記動き軌跡から第２の補正動き軌跡を算出し、前記第２の補正動き軌跡を用いて前記第１の補正動き軌跡を更新することを要旨とする。
【００２１】
この構成によれば、本発明の画像処理装置と同等の効果が得られる。
【発明を実施するための最良の形態】
【００２２】
次に、本発明の実施の形態を説明する。図１は本発明の一実施形態としての画像処理装置の概略構成を示す説明図である。この画像処理装置は汎用のコンピュータ１００であり、入力インターフェイス（Ｉ／Ｆ）１０１、ＣＰＵ１０３、ＲＡＭ１０２、ＲＯＭ１０４、ハードディスク１０５、出力インターフェイス（Ｉ／Ｆ）１０６とから構成され、それらはバス１０７を介して互いに接続されている。入力Ｉ／Ｆ１０１には、動画像を入力する装置としてのデジタルビデオカメラ２００およびＤＶＤプレーヤ２１０が接続され、出力Ｉ／Ｆ１０６には動画像を出力する装置としてのビデオプロジェクタ３００およびディスプレイ３１０が接続されている。その他、必要に応じて、動画像を記憶した記憶媒体からデータを読み出すことが可能な駆動装置や、動画像を出力することが可能な画像表示装置をそれぞれ接続することもできる。もとより、動画像には時系列に連続する静止画像も含まれる。
【００２３】
入力Ｉ／Ｆ１０１は、所定の画素数とＲＧＢ形式など所定の画素値を有する動画像からフレーム画像を取得し、コンピュータ１００で処理できるフレーム画像データに変換する。本実施形態では、フレーム画像を構成する所定枚数のフィールド画像から、フレーム画像データを取得するものとする。フレーム画像は、記録方式に応じて通常複数の所定枚数のフィールド画像によって構成されている。例えば、ＮＴＳＣ方式で記録された動画像の場合は、インターレース方式であり、毎秒６０枚のフィールド画像によって毎秒３０枚のフレーム画像が構成されている。従って、入力Ｉ／Ｆ１０１は、２つのフィールド画像の画素値を用いて１つのフレーム画像を取得する。もとより、１つのフィールド画像が１つのフレーム画像を構成しているプレグレッシブ方式（ノンインターレース方式）のような場合は、１つのフィールド画像を用いて１つのフレーム画像を取得することになる。
【００２４】
変換されたフレーム画像データは、ＲＡＭ１０２又はハードディスク１０５に格納される。ＣＰＵ１０３は格納されたフレーム画像データに対して所定の画像処理を実行し、補正フレーム画像データとして再びＲＡＭ１０２又はハードディスク１０５に格納する。補正フレーム画像データを生成するまでに行われる所定の画像処理に際し、必要に応じてＲＡＭ１０２やハードディスク１０５が画像処理データのワーキングメモリとして用いられる。そして、格納した補正フレーム画像データを、出力Ｉ／Ｆ１０６を介して所定の画像データに変換し、ビデオプロジェクタ３００などに送出する。
【００２５】
所定の画像処理を記録したアプリケーションプログラムは、予めハードディスク１０５やＲＯＭ１０４に格納されていることとしてもよいし、例えばＣＤ−ＲＯＭなどのコンピュータが読み取り可能な記録媒体によって外部から供給され、図示しないＣＤ−Ｒ／ＲＷドライブを介してハードディスク１０５に記憶することによって格納されるものとしてもよい。もとより、インターネットなどのネットワーク手段を介して、アプリケーションプログラムを供給するサーバー等にアクセスし、データをダウンロードすることによってハードディスク１０５に格納されるものとしてもよい。
【００２６】
ＣＰＵ１０３は、バス１０７を介してハードディスク１０５またはＲＯＭ１０４に格納されたアプリケーションプログラムを読み出し、この読み出したアプリケーションプログラムを所定のオペレーティングシステムのもとで実行することによって、画像処理装置として機能する。特に図１に示したように、このアプリケーションプログラムが実行されることにより、フレーム画像取得部１１０、動き軌跡算出部１２０、補正動き軌跡算出部１３０、補正位置ベクトル算出部１４０、補正フレーム画像生成部１５０、補正フレーム画像出力部１６０として機能する。
【００２７】
各部はそれぞれ以下の処理を司る。フレーム画像取得部１１０は、コンピュータ１００に入力した動画像から時系列順にフレーム画像をキャプチャして取得し、ＲＡＭ１０２またはハードディスク１０５に格納する。
【００２８】
動き軌跡算出部１２０は、取得されたフレーム画像の動きベクトルを算出し、動きベクトルを用いてフレーム画像の動き軌跡を算出する。フレーム画像の動きベクトルは、時系列順で一つ前のフレーム画像との間の相対的な画像位置を表すものであり、画像を撮影したカメラの動いた方向と量に相当する。動き軌跡は、時系列順で最初から最後までのフレーム画像の相対的な座標位置の軌跡である。すなわち、動きベクトルはフレーム間のカメラの動きを表し、動き軌跡は時系列順で最初から最後までにカメラが動いた軌跡を表すことになる。
【００２９】
手ぶれなどの画像の揺れは、手ぶれ以外の意図的なカメラモーションによる画像の揺れに比べて、高い周波数の動きになることが知られている。したがって、手ぶれなどを含んだ動画像の動き軌跡は、手ぶれなどのない動画像の動き軌跡に比べ、高い周波数成分を多く含んでいることになる。そこで、手ぶれによる画像の揺れを除去するため、補正動き軌跡算出部１３０では、動き軌跡にローパスフィルタをかけて、高い周波数成分を減衰させた補正動き軌跡を算出する。
【００３０】
補正位置ベクトル算出部１４０は、各フレーム毎の動き軌跡上の座標位置と補正動き軌跡上の座標位置との差から補正位置ベクトルを算出する。この補正位置ベクトルが、フレーム画像から補正フレーム画像を切り出す位置を決めるベクトルになる。このようにして切り出すべき補正フレーム画像の相対位置を求めるので、手ぶれなどの画像の揺れを軽減した動画像が生成可能となる。
【００３１】
また、動き軌跡にローパスフィルタをかけて、手ぶれなどによる高い周波数成分を減衰させた補正動き軌跡を算出しても、手ぶれによる画像の揺れが大きいと、その動きに追随できず、補正フレームがフレーム画像から外れることが起こる。この場合は、ローパスフィルタＬＰＦの遮断周波数を高くして、大きな画像の揺れに追随できるようにする。
【００３２】
補正フレーム画像生成部１５０は、算出された補正位置ベクトルに基づいて補正フレーム画像を生成する。補正フレーム画像出力部１６０は、生成された補正フレーム画像を所定の画像データに変換して出力する。
【００３３】
ここで、本実施形態の画像処理装置におけるフレーム画像の補正方法の理解を容易にするために、図２、図３、図４、及び図５を用いて、手ぶれなどのよる動画像の揺れの軽減の基本的な考え方について例をあげて説明しておく。
【００３４】
図２は、コンピュータ１００により取り込まれる時系列順１番目のフレーム画像Ｆ（１）と、２番目、３番目のフレーム画像Ｆ（２），Ｆ（３）の例を示している。また、図２の例では、画像の中に写っている家が左下方向に移動している。この動きは、撮影者の意図的なカメラワークによるものと、手ぶれによる画像の揺れとが重なったために発生したものとする。手ぶれがなければ、家はゆるやかに移動していったはずである。
【００３５】
本実施形態は、手ぶれなどによる画像の揺れを少なくすることを目的とし、補正位置ベクトルに基づいてフレーム画像から所定の大きさの画像を切り出して補正フレーム画像を生成する画像処理技術を提供するものである。補正フレーム画像のデフォルトの切り出し位置は、それぞれ図２に破線で示したフレーム画像ＦＫ（１），ＦＫ（２），ＦＫ（３）となる。
【００３６】
ここで、フレーム画像ＦＫ（ｎ）は、図２に示したように、フレーム画像Ｆ（ｎ）に対して所定の補正限界値Ｓｍａｘ分小さい画面サイズとなる。詳しくは、Ｘ方向では左右それぞれ所定の補正限界値Ｓｘｍａｘだけ、Ｙ方向では上下それぞれ所定の補正限界値Ｓｙｍａｘだけ画面サイズが小さい画像である。つまり、切り出される画像は、Ｘ方向では２×Ｓｘｍａｘ分、Ｙ方向では２×Ｓｙｍａｘ分小さい画面サイズとなる。
【００３７】
所定の補正限界値Ｓｍａｘ（Ｘ成分はＳｘｍａｘ，Ｙ成分はＳｙｍａｘ）は、本実施形態では、予めアプリケーションプログラムにデフォルトで所定の値が設定され、ハードディスク１０５などに格納されているものとする。もとより、ユーザーが、コンピュータ１００に接続された入力手段（図示せず）を用いてデータ入力することによって設定し、格納するものとしてもよい。
【００３８】
同じく図２（下側）に、求められた相対位置に従って配置されたフレーム画像ＦＫ（１），ＦＫ（２），ＦＫ（３）を示した。このように配置するとフレーム画像ＦＫ（１），ＦＫ（２），ＦＫ（３）の中に写っている家が同じ位置に配置されることになる。
【００３９】
図２より明らかなように、例えばフレーム画像Ｆ（２）の動きベクトルＶ０（２）は、フレーム画像ＦＫ（２）の動きベクトルと等しくなる。つまり、フレーム画像Ｆ（２）の動きベクトルＶ０（２）は、フレーム画像ＦＫ（１）に対するフレーム画像ＦＫ（２）の画面位置として求められる。フレーム画像ＦＫ（３）の動きベクトルＶ０（３）も同様にフレーム画像ＦＫ（２）に対するフレーム画像ＦＫ（３）の画面位置として求められる。動きベクトルＶ０（２），Ｖ０（３）のＸ成分はＸ方向の画素数、Ｙ成分はＹ方向の画素数で表される。
【００４０】
また、時系列順でｎ番目のフレーム画像の相対位置の座標Ｘ０（ｎ）は、動きベクトルＶ０を用いて式（１）で算出される。
Ｘ０（ｎ）＝Ｘ０（ｎ−１）＋Ｖ０（ｎ）…（１）
この座標を時系列順で最初から最後まで集めたものがフレーム画像の動き軌跡Ｘ０になる。なお、本実施形態における以降の画像処理装置の説明において、Ｘ０のような記号の後ろに（ｎ）を付けたものは、時系列順でｎ番目のフレームに対応する要素を意味する。すなわち、Ｘ０はフレーム画像の相対位置の座標を時系列順で最初から最後まで集めた軌跡を意味し、Ｘ０（ｎ）はｎ番目のフレーム画像の相対位置の座標を意味する。
【００４１】
図２において、フレーム画像Ｆ（１）は、時系列順で一つ前のフレーム画像が存在しないため、本実施形態ではフレーム画像Ｆ（１）は動いていないものとして扱い、フレーム画像ＦＫ（１）の動きベクトルＶ０（１）は０とする。図２の動きベクトルＶ０（１），Ｖ０（２），Ｖ０（３）から、フレーム画像の相対位置の座標Ｘ０（１），Ｘ０（２），Ｘ０（３）が算出できる。すなわち、動き軌跡Ｘ０が算出できることになる。
【００４２】
図３は、動き軌跡Ｘ０のＸ成分の動きをグラフにしたものである。動き軌跡Ｘ０には、撮影者の意図的なカメラワークによる低い周波数の動きと、手ぶれによる高い周波数の動きとが含まれている。手ぶれなどによる動画像の揺れを取り除くには、動き軌跡Ｘ０から手ぶれなどの高い周波数成分を取り除いた動き軌跡（補正動き軌跡Ｘ１）を算出し、補正後の動き軌跡が補正動き軌跡Ｘ１になるように補正フレームを切出していけばよいことになる。図３の破線の補正動き軌跡Ｘ１は、動き軌跡Ｘ０にローパスフィルタをかけて手ぶれなどの高周波成分を減衰させたものである。
【００４３】
次に、図４を用いて、フレーム画像ＦＫ（ｎ）と、補正位置ベクトルＳと、動きベクトルＶ０と、動き軌跡Ｘ０と、補正動き軌跡Ｘ１とについて、お互いの関係を説明する。図４は、図２（下部）に示したフレーム画像ＦＫ（１）〜ＦＫ（３）の左上隅部分を拡大して示した説明図である。
【００４４】
図４から明らかなように、フレーム画像ＦＫ（２）は、動きベクトルＶ０（２）のＸ成分とＹ成分の画素数に従ってフレーム画像ＦＫ（１）の画面位置を移動したものであり、フレーム画像ＦＫ（３）は、動きベクトルＶ０（３）のＸ成分とＹ成分の画素数に従ってフレーム画像ＦＫ（２）の画面位置を移動したものである。また、フレーム画像ＦＫ（１），ＦＫ（２），ＦＫ（３）の左上隅の座標Ｘ０（１），Ｘ０（２），Ｘ０（３）で示される軌跡が動き軌跡Ｘ０になる。
【００４５】
そして、動き軌跡Ｘ０にローパスフィルタをかけて高周波成分を取り除いた補正動き軌跡Ｘ１を構成する座標は、Ｘ１（１），Ｘ１（２），Ｘ１（３）であり、これが補正フレーム画像ＨＦＧ（１），ＨＦＧ（２），ＨＦＧ（３）の左上隅の座標になる。なお、動き軌跡の座標Ｘ０（１）と補正動き軌跡の座標Ｘ１（１）は、同じ位置になるため、フレーム画像ＦＫ（１）と補正フレーム画像ＨＦＧ（１）も同じものとなる。
【００４６】
補正動き軌跡の座標Ｘ１（ｎ）と動き軌跡の座標Ｘ０（ｎ）から補正位置ベクトルＳ（ｎ）が算出され、補正動き軌跡の座標Ｘ１（２）と動き軌跡の座標Ｘ０（２）の差が補正位置ベクトルＳ（２）になり、補正動き軌跡の座標Ｘ１（３）と動き軌跡の座標Ｘ０（３）の差が補正位置ベクトルＳ（３）になる。また、補正動き軌跡の座標Ｘ１（１）と動き軌跡の座標Ｘ０（１）は同じ位置になるので、補正位置ベクトルＳ（１）の大きさは０になる。図４から、補正フレーム画像ＨＦＧ（１），ＨＦＧ（２），ＨＦＧ（３）の位置は、フレーム画像ＦＫ（１），ＦＫ（２），ＦＫ（３）を補正位置ベクトルＳ（１），Ｓ（２），Ｓ（３）のＸ成分とＹ成分の画素数に従って移動させたものであり、切り出し位置も補正位置ベクトルＳ（１），Ｓ（２），Ｓ（３）によって決められる。
【００４７】
図５は、フレーム画像Ｆ（２），Ｆ（３）と、フレーム画像ＦＫ（２），ＦＫ（３）と、補正フレーム画像ＨＦＧ（２），ＨＦＧ（３）と、補正位置ベクトルＳ（２），Ｓ（３）との関係を示したものである。図５から明らかなように補正フレーム画像ＨＦＧ（ｎ）の切出し位置は、フレーム画像ＦＫ（ｎ）を補正位置ベクトルＳ（ｎ）のＸ成分とＹ成分の画素数分移動させた位置となる。また、補正フレーム画像ＨＦＧ（３）では、切出し位置が元のフレーム画像Ｆ（３）の外側にはみ出してしまっている。これは、補正位置ベクトルＳ（３）のＸ成分又はＹ成分が補正限界（所定の補正量）Ｓｘｍａｘ又はＳｙｍａｘを越えてしまっているためである。この場合、超えてしまっている部分の画像がない補正フレーム画像を出力しなければならなくなる。
【００４８】
補正位置ベクトルＳ（ｎ）が補正限界を超えている場合は、ローパスフィルタの遮断周波数を高くすることで、補正量を調節することができる。図３の一点鎖線で示した補正動き軌跡Ｘ２は、補正動き軌跡Ｘ１の算出に用いたローパスフィルタの遮断周波数を高くしたローパスフィルタで算出したものである。このようにローパスフィルタの遮断周波数を高くしていくと、元の動き軌跡Ｘ０との座標位置の差（＝Ｘ２（ｎ）−Ｘ０（ｎ））が少なくなっている。すなわち、補正位置ベクトルＳ（ｎ）（＝Ｘ２（ｎ）−Ｘ０（ｎ））の大きさが小さくなり、補正限界を超える確率が少なくなるのである。
【００４９】
本実施形態の画像処理装置では、補正限界を超えている連続したフレームの中央部分では、ローパスフィルタの遮断周波数を高くして補正限界に収まるようにし、補正限界値を超えていないフレームとその周辺のフレームでは、元の補正動き軌跡を使用する。また、ローパスフィルタの遮断周波数を変えた補正動き軌跡Ｘ２と遮断周波数を変えない補正動き軌跡Ｘ１が、滑らかに接続できるように窓関数Ｗを使って合成する。
【００５０】
次に、本実施形態の画像処理装置について各部が行う処理を、図６の処理フローチャートにより説明する。図６に示した処理が開始されると、まずステップＳ１００にて、動き軌跡Ｘ０の算出を行う。動き軌跡Ｘ０の算出処理は、既に手ぶれなどによる動画像の揺れの軽減の基本的な考え方の説明で、図２を用いて詳細を示しているので、ここではフローチャートに従った処理の流れだけを図７の処理フローチャートにより説明する。
【００５１】
まず、ステップＳ２００にて、変数ｎに時系列順の最初のフレーム番号を示す１を代入する。次に、ステップＳ２１０にて、入力される動画像から時系列順に、ｎ番目のフレーム画像Ｆ（ｎ）をコンピュータ１００に取り込む処理を行う。本実施形態では、動画像の入力をトリガーにして、自動的にフレーム画像を時系列順で順次取り込むこととする。もとより、取り込むフレーム画像を指定することとしてもよい。フレーム画像の指定方法は、動画像からフレーム画像をキャプチャしてコンピュータ１００に取り込む際、通常付加されるフレーム画像の識別番号を指定するようにしてもよい。あるいは、ユーザーがビデオカメラに備えられたモニターなどのディスプレイ（図示せず）に表示されるフレーム画像を見ながら画像を直接指定することとしてもよい。
【００５２】
ステップＳ２２０では、取得したフレーム画像Ｆ（ｎ）の動きベクトルＶ０（ｎ）の算出処理を行う。ここで、フレーム画像Ｆ（ｎ）の動きベクトルＶ０（ｎ）は、図２で説明したように、時系列順ｎ−１番目のフレーム画像Ｆ（ｎ−１）に対してフレーム画像Ｆ（ｎ）の相対位置を算出し、その相対位置にフレーム画像Ｆ（ｎ）を配置する。そして、フレーム画像Ｆ（ｎ−１）の画面位置に対するフレーム画像Ｆ（ｎ）の画面位置のずれ量を、Ｘ，Ｙ方向のそれぞれの画素数として算出する。このＸ方向の画素数をＸ成分、Ｙ方向の画素数をＹ成分とするベクトルによって表したものが、フレーム画像Ｆ（ｎ）の動きベクトルＶ０（ｎ）となる。
【００５３】
フレーム画像間の相対位置は、非特許文献１に開示されている方法や、画像のパターンマッチングまたは特徴点追跡といった周知の画像処理方法によって求めることができる。具体的な相対位置の算出処理方法については、本発明の本質ではないので説明を省略する。
【００５４】
ステップＳ２３０では、動き軌跡Ｘ０（ｎ）の算出を行う。動き軌跡Ｘ０（ｎ）は、一つ前のフレームのフレーム画像Ｆ（ｎ−１）の相対位置Ｘ０（ｎ−１）と動きベクトルＶ０（ｎ）から式（１）で算出される。算出した動き軌跡Ｘ０（ｎ）は、ＣＰＵ１０３によってＲＡＭ１０２などに格納される。本実施形態では、動きベクトルＶ０（ｎ）を算出してから動き軌跡Ｘ０（ｎ）を算出したが、動きベクトルＶ０（ｎ）を算出せずにフレーム画像の相対位置から直接動き軌跡Ｘ０（ｎ）を算出してもよい。これで、時系列順でｎ番目のフレームに対する動きベクトルＶ０（ｎ）と動き軌跡Ｘ０（ｎ）の算出処理は終了する。
【００５５】
次に、ステップＳ２４０では、動画像の全てのフレームの処理が終了したかどうかを判定する。全てのフレームの処理が終了していれば、動き軌跡Ｘ０の算出を終了する。一方、まだ処理していないフレームが存在する場合は、ステップＳ２５０に進む。
【００５６】
次に、ステップＳ２５０にて、変数ｎに１を加えて、変数ｎが時系列順で一つ後のフレームを示すようにしておく。その後、ステップＳ２１０に戻り、時系列順で一つ後のフレーム画像を新たにフレーム画像Ｆ（ｎ）として取得して以降の処理を繰り返し、取得される全てのフレーム画像について相対位置の座標を算出し、動き軌跡Ｘ０として記録するのである。
【００５７】
次に、ステップＳ１１０（図６）にて補正動き軌跡Ｘ１及び補正位置ベクトルＳの算出処理を行う。ここでの処理について、図８のフローチャートを用いて詳しく説明する。図８に示した処理が開始されると、まずステップＳ３００にて、ハードディスク１０５またはＲＡＭ１０２に格納されている動き軌跡Ｘ０を取得する。次にステップＳ３１０にて、図３に示したように、動き軌跡Ｘ０にローパスフィルタＬＰＦをかけて手ぶれなどで発生する高周波成分の動画像の揺れを減衰させた補正動き軌跡Ｘ１を算出する。
【００５８】
ローパスフィルタＬＰＦは、所定の遮断周波数Ｆｃより高い周波数成分を減衰させる周波数特性を持つもので、本実施形態では、式（２）で示される式を使用する。もとより、ローパスフィルタＬＰＦの計算式は、式（２）に限るものではなく、他の計算式によるものを用いてもよい。さらに手ぶれなどで発生する周波数帯域の動画像の揺れのみを減衰させるバンドエリミネーションフィルタであっても差し支えない。動き軌跡Ｘ０にローパスフィルタＬＰＦをかけた補正動き軌跡Ｘ１は、図３の破線に示されるように、動き軌跡Ｘ０に比べて変化の少ない軌跡となる。
【００５９】
【数１】
2006285655.tif 000003
ｎ：フレーム画像の時系列順を表す番号
Ｆ：フレームレート（映像１秒あたりのフレーム数）
Ｆｃ：ＬＰＦの遮断周波数
Ｎ：ローパスフィルタ（ＬＰＦ）のサイズ
（Ｎ＞Ｆ／Ｆｃとなることが望ましい。）
【００６０】
次にステップＳ３２０にて、補正位置ベクトルＳ（ｎ）を求める。すなわち、補正位置ベクトルＳ（ｎ）は、式（３）より、動き軌跡Ｘ０（ｎ）の中の座標と動き軌跡Ｘ１（ｎ）の中の座標の差から算出でき、ここでは時系列順に全てのフレームに対して補正位置ベクトルＳ（１），・・・，Ｓ（Ｍ）（ここで、Ｍは最後のフレームを示す番号）の算出を行う。
Ｓ（ｎ）＝Ｘ０（ｎ）−Ｘ１（ｎ）…（３）
【００６１】
次にステップＳ３３０にて、補正位置ベクトルＳ（ｎ）が補正限界を超えているフレームが存在するかどうか調べる。ステップＳ３３０では、補正位置ベクトルＳ（ｎ）が補正限界を越えているフレームを検出し、そのフレームにフラグをセットする。補正位置ベクトルＳ（ｎ）が補正限界を超えているかどうかは、補正位置ベクトルＳ（ｎ）のＸ成分Ｓｘ（ｎ）とＹ成分Ｓｙ（ｎ）、補正限界値ＳｍａｘのＸ成分ＳｘｍａｘとＹ成分Ｓｙｍａｘを使い、式（４）で示された条件が真であるときに補正限界を超えていると判定する。
Ｓｘ（ｎ）＞Ｓｘｍａｘ  または  Ｓｙ（ｎ）＞Ｓｙｍａｘ…（４）
補正限界を超えていると判定されたフレームには、フラグをセットする。
【００６２】
次にステップＳ３４０にて、ステップＳ３３０でフラグをセットされたフレームが存在するかどうか調べる。フラグをセットされたフレームが存在しない場合は、補正位置ベクトルＳが補正限界値Ｓｍａｘを越えているフレームがなく、全ての補正フレーム画像が正常に出力可能な状態になったと判断し、補正動き軌跡Ｘ１及び補正位置ベクトルＳの算出処理が終了したものとする。
【００６３】
補正限界を超えているフレーム（フラグがセットされているフレーム）に対しては、ローパスフィルタＬＰＦの遮断周波数を高くして算出した補正動き軌跡Ｘ２を算出し、補正動き軌跡Ｘ２と補正動き軌跡Ｘ１を合成する処理を行う。まず、ステップＳ３５０にて、合成するときに使用する窓関数を用意する。窓関数は、補正位置ベクトルＳが補正位置限界内に収まらない連続したフレームに対して設定される。また、補正位置ベクトルＳが補正限界内に収まらない連続したフレームが複数ある場合は、窓関数も複数設定されることになる。ここで、窓関数は、フラグがセットされているフレームの値が１、フラグがセットされていないフレームの値が０、フラグがセットされているフレームとセットされていないフレームの境界前後のフレームは０から１の連続的な値を取る関数になる。このように連続的な値をとることで、補正動き軌跡Ｘ１と補正動き軌跡Ｘ２を接続する個所、すなわち補正限界を超えているフレームと超えていないフレームの境界付近が滑らかに接続でき、補正後の画像の動きも自然になる。
【００６４】
図９を用いて補正動き軌跡Ｘ１（ｎ）が補正限界を超えた場合の窓関数について説明する。図９の横軸はフレーム画像の時系列順を表すフレームＮｏ．であり、縦軸はフレーム画像の相対位置のＸ成分またはＹ成分を示している。図９によると、フレーム画像ＦＫ（ｎ）の動き軌跡Ｘ０（ｎ）に対してローパスフィルタＬＰＦをかけた補正動き軌跡Ｘ１（ｎ）は、縦の破線で囲まれた範囲で補正限界を超えていることになる。この部分のフレームにステップＳ３３０の処理でフラグがセットされることになる。図９の下のグラフは、ステップＳ３５０にて用意される窓関数である。
【００６５】
【数２】
2006285655.tif 000004
ＮT＝Ｆ／（２×Ｆｃ）
ｎ：フレーム画像の時系列順を表す番号
ＮS：フラグが立ち始めたフレームのフレームＮｏ．
ＮE：フラグが立ち終わったフレームのフレームＮｏ．
Ｆ：フレームレート（映像１秒あたりのフレーム数）
Ｆｃ：ＬＰＦの遮断周波数
【００６６】
本実施形態では、ローパスフィルタＬＰＦの遮断周波数Ｆｃの０．５周期分のフレーム数を分散とするガウス関数をベースとした式（５）に示される窓関数を使用する。また、図９の窓関数と同様の形状となる窓関数ならば、式（５）以外の窓関数を使用しても差し支えない。
【００６７】
窓関数の形状について図１１を用いて説明する。ここで、補正動き軌跡Ｘ１が補正限界を超えている連続したフレームの始めのフレームの時系列順をＮS、終わりのフレームの時系列順をＮE、ローパスフィルタの遮断周波数の０．５周期分のフレーム数をＮTとすると、窓関数の形状は、補正動き軌跡Ｘ１が補正限界を超えている連続したフレーム数（ＮE−ＮS）と２ＮTの大きさにより変わる。
【００６８】
補正動き軌跡Ｘ１が補正限界を超えている連続したフレーム数（ＮE−ＮS）が２ＮT以下の場合（ＮE−ＮS≦２ＮT）は、図１１（ａ）の示したように、補正動き軌跡Ｘ１が補正限界を超えている連続したフレームの中央から前後に３ＮTのフレームで０より大きい値を持ち、端から中央に向かうに従って滑らかに０から１に値が増加していく形状になる。
【００６９】
補正動き軌跡Ｘ１が補正限界を超えている連続したフレーム数（ＮE−ＮS）が２ＮTより大きい場合（ＮE−ＮS＞２ＮT）は、図１１（ｂ）に示したように、補正動き軌跡Ｘ１が補正限界を超えている連続したフレームとその前後の２ＮTのフレームとで０より大きい値を持ち、時系列順でＮS＋ＮT番目のフレームからＮE−ＮT番目のフレームまでのフレームで値は１になる。また、その前後では、端に行くに従って１から０へ滑らかに値が減少していく形状になる。
【００７０】
次に窓関数を使って補正動き軌跡Ｘ１と合成する補正動き軌跡Ｘ２を算出するためのローパスフィルタＬＰＦの遮断周波数の変更を行う。ステップＳ３６０で、ローパスフィルタＬＰＦの遮断周波数Ｆｃを高くする処理が行われる。この処理の結果、図１０に示されるように、ローパスフィルタＬＰＦの周波数特性は、実線で示されたものから破線で示されたものに変更されることになる。次にステップＳ３７０にて、動き軌跡Ｘ０に対して、ステップＳ３６０で遮断周波数Ｆｃを高くしたローパスフィルタＬＰＦをかけて、補正動き軌跡Ｘ２を算出する。補正動き軌跡Ｘ２は、補正動き軌跡Ｘ１の算出に使用したローパスフィルタＬＰＦよりも高い遮断周波数のローパスフィルタＬＰＦを使用して算出するので、補正動き軌跡Ｘ１よりも高周波成分を多く含み、補正動き軌跡Ｘ１よりも動き軌跡Ｘ０に近い形状になる。
【００７１】
次にステップＳ３８０にて、式（６）の計算式を用いて補正動き軌跡Ｘ１（ｎ）と補正動き軌跡Ｘ２（ｎ）を合成して、補正動き軌跡Ｘ３（ｎ）を算出する。
Ｘ３（ｎ）＝（１−Ｗ（ｎ））×Ｘ１（ｎ）＋Ｗ（ｎ）×Ｘ２（ｎ）…（６）
窓関数Ｗ（ｎ）は補正限界を超えている付近だけ０以上の値を持つ関数である。そのため、補正限界を超えているフレームとその周辺のフレームでは、この式によって算出される補正動き軌跡Ｘ３は、補正動き軌跡Ｘ１を補正動き軌跡Ｘ２に近づけた形、すなわち、動き軌跡Ｘ０に近い形になる。補正限界を超えていない部分とその周辺では、元の補正動き軌跡Ｘ１と同じ形になる。また補正限界を超えているフレームと越えていないフレームの境界付近では０から１の連続的な値をとるので、境界付近でも滑らかになる。
【００７２】
次に、式（６）で算出した補正動き軌跡Ｘ３は、補正動き軌跡Ｘ１に代入され、再度ステップＳ３２０の補正位置ベクトルＳの算出処理を行う。このようにして、ステップＳ３２０からステップＳ３８０までの処理を、繰り返し実行することで、補正位置ベクトルＳが補正限界を越えないようにすることが可能になる。
【００７３】
次に、ステップＳ１２０（図６）にて補正フレーム画像ＨＦＧ（ｎ）の生成と出力の処理を行う。ここでの処理について、図１２のフローチャートを用いて詳しく説明する。図１２に示した処理が開始されると、まずステップＳ４００にて、変数ｎに時系列順の最初のフレーム画像を示す１が代入される。次に、ステップＳ４１０にて時系列順でｎ番目のフレーム画像Ｆ（ｎ）をハードディスク１０５またはＲＡＭ１０２から取得する。
【００７４】
次にステップＳ４２０にて、補正位置ベクトルＳ（ｎ）のＸ成分とＹ成分の値を用いて、フレーム画像Ｆ（ｎ）から画像を切り出して、補正フレーム画像ＨＦＧ（ｎ）を生成する。切り出す位置は、補正位置ベクトルＳ（ｎ）のＸ成分とＹ成分の画素数に従ってフレーム画像ＦＫ（ｎ）の画面位置を移動した位置になる。
【００７５】
次に、ステップＳ４３０にて、補正フレーム画像ＨＦＧ（ｎ）の出力処理を行う。本実施形態では、生成された補正フレーム画像ＨＦＧ（ｎ）を、出力Ｉ／Ｆ１０６（図１）によってプロジェクタ３００などの画像表示装置が必要とする画像信号に変換し、補正フレーム画像を生成する毎に直ちに出力するものとする。もとより、補正フレーム画像ＨＦＧ（ｎ）の出力先をＲＡＭ１０２やハードディスク１０５などに設けられた所定の画像ファイルとし、生成した一連の複数の補正フレーム画像を格納することとしてもよい。
【００７６】
次に、ステップＳ４４０では、動画像の全てのフレームの処理が終了したかどうかを判定する。全てのフレームの処理が終了していれば、補正フレーム画像ＨＦＧ（ｎ）の生成と出力を終了する。一方、まだ処理していないフレームが存在する場合は、ステップＳ４５０に進む。
【００７７】
以上でフレーム画像Ｆ（ｎ）についての処理を終了し、ステップＳ４５０にてｎに１を加える。そして、ステップＳ４１０に戻り、時系列順で一つ後のフレーム画像を新たにフレーム画像Ｆ（ｎ）として以降の処理を繰り返し、取得される全てのフレーム画像について補正フレーム画像を出力するのである。
【００７８】
図５の右側のフレーム画像Ｆ（３）について、本実施形態を画像処理装置で補正した結果を、図１３に示した。フレーム画像Ｆ（３）では補正に使うローパスフィルタＬＰＦの遮断周波数が高く設定されるので、補正フレーム画像ＨＦＧ（３）がフレーム画像Ｆ（３）の外側にはみ出すことがない。また、窓関数を利用してローパスフィルタＬＰＦの遮断周波数を高くした補正動き軌跡を合成するので、ローパスフィルタＬＰＦの遮断周波数の変えたフレームと変えていないフレームの境界付近で画像が不自然な動きをすることもない。
【００７９】
このように、本実施形態の画像処理装置によれば、手ぶれなどで発生する高い周波数成分の画像の揺れだけをより除くことができ、また画像の揺れが大きく、単一の遮断周波数では補正限界に達してしまう場合でも、部分的に遮断周波数を高くして補正限界を超えないように補正できる。また、フィルターの遮断周波数を変えた部分と変えない部分を窓関数を使って合成するので、フィルタの遮断周波数を変えなければならないような動きの大きな部分でも滑らかな補正画像を出力することができる。
【００８０】
以上、本発明の一実施形態を説明したが、本発明はこうした実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施し得ることは勿論である。
（変形例１）
例えば、補正フレームを出力する際には、補正前のフレーム画像と同じサイズに拡大したり、拡大せずに補正前フレームと同じサイズになるように背景を付けて出力してもよい。こうすれば、補正前と後でフレームのサイズが同じになるので、補正後にディスプレイ３００やビデオプロジェクタ３００に映像を出力する際に、画像サイズの変化を気にすることがなくなる。
（変形例２）
また、出力された画像が補正後のものであることがわかる印を補正フレームに付加したり、補正フレーム画像に補正後であることを示すタグ情報を付加したりしてもよい。こうすれば、画像をハードディスクやＤＶＤなどの媒体に記録しておく場合でも、補正前か補正後か簡単に識別ができ、誤って２回補正をかけてしまうようなことがなくなる。
（変形例３）
また、補正限界を超えている場合、ローパスフィルタの遮断周波数を全域で高くして補正動き軌跡を算出してもよい。こうすれば、補正動き軌跡の合成などの処理を省略することができ、補正処理を短時間で行うことができる。
（変形例４）
また、補正限界を超えた量に応じてローパスフィルタの遮断周波数を高くしてもよい。この場合、補正限界を超えているフレームの外側のフレーム画像から少しずつ遮断周波数をあげていく。こうすれば、窓関数による合成の計算を省略することができ、補正限界を超えている部分と超えていない部分の境界付近の補正フレームの動きを自然なものとすることができる。
【図面の簡単な説明】
【００８１】
【図１】本発明の一実施形態としての画像処理装置の概略構成を示す説明図。
【図２】フレーム画像の動きベクトルと動き軌跡を説明するための説明図。
【図３】動き軌跡と補正動き軌跡を説明するための説明図。
【図４】フレーム画像の動きベクトル、動き軌跡、補正動き軌跡、補正位置ベクトル及び補正フレーム画像の関係を説明するための説明図。
【図５】補正フレームの切り出し位置を説明するための説明図。
【図６】本実施形態の全体の処理を説明するフローチャート。
【図７】動き軌跡Ｘ０の算出処理を説明するためのフローチャート。
【図８】補正動き軌跡Ｘ１及び補正位置ベクトルの算出処理を説明するためのフローチャート。
【図９】動き軌跡、補正動き軌跡、補正限界、及び窓関数の関係を説明するための説明図。
【図１０】ローパスフィルタＬＰＦの遮断周波数の変更によるゲインの変化を説明するための説明図。
【図１１】窓関数の形状を説明するための説明図。
【図１２】補正フレーム画像ＨＦＧ（ｎ）の生成・出力処理を説明するためのフローチャート。
【図１３】画像処理装置による補正の効果を説明するための説明図。
【符号の説明】
【００８２】
１００…コンピュータ、１０１…入力Ｉ／Ｆ、１０２…ＲＡＭ、１０３…ＣＰＵ、１０４…ＲＯＭ、１０５…ハードディスク、１０６…出力Ｉ／Ｆ、１０７…バスライン、１１０…フレーム画像取得部、１２０…動き軌跡算出部、１３０…補正動き軌跡算出部、１４０…補正位置ベクトル算出部、１５０…補正フレーム画像生成部、１６０…補正フレーム画像出力部、２００…ビデオカメラ、２１０…ＤＶＤプレーヤ、３００…プロジェクタ、３１０…ディスプレイ、Ｆ（ｎ）…フレーム画像、ＦＫ（ｎ）…補正量が０の補正フレーム画像、ＨＦＧ（１）…補正フレーム画像、Ｓｍａｘ…補正限界値、Ｓｘｍａｘ…補正限界値のＸ成分、Ｓｙｍａｘ…補正限界値のＹ成分、Ｖ０（ｎ）…動きベクトル、Ｘ０…動き軌跡、Ｘ０（ｎ）…動き軌跡のｎ番目のフレームに対応する座標、Ｘ１…補正動き軌跡、Ｘ１（ｎ）…補正動き軌跡のｎ番目のフレームに対応する座標、Ｘ２…ローパスフィルタの遮断周波数を変えたときの補正動き軌跡、Ｘ１（ｎ）…ローパスフィルタの遮断周波数を変えたときの補正動き軌跡のｎ番目のフレームに対応する座標、Ｓ…補正位置ベクトル（全フレームの補正位置ベクトルの集合）、Ｓ（ｎ）…ｎ番目のフレームの補正位置ベクトル、Ｓｘ（ｎ）…ｎ番目のフレームの補正位置ベクトルのＸ成分、Ｓｙ（ｎ）…ｎ番目のフレームの補正位置ベクトルのＹ成分、ＬＰＦ…ローパスフィルタ、Ｆｃ…ローパスフィルタＬＰＦの遮断周波数。
【図１】
2006285655.tif 000005
【図２】
2006285655.tif 000006
【図３】
2006285655.tif 000007
【図４】
2006285655.tif 000008
【図５】
2006285655.tif 000009
【図６】
2006285655.tif 000010
【図７】
2006285655.tif 000011
【図８】
2006285655.tif 000012
【図９】
2006285655.tif 000013
【図１０】
2006285655.tif 000014
【図１１】
2006285655.tif 000015
【図１２】
2006285655.tif 000016
【図１３】
2006285655.tif 000017