(57)【特許請求の範囲】
【請求項１】
複数の入力画像を用いて合成画像を作成するための表示を制御する画像処理装置であって、
前記合成画像の座標系における各画素に、前記複数の入力画像を識別する情報を有するＩＤマップを設定する設定手段と、
前記ＩＤマップに基づき前記合成画像と前記ＩＤマップとを重畳することにより得られる表示画像を表示手段に表示させる表示制御手段と、
前記合成画像と重畳して表示されている前記ＩＤマップに対するユーザ入力を取得する取得手段と
を有し、
前記表示制御手段は、前記ユーザ入力に応じた前記表示画像を表示させることを特徴とする画像処理装置。
【請求項２】
前記設定手段は、前記ユーザ入力に応じて前記ＩＤマップにおける少なくとも一部の識別情報を変更することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
さらに、前記複数の入力画像を用いて前記合成画像を作成する作成手段と、を有し、
前記表示制御手段は、前記作成手段から前記合成画像を受け取ることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記作成手段は、前記ユーザ入力に応じて前記合成画像を更新することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記ＩＤマップにおける各画素の識別情報と前記合成画像における各画素は対応することを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記ユーザ入力は、ドラッグ操作であることを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記設定手段は、前記ドラッグ操作の開始点に対応する画素の識別情報を用いて前記ドラッグ操作の軌跡部分における画素の識別情報を置き換えることにより、前記ＩＤマップを変更することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記設定手段は、前記ドラッグ操作の開始点に対応する画素の識別情報を用いて前記ドラッグ操作の軌跡部分における画素の識別情報を置き換えた結果、新たに閉領域を形成した場合に、前記ドラッグ操作の軌跡部分と前記閉領域との両方における画素の識別情報を前記開始点に対応する画素の識別情報で置き換えることにより、前記ＩＤマップを変更することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記複数の入力画像を前記合成画像の座標系にマッピングして各入力画像の写像を取得するマッピング手段を有し、
前記作成手段は、前記写像をつなぎ合わせることにより前記合成画像を作成し、前記写像をつなぎ合わせる際に、前記写像の重複部分において前記複数の入力画像のうちどの入力画像の写像を用いるかを前記ＩＤマップに基づき決定する
ことを特徴とする請求項３又は４に記載の画像処理装置。
【請求項１０】
前記設定手段は、前記ユーザ入力であるドラッグ操作の開始点に対応する画素の識別情報に置き換えることが可能な領域を、前記開始点に対応する画素の識別情報に対応する入力画像の写像の範囲内に制限することを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記表示制御手段は、前記写像を、前記合成画像及び前記ＩＤマップとは別の画像表示領域で表示させることを特徴とする請求項９に記載の画像処理装置。
【請求項１２】
前記表示制御手段は、前記ＩＤマップを、各ＩＤ値の領域が区別できるように表示させることを特徴とする請求項１乃至１１のいずれか１項に記載の画像処理装置。
【請求項１３】
前記表示制御手段は、前記合成画像と前記ＩＤマップとを有彩色と無彩色の別をつけて、あるいは、色相または明るさが重ならないように表示させることを特徴とする請求項１乃至１２のいずれか１項に記載の画像処理装置。
【請求項１４】
前記設定手段は、前記ドラッグ操作の開始点に対応する画素の識別情報を、前記ドラッグ操作の軌跡部分の画素に対して追加することにより、前記ＩＤマップを変更することを特徴とする請求項６に記載の画像処理装置。
【請求項１５】
前記入力画像のうち少なくとも１つは動画を構成するフレーム画像であり、前記設定手段によるＩＤマップの変更は、前記フレーム画像以降の時刻に対応する全てのフレーム画像に対して適用されることを特徴とする請求項１乃至１４のいずれか１項に記載の画像処理装置。
【請求項１６】
複数の入力画像を用いて合成画像を作成するための表示を制御する画像処理方法であって、
前記合成画像の座標系における各画素に、前記複数の入力画像を識別する情報を有するＩＤマップを設定する設定工程と、
前記ＩＤマップに基づき前記合成画像と前記ＩＤマップとを重畳することにより得られる表示画像を表示手段に表示させる表示制御工程と、
前記合成画像と重畳して表示されている前記ＩＤマップに対するユーザ入力を取得する取得工程と、
を含み、
前記表示制御工程は、前記ユーザ入力に応じた前記表示画像を表示させることを特徴とする画像処理方法。
【請求項１７】
コンピュータを、請求項１乃至７のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数の画像を合成して広視野角の画像を生成する処理に関する。
【背景技術】
【０００２】
１回の撮像で取得できる画像に対し、より高解像度、広視野角の画像を取得するための方法として、複数の画像をつなぎ合わせて合成し１枚の出力画像を生成する方法がある。この合成をスティッチ処理と言う。スティッチ処理の流れの一例としては、まず、複数の入力画像に基づき、各入力画像に対応する撮像時のカメラの相対位置関係を推定する。次いで、推定された相対位置関係に基づき各入力画像を共通の出力画像座標系にマッピングして各入力画像の写像を取得し、写像の重複部分においては画像をアルファ・ブレンディング処理（以下、ブレンド処理）することにより、出力画像を生成する。また、重複部分全体でブレンド処理を行う代わりに、重複部分においてつなぎ合わせる画像の境界線を決定し、境界線近傍のみでブレンド処理を行う場合もある。
【０００３】
上述のスティッチ処理においては、入力画像の相対位置や、ブレンド処理の境界線の位置は重要なパラメタである。これらのパラメタ如何によって、出力画像に多重像が生じる、鮮鋭性が劣化する、あるいは境界線で色が不連続に変化する等のアーティファクトが発生する場合がある。そこで特に高品質な出力画像を所望する場合には、ユーザがこれらのパラメタを意図通りにかつ精密に制御できることが望ましい。
【０００４】
特許文献１には、ユーザがスティッチ処理のパラメタを制御できる技術が開示されている。具体的に、特許文献１開示の技術では、ユーザが表示画面で入力画像を見ながら入力画像を移動させて、あるいは入力画像間の対応点を指定して、入力画像の相対位置を調整することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−０６７４８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、画像の鮮鋭性劣化をより抑制するためには、重複部分において決定した境界線の近傍のみでブレンド処理を行う方が望ましい。この場合に、高品質な出力画像を得るためには画像の相対位置のみならず境界線の位置が重要なパラメタとなる。特許文献１の技術ではユーザが入力画像の相対位置を制御することができるが、境界線の位置を制御することができない。一方、境界線は重複部分において２次元的に自由に設定できるパラメタであり、このような自由度の高いパラメタをユーザが制御することを支援する技術が求められる。
【０００７】
本発明の目的は、ユーザが意図した通りに、かつ精密にスティッチ処理における境界線を制御できる画像処理装置及び画像処理方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明に係る画像処理装置は、複数の入力画像を用いて合成画像を作成するための表示を制御する画像処理装置であって、前記合成画像の座標系における各画素に、前記複数の入力画像を識別する情報を有するＩＤマップを設定する設定手段と、前記ＩＤマップに基づき前記合成画像と前記ＩＤマップとを重畳することにより得られる表示画像を表示手段に表示させる表示制御手段と、前記合成画像と重畳して表示されている前記ＩＤマップに対するユーザ入力を取得する取得手段とを有し、前記表示制御手段は、前記ユーザ入力に応じた前記表示画像を表示させることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、スティッチ処理における境界線をユーザが意図通りに制御し、ユーザの所望の合成画像を取得できる効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】画像処理装置のハードウェア構成を示す図である。
【図２】画像処理装置の機能構成を示すブロック図である。
【図３】実施例１における画像処理装置が行うスティッチ処理の流れを示すフローチャートである。
【図４】実施例１における撮像装置の位置関係を示す図である。
【図５】実施例１における出力画像座標系にマッピングされた各画像の写像を示す図である。
【図６】実施例１における境界線を説明するための図である。
【図７】境界線の位置によって出力画像の品質が異なる例を示す図である。
【図８】境界線の位置によって出力画像の品質が異なる他の例を示す図である。
【図９】実施例１における境界線決定部２０６の機能構成を示すブロック図である。
【図１０】実施例１における境界線決定処理の流れを示すフローチャートである。
【図１１】実施例１におけるＩＤマップを示す図である。
【図１２】実施例１においてユーザに提示されるＩＤマップとプレビュー画像を模式的に示す図である。
【図１３】実施例１におけるＩＤマップの変更操作を説明するための図である。
【図１４】実施例１におけるＩＤマップの変更操作を説明するための図である。
【図１５】実施例２においてユーザに提示される情報を模式的に示す図である。
【図１６】実施例３におけるＩＤマップの変更操作を説明するための図である。
【図１７】実施例３においてドラッグ開始点のＩＤを決定する際にユーザに提示される情報を模式的に示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について、図面を参照して説明する。ただし、以下の実施形態は本発明を限定するものではなく、また、以下で説明されている特徴の組み合わせの全てが本発明の課題解決に必須のものとは限らない。なお、同一の構成については、同じ符号を付して説明する。
【００１２】
［実施例１］
本実施例の画像処理装置は、複数の入力画像をつなぎ合わせて１枚の出力画像を生成するスティッチ処理を行う。高品質な出力画像を得るために、スティッチ処理においてつなぎ合わせる画像の境界線はユーザによって制御される。本実施例では、ユーザが意図通りにかつ精密に境界線を制御することを支援する方法として、出力画像の各領域が複数の入力画像のいずれに紐付けられるかを示すＩＤマップと当該ＩＤマップに基づき作成した合成画像とを重畳して表示画面でユーザに提示する。ユーザは合成画像に満足しない場合に表示画面上でＩＤマップ（境界線の位置）を変更する操作を行う。ユーザによる変更操作に応じて、合成画像が更新される。このように、ユーザは境界線の位置に応じた因果関係を確認しながら繰り返し変更ができるので、合成画像にユーザの意図を反映させ、よりユーザが求める満足のいく出力画像を得ることが可能になる。なお、以下ではユーザに確認させるための合成画像をプレビュー画像と称する。
【００１３】
図１は、本実施例に適用可能な画像処理装置のハードウェア構成を示す図である。画像処理装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、ＨＤＤ１０４、出力インタフェース（Ｉ／Ｆ）１０５、入力インタフェース（Ｉ／Ｆ）１０７、撮像インタフェース（Ｉ／Ｆ）１０９、及び汎用インタフェース（Ｉ／Ｆ）１１１を備える。また、画像処理装置１００内の各構成を相互に接続する汎用システムバス１１３を備える。
【００１４】
ＣＰＵ１０１は画像処理装置１００内の各構成を統括的に制御するプロセッサーである。ＲＡＭ１０２は、ＣＰＵ１０１の主メモリ、ワークエリア等として機能するメモリである。ＲＯＭ１０３は、ＣＰＵ１０１によって実行されるプログラム群を格納しているメモリである。ＨＤＤ１０４は、ＣＰＵ１０１によって実行されるアプリケーションや、画像処理に用いられるデータ等を記憶する記憶媒体である。
【００１５】
出力Ｉ／Ｆ１０５は、例えばＤＶＩやＨＤＭＩ（登録商標）等の画像出力インタフェースであり、液晶ディスプレイなどの出力装置１０６を接続する。入力Ｉ／Ｆ１０７は、例えばＵＳＢやＩＥＥＥ１３９４等のシリアルバスインタフェースであり、ユーザが各種の指示操作を行うためのキーボードやマウスなどの入力装置１０８を接続する。撮像Ｉ／Ｆ１０９は、例えば、３Ｇ／ＨＤ−ＳＤＩやＨＤＭＩ（登録商標）等の画像入力インタフェースであり、撮像によりデジタルの画像データを取得する撮像装置（カメラ）１１０を接続する。汎用Ｉ／Ｆ１１１も入力Ｉ／Ｆと同様にＵＳＢやＩＥＥＥ１３９４等のシリアルバスインタフェースであり、必要に応じて外部記憶装置１１２を接続する。
【００１６】
図２は、本実施例に係る画像処理装置１００の機能構成を示すブロック図である。図２に示す各機能構成は、ＣＰＵ１０１がＲＯＭ１０３又はＨＤＤ１０４に格納されたプログラムを読み出してＲＡＭ１０２をワークエリアとして実行することにより実現される。ただし、これに限定されず、図２に示す機能構成のすべてまたは一部は、専用の処理回路を設けることにより実現されてもよい。図２に示すように、画像処理装置１００は、撮像画像取得部２０２、撮像画像補正部２０３、位置関係推定部２０４、マッピング部２０５、境界線決定部２０６、出力画像生成部２０７、及び画像出力部２０８を含む。
【００１７】
撮像画像取得部２０２は、入力端子２０１を介して複数の撮像画像（入力画像）を取得する。撮像画像補正部２０３は、撮像画像に対して補正処理を行う。位置関係推定部２０４は、補正後の画像に基づき撮像時のカメラの位置関係を推定する。マッピング部２０５は、カメラの位置関係に基づき、補正後の各画像を共通の出力画像座標系にマッピングして各画像の写像を取得する。境界線決定部２０６は、写像の重複部分において境界線を決定する。出力画像生成部２０７は、決定された境界線に基づき、補正後の各画像を合成して出力画像を生成する。画像出力部２０８は、生成された出力画像を出力端子２０９を介して出力する。
【００１８】
図３は本実施例の画像処理装置１００が行うスティッチ処理の流れを示すフローチャートである。ステップＳ３０１において、撮像画像取得部２０２が、入力端子２０１を介して複数の撮像画像（入力画像）を取得する。取得される画像は、撮像装置１１０によって撮像された撮像画像でもよいし、あらかじめＲＡＭ１０２や外部記憶装置１１２等に記録された撮像画像でもよい。
【００１９】
ステップＳ３０２において、撮像画像補正部２０３が、取得された撮像画像に対して補正処理を行う。一般的に撮像画像はレンズによる光学歪みの影響を受けた状態で取得される。撮像画像補正部２０３は、撮像画像に対して光学歪みの影響を抑制する補正処理（光学歪み補正）を行う。光学歪み補正は、撮像時に使用されたレンズの特性に基づいて画素の再配置を行うなど、公知の方法を用いることができる。また、本ステップの補正処理は、他の補正処理と入れ替えてもよいし、他の補正処理を加えてもよい。例えば、シェーディング補正を加えてよい。
【００２０】
ステップＳ３０３において、位置関係推定部２０４が、補正後の画像に基づいて撮像時のカメラの位置関係を推定する。具体的に、まず各画像から特徴点を抽出し、複数画像間の特徴点の対応付けを行う。そして、対応付けされた特徴点に基づいて、各カメラの相対的な位置関係を求める。
【００２１】
ステップＳ３０４において、マッピング部２０５が、推定されたカメラの位置関係に基づいて補正後の各画像を出力画像座標系（プレビュー画像の座標系）にマッピングして各画像の写像を取得する。これにより、複数の画像の情報が共通の出力画像座標系に集合する。なお、この際の出力画像座標系は写真で一般的に用いられる透視投影の座標系に限らず、用途に応じて正距円筒図法系（エクイレクタングラー）などの座標系でもよい。
【００２２】
ステップＳ３０５において、境界線決定部２０６が、写像の重複部分において境界線を決定する。ここで境界線とは出力画像座標系における写像の重複部分について、いずれの写像を用いるかを定める線である。本ステップで行われる境界線決定処理の詳細は後述する。ステップＳ３０６において、出力画像生成部２０７が、ステップＳ３０５で決定された境界線に基づいて各画像を合成し、１枚の出力画像（例えば、パノラマ画像）を生成する。すなわち、境界線に基づいて各画像の写像をつなぎ合わせる。この際に出力画像生成部２０７は、境界線の位置で画像が急激に変化し不連続に見えるのを抑制するために、境界線近傍で重複した写像同士をブレンド処理（境界処理）する。
【００２３】
ステップＳ３０７において、画像出力部２０８が、ステップＳ３０６で生成された出力画像を、出力端子２０９を介してＨＤＤ１０４や出力装置１０６、外部記憶装置１１２などに出力する。以上で、画像処理装置１００のスティッチ処理のフローは終了する。
【００２４】
次に、図４〜６を参照してスティッチ処理の例を説明する。図４は、本実施例における撮像装置の位置関係を示す図である。本実施例の撮像画像（入力画像）は、図４に示すように左右に並んで配置されたカメラＣ１、Ｃ２によって撮像されたものとする。入力画像はステップＳ３０２で光学歪みの影響を抑制する補正処理が行われる。補正後の画像１と画像２はステップＳ３０３で共通の出力画像座標系にマッピングされる。
【００２５】
図５は、本実施例における出力画像座標系にマッピングされた各画像の写像を示す図である。図５に示すように、画像１の写像は領域４０１と領域４０３からなり、画像２の写像は領域４０２と領域４０３からなる。領域４０３は画像１と画像２の写像の重複部分である。出力画像を生成する際、領域４０１は画像１、領域４０２は画像２の情報（画素値）をそれぞれ用いる。一方、重複部分である領域４０３は、画像１と画像２の両方の情報が使用可能である。
【００２６】
図６は、本実施例における境界線を説明するための図である。ステップＳ３０５にて、図６に示すように境界線が決定される。重複部分である領域４０３は、境界線によって左側の領域５０１と、右側の領域５０２とに分割される。出力画像を生成する際、領域５０１は画像１の情報を、領域５０２は画像２の情報を用いる。換言すれば、出力画像座標系において、左側で画像１の写像、右側で画像２の写像が用いられ、境界線はその境界を定める。ただし境界線の近傍では、画像１の写像と画像２の写像との両方を用いたブレンド処理を行って出力画像を生成する。
【００２７】
境界線の位置は、出力画像の品質に大きな影響をもたらすものである。以下、境界線の位置の影響について図７、８を参照して説明する。図７は、境界線の位置によって出力画像の品質が異なる例を示す図である。画像７０１は、出力画像座標系における写像の重複部分を示している。画像７０１において画像１と画像２の写像が重ねて表示されている。画像１と画像２は撮像時のカメラ位置が異なるため、シーン内のオブジェクトの位置が必ずしも一致しておらず、相対的に位置ズレを持っている。そのため画像７０１では多重像のようになっている。このような位置ズレは、図４に示すようにカメラが角度を持って配置された場合において特に顕著である。
【００２８】
図７（ａ）と（ｂ）は、境界線が写像の重複部分において異なる位置に設定された場合を示している。画像７０１において境界線の位置が点線で示されている。図７（ａ）と図７（ｂ）の場合の出力画像はそれぞれ画像７０２と画像７０３である。出力画像において境界線の位置が矢印で示されている。境界線近傍では、ブレンド処理により２つの画像の情報が共に用いられる。このため画像７０２では、位置ズレを持つ２つの画像の情報が用いられることにより、多重像が現れている。一方、画像７０３では、位置ズレを持つ２つの画像の情報が用いられるが、境界線近傍で２つの画像が平坦部であるため、画像７０２より多重像が知覚されにくくなっている。
【００２９】
図８は、境界線の位置によって出力画像の品質が異なる他の例を示す図である。図８（ａ）は、図７（ｂ）と同じ場合を示している。図８（ｂ）では、図８（ａ）と異なる位置に境界線が設定されており、出力画像が画像８０２である。図８（ｂ）では図８（ａ）と同様に画像の平坦部に境界線が設定されたが、図８（ｂ）の場合に、２つの画像間でのシーンの照明条件などの微妙な差に起因して、画像８０２において境界線の位置でわずかな色の段差が生じる。
【００３０】
図７及び図８の例から分かるように、境界線の位置の変更が出力画像の品質に大きな影響を与える。図７及び図８の例はシーンが比較的単純な場合であるが、実際には、シーンはさらに複雑な場合もあり、シーンに応じて様々な境界線の設定が考えられる。従って、任意の画像に対して、画像処理装置が常に最適な境界線を自動的に決定することは実際には困難である。また、出力画像には本来ユーザの創作意図が反映されて然るべきであるので、たとえ入力画像や種々の条件が同一であっても、望ましい境界線の位置はユーザによって異なると考えられる。
【００３１】
上述のような状況に対し、特にユーザが高品質な出力画像を所望する場合には、ユーザが意図通りに且つ精密に境界線を制御でき、あるいは手直しできることが望ましい。以下、本実施例における境界線決定処理の詳細について図９及び図１０を参照して説明する。図９は、本実施例における境界線決定部２０６の機能構成を示すブロック図である。図９に示すように、境界線決定部２０６は、境界線初期値決定部９０３、ＩＤマップ作成部９０４、プレビュー画像作成部９０５、表示制御部９０６、ユーザ入力取得部９０７、及びＩＤマップ変更部９０８を含む。
【００３２】
境界線初期値決定部９０３は、入力端子９０１を介してマッピング部２０５から出力画像座標系における各画像の写像の情報を受け取り、これらの情報に基づき境界線の初期値を決定する。ＩＤマップ作成部９０４は、境界線の初期値に基づき、プレビュー画像の各領域で用いる画像の識別子（ＩＤ）を示すＩＤマップを作成する。プレビュー画像作成部９０５は、ＩＤマップに基づき、プレビュー画像を作成する。表示制御部９０６は、出力端子９０９を介して、液晶ディスプレイなどの出力装置１０６にプレビュー画像とＩＤマップを重畳して表示するように制御する。ユーザ入力取得部９０７は、入力端子９０２を介してユーザ入力を受け取る。ＩＤマップ変更部９０８は、ユーザ入力に基づきＩＤマップ（境界線）を変更する。それに応じて、プレビュー画像作成部９０５は、境界線が変更されたＩＤマップに合わせてプレビュー画像を再度作成し、表示制御部９０６は、出力装置１０６に表示されているプレビュー画像を更新する。
【００３３】
図１０は、本実施例における境界線決定処理の流れを示すフローチャートである。ステップＳ１００１において、境界線初期値決定部９０３が、出力画像座標系における各画像の写像の情報に基づき、写像の重複部分において境界線の初期値を決定する。例えば図６の通り境界線の初期値が決定される。本ステップの境界線の決定方法としては、例えば画素値や画素値の勾配を用いて境界線を算出する方法や、最も近い画像を使用するように境界線を設定するなどの公知の技術が使用可能である。
【００３４】
ステップＳ１００２において、ＩＤマップ作成部９０４が、各入力画像にそれぞれ異なるＩＤを付与する。例えば、カメラＣ１による画像にＩＤ「１」を、カメラＣ２による画像にＩＤ「２」を付与する。このＩＤは、各入力画像がステップＳ３０２を経て補正後の画像となり、ステップＳ３０４を経て出力画像座標系へマッピングされても、画像との対応関係は変化しない。ステップＳ１００３において、ＩＤマップ作成部９０４が、境界線の初期値に基づき、出力画像の各領域がどの入力画像に紐付けられるかを示すＩＤマップを作成する。ＩＤマップは典型的には、出力画像と同じ座標系及びサイズを有し、各画素の位置に対応する入力画像のＩＤ値を格納したデータである。例えば図１１の通りＩＤマップが作成される。ＩＤマップ１１０１内の領域１１０２にはＩＤ「１」、領域１１０３にはＩＤ「２」が格納されている。
【００３５】
ステップＳ１００４において、プレビュー画像作成部９０５が、ＩＤマップに基づきプレビュー画像を作成する。すなわち、ＩＤマップにおける境界線の位置に基づき出力画像座標系に画像１と画像２を合成することでプレビュー画像を作成する。合成処理はステップＳ３０６における出力画像生成部２０７の処理と同様なものとする。ただし、処理負荷を軽減するために、境界処理を省略してもよい。ステップＳ１００５において、表示制御部９０６が、ＩＤマップとプレビュー画像を重畳して出力装置に表示するように制御する。すなわち、ＩＤマップとプレビュー画像を重ねた画面をユーザに提示させる。
【００３６】
図１２は、ユーザに提示される画面の一例を模式的に示す図である。画面上の画像表示領域１２０１には、図１１のＩＤマップがプレビュー画像と重ねて表示されており、ユーザは提示される画面を見ると、プレビュー画像を作成するために各画素で使用された画像のＩＤを識別することができる。
【００３７】
なお、ＩＤマップを表示するために使用される画素値は各領域のＩＤ値と同一である必要はなく、ユーザが各ＩＤの領域を識別できればよい。例えば、ＩＤ「１」の領域を画素値６４、ＩＤ「２」の領域を画素値１２８のように、識別が容易な程度の明るさの差をつけて表示することができる。また各ＩＤで区別しやすい色をつけて表示してもよい。プレビュー画像がカラー（有彩色）の場合にはＩＤマップをグレースケール（無彩色）で表示し、プレビュー画像がグレースケール（無彩色）の場合にはＩＤマップをカラー（有彩色）で表示する方法を採用してもよい。あるいは、プレビュー画像の全体または部分に含まれていない色相の色をＩＤマップの表示に用いるようにしてもよい。
【００３８】
また、ユーザに提示される画面において、表示したＩＤマップの色の凡例を示したり、入力画像を特定できる情報（例えばＩＤや入力ファイル名）をＩＤマップに重ねて表示したりしてもよい。重ねて表示する際の透過度（重み）は、ユーザが指定して変更できるとよい。ユーザにプレビュー画像及びＩＤマップが提示されると、フローはステップＳ１００６に進む。
【００３９】
ステップＳ１００６において、ユーザ入力取得部９０７が、ユーザ入力を取得する。ここでユーザがプレビュー画像に満足した場合、その旨を示すための操作を行う。例えば、ユーザはマウスなどの入力装置１０８を介して、提示される画面における「ＯＫ」というボタン（図示せず）をクリックする。一方、ユーザがプレビュー画像に満足しない場合、ユーザはＩＤマップを変更するための操作（変更操作）を行う。例えば、ユーザはマウスなどの入力装置１０８を介してカーソル１２０２をドラッグすることで、ＩＤマップにおける境界線を調整する。
【００４０】
ステップＳ１００７において、ユーザ入力取得部９０７が、ユーザがプレビュー画像に満足したか否かを判定する。すなわち、ユーザ入力がプレビュー画像に満足した旨を示す操作である場合に、ＹＥＳと判定し、フローはステップＳ１０１０に進み、ユーザ入力が変更操作である場合に、ＮＯと判定し、フローはステップＳ１００８に進む。ステップＳ１００８において、ＩＤマップ変更部９０８が、ユーザの変更操作に基づいてＩＤマップを変更する。
【００４１】
図１３は、本実施例におけるＩＤマップの変更操作を説明するための図である。図１３に示すＩＤマップ１３０１は、図１２の境界線付近を拡大して示したものである。明るい色で表示された領域１３０２はＩＤ「１」の領域、暗い色で表示された領域１３０３はＩＤ「２」の領域である。この図中で、図１２のカーソル１２０２を位置１３０４から位置１３０５へドラッグする操作（ドラッグ操作）で動かしたとする。このような操作に基づき、ＩＤマップ変更部はドラッグ操作の開始位置１３０４のＩＤ「１」を用いて、ドラッグ操作の軌跡部分１３０６のＩＤを置き換える。すなわち、図１３ではドラッグ操作の軌跡部分１３０６がＩＤ「２」からＩＤ「１」へ変更されたことになる。なお、カーソルの大きさは任意であり、ユーザが別途指定できるようにするとよい。
【００４２】
ステップＳ１００８でＩＤマップが変更されると、フローはステップＳ１００４に戻る。ＩＤマップの変更は境界線の位置の変更と同義であるので、ステップＳ１００４でプレビュー画像作成部９０５が境界線の位置が変更されたＩＤマップに合わせてプレビュー画像を再作成する。そして、ステップＳ１００５で表示制御部９０６がユーザに提示するプレビュー画像を更新する。ユーザは更新されたプレビュー画像に満足していない場合に、ＩＤマップを変更するための変更操作を行う。これに応じて、ステップＳ１００６、Ｓ１００７の処理が行われた後に、フローはステップＳ１００８に進み、そしてステップＳ１００４に戻る。すなわち、ユーザがプレビュー画像に満足するまでステップＳ１００６〜Ｓ１００８の処理及びステップＳ１００４〜Ｓ１００５の処理は繰り返される。一方、ユーザは更新されたプレビュー画像に満足した場合に、その旨を示す操作を行う。これに応じて、ステップＳ１００６〜Ｓ１００７の処理が行われた後に、フローはステップＳ１００９に進む。ステップＳ１００９において、現在の境界線の位置が、境界線決定部２０６の出力結果として次の出力画像生成部２０７に出力される。以上で境界線決定処理は終了する。
【００４３】
本実施例の境界線決定処理により、ユーザは境界線を精密に指定することが可能になる。例えば鋭角な部分や細い部分を持つように指定したり、シーンの複雑な形状に沿うように指定したり、画素単位で繊細な位置の変更を行ったりすることが可能になる。また、ユーザは境界線に対しプレビュー画像を重ねて見ることで、その因果関係を確認しながら繰り返し変更ができるので、画像にユーザの意図を反映させ、よりユーザが求める満足のいく画像を得ることが可能になる。
【００４４】
さらに、上述した境界線決定処理では、ＩＤを置き換える際にドラッグ開始点のＩＤを採用することで、ＩＤ「１」、「２」の領域双方をスピーディーに変更可能となり、効率向上に寄与する。これはスティッチ処理においてほとんどの場合、同一の画像を使用する領域は単純閉曲面で囲まれるという性質を利用したものである。ただし、飛び地状にＩＤを指定することを可能とするために、ドラッグ開始点のＩＤを採用せずＩＤを直接指定するモードも備えてもよい。
【００４５】
さらに、ドラッグ操作の効率を向上するために、本実施例は、ＩＤを置き換える対象領域はドラッグ操作の軌跡部分のみならず、図１４に示すようにドラッグ操作の軌跡部分により閉領域を作った時には、その閉領域も対象領域とする機能を備えてもよい。図１４（ａ）に示すＩＤマップ１４０１は閉領域１４０４のＩＤが、暗い色で表示された領域１４０３と同じＩＤ「２」から、明るい色で表示された領域１４０２と同じＩＤ「１」に置き換えられ、図１０（ｂ）に示すＩＤマップ１４０６のようになる。これも同一の画像を使用する領域は単純閉曲面で囲まれるという性質を利用したものである。これによって、対象領域に指定したい画素がドラッグ範囲から漏れてしまうのを防ぎ、ユーザが広範囲の画素を対象領域に指定したい場合に、ドラッグ操作にかかる負荷を低減することができ、効率向上に寄与する。
【００４６】
さらに、境界線を指定する際の精密性を支援するために、本実施例は、ユーザのドラッグ操作で描かれた軌跡が、画像のエッジ成分とほぼ沿っていると判定される場合には、ユーザによるドラッグ操作の軌跡を当該エッジ上に補正する機能を備えてもよい。画像のエッジ成分と、ドラッグの軌跡が沿っているか否かの判定は公知の技術を用いることができる。この機能により、ユーザが境界線を画像のエッジに沿って設定したい場合、ユーザによるドラッグ操作で精密にエッジをなぞる負荷を低減することができる。
【００４７】
さらに、境界線を指定する際の安全性を確保するために、本実施例は、ドラック操作で境界線を指定することが可能な範囲を制限する機能を備えてもよい。本実施例ではユーザが自由にＩＤマップを変更できる。そのためユーザが、画像の写像外の領域の画素に対しても当該画像のＩＤに置き換えるように指定してしまうおそれがある。例えば図５で、本来領域４０１に画像２を使用する指定はできないし、領域４０２で画像１を使用する指定もできないが、ユーザの操作上は可能である。そこでユーザが画像の写像範囲を超えて境界線を指定できないように、写像範囲を超えた領域へのドラッグではＩＤ置き換えを無効にする機能を有す。また、ユーザのドラッグ操作が写像範囲を超えた際に、その旨ユーザに警告を出してもよい。また、このような操作を抑制するために、写像範囲をユーザに提示するようにしてもよい。これはＩＤマップ、プレビュー画像と共に常に提示していてもよいが、ユーザに提示される情報が乱雑にならないように、ドラッグ操作中のみ、開始地点のＩＤに対応する画像の写像範囲を提示する方式であってもよい。このようにすれば、出力画像が存在しない情報を参照しようとして不正となるのを防ぎ、ユーザにも正しい操作を促すことができる。
【００４８】
なお、プレビュー画像のほかに、境界線の位置によらずに写像の全ての部分を重畳して表した画像を別にユーザに提示してもよい。これはユーザが境界線の位置を決める際の参考とすることができる。全ての写像について重畳してもよいが、ユーザに提示される情報が乱雑にならないように、どの入力画像に対する写像を表示するかユーザが選択できるとよい。以上説明した構成をとることによって、スティッチ処理における境界線をユーザが精密、かつ分かりやすい操作で意図通りに変更することが可能になる。
【００４９】
［実施例２］
実施例１では入力が画像であった場合について述べるが、本実施例では、時間軸方向の複数のフレームから成る動画が入力となる場合について述べる。動画が入力であった場合にも、対応するフレーム（フレーム画像）を入力画像として実施例１を適用することができる。ただし動画の場合には、時間に対してシーンが変化するために、ある時刻で適当であった境界線の位置が、別なフレームでも同様に適当であるとは限らないという問題が生じる。そこで各フレームに対して異なる境界線が指定できればよいが、通常フレーム数は大変多いため、全フレームに対して実施例１と同様の操作を行うことはユーザに多大な負担を強いる。また実際には、動画の１フレームあたりの時間はごく短いので、ある時刻で適当であった境界線の位置は、他の時刻でも適当である可能性も高い。
【００５０】
図１５は、本実施例においてＩＤマップとプレビュー画像を重畳してユーザに表示する際にユーザに提示される情報を模式的に示す図である。ユーザに提示されるＩＤマップとプレビュー画像が重畳して表示された画像表示領域１５０１のほか、動画の全時間を表すシークバー１５０２と、処理対象のフレームが動画の全時間に対しどの位置にあるかを示すスライダー１５０３がユーザに提示される。ここで、動画の全時間を０〜Ｔとし、処理対象のフレームは時刻τのフレームであるとする。
【００５１】
本実施例で、時刻τでユーザの操作によって変更されたＩＤマップは、動画中の時刻ｔ以降のフレームに適用される。つまり、第１フレーム（τ＝０のフレーム）を処理対象として設定あるいは変更されたＩＤマップ（境界線の位置）は、動画の全フレームのＩＤマップを同様に設定する。開始時から３秒後のフレーム（τ＝３のフレーム）を処理対象として変更されたＩＤマップの変更は、３秒後以降のフレームのＩＤマップのみを変更する。
【００５２】
典型的にはユーザは、τ＝０のフレームで境界線の位置を設定した後、動画を再生したりスライダー１５０３を右へ動かしたりして、処理対象時刻τを進める。処理時刻τが進むに応じプレビュー画像も変化する。シーンの変化によって境界線が適当でなくなったある時刻τ＝Ｔ１にきたら、τ＝０の処理時に既に設定されたτ＝０のフレームの境界線を基に、τ＝Ｔ１のフレームに合うように境界線を調整する。これによって時刻Ｔ１以降のフレームの境界線の位置が変更される。調整が終わったら、再び処理時刻τを進める。こうすることによってユーザは、出力結果が所望する品質であるかを確認しながら、必要に応じた回数と箇所のみで境界線の位置を設定・変更し、効率的に動画の開始から終了までの境界線の設定を完了することができる。
【００５３】
以上で、時間軸方向の複数のフレームから成る動画が入力であった場合について述べたが、本実施例の適用は、必ずしも全ての入力が動画である場合に限定されない。動画と画像（静止画）が混在していた場合にも、動画の各フレームに対応して画像（静止画）を繰り返し処理対象にすることで、本実施例を適用することができる。
【００５４】
［実施例３］
実施例１、２では、ＩＤマップにおける各画素は必ず１つのみのＩＤを持つことを前提としたが、本実施例では、ＩＤマップにおける各画素が複数のＩＤを持ち、複数の画像と紐づけられることを可能とする。
【００５５】
図１６は本実施例におけるＩＤマップの変更操作を説明するための図である。図１６に示すＩＤマップ１６０１は、図１２の境界線付近を拡大して示したものである。明るい色で表示された領域１６０２はＩＤ「１」の領域、暗い色で表示された領域１６０３はＩＤ「２」の領域である。この図で、カーソルを位置１６０４から位置１６０５へドラッグしたとする。本実施例におけるＩＤマップ変更部は、ドラッグ操作の開始位置１３０４のＩＤ「１」を、ドラッグ操作の軌跡部分１６０６に追加する。すなわち、図１６のドラッグ操作の軌跡部分１６０６は、ドラッグ操作を受けてＩＤ「２」とＩＤ「１」の両方を持つようになる。図１６に示すように、この複数ＩＤを持つ領域は元のＩＤマップと異なる色等で区別して表示される。１つの画素が２つのＩＤを持つことは、例えばＩＤマップが２枚、レイヤーの如く準備されており、それぞれが１つ目のＩＤ、２つ目のＩＤを保持し、２つ目のＩＤを持たない場合は特定の画素値（例えば０）を持つ構成とすることで実現可能である。
【００５６】
２つのＩＤを持つ画素では、両画像をブレンドして出力する。例えば、出力画像Ｒの座標（ｘ、ｙ）において、画像１と画像２へのＩＤ紐づけの有無を１または０で表すマスクＭ１（ｘ、ｙ）、Ｍ２（ｘ、ｙ）、画像１と画像２の画素値をＩ１（ｘ、ｙ）、Ｉ２（ｘ、ｙ）とする。この場合に、出力画像Ｒの画素値は式（１）により決定される。
【００５７】
【数１】
0006708407.tif 000002
【００５８】
このようにすると、スティッチ処理における境界線のみならず画像をブレンドしたい他の領域においても、鋭角な部分や細い部分など複雑な形状を指定したり、シーンの特徴に応じた形状でブレンド制御を行ったりすることができる。したがってよりユーザの意図を反映した出力画像を生成することが可能となる。
【００５９】
なお、本実施例のＩＤの追加と実施例１のようなＩＤの置き換えは、組み合わせて適用することが望ましい。例えば、通常の操作時にはドラッグ操作によってＩＤを置き換え、入力装置（ドラッグするデバイスと同一でも別でもよい）の特定キーを押しながら操作した場合にはＩＤを追加するモードに移行する、のようにする。このようにすると、ドラッグ操作の軌跡によりＩＤマップを介して境界線の位置を変更することは、単一画素に対して複数の画像が指定されうる場合にも、好適に適用可能である。
【００６０】
また、本実施例において、ＩＤマップ上２つのＩＤを持つ画素をドラッグの開始点に選んだ場合、置き換えや追加の操作を行う開始点ＩＤの候補が２つ存在することになる。そこで開始点ＩＤの候補からいずれのＩＤを選択するかをユーザに確認する機能をさらに備える。
【００６１】
図１７は、本実施例においてドラッグ開始点のＩＤを決定する際にユーザに提示される情報を模式的に示す図である。図１７において、カーソル１７０５が２つのＩＤ「１」「２」を持つ領域１７０４でドラッグを開始した位置である。複数のＩＤが設定された領域でドラッグが開始されると、小さなポップアップ１７０６が開始点付近に表れ、候補となるＩＤがリストで示される。同時に第２のカーソル１７０７がカーソル１７０５の位置に現れ、入力装置の操作対象は第２のカーソル１７０７に移る。ユーザが第２のカーソル１７０７を動かしてポップアップ上のＩＤを選択する。するとポップアップ１７０６と第２のカーソル１７０７は消え、入力装置の操作対象がカーソル１７０５に移る。こうして第２のカーソル１７０７で選択したＩＤを用い、カーソル１７０５をドラッグ操作して、ＩＤマップの変更を再開できる。
【００６２】
［他の実施形態］
なお、上述した実施例において、ＩＤマップ変更部９０８は、ＩＤマップ作成部９０４とは別の構成としたが、ＩＤマップ作成部９０４に含まれる構成としてもよい。なお、上述した実施例は、それぞれを単独で用いるだけでなく、組み合わせて実施してもよい。さらにそれぞれの変形例として、以下のような形態も考えられる。上述した実施例でのドラッグ操作は、入力装置として一般的なマウスによるもののみならず、広くポインティングデバイスによる入力と同種の入力で置き換えることもできる。一例にはペン型入力デバイスによるものが考えられる。
【００６３】
上述した実施例では説明を簡単にするため、入力画像を２枚として説明したが、入力画像は２枚に限らない。２枚以上の（複数の）画像で、上述した実施例を適用することが可能である。例えば、以下の場合に適用可能である。周囲の全方位をカバーするように配置された複数のカメラにより撮像された複数の画像を入力画像とし、３６０度の全方位パノラマ画像を生成する場合であっても上述した実施例を適用可能である。また、立体視用の画像を取得するためのステレオ撮像装置により撮像された複数の画像を入力画像とした場合であっても、上述した実施例を適用可能である。また、外側を向く配置ではなく、内側を向いて配置された複数のカメラにより撮像された複数の画像を入力画像とした場合であっても、上述した実施例を適用可能である。
【００６４】
なお、上記の説明（例えば、パノラマ画像を生成する例の説明）では、複数のカメラを用いて撮像することで複数の入力画像を取得したが、入力画像の取得はこれに限定されず、単数のカメラの撮像時刻を変えて複数の入力画像を取得する形式であってもよい。例えば、図４において、カメラＣ１とＣ２を同時に用いるのではなく、１つのカメラでまずカメラＣ１の位置で画像を取得し、次いでそのカメラをカメラＣ２の位置に移動し、画像を取得する形式であってもよい。また、複数のカメラを用いた場合に撮像時間差を有していてもかまわない。
【００６５】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６６】
９０４    ＩＤマップ作成部
９０５    プレビュー画像作成部
９０６    表示制御部
９０７    ユーザ入力取得部
９０８    ＩＤマップ変更部
【図１】
0006708407.tif 000003
【図２】
0006708407.tif 000004
【図３】
0006708407.tif 000005
【図４】
0006708407.tif 000006
【図５】
0006708407.tif 000007
【図６】
0006708407.tif 000008
【図７】
0006708407.tif 000009
【図８】
0006708407.tif 000010
【図９】
0006708407.tif 000011
【図１０】
0006708407.tif 000012
【図１１】
0006708407.tif 000013
【図１２】
0006708407.tif 000014
【図１３】
0006708407.tif 000015
【図１４】
0006708407.tif 000016
【図１５】
0006708407.tif 000017
【図１６】
0006708407.tif 000018
【図１７】
0006708407.tif 000019