JP2006293851A - 画像合成装置及び方法、撮像装置並びに記録媒体 - Google Patents
画像合成装置及び方法、撮像装置並びに記録媒体 Download PDFInfo
- Publication number
- JP2006293851A JP2006293851A JP2005116094A JP2005116094A JP2006293851A JP 2006293851 A JP2006293851 A JP 2006293851A JP 2005116094 A JP2005116094 A JP 2005116094A JP 2005116094 A JP2005116094 A JP 2005116094A JP 2006293851 A JP2006293851 A JP 2006293851A
- Authority
- JP
- Japan
- Prior art keywords
- image
- slit
- images
- canvas
- function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Image Processing (AREA)
- Editing Of Facsimile Originals (AREA)
- Studio Devices (AREA)
Abstract
【課題】 複数枚の入力画像を重ね合わせてパノラマ画像を合成する際に、画像メモリとなるキャンバスのメモリ量を削減する。
【解決手段】 複数枚の入力画像(スリット画像)の内の第1番目のスリット画像141のデータが第1のキャンバス142へとコピーされる。第k番目のスリット画像143のデータと、重み関数f(i)144のデータとは乗算器145にて乗算される。減算器146からの減算結果データ(1−f(i))タと第1のキャンバス142からのデータとが乗算器147にて乗算される。乗算器145,147からの各乗算結果データとは、加算器148にて加算され、第1のキャンバス142へと書き戻される。重み関数f(i)は、各スリット画像にそれぞれ寄与率w(i)で重み付けして重ね合わせた結果と等価となるように設定されたものである。
【選択図】 図20
【解決手段】 複数枚の入力画像(スリット画像)の内の第1番目のスリット画像141のデータが第1のキャンバス142へとコピーされる。第k番目のスリット画像143のデータと、重み関数f(i)144のデータとは乗算器145にて乗算される。減算器146からの減算結果データ(1−f(i))タと第1のキャンバス142からのデータとが乗算器147にて乗算される。乗算器145,147からの各乗算結果データとは、加算器148にて加算され、第1のキャンバス142へと書き戻される。重み関数f(i)は、各スリット画像にそれぞれ寄与率w(i)で重み付けして重ね合わせた結果と等価となるように設定されたものである。
【選択図】 図20
Description
本発明は、撮影方向を順次変化させて撮像することにより複数の画像領域が貼り合わされたパノラマ画像のような合成画像を作成する画像合成装置及び方法、撮像装置並びに記録媒体に関する。
近年において、パノラマ状の画像を撮影するカメラシステムが種々提案されている。このカメラシステムは、広い視野を複数のレンズで一度に撮影する多眼式と、1個のレンズを用いる単眼式に分類される。
多眼式のカメラシステムは、通常のカメラとほぼ同様の操作でパノラマ状の全体画像を生成することができるという利点があるが、システム全体が高価になるという欠点がある。
単眼式のカメラシステムには、超広角レンズ(ワイドレンズ)を用いるものと、標準レンズを用いるものとがあるが、一般に、超広角レンズは高価であることから、標準の単眼レンズを用いて撮影方向を順にシフトさせつつ個々の単位画像に分けて連続撮影するものが提案されている。
例えば、特許文献1に記載されたビデオカメラは、比較的安価であるが、連続撮影した個々の単位画像を継ぎ目が目立たないように接合して一枚の全体画像を生成する画像処理技術が必須となる。すなわち、撮影方向を順次シフトさせて撮影を行う関係上、撮影された個々の視野は互いに異なることから、パターンマッチング等の技術を用いて隣接する単位画像間の位置ずれ量を推定してこれを補正する必要があるからである。また重なり合う単位画像からパノラマ状の全体画像を取得すべく、各単位画像の中心からの距離に関するボロノイ分割法を用いることにより、得られた境界線に基づいて最適な単位画像を選択する方法が提案されている。更には、相互に重複する画像領域における画素値の平均を用いることにより隣接する単位画像を滑らかにつなぐ方法、或いはメディアンフィルターを用いることにより、最適な単位画像を選択する方法も提案されている。
また、特許文献2に記載されたパノラマ電子スチルカメラは、モータにより自動でカメラを回転させて、スリット状の画像を得る。そして、これらスリット状の画像をつなぎ合わせることでパノラマ画像を作成できることが開示されている。
ところで、例えばモータにより自動でカメラを回転させて撮像することにより得られた複数枚のスリット状の入力画像をつなぎ合わせてパノラマ画像のような合成画像を作成する場合に、各入力画像に重複部分(重なり合う部分)を持たせ、寄与率(重み)を付与して合成することが考えられるが、各入力画像毎に寄与率(重み)を付与して加算する際に、加算結果を一時保持するためのメモリ等が必要となり、多くのメモリ量が必要とされる。
本発明は、このような従来の実情に鑑みて提案されたものであり、複数枚の入力画像を重ね合わせてパノラマ画像のような合成画像を作成する際に、画像メモリとなるキャンバスのメモリ量を削減できるような画像合成方法及び装置、撮像装置並びに記録媒体を提供することを目的とする。
上述の課題を解決するために、本発明は、複数枚の入力画像を重ね合わせて合成画像を作成するために、既に合成された中間合成画像に現在の入力画像である現入力画像を重ね合わせて合成する際に、上記現入力画像に対して計算用重み関数f(x)による重み付けをし、上記中間合成画像との間で重み付け平均して加算合成するようにし、上記計算用重み関数f(x)は、最終的な合成画像における各入力画像に対しての実質的な重み関数w(x)による重み付けがされたものとする関数であることを特徴とする。
ここで、上記複数枚の入力画像は、撮影方向を順次変化させて撮影範囲の一部を構成する単位画像を撮像して得られたものであることが好ましい。
また、上記実質的な重み関数w(x)は、入力画像の重ね合わせ部分において重ね合わされる画像の枚数に応じて合計値を1とするように平均化された重みを有し、該重ね合わせ部分の周辺にゆくに従い重みを0とする関数であることが好ましい。
このような本発明では、現在の入力画像である現入力画像に対して、計算用重み関数f(x)による重み付けを行い、中間合成画像との間で重み付け平均して加算合成することにより、最終的な合成画像における各入力画像については、実質的な重み関数w(x)による重み付けがされたものとなる。
本発明によれば、複数枚の入力画像を重ね合わせてパノラマ画像のような合成画像を作成する際に、画像メモリとなるキャンバスのメモリ量を削減することができる。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
本発明の実施の形態は、例えば図1に示すような撮像装置1に適用される。この撮像装置1は、被写体を撮像する撮像部10を備え、この撮像部10は、被写体からの像光を結像させるためのレンズ10aと、レンズ10aを介して入射される像光を遮光する図示しないシャッタ羽根等により絞り量を調整する絞り駆動部10bと、入力される被写体像に基づき電気的な撮像信号C1を生成するCMOS(Complementary Metal-Oxide Semiconductor) イメージセンサ11とを有している。
また、この撮像装置1は、CMOSイメージセンサ11により生成された撮像信号C1のばらつきを補償するためのCDS(Correlated Double Sampling)回路12と、CDS回路12から供給される撮像信号C2をアナログ/デジタル変換処理するA/D変換部13と、このA/D変換部13から供給されるデジタル化した撮像信号C2としての画像データを一時的に格納し、これに所定の処理を施すディジタルシグナルプロセッサ(DSP)15と、接続されたDSP15からの画像データを符号化するコーデック処理部16と、このコーデック処理部16から供給される画像データを格納するメモリ17とを備えている。
この撮像装置1は、DSP15から供給される画像データをデジタル/アナログ変換処理して出力するD/A変換部18と、このD/A変換部18からの画像データをビデオ信号に変換するビデオエンコーダ部19と、ビデオエンコーダ部19に接続されてなり、上述のビデオ信号に基づく画像をユーザに表示するためのモニタ部20とを備え、またこの撮像装置1は、接続された内部バス14を介して撮像装置1全体を制御するためのCPU(Central Processing Unit)21と、内部バス14に接続されてなりユーザが各種操作を実行するための操作部22と、CPU21から内部バス14を介して送られる制御信号に基づき、CMOSイメージセンサ11からDSP15に至るまでの信号処理系を制御するタイミングジェネレータ23と、内部バス14にそれぞれ接続されてなるモータ24並びに露出計26とを備えている。
撮像部10は、CPU21から供給された動作信号に基づき、自動絞り制御動作や自動焦点制御動作等を実行する。また、この撮像部10は、かかる動作信号に基づいて、撮影方向を水平、垂直方向へ調整し、また操作部22を介して入力される絞り値に応じて、図示しないシャッタ羽根を開閉させることにより絞り量を調整する。
CMOSイメージセンサ11は、レンズ部10a並びに絞り駆動部10bを介して入射される被写体像を電気信号に変換した撮像信号C1を生成し、これをCDS回路12へ出力する。なお、このCMOSイメージセンサ11は、撮像面上に結像された被写体像のうち一部の領域を選択し、当該領域の画素値のみを効率よく読み出すことができる。
CDS回路12は、CMOSイメージセンサ11から供給される撮像信号C1の雑音を相関二重サンプリング回路を用いて除去し、或いはゲインを増幅させるための処理を施し、これを撮像信号C2としてA/D変換部13へ出力する。A/D変換部13は、このCDS回路12から供給される撮像信号C2をアナログ/デジタル変換処理し、これをDSP15へと出力する。ちなみに、このCDS回路12及びA/D変換部13における各動作タイミングは、一定のフレームレートで画像取り込みを継続すべく、タイミングジェネレータ23により制御される。
DSP15は、ともに図示しない信号処理用プロセッサと、画像用RAMとを有するブロックである。A/D変換部13からの撮像信号C2で表される画像は、タイミングジェネレータ23による制御の下、一定のフレームレートで構成されるストリームデータとして供給され、この画像用RAMに一時的に格納される。図示しない信号処理用プロセッサは、この画像用RAMに格納される画像に対して、予めプログラムされた画像処理を施すための設定がなされている。この図示しない画像用RAMにおいて画像処理された画像は、コーデック処理部16とD/A変換部18の何れか、或いは双方へ送信される。
コーデック処理部16は、DSP15から送信された画像につき、所定の方式でデータ量を圧縮する。ここでは、JPEG(Joint Photographic Experts Group)等の規格に基づいて圧縮符号化してもよい。
メモリ17は、例えば半導体メモリ,磁気記録媒体,光磁気記録媒体等で構成され、コーデック処理部16において圧縮処理された画像データを所定のアドレスに記録するための媒体である。このメモリ17を着脱自在な記録媒体として構成することにより、撮像した画像を他のPC等に移し換えてこれを鑑賞し、又は各種検索や処理を実行することができる。
モニタ部20は、D/A変換部18においてアナログ信号に変換され、さらにビデオエンコーダ部19においてビデオ信号に変換された画像を表示する。このモニタ部20は、ユーザ自身が撮像処理を実行しつつリアルタイムに撮影内容の確認ができるように、撮像装置1の筐体側面等に設けられる液晶表示素子等で構成してもよい。
CPU21は、内部バス14を介して、実行すべき制御プログラムを格納するROMやデータの蓄積や展開等に使用する作業領域としてのDRAM等が接続され、撮像装置1全体を制御する中央演算ユニットとしての役割を担う。CPU21は、操作部22から供給される操作信号D1や露出計26から送信される明るさに関する情報に基づいて、動作信号を生成し、これを内部バス14を介して撮像部10へ送信する。
操作部22は、撮影画角や撮影方向をユーザが自由に調整するため、或いは撮像部10における絞り値や露出時間を自由に調整するためのキー等で構成される。この操作部22は、ユーザにより入力された情報に応じた操作信号D1を生成し、これを内部バス14を介してCPU21へ送信する。さらに、この操作部22は、シャッタボタン221を有し、ユーザによるシャッタボタン221の押圧入力操作に基づいて、撮像を開始又は停止する旨の操作信号D1を生成し、これを内部バス14を介してCPU21へ送信する。
モータ24は、例えばステッピングモータ等のように、撮像部10を旋回させるための駆動源として構成される。このモータ24は、CPU21からの動作信号に応じて回転する。これにより、撮像部10の撮影方向を水平方向、或いは垂直方向に変更することができる。
露出計26は、撮像部10により撮像される対象の明るさを識別するためのセンサであり、この識別した明るさに関する情報をCPU21へ送信する。
上述の如き構成からなる撮像装置1により撮像された被写体像は、CMOSイメージセンサ11において電気信号に変換されて撮像信号C1となり、CDS回路12により雑音を除去されて撮像信号C2となり、更にはA/D変換部13においてアナログ/デジタル変換処理される。また、この撮像信号C2で示される画像は、DSP15における図示しない画像用RAMに格納され、所定の画像処理が施された後、D/A変換部18によりデジタル/アナログ変換処理されてモニタ部20において表示され、或いはコーデック処理部16により符号化されてメモリ17に記録されることになる。
本発明は、さらに以下に説明する撮像装置3に適用することができる。この撮像装置3において上述した撮像装置1と同一の構成、要素については、図1の説明を引用することにより、ここでの説明を省略する。
この撮像装置3は、例えば図2に示すように、レンズ部10aを含む撮像部10を介して被写体を撮像し、連結された回転軸を回転中心として図2中の矢印A方向へ回転可能な第1の筐体31と、第1の筐体の下側に配設され、ユーザの片手で把持可能な第2の筐体32とを備えている。ちなみに、この第2の筐体32には、シャッタボタン221と、撮像した画像をユーザ自身が視認するための表示部43とが配設されている。
図3(a)、(b)は、この撮像装置3の内部構成を示している。この第1の筐体31は、レンズ部10aと、CMOSイメージセンサ11と、少なくともCDS回路12並びにA/D変換部13を有する第1の電子回路41とを備えている。
また、第2の筐体32は、回転軸38を介して第1の筐体31に連結されてなり、この回転軸38を回転させるためのモータ51と、この回転軸38の回転角を制御するためのフォトインターラプタ52並びに遮蔽板53と、この回転軸38の回転動作に対して物理的な制限を加えるためのストッパー54と、第2の筐体32の上面に設けられた連結穴に挿設されてなり、上記回転軸38を支持することにより円滑な回転動作を実現するためのベアリング55と、撮像装置3の各構成要素を制御するための第2の電子回路42と、各構成要素を動作させるためのバッテリー44とを備えている。
第2の電子回路42は、図3(b)に示すように、DSP15と、メモリ17と、CPU21と、操作部22と、シャッタボタン221と、表示部43と、モータやフォトインターラプタ、または外部機器との間で画像データを送受信するためのインターフェース47とを備え、また第1の電子回路41との間で電気的な信号を送受信するための配線56が接続されている。
ちなみに、この第2の筐体32は、上述した各構成要素に加えて、一般撮影モードと、パノラマ撮影モードとを切り換えるためのボタンや、一般的なデジタルカメラが有する各種ボタンが配設されている。
モータ51は、供給された駆動パルスに応じた角速度で回転軸38を回転させるステッピングモータ等で構成される。このモータ51により回転させられる回転軸38の一端側には第1の筐体31が連結され、その中間にはストッパー54が固着される。またこの回転軸38の他端側には遮蔽板53が固着されている。すなわち、このモータ51に基づく回転軸38の回転動作に応じて第1の筐体31が回転するとともに、遮蔽板53並びにストッパー54も同様に回転することになる。ちなみに、このモータ51による回転軸38の回転角度における相対的な変位は、モータ51に与えるパルス数で検出することができる。
表示部43は、D/A変換部18,ビデオエンコーダ部19,モニタ部20に準ずる構成を全て含み、第2の筐体32側面に設けた液晶表示素子を介して生成した画像を表示する。この表示部43は、回転軸38により回転させられる第1の筐体31と離間して設けられているため、回転軸38の回転に支配されることなく、視認性を向上させることができる。
フォトインターラプタ52は、発光体52aと受光体52bとが上下に亘って設けられてなる。この受光体52bは、発光体52aからの光信号を受光し続けることになるが、回転軸38の回転に応じて遮蔽板53がフォトインターラプタ52付近まで回転されてきた場合には、かかる光信号が遮蔽板53により遮蔽されることになる。すなわち、この受光体52bが受光する光信号の遮蔽状況から、回転軸38の回転状況を識別することが可能となる。
なお、回転軸38が可動範囲を超えて回転した場合には、この遮蔽板53が光信号を遮蔽し、当該遮蔽に応じてモータ51が停止するように構成としてもよい。この図4は、フォトインターラプタ52並びに遮蔽板53を図3中のB方向から捉えたものである。この図4に示すように、可動範囲内においては、遮蔽板53が受光体52bにより受光される光信号を遮ることがないため、モータ51が停止することなく、回転軸38を自在に回転させることができる。これに対して、可動範囲を超えた場合には、遮蔽板53が受光体52により受光される光信号を遮ることになり、モータ51が停止することになる。なお、この可動範囲を超えた場合には、さらにストッパー54を介して第1の筐体31の回転動作を物理的に抑え込むようにしてもよい。
このように、第2の筐体32に対する第1の筐体31の回転範囲を制限する仕組みを導入することにより、第1の筐体31から第2の筐体32へのデータの伝送を、フォトカプラを用いた特殊なジョイント部品を使用することなく、通常の可動部分で用いられるようなフレキシブルな配線素材を用いて実現することができる。
上述の構成からなる撮像装置3を用いるユーザは、第2の筐体32を把持しつつ、撮影を行う。かかる場合において第2の筐体32外部に設けられたシャッタボタン221を押圧することにより、上述した撮影開始のタイミング、撮影終了のタイミングを指定することができる。第2の筐体32を片手で把持するユーザの指先に当たる箇所に、このシャッタボタン221を設けることにより、指先の小さな動きで撮影の開始及び終了を支持することができる。
従って、このような第2の筐体32を片手で把持し、シャッタボタン221を押圧することにより、図5(a)に示す状態から、第1の筐体31が徐々に回転し、図5(b)に示すように撮像部10の撮影方向が変化する。また、このシャッタボタン221を更に押圧し続けることにより、図5(c)に示すように、第1の筐体31が更に回転する結果、撮像部10の撮影方向がさらに変化することになる。すなわち、この第1の筐体31は、連結された回転軸38を回転中心として撮像部10の撮影方向が順次変化するように回転可能となるように構成されてなる。
ちなみに、この図5(c)に示す状態においてこのシャッタボタン221を押し続けた場合に、上述したフォトインターラプタ52により、モータ51の回転を抑制させた上で、この第1の筐体31を更に反対方向へ向かって回転させるようにしてもよい。
ちなみに、この第2の筐体32には、バッテリー44やモータ51等の質量の大きい部品や、多くの回路より構成される第2の電子回路42が搭載されるのに対し、第1の筐体31には、撮影に必要なレンズ部10aや、CMOSイメージセンサ11、第1の電子回路41等のように比較的質量の小さい部品が搭載されている。すなわち、この第1の筐体31は、第2の筐体32と比較して質量が軽くなるような構成とされている。これにより、第1の筐体31を回転させる回転軸38やベアリング55等の部品、更にはモータ51等への機械的負荷を軽減させ、製品全体のコストを低く抑え込むことが可能となり、高品質なパノラマ撮影機能を備えた一般的なコンスーマ用のデジタルカメラを低コストで実現することも可能となる。
図6は、撮像装置3による撮影工程を示すフローチャートである。
撮像装置3は、ハードウェアの診断や初期化を行った後、ステップS61へ移行する。
ステップS61では、通常のカメラと同様に、自動露出機能等の補助を利用しつつ、絞り量や露出等をユーザ自身が調整する。その結果、各種撮影パラメータが決定される。
次にステップS62へ移行し、シャッタボタン221の押圧を調べ、撮影開始タイミングを識別する。シャッタボタン221が押圧されていればそのままステップS63へ移行し、押圧されていなければステップS61へ戻る。
ステップS63へ移行した場合には、撮像部10により撮像を行う。撮像により取得されたデータは、CDS回路12、A/D変換部13を経て、DSP15へ転送される。
ステップS64では、DSP15が画像処理を実行することによりパノラマ状の全体画像を合成する。図7は、連続撮影した画像をつなぎ合わせて1枚のパノラマ状の全体画像を合成する様子を示している。ここで、連続して撮影された各単位画像は、互いに重複領域が生じるように撮影されているものとする。この重複領域については、従来より知られている合成方法に基づいてつなぎ合わせることにより、図7に示すような全体画像を合成することができる。ちなみに、この合成方法として、例えば、アルファブレンディング等の合成技法を用いるようにしてもよい。
次にステップS65へ移行し、第1の筐体31を第2の筐体32に対して回転させることにより、撮像部10による撮影方向を僅かに変化させる。この第1の筐体31の回転量は、少なくとも連続して撮影された各単位画像間において互いに重複領域が生じるように調整される。この回転量は、撮像装置3の設計時において幾何学的な計算により予め求めておくこともできる。また、撮影時における撮像装置3全体の揺れ量を検出するための機能を実装しておくことにより、第1の筐体31の回転量を動的に微調整するようにしてもよい。
なお、このステップS65において、モータ51の回転量をできるだけ小さく設定しておき、かつ単位時間当たりの撮影枚数を増加させて連続撮影を実行することにより、視差による歪みや動被写体を撮影することによる画像の不連続さを解消することができ、高画質な全体画像を合成することが可能となる。このような撮影を行うためには、モータ51の断続的かつ高精度の制御が必要となるが、上述の如く、この第1の筐体31は、第2の筐体32と比較して質量が軽くなるような構成とされているため、これらを低コストで実現することが可能となる。
ステップS66では、再びシャッタボタン221の押圧を調べ、撮影終了のタイミングを識別する。このステップS66においてシャッタボタン221の押圧が確認できた場合には、撮影を継続させるべくステップS63へ戻る。これに対し、このステップS66においてシャッタボタン221の押圧が確認できなかった場合には、撮影の終了動作へ移行すべくステップS67へ移行する。
ステップS67では、撮影終了時の処理として、合成したパノラマ状の全体画像をメモリ17へ格納する。
このように、第1の筐体31と離間した第2の筐体32にシャッタボタン221を搭載することにより、指先の小さな操作だけで撮影の開始、終了を指示することができる。また、第2の筐体32に表示部43を備えることにより、得られた画像の視認性を向上させることができる。
また、実際に回転する第1の筐体31内部にレンズ部10aやCMOSイメージセンサ11等のように撮影に最低限必要な部品を少なくとも実装することにより、回転部分の質量が軽くなるため、この第1の筐体31における回転部分を支える部品やこれを回転駆動させるモータ51のコストを下げることができる。またモータ51等の駆動源となる部品をユーザにより把持される第2の筐体32内に実装することにより、モータ51の回転に伴う振動による影響を極力抑えることもできる。
またフォトインターラプタ52を用いて、第1の筐体31の回転範囲を制限することにより、回転部分とホールド部分間のデータ転送を通常の安価なフレキシブルな配線素材を用いて実現することができる。
なお、この撮像装置3において、上述した撮像装置1の動作を全て行わせるようにしてもよい。これにより、上述した撮像装置3自体の効果に加えて、切り出したスリット状の画像領域間を重複させることによる画質の向上、システム全体のコスト低減等の撮像装置1の効果を相乗的に奏するような撮影システムを構築することも可能となる。
また、本発明の実施の形態を適用した撮像装置3は、上述した実施の形態に限定されるものではなく、DSP15、CPU21、表示部43、モータ51、操作部22(シャッタボタン221)、バッテリー44のうち、何れか1つ以上が第2の筐体32内に設けられていればよい。
ところで、本発明の実施の形態においては、上記図6のステップS64や図7と共に説明したように、連続して撮影された各単位画像は、互いに重複領域が生じるようにされている。この点について、さらに説明する。
比較例として、モータにより自動でカメラを回転させて、スリット状の画像を得て、これらスリット状の画像をつなぎ合わせることでパノラマ画像を作成する際に、各スリット画像同士には交わる部分がないような装置を想定する。このような比較例装置の場合には、正確に回転するモータが必要となる。また、正確な方向を撮影するために、三脚に固定する必要がある。もし手持ち撮影を行おうとすると、複数枚のスリット画像を撮影している際に、手ブレにより撮影する方向が微妙にずれてしまい、有効なパノラマ画像を生成することができない。
図8の(A)には、カメラ111を上から見た模式的な平面図を示しており、カメラ111は紙面に垂直な軸に対して回転をしながら撮影を繰り返す。最初に撮像範囲112_1に示す方向の撮影が行われる。そして、カメラはモータにより回転される。回転後、撮像範囲112_2に示す方向にカメラが向くので、その方向の撮影が行われる。以降、回転と撮影を繰り返すことで、順次撮像範囲112_3、112_4、112_5、112_6に示す方向の撮影が行われる。これら方向の撮影画像(スリット画像)はつなぎ合わされて1つのパノラマ画像となる。
図8の(B)は、このようなカメラ111を手持ちで撮影した場合を示している。撮影開始時には、図8のカメラ111に示すカメラの位置(向き)で、まず撮像範囲112_1に示す方向の撮影が行われる(図8の(A)と同様)。そして、カメラ11はモータにより回転するが、この回転の最中に、手持ち撮影のため、カメラ111’に示す位置(向き)に動いてしまったと仮定する。回転後、撮影を行うが、カメラ111’に示すような位置と向きに移動してしまっているので、図8の(A)に示す撮像範囲112_2の向きとは違い、撮像範囲112_2’の向きの撮影となる。さて、このようにして撮影されたスリット画像では、角度範囲113に示す方向の撮影は行われていない。そのため、撮影されたスリット画像をつなぎ合わせることができずパノラマ画像を生成することはできない。つまり、重複領域のないスリット画像をつなぎ合わせるような装置では、手持ち撮影においてパノラマ画像を生成することができないことがある。
これに対して、上記図6のステップS64や図7と共に説明した本発明の実施の形態のように、スリット画像(単位画像)同士が交わり(重複領域)を持つように撮影することにより、手持ち撮影時にも各画像を有効につなぎ合わせることができ、パノラマ画像を生成することができる。
図9の(A)には、本発明の実施の形態に用いられる上述した撮像装置(カメラ)3を上から見た模式的な平面図を示しており、撮像装置3は紙面に垂直な軸に対して回転をしながら撮影を繰り返す。この撮像装置3により、最初に撮像範囲114_1に示す方向の撮影が行われる。この撮像装置(カメラ)3は、上述したようにモータにより回転される。回転後、撮像範囲114_2に示す方向に撮像装置3が向くので、その方向の撮影が行われる。以降、回転と撮影を繰り返すことで、順次撮像範囲114_3、・・・、114_k、・・・に示す方向の撮影が行われる。これら方向の撮影画像(単位画像、スリット画像)は、交わる部分(重複領域)で重なるように合成されて1つのパノラマ画像となる。なお、例えば、各スリット画像の撮影範囲は、角度にして5度分であり、モータの回転は、1回につき1度回転すると仮定する。
この撮像装置(カメラ)3を手持ちで撮影した場合について図9の(B)を参照しながら説明する。撮影開始時には撮像装置3の位置(向き)に応じて、まず撮像範囲114_1に示す方向の撮影が行われる(図9の(A)と同様)。そして、撮像装置3はモータにより回転するが、この回転の最中に、手持ち撮影のため、撮像装置(カメラ)3’に示す位置(向き)に動いてしまったと仮定する。回転後、撮影を行うが、撮像装置3’に示すような位置と向きに移動してしまっているので、図9の(A)に示す撮像範囲114_2の向きとは違い、撮像範囲114_2’の向きの撮影となる。比較例(図8の(B))では、撮影されない角度範囲113があったが、本発明の実施の形態においては、マージンがある(手ブレがないと仮定したときに、各スリット画像の撮影する方向には重複している部分がある)ので、手ブレがあっても撮影できない方向はない。例えば、図9の(B)の角度範囲115に示す方向は、撮像範囲114_1の撮影画像、撮像範囲114_2’の撮影画像の両方に存在している。このように撮影された画像は位置合わせを行いながら重ね合わせていくことで、最終的に1つのパノラマ画像のような合成画像を作成することができる。
また、「重複させて撮影して、重ね合わせていく」ということは、各スリット画像にランダムノイズがあったとしても重ねることでノイズの少ない鮮明なパノラマ画像のような合成画像を作成できることを意味している。このようなメリットもある。
次に、図10を用いて、各スリット画像(単位画像)を重ねていくことについて説明する。図中の矩形部分は、各スリット画像を模式的に表したものである。(k−1)番目に撮影されたスリット画像を120_(k−1)で示し、k番目に撮影されたスリット画像を120_kで示し、(k+1)番目に撮影されたスリット画像を120_(k+1)で示している。他の番号を付していない矩形のスリット画像についても同様である。
図10において、各スリット画像は、説明を簡略化するために、長さの単位として、1度分の角度に相当する撮影画像の幅を1とし、横幅の長さを5としている。従って、5度分のスリット画像は、長さ5である。撮影は、およそ1度ずつずれながら撮影されているので、各スリット画像は、重ねる際におよそ長さ1だけずれて重ねられてゆき、重ね合わせ部分(重複領域)の長さは4となる。なお、これらの数値は任意に設定すればよいことは勿論である。
さて、一般的に画像を重ねて合成画像を作る場合、その重なりの境界部分を滑らかに接続するために、位置に依存した重み関数を使った重み付き加算が行われる。すなわち、重ねる画像の周辺分において、その画像の寄与率が0になるように重み関数を設定することで境界部分を滑らかにすることができる。このことは、例えば、P. J. Burt and E. H. Adelson, “A multiresolution spline with application to image mosaics,” ACM Trans. on Graphics, Vol. 2, no. 4, pp. 217-236, 1983 の Fig. 2を用いて説明されている。ただし、重み付き加算をする際に注意すべき点は、すべての重ねる画像の重みの合計値が1となるようにしなくてはいけない。もし重みの合計値が1より大きければ、明るい画像になってしまう。逆に、小さければ、暗い画像になってしまうからである。
今回のスリット画像を重ねる際にも、この「位置に依存した重み関数を使った重み付き加算」の方法を使うことができる。すなわち、重みを付けて、各スリット画像の周辺部分にゆくに従い、そのスリット画像の寄与率(重み)を0にしてゆく。これにより、微妙な誤差(装置の精度上の問題)のために正確に位置を合わせてスリット画像を重ねることが困難であっても、重ねた画像同士の境界で位置ずれが目立たなくなり、滑らかに接続することができる。
図10には、「周辺部分にゆくに従い重みを0にしてゆく」という重みw(x)の典型的な例を記す。図中のw(x)は、k番目に撮影されたスリット画像120_kの、結果画像(合成画像、パノラマ画像)に対する寄与率を示している。ここで図中横方向のx軸は、重ねてゆく方向を示しており、スリット画像120_kの左端をx=0としている。他のスリット画像の寄与率(重み)も同様である。
ここで、図10の例では、5枚のスリット画像が重なるようにしてパノラマ画像が作成されてゆくことから、5枚の画像を重ねるので、1枚あたりの寄与率は1/5にすることが考えられる。しかしながら、以下のことを考慮する必要がある。すなわち、各スリット画像の周辺部分に行くに従い、そのスリット画像の寄与率(重み)を0にしてゆく。これにより、微妙な誤差(装置の精度上の問題)のために正確に位置を合わせてスリット画像を重ねることが困難であっても、重ねた画像同士の境界で位置ずれが目立たなくなり、滑らかに接続することができる。そこで、この点を考慮すると、各スリット画像の中心部分では、1/4の寄与率で、周辺部分で0にしてゆくようにすることが好ましい。中心部分の寄与率が、1/5でなく、1/4になるのは、各スリット画像の寄与率の合計値を1にするためである。このように「中心部分では、1/4の寄与率で、周辺部分で0にしてゆく」という特徴を有するw(x)は意味のある関数である。
図11に各スリット画像の寄与率(重み)を示している。紙面の都合上、(k−5)番目から(k+5)番目に撮影されたスリット画像120_(k−5)〜120_(k+5)についてのみ記してある。さらに、図11では、各スリット画像は横方向に正確に1ずつずれた位置関係にある場合を示している。図11から分かるように、任意の位置xに対して、各スリット画像の寄与率(重み)を加算した値は1となっている。従って、各スリット画像を、w(x)による重み付き加算をすることで、適切な明るさのパノラマ画像のような合成画像が作成される。
ところで、この図11は、各スリット画像の位置関係が横方向(x軸方向)に1ずつずれた場合を示していたが、実際には、先に説明したとおり、手持ち撮影の場合の手ブレによる位置ずれや、装置の精度上の問題で、正確に1ずつずれるとは限らない。この様子を図12に示す。
図12には、各スリット画像の寄与率(重み)を示している。図11と同様、紙面の都合上、(k−5)番目から(k+5)番目に撮影されたスリット画像120_(k−5)〜120_(k+5)についてのみ記している。図12は、各スリット画像は、正確には1ではないが、およそ1ずつずれた位置関係にある場合を示している。図12から分かるように、任意の位置xに対して、各スリット画像の寄与率(重み)を加算した値はおよそ1となっているが正確に1とはなっていない。従って、各スリット画像を、w(x)による重み付き加算をすることで、明るさにムラのあるパノラマ画像が作成されてしまう。そこで、各位置における寄与率(重み)の合計値で、その位置の「重み付き加算」の結果を割ることを行う。これにより、正規化されるので、ムラのない適切な明るさのパノラマ画像が作成される。
以上を踏まえて、パノラマ画像のような合成画像の作成手順を、図13〜図15を参照しながら説明する。なお、回転しながらスリット画像を撮影する具体例については、図2〜図7と共に説明した通りである。以下の説明では、複数のスリット画像が既に存在しているとして、それらスリット画像からパノラマ画像を生成する方法について述べる。このパノラマ画像の生成処理は、例えば上記図1や図3の主としてDSP15で行われ、処理手順の制御等にCPU21が用いられることもある。
まず、図13のステップS1で、第1番目(すなわち1枚目)のスリット画像の左上の位置(X1,Y1)を設定する。最初の1枚目なので、(X1,Y1)=(0,0)とし、次のステップS2に進む。
ステップS2では、対象となるスリット画像の番号を表すkとして2をセットし、次のステップS3に進む。
ステップS3では、第(k−1)番目のスリット画像に対する第k番目のスリット画像の位置(相対位置、移動量)を求める。この2つの画像の位置関係を求める方法は、従来から行われている画像のマッチング処理(パターンマッチング処理等)により求めることができることから、その詳細説明を省略する。求められた位置関係(移動量)を(MXk,MYk)として、ステップS4に進む。
ステップS4では、(Xk−1,Yk−1)+(MXk,MYk)を計算し、その結果を(Xk,Yk)とする。第(k−1)番目の画像の位置が(Xk−1,Yk−1)であり、第(k−1)番目のスリット画像に対する第k番目のスリット画像の位置関係が(MXk,MYk)であるので、結果として、(Xk,Yk)は第k番目の画像の位置となる。ステップS4の後、ステップS5に進む。
ステップS5では、全てのスリット画像の位置を求めたかを判断する。すなわち、対象となるスリット画像の番号を表すkが、最後のスリット画像を示しているかを判断する。最後のスリット画像を示していれば、ステップS7(図14)に進む。そうでなければ、ステップS6に進む。
ステップS6で、kの値を1だけインクリメントして、次のスリット画像の位置(Xk,Yk)を求める処理へと進む。すなわち、ステップS6の後、上記ステップS3に戻って、上述したステップS3,S4の処理を行った後、ステップS5に進む。
ステップS7に進んだ時点で、全てのスリット画像の位置(Xk,Yk)が求められている。なお、もし手ブレや装置の精度上の問題がなければ、正確に(Xk,Yk)=(k−1,0)となる。
ステップS7では、対象となるスリット画像の番号を表すkとして1をセットする。さらに、第1のキャンバスと第2のキャンバスの値をクリアし(すなわち、値を0とし)、ステップS8に進む。ここで、キャンバスとは、画像データを記憶する1面分のメモリに相当するものであり、例えば上記図1や図3のメモリ17を用いることができる。
ステップS8では、第k番目のスリット画像に寄与率(重み)を乗算したデータを第1のキャンバスの位置(Xk,Yk)のデータに加算して、同じ位置(Xk,Yk)に書き戻す。より正確に述べると、第k番目のスリット画像の各画素の位置(i,j)に対して、その位置(i,j)に対応した寄与率(重み)w(i)を第k番目のスリット画像のその画素の値に乗算したデータを計算し、さらに、その乗算結果を第1のキャンバスの位置(Xk+i,Yk+j)のデータに加算して、第1のキャンバスの同じ位置(Xk+i,Yk+j)に書き戻す。具体的には、第k番目のスリット画像の各画素の位置(i,j)に対して、次の式1を計算することになる。
C1(Xk+i,Yk+j)
=C1(Xk+i,Yk+j)+w(i)×Dk(i,j) …(式1)
なお、式1において、C1(p,q)は第1のキャンバスの位置(p,q)における値であり、w(i)は寄与率(重み)であり、Dk(i,j)は第k番目のスリット画像の位置(i,j)の値である。ここでw(i)は、前述したように重ねる方向(x軸)にのみ依存する関数であるので、w(i,j)ではなくw(i)と記してある。ステップS8の後、ステップS9に進む。
=C1(Xk+i,Yk+j)+w(i)×Dk(i,j) …(式1)
なお、式1において、C1(p,q)は第1のキャンバスの位置(p,q)における値であり、w(i)は寄与率(重み)であり、Dk(i,j)は第k番目のスリット画像の位置(i,j)の値である。ここでw(i)は、前述したように重ねる方向(x軸)にのみ依存する関数であるので、w(i,j)ではなくw(i)と記してある。ステップS8の後、ステップS9に進む。
ステップS9では、寄与率(重み)を第2のキャンバスの位置(Xk,Yk)のデータに加算して、同じ位置(Xk,Yk)に書き戻す。より正確に述べると、第k番目のスリット画像の各画素の位置(i,j)に対応した寄与率(重み)w(i)を、第2のキャンバスの位置(Xk+i,Yk+j)のデータに加算して、第2のキャンバスの同じ位置(Xk+i,Yk+j)に書き戻す。具体的には、第k番目のスリット画像の各画素の位置(i,j)に対して、次の式2を計算することになる。
C2(Xk+i,Yk+j)
=C2(Xk+i,Yk+j)+w(i) …(式2)
なお、式2において、C2(p,q)は第2のキャンバスの位置(p,q)における値であり、w(i)は寄与率(重み)である。ステップS9の後、ステップS10に進む。
=C2(Xk+i,Yk+j)+w(i) …(式2)
なお、式2において、C2(p,q)は第2のキャンバスの位置(p,q)における値であり、w(i)は寄与率(重み)である。ステップS9の後、ステップS10に進む。
ステップS10では、全てのスリット画像について、第1のキャンバスを使った重み付き加算、および、第2のキャンバスを使った寄与率(重み)の合計値の計算を行ったかを判断する。すなわち、対象となるスリット画像の番号を表すkが、最後のスリット画像を示しているかを判断する。最後のスリット画像を示していれば、図15のステップS12に進み、そうでなければ、ステップS11に進む。
ステップS11で、kの値を1だけインクリメントして、次のスリット画像の重み付き加算および寄与率(重み)の合計値を計算する処理へと進む。すなわち、ステップS11の後、上記ステップS8に戻る。
ステップS12に進んだ時点で、全てのスリット画像の重み付き加算を行った結果が第1のキャンバスに格納されており、かつ、寄与率(重み)の合計値の計算結果が第2のキャンバスに格納されている。
ステップS12では、各(i,j)に対して、「第1のキャンバス上の位置(i,j)のデータ」を「第2のキャンバス上の位置(i,j)のデータ」で割る。そして、この割り算した結果を、第3のキャンバス上の位置(i,j)に書き込む。より正確に述べると、第1および第2のキャンバスの各画素の位置(i,j)に対して、次の式3を計算することになる。
C3(i,j)=C1(i,j)÷C2(i,j) …(式3)
なお、式3において、C3(p,q)は第3のキャンバスの位置(p,q)における値である。これにより、正規化されたムラのない適切な明るさのパノラマ画像が第3のキャンバスに格納される。ステップS12の後、ステップS13に進む。
なお、式3において、C3(p,q)は第3のキャンバスの位置(p,q)における値である。これにより、正規化されたムラのない適切な明るさのパノラマ画像が第3のキャンバスに格納される。ステップS12の後、ステップS13に進む。
ステップS13では、第3のキャンバスに格納されているパノラマ画像を出力し、一連の処理を終了する。
上記図13〜図15を用いて説明した内容を、再度、図16を用いて説明する。図16において、第k番目のスリット画像を131で表し、重み関数w(i)を132で表し、第1、第2、第3のキャンバスをそれぞれ134、136、139で表している。第k番目のスリット画像131のデータと重み関数w(i)132のデータとは乗算器133にて乗算される。第1のキャンバス134のデータと乗算器133からの乗算結果データとは、加算器135にて加算され、第1のキャンバス134へと書き戻される。また、第2のキャンバス136のデータと重み関数w(i)132のデータとは、加算器137にて加算され、第2のキャンバス136へと書き戻される。全てのkについて、上記処理を行った後、第1のキャンバス134からのデータを第2のキャンバス136からのデータで割り算器138で割ることにより得られたデータを、第3のキャンバス139に格納している。そして、第3のキャンバス139のデータを出力することで、パノラマ画像を得ることができる。
次に、上記一連のパノラマ画像生成処理の流れのより具体的な例について、図17を用いて説明する。図17は、手ブレや装置の精度上の問題により、正確に(Xk,Yk)=(k−1,0)とはなっていない例を示している。この図17において、第1番目のスリット画像120_1は、キャンバス上の位置(X1,Y1)=(0,0)に貼り付けられるべき画像である。第2番目のスリット画像120_2は、キャンバス上の位置(X2,Y2)に貼り付けられるべき画像である。各スリット画像120_3、120_4、120_5、120_6、120_7、120_8、120_9についても同様である。また、第10番目以降のスリット画像は図示省略している。ここで説明を簡略化するために、撮影の視野角1度分に相当する画素数を例えば20画素と仮定すると、1つのスリット画像の横幅(距離5)は、100画素となる。すなわち、スリット画像の横幅は100画素と仮定する。各スリット画像同士の位置ずれは、およそ1度、距離にして1であるから、20画素程度のずれを生じていることになる。手ブレや装置の精度上の問題による誤差は、x軸方向だけでなく、それと垂直な方向であるy軸方向にも当然存在する。従って、一般的にYkは0とは限らない。この様子を図17に示す。このため、例えば、図中の斜線部121に示したような部分にはデータが存在しないこととなり、最終的なパノラマ画像が格納されている第3のキャンバスには、その位置のデータは不定となってしまう。従って、上記図15のステップS13において、第3のキャンバスのうち上下をトリミングした画像をパノラマ画像として出力するようにすると良い。具体的には、図17に示した境界線122と123により囲まれる範囲のみを出力する。境界線122と123は、考えられる手ブレの最大値を考慮して、例えば、上側5%、下側5%の位置とする。
ところで、上述したようなパノラマ画像生成処理を行う場合に、1つ解決すべき問題点が考えられる。それは、中間データを保持するための2つのキャンバス(第1のキャンバスと第2のキャンバス)が必要であるという点である。このために、大容量のメモリが必要となっている。これを改良して、1つのキャンバスで画像合成のための計算を可能とする方法について、以下に説明する。
1つのキャンバスで計算を可能とするパノラマ画像の作成手順を図18および図19を用いて説明する。なお、先ほどと同様に、ここでは、回転しながらスリット画像を撮影する部分については、前述した構成を用いればよい。以下の説明では、複数のスリット画像が既に存在しているとして、それらスリット画像からパノラマ画像を生成する方法について述べる。
まず、図18のステップS21で、第1番目(すなわち1枚目)のスリット画像の左上の位置(X1,Y1)を設定する。最初の1枚目なので、(X1,Y1)=(0,0)とし、次のステップS22に進む。
ステップS22では、対象となるスリット画像の番号を表すkとして2をセットし、次のステップS23に進む。
ステップS23では、第(k−1)番目のスリット画像に対する第k番目のスリット画像の位置を求める。2つの画像の位置関係を求める方法は、従来から行われている画像のマッチングにより求めることができるので、その詳細説明を省略する。求められた位置関係(相対位置、移動量)を(MXk,MYk)とする。次に、ステップS24に進む。
ステップS24では、(Xk−1,Yk−1)+(MXk,MYk)を計算し、その結果を(Xk,Yk)とする。第(k−1)番目の画像の位置が(Xk−1,Yk−1)であり、第(k−1)番目のスリット画像に対する第k番目のスリット画像の位置関係(相対位置、移動量)が(MXk,MYk)であるので、結果として、(Xk,Yk)は第k番目の画像の位置となる。ステップS24の後、ステップS25に進む。
ステップS25では、全てのスリット画像の位置を求めたかを判断する。すなわち、対象となるスリット画像の番号を表すkが、最後のスリット画像を示しているかを判断する。最後のスリット画像を示していれば、ステップS27(図12)に進む。そうでなければ、ステップS26に進む。
ステップS26で、kの値を1だけインクリメントして、次のスリット画像の位置(Xk,Yk)を求める処理へと進む。すなわち、ステップS26の後、上記ステップS23に戻る。
ステップS27に進んだ時点で、全てのスリット画像の位置(Xk,Yk)が求められている。なお、もし手ブレや装置の精度上の問題がなければ、正確に(Xk,Yk)=(k−1,0)となる。
ステップS27では、第1番目のスリット画像を第1のキャンバスの位置(X1,Y1)(つまり(0,0))に書く。具体的には、第1番目のスリット画像の各画素の位置(i,j)に対して、次の式4を計算することになる。
C1(i,j)=D1(i,j) …(式4)
なお、式4において、C1(p,q)は第1のキャンバスの位置(p,q)における値であり、D1(i,j)は第1番目のスリット画像の位置(i,j)の値である。次に、ステップS28に進む。
なお、式4において、C1(p,q)は第1のキャンバスの位置(p,q)における値であり、D1(i,j)は第1番目のスリット画像の位置(i,j)の値である。次に、ステップS28に進む。
ステップS28では、対象となるスリット画像の番号を表すkとして2をセットする。そして、ステップS29に進む。
ステップS29では、第k番目のスリット画像と、第1のキャンバスの位置(Xk,Yk)のデータとを、後述する計算用の重み関数f(i)の割合で重み平均して、同じ位置(Xk,Yk)に書き戻す。なお、割合f(i)が本発明の実施の形態の重要点であり、後述する。以降では、f(i)を、計算用の重み関数としての寄与率(重み)とも呼ぶことにする。ステップS29での処理をより正確に述べると、第k番目のスリット画像の各画素の位置(i,j)に対して、その位置(i,j)に対応した寄与率(重み)f(i)を第k番目のスリット画像のその画素の値に乗算したデータを計算し、さらに、第1のキャンバスの位置(Xk+i,Yk+j)のデータに(1−f(i))を乗算したデータを計算し、これら2つの乗算結果を加算して、第1のキャンバスの同じ位置(Xk+i,Yk+j)に書き戻す。具体的には、第k番目のスリット画像の各画素の位置(i,j)に対して、次の式5を計算することになる。
C1(Xk+i,Yk+j)
=(1−f(i))×C1(Xk+i,Yk+j)+f(i)×Dk(i,j)
…(式5)
なお、式5において、C1(p,q)は第1のキャンバスの位置(p,q)における値であり、f(i)は寄与率(重み)であり、Dk(i,j)は第k番目のスリット画像の位置(i,j)の値である。ここで、f(i)は後述するとおり、重ねる方向(x軸)にのみ依存する関数であるので、f(i,j)ではなくf(i)と記している。ステップS29の後、ステップS30に進む。
=(1−f(i))×C1(Xk+i,Yk+j)+f(i)×Dk(i,j)
…(式5)
なお、式5において、C1(p,q)は第1のキャンバスの位置(p,q)における値であり、f(i)は寄与率(重み)であり、Dk(i,j)は第k番目のスリット画像の位置(i,j)の値である。ここで、f(i)は後述するとおり、重ねる方向(x軸)にのみ依存する関数であるので、f(i,j)ではなくf(i)と記している。ステップS29の後、ステップS30に進む。
ステップS30では、全てのスリット画像について、第1のキャンバスを使った重み平均の計算を行ったかを判断する。すなわち、対象となるスリット画像の番号を表すkが、最後のスリット画像を示しているかを判断する。最後のスリット画像を示していれば、ステップS32に進む。そうでなければ、ステップS31に進む。
ステップS31で、kの値を1だけインクリメントして、次のスリット画像の重み平均を計算する処理へと進む。すなわち、ステップS31の後、ステップS29に進む。
ステップS32に進んだ時点で、全てのスリット画像の重み平均を行った結果が第1のキャンバスに格納されている。
ステップS32では、第1のキャンバスに格納されているパノラマ画像を出力し、一連の処理を終了する。
図18および図19を用いて説明した内容を、再度、図20を用いて説明する。図20において、第1番目のスリット画像を141で表し、第1のキャンバスを142で表し、第k番目のスリット画像(ただし、kは1以外)を143で表し、重み関数f(i)を144で表している。第1番目のスリット画像141のデータは第1のキャンバス142へとコピーされる。第k番目(kは1以外)のスリット画像143のデータと、重み関数f(i)144のデータとは乗算器145にて乗算される。さらに、重み関数f(i)144のデータは、減算器146において1からの減算(1−f(i))が行われ、この減算器146からの減算結果データと第1のキャンバス142からのデータとは、乗算器147にて乗算される。そして、乗算器145からの乗算結果データと乗算器147からの乗算結果データとは、加算器148にて加算され、第1のキャンバス142へと書き戻される。第1のキャンバス142には、計算途中の中間的なパノラマ画像(中間合成画像)が書き込まれ、順次更新されることになる。全てのkについて、上記処理を行った後、第1のキャンバス142からのデータを出力することで、最終的な合成画像であるパノラマ画像を得ることができる。
なお、上記図17を用いて説明したように、上記図19のステップS32において、第1のキャンバスのうち上下をトリミングした画像をパノラマ画像として出力するようにすると良い。
さて、第1のキャンバスに格納されているデータは、図19に示した処理における途中の状態においても、明るさにムラのある画像ではない。もちろん、図19のステップS32に至る段階においても、明るさにムラのある画像ではない。なぜなら、第1のキャンバス142から読み出されたデータに乗算される重み(1−f(i))と、第k番目のスリット画像のデータに乗算される重みf(i)を考えれば明らかであり、この2つの重みの合計値は1となっているからである。つまり、任意の位置xに対して、各スリット画像の寄与率(重み)を加算した値は1となっている。従って、各スリット画像を、計算用の重み関数であるf(i)の割合で重み平均することで、図19に示した処理の最中および最後においても、適切な明るさのパノラマ画像が作成され続ける。
次に、本発明の実施の形態の重要点となる、計算用の重み関数である寄与率(重み)f(i)について、以下詳細に説明する。以下の説明においては、x軸方向の座標値をxで表し、上記関数w(i)、f(i)等を、w(x)、f(x)で示している。f(x)が任意の関数であっても、明るさにムラのないパノラマ画像を作成できることは既に述べた。しかし、最終的に得られる合成画像であるパノラマ画像において、各スリット画像の最終的な寄与率(実質的な重み関数)は、上記図10を用いて説明したようなw(x)になることが望ましい。そこで、各スリット画像の最終的な寄与率がw(x)になるように、計算用の重み関数f(x)を決めることが重要である。この決め方を、以降で図面および式を用いて説明する。
図21は、第k番目のスリット画像を貼り付けようとしている状態を表している。すなわち、この図21において、第1番目から第(k−1)番目のスリット画像により既に作成された第1のキャンバス上のパノラマ画像(中間合成画像)を151で示し、第k番目のスリット画像を152で示し、これから、寄与率(重み)f(x)で重み平均しようとしている状態を表現している。なお、x座標の原点は、パノラマ画像151の左端ではなく、貼り付けようとしている第k番目のスリット画像152の左端としている。すなわち、パノラマ画像151の左端から距離Xkだけ離れた位置をx軸の原点とする。このようにx軸の原点を取ったとして話しを進める。なお、原点の位置は、後述する図23〜図27においても同様とする。
このように原点を取ることで、パノラマ画像(中間合成画像)151の一番右端のx座標は4となる。また、スリット画像152の右端のx座標は5となる。パノラマ画像151のデータが存在して、かつ、スリット画像152のデータが存在しない位置においては、当然、f(x)は0である。そして、パノラマ画像151のデータが存在せず、かつ、スリット画像152のデータが存在する位置においては、当然、f(x)は1である。従って、f(x)は次の式6に示す関数となる。
図22は、この式6に示す関数を分かりやすく図示したものである。図22の(A)において、x=0以下ではf(x)=0、x=4からx=5まではf(x)=1、x=5以上ではf(x)=0であり、x=0からx=4までが、どのような関数であるかについては、以下順次説明してゆく。
従って、第k番目のスリット画像152が貼り付けられた直後、第k番目のスリット画像152の寄与率は、パノラマ画像(第1のキャンバスに格納されているデータ)において上記式6に示す割合となる。
図23は、第(k+1)番目のスリット画像を貼り付けようとしている状態を表している。この図23においては、上記図21の場合と同様に、パノラマ画像151は第1番目から第(k−1)番目のスリット画像により既に作成された第1のキャンバス上のパノラマ画像である。スリット画像152は、第k番目のスリット画像であり、既に、寄与率(重み)f(x)でパノラマ画像151との重み平均が行われている。そして、スリット画像153は、第(k+1)番目のスリット画像であり、これから、寄与率(重み)f(x)で重み平均しようとしている状態を表現している。なお、スリット画像153の左端の位置は、x=1であり、右端の位置はx=6である。第(k+1)番目のスリット画像は、それまでに作成されているパノラマ画像(第1のキャンバスに格納されているデータ)との重み平均が行われるが、その割合はf(x−1)である。ここで注意すべき点は、第(k+1)番目のスリット画像の左端はx=1であるので、割合はf(x)ではなく、1だけ位置をずらしたf(x−1)となる。これを図22の(B)に示す。
さて、第(k+1)番目のスリット画像153が貼り付けられた直後、第k番目のスリット画像152の寄与率が、パノラマ画像(第1のキャンバスに格納されているデータ)においてどのように変化したかを計算してみる。
第(k+1)番目のスリット画像153が貼り付けられる直前では、上記式6に示す割合であった。そして、第(k+1)番目のスリット画像153を貼り付ける際に、(1−f(x−1))の割合がパノラマ画像(第1のキャンバスに格納されているデータ)に乗算される。このときのパノラマ画像に乗算される関数(1−f(x−1))を、図22の(C)に示す。つまり、パノラマ画像(第1のキャンバスに格納されているデータ)に既に組み込まれている第k番目のスリット画像の割合も、(1−f(x−1))倍だけ変化することになる。従って、第(k+1)番目のスリット画像153が貼り付けられた直後、パノラマ画像(第1のキャンバスに格納されているデータ)における、上記第k番目のスリット画像の寄与率は、次の式7に示す割合P1(f(x))となる。
図24は、第(k+2)番目のスリット画像を貼り付けようとしている状態を表している。この場合も同様に、パノラマ画像151は第1番目から第(k−1)番目のスリット画像により既に作成された第1のキャンバス上のパノラマ画像である。スリット画像152および153は、それぞれ第k番目、第(k+1)番目のスリット画像であり、既に、寄与率(重み)f(x)でパノラマ画像151との重み平均が行われている。そして、スリット画像154は、第(k+2)番目のスリット画像であり、これから、寄与率(重み)f(x)で重み平均しようとしている状態を表現している。なお、スリット画像154の左端の位置は、x=2であり、右端の位置はx=7である。第(k+2)番目のスリット画像は、それまでに作成されているパノラマ画像(第1のキャンバスに格納されているデータ)との重み平均が行われるが、その割合はf(x−2)である。ここで注意して欲しいのは、第(k+2)番目のスリット画像の左端はx=2であるので、割合はf(x)ではなく、2だけ位置をずらしたf(x−2)となる。
さて、第(k+2)番目のスリット画像154が貼り付けられた直後、第k番目のスリット画像152の寄与率が、パノラマ画像(第1のキャンバスに格納されているデータ)においてどのように変化したかを計算してみる。
第(k+2)番目のスリット画像154が貼り付けられる直前では、上記式7に示す割合であった。そして、第(k+2)番目のスリット画像154を貼り付ける際に、(1−f(x−2))の割合がパノラマ画像(第1のキャンバスに格納されているデータ)に乗算される。つまり、パノラマ画像(第1のキャンバスに格納されているデータ)に既に組み込まれている第k番目のスリット画像の割合は(1−f(x−2))倍だけ変化する。従って、第(k+2)番目のスリット画像154が貼り付けられた直後、パノラマ画像(第1のキャンバスに格納されているデータ)における第k番目のスリット画像の寄与率は、次の式8に示す割合P2(f(x))となる。
図25は、第(k+3)番目のスリット画像を貼り付けようとしている状態を表している。すなわち、この図25の場合も、パノラマ画像151は第1番目から第(k−1)番目のスリット画像により既に作成された第1のキャンバス上のパノラマ画像である。スリット画像152、153、および154は、それぞれ第k番目、第(k+1)番目、第(k+2)番目のスリット画像であり、既に、寄与率(重み)f(x)でパノラマ画像151との重み平均が行われている。そして、スリット画像155は、第(k+3)番目のスリット画像であり、これから、寄与率(重み)f(x)で重み平均しようとしている状態を表現している。なお、スリット画像155の左端の位置は、x=3であり、右端の位置はx=8である。第(k+3)番目のスリット画像は、それまでに作成されているパノラマ画像(第1のキャンバスに格納されているデータ)との重み平均が行われるが、その割合はf(x−3)である。ここで注意して欲しいのは、第(k+3)番目のスリット画像155の左端はx=3であるので、割合はf(x)ではなく、3だけ位置をずらしたf(x−3)となる。
さて、第(k+3)番目のスリット画像155が貼り付けられた直後、第k番目のスリット画像152の寄与率が、パノラマ画像(第1のキャンバスに格納されているデータ)においてどのように変化したかを計算してみる。
第(k+3)番目のスリット画像155が貼り付けられる直前では、上記式8に示す割合であった。そして、第(k+3)番目のスリット画像155を貼り付ける際に、(1−f(x−3))の割合がパノラマ画像(第1のキャンバスに格納されているデータ)に乗算される。つまり、パノラマ画像(第1のキャンバスに格納されているデータ)に既に組み込まれている第k番目のスリット画像の割合は(1−f(x−3))倍だけ変化する。従って、第(k+3)番目のスリット画像155が貼り付けられた直後、パノラマ画像(第1のキャンバスに格納されているデータ)における第k番目のスリット画像の寄与率は、次の式9に示す割合P3(f(x))となる。
図26は、第(k+4)番目のスリット画像を貼り付けようとしている状態を表している。すなわち、パノラマ画像151は第1番目から第(k−1)番目のスリット画像により既に作成された第1のキャンバス上のパノラマ画像であり、スリット画像152、153、154、および155は、それぞれ第k番目、第(k+1)番目、第(k+2)番目、第(k+3)番目のスリット画像であって、既に、寄与率(重み)f(x)でパノラマ画像151との重み平均が行われている。そして、スリット画像156は、第(k+4)番目のスリット画像であり、これから、寄与率(重み)f(x)で重み平均しようとしている状態を表現している。なお、スリット画像156の左端の位置は、x=4であり、右端の位置はx=9である。第(k+4)番目のスリット画像は、それまでに作成されているパノラマ画像(第1のキャンバスに格納されているデータ)との重み平均が行われるが、その割合はf(x−4)である。ここで注意して欲しいのは、第(k+4)番目のスリット画像156の左端はx=4であるので、割合はf(x)ではなく、4だけ位置をずらしたf(x−4)となる。
さて、第(k+4)番目のスリット画像156が貼り付けられた直後、第k番目のスリット画像152の寄与率が、パノラマ画像(第1のキャンバスに格納されているデータ)においてどのように変化したかを計算してみる。
第(k+4)番目のスリット画像156が貼り付けられる直前では、上記式9に示す割合であった。そして、第(k+4)番目のスリット画像156を貼り付ける際に、(1−f(x−4))の割合がパノラマ画像(第1のキャンバスに格納されているデータ)に乗算される。つまり、パノラマ画像(第1のキャンバスに格納されているデータ)に既に組み込まれている第k番目のスリット画像の割合は(1−f(x−4))倍だけ変化する。従って、第(k+4)番目のスリット画像156が貼り付けられた直後、パノラマ画像(第1のキャンバスに格納されているデータ)における第k番目のスリット画像の寄与率は、次の式10に示す割合P4(f(x))となる。
図27は、第(k+5)番目のスリット画像を貼り付けようとしている状態を表している。すなわち、パノラマ画像151は第1番目から第(k−1)番目のスリット画像により既に作成された第1のキャンバス上のパノラマ画像であり、スリット画像152、153、154、155、および156は、それぞれ第k番目、第(k+1)番目、第(k+2)番目、第(k+3)番目、第(k+4)番目のスリット画像であって、既に、寄与率(重み)f(x)で51との重み平均が行われている。そして、スリット画像157は、第(k+5)番目のスリット画像であり、これから、寄与率(重み)f(x)で重み平均しようとしている状態を表現している。なお、スリット画像157の左端の位置は、x=5であり、右端の位置はx=10である。第(k+5)番目のスリット画像は、それまでに作成されているパノラマ画像(第1のキャンバスに格納されているデータ)との重み平均が行われるが、その割合はf(x−5)である。ここで注意して欲しいのは、第(k+5)番目のスリット画像157の左端はx=5であるので、割合はf(x)ではなく、5だけ位置をずらしたf(x−5)となる。
さて、第(k+5)番目のスリット画像157が貼り付けられた直後、第k番目のスリット画像152の寄与率が、パノラマ画像(第1のキャンバスに格納されているデータ)においてどのように変化したかを計算してみる。
第(k+5)番目のスリット画像157が貼り付けられる直前では、上記式10に示す割合であった。そして、第(k+5)番目のスリット画像157を貼り付ける際に、(1−f(x−5))の割合がパノラマ画像(第1のキャンバスに格納されているデータ)に乗算される。つまり、パノラマ画像(第1のキャンバスに格納されているデータ)に既に組み込まれている第k番目のスリット画像の割合は(1−f(x−5))倍だけ変化する。しかし、第k番目のスリット画像はx=0からx=5までしか存在しないことと、f(x)はx=0以下では0であることより、第(k+4)番目のスリット画像156が貼り付けられた直後、パノラマ画像(第1のキャンバスに格納されているデータ)における第k番目のスリット画像の寄与率は、変化せず、上記式10に示す割合P4(f(x))のままである。
同様に、第(k+6)番目以降のスリット画像が貼り付けられていっても、パノラマ画像(第1のキャンバスに格納されているデータ)における第k番目のスリット画像の寄与率は、変化せず、上記式10に示す割合P4(f(x))のままである。
従って、全てのスリット画像が貼り付けられて最終的なパノラマ画像が、第1のキャンバス内に格納された時点において、そのパノラマ画像における第k番目のスリット画像の寄与率は、上記式10に示す割合P4(f(x))となる。このP4(f(x))が、w(x)となっていれば良い。すなわち、w(x)=P4(f(x))を解けばよい。この結果、f(x)は次の式11に示す関数となる。
これを図示すると、図28となる。
さて、以上の説明では、各スリット画像の位置関係が正確に1ずつずれた場合で説明した。しかしながら、実際には、前述したとおり、手持ち撮影の場合の手ブレによる位置ずれや、装置の精度上の問題で、正確に1ずつずれるとは限らない。そこで、上記式11を少し補正する必要がある。このことについて、図29を用いて説明する。
図29では、x座標の原点をパノラマ画像151の左端としている。また、図29におけるパノラマ画像151は、上記図21と同様に、第1番目から第(k−1)番目のスリット画像により既に作成された第1のキャンバス上のパノラマ画像である。そして、図29におけるスリット画像152は、図21と同様に、第k番目のスリット画像であり、これから、寄与率(重み)f(x)で重み平均しようとしている状態を表現している。図29には、図21とは違い、各スリット画像の位置関係が正確に1ずつずれているとは限らない場合を示している。
図29におけるパノラマ画像151の右端の座標について考える。パノラマ画像151は第1番目から第(k−1)番目のスリット画像により既に作成された第1のキャンバス上のパノラマ画像であるから、第(k−1)番目のスリット画像の右端である位置と、51の右端の位置は同じである。第(k−1)番目のスリット画像の左端の位置がXk−1であることと、各スリット画像の幅が5であることより、パノラマ画像151の右端の位置は5+Xk−1となる。また、スリット画像152の左端の位置は、Xkであり、右端の位置は5+Xkである。従って、パノラマ画像151のデータが存在して、かつ、スリット画像152のデータが存在しない位置とはx=Xk以下であり、この範囲においては、f(x)は0である。そして、パノラマ画像151のデータが存在せず、かつ、スリット画像152のデータが存在する位置とはx=5+Xk−1以上x=5+Xk以下であり、この範囲においては、f(x)は1である。従って、f(x)は上記式11に示す関数を補正して、次の式12に示す関数とすれば良い。
これを図示すると、図30となる。この式12に示す関数f(x)は、上記式11に対して、手持ち撮影の場合の手ブレによる位置ずれや、装置の精度上の問題を考慮して改良したものである。上記式11は、どのスリット画像に対しても、一定の関数で示される寄与率であるが、上記式12は、重ね合わせる正確な位置情報によりスリット画像の寄与率を変更していることを意味している。このように、各スリット画像の重ね合わせる正確な位置情報により適応的に変更していることも本発明の実施の形態の利点である。なお、上記式12あるいは図30において示された(Xk)−(Xk−1)はほぼ1である。以上で、f(x)についての説明を終える。
さて、f(x)の関数の具体例が分かったので、再度、上記図18および図19を用いて、1つのキャンバスで計算を可能とするパノラマ画像の作成手順を説明する。
上記図18および図19に示すフローチャートにおいて、ステップS29以外は、既に説明した内容と全く同じであるので、その説明を省略し、ステップS29についてのみ説明を行う。
ステップS29では、第k番目のスリット画像と、第1のキャンバスの位置(Xk,Yk)のデータとを割合f(i)で重み平均して、同じ位置(Xk,Yk)に書き戻す。ステップS29での処理を正確に述べるなら、第k番目のスリット画像の各画素の位置(i,j)に対して、その位置(i,j)に対応した寄与率(重み)f(i)を第k番目のスリット画像のその画素の値に乗算したデータを計算し、さらに、第1のキャンバスの位置(Xk+i,Yk+j)のデータに(1−f(i))を乗算したデータを計算し、これら2つの乗算結果を加算して、第1のキャンバスの同じ位置(Xk+i,Yk+j)に書き戻す。具体的には、第k番目のスリット画像の各画素の位置(i,j)に対して、上記式5を計算することになる。なお、上記式5において、C1(p,q)は第1のキャンバスの位置(p,q)における値であり、f(i)は寄与率(重み)であり、Dk(i,j)は第k番目のスリット画像の位置(i,j)の値である。なお、f(i)とは具体的には、上記式12および図30に示された関数である。
上述したようなスリット画像のつなぎ合わせ処理は、前述した図1〜図7と共に説明した撮像装置における、DSP15やCPU21により実行されるものである。すなわち、図13〜図15、図18、図19等を用いて説明した処理は、上記図1や図3のDSP15やCPU21により実現され、図16に示す乗算器133、加算器135、137、除算器138や、図20に示した減算器146、乗算器145,147、加算器148等は、ソフトウェアによる機能ブロックとして実現されるものであるが、ハードウェアにより信号処理回路を構成してもよいことは勿論である。また、これらの図16、20の画像データ等を格納するメモリ(131,132,134)等)については、上記図1や図3のメモリ17等を用いることができる。
なお、上述した本発明の実施の形態の説明においては、各スリット画像の幅を5とし、各スリット画像の位置関係が1である場合について述べたが、本発明はこれらの数値に限定されるものではない。より一般的に、各スリット画像の幅がnであり、各スリット画像の位置関係が1である場合については、以下のようになる。最終的に得られるパノラマ画像において、各スリット画像の最終的な寄与率は、図10を用いて説明したw(x)に代わり、図31に示すw(x)となる。この場合、f(x)を、次の式13のように考えると、全てのスリット画像が貼り付けられて最終的なパノラマ画像が、第1のキャンバス内に格納された時点において、そのパノラマ画像における第k番目のスリット画像の寄与率は、次の式14に示す割合P(f(x))である。
このP(f(x))が、w(x)となっていれば良い。すなわち、f(x)として、次の式15を解いた結果とすれば良い。
w(x)=P(f(x)) …(式15)
また、w(x)についても、図10や図31に示した関数である必要はなく、これと類似の関数でも良い。これにより、w(x)=P4(f(x))、あるいは、上記式15により求められるf(x)も違う関数となる。
また、w(x)についても、図10や図31に示した関数である必要はなく、これと類似の関数でも良い。これにより、w(x)=P4(f(x))、あるいは、上記式15により求められるf(x)も違う関数となる。
上述したような本発明の実施の形態によれば、手持ち撮影においてもパノラマ画像を生成でき、かつ、その生成過程におけるキャンバス(すなわち、メモリ)は1つで済み、回路規模の削減を図ることができる。
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
1,3 撮像装置、10 撮像部、11 CMOSイメージセンサ、12 CDS回路、13 A/D変換部、14 内部バス、15 DSP、16 コーデック処理部、17 メモリ、18 D/A変換部、19 ビデオエンコーダ部、20 モニタ部、21 CPU、22 操作部、23 タイミングジェネレータ、24 モータ、26 露出計、112,114 撮像範囲、120,131,141,152〜157 スリット画像、 151 パノラマ画像
Claims (8)
- 複数枚の入力画像を重ね合わせて合成画像を作成する画像合成方法において、
既に合成された中間合成画像に現在の入力画像である現入力画像を重ね合わせて合成する際に、上記現入力画像に対して計算用重み関数f(x)による重み付けをし、上記中間合成画像との間で重み付け平均して加算合成し、
上記計算用重み関数f(x)は、最終的な合成画像における各入力画像に対しての実質的な重み関数w(x)による重み付けがされたものとする関数であることを特徴とする画像合成方法。 - 上記複数枚の入力画像は、撮影方向を順次変化させて撮影範囲の一部を構成する単位画像を撮像して得られたものであることを特徴とする請求項1記載の画像合成方法。
- 上記実質的な重み関数w(x)は、入力画像の重ね合わせ部分において重ね合わされる画像の枚数に応じて合計値を1とするように平均化された重みを有し、該重ね合わせ部分の周辺にゆくに従い重みを0とする関数であることを特徴とする請求項1記載の画像合成方法。
- 複数枚の入力画像を重ね合わせて合成画像を作成する画像合成装置において、
既に合成された中間合成画像に現在の入力画像である現入力画像を重ね合わせて合成する際の上記中間合成画像を格納する記憶手段と、
上記現入力画像に対して計算用重み関数f(x)を乗算する第1の乗算手段と、
上記中間合成画像に対して重み合計値を1とするための1−f(x)の重みを乗算する第2の乗算手段と、
上記第1、第2の乗算手段からのデータを加算して加算結果のデータを上記記憶手段に記憶する加算手段とを有し、
上記計算用重み関数f(x)は、最終的な合成画像における各入力画像に対しての実質的な重み関数w(x)による重み付けがされたものとする関数であることを特徴とする画像合成装置。 - 上記実質的な重み関数w(x)は、入力画像の重ね合わせ部分において重ね合わされる画像の枚数に応じて合計値を1とするように平均化された重みを有し、該重ね合わせ部分の周辺にゆくに従い重みを0とする関数であることを特徴とする請求項4記載の画像合成装置。
- 撮影方向を順次変化させて撮影範囲の一部を構成する単位画像を撮像して入力画像とする撮像手段と、
上記撮像手段により撮像された単位画像である入力画像の一部を構成する所定サイズの画像領域を、互いに重複領域が生じるように切り出す画像切出手段と、
上記画像切出手段により切り出された画像領域を順次重ね合わせることにより、上記撮影範囲全体を表す全体画像を生成する画像合成手段とを備え、
上記画像合成手段は、既に合成された中間合成画像に現在の入力画像である現入力画像を重ね合わせて合成する際に、上記現入力画像に対して計算用重み関数f(x)による重み付けをし、上記中間合成画像との間で重み付け平均して加算合成するものであり、
上記計算用重み関数f(x)は、最終的な合成画像における各入力画像に対しての実質的な重み関数w(x)による重み付けがされたものとする関数であることを特徴とする撮像装置。 - 上記実質的な重み関数w(x)は、入力画像の重ね合わせ部分において重ね合わされる画像の枚数に応じて合計値を1とするように平均化された重みを有し、該重ね合わせ部分の周辺にゆくに従い重みを0とする関数であることを特徴とする請求項6記載の撮像装置。
- 複数枚の入力画像を重ね合わせて合成画像を作成する画像合成プログラムが記録された記録媒体において、
コンピュータに、既に合成された中間合成画像に現在の入力画像である現入力画像を重ね合わせて合成を行させる際に、上記現入力画像に対して計算用重み関数f(x)による重み付けをし、上記中間合成画像との間で重み付け平均して加算合成するプログラムが記録され、
上記計算用重み関数f(x)は、最終的な合成画像における各入力画像に対しての実質的な重み関数w(x)による重み付けがされたものとする関数であることを特徴とする記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005116094A JP2006293851A (ja) | 2005-04-13 | 2005-04-13 | 画像合成装置及び方法、撮像装置並びに記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005116094A JP2006293851A (ja) | 2005-04-13 | 2005-04-13 | 画像合成装置及び方法、撮像装置並びに記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006293851A true JP2006293851A (ja) | 2006-10-26 |
Family
ID=37414336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005116094A Withdrawn JP2006293851A (ja) | 2005-04-13 | 2005-04-13 | 画像合成装置及び方法、撮像装置並びに記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006293851A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102088555A (zh) * | 2009-12-03 | 2011-06-08 | 索尼公司 | 全景图像合成器、全景图像合成方法和程序 |
US8442354B2 (en) | 2009-04-16 | 2013-05-14 | Canon Kabushiki Kaisha | Image processing apparatus and image processing method capable of transmission/reception and recording of image file obtained by panoramic image shot |
JP2013218278A (ja) * | 2012-03-16 | 2013-10-24 | Ricoh Co Ltd | 撮像システム |
JPWO2014167676A1 (ja) * | 2013-04-10 | 2017-02-16 | 株式会社東芝 | 電子機器および画像処理方法 |
JP2017102245A (ja) * | 2015-12-01 | 2017-06-08 | キヤノン株式会社 | 画像処理装置および画像処理方法 |
JP2018163363A (ja) * | 2012-03-16 | 2018-10-18 | 株式会社リコー | 撮像システム |
-
2005
- 2005-04-13 JP JP2005116094A patent/JP2006293851A/ja not_active Withdrawn
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8442354B2 (en) | 2009-04-16 | 2013-05-14 | Canon Kabushiki Kaisha | Image processing apparatus and image processing method capable of transmission/reception and recording of image file obtained by panoramic image shot |
CN102088555A (zh) * | 2009-12-03 | 2011-06-08 | 索尼公司 | 全景图像合成器、全景图像合成方法和程序 |
JP2013218278A (ja) * | 2012-03-16 | 2013-10-24 | Ricoh Co Ltd | 撮像システム |
US9456113B2 (en) | 2012-03-16 | 2016-09-27 | Ricoh Company, Ltd. | Imaging system |
US9736372B2 (en) | 2012-03-16 | 2017-08-15 | Ricoh Company, Ltd. | Imaging system |
US9992414B2 (en) | 2012-03-16 | 2018-06-05 | Ricoh Company, Ltd. | Imaging system |
JP2018163363A (ja) * | 2012-03-16 | 2018-10-18 | 株式会社リコー | 撮像システム |
US10382681B2 (en) | 2012-03-16 | 2019-08-13 | Ricoh Company, Ltd. | Imaging system |
US10855919B2 (en) | 2012-03-16 | 2020-12-01 | Ricoh Company, Ltd. | Imaging system |
JPWO2014167676A1 (ja) * | 2013-04-10 | 2017-02-16 | 株式会社東芝 | 電子機器および画像処理方法 |
JP2017102245A (ja) * | 2015-12-01 | 2017-06-08 | キヤノン株式会社 | 画像処理装置および画像処理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4293053B2 (ja) | 撮像装置及び方法 | |
JP5040959B2 (ja) | 撮像装置 | |
JP4356621B2 (ja) | 撮像装置及び撮像方法 | |
JP4900401B2 (ja) | 撮影装置およびプログラム | |
JP6960238B2 (ja) | 像ブレ補正装置及びその制御方法、プログラム、記憶媒体 | |
JP6192940B2 (ja) | 撮影機器及び連携撮影方法 | |
TWI460682B (zh) | 全景處理 | |
US9013585B2 (en) | Image capture device | |
JP5533048B2 (ja) | 撮像制御装置、撮像制御方法 | |
JP6821339B2 (ja) | 像振れ補正装置、傾き補正装置、像振れ補正装置の制御方法、傾き補正装置の制御方法 | |
KR101247519B1 (ko) | 화상처리장치 및 화상처리방법 | |
US20100295953A1 (en) | Image processing apparatus and method thereof | |
JP7030442B2 (ja) | 画像処理装置、画像処理方法、及びプログラム | |
JP2006293851A (ja) | 画像合成装置及び方法、撮像装置並びに記録媒体 | |
CN105959534B (zh) | 图像处理方法、装置及电子设备 | |
JP2001223932A (ja) | 撮像装置及びデジタルカメラ | |
JP5248951B2 (ja) | カメラ装置、画像撮影支援装置、画像撮影支援方法、及び画像撮影支援プログラム | |
JP2006295329A (ja) | 画像処理装置、撮像装置、画像処理方法 | |
JP4556745B2 (ja) | 画像合成装置及び方法、並びに記録媒体 | |
JP2017085466A (ja) | 撮像装置、及びその制御方法 | |
JP2011135374A (ja) | 3次元デジタルカメラ | |
JP6412222B2 (ja) | 撮影機器、連携撮影方法及び連携撮影プログラム | |
JP2006121201A (ja) | ビデオ撮影装置 | |
JP2012085347A (ja) | 撮影装置およびプログラム | |
JP2021129169A (ja) | 回転位置補正装置および回転位置補正方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080701 |