説明

画像処理装置、画像処理方法及びプログラム

【課題】メモリの消費を抑え、且つ、高速な変形処理を実施する。
【解決手段】CPU104は、変形処理に応じた重複領域を設定し、重複領域を加味したサイズで前記画像データを分割、その重複領域を加味したサイズで分割された画像データに対して複数回の変形処理を実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分割された画像データの変形処理を行う技術に関するものである。
【背景技術】
【0002】
近年、電動雲台を駆動し、カメラの向きを変えながら複数枚の画像データを撮影し、撮影した画像データを結合することで、非常に多くの画素からなる画像データを生成するシステムが注目されている。被写体としては、風景、絵画等が挙げられる。このようなシステムの場合、カメラを回転させながら撮影を行うため、被写体を斜め方向より撮影することになる。以下では、このように撮影された画像データをパース画像データと称す。複数枚の画像データを結合するには、先ず、パース画像データを正面から撮影したような画像データに補正する必要がある。以下では、このような補正をパース補正と称す。パース補正に関する手法は、例えば特許文献1に開示されている。
【0003】
一方、複数枚の画像データを結合するには、各画像データにパース補正を実施し、各画像データを所定の位置に配置する。このとき、システムのメモリ量が少ない場合、全ての画像データをメインメモリに展開すると、ハードディスク等の書き込み速度の遅いデバイスをメモリとして代用するスワップ現象が発生し、処理速度が著しく低下してしまう。そのため、個々の画像データをタイル状に分割し、各タイル状の画像データに対して順番に処理を実施する必要がある。しかし、パース補正のように、処理前後で画像領域が変化するような処理では、単純なタイル分割では対応することができない。これに対し、特許文献2には、画像表示領域をタイル状に分割し、各タイル状の画像表示領域に対応する元画像領域を算出し、補正処理を実施する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平10−178535号公報
【特許文献2】特開2005−135096号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
タイル分割を行う画像処理では、処理をスムーズに行うため、複数枚のタイル状の画像データをメモリ上に貯めておく、キャッシュという手法がとられる。しかしながら、特許文献2に開示される技術では、補正処理のパラメータに変更があった場合、元画像領域も変更されるため、画像データのキャッシュが行いにくいという問題がある。さらに、補正処理を行うには、画像データを補間する必要があるが、タイル状の画像データの端では補間処理ができない。
【0006】
そこで、本発明の目的は、メモリの消費を抑え、且つ、高速な変形処理を実施することにある。
【課題を解決するための手段】
【0007】
本発明の画像処理装置は、分割された画像データの変形処理を行う変形手段を有する画像処理装置であって、前記変形手段による変形処理に応じた重複領域を設定する設定手段と、前記設定手段により設定された前記重複領域を加味したサイズで前記画像データを分割する分割手段とを有し、前記変形手段は、前記重複領域を加味したサイズで分割された画像データに対して複数回の変形処理を実行することを特徴とする。
【発明の効果】
【0008】
本発明によれば、メモリの消費を抑え、且つ、高速な変形処理を実施することができる。
【図面の簡単な説明】
【0009】
【図1】実施形態に係る画像処理装置のシステム構成を示す図である。
【図2A】UI画面の表示例を示す図である。
【図2B】UI画面の表示例を示す図である。
【図2C】UI画面の表示例を示す図である。
【図3】ズーム操作時の画像データの処理を説明するための図である。
【図4】パース補正の概要を説明するための図である。
【図5】タイル分割された画像データに対してパース補正を実施する手法について説明するための図である。
【図6】タイル分割された画像データに対して画素補間を実施した際の問題点を説明するための図である。
【図7】図3のようなレイヤ構造を生成する処理を示すフローチャートである。
【図8】実際に図2に示すUI画面を用いてタイル画像データに対してパース補正を行う処理を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【0011】
以下では、タイル状に分割された画像データ(以下、タイル画像データと称することがある)を、タイル画像データ毎にパース補正し、UI(ユーザインタフェース)上に表示する手法について説明する。
【0012】
図1は、実施形態に係る画像処理装置のシステム構成を示す図である。入力装置101は、ユーザからの指示やデータを入力するための装置であり、キーボードやマウス等のポインティングシステムで構成される。表示装置102は、GUI(Graphical User Interface)等を表示する装置であり、通常はCRT(Cathode Ray Tube)や液晶ディスプレイ等のモニタで構成される。蓄積装置103は、画像データやプログラムを蓄積する装置であり、通常はハードディスクで構成される。CPU(Central Processing Unit)104は、本実施形態に係る画像処理装置の各種処理を制御する。RAM(Random Access Memory)106は、処理に必要なプログラム、データ、作業領域等をCPU104に提供する。なお、図7及び図8のフローチャートに示す処理に必要な制御プログラムは、蓄積装置103に格納されているものとし、一旦RAM106に読み込まれてCPU104によって実行される。カメラ装置105は、デジタルカメラ等と接続し、画像データを取得する。なお、実際のシステム構成については、上記以外にも様々な構成要素が存在するが、本発明の主眼ではないので、その説明は省略する。
【0013】
図2Aは、図1の表示装置102に相当するUI画面を示す図である。UI画面201内には画像表示領域210があり、ここに画像データ群(画像データA、B、C)202が表示されている。各画像データA、B、Cはパース画像データになっており、被写体であるグレーの領域が台形に歪んでいる。205はパース補正実行ボタンであり、このボタンが押下されると、画像データ群202に対してパース補正が実行される。203は表示位置移動ボタンであり、上下左右に画像データ群202を移動させることでき、任意の位置で画像データ群202を閲覧することができる。204はズームスライダであり、これが操作されることにより、画像データ群202の表示倍率が変更される。
【0014】
図2Bは、パース補正後におけるUI画面を示す図である。パース補正実行ボタン205が押下されると、画像データ群202がパース補正後の画像データ群207に補正され、被写体であるグレーの領域の歪みが補正されている。図2Cは、ズーム操作後におけるUI画面を示す図である。ズームスライダ204で表示倍率を上げると、パース補正後の画像データ群207が拡大され、ズーム画像データ群209が表示される。
【0015】
ズーム操作時の画像データの処理を、図3を用いて説明する。図3(a)は、画像データのレイヤ構造を示している。図3(a)に示すように、画像データは303〜305のレイヤ構造になっている。レイヤ2(305)は、画像データを単純にタイル分割したものである。レイヤ1(304)は、画像データを縦及び横それぞれ1/2に縮小したものをタイル分割したものである。レイヤ0(303)は、画像データを縦及び横それぞれ1/4に縮小したものをタイル分割したものである。303〜305で各タイル画像データのサイズは同じである。図3(b)は、各レイヤと表示倍率との関係を示している。表示倍率が上がり、表示倍率が所定の閾値(図3(b)の例では、40%、70%)を上回ると、順次解像度の高いレイヤに切り替わる(レイヤ0→レイヤ1→レイヤ2)。反対に、表示倍率が下がり、表示倍率が所定の閾値を下回ると、順次解像度の低いレイヤに切り替わる(レイヤ2→レイヤ1→レイヤ0)。閾値を上回ったり、下回らなければ、同じレイヤが維持され、バイリニアやバイキュービック等の画素補間によって拡大又は縮小処理が実施される。
【0016】
図4は、パース補正の概要を説明するための図である。403は被写体であり、カメラ401で被写体403を撮影する場合について考える。なお、カメラ装置401は、図1のカメラ装置105に対応する構成である。図4において、カメラ401は、斜め方向から被写体403を撮影している。このときの画像データの画素位置と被写体位置との関係は、以下の式1で表すことができる。
ImagePos(X,Y)=Screen(Proj*View*Pos(x,y,z))・・・式1
【0017】
ここで、Pos(x,y,z)は被写体403の3次元的な位置を示している。Viewは視点変換行列であり、カメラ装置401の位置、撮影方向を示す。Projは、3次元から2次元への射影行列であり、カメラ装置の画角を示す。Screen()は、座標系を変換するのに用いられる。X、Yは、画像データの2次元的な配置を示しており、整数値で表される。402は仮想カメラ装置であり、被写体403に対して正面方向に設置されている。仮想カメラ装置402で撮影された画像データを再現することにより、パース補正を実施できる。仮想カメラ装置402においても、画像データの画素位置と被写体位置との関係を、以下の式2で表すことができる。
ImageVPos(X,Y)=Screen(Proj*ViewV*Pos(x,y,z))・・・式2
【0018】
ViewVは視点変換行列であり、仮想カメラ装置403の位置、撮影方向を示す。後のパラメータは式1と同じである。ここで、式1と式2とをマージすることにより、以下の式3が得られる。
ImageVPos(X,Y)=Func(ImagePos(Xo,Yo))・・・式3
【0019】
ここで、Func()は、ImageVPos()とImagePos()との対応をとる関数であり、式1及び式2により得られる。Xo、Yoは、X、Yに対応するカメラ装置401の画像データの座標であり、実数値をとる。これで、ImagePos(Xo,Yo)の画素値が分かれば、ImageVPos(X,Y)の画素値を設定できる。すなわち、仮想カメラ装置402によって撮像された画像データを再現することができる。このとき、Xo、Yoは実数値であるので、画素値を取得する場合は画素補間が必要となる。画像データ404は、カメラ装置401で撮影された画像データである。被写体領域であるグレーの領域が台形に歪んでいる。これを、式3を用いて、仮想カメラ装置402で撮影された画像データを再現した結果が405の画像データである。画像データ405においては被写体領域の歪みが補正されていることがわかる。
【0020】
図5は、タイル分割された画像データに対してパース補正を実施する手法について説明するための図である。先ず図5(a)に示すように、CPU104は図2の画像表示領域210の座標P0、P1、P2、P3を算出する。次に図5(b)に示すように、CPU104は、画像表示領域210の座標P0〜P3に対して図4で説明したパース補正の逆変換を行うことにより、パース補正後に画像表示領域210において表示される画像データがパース補正前に表示されていた(座標Q0、Q1、Q2、Q3で囲まれた)表示領域(以下、対応領域と称す)501を算出する。次に図5(c)に示すように、CPU104は、対応領域をタイル分割し、座標Q0〜Q3が含有される、座標T0、T1、T2、T3で囲まれたブロック領域502を算出する。次に図5(d)に示すように、CPU104は、座標T0〜T3で囲まれるブロック領域内の各タイルに対してパース補正を実行する。そしてCPU104は、各タイルについてパース補正を実行した後、画像表示領域210に対応する領域503を表示する。
【0021】
図6は、タイル分割された画像データに対して画素補間を実施した際の問題点を説明するための図である。図6の601のような、並んだ2枚のタイル画像データの境界部分を2倍に拡大すると、602のように画素1と画素2との間が画素1の色で補間される。これは、各タイル画像データを拡大するため、境界を越えた画素の情報がないためである。そこで、本実施形態では、603のようにタイル画像データに重複領域を設定する。すると、604のように、タイル画像データの境界部分を2倍に拡大しても、画素1と画素2との中間色で補間でき、正しい補間結果が得られる。先ずCPU104は、元の画像データ605に対してパース補正を実行し、パース補正後の画像データ606を得る。ここで第1の補間処理が行われる。次にCPU104は、パース補正後の画像データ606に対して拡大処理を行い、拡大処理後の画像データ607を得る。ここで第2の補間処理が行われる。すなわち、本実施形態においては、2回の補間処理が行われるため、それを考慮したタイル画像データの重複領域を設定する必要がある。また、第2の補間処理においては、タイル画像データの境界部分が斜線になるため、重複領域を余分にとる必要がある。例えば、608に示すようにタイル画像データの境界部分が斜線である場合、この境界部分を2倍に拡大すると、609に示すようなタイル画像データの境界部分が得られる。この場合、Aの画素を生成するのにBの画素が必要となる。さらに、Bの画素を生成するのにCとDの画素が必要となる。そのため、2倍の重複領域を取る必要がある。つまり、例えばバイリニア法で第1、第2の補間処理を実行する場合、第1の補間処理で重複領域1画素が必要となり、第2の補間処理で重複領域2画素が必要となり、合計3画素分の重複領域を設定する必要がある。
【0022】
図7は、図3のようなレイヤ構造を生成する処理を示すフローチャートである。ステップS701において、カメラ装置105は、画像データの読み込みを行う。ステップS702において、CPU104は画像データを縮小処理し、図3のようなレイヤ0(303)、レイヤ1(304)を生成する。ステップS701で読み込まれた画像データはレイヤ2(305)として使用される。ここでは、各レイヤの画像データはまだタイル分割されていない。ステップS703において、CPU104はタイル画像データの重複領域を算出する。このとき、例えばバイリニア補間であれば、パース補正時に1画素、拡大時に2画素必要になるので、合計3画素分の重複領域が必要になる。同様に、バイキュービック補間の場合、6画素分の重複領域が必要となる。ステップS704において、CPU104は、重複領域を加味したサイズで各レイヤをタイル分割する。ステップS705において、CPU104は分割した各タイル画像データをファイル保存する。
【0023】
図8は、実際に図2に示すUI画面を用いてタイル画像データに対してパース補正を行う処理を示すフローチャートである。ステップS801において、図5(a)で説明したように、CPU104は画像表示領域を算出する。なお、画像表示領域は、ユーザによって、移動又はズーム操作が行われる度に変更される。ステップS802において、CPU104は、画像表示領域の各頂点についてパース補正の逆変換を行い、図5(b)に示すような対応領域を算出する。ステップS803において、CPU104は、図2のズームスライダ204で指定された表示倍率に対応するレイヤを選択する。ステップS804において、CPU104は、選択したレイヤに応じて、対応領域から図5(c)で説明したようなブロック領域を算出する。ステップS805において、CPU104は、ステップS705でファイル保存したタイル画像データ群から、ステップS803で選択したレイヤに対応するタイル画像データ群を取得し、デコード処理する。このとき、ユーザ操作を快適に行えるよう、タイル画像データ群をある程度キャッシュしておく。逆にキャッシュされたタイル画像データがある場合は、それを用いてデコード処理を行う。ここでキャッシュされる、或いはキャッシュされているタイル画像データ群は、パース補正前のデータであるので、パース補正のパラメータが変更された場合においても、そのまま再利用可能である。ステップS806において、CPU104は、デコード処理後のタイル画像データ群に対してパース補正を実行する。ステップS807において、CPU104は、ズームスライダ204によって指定された表示倍率でパース補正後のタイル画像データ群を拡大する。ステップS809において、CPU104は、拡大処理後のタイル画像データ群を表示し、処理を終了する。
【0024】
本実施形態においては、タイル画像データの端において必要な重複領域を取ることにより、キャッシュの有効性を確保しつつ、メモリの消費を抑え、且つ、高速なパース補正処理を実施することができる。
【0025】
上記実施形態では、パース補正についてのみ言及しているが、本手法はパース補正のみでなく、画像変形処理の全般に適用可能である。画像変形処理としては、例えばレンズ収差補正処理等が挙げられる。また、上記実施形態では、タイル画像データを表示する際に拡大することについてのみ説明したが、画像拡大処理及び画像縮小処理の何れでも対応することが可能である。また、上記実施形態では、矩形領域にタイル画像データを生成する手法について記載したが、矩形領域以外でも対応可能である。また、上記実施形態では、パース補正処理と画像データの拡大又は縮小処理における2回の補間処理についてのみ説明しているが、さらに多くの補間処理が行われる場合においても対応可能である。
【0026】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
分割された画像データの変形処理を行う変形手段を有する画像処理装置であって、
前記変形手段による変形処理に応じた重複領域を設定する設定手段と、
前記設定手段により設定された前記重複領域を加味したサイズで前記画像データを分割する分割手段とを有し、
前記変形手段は、前記重複領域を加味したサイズで分割された画像データに対して複数回の変形処理を実行することを特徴とする画像処理装置。
【請求項2】
前記変形手段は、パース補正処理、レンズ収差補正処理、画像拡大処理及び画像縮小処理のうちの少なくとも何れかを含むことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記変形手段は、前記分割された画像データに対してパース補正処理を実行し、前記パース補正処理は、被写体の正面に設置された仮想カメラ装置で撮像される画像データを再現することにより実行されることを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記分割手段は、前記画像データをタイル状に分割することを特徴とする請求項1乃至3の何れか1項に記載の画像処理装置。
【請求項5】
分割された画像データの変形処理を行う変形ステップを有する画像処理方法であって、
前記変形ステップによる変形処理に応じた重複領域を設定する設定ステップと、
前記設定ステップにより設定された前記重複領域を加味したサイズで前記画像データを分割する分割ステップとを有し、
前記変形ステップは、前記重複領域を加味したサイズで分割された画像データに対して複数回の変形処理を実行することを特徴とする画像処理方法。
【請求項6】
分割された画像データの変形処理を行う変形ステップを有する画像処理方法をコンピュータに実行させるためのプログラムであって、
前記変形ステップによる変形処理に応じた重複領域を設定する設定ステップと、
前記設定ステップにより設定された前記重複領域を加味したサイズで前記画像データを分割する分割ステップとをコンピュータに実行させ、
前記変形ステップは、前記重複領域を加味したサイズで分割された画像データに対して複数回の変形処理を実行することを特徴とするプログラム。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図2C】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−120035(P2012−120035A)
【公開日】平成24年6月21日(2012.6.21)
【国際特許分類】
【出願番号】特願2010−269556(P2010−269556)
【出願日】平成22年12月2日(2010.12.2)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】