本実施の形態にかかる画像処理装置は、例えば、動画撮影用のカメラに搭載されるものである。そして、カメラのユーザが、パノラマ静止画モードを選択すると、動画に基づいてパノラマ静止画を生成する。
画像処理装置は、撮像方向を変えて撮像された複数の画像を接合して接合画像を生成するものである。例えば、ユーザがパン操作を行ってカメラの撮像方向を水平方向(左右方向)に変えていく。すなわち、時間的に連続して撮影された静止画の集合である動画の取得中にカメラを動かすと、カメラの画角が変わる。こうして取得した動画の各フレーム(静止画)から得られたテクスチャを接合していくことで、接合画像が生成される。例えば、フレームメモリにテクスチャを上書きしていくことで、1枚の接合画像を生成することができる。ここで、テクスチャは、フレームそのものでもよいし、フレームの一部の領域を切り出したものでもよい。なお、カメラの画角とはカメラ(撮像部)によって撮像することができる範囲を意味するものであり、カメラの視野に対応している。したがって、ユーザがパン操作によりカメラの向きを変えることで、画角(視野)が変化する。
もちろん、撮像方向は水平方向だけでなく、鉛直方向(上下方向)に変えてもよい。このように、画像処理装置は、ユーザが手動でカメラを2次元的に自由に動かして撮影した動画を用いて、接合画像を生成する。接合画像は、撮像部が取得する画像の画像サイズよりも大きい画素サイズを有している。
本実施の形態に係る画像処理装置の特徴は第1のテクスチャと、第1のテクスチャよりも小さい画素サイズの第2のテクスチャを用いることにある。例えば、第2のテクスチャを円形とすることで、テクスチャの方向性がなくなる。したがって、撮像方向がいずれの方向に移動した場合でも、上記の形状の歪や、輝度や色の違いを目立たなくするように画像接合を行う技術を提供することができる。テクスチャを円形とした場合におけるテクスチャの軌跡について、図1に示す。
図1は、撮像方向を2次元的に移動した場合の円形テクスチャ52の軌跡を示す図である。図1では、図16と同様の動きの場合の軌跡を示している。図1で、時系列的には左から右に円形テクスチャ52が上書きされている。
図1では、時間的に初期に上書きされた部分が比較的新しく上書きされた部分と隣接する箇所が発生しない。すなわち、時間的に大きく離れたテクスチャが隣接しにくくなる。換言すると、長時間離れたフレーム画像のテクスチャが空間的に離れて配置されやすくなり、長時間離れたフレーム画像のテクスチャの境目が少なくなる。したがって、形状の歪や、輝度又は色の違いによる境目が発生するという問題を回避することができる。
また、カメラの軌跡が水平または垂直に限定される場合は、上記の歪や境目の問題が少ない。この場合は、矩形のテクスチャで上書きすることにより、テクスチャの絶対的な面積の大きさを生かすことができる。これにより、より大きな接合画像を生成することができる。
さらに、フレーム画像間の動きに応じて、テクスチャ形状を変えるようにしてもよい。例えば、水平方向の動き成分と垂直方向の動き成分との比に応じて、テクスチャ形状を変更することができる。具体的には、動きに応じて輪郭の少なくとも一部が曲線となっている形状のテクスチャである円形テクスチャ、楕円形テクスチャおよび角を有していないテクスチャそして、矩形テクスチャを使い分けることができる。さらには、楕円形テクスチャの扁平率を変えるようにしてもよい。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
実施形態1.
次に、実施形態1にかかる画像処理装置、及びカメラの構成について、図2を用いて説明する。図2は本実施形態にかかる画像処理装置を用いたカメラの構成を示すブロック図である。
カメラ100は、撮像部10と、画像処理装置20と、表示部30と、を備えている。画像処理装置20は、動画から接合画像を生成するための画像処理を行う。画像処理装置20は、第1の導出部21と、第2の導出部22と、テクスチャ書き込み部23と、フレームメモリ29とを備えている。
フレームメモリ29は、垂直方向及び水平方向において所定の画素数を有している。例えば、フレームメモリ29は、矩形の画素構造となっている。そして、フレームメモリ29には、画素間の動きベクトルに応じた画素位置に、接合画像を構成するテクスチャが書き込まれる。フレームメモリ29は接合画像を構成するテクスチャが書き込まれる記憶部となっている。
撮像部10は、撮像レンズ12を介して撮像素子11に入力された被写体からの光を光電変換して動画を生成し、その動画を画像処理装置20に出力する。撮像素子11は、CCD(charge coupled device)素子やCMOS(Complementary Metal Oxide sensor)素子である。撮像部10で取得された動画は、画像処理装置20に入力される。表示部30は、液晶ディスプレイや有機EL(Electroluminescence)ディスプレイなどの表示装置を備えている。そして、撮像部10が取得した動画を表示する。すなわち、表示部30は、動画の各フレームを順次表示していく。なお、カメラ100には、ユーザが操作を行うための操作部(不図示)が設けられている。例えば、表示部30がタッチパネルとすると、表示部30が操作部となる。もちろん、操作部は、ボタン等であってもよい。
なお、画像処理装置20の各ブロックは、ハードウェア的には、任意のコンピュータのCPU(Central Processing Unit)、メモリ、その他のLSI(Large Scale Integration)で実現でき、ソフトウェア的にはメモリにロードされたプログラムなどによって実現される。図2では、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
以下、画像処理装置20の各ブロックでの処理について、図3を参照して説明する。図3は、本実施形態にかかる画像処理方法を示すフローチャートである。以下の説明では、接合画像を生成するための処理を中心に説明する。すなわち、カメラ100における通常の処理、すなわち接合画像を生成する処理以外の処理は、公知の手法を用いることができるため、説明を省略する。
まず、撮像部10は、動画を構成するフレーム画像を画像処理装置20に入力する(S11)。すると、第1の導出部21は、1つのフレーム画像全体と一致する矩形テクスチャについて、第1の動きベクトルを導出する(S12)。第1の導出部21は、例えば、連続する2つのフレーム画像間の大域的動きベクトルを第1の動きベクトルとして導出する。第1の動きベクトルの導出には、公知のマッチング評価手法を用いることができる。例えば、第1の導出部21は、2つのフレーム画像を画素単位でマッチングして、最も誤差が小さくなる時のずれ量を動きとして検出する。そして、第1の導出部21は、フレーム画像間の動きを2次元ベクトルの形で導出する。
第1の導出部21は、フレーム画像の画素サイズと同じ画素サイズの矩形テクスチャを用いている。そして、2つのフレーム画像の矩形テクスチャを比較して、第1の動きベクトルを導出している。
次に、第2の導出部22は、第1の導出部21での導出結果に基づいて、第2の動きベクトルを導出する(S13)。第2の導出部22は、フレーム画像の一部であり、フレーム画像と同一の中心で内接する円形テクスチャを用いて、第2の動きベクトルを導出している。第2の導出部22は、2つのフレーム画像に対応する円形テクスチャに対して、上記と同様に、公知のマッチング評価方法を用いた動きベクトルの導出を行う。第2の導出部22は、連続する2つのフレーム画像の円形テクスチャ間の大域的動きベクトルを第2の動きベクトルとして導出する。
図4は、矩形のフレーム画像50における、矩形テクスチャ51と、円形テクスチャ52を示す図である。矩形テクスチャ51は、第1の動きベクトルの導出に用いられる。円形テクスチャ52は、第2の動きベクトルの導出に用いられる。矩形のフレーム画像50と矩形テクスチャ51は同じサイズとなっている。円形テクスチャ52は、矩形テクスチャ51よりも小さいサイズとなっている。すなわち、円形テクスチャ52全体が、矩形テクスチャ51内に包含されている。円形テクスチャ52は、フレーム画像50と同一の中心で、フレーム画像と内接する円形となっている。
このようにすることで、予め矩形テクスチャ51の豊富な画素数で概略的な第1の動きベクトルを算出した後に、レンズ歪の影響が少ない画像中央部の円形テクスチャ52でより正確な第2の動きベクトルを算定することが可能になる。
第2の導出部22は、第1の導出部21での導出結果を用いて、第2の動きベクトルを導出している。例えば、第1の導出部21で導出した第1の動きベクトルに基づいて、第2の導出部22は、マッチング評価を行う動きベクトルの探索範囲を決定している。第2の導出部22は、第1の動きベクトルを中心とする動きベクトルの探索範囲で、円形テクスチャ52を2次元的にずらす。すなわち、マッチングのために円形テクスチャ52をずらす動きベクトルの探索範囲を第1の動きベクトルに応じて設定することが可能になる。第1の動きベクトルの導出に用いられたマッチング範囲よりも、第2の動きベクトルに用いられる動きベクトルの探索範囲を狭くすることができる。このようにすることで、動きベクトルの導出時間を短くすることができる。
さらに、第1の導出部21では、フレーム画像全体と画素サイズが一致する矩形テクスチャ51を用いている。この場合、フレーム画像全体の全画素に対して、マッチングを行うことになる。フレーム画像全体を用いる場合、画素数が多いため、処理時間が長くなる恐れがある。処理時間を短縮するため、1画素単位でない動きベクトル探索を行なうことも可能である。例えば、1画素置き、又は2画素置き以上のピッチで動きベクトルの探索を行うことができる。すなわち、第1の導出部21は、複画素置きのフレーム画像でマッチング評価を行う。
一方、第2の導出部22は、円形テクスチャ52に含まれる全画素を用いてマッチング評価を行う。このように、第1の導出部21で精度の低い動きベクトルの導出を行った後、第2の導出部22で精度の高い動きベクトルの導出を行うことも可能である。こうすることで、短時間で動きベクトルを精度よく算出することができる。
このように、第1の動きベクトルに基づいて、第2の導出部22が第2の動きベクトルを導出している。こうすることで、円形テクスチャ52についての動きベクトルを適切に導出することができる。
そして、テクスチャ書き込み部23が第2の動きベクトルに基づいて、円形テクスチャ52をフレームメモリ29に上書きする(S14)。第2の動きベクトルは事実上フレーム画像間の円形テクスチャ52の位置ずれである。したがって、フレームメモリ29上で第2の動きベクトルに従って相互の位置合わせを行う。そして、テクスチャ書き込み部23は、第2の動きベクトルに応じた位置で、円形テクスチャ52をフレームメモリ29に書き込む。
次に、最終フレームであるか否かを判定する(S15)。最終フレームでない場合(S15のNO)、ステップS11に戻り、動画フレームの入力(S11)、第1の動きベクトルの導出(S12)、第2の動きベクトルの導出(S14)、及び円形テクスチャの上書き(S14)を繰り返す。一方、最終フレームと判定されると(S15のYES)、処理を終了する。これにより、接合画像が完成する。
このように、時間的に後のフレーム画像の円形テクスチャ52の上書きを繰り返すことにより接合画像が生成される。すなわち、フレームメモリ29には、入力されたフレーム数分の円形テクスチャ52の集合からなる接合画像が格納される。最後のフレームになったとき、すなわち、動画フレームが入力されなくたった時に、画像処理装置20は処理を終了する。そして、表示部30は、フレームメモリ29に記憶された接合画像を表示する。
図5は、最終的に取得された接合画像55の形状を示している。円形テクスチャ52が書き込まれた矩形状の領域が接合画像となっている。すなわち、フレームメモリ29においてテクスチャが書き込まれた画素を全て包含する最小の矩形領域が、接合画像55となる。もちろん、接合画像55は、矩形以外の形状でもよい。
上記のように、円形テクスチャ52を用いることで、時間的に大きく離れた円形テクスチャが隣接しにくくなる。換言すると、長時間離れたフレーム画像のテクスチャが空間的に離れて配置されやすくなり、長時間離れたフレーム画像のテクスチャの境目が少なくなる。したがって、形状の歪や、輝度又は色の違いによる境目が発生するという問題を回避することができる。以上の手法により、手動でカメラを2次元的に自由に動かして撮影した動画を接合しての静止画像の作成において、往復的なカメラ軌跡での撮影の折に、形状の歪や、輝度や色の違いによる境目が目立つことを回避することができる。
なお、上記の動き推定において、フレーム画像に内接する円形テクスチャ52を利用しているが、第2のテクスチャとして、サイズの異なる円や楕円、対角線が水平・垂直線と平行な矩形(所謂ひし形)、その他の多角形や自由図形を利用することも可能である。第2のテクスチャとしては矩形以外の形状であることが好ましく、より円形に近い形状とすることがより好ましい。
第2のテクスチャとして円形テクスチャ52を用いることで、撮像方向がどの方向に移動した場合でも、連続するフレーム画像のテクスチャが接合画像において隣接するのを防ぐことができる。換言すると、円形テクスチャを用いることで、各フレーム画像のテクスチャに隣接するテクスチャは、時間的に連続するフレーム画像のテクスチャとなる。
なお、矩形テクスチャ51がフレーム画像50と一致するとして説明したが、矩形テクスチャは、フレーム画像50の一部であってもよい。すなわち、第1の動きベクトルの導出に用いられる第1のテクスチャは、フレーム画像の一部の領域又は全部の領域であればよい。第2の動きベクトルの導出に用いられる第2のテクスチャのサイズは、第1のテクスチャよりも小さければよい。
実施形態2.
本実施の形態では、動きベクトルにおける水平成分と垂直成分とに応じて、第1のテクスチャ及び第2のテクスチャのいずれをメモリに書き込みかを判定する判定部を備えたことを特徴としている。
本実施形態に係る画像処理装置、及びその画像処理方法について、図6、図7を用いて説明する。図6は、画像処理装置20を用いたカメラ100の構成を示すブロック図である。図7は、画像処理装置20における処理を示すフローチャートである。
本実施の形態では、図2に示した実施形態1にかかるカメラの構成に対して、ベクトル成分判定部24が追加されている。さらに、実施形態1のテクスチャ書き込み部23に代えて、第1のテクスチャ書き込み部25、第2のテクスチャ書き込み部26が設けられている。なお、画像処理装置20の基本的構成、及び処理方法については、実施形態1と同様であるため、説明を省略する。例えば、第1の導出部21、第2の導出部22における動きベクトルの導出処理については、実施形態1と同様であるため、説明を省略する。また、ステップS21〜ステップS23、S27については、実施形態1のステップS11〜ステップS13、S15とそれぞれ同様であるため、説明を省略する。
ステップS23において、第2の動きベクトルを導出したら、ベクトル成分判定部24が第2の動きベクトルの片方の成分のみが0となっているか否かを判定する(S24)。すなわち、ベクトル成分判定部24は、動きベクトルの水平方向成分、又は垂直方向成分が0であるか否かを判定する。このように、ベクトル成分判定部24は、動きベクトルが垂直方向のみ、又は水平方向のみとなっているか否かを判定する。ここで、水平方向、及び垂直方向とはフレーム画像の端辺と平行な方向である。
なお、ベクトル成分判定部24は、円形テクスチャ52の動きが水平のみもしくは垂直のみかの判定を行うが、厳密な判定でなくてもよい。例えば水平成分の絶対値が垂直成分の絶対値の10倍以上の場合や垂直成分の絶対値が水平成分の絶対値の10倍以上の場合なども「動きベクトルの成分の片方のみが0」と判断して構わない。換言すると、ベクトル成分判定部24は、水平成分の絶対値と垂直成分の絶対値との比が所定の範囲内にあるか否かを判定する。
例えば、(水平成分の絶対値)/(垂直成分の絶対値)を成分比Rとすると、所定の範囲は、上限値と下限値とで決まる。例えば上記のように10倍を閾値とすると、上限値を10とし、下限値を0.1とすることができる。したがって、ベクトル成分判定部24は、成分比Rは0.1以下であれば、垂直方向のみの移動であり、10以上であれば、水平方向のみの移動であると判定する。ベクトル成分判定部24は、成分比Rが0.1〜10の範囲内であれば、斜め方向の移動と判定する。もちろん、上限値と下限値は上記の値に限られるものではない。
このように、水平成分の絶対値と垂直成分の絶対値の比が所定の範囲外であれば、水平移動のみ、又は垂直移動のみの1次元移動とみなす。一方、水平成分の絶対値と垂直成分の絶対値の比が所定の範囲内であれば、水平方向かつ垂直方向に移動する2次元移動とみなす。すなわち、画角が斜めに移動することになる。
第2の動きベクトルが、水平成分のみの場合、あるいは、垂直成分のみの場合(S24のYES)、第1のテクスチャ書き込み部25が矩形テクスチャ51をフレームメモリ29に上書きする(S25)。すなわち、フレーム画像間で円形テクスチャ52が垂直方向、及び水平方向のうちの1方向にしか移動していない場合、矩形テクスチャ51がフレームメモリ29に書き込まれる。
一方、第2の動きベクトルが、水平成分のみ、あるいは垂直成分のみでない場合(S24のNO)、第2のテクスチャ書き込み部26が円形テクスチャを上書きする(S26)。すなわち、フレーム画像間で円形テクスチャ52が垂直方向、及び水平方向の両方向に移動している場合、円形テクスチャ52がフレームメモリ29に書き込まれる。このように、ベクトル成分判定部24は、動きベクトルの成分に基づいて、1次元移動(水平移動、又は垂直移動)か2次元移動(斜め移動)かの判定を行う。そして、ベクトル成分判定部24は、矩形テクスチャ51、及び円形テクスチャ52のいずれを用いるかを決定する。
ステップS25、又はステップS26において、フレームメモリ29を上書きしたら、最終フレームであるか否かを判定する(S27)。最終フレームでない場合(S27のNO)、ステップS21〜S26の処理を繰り返す。最終フレームである場合(S27のYES)、処理を終了する。
このように、第2の動きベクトルの成分に基づいて、テクスチャの形状を矩形から円形に切り替えている。なお、上記の説明では、ベクトル成分判定部24が、第2の動きベクトルの成分に基づいて、フレーメモリ29に書き込まれるテクスチャを選択したが、第1の動きベクトルの成分に基づいて、テクスチャを選択してもよい。ベクトル成分判定部24が第1の動きベクトルの垂直成分、及び水平成分に基づいて判定を行い、矩形テクスチャ51及び円形テクスチャ52のいずれを用いるかを決定すればよい。もちろん、第1及び第2の動きベクトルの両方のベクトル成分に基づいて、ベクトル成分判定部24が判定してもよい。
ここで一例として、本実施の形態にかかるテクスチャの軌跡を図8に示す。図8においては、A、B、C、Dの順番で画角が移動しているとして説明する。AからBの区間で、画角が水平方向のみに移動している。CからDの区間で画角が斜め方向に移動している。なお図8では、テクスチャの中心点の軌跡を矢印で示している。
AからBの区間では、動きベクトルが水平方向の成分のみとなるため、垂直成分が0となる。したがって、ベクトル成分判定部24が動きベクトルが片方の成分のみ0であると判定する(ステップS24のYES)。よって、第1のテクスチャ書き込み部25が矩形テクスチャ51をフレームメモリ29に上書きする。したがって、テクスチャ51aからテクスチャ51bの順番でフレームメモリ29に上書きされる。このように、フレームメモリ29には、矩形テクスチャ51が第1の動きベクトルに応じた位置に書き込まれる。
CからDの区間では、第2の動きベクトルが1方向の成分のみとならないため、垂直成分及び水平成分のいずれも0とならない。したがって、ベクトル成分判定部24が動きベクトルが片方の成分のみ0であると判定しない(ステップS24のNO)。よって、第2のテクスチャ書き込み部26が円形テクスチャ52をフレームメモリ29に上書きする。したがって、テクスチャ52cからテクスチャ52dの順番でフレームメモリ29に上書きされる。このように、フレームメモリ29には、円形テクスチャ52が第2の動きベクトルに応じた位置に書き込まれる。
第1のテクスチャ書き込み部25は、第2の動きベクトルの成分の片方のみがゼロの場合に第1の動きベクトルに従ってフレーム相互の位置合わせを行う。そして、第1のテクスチャ書き込み部25は、時間的に後のフレーム画像の矩形テクスチャ51でフレームメモリ29を上書きする。ここで矩形テクスチャ51のまま上書きを行うのは、図17、図18で示したたように、動きが水平のみもしくは垂直のみの場合は、形状の歪や、輝度や色の違いによる境目の問題が発生しにくいからである。さらに、矩形テクスチャ51を用いることで、より大きい接合画像を生成することができる。フレーム画像と同じ画素サイズの矩形テクスチャ51を用いることで、フレーム画像全体の面積を利用することができ、より接合画像を大きくすることができる。
一方、第2のテクスチャ書き込み部26は第2の動きベクトルの成分の片方のみがゼロの場合以外について円形テクスチャ52での上書きを行う。すなわち、ベクトル成分判定部24は、第2の動きベクトルが斜め方向の成分を持つ場合、斜め移動と判定する。斜め移動の場合、第2の動きベクトルに応じた位置に円形テクスチャ52を上書きする。この処理については、実施の形態1と同様である。よって、実施の形態1と同様に、形状の歪や、輝度や色の違いによる境目が目立つことを回避することができる。
本実施の形態3.
本実施の形態では、動きベクトルの成分に基づいてテクスチャの形状を変えている。本実施の形態に係る画像処理装置及びその画像処理方法について、図9及び図10を用いて説明する。図9は、画像処理装置20を用いたカメラ100の構成を示すブロック図である。図10は、画像処理装置20における処理方法を示すフローチャートである。
図9では、図6に示した実施形態2にかかるカメラの構成に対して、第3の導出部27、第3のテクスチャ書き込み部28が追加されている。すなわち、実施形態2の構成に対して、導出部とテクスチャ書き込み部が一つずつ追加されている。なお、画像処理装置20の基本的構成及び処理については、実施の形態1、2と同様であるため説明を省略する。すなわち、第1の導出部21〜第2のテクスチャ書き込み部26での処理については、実施の形態2と同様である。
また、ステップS31、ステップS32,ステップS34、ステップS35,ステップS36、ステップS38、及びステップS40については、実施の形態1、2と同様であるため詳細な説明を省略する。具体的には、ステップS31、ステップS32,ステップS34、ステップS35,ステップS36、ステップS38、及びステップS40は、実施の形態におけるステップS21、ステップS22、ステップS23、ステップS24、ステップS25、ステップS26、ステップS27に対応しているため、共通する説明を省略する。
図11は、フレーム画像50におけるテクスチャを示す図である。第3の導出部27は、図11に示すように楕円形テクスチャ53を用いている。楕円形テクスチャ53は、フレーム画像50、即ち、矩形テクスチャ51よりも画素サイズが小さくなっている。楕円形テクスチャ53の中心は、矩形テクスチャ51の中心と一致し、矩形テクスチャ51に内接する楕円形である。したがって、楕円形テクスチャ53は、矩形テクスチャに包含されている。さらに、円形テクスチャ52は、楕円形テクスチャ53よりも画素サイズが小さくなっている。円形テクスチャ52の中心と楕円形テクスチャ53の中心は一致している。円形テクスチャ52は、楕円形テクスチャ53に包含されている。
第1の導出部21が第1の動きベクトルを導出したら(S32)、第3の導出部27は、楕円形テクスチャ53に基づいて、第3の動きベクトルを算出する(S33)。第3の導出部27は、第1の動きベクトルの導出結果に基づいて、第3の動きベクトルを導出する。第3の導出部27は、連続する2つのフレーム画像の楕円形テクスチャ間の大域的動きベクトルを第3の動きベクトルとして導出する。
そして、第3の導出部27が第3の動きベクトルを導出したら、第2の導出部22が第2の動きベクトルを導出する(S34)。そして、ベクトル成分判定部24が第2の動きベクトルの片方の成分のみがゼロであるか否かを判定する(S35)。
例えば、第2の動きベクトルの水平成分のみがゼロの場合(S35のYES)、すなわち、1次元移動の場合、第1のテクスチャ書き込み部25がフレームメモリ29に矩形テクスチャを上書きする(S36)。
一方、ベクトル成分判定部24が第2の動きベクトルの片方の成分のみがゼロでない場合、すなわち、1次元移動でない場合、ベクトル成分判定部24が、動きベクトルの垂直成分と水平成分を比較する(S37)。ここでは、第2の動きベクトルの垂直成分と水平成分の大きさを比較している。そして、ベクトル成分判定部24は、水平方向移動、又は垂直方向移動に近い斜め移動か、斜め45度に近い斜め移動か否かを判定する。
例えば、ベクトル成分判定部24は第2の動きベクトルの垂直成分と水平成分とを比較して、成分比が3倍以上であるか否かを判定する。すなわち、ベクトル成分判定部24は、水平成分と垂直成分のうち一方が他方の3倍以上となっているか否かを判定する。水平成分と垂直成分との一方が他方に対して3倍未満の場合、第3のテクスチャ書き込み部28が円形テクスチャ52をフレームメモリ29に上書きする(S38)。水平成分と垂直成分との一方が他方に対して3倍以上の場合、第3のテクスチャ書き込み部28が楕円形テクスチャ53をフレームメモリ29に上書きする(S39)。
例えば、上記のように、(水平成分の絶対値)/(垂直成分の絶対値)を成分比Rとする。ベクトル成分判定部24は、成分比Rが1/3〜3の範囲にあるか否かを判定する。ベクトル成分判定部24は、成分比Rは1/3以下、又は3以上であれば、水平移動又は垂直移動に近い斜め移動と判定する。一方、ベクトル成分判定部24は、成分比Rが1/3〜3の範囲内であれば、斜め45度方向に近い斜め方向の移動と判定する。すなわち、水平方向及び垂直方向からの傾きが大きく斜め方向に移動する場合、円形テクスチャ52を用いる。水平方向又は垂直方向に近い斜め方向に移動する場合、楕円形テクスチャ53を用いる。
このようにすることで、時間的に初期に上書きされた部分が比較的新しく上書きされた部分を隣接する部分が発生しない。すなわち、時間的に大きく離れたテクスチャが隣接しなくなる。したがって、形状の歪や、輝度又は色の違いによる境目が発生するという問題を回避することができる。さらに、円形テクスチャ52よりも大きい楕円形テクスチャ53を用いているため、より大きい接合画像を取得することができる。
このように、第2の動きベクトルの成分に基づいて、テクスチャの形状を矩形から円形に切り替えている。なお、上記の説明では、ベクトル成分判定部24が、第2の動きベクトルの成分に基づいて、フレーメモリ29に書き込まれるテクスチャを選択したが、第1の動きベクトルの成分または第3の動きベクトル成分に基づいて、テクスチャを選択してもよい。ベクトル成分判定部24が第1の動きベクトルの垂直成分、及び水平成分、または、第3の動きベクトルの垂直成分、及び水平成分に基づいて判定を行い、矩形テクスチャ51、楕円テクスチャ53及び円形テクスチャ52のいずれを用いるかを決定すればよい。もちろん、第1から第3の動きベクトルの全てのベクトル成分に基づいて、ベクトル成分判定部24が判定してもよい。
ここで一例として、図12は、本実施の形態にかかる画像処理方法により生成した接合画像55を示す図である。図12では、A,B,C,D,E,Fの順番で画角が移動しているとして説明する。AからBの区間で、画角が水平方向のみに移動している。CからDの区間で画角が水平方向に近い斜め方向に移動している。EからFの区間では、斜め45度に近い方向に画角が移動している。なお、図12では、テクスチャの中心点の軌跡を矢印で示している。
AからBの区間では、動きベクトルが水平方向の成分のみとなるため、垂直成分が0となる。したがって、ベクトル成分判定部24が動きベクトルが片方の成分のみ0であると判定する(ステップS35のYES)。よって、第1のテクスチャ書き込み部25が矩形テクスチャ51を上書きする。したがって、テクスチャ51aからテクスチャ51bの順番でフレームメモリ29に上書きされる。フレームメモリ29には、矩形テクスチャ51が、第1の動きベクトルに応じた位置に書き込まれる。
CからDの区間では、動きベクトルが水平方向からわずかに傾いた方向となっている。したがって、ベクトル成分判定部24は、水平成分が垂直成分に対して3倍以上になっていると判定する(S35の3倍以上)。よって、第3のテクスチャ書き込み部28が楕円形テクスチャ53をフレームメモリ29に上書きする(S39)。したがって、テクスチャ52cからテクスチャ52dの順番でフレームメモリ29に上書きされる。フレームメモリ29には、楕円形テクスチャ53が、第3の動きベクトルに応じた位置に書き込まれる。
EからFの区間では、第2の動きベクトルが斜め45度に近い方向となっている。したがって、ベクトル成分判定部24が水平成分と垂直成分の一方が他方に対して3倍未満になっていると判定する(S35の3倍未満)。よって、第2のテクスチャ書き込み部26が円形テクスチャ52を上書きする(S38)。したがって、テクスチャ52eからテクスチャ52fの順番でフレームメモリ29に上書きされる。フレームメモリ29には、円形テクスチャ52が、第2の動きベクトルに応じた位置に書き込まれる。
上記の説明では、動きベクトルの水平成分と垂直成分の一方が他方の3倍以上となっている場合、楕円形テクスチャを用いたが、ベクトル成分判定部24が判定を行う閾値は3倍上に限られるものではない。また、ベクトル成分判定部24は、成分比ではなく、成分の絶対値に応じて、判定を行ってもよい。例えば、ベクトル成分判定部24は、水平成分、及び垂直成分の一方の絶対値をしきい値と比較して判定してもよい。すなわち、ベクトル成分判定部24はベクトルの成分に応じて判定を行うことができる。
実施形態3では、矩形テクスチャ51、円形テクスチャ52、楕円形テクスチャ53の3つのテクスチャを用いたが、用いるテクスチャの数は、3つに限られるものではない。例えば、4以上のテクスチャを用いてもよい。あるいは、垂直成分と水平成分との成分比や大きさによって、テクスチャ形状を任意に変えることができる。例えば、成分比Rに応じて、楕円形テクスチャの扁平率(縦横比)を連続的に変えてもよい。さらに、テクスチャは、輪郭の少なくとも一部が曲線となっている形状のテクスチャであればよい。輪郭に少なくとも一部が曲線となっている形状とは、例えば、円形、楕円形や角を有していない形状である。もちろん、テクスチャとしては、フレーム画像の端辺と平行ではない辺を有する多角形であってもよい。例えば、テクスチャとして、菱形や、6角形等の多角形を用いることも可能である。
なお、第1の動きベクトルの導出は、輪郭の少なくとも一部が曲線となっている形状のテクスチャで行なってもよい。
(テクスチャの変形例1)
輪郭の一部が曲線となっているテクスチャの一例を図13に示す。図13では、テクスチャ54が、四隅角部が丸められた矩形となっている。すなわち、図13に示すテクスチャ54では、矩形の四隅角部が円弧状になっている。画像処理装置20は、このような角を有していないテクスチャ54を接合して接合画像55を生成する。
実施の形態1〜3の円形テクスチャ52や楕円形テクスチャ53の代わりに、図13に示すようなテクスチャ54を用いることができる。こうすることで、形状の歪や、輝度や色の違いによる境目などが発生することを防ぐことができる。すなわち、図16で示したように、最も右側の最新フレームが、時間的に大きく離れたフレームに接触するのを防ぐことができる。図13では、角がないテクスチャ54が用いられているため、歪や境目の問題を大きく改善することができる。
(テクスチャの変形例2)
輪郭の一部が曲線となっているテクスチャの別の一例を図14に示す。図14では、テクスチャ54が、2つの角部が丸められた矩形となっている。すなわち、図14に示すテクスチャ54では、矩形の左上角部と左下角部が円弧状になっており、右下角部と右上角部が直角になっている。画像処理装置20は、このようなテクスチャ54を接合することで接合画像55を生成する。
実施の形態1〜3の円形テクスチャ52や楕円形テクスチャ53の代わりに、図14に示すようなテクスチャ54を用いることができる。こうすることで、形状の歪や、輝度や色の違いによる境目などが発生することを防ぐことができる。すなわち、図14に示すテクスチャ54を用いることで、図16で示したように、最も右側の最新フレームが、時間的に大きく離れたフレームに接触するのを防ぐことができる。図14に示すテクスチャ54の大きさは、図13に示すテクスチャ54の大きさよりも大きくすることができる。すなわち、変形例2では、丸められている角部が少ないため、フレームメモリ29上にテクスチャ54が書き込まれる領域を大きくすることができる。
なお、図14のテクスチャ54では、画角の移動方向の後方側の2つの角部が丸められており、先頭側の2つの角部が直角になっている。すなわち、図14では画角が右方向に移動しているため、左側の2つの角部が丸められており、右側の2つの角部が直角となっている。なお、変形例2において、画像処理装置20は、動きベクトルに応じて、矩形テクスチャの四隅角部のうち、丸める角部を決定してもよい。すなわち、動きベクトルに応じて画角の移動方向を求め、画角の移動方向に基づいて丸める角部を決定してもよい。この場合、画角の移動方向の後方側の角部を丸めることが好ましい。例えば、画角が下方向に移動している場合は、右上角部と左上角部とを丸めるようにする。また、画角が上方向に移動している場合は、右下角部と左下角部とを丸めるようにし、画角が左方向に移動している場合は、右上角部と右下角部とを丸めるようにする。このようにすることで、形状の歪や、輝度や色の違いによる境目などが発生することを防ぐことができる。このように、画像間の動きに応じて、テクスチャ54の動きを変化させることができる。
(テクスチャの変形例3)
輪郭の一部が曲線となっているテクスチャの別の一例を図15に示す。図15では、テクスチャ54が、1つの角部が丸められた矩形となっている。すなわち、図15に示すテクスチャ54では、矩形の左下角部が円弧状になっており、残りの3つの角部が直角になっている。画像処理装置20は、このようなテクスチャ54を接合することで接合画像55を生成する。
実施の形態1〜3の円形テクスチャ52や楕円形テクスチャ53の代わりに、図15に示すようなテクスチャ54を用いることができる。こうすることで、形状の歪や、輝度や色の違いによる境目などが発生することを防ぐことができる。すなわち、図15に示すテクスチャ54を用いることで、図16で示したように、最も右側の最新フレームが、時間的に大きく離れたフレームに接触するのを防ぐことができる。図15に示すテクスチャ54の大きさは、図14に示すテクスチャ54の大きさよりも大きくすることができる。すなわち、変形例3では、丸められている角部が少ないため、フレームメモリ29上にテクスチャ54が書き込まれる領域を大きくすることができる。
なお、変形例3において、画像処理装置20は、動きベクトルに応じて矩形テクスチャの四隅角部のうち、丸める角部を決定してもよい。すなわち、動きベクトルに応じて画角の移動方向を求め、画角の移動方向に基づいて丸める角部を決定してもよい。この場合、画角の移動方向の後方側の角部を丸めることが好ましい。例えば、画角が右下に移動する場合、左上角部を丸めるようにする。このように、画像間の動きに応じて、テクスチャ54の動きを変化させることができる。
さらには、実施の形態2、3のように、図13〜図15のテクスチャ54を切り替えるようにしてもよい。この場合、動きベクトルに応じて画角の移動方向を求め、移動方向に応じてテクスチャを決定する。また、輪郭の一部が曲線となるテクスチャは図13〜図15の形状に限られるものではない。例えば、矩形の3つの角部を丸めたテクスチャを用いてもよい。
上記画像処理のうちの一部又は全部は、コンピュータプログラムによって実行されてもよい。上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記実施の形態に限られたものではない。各実施の形態や変形例の組み合わせでもよく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。