(57)【要約】【課題】  高速かつ高精度な画像変換処理を少ないデータ量のパラメータで実現する。【解決手段】  画像を変換する画像処理装置に、変換後の座標系の格子点に対して変換前の座標系の対応する座標値を保持する保持手段と、変換後の画像の着目画素に対して近傍の格子点を選択する選択手段と、選択された前記格子点に対応する変換前の座標値を前記保持手段から参照して、前記着目画素の変換前の座標値を算出する算出手段と、変換前の画像において算出された前記座標値の画素値を、前記変換後の画像の着目画素の画素値として出力する出力手段とを備える。【選択図】  図１
2017191572.tif 000002
【特許請求の範囲】
【請求項１】
画像を変換する画像処理装置であって、
変換後の座標系の格子点に対して変換前の座標系の対応する座標値を保持する保持手段と、
変換後の画像の着目画素に対して近傍の格子点を選択する選択手段と、
選択された前記格子点に対応する変換前の座標値を前記保持手段から参照して、前記着目画素の変換前の座標値を算出する算出手段と、
変換前の画像において算出された前記座標値の画素値を、前記変換後の画像の着目画素の画素値として出力する出力手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記算出手段は、射影変換を用いて、選択された前記格子点に対応する変換前の座標値から前記着目画素の変換前の座標値を算出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記射影変換は平面射影変換であることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記算出手段は、選択された前記格子点に対応する変換前の座標値から逆変換行列を算出し、該逆変換行列を用いて前記着目画素の変換前の座標値を算出することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記算出手段は、前記逆変換行列の射影変換の成分とアフィン変換の成分とを算出することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記算出手段は、前記逆変換行列はホモグラフィ行列であることを特徴とする請求項４に記載の画像処理装置。
【請求項７】
前記算出手段は、複数の前記格子点を結んだベクトルを算出し、該ベクトルを用いて前記ホモグラフィ行列を算出することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記算出手段は、複数の前記ベクトルの外積を算出し、該外積を用いて前記ホモグラフィ行列を算出することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記保持手段は、前記格子点に対して前記ホモグラフィ行列の一部の成分を保持し、前記算出手段は、前記格子点に対応する変換前の座標値と該格子点に対して保持された成分とを用いて前記ホモグラフィ行列を算出することを特徴とする請求項６に記載の画像処理装置。
【請求項１０】
前記保持手段は、前記成分を整数部分を持たない固定小数の形式で保持することを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記選択手段は、前記着目画素に対して縦横に隣接した４つの格子点を選択することを特徴とする請求項９に記載の画像処理装置。
【請求項１２】
画像を変換する画像処理方法であって、
画像を入力する入力工程と、
変換後の画像の着目画素に対して近傍の格子点を選択する選択工程と、
変換後の座標系の格子点に対して変換前の座標系の対応する座標値を保持する保持手段から、選択された前記格子点に対応する変換前の座標値を参照して、前記着目画素の変換前の座標値を算出する算出工程と、
変換前の画像において算出された前記座標値の画素値を、前記変換後の画像の着目画素の画素値として出力する出力工程と
を備えることを特徴とする画像処理方法。
【請求項１３】
コンピュータを請求項１乃至１１のいずれか１項に記載の画像処理装置の各手段として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラ、プリンタ、プロジェクタ等で行われる画像変形処理に関するものである。画像変形処理の具体的な例としては、拡大縮小等のスケーリング処理、回転等のアフィン変形処理、キーストーン（台形）補正処理、樽型歪曲補正処理、糸巻き型歪曲補正処理などが挙げられる。
【背景技術】
【０００２】
画像処理装置においては、画像変形処理が必要とされる場合が多々ある。例えばプロジェクター製品においてはキーストーン（台形）補正処理と呼ばれる画像変形処理が行われている。この他にも、画像・映像処理の分野では種々の画像変形処理が必要とされている。具体的には拡大縮小等のスケーリング、回転等のアフィン変形、レンズ歪み補正、樽型歪曲補正、糸巻き型歪曲補正、プロジェクターで円柱・角柱に投影した時の歪み補正等の種々の変形処理が要求されている。いずれの用途においても、画像変形処理は変形前後の座標の変換によって実現される。一般的に、座標の変換は計算のしやすさのために、変形後の座標を変形前の座標に変換することで行われる。
【０００３】
これを実現する方法として、例えば特許文献１に記載の方法がある。この方法では変形後の座標系を格子状に分割し、それぞれの格子の頂点が変形前の座標系のどの座標に対応するかという情報を算出する。この処理は用途に応じて計算方法が異なり、例えばプロジェクターに適用されるキーストーン補正であれば、プロジェクターの筐体の設置角度に基づいて、変形前後の格子の頂点の対応関係を算出する方法が知られている。この他にも用途に応じて種々の計算方法が知られているが、本説明では説明は省略する。
【０００４】
次に上述の処理によって得られた、変形前後の座標系における格子の頂点の対応関係をもとにして、各頂点以外の座標を変形後の座標から変形前の座標に変換する。具体的には変形後の格子の４点の座標と変形後の４点の座標を入力として、任意の変形後の座標に対応する変形前の座標を線形補間して算出する方法が、特許文献１の図４にて開示されている。この方法によれば、線形補間の演算量が少ないためにハードウエア実装が可能となり、高速な処理が実現できる。
【０００５】
ところで変形処理によって補正すべき歪みは、例えばカメラであれば被写体とセンサの法線の角度、またはプロジェクターであればレンズの光軸とスクリーン面の角度によって生じる射影歪みである。これに対し、特許文献１の方法では格子の内部は線形補間によって座標を算出するため、射影面の座標を線形に算出することとなり、座標の精度に誤差が生じる。
【０００６】
一方、非特許文献１では格子内の補間演算を射影変換により算出するソフトウエアの処理方法が開示されている。具体的には変形後の座標を変形前の座標に変換するためのホモグラフィ行列と呼ばれるパラメータを算出し、次にホモグラフィ行列と変形後の座標を入力として変形前の座標を射影変換により算出する。この方法によって前記歪み補正等の高精度化を実現し、ホモグラフィ行列による座標補間の有効性を示している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第４６５７３６７号公報
【非特許文献】
【０００８】
【非特許文献１】パソコンとのシステム連携によるプロジェクターの機能向上の実現  ＮＥＣ技報  ６４（３），８０−８３，２０１１−０８
【発明の概要】
【発明が解決しようとする課題】
【０００９】
画像・映像処理では種々の変形に対応した高速かつ高精度な画像変形処理が要求されている。高速化のためには特許文献１のように、各々の処理に特化した専用ハードウエアを実装する方法が一般的である。しかし特許文献１の方法では背景技術に記載のとおり、座標の精度に誤差が生じる。仮に、非特許文献１の方法を適用し、格子ごとにホモグラフィ行列を保持して射影変換により座標を算出する方法を考えた場合、非特許文献１の効果のとおり、座標の演算精度は向上する。
【００１０】
しかしこの方法ではソフトウエアからハードウエアに設定するホモグラフィ行列のデータ量が増大するという課題がある。具体的には１つの格子の変形に相当するホモグラフィ行列は３行３列成分が固定値（例えば１．０）の３×３行列で表現できるので、８つのパラメータから成る。座標変換の精度を保証するためには、各パラメータの精度および格子の間隔を一定以上密にする必要があるが、個々の格子ごとにホモグラフィ行列に相当する８つのパラメータを持つ必要があり、結果的に必要とされるパラメータのデータ量は増大する。
【００１１】
本発明は、上述の課題を解決するために、種々の変形に対応した高速かつ高精度な画像変形処理を実現することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の１態様によれば、画像を変換する画像処理装置に、変換後の座標系の格子点に対して変換前の座標系の対応する座標値を保持する保持手段と、変換後の画像の着目画素に対して近傍の格子点を選択する選択手段と、選択された前記格子点に対応する変換前の座標値を前記保持手段から参照して、前記着目画素の変換前の座標値を算出する算出手段と、変換前の画像において算出された前記座標値の画素値を、前記変換後の画像の着目画素の画素値として出力する出力手段とを備える。
【発明の効果】
【００１３】
本発明によれば、種々の変形に対応した高速かつ高精度な画像変換処理を、少ないデータ量のパラメータで実現することができる。
【図面の簡単な説明】
【００１４】
【図１】画像変形処理を行った際の変形前後での座標の対応関係を示す図である。
【図２】実施形態１における処理を説明する図である。
【図３】実施形態２における処理を説明する図である。
【図４】実施形態３における処理を説明する図である。
【図５】実施形態における画像処理装置の機能構成を示すブロック図である。
【図６】実施形態における画像処理装置のハードウェア構成を示すブロック図である。
【図７】第１の実施形態における処理手順を示すフローチャートである。
【図８】第１の実施形態における処理手順を示すフローチャートである。
【図９】第１の実施形態における処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照しながら本発明の実施形態について詳細に説明する。
【００１６】
（第１の実施形態）
図５は、本実施形態における画像処理装置の機能構成を示すブロック図である。画像入力部５０１は、撮像装置などから画像データを入力する。画像変形処理部は、データ保持部５０３に保持されたパラメータやテーブルなどを使用して、入力された画像データに変形処理を施す。画像出力部５０４は、変形後の画像データを表示装置や印刷装置等に出力する。画像入力部５０１及び画像出力部５０４は、ネットワークなどを介して他の装置と画像データを送受信するものでもよい。
【００１７】
図６は、本実施形態における画像処理装置のハードウェア構成を示すブロック図である。同図において、ＣＰＵ６０１は、バス６０６を介して接続する各デバイスを統括的に制御する。ＣＰＵ６０１は、読み出し専用メモリ（ＲＯＭ）６０２に記憶された処理ステップやプログラムを読み出して実行する。オペレーティングシステム（ＯＳ）をはじめ、本実施形態に係る各処理プログラム、デバイスドライバ等はＲＯＭ６０２に記憶されており、ランダムアクセスメモリ（ＲＡＭ）６０３に一時記憶され、ＣＰＵ６０１によって適宜実行される。また、ＲＡＭ６０３は、各種データの一時保存領域として用いることができる。特に、後述する画像変形処理において参照するパラメータやテーブルを記憶するメモリとしては、ＳＲＡＭが好適である。また、入力Ｉ／Ｆ６０４は、外部の装置（表示装置や操作装置など）から画像処理装置で処理可能な形式で入力信号を入力する。また、出力Ｉ／Ｆ６０５は、外部の装置（表示装置など）へその装置が処理可能な形式で出力信号を出力する。
【００１８】
第１の実施形態における具体的な処理を説明する。図１は、画像変形処理を行った際の変形（変換）前後での座標の対応関係を示している。変形前の座標系１００は、変形前の画像の存在する座標系である。変形前（変換前）の画像とは画像変形処理にとって入力となる画像である。これに対し変形後（変換後）の座標系１０３は、前述の入力画像に変形処理を適用した後の座標系である。画像変形処理は、大まかには、変形後の座標系１０３の各画素値を、それぞれの画素に対応する変形前の座標系１００の座標の近傍の画素を取得して補間演算することで実現できる。画素の取得および補間演算の処理は、例えばバイリニア補間やバイキュービック補間等の処理が公知である。
【００１９】
変形前の座標系１００の画像を変形後の座標系１０３へ変形するためには、変形後の座標系１０３を基準にした方が処理が簡易になるため、本実施形態では変形後の座標系１０３を矩形状の格子に分割して処理する方法を説明する。具体的には、変形後の座標系を格子状に分割し、各格子の頂点を変形後の座標系における格子点１０４とする。これに対し、変形後の座標系における格子点１０４のそれぞれに、変形前の座標系１００において対応する点の座標値を変形前の座標系における格子点１０１とする。変形後の座標系における格子点１０４は格子の間隔と基準座標から予め決められる情報である。同様に、変形前の座標系における格子点１０１も任意の変形種別に応じて予め与えられる情報であるとする。
【００２０】
一方、変形後の座標系における着目画素（ｘ＿ｄｓｔ，ｙ＿ｄｓｔ）１０５に対し、変形前の座標系１００において対応する点を変形前の座標系における着目画素（ｘ＿ｓｒｃ，ｙ＿ｓｒｃ）１０２とする。本実施形態の目的は、変形後の座標系における着目画素（ｘ＿ｄｓｔ，ｙ＿ｄｓｔ）１０５を変形前の座標系における着目画素（ｘ＿ｓｒｃ，ｙ＿ｓｒｃ）１０２に変換することである。
【００２１】
次に、具体的な実施形態を説明する。図２は第１の実施形態における処理を説明する図であり、図７は、その処理手順を示すフローチャートである。画像変形処理は変形後の座標系２０７における各画素を変形前の座標系２０６の画素に、順次変換することで行われる。この変換処理は、まず、変換対象である、変形後の座標系における着目画素（ｘ＿ｄｓｔ，ｙ＿ｄｓｔ）の指定（２００）を行う（Ｓ７０１）。この指定順序は、変形後の座標系２０７において、例えばラスタ順序にスキャンすることで行われる。具体的には原点（０，０）からＸ軸方向に１ずつインクリメントし、画像幅に達したところでｘを０に初期化し、ｙを１インクリメントして１つの画像を走査する方法である。
【００２２】
次に、着目画素（ｘ＿ｄｓｔ，ｙ＿ｄｓｔ）を包含する格子点として、変形後の座標系において縦横に隣接する４つの格子点（ｘ＿ｄｓｔ０，ｙ＿ｄｓｔ０）〜（ｘ＿ｄｓｔ３，ｙ＿ｄｓｔ３）の選択（２０１）を行う（Ｓ７０２）。格子の形状を正方形とし、間隔をＧＲＩＤ＿ＩＮＴＥＲＶＡＬとすると、これらの処理は以下の式で行われる。なお下記の式で％は剰余計算を意味するものとする。
【００２３】
【数１】
2017191572.tif 000003
次に、変形後の座標系における４つの格子点（ｘ＿ｄｓｔ０，ｙ＿ｄｓｔ０）〜（ｘ＿ｄｓｔ３，ｙ＿ｄｓｔ３）に対応する（ｘ＿ｓｒｃ０，ｙ＿ｓｒｃ０）〜（ｘ＿ｓｒｃ３，ｙ＿ｓｒｃ３）の取得（２０２）を行う（Ｓ７０３）。この処理は、変形後の座標系における各格子点に対して、変形前の座標系における格子点の情報を対応付けたテーブルを予めメモリ上に格納しておき、参照することで実現される。
【００２４】
こうして得られた、（ｘ＿ｄｓｔ０，ｙ＿ｄｓｔ０）〜（ｘ＿ｄｓｔ３，ｙ＿ｄｓｔ３）と（ｘ＿ｓｒｃ０，ｙ＿ｓｒｃ０）〜（ｘ＿ｓｒｃ３，ｙ＿ｓｒｃ３）から逆変換行列Ｍを算出（２０３）する（Ｓ７０４）。まず逆変換行列Ｍを以下の様に定義するホモグラフィ行列とする。
【００２５】
【数２】
2017191572.tif 000004
こうすると、（ｘ＿ｄｓｔ０，ｙ＿ｄｓｔ０）と（ｘ＿ｓｒｃ０，ｙ＿ｓｒｃ０）は平面射影変換と呼ばれる射影変換の式によって関係づけられるので、以下の式が成り立つ。
【００２６】
【数３】
2017191572.tif 000005
４つの格子点のｘ，ｙの対に対して同様に８つの関係式が成り立ち、これらの式を８元連立方程式として解くことで逆変換行列Ｍのパラメータ（＝ａ〜ｈ）を得ることが出来る。
【００２７】
以上で逆変換に必要な情報が揃ったので、逆変換行列Ｍと変形後の座標系における着目画素（ｘ＿ｄｓｔ，ｙ＿ｄｓｔ）から変形前の座標系における着目画素（ｘ＿ｓｒｃ，ｙ＿ｓｒｃ）を算出する（２０４、Ｓ７０５）。この処理は以下の式で行われる。
【００２８】
【数４】
2017191572.tif 000006
上述のようにして、変形前の座標系における着目画素（ｘ＿ｓｒｃ，ｙ＿ｓｒｃ）２０５の座標を得ることが出来る。この処理を変形後の座標系２０７の各座標に対して実行し、変形後の各座標の画素値を変形前の対応する座標の画素値とすることで画像変形処理を行う。
【００２９】
本実施形態によれば、種々の変形に対応した高速かつ高精度な画像変形処理を、従来より少ないパラメータのデータ量で実現することができる。
【００３０】
具体的には、上述した非特許文献１の技術では、１つの格子点あたり８つのパラメータを必要としていたのに対し、本実施形態では、２つのパラメータ（各格子点の変形前のｘ、ｙ座標）でこの目的を達成する。これらのパラメータは意味合いが異なるので直接の比較は出来ないが、仮に各パラメータを単精度浮動小数で表現すると仮定すると、従来比１／４のデータ量に削減できる。
【００３１】
（第２の実施形態）
次に、第２の実施形態を説明する。図３は第２の実施形態における処理を説明する図であり、図８は、その処理手順を示すフローチャートである。図３における３００〜３０２の処理（図８におけるＳ８０１〜８０３）は、図２の２００〜２０２の処理（図７におけるＳ７０１〜７０３）と同じであるため説明を省略する。次に、（ｘ＿ｓｒｃ０，ｙ＿ｓｒｃ０）〜（ｘ＿ｓｒｃ３，ｙ＿ｓｒｃ３）から逆変換行列の射影変換の成分Ｍｐｅｒｓｐｅｃｔｉｖｅと逆変換行列のアフィン変換の成分Ｍａｆｆｉｎｅを算出する（３０３、Ｓ８０４）。この処理は以下の式で表される。
【００３２】
【数５】
2017191572.tif 000007
ここで逆変換行列Ｍは、Ｍ＝Ｍａｆｆｉｎｅ＊Ｍｐｅｒｓｐｅｃｔｉｖｅという関係がある。
【００３３】
次に、逆変換行列Ｍｐｅｒｓｐｅｃｔｉｖｅと、Ｍａｆｆｉｎｅと変形後の座標系における着目画素（ｘ＿ｄｓｔ，ｙ＿ｄｓｔ）から変形前の座標系における着目画素（ｘ＿ｓｒｃ，ｙ＿ｓｒｃ）を算出する（３０４、Ｓ８０５）。この処理は以下の式で実現する。逆変換行列をＭｐｅｒｓｐｅｃｔｉｖｅと、Ｍａｆｆｉｎｅの２つに分離して計算を行うことで、同じ機能を実現する２０４の処理に対し、計算量を低減することが出来る。
【００３４】
【数６】
2017191572.tif 000008
（第３実施形態）
次に、第３の実施形態を説明する。図４は第３の実施形態における処理を説明する図であり、図９は、その処理手順を示すフローチャートである。図４における４００〜４０２の処理（図９におけるＳ９０１〜９０３）は、図２の２００〜２０２の処理（図７におけるＳ７０１〜７０３）と同じであるため説明を省略する。次に、（ｘ＿ｓｒｃ０，ｙ＿ｓｒｃ０）〜（ｘ＿ｓｒｃ３，ｙ＿ｓｒｃ３）から各ベクトルを算出する（４０３、Ｓ９０４）。この処理は以下の式で表される。これらのベクトルの向きはそれぞれ４０３に図示の向きである。
【００３５】
【数７】
2017191572.tif 000009
次に、各ベクトルから逆変換行列Ｍを算出する（４０４、Ｓ９０５）。この処理は以下の式で表される。４０５の処理（Ｓ９０６）は図２の２０４と同じであり、説明は省略する。なお、以下の式において∧は外積を意味する。
【００３６】
【数８】
2017191572.tif 000010
（第４の実施形態）
次に、第３の実施形態をもとに第４の実施形態を説明する。本実施形態の構成は、第３実施形態におけるｇ，ｈのデータを予め計算して格子点ごとに値を保持する。この様にすることで、除算の必要なｇ，ｈ成分の計算をソフトウエアで実装することがでる。除算を専用回路を用いてハードウエアで実装した場合は回路規模が増大するが、ソフトウエアで実装した場合にはＣＰＵ６０１に持っている除算演算を共用でき、回路規模を削減することが出来る。
【００３７】
ｇ，ｈ成分のデータを格子点ごとに保持すると、１つの格子点あたりに保持すべきパラメータの数は（ｓｒｃ＿ｘ，ｓｒｃ＿ｙ）の座標のデータに加え、新たにｇ，ｈ成分の２つのデータを保持する必要がある。これはパラメータの数としては２倍に増えるが、ｇ，ｈの取りえる値は通常小数点以下の小さな値なので、整数部分を持たない固定小数の形式で表現でき、結果として保持すべきデータ量は２倍にまでは増加しない。一例としては、座標データを３２ｂｉｔ（＝符号１ｂｉｔ、整数１６ｂｉｔ、小数１５ｂｉｔ）で保持し、ｇ，ｈ成分を１６ｂｉｔ（＝符号１ｂｉｔ、小数１５ｂｉｔ）で保持したとする。このとき保持すべきデータ量は実施形態３が６４ｂｉｔ（＝３２ｂｉｔ×２）に対し、実施形態４は９６ｂｉｔ（＝３２ｂｉｔ×２＋１６ｂｉｔ×２）となり、２倍までは増加せず、１．５倍（＝９６／６４）の増加で実施形態４を実現できる。
【００３８】
以上の第１〜４実施形態は、変形後の座標を矩形状に分割して格子を構成する場合を説明したが、これとは逆に変形前の座標を矩形状に分割して格子を構成しても良い。
【００３９】
以上説明した実施形態によれば、種々の変形に対応した高速かつ高精度な画像変形処理を、より少ないデータ量のパラメータで実現することができる。
【００４０】
（その他の実施形態）
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、コンピュータ読み取り可能なプログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００４１】
更に、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したコンピュータプログラムである。
【００４２】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどとの協働で実施形態の機能が実現されてもよい。この場合、ＯＳなどが、実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【符号の説明】
【００４３】
５０１  画像入力部
５０２  画像変形処理部
５０３  データ保持部
５０４  画像出力部
【図１】
2017191572.tif 000011
【図２】
2017191572.tif 000012
【図３】
2017191572.tif 000013
【図４】
2017191572.tif 000014
【図５】
2017191572.tif 000015
【図６】
2017191572.tif 000016
【図７】
2017191572.tif 000017
【図８】
2017191572.tif 000018
【図９】
2017191572.tif 000019