(57)【特許請求の範囲】
【請求項１】
レンズと撮像素子を含み、被写体を撮像するカメラと、
前記カメラで撮像した画像をもとに特定の領域が広く見えるように、前記特定の領域の画像をｎ次式で拡大処理した第１の画像を取得する信号処理部と、
前記カメラによって複数の向きの方眼画像を取得する方眼画像取得手段と、
前記方眼画像の格子点を取得し、取得した複数の格子点を用いて、前記信号処理部からの前記第１の画像をｎ次式で引き伸ばし補正する歪補正手段と、
前記歪補正手段によって補正した画像を表示する表示部と、
を具備する画像処理装置。
【請求項２】
前記方眼画像取得手段は、前記方眼画像を前記表示部に表示したときに、方眼の線が表示画像の表示範囲の境界に対して斜めになる方眼画像を取得することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記歪補正手段は、
前記方眼画像の前記表示範囲の外側の格子点を予測する予測手段と、
前記予測した格子点を用いて前記方眼画像の端のルックアップテーブルを補正する補正手段と、
前記複数の向きの補正したルックアップテーブルをもとに前記カメラの視点を特定する視点特定手段と、
前記特定した視点に対して、予め設定した向きに対応配置した複数のルックアップテーブルと、を備え、
前記複数のルックアップテーブルを用いて見たい方向の前記第１の画像の歪を補正することを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記予測手段は、前記複数の向きの方眼画像を視点変換して、それぞれの複数の向きの方眼画像を同じ向きの画像に変換して格子点を予測することを特徴とする請求項３記載の画像処理装置。
【請求項５】
前記歪補正手段は、前記特定された視点に対して正六面体の位置にそれぞれルックアップテーブルを配置することを特徴とする請求項３記載の画像処理装置。
【請求項６】
レンズと撮像素子を含み、被写体を撮像するカメラを備え、
前記カメラで撮像した画像の特定の領域が広く見えるように、信号処理部で前記特定の領域の画像をｎ次式で拡大処理した第１の画像を取得し、
前記カメラによって複数の向きの方眼画像を取得し、
前記方眼画像の格子点を取得し、取得した複数の格子点を用いて、前記信号処理部からの前記第１の画像をｎ次式で引き伸ばして歪補正し、
前記歪補正した画像を表示部に表示することを特徴とする画像処理方法。
【請求項７】
前記歪補正は、
前記方眼画像の表示範囲の外側の格子点を予測し、
前記予測した格子点を用いて前記方眼画像の端のルックアップテーブルを補正し、
前記複数の向きの補正したルックアップテーブルをもとに前記カメラの視点を特定し、
特定した視点に対して、予め設定した向きに対応して複数のルックアップテーブルを配置し、
前記複数のルックアップテーブルを用いて見たい方向の前記第１の画像の歪を補正することを特徴とする請求項６記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、車載用カメラ、監視用カメラ等に用いられる画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
従来、ＣＣＤカメラ等の撮像装置（カメラ）で被写体を撮像した場合、撮像レンズの歪曲収差特性の影響により画像が歪むことがあった。特に車載用カメラにおいては、広角の撮像範囲を必要とし、魚眼レンズ等が用いられるため画像歪みを生じていた。このため、画像歪みを信号処理によって補正する画像処理装置が提案されている。例えば特許文献１，２参照。
【０００３】
また撮像した画像のうち、必要な領域を拡大して表示したいという要求もあるが、解像度をあげるには全体の情報量が増えるため、情報量を低減しかつ画像歪みを補正できるようにした画像処理装置が必要となる。また曲線のような複雑な歪を正確に補正するのは難しく、さらに画像の端などでは滑らかな補正ができないという不具合があった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−７９２０２号公報
【特許文献２】特開２００７−２８８７２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、必要な領域を高解像度で表示しかつ画像歪みを補正可能な画像処理装置を提供することにある。
【課題を解決するための手段】
【０００６】
実施形態に係る画像処理装置は、レンズと撮像素子を含み、被写体を撮像するカメラと、前記カメラで撮像した画像をもとに特定の領域が広く見えるように、前記特定の領域の画像をｎ次式で拡大処理した第１の画像を取得する信号処理部と、前記カメラによって複数の向きの方眼画像を取得する方眼画像取得手段と、前記方眼画像の格子点を取得し、取得した複数の格子点を用いて、前記信号処理部からの前記第１の画像をｎ次式で引き伸ばし補正する歪補正手段と、前記歪補正手段によって補正した画像を表示する表示部と、を具備する。
【図面の簡単な説明】
【０００７】
【図１】一実施形態に係る画像処理装置の構成を示すブロック図。
【図２】車両へのカメラの配置例を示す平面図。
【図３】車両のカメラで撮影し特定領域を拡大した画像の一例を示す説明図。
【図４】高解像度化したい領域を拡大する一手法を示す説明図。
【図５】画像の引き伸ばし処理の一例を示す説明図。
【図６】画像の引き伸ばし処理の他の例を示す説明図。
【図７】方眼の格子点の取得動作を示す説明図。
【図８】格子点よりｎ次式で画像を引き伸ばす一例を示す説明図。
【図９】４つの格子点の中間を導き出す一例を示す説明図。
【図１０】４つの格子点の中間を導き出す際の動作を示す説明図。
【図１１】格子点の中間を導き出す一例を示す説明図。
【図１２】画像の端の補正に関する３次曲線を示す説明図。
【図１３】画像の端の補正に関する他の３次曲線を示す説明図。
【図１４】正面画像の画像変換処理を示す説明図。
【図１５】上下左右の画像の画像変換例を示す説明図。
【図１６】格子線による格子点位置の予測動作を示す説明図。
【図１７】格子点による格子点位置の予測動作を示す説明図。
【図１８】予測した格子点位置の補正動作を示す説明図。
【図１９】ルックアップテーブル（ＬＵＴ）の視点位置の特定動作の説明図。
【図２０】正面のＬＵＴの向きの補正動作を示す説明図。
【図２１】視点位置の特定の動作を示す説明図。
【図２２】視点位置の特定の他の動作を示す説明図。
【図２３】視点位置の特定のさらに他の動作を示す説明図。
【図２４】視点から面の向きを特定する動作を示す説明図。
【図２５】視点から面の向きを特定する他の動作を示す説明図。
【図２６】無限遠点を使用して視点位置を特定する方法を示す説明図。
【図２７】正六面体にＬＵＴを展開する動作を示す説明図。
【図２８】正六面体にＬＵＴを展開する他の動作を示す説明図。
【図２９】正六面体にＬＵＴ展開するさらに他の動作を示す説明図。
【図３０】ＬＵＴのつなぎ目の補正動作を示す説明図。
【図３１】格納する頂点又はｎ次式の特定動作を示す説明図。
【図３２】格納した頂点又はｎ次式よりの画像の展開動作を示す説明図。
【図３３】正六面体とカメラの位置、画像の展開動作を示す説明図。
【図３４】正六面体に歪み補正結果が展開された状態を示す説明図。
【図３５】正面、上下、左右の画像の歪み補正動作を示す説明図。
【図３６】一実施形態に係る画像処理装置の全体的な動作を示すフローチャート。
【発明を実施するための形態】
【０００８】
以下、発明を実施するための実施形態について図面を参照して詳細に説明する。
【実施例１】
【０００９】
図１は、一実施形態に係る画像処理装置の構成を示すブロック図である。図１の実施形態に係る画像処理装置は、画像処理部１０と、画像認識表示部２０と、前処理部３０と、ユーザインターフェイス（Ｉ／Ｆ）・車両環境部４０を備えている。画像処理部１０は、レンズ１１、撮像素子１２、データ変換部１３、信号処理部１４、画像メモリ１５、画像送信部１６、補正パラメータデコーダ１７、特定領域拡大補正メモリ１８、制御用のマイクロコンピュータ１９（以下、制御マイコン１９という）を含む。
【００１０】
また画像認識表示部２０は、画像受信部２１、信号処理部２２、補正パラメータデコーダ２３、歪み補正メモリ２４、制御マイコン２５、画像認識処理部２６、表示処理部２７を備え、表示処理部２７は表示部２８に接続されている。また前処理部３０は、補正パラメータエンコーダ３１と補正パラメータ導出部３２を含む。
【００１１】
画像処理部１０のレンズ１１は、被写体１００からの反射光を集光して撮像素子１２に写影する。撮像素子１２は、ＣＣＤやＣＭＯＳセンサ等で構成され、写影された映像をキャプチャしアナログ画像信号を生成する。データ変換部１３は、撮像素子１２により生成されたアナログ画像信号をデジタル画像信号に変換する。信号処理部１４は、データ変換部１３、画像メモリ１５、補正パラメータデコーダ１７、制御マイコン１９に接続されている。
【００１２】
信号処理部１４は、制御マイコン１９からのコマンドに応じて、データ変換部１３からのデジタル画像信号を画像メモリ１５に格納するとともに、デジタル画像信号に対する補正処理を実行する。信号処理部１４で補正したデジタル画像信号は、画像送信部１６から画像認識表示部２０の画像受信部２１に転送される。
【００１３】
また補正パラメータデコーダ１７は、制御マイコン１９から供給された情報などに応じて、特定領域拡大補正メモリ１８から供給された補正量パラメータを信号処理部１４に供給する。補正パラメータデコーダ１７の処理においては、特定領域拡大補正メモリ１８に格納された情報が使用される。尚、制御マイコン１９は、ユーザＩ／Ｆ・車両環境部４０からの制御信号に応じて、動作を命令するコマンド等を信号処理部１４に出力する。
【００１４】
特定領域拡大補正メモリ１８は、高解像度化したい領域（特定領域）を引き伸ばして拡大補正するためのｎ次式、及びｎ次式を構成するための頂点を記憶したメモリであり、信号処理部１４は、高解像度が必要な領域を広くすることができる。
【００１５】
画像受信部２１で受信したデジタル画像信号は信号処理部２２に供給される。一方、前処理部３０の補正パラメータ導出部３２は、レンズ１１の歪曲収差に関するデータなどから、全画素の各位置に応じた補正データを予め計算する。補正パラメータエンコーダ３１は補正パラメータ導出部３２に接続され、補正パラメータ導出部３２から供給された補正量パラメータをエンコードして補正パラメータデコーダ２３に供給する。また、補正パラメータエンコーダ３１から供給される補正パラメータ情報は、歪み補正メモリ２４にも格納され、補正パラメータデコーダ２３の処理においては、歪み補正メモリ２４に格納された情報が使用される。
【００１６】
制御マイコン２５は、ユーザＩ／Ｆ・車両環境部４０からの制御信号に応じて、動作を命令するコマンド等を信号処理部２２に出力する。補正パラメータデコーダ２３は、補正パラメータエンコーダ３１、歪み補正メモリ２４，制御マイコン２５及び信号処理部２２に接続され、補正パラメータデコー２３は、制御マイコン２５から供給された情報などに応じて、補正パラメータエンコーダ３１または歪み補正メモリ２４から供給されたエンコードされたデータを各画素に対応した補正量パラメータにデコードし、補正量パラメータを信号処理部２２に供給する。
【００１７】
信号処理部２２により生成された画像信号は、表示処理部２７に供給され、また画像認識処理部２６を介して表示処理部２７に供給される。表示処理部２７は、信号処理部２２または画像認識処理部２６から供給された画像信号を表示部２８に表示する。尚、画像認識表示部２０は、方眼画像取得手段と、画像処理部１０からの歪ませた画像（第１の画像）をｎ次式で引き伸ばし補正する歪補正手段の機能を有する。ユーザＩ／Ｆ・車両環境部４０は、ユーザ操作に応答して、或いは車両環境（車両の現在位置や進行方向等）に応じて制御マイコン１９、２５を制御し、画像の歪み補正の処理等を行う。
【００１８】
次にカメラの配置の一例を、図２を参照して説明する。本実施形態では、車両１に４つのカメラＡ〜Ｄを配置している。図２は、車両１を真上から見た図であり、例えば車両１の前方部にカメラＡを配置し、後方部にカメラＢを配置する。また車両１の左側のサイドミラー等にカメラＣを配置し、右側のサイドミラー等にカメラＤを配置する。
【００１９】
こうして各カメラＡ〜Ｄは、車両１の４辺に配置される。各カメラＡ〜Ｄは、車両１の全周囲を撮影するため魚眼カメラ等の広角カメラにすると良い。尚、以下の説明では、カメラＡを前方カメラ、カメラＢを後方カメラ、カメラＣを左カメラ、カメラＤを右カメラと呼ぶ。またカメラＡ〜Ｄを備えた車両１を自車と呼ぶこともある。
【００２０】
以下、実施形態に係る画像処理装置の動作を説明する。尚、以下の説明では車載用のカメラで撮像した画像を処理する場合について、処理項目別に説明する。
【００２１】
［カメラの用意］車載用のカメラで撮影した車両外部映像を表示部２８（ディスプレイ）に表示するためには、必要な領域の画像をより高解像度で取得できるカメラが必要になる。したがって画像の解像度を上げればよいが、コストが高くなり、データ量が膨大になるため、画像データの転送や処理に時間がかかり現実的ではない。このため、カメラのレンズの歪み方を加工したり、撮影領域によって撮像素子の大きさや形や配置を加工したり、複数の撮像素子を一つの画素として扱ったりすることにより、より高解像度が必要な領域を大きく取得することができる。
【００２２】
例えば、車両１に対して前後左右にカメラＡ〜Ｄを取り付け、前方カメラＡは前方の正面向きに設置し、後方カメラＢは後方の正面向きに設置し、左カメラＣ及び右カメラＤは、それぞれ真下に向けて設置したとすると、一般的には、各カメラＡ〜Ｄからは、図３（ａ）に示すような画像Ａ１，Ｂ１，Ｃ１，Ｄ１が得られる。
【００２３】
本実施形態では、図３（ｂ）に示すように各カメラＡ〜Ｄのレンズの歪み方を加工したり、撮影領域に応じて撮像素子の大きさ、形、配置を加工したりすることにより、撮影した画像をＡ２，Ｂ２，Ｃ２，Ｄ２のように、高解像度が必要な領域を拡大して画像認識表示部２０に転送する。
【００２４】
即ち、前方カメラＡの画像Ａ１のうち真横方向と左上方向(右車線は右上方向)の画像領域を大きくし、画像Ａ２で示すように標識や看板のある方向の領域を拡大する。また後方カメラＢの画像Ｂ１のうち真横方向と真下方向領域を大きくし、画像Ｂ２で示すように地面に書かれた文字等を読み取りやすくする。さらに左カメラＣと右カメラＤの画像Ｃ１，Ｄ１については、それぞれ車体に対して真後ろ方向と、車体に対して前方から横方向の領域を大きくする。
【００２５】
また、高解像度が必要な領域を拡大して極端に歪ませると補正しにくくなるため、大まかに歪ませ、それを後述するｎ次式で引き伸ばすようにしてもよい。例えば後方カメラＢの画像について言えば、図４（ａ）のようなカメラ画像に対して、より高解像度化したい領域ほど頂点（図４の黒点で示す）を細かく配置する。それを後述するｎ次式で引き伸ばすことにより、図４（ｂ）のように高解像度が必要な領域を広くすることができる。
【００２６】
また、状況によって高解像度が必要な領域を変える場合、記憶しておく情報量を少なくするために、特定領域拡大補正メモリ１８に複数のパターンでの頂点のみを保存するか、または頂点から得られるｎ次式、またはｎ次式と頂点の両方を保存しておいて、信号処理部１４で状況に合わせて画像を引き伸ばす計算処理をして転送する画像としてもよい。
【００２７】
引き伸ばす計算処理によって、画素ごとに図５のような座標数と座標とその採用割合をルックアップテーブル（ＬＵＴ:Look Up Table）として保存しておいて、表示する際に簡単な乗算と加算処理だけを行うようにしてもよい。
【００２８】
その場合、採用割合を面積として求めるのではなく、図６のように求めることもできる。図６（ａ）の１画素とする領域Ｓの画像を図６（ｂ）のように変換する場合、領域Ｓの画像をｎ・ｍの領域に分割する。図では横の分割数ｎを４とし、縦の分割数ｍを４としている。
【００２９】
次にｎ・ｍ領域の中心点がどこの座標に一番近いかを特定し、その座標を分割した領域の色情報とする。領域の中心点の求め方は、例えば、一般的な方法である、４つの座標(x, y)(ここでは変換後の座標であるA1,A2,A3,A4)と、座標(X，Y)(ここでは変換前の座標B1,B2,B3,B4)を指定して、下記の式になるようにA,B,C,D,E,F,G,Hの連立方程式を解く。
【００３０】
X = (A・x + B・y + C) ／ (G・x + H・y + 1)
Y = (D・x + E・y + F) ／ (G・x + H・y + 1)
導き出された上記の式により、例えばAijの座標はx方向にi番目(i＝1〜n)、y方向にj番目(i＝1〜m)とすると、（x, y）は、図６（ｂ）のようにA1(0,0)、A2(1,0)、A3(0,1)、A4(1,1)とした場合、下記の式になる。
【００３１】
x＝i／n−1／(2・n)
y＝j／m−1／(2・m)
上記(x, y)を座標変換式に代入し、変換前の座標(X,Y)が求まるので、その値がどこの座標に一番近いかを、整数になるように四捨五入して計算し求める。
【００３２】
その情報を分割した分(ｎ×ｍ)足し合わせて、その個数(ｎ×ｍ個)で割ることにより、その領域の色情報とする。この場合最初に、出した座標をルックアップテーブル（ＬＵＴ）として記録しておき、表示する際に簡単な乗算と加算処理を行うだけにしておいてもよい。また、同じ座標となる場合は、座標の個数をルックアップテーブル（ＬＵＴ）に記録しておき、その個数を乗算してもよい。
【００３３】
このとき計算方法は上記の変換式ではなく、一般的である共１次補間法や、３次たたみこみ補間法や、後述するｎ次式（ここでのｎは分割数ではない）で補完する方法を用いて計算させてもよい。また、変換前のx座標の差が大きい場合は分割数ｎを増やして、差が小さい場合には減らしてもよい。同様にy座標の差によって分割数ｍを変更してもよい。このような場合には、一般的な魚眼レンズのような歪み補正計算方法を用いることができなくなるため、複雑な歪み方をした画像でも補正する必要がある。
【００３４】
以上が画像処理部１０における転送前の処理である。画像処理部１０で処理した画像データは、画像送信部１６から画像認識表示部２０の画像受信部２１に転送される。以下、画像認識処理部２０での画像処理について説明する。
【００３５】
［方眼の格子点の取得］先ず、画像の歪みを補正するために方眼を用意する。即ち、予め用意した方眼（格子状のパターン）を撮像素子１２によって撮影し、方眼画像を取得する。方眼はレンズ１１を通し特定領域を拡大することにより歪曲するため、方眼画像の格子点を図７の（ａ）〜（ｅ）に示す手順で特定する。図７の格子点の特定について、四角で囲った番号１〜１３の手順で説明する。
【００３６】
１．先ず図７（ａ）に示すように方眼画像の格子線１を見つける。例えば、ある一方向にサーチしながら輝度分布に谷ができるところを探す。そして谷の中心を格子線の１点として決定する。その１点を中心として円状に輝度分布を確認すると、２つ谷が見つかるので、どちらかを線方向として決定する。  
２．次に図７（ｂ）で示すように、格子線１に直交する格子線２を見つける。例えば、線方向に対して直角方向（両方）に少しずらし（１）、その位置から線方向に対して少し手前から輝度分布を取得しながら少し線方向に進む（２）。輝度分布に谷ができれば、そこを格子線２と決定する。輝度分布に谷がなければ、線方向に進んだ位置から線方向に向かって直交方向の輝度分布を取得する（３）。輝度分布に谷ができていれば、谷の真ん中を格子線１上の点と仮決定する（４）。格子線がカーブしていることを考慮し、仮決定した点と一つ前の格子点より線方向を更新する（５）。それを繰り返していき格子線２を見つける（６）（７）。  
線方向の両隣を確認する理由は、交差する格子線との角度差があまりない場合、片方は進行する直線と同じに見える可能性があり、もう片方は進行する直線とは同じに見えないためである。また、少し手前から確認する理由は、線が曲がっているため少しずつ線方向を補正しながら確認することになるが、進行する線方向を更新した場合、角度が変わるので交差する格子線の確認の隙間ができるのを防ぐためである。  
３．次に図７（ｃ）で示すように、格子線１上のｎ点（例えば４点）を見つける。この場合、格子線２との交点（格子点）を跨いで見つける。格子点を跨がなくてもよいが、跨いだ方が精度がよくなる。  
４．また図７（ｃ）で示すように、別の交差する格子線２より、ｍ点（例えば４点）を検出する。  
５．格子点と思われる位置から一番近い２点による直線の式(y＝ax+b)を、それぞれの格子線より導き出す。  
６．２つの式により交わる点を特定する（誤差の大きい格子点）。  
７．次に図７（ｄ）で示すように、交わった点が（0,0）になるようにすべての座標をずらす。  
８．格子線１（２でもよい）の２点が真横になるようにすべての座標を(0,0)中心でθ回転させる。回転させる理由は、y＝(xのn-1次式)とx＝(yのm-1次式)にして計算させるためである。例えば、線が(-1,-1)，(0,0)，(1,-1)となっていた場合y＝-x^2と表せるが、x＝(yのｎ次式)とは表せない。そのためxかyは一方の方向に進む必要がある。  
式は例えば次のようになる。  
θ＝atan2(y1-y0,x1-x0)   ((x0,y0)と(x1,y1)の直線の真横に対する角度)
X＝x・cos(θ)＋y・sin(θ)
Y＝−x・sin (θ)＋y・cos (θ)
９．格子線１のｎ個の座標より連立方程式を作成し、加減法を用いて解いて、y＝(xのn-1次式)を作成する。ｎ＝４の場合、
y＝a1・x^3＋b1・x^2＋c1・x＋d1となる。  
１０．格子線２のｍ個の座標よりｘ＝ｙのm-1次式を作成する。ｍ＝４の場合、x＝a2・y^3＋b2・y^2＋c2・y＋d2となる。  
１１．それぞれの式をf1(x,y)＝0,f2(x,y)＝0とし、初期値を(0,0)として非連立方程式(ニュートン法)を用いて解く。  
１２．次に（ｅ）で示すように導き出された解を回転した角度分逆回転させる。  
１３．ずらした位置分、元に戻す。それが解になる。  
［格子点よりｎ次式で画像引き伸ばす］次に検出された格子点をもとに画像を補正するが、近くの４頂点と隣接する頂点でｎ次式の計算式を縦２つ横２つ作り出す。そのときｎ次の計算式を導き出すのにｎ＋１個の格子点が必要になる。
【００３７】
縦の２つのｎ次式と横の２つのｎ次式により、特定したい座標の計算式の一例を図８に示す。図８において、左上の頂点を（0,0）とし、右下の頂点を(1,1)とする。ここでは−ｘ側のｎ次式をg0(y)、＋x側のｎ次式をg1(y)、−y側のｎ次式をf0(x)、＋y側のｎ次式をf1(x)とする。左上の頂点を（0,0）とすると、導き出したい（ａ，ｂ）の座標（頂点）は、特許文献１では以下の計算式にしている。
【００３８】
頂点＝( ((1-b)・f0(a) + b・f1(a)) + ((1-a)・g0(b) + a・g1(b)) )／２
だが、この計算式ではｎ次式が大きく曲がっていた場合、導き出したい座標がずれる。例えば図９のように４つの格子点のちょうど中間を導き出す場合を想定する。図９は、真上から見た画像（左上）を、真横から見た状態（右上）と真下から見た状態（左下）を示している。
【００３９】
図９のように、特許文献１ではちょうど中間の座標を導き出す場合、上下の曲線の関数の中間座標での値の中間値と、左右の曲線の関数の中間座標での値の中間値の、２つの中間値の中間値を導き出す座標（点線円内）となっている。しかしながら、導きたい座標（頂点）は、図９の右上又は左下で示すように点線の交点Ｐである。特許文献１では、上下の曲線の関数と、左右の曲線の関数をそれぞれ独立させて計算しているため、ずれた位置の座標を導き出してしまう。関数が大きく曲がっている場合、導き出したい頂点のずれが大きくなるためである。
【００４０】
以上の問題を解決するために、上下の曲線の関数と、左右の曲線の関数とを関係づけた計算式にする必要がある。関係付ける方法として、比で計算する方法と差で計算する方法がある。
【００４１】
［比で計算する方法］特許文献１での計算式での問題は、例えば、上下の曲線の計算での頂点f0(a),f1(a)を縦の比b:(1−b)で計算してしまっている。縦の比はx＝0上では下記のようになる。
【００４２】
(g0(b)−g0(0))／(g0(1)−g0(0))：(g0(1)−g0(b))／(g0(1)−g0(0)
(＝d0:(1−d0))
また、x＝1上では下記のようになる。
【００４３】
(g1(b)−g1(0))／(g1(1)−g1(0))：(g1(1)−g1(b))／(g1(1)−g1(0))
(＝d1:(1−d1))
格子内では上記のそれぞれの計算式を横での比率のａを使用するが、同様に
ａ：（1−a）とはならない。上記の計算式と同様に、横の比はy＝0上では下記のようになる。
【００４４】
(f0(a)−f0(0))／(f0(1)−f0(0))：(f0(1)−f0(a))／(f0(1)−f0(0))
(＝c0:(1-c0))
また、y＝1上では下記のようになる。
【００４５】
(f1(a)−f1(0))／(f1(1)−f1(0))：(f1(1)−f1(a))／(f1(1)−f1(0))
(＝c1:(1−c1))
それぞれの格子線上での比率を、それぞれ式にも示した通りc0,c1,d0,d1とする。c0,c1,d0,d1は上記の式より導き出しておく。また導きだしたい頂点での比率をＣ(横の比),Ｄ(縦の比)とする。図に示すと図１０のようになる。
【００４６】
図１０のように導き出したい頂点は、
(頂点)＝(1−C)・g0(b)＋C・g1(b)
＝(1−D)・f0(a)＋D・f1(a)
のように、２つの計算式で得られる。また、ＣとＤは、
C＝(1−D)・c0＋D・c1
D＝(1−C)・d0＋C・d1
となり、Ｃの式をＤの式に代入して、
D＝(1−((1−D)・c0＋D・c1))・d0＋((1−D)・c0＋D・c1)・d1、
D＝(d0＋c0・(d1−d0))／(1−(c0−c1)・(d1−d0))
となる。c0,c1,d0,d1は計算できているので、その値でＤを計算し、そのＤを頂点の式に代入し頂点を導き出す。また、Ｃの式を導き出し、Ｃを頂点の式に代入して頂点を導き出してもよい。また、それぞれ頂点の平均を頂点としてもよい。
【００４７】
［差で計算する方法］片方の向かい合う２つの辺（f0とf1又はg0とg1)の頂点を導き出し、その頂点と格子点とのずれ量を交差する側の比で重みづけした加算値（例えば(f0(a)−f0(0))・(1-b)＋(f1(a)−f1(0))・b）を出しておく。次に交差する格子線側では、ずれ量を計算した格子点を通る側の格子線上の頂点を導き出す(例えばg0(b))。そして最後に計算しておいた加算値を加算して頂点としてもよい。このとき、対面側の格子線も計算し、頂点の近さで重みづけする。計算式は下記のようになる。
【００４８】
(頂点)＝((f0(a)−f0(0))・(1−b)＋(f1(a)−f1(0))・b＋g0(b))・(1−a)
＋((f0(a)−f0(1))・(1−b)＋(f1(a)−f1(1))・b＋g1(b))・a
他の方法として、特許文献２のように計算する方法がある。この方法を図１１にて簡単に説明する。図１１で示すように、f0(x)のさらに−y側にf−1(x)、f1(x)のさらに＋y側にf2(x)のｎ次式の曲線を格子点より作成しておく。その式を用いて導き出したい座標を求める。
【００４９】
先ず、求めたい座標の位置を(a, b)とした場合、f−1(a)、f0(a)、f1(a)、f2(a)をそれぞれ求める。そしてその求めた結果を使って４頂点(−1,f−1(a))、(0,f0(a) )、(1,f1(a) )、(2,f2(a) )を作り出し、その頂点より連立方程式を解いてG(y)の式を作り出す。その式にbを入れたG(b)が求めたい座標となる。このとき、４頂点ではなく、もっと増やした場合もある。
【００５０】
上記の拡張として、逆にg0(y)のさらに−x側にg−1(y)、g1(y)のさらに＋x側にg2(y)のｎ次式の曲線を格子点より作成しておき、同様の計算を行ってF(a)を求めて、座標を導き出す方法もある。また、縦で導き出した座標と、横で導き出した座標の平均である(F(a)+G(b))／２を、導き出したい座標とする方法もある。または、３次たたみ込み補完法を用いた方法もある。
【００５１】
特許文献２のような方法や、３次たたみ込み補完法では、求めたい座標に隣接する４つの格子線上の頂点外の頂点、つまり、図１１では(−1,−1),(2,−1),(−1,2),(2,2)が必要となるため、その分計算が増大してしまう。また、特許文献２ではそのつどｎ次式を作成する必要があるため計算量が増大となる問題がある。
【００５２】
比で計算する方法の例外処理として、計算上分母が0(g0(1)＝g0(0), g1(1)＝g1(0), f0(1)＝f0(0), f1(1)＝f1(0))にならないように頂点の位置をずらしておいてもよい。または、差で計算する方法を用いてもよい。または、その時の比はｎ次式で出すのではなく、もともとの座標位置(a 又はb)としてもよい。他の例外処理が必要な場合として、向かい合う辺上の頂点の差の極性が反転、例えば(g0(0)−g0(1))・(g1(0)−g1(1))＜0、または
f0(0)−f0(1))・(f1(0)−f1(1))＜0の場合には、２つの頂点の間で最大や最小になる場合に補正が正しく行われないことがある。
【００５３】
その対策のために、向かい合う辺上の頂点の差の極性が反転する場合には、その差の大きさが小さい方(または両方)のｎ次式が、２つの頂点の間で最大や最小にならないように、頂点の位置を変更、または、ｎ次式を変更(２つの頂点は通るようにする)しておいてもよい。または、交差する格子線側が向かい合う辺上の頂点の差の極性が反転していて２つの頂点の間で最大や最小となるのではないのであれば、先に交差する側のｎ次式による比を出しておき、その比により頂点を導き出してもよい。辺で統一の処理となるようにするのは、隣の格子との連続性を出すためである。
【００５４】
または、比はｎ次式で出すのではなく、差で計算する方法を用いてもよい。また、もともとの座標位置(a又は b)(特許文献１のやり方)としてもよい。また、特許文献２のようなやり方でもよい。
【００５５】
上記のような解決方法により、関数が大きく曲がっていた場合にも、上下の曲線の関数と、左右の曲線の関数とを関係づけた計算式にすることにより、誤差は軽減されることになる。誤差が軽減されるということは、保存する格子点数を少なくできるということでもあり、格子点を検出する際にも計算が軽減される。
【００５６】
［画像の端の補正］次に、画像の端の補正について説明する。特許文献１，２の例においては、画像の端の領域では隣接する格子点はあっても、さらに両隣の２点は存在し得ない。そのため画像の端の領域では大きく歪んでしまう。そこで本実施形態では、補正する領域は画像の端にさらに格子点を１つ余分に用意することにより、必ず隣接する２頂点と両隣の２点の最低４頂点を採用させる。両隣を採用することにより、格子点の曲線が大きく歪んでいても格子線で折れ曲がって見えることはなくなる。
【００５７】
具体的には図１２、図１３を用いて説明する。図１２のように頂点が１から６まで用意されていたとする。例えば、図１２の実線のように２から３の間の座標は、両隣の２と３、さらに大きい方の座標である４と５を使用して３次曲線を作り出す。
【００５８】
次に図１２の点線のように３から４の間の座標は、両隣の３と４、さらに大きい方の座標である５と６を使用して３次曲線を作り出す。この場合、両隣とさらに両隣の頂点は採用していない。この状態で座標を補正させた場合、円Ｑの位置を見ると分かるが、２から３までは実線、３から４までは点線であるため、３のあたりで折れ曲がったように見えてしまう。
【００５９】
本実施形態では、両隣の座標とさらに両隣の座標の最低４点を使用する。そうした場合、図１３のようになる。図１３の実線のように２から３の間の座標は、両隣の２と３、さらに両隣の１と４を使用して３次曲線を作り出す。次に図１３の点線のように３から４の間の座標は、両隣の３と４、さらに両隣の２と５を使用して３次曲線を作り出す。両隣とさらに両隣の最低４点を使用することにより、円Ｑの位置が折れ曲がっているように見えなくなる。こうすることで格子点の位置が大きくずれていても、折れ曲がりが少なくなる。
【００６０】
以上のように隣接する２つの格子点と両隣の２つの格子点の最低４つの格子点を採用することにより、曲線誤差が軽減されることが分かる。よって、隣接する２つの格子点と両隣の２つの格子点の最低４つの格子点が存在しない端の領域は、後述するとおり格子点を格子点や格子線より予測して設定し、隣接する２つの格子点と両隣の２つの格子点の最低４つの格子点を存在させる。または、その格子点では補正せず、違う向きに設置した方眼面での格子点により補正させることを考える。
【００６１】
［正面画像の画像変換］方眼は平面なのでカメラの映像の取得範囲が１８０度以上になる場合には、一つの方眼ではカメラ映像のすべての範囲を歪補正することができない。そのため、カメラに対する方眼の向き位置を変えて設置し、複数の向きの面での補正値を用意する。すべての方向が補正できるようにするには、四面体のように最低４面必要となる。だが、ここでは、重複領域がある程度多い方が正しく補正でき、方眼画像を取得するときに取得する方向が簡単という理由で、四面体ではなく正六面体で補正値の面を用意することにする。
【００６２】
先ず、図１４に示すように、正面の画像を取得し、格子点を検出し、色情報ではなく（ｘ，ｙ）の座標情報（ルックアップテーブル）として展開する。このとき、方眼の端は隣接する格子点の両隣に格子点がないため、誤差の大きい領域である。この領域は極力使わないようにする。
【００６３】
［上下左右画像の画像変換］次に、図１５（ａ）に示すように、上下左右の画像をそれぞれ取得する。先ず、上下左右の画像についてそれぞれ表示範囲外まで方眼を配置する。そのとき、方眼の線が表示範囲の境界と平行や直角ではなく斜めに見えるように配置させる。後述する方眼の線の伸びから格子点を予測するためである。また、違うカメラとの補正領域が重複する部分を多くするために、方眼面を真横や真縦ではなく少しカメラの視点を向くようにしてもよい。
【００６４】
次に図１５（ｂ）のように視点変換する。理由は、向きがそれぞれ上下左右となっているため、正面の方向に向かうほど方眼が小さくなり、格子点を検出しづらくなるためである。計算の場合わけを減らすために、視点変換後の画像は、図１５（ｃ）のように同じような向きの画像になるように変換する。そして図１５（ｄ）のように格子点を見つけてから、元の視点位置に変換する。そうすることにより、方眼の小さい領域も大きくなるため格子点が検出しやすくなる。
【００６５】
尚、格子点を見つけるときの座標の右下方向をｘ座標、左下をｙ座標とし、画像の変換方向を決定する（図１５（ｅ））。そうすることにより、変換後の画像の左上が表示される画像の端と決めることができる。
【００６６】
視点変換は一般的な方法である、４つの元の座標(x, y)と行き先の座標(X, Y)を指定して、下記の式になるようにA,B,C,D,E,F,G,Hの連立方程式を解く。導き出された下記の式により、画像が変換される。
【００６７】
X＝(A・x + B・y + C)／(G・x + H・y + 1)
Y＝(D・x + E・y + F)／(G・x + H・y + 1)
［格子線による格子点位置の予想］次に、表示範囲のすべてを補正できるように、表示範囲外の格子点を予測する。正しく予測するためには、表示範囲の境界付近の画像の歪みの複雑さに対して細かい方眼である必要がある。まず、格子点から線が伸びていて、その先に格子点が特定できていない場合を説明する。
【００６８】
図１６（ａ）のように、格子点から伸びている線があり、その線の先に格子点が見つかっていない線を見つけ、その線の先端の座標を特定する。座標の特定方法は、図７の格子線を伝って交差する格子線を見つける方法と同じだが、見つかる格子線が太すぎる場合は表示範囲外として、そこまでをその線の先端とする。見つけた先端と、その格子線上の手前の格子点を複数個(たとえば２個)選択しておく。
【００６９】
また図１６（ａ）のように、見つけたい格子点に対して、上記の格子線と交差する格子線に対しても同様に、格子線の先端とその手前の格子点複数個(例えば２個)選択しておく。先端がない場合は、見つけたい格子点の手前の格子点の複数個(例えば３個)でもよい。
【００７０】
上記の２つの格子線上の複数の頂点により、格子点を計算させる。計算方法は前述したが、格子点に伸びている格子線上の頂点が、格子点に対して逆側に存在しないため誤差が大きくなる。そのため、最小２乗法などで計算誤差を減らしてもよい。
【００７１】
［格子点による格子点位置の予想］次に、格子点から伸びている線からだけでは、画像の端まで補正しきれない。そのため、図１７（ａ）で示すように、格子点のみから格子点を予測する。さらに予測した格子点からも予測する。予測する際の格子点の選び方は、交差する２つの格子線のほかに、図１７（ｂ）のように、格子線ではなく斜めに進んだ格子点から擬似的な格子線上の格子点を選択してもよい。また、複数斜めにずらした擬似的な格子線上の格子点を選択してもよい。例えば、図１７（ｃ）のように１つ目は縦横に２つずれた格子点を、また２つ目は１つずれた格子点を選択するようにする。
【００７２】
また、格子点をｎ＋１個用意し、xとyのそれぞれの座標に対して、予想したい格子点の隣をX＝１,さらに隣をX＝２と１ポイントずつ増やしていって、Y＝(Xのｎ次式)を作成し、その式でのX＝0での値を予想したい格子点としてもよい。また複数からの方向からの計算結果を平均するなどして誤差を減らしてもよい。
【００７３】
［予測した格子点位置の補正］次に予測した格子点が正しいかを伸びている方眼の線より確認し、正しくない場合は補正する。つまり図１８の四角で囲った番号１〜５の手順で補正する。以下、１〜５の手順を説明する。
【００７４】
１．予測した格子点も含め、隣接する格子点とさらに両隣の最低４頂点により歪補正した状態のx,yの座標を、ルックアップテーブル（ＬＵＴ）として用意する。x,yは画像からはみ出す領域（横幅がｗ,縦幅がｈとした場合ｘ＜０,ｙ＜０、ｘ＞＝ｗ，ｙ＞＝ｈも許容する)も格納しておく。  
２．x,yの座標から読み取った輝度情報を格納したTable(画像)も用意する。黒い領域は表示範囲外であり、点線部は歪のある領域であり、斜線部は隣接する格子点の両隣りに格子点が無く誤差の大きい領域である。  
３．予想の格子点の右隣と下隣に予想ではない格子点がある場合、予想ではない格子点から伸びている２つの格子線の先端が真横・真縦に伸びるようにする。処理方法として、格子線の先端とその先端元となる格子点が作る直線を、右側と下側で両方作り出す。その直線の交わる位置の座標を予想の格子点位置の座標として上書きし、その値を使って再度歪補正を行う。それを繰り返して、真横・真縦になるように補正する。右か下のどちらかの格子点から線が延びていない場合は、そちら側はずれていないと仮定して処理させる。
４．予想の格子点の右隣に予想ではない格子点があり、さらに右隣に予想ではない格子点がある場合、予想ではない格子点同士からなる線分が直線か判定する。例えば、中間の座標の縦の位置がずれていないか確認する。確認してずれている場合は、予想の格子点が線分のずれ方向に対して逆側にずれているからである。そのため、線分が直線になるように、予想の格子点から線分のずれに対して逆側に何倍か(２倍とか)ずらした位置の座標を、予想の格子点位置の座標として上書きし、その値を使って再度歪補正を行う。それを繰り返して、真横になるように補正する。下側も同様に補正する。  
５．上記のように右側の線分を直線にした場合、予想ではない格子点から予想した格子点へ伸びる線が、真横に伸びないことがある。これは、予想した格子点の左側の予想した格子点がずれているためである。そのため、予想ではない格子点から予想した格子点へ伸びる線が、縦にずれた方向に対して逆方向に数倍(３倍とか)、予想ではない格子点の左側の予想ではない格子点の座標からずらした位置の座標を、予想ではない格子点の左側の予想ではない格子点の座標として上書きし、その値を使って再度歪補正を行う。そのとき、左や上の位置から座標を取得するときは、選択できる座標に余裕を持たせるために、その左か上の隣の予想の格子点もずらした位置の座標を取得して補正させる。それを繰り返して、真横になるように歪補正をする。下側も同様に補正する。
【００７５】
上記３、４、５の処理を複数回繰り返し、最後に手動で見ながら補正を行ってもよい。
【００７６】
［それぞれのルックアップテーブル（ＬＵＴ）の位置関係］カメラの位置がＬＵＴに対して特定されるように、方眼に対して決められた位置にカメラを設置することにより、ＬＵＴの視点位置を特定する方法もあるが、後述するように２つのＬＵＴにより視点を特定する方法もある。また、それぞれのＬＵＴの位置関係を決定するためには、カメラ位置だけではなく、相対的な面の向きも特定する必要がある。カメラ位置に関しては相対的に方眼から距離を離せばその分位置精度は高まるが、向きに関しては簡単には決まらない。そのためそれぞれのカメラの向きをＬＵＴより特定する必要があるが、まず２つのＬＵＴにより視点位置を特定する方法を説明する。
【００７７】
［ＬＵＴの視点位置特定］正面と上下左右のそれぞれ単体での格子での補正によるＬＵＴは作成したので、次はそれぞれのＬＵＴの関係性から、ＬＵＴの視点を特定する。格子画像は真横や真縦になるべく配置するが、配置誤差を持っているのでそれを考慮する。ＬＵＴの視点の特定は、視点を決め打ちしてＬＵＴの関係の誤差が少なくなるところに追い込んでいき特定する方法を用いる。
【００７８】
最初にＬＵＴの座標系を決めておく。座標系を図１９のようにする。図１９のような回転方向での計算式は下記のようになる。
【００７９】
ｘ軸中心回転
x’＝x、
y’＝y・cos(α)＋z・sin(α)、
z’＝−y・sin(α) ＋z・cos(α)
ｙ軸中心回転
x’＝x・cos(β)＋z・sin(β)、
y’＝y、
z’＝−x・sin(β)＋z・cos(β)
ｚ軸中心回転
x’＝x・cos(γ)＋y・sin(γ)、
y’＝−x・sin(γ)＋y・cos(γ)、
z’＝z
［正面のルックアップテーブル（ＬＵＴ）の向き補正］正面のＬＵＴは、ｚ＝０の面にし、＋ｚ方向を向かせて配置する。ＬＵＴの座標などにより、正面のＬＵＴの面の向きがずれているとわかっているなら、向きを補正してｚ＝０の面にカメラの座標を展開しておいてもよい。例えば、図２０のように、誤差のない魚眼レンズのカメラを想定した場合、ＬＵＴの中心が決まっていて、中心に対する上下左右の座標のずれも決まっている。
【００８０】
その場合、上下左右の４座標に当てはまる座標が正面のＬＵＴのどこになるかを特定する。その特定方法は、ある点を出発点として、近接する上下左右、左上、右上、左下、右下の８つの座標より、目標点との誤差が一番小さい方へ移動していくことにより目標点を求める。導き出した座標から下記の変換式を導き出し、その座標に入っているカメラの座標を展開させる。
【００８１】
X＝(A・x + B・y + C) / (G・x + H・y + 1)
Y＝(D・x + E・y + F) / (G・x + H・y + 1)
とすることにより、正面のＬＵＴがカメラに対して真正面として使用できる。
【００８２】
［２つのＬＵＴより視点位置の特定(誤差最小での方法)］次に、視点を決め打ちしてＬＵＴの関係の誤差が少なくなるところに追い込んでいき特定する方法を説明する。例えば、図２１に示すように、ＬＵＴ ＧＡをｚ＝０の面に配置する。次に視点を(−1,0,1)とし、視点から見てＬＵＴの右側の真ん中に印ＭＡ(0,0,0)を配置する。その印に対して、真上に印ＭＢ(0,−1,0)、真下に印ＭＣ(0,1,0)があったとする。
【００８３】
図２２のように、別のＬＵＴ ＧＢで適当に３つの印を直線になるように配置し、真ん中をＮＡ、片側をＮＢ、片側をＮＣとする。そうした場合、視点から見てＭＡとＮＡ、ＭＢとＮＢ、ＭＣとＮＣがそれぞれ一致するように、ＬＵＴ ＧＢの面の位置や向きを変えた場合、３つの印を軸としての回転は許された状態でＧＢの面の位置と向きが決定される。
【００８４】
また、図２３のように、ＬＵＴ ＧＢの大きさを縦横同じ比率で変更可能とした場合、ＭＡとＮＡを同じ位置に配置しても、ＬＵＴの大きさを変えることによってＭＢとＮＢ、ＭＣとＮＣが視点から見て同じ位置に見えるにすることができる。このときも３つの印を軸としての回転は許される状態である。
【００８５】
以上の状態より、ＭＡとＮＡを(0,0,0)にしたまま、倍率を戻し、y軸回転してｘ＝０にし、ｘ軸回転してｚ＝０にした状態は、ＮＡ，ＮＢ，ＮＣがｙ軸上に並んだ状態になる。面はＮＡ，ＮＢ，ＮＣを軸として回転が許される状態である。つまり、ｙ軸回転が許されている状態である。３点のほかにｘ＝０とはならない点を用意することにより、そのｙ軸回転の特定を可能とさせる。
【００８６】
以上により、正面のＬＵＴに対して縦に並んだ３点と、ほかに１点を用意し、その４点をほかの向きの面での位置を特定すれば、視点からのその面の向きを特定することができるようになる。つまり、図２４に示すようになる。図２４の四角で囲った番号１〜８の順に説明する。
【００８７】
１．正面のＬＵＴ（ｚ＝０の面としておく）に対して直線に並んだ３点（真ん中のＭＡと、ＭＢ，ＭＣ）と、別に１点(ＭＤ)を用意する。  
２．別向きのＬＵＴ（ｚ＝０の面としておく）での、同じ座標となる３点(ＮＡ，ＮＢ，ＮＣ)と１点(ＮＤ)の位置を特定する。  
３．正面のＬＵＴの直線に並んだ３点の中心の点(ＭＡ)が(0,0,0)となるように平行移動させる。  
４．正面のＬＵＴのＭＢが真上、ＭＣが真下（逆でもよい）になるようにｚ軸回転させる。  
５．別向きのＬＵＴの特定した３点の中心を(0,0,0)となるように平行移動させる。  
６．別向きのＬＵＴの３点が正面のＬＵＴと同じ縦列（上が上、下が下）になるようにｚ軸回転させる。  
７．別向きのＬＵＴの４点を、φ分y軸回転させ、α分x軸回転させ、β分y軸回転させ、座標をＴ倍させる。  
８．視点からの正面のＬＵＴでの４点と、別向きのＬＵＴの４点が一致して見える。つまり、正面のＬＵＴでの位置を補正した点をＭ(mx,my,mz)、別向きのＬＵＴで位置と向きと拡大率を補正した点をＮ(nx,ny,nz)とし、視点をＶ(vx,vy,vz)とすると、
(mx−vx)／(mz−vz)＝（nx−vx）／（nz−vz）…（１）
(my−vy)／(mz−vz)＝（ny−vy）／（nz−vz）…（２）
が成り立つことになる。
【００８８】
以上の計算により、面の向きを特定できる。面の向きを特定する方法は下記１〜５のようになる。
【００８９】
１．別のＬＵＴの３点が正面のＬＵＴと同じ縦列（上が上、下が下）になるようにｚ軸回転まで行った後の座標をＰ(px,py,pz)とする。その座標をφ分y軸回転させ、α分x軸回転させ、β分y軸回転させ、座標をＴ倍させて下記のような式を作成する（ｐｚ＝０）。
nx＝T・(px・cos(φ)・cos(β)−py・sin(α)・sin(β)−px・sin(φ)・cos(α)−sin(β))
ny＝T・(py・cos(α)−px・sin(φ)・sin(α))
nz＝T・(−px・cos(φ)・sin(β)−py・sin(α)・cos(β)−px・sin(φ)・cos(α)・cos(β))
また、縦列の上下２点はpx = 0であるため下記のようになる。
【００９０】
nx = T・(−py・sin(α)・sin(β))
ny = T・(py・cos(α))
nz = T・(−py・sin(α)・cos(β))
２．（１）式に上記の式を代入すると分かるが、βは視点位置から(0,0,0)へのｚに対するxの角度であるため、下記のようになる。
β＝atan2(vx, vz)、(atan2(a,b)は−π〜＋πのbに対するaのタンジェントを返す式)。
３．縦列の上下の２点を（２）式に代入し、T・sin(α)とT・cos(α)の連立方程式を解き、αとＴを求める。  
４．縦列上の点ではない点を（２）式に代入し、決定されたパラメータを代入し、A0・sin(φ) ＋A1・cos(φ)＋A2＝0の式を作成する。  
５．三角関数の合成公式によりφを導き出す。ただし、この頂点は縦の３点に対して同じ方向にあるため、φは−π/2より大きくπ/2より小さい必要がある。また、φは２つ解が得られるが、ＬＵＴの配置上０度に近い値となるため０に近い値の方を選ぶ。三角関数の合成公式は下記のとおりである。  
a・sin(θ)＋b・cos(θ)＝sqrt(a・a＋b・b)・sin(θ+θ0)、
ただし、cos(θ0)＝a／sqrt(a・a＋b・b)、sin(θ0)＝b／sqrt(a・a＋b・b)
a・sin(θ)＋b・cos(θ)＝sqrt(a・a＋b・b)・cos(θ−θ1)
ただし、sin(θ1)＝a／sqrt(a・a＋b・b)、cos(θ1)＝b／sqrt(a・a＋b・b)
以上により、別のＬＵＴの位置と向きと拡大率（視点からの(0,0,0)に対する奥行き）が特定される。
【００９１】
視点を特定することにより、別のＬＵＴの位置と向きと拡大率が特定される。しかし、視点を正しくない位置に設定した場合、ほかに点を設定して視点からの位置を確認すると、ずれた位置に見えることになる。その特性を利用し、仮に視点を設定して４点で調整し、４点に対して相対位置が決められた配置の別の点(ＭＥ)が、どれだけ位置ずれしているか（どれだけ角度がずれているか）の誤差を確認し、誤差が最小となる視点に追い込んでいく。そうすることにより、視点が特定される。そのとき、最初の正面の縦の３点(ＭＡ，ＭＢ，ＭＣ)と他の１点(ＭＤ)と誤差確認用の１点(ＭＥ)の設定位置は、別の画面でも同じ座標が存在する必要がある。
【００９２】
そのため上下左右にＬＵＴがある場合、例えば、図２５のようにＭＡ，ＭＢ，ＭＣ，ＭＤ，ＭＥの位置を、上のＬＵＴ用、下のＬＵＴ用、左のＬＵＴ用、右のＬＵＴ用に設定する。同じ計算式が使用できるように、ＭＡが(0,0,0)でＭＢとＭＣが縦に配置されるようにz軸回転させると同時に、仮に設定する視点も同様な位置ずらしとz軸回転を行う。そして視点を特定するための誤差を計算させる。誤差は正面とは別の向きの４つＬＵＴによる誤差の合計でもよいし、１つのＬＵＴによる誤差で計算してもよい。そうすることにより視点を特定する。
【００９３】
また、精度を出すために、ＭＡ，ＭＢ，ＭＣ，ＭＤ，ＭＥ配置の形を変えず大きさ(距離)を変えて、複数の配置により計算して誤差が一番小さくなる位置を視点としてもよい。このとき、ＬＵＴの配置の大きさが変わるため、その大きさによって誤差を正規化させてもよい。また、複数の座標を設定してそれらの誤差の合計により視点を特定してもよい。また最小２乗法や特異値分解法などを用いてもよい。
【００９４】
［２つのＬＵＴより視点位置の特定（無限遠点での方法）］誤差を最小に追い込んでいく方法では処理に時間がかかる。そのため、別の方法である無限遠点を使用する方法を以下の１〜１０の手順にて説明する。
【００９５】
１．まず、無限遠点を作り出すための座標を設定する。使用するＬＵＴは正面と右側とする。誤差最小での方法と同様に正面のＬＵＴをｚ＝０に配置し、任意の位置の頂点であるＭＡ(0,0,0)を配置し、その真縦に等距離にＭＢ(0,−a,0)、ＭＣ(0,a,0)を配置する。  
２．ＭＡの真横に等距離にＭＤ(−b,0,0)，ＭＥ(b,0,0)を配置する。  
３．正面に設定したそれぞれの頂点(ＭＡ，ＭＢ，ＭＣ，ＭＤ，ＭＥ)と同じとなる座標が、右のＬＵＴでどこの位置になるか導き出す(ＮＡ，ＮＢ，ＮＣ，ＮＤ，ＮＥ)。このときＮＡは、ＮＢとＮＣからなる直線と、ＮＤとＮＥからなる直線の交点としてもよい。  
４．ＮＡが(0,0,0)、ＮＢが真上(0,負の数,0)となるように右のＬＵＴを移動、回転する。  
５．図２６のようにそれぞれの座標位置を導き出す。  
NBとNEからなる直線と、NCとNDからなる直線との交点OAの位置を導き出す。NBとNDからなる直線と、NCとNEからなる直線との交点OBの位置を導き出す。OAとOBからなる直線と、NBとNCからなる直線との交点OCの位置を導き出す。OAとOBからなる直線と、NDとNEからなる直線との交点ODの位置を導き出す。  
６．誤差最小と同様な回転、倍率変更を下記のように処理方法を用意する。座標をP(px,py,pz)とする。その座標をφ分y軸回転させ、α分x軸回転させ、β分y軸回転させ、座標をＴ倍させて下記のような式を作成する（ｐｚ＝０）。
【００９６】
nx＝T・(px・cos(φ)・cos(β)−py・sin(α)・sin(β)−px・sin(φ)・cos(α)・sin(β))
ny＝T・(py・cos(α)−px・sin(φ)・sin(α))
nz ＝T・(-px・cos(φ)・sin(β)−py・sin(α)・cos(β)−px・sin(φ)・cos(α)・cos(β))
また、縦列の上下２点はｐｘ＝０であるため下記のようになる。  
nx＝T・(−py・sin(α)・sin(β))、
ny＝T・(py・cos(α))、
nz＝T・(−py・sin(α)・cos(β))
７．上記のような回転倍率変更処理をしたOCのx座標が視点のx座標となり、同様の処理をしたODのy座標が視点のy座標となる。正面のＬＵＴではＭＢとＭＥからなる直線と、ＭＣとＭＤからなる直線は平行であるため、その２直線の交点は存在しない。だが、面の向きが違う右のＬＵＴでは平行とならず１点に収束する。それが無限遠点となり、視点の位置になる。ＯＣの座標を(0,OCy,0),ＯＤの座標を(ODx, ODy,0)とすると、視点Ｖ(vx,vy,vz)は、
vx＝T・(−OCy・sin(α)・sin(β))、
vy＝T・(ODy・cos(α)−ODx・sin(φ)・sin(α))、
vz＝T・(−Cy・sin(α)・cos(β))
となる。  
８．視点からのy座標が同じに見えるため、
(my−vy)／(mz−vz)＝(ny−vy)／(nz−vz)より、
ny, nz, vy, vzを代入して、ＮＢとＮＣが該当するようにpx=0とすると下記の式が得られる。
【００９７】
(OCy−ODy)・py・T・cos(α)＋py・ODx・T・sin(φ)・sin(α)＝(OCy−py)・my
ＮＢ（ＭＢ）とＮＣ（ＭＣ）の座標を代入し、T・cos(α)とT・sin(φ)・sin(α)の連立方程式を解く。得られた解によりvyが導き出される。  
９．上記のやり方ではＭＡ，ＭＢ，ＭＣがＮＡ，ＮＢ，ＮＣと視点から同じ位置に見え、ＮＢとＮＣからなる直線を軸とした回転がある状態であった。次に、vxを導き出すためにＭＡ，ＭＤ，ＭＥがＮＡ，ＮＤ，ＮＥと視点から同じ位置に見え、ＮＤとＮＥからなる直線を軸とした回転がある状態にする。つまりy軸とx軸を入れ替えた処理をする。  
３までの処理を行った後、ＮＤが真左(負の数,0,0)になるように右のＬＵＴを移動、回転する。次に５と同様にＯＡ，ＯＢ，ＯＣ，ＯＤを導き出す。次に上記の方法とはx軸回転とy軸回転が逆になるが、座標をφ’分x軸回転させ、α’分y軸回転させ、β’分x軸回転させ、座標をＴ’倍させる。その式より、vyを導き出した方法と同様に処理をしてvxを導き出す。  
１０．次に視点のz座標（vz）を導き出すために、前述した誤差が最小となる方法を用いる。  
上記の計算は無限遠点の値が小さくなるように、正面のＬＵＴをある位置を基準に回転や移動をしておいてもよい。その場合、正面のＬＵＴを元の状態で使用する場合には、導き出された視点は、回転させた分や移動させた分を逆に回転、移動する必要がある。  
また、複数のＬＵＴから視点を複数導き出し、平均などして視点を決定してもよい。また、複数の座標を設定してそれらの誤差の合計により視点を特定してもよい。また最小２乗法や特異値分解法などを用いてもよい。
【００９８】
［正六面体にＬＵＴ展開］次に、それぞれのＬＵＴがばらばらに配置されていると計算上扱いづらいため、正六面体の中心に視点を置き、それぞれの面に展開させる。視点位置は(0,0,0)とする。正面のＬＵＴに対しての視点位置が特定できている場合、正面のＬＵＴ以外に対しては視点位置を特定しなくても、下記の変換式を使用することにより正六面体のそれぞれの面にＬＵＴを変換させて貼り付けることができる。
【００９９】
X＝(A・x＋B・y＋C)／(G・x＋H・y＋1)
Y＝(D・x＋E・y＋F)／(G・x＋H・y＋1)
そうした場合、正六面体のそれぞれの面に貼り付けた変換後のＬＵＴに対しては、それぞれの面に対する視点位置は特定されることになる。
【０１００】
具体的な貼り付け方法として、図２７のように、正面のＬＵＴは回転させていないので、視点のx座標,y座標を中心として、視点から正面のＬＵＴまでの距離をaとした場合、２ａの高さと幅が、正六面体の面になるように大きさを変更してz＝−aの面に張り付ける。このとき、正六面体の面より広く展開する。
【０１０１】
次に、図２８のように、別向きのＬＵＴを貼り付ける。例として別向きのＬＵＴを右のＬＵＴとする。右のＬＵＴの移動と回転と拡大率を変更したものを、視点からの角度から正六面体の右側（x＝aの面）のどの座標であるかを４座標分導き出す。その座標から下記の変換式を導き出し、その座標に入っているカメラの座標を展開させる。このとき、正六面体の面より広く展開する。
【０１０２】
X＝(A・x＋B・y＋C)／(G・x＋H・y＋1)
Y＝(D・x＋E・y＋F)／(G・x＋H・y＋1)
または、図２９に示すように、視点から正六面体の右面を通り正面のＬＵＴの面に到達したところにある座標を求める。その座標に対する右のＬＵＴの座標の位置を特定する。それを４座標分行い、正六面体の右面を通った位置になるように上記の変換式を導き出し、その座標に入っているカメラの座標を展開させる。このとき、正六面体の面より広く展開しておく。このとき面のつなぎ目が極力同じになるように正面のＬＵＴ上の４つの頂点は、正六面体の正面の右上角ＳＡ(a,−a,−a)、正六面体の正面の右下角ＳＢ(a, a,−a)、上のＬＵＴと右のＬＵＴのつなぎ目(b,−b,−a)、下のＬＵＴと右のＬＵＴのつなぎ目(c, c, −a)を選んでもよい。このとき、aは視点から正面のＬＵＴまでの距離、b＞a、c＞aとする。
【０１０３】
以上、右のＬＵＴに対して補正処理を行ったが、上のＬＵＴ、下のＬＵＴ、左のＬＵＴも同様の処理を行う。その場合、正面のＬＵＴを回転させて処理をすることにより、ほぼ同じ処理で展開することができる。
【０１０４】
［ＬＵＴのつなぎ目の補正］次に、面のつなぎ目の誤差を補正する。それぞれの面のつなぎ目は、通常誤差を持った状態になる。このままでは、実際表示させたときに、ＬＵＴの途中でずれた表示になってしまう。それを補正するために図３０のような処理をする。図３０の処理を以下の手順１〜１１で説明する。
【０１０５】
１．図３０（ａ）のように、それぞれの面のつなぎ目の中間値を用意する。角の場合は３点の中間値を用意する。角の３点は極力同じ値になるように、ＬＵＴの補正時の４頂点から視点変換の際に、視点変換の頂点に選んでおく。また、図３０（ａ）ではつなぎ目は展開先の正六面体の辺上だけだが、それぞれの辺の延長線上も補正対象とし、中間値を用意する。図３０（ａ）では裏面に表示領域がないため５面で処理しているが、裏面にも表示領域がある場合は、そこの面も対象となる。  
２．中間値を作成したら、それぞれの方向の面のＬＵＴごとに処理を行う。  
３．図３０（ｂ）のように下のＬＵＴを例にして説明する。まず、e0のデータを作成することを考える。ちなみにa0とd5は同じ値である。画素Ａ０でのずれ量は中間値との差分である（a0−A0）である。  
４．Ａ０付近の誤差補正基準となる画素の、補正する位置からの位置ずらし量(x, y)を特定する。基準の画素とするのは、Ａ０付近（画素の位置をずらす大きさを決めておく）でx座標, y座標ともに一番画素ずれの大きい位置 (x座標、y座標の小さいほうのずれが一番大きい方向)を複数確認して決定する。このとき、あまりＡ０に対して遠い位置で基準位置を決定すると、基準位置が存在しないことがあり、逆に、あまりＡ０に対して近すぎると、座標のずれが小さすぎて計算誤差によって補正できないので注意する。  
また、より正しい予測ではない画素を使用するために、正面のＬＵＴ寄りを基準位置として探してもよい。複数の画素で基準の画素を確認する理由は、中間値がずれていても、計算に使用する基準の画素の座標がずれていないと、補正誤差が大きくなるためである。ちなみに、ＬＵＴは六面体の面より広く存在しているため、つなぎ目より外側の画素も検索範囲となる。  
５．誤差補正基準の画素の値に対して、ずれの割合を計算する。基準の画素をＡ２とした場合、基準の画素の方向は(＋2,0)であり、e0のずれの割合は、
(a0−A0)／(A2−A0)となる。  
６．中間値があるところに関して、誤差補正基準の画素の補正する位置からの位置ずらし量（x, y）と、ずれの割合を計算する。  
７．中間値がないところでは、同じ辺上の一番近い場所の、誤差補正基準の画素の補正する位置からの位置ずらし量（x, y）をずれの割合とする。  
８．同じ辺に中間値がない場合には、面の反対側の辺(線対称)の値、もしくはずれの割合を0とする。  
９．面の反対側に値が入っていない場合には、ずれの割合を０とする。  
１０．補正させるために必要な、誤差補正基準の画素の補正する位置からの位置ずらし量(x, y)と、ずれの割合が決定されたので、線形補完で補正量の計算を行う。（0,0）をＬＵＴの左上（A0の位置）とし、補正したい画素位置を(X, Y) (図３０（ｂ）では（2, 3）)とし、そのデータを(Ix(X,Y)，（Iy(X,Y))とする。画素の横幅をｗ， 縦幅をｈ(図３０（ｂ）ではともに６)とする。そうした場合、補正量は
補正量(x)＝erx・(Ix(X＋edx,Y＋edy)−Ix(X,Y))・((h−1)−Y)/(h−1)
＋frx・(Ix(X＋fdx,Y＋fdy)−Ix(X,Y))・(X)/(w−1)
＋grx・(Ix(X＋gdx,Y＋gdy)−Ix(X,Y))・(Y)/(h−1)
＋hrx・(Ix(X＋hdx,Y＋hdy)−Ix(X,Y))・((w−1)−X)/(w−1)
補正量(y)＝ery・(Iy(X＋edx,Y＋edy)−Iy(X,Y))・((h−1)−Y)/(h−1)
＋fry・(Iy(X＋fdx,Y＋fdy)−Iy(X,Y))・(X)/(w−1)
＋gry・(Iy(X＋gdx,Y＋gdy)−Iy(X,Y))・(Y)/(h−1)
＋hry・(Iy(X＋hdx,Y＋hdy)−Iy(X,Y))・((w−1)−X)/(w−1)
となる。ただし、
e ＝−y方向の補正データ（図３０（ｂ）ではe2）
edx＝eでの位置ずらし量(x)、
edy＝eでの位置ずらし量(y)、
erx＝eでのxのずれの割合、
ery＝eでのyのずれの割合、
f＝＋x方向の補正データ(図３０（ｂ）ではf3)
fdx＝fでの位置ずらし量(x)
fdy＝fでの位置ずらし量(y)
frx＝fでのxのずれの割合
fry＝fでのyのずれの割合
g＝＋y方向の補正データ(図３０（ｂ)ではg3)
gdx＝gでの位置ずらし量(x)
gdy＝gでの位置ずらし量(y)
grx＝gでのxのずれの割合
gry＝gでのyのずれの割合
h＝−x方向の補正データ(図３０（ｂ）ではh2)
hdx＝hでの位置ずらし量(x)
hdy＝hでの位置ずらし量(y)
hrx＝hでのxのずれの割合
hry＝hでのyのずれの割合
である。つなぎ目より外側(正六面体の面外)にもデータはあるので、同じ計算処理で補正量を決定する。  
１１．すべての画素の補正量が計算されたら、入っている値に加算する。
【０１０６】
［格納する頂点、またはｎ次式の特定］次に、完成した座標の入ったＬＵＴから、格納しておくための擬似格子点を選ぶ。展開されたＬＵＴをそのままメモリに格納しておいてもよいが、格納しておくメモリを少なくするために、格子点のみ格納しておき、中間の座標は格子点からｎ次式で展開して計算させる（ここまでは特許文献１と同じ）。しかし、画像にもともとあった格子点の座標では、移動や回転やサイズ変更などが行われ正方形とはなっていないため、計算しづらくなる。
【０１０７】
したがって、移動や回転やサイズ変更したＬＵＴを利用する。図３１のように正六面体の面の幅を整数（図３１では８）で分割し、正方形に分割した頂点を格納する値とする。その際、正六面体の辺上より外側の１点分は選ぶようにする。また、表示範囲外になる領域に関しては、表示外までの曲線が正しくなるように、隣の頂点が表示範囲外となる頂点より表示範囲の外側の２点は選ぶようにする。表示範囲外かの判定は、予想格子点補正時に格子線の存在範囲を取得しておき判定する。
【０１０８】
もしくは表示範囲を気にせず、外側の一点分まで取得する。そうすることにより、表示範囲内は近接する頂点とその両隣の最低４点は選ぶことになるので、歪みの少ない画像として展開することができるようになる。また、近接する格子点の両隣に格子点がなかった領域は予測の座標なので誤差が大きい。そのため、頂点の範囲外になるようにＬＵＴを大きめに取得しておく。
【０１０９】
以上のようにそれぞれの面について行い、頂点を格納する。このような格納をするのであれば前述したＬＵＴのつなぎ目の補正は、格納する頂点だけ行ってもよい。また、このとき、特許文献１のように頂点を格納するのではなく、頂点から得られる曲線であるｎ次式を格納しておいてもよい。そうすることにより多少メモリは必要となるが、ＬＵＴを展開する際にそのつどｎ次式を作成する必要がなくなるため計算量が削減される。また、頂点とｎ次式の両方を格納しておいてもよい。
【０１１０】
［格納した頂点、またはｎ次式より画像の展開］次に、図３２のように、頂点より画像を展開する。正六面体のそれぞれの面に対して、格納しておいた頂点でのｎ次式または格納しておいたｎ次式により、ｎ次式で画像を変換しておく。近接する頂点とその両隣の最低４頂点を選ぶことができるので、歪みの少ない画像となる。その後、視点と展開したい画像の位置関係を用意しておく。そして、その位置関係に従って展開する。
【０１１１】
展開方法は、まず、それぞれの方向の面に対して、視点から展開したい面への４座標を導き出す。そして、その座標から下記の変換式を導き出し、展開したい画像に展開する。
【０１１２】
X＝(A・x＋B・y＋C)／(G・x＋H・y＋1)
Y＝(D・x＋E・y＋F)／(G・x＋H・y＋1)
次に実施形態の変形例について説明する。
【０１１３】
通常、車両にカメラを設置する場合、それぞれのカメラの位置と向きを特定する。だが位置は固定で、向きだけを調整することがある。その場合、計算量の削減が可能となる。
【０１１４】
つまり、図３３（ａ）のように、１．事前に、正六面体を決められた位置に固定し(カメラ位置はその中心)、その座標(面方向、その面での位置（x(0〜1), y(0〜1)）で、図３３（ｂ），（ｃ）のように、複雑な形状の展開先(例えば球などのカーブ面に展開)の画像にＬＵＴを配置しておく。複雑な形状は通常、多数の平面に分割して処理される。  
２．図３４に示すように、向きの調整結果により、固定された正六面体に、用意しておいた歪補正結果の正六面体をカメラの向きに合わせて歪補正結果を展開する。  
３．２で固定された正六面体に歪補正結果が展開されたので、複雑な形状の展開先の固定された正六面体の座標が入ったＬＵＴに、歪み補正結果を反映させる。そうすることにより、複雑な映像表示画面への座標の展開の計算を事前にしておくことが可能となるため、車両にカメラを設置し向きが特定されてからの計算量が削減される。
【０１１５】
また、方眼をカメラの位置に対して固定して配置してもよい。逆に固定された方眼の位置に対してカメラを設置してもよい。その場合、それぞれの方向の方眼を別々で取得してもよいが、正面と上下左右（後ろも見えるカメラの場合は後ろも）の決まった位置に、線の部分以外は透けるように方眼を配置してもよい。そうすれば一度に全方位の歪み補正値を決定することができる。
【０１１６】
透けさせる理由は、正六面体より外側の格子点も取得して誤差を減らすためである。その場合、それぞれの方向の格子線だとわかるように、それぞれの向きに対して色を変えてもよい。また、上下同士や左右同士は配置上交わることが無いので同じ色としてもよい。
【０１１７】
また、カメラを正六面体の中心に配置した場合、カメラから見たそれぞれの方眼の交わり方は決まる。例えば、上下左右の面の無限遠線は正面画像の中心を通る直線になる。その特性を利用する。即ち、
１．図３５（ａ），（ｂ）のように、ＲＧＢの成分を正面と上下と左右の３つに分割して、それぞれの向きの方眼を作成する。このとき、上下の方眼と左右の方眼はその位置に配置するのではなく、正面画像の中心が無限遠点になるように視点変換された状態で、正面画像と同じ面に配置する。  
また、撮像範囲外の格子点を予測するために、撮像範囲の境界で方眼が斜めになるように方眼を４５度傾けておく。また、境界の形状に合わせて、傾ける角度を決定してもよい。図３５の黒丸の位置が正面から前後左右に４５度の位置と決めているので、それぞれの視点変換された画像は決められた画像位置に変換される。  
２．図３５（ｃ）のように、３つに分けたＲＧＢのそれぞれの成分を一つの画像として一つにする。  
３．図３５（ｄ）のように、正面から４５度の位置（図３５の黒丸）の正方形の部分を正六面体の正面の画像とする。  
４．上下左右も同様に面を作成する。  
５．作成されたそれぞれの面を正六面体に貼り付けて、正面画像、上下画像、左右画像をＲＧＢのそれぞれの成分のみで格子線、格子点を見つけて歪補正する。
【０１１８】
以上のような処理により座標を特定することにより、正六面体の立体物にＬＵＴを貼り付けるだけで、簡単に歪補正することが可能となる。
【０１１９】
また、方眼の配置がカメラからの距離が変わってもカメラの角度に対しての位置が変わらなければよいので、球面や四面体などの違う形状の立体に画像を貼り付けて歪補正してもよい。また、正六面体に面を展開したが、もっと増やしても減らしてもよい。
【０１２０】
また、レンズが大きい場合などでは、距離によって平面の歪み方が異なる。それに対応するために、地面などの遠い距離に方眼を配置すればよいが、それでは場所をとりすぎる。狭い範囲で処理をするために、下記の１〜４のような処理をする。
【０１２１】
１．レンズ位置が固定されるようにカメラを設置する。  
２．近い位置で方眼を配置し、歪補正をする。  
３．近い位置での結果を用いて一度歪補正した状態で、遠い位置での方眼を歪補正する。ちなみに方眼が、カメラの角度に対して位置は変わらないように、遠い位置での方眼は近い位置に対して大きい方眼となる。遠い位置での歪補正の補正量は近い位置での歪補正との差分になるため、小さな補正値となる。また、遠い位置とは実際に表示されることが多い地面の位置にしてもよい。  
４．下準備はできたので、別のカメラでの近い方眼での配置で歪補正する。その結果に用意しておいた遠い位置での補正値を反映させる。
【０１２２】
以上のように遠い位置での補正値を反映させてもよいが、反映させた結果となるように近い位置の方眼を歪ませておいてもよい。また以下の１〜９のような変形例も適用することができる。
【０１２３】
１．前後左右上下の全方位の見えるカメラに対して使用してもよい。  
２．展開する面は六面体ではなく、四面体や角度座標などの球面に展開しておいてもよい。  
３．ヘッドアップディスプレイなどのように、車両のフロントガラスに映像を映し出す装置に方眼画像を表示し、運転者の視点付近に設置したカメラ(ヘッドアップディスプレイの表示履歴記録用のカメラでもよい)で歪画像を取得して、その画像より同様な歪補正を行ってもよい。  
４．ディスプレイに映すときの画像は、方眼の面と同じではなく向きを変えたり、球面に展開したりして表示する。その場合にも、ディスプレイに表示する展開後の座標を正方形に区切り方眼に見立てて、その頂点を格子点として格納、また、ｎ次式の格子線として格納してもよい。その場合、ディスプレイの外側にも格子点を用意し、表示範囲の端の補正に使用し、歪誤差を極力減らす。  
５．複数の温度毎の歪補正パラメータを取得しておいて、温度によってパラメータを切り替えるようにしてもよい。また、違う面に展開しておく場合にも、温度によって複数展開しておいて、温度によって切り替えられるようにしてもよい。また温度が、用意した２つパラメータの中間の場合は、温度によって２つのパラメータの有効率を変えて使用してもよい。  
６．レンズの大きさが大きいと、物体の距離によって歪み方が異なる。そのため、物体や地面などの距離がある程度決まっている場合には、その距離になるように方眼を配置して歪補正処理をしてもよい。その場合、物体の距離にしたがって正六面体ではなく直方体になるように処理してもよい。その方が、見た目に歪が少なくなったように処理することが可能となる。歪補正値は直方体のまま使用してもよいし、正六面体に展開しておいて使用してもよい。  
７．方眼を広い範囲に設置できない場合などには、カメラの向きをいろいろな方向に変えて複数の向きの方眼を取得しておいて、それぞれの方眼を合体させて一つの向きの大きい方眼を作成してもよい。このとき異なる４つの座標が別の方眼で同じとなる座標を見つけ出し、下記の計算式を利用して一つの向きの方眼として合体させる。また、つなぎ目のずれをなくすために、上述したつなぎ目の補正をしてもよい。  
X＝(A・x＋B・y＋C)／(G・x＋H・y + 1)
Y＝(D・x＋E・y＋F)／(G・x＋H・y＋1)
このとき、合体させる基準となる向きは、基本形態では上下左右と正面の５つの向きとする。また、基準となる向きの方眼同士で、それぞれの方眼を拡張して大きくさせてもよい。そうすることにより、それぞれの向きの方眼が広くなくても、別の向きの方眼で同じ座標が存在する領域を広くできるため、基準となる向きの方眼を大きくしなくてすむ。  
８．画像の変換式である下記の式を、上述したｎ次式での方法で行ってもよい。
【０１２４】
X = (A・x + B・y + C) / (G・x + H・y + 1)
Y = (D・x + E・y + F) / (G・x + H・y + 1)
９．レンズには色収差があるため、画素センサの色ごと(赤、青、緑、近赤外、遠赤外など)で歪補正してもよい。
【０１２５】
図３６は、以上述べた画像処理装置の全体的な動作を示すフローチャートである。図３６において、Ｓ０は歪補正の開始ステップである。ステップＳ１は特定領域が広くなるレンズを使用しているか否かを判断する。特定領域が広くなるレンズを使用していない場合は、ステップＳ２で特定領域をｎ次式で拡大した画像を作成する。
【０１２６】
ステップＳ３では、特定領域が広くなるレンズを使用して撮影した画像又は特定領域をｎ次式で拡大した画像を取得して画像データを転送する。ステップＳ４は方眼画像の方向分けループであり、ルックアップテーブル（ＬＵＴ）を作成する。つまりカメラの向きに対して、複数の向きの方眼画像を取得する。
【０１２７】
ステップＳ５では、撮像領域の境界で方眼線が斜めになるように方眼を設置して、格子点を読み取り、ステップＳ６では読み取った格子点より、撮像範囲外の格子点を予測する。ステップＳ７では格子点よりｎ次式で画像を変換し、ステップＳ８では格子線の歪み方から予測した格子点を修正する。ステップＳ９からステップＳ４のステップに戻り、方眼画像方向分けループを繰り返す。こうして、格子点の見えない領域の格子点を予想して、画像の端のルックアップテーブル（ＬＵＴ）を補正する。
【０１２８】
ステップＳ１０はＬＵＴの視点が特定できているか否かを判断し、特定できていない場合は、ステップＳ１１において、複数（最低２枚）の向きの歪補正したＬＵＴより、カメラの視点を特定する。ステップＳ１２では、特定されたＬＵＴの視点に対して、決まった面の向きに複数のＬＵＴを用意する。例えば正六面体の位置になるようにＬＵＴを移動・回転する。
【０１２９】
ステップＳ１３では、用意したＬＵＴを用いて、見たい方向の歪を補正する。つまり正六面体の境界線上でのＬＵＴの座標がずれないように補正する。ステップＳ１４では、補正されたＬＵＴより、その座標を一定の間隔に間引いて面毎にＬＵＴに格納する。また正六面体外の頂点の座標を格納する。もしくは上記の頂点の座標から得られるｎ次式を格納する。もしくは頂点とｎ次式の両方を格納する。ステップＳ１５では、歪み補正された画像を表示部に表示し、歪み補正を完了する。
【０１３０】
以上述べたように本発明の実施形態によれば、必要な領域の解像度をあげるため、全体の情報量を増やすことなく必要な解像度が得られ、伝送のための情報量も減らすことができる。また、情報量が減るため計算付加を減らすことができる。
【０１３１】
また縦横それぞれの計４つのｎ次式を関連付けて計算させることにより、歪が大きい場合にも正しく補正することができる。歪が大きい場合にも正しく補正されるため、より広い範囲の格子点でも対応できるようになり、保存する格子点を少なくすることができる。
【０１３２】
また、周りのｎ次式を作り出すために頂点は、画像の端でも余分に格子点を格納することにより、近くの２頂点とその両隣の２頂点を採用し最低３次式にする。または、計算量削減のためにその頂点から得られるｎ次式を格納しておくことにより、歪が大きくても正しく補正される。また、隣に格子点がない領域に余分に格子点を用意する代わりに違う面を用意することにより、より広い範囲で正しく歪補正することができるようになる。
【０１３３】
さらに、複数の方向のＬＵＴを取得して関連付けることにより、１８０度以上となるカメラ映像にも補正値を用意することができる。また複数の方向のＬＵＴにより、ＬＵＴの視点位置を特定することができる。また画像の表示範囲外の格子点を予測するため、画像の端も使用できるようになる。
【０１３４】
尚、以上の実施形態では、車両用のカメラで撮像した画像を処理する例について述べたが、監視カメラ等で撮像した画像の処理に適用することもできる。また以上の説明に限定されることなく、特許請求の範囲を逸脱しない範囲で種々の変形が可能である。
【符号の説明】
【０１３５】
１０…画像処理部
１１…レンズ
１２…撮像素子
１３…データ変換部
１４…信号処理部
１５…画像メモリ
１６…画像送信部
１７…補正パラメータデコーダ
１８…特定領域拡大補正メモリ
１９…制御マイコン
２０…画像認識表示部
２１…制御用のマイクロコンピュータ
２２…信号処理部
２３…補正パラメータデコーダ
２４…歪み補正メモリ
２５…制御マイコン
２６…画像認識処理部
２７…表示処理部
２８…表示部
３０…前処理部
３１…補正パラメータエンコーダ
３２…補正パラメータ導出部
４０…ユーザＩ／Ｆ・車両環境部
【図１】
0005715793.tif 000002
【図２】
0005715793.tif 000003
【図３】
0005715793.tif 000004
【図４】
0005715793.tif 000005
【図５】
0005715793.tif 000006
【図６】
0005715793.tif 000007
【図７】
0005715793.tif 000008
【図８】
0005715793.tif 000009
【図９】
0005715793.tif 000010
【図１０】
0005715793.tif 000011
【図１１】
0005715793.tif 000012
【図１２】
0005715793.tif 000013
【図１３】
0005715793.tif 000014
【図１４】
0005715793.tif 000015
【図１５】
0005715793.tif 000016
【図１６】
0005715793.tif 000017
【図１７】
0005715793.tif 000018
【図１８】
0005715793.tif 000019
【図１９】
0005715793.tif 000020
【図２０】
0005715793.tif 000021
【図２１】
0005715793.tif 000022
【図２２】
0005715793.tif 000023
【図２３】
0005715793.tif 000024
【図２４】
0005715793.tif 000025
【図２５】
0005715793.tif 000026
【図２６】
0005715793.tif 000027
【図２７】
0005715793.tif 000028
【図２８】
0005715793.tif 000029
【図２９】
0005715793.tif 000030
【図３０】
0005715793.tif 000031
【図３１】
0005715793.tif 000032
【図３２】
0005715793.tif 000033
【図３３】
0005715793.tif 000034
【図３４】
0005715793.tif 000035
【図３５】
0005715793.tif 000036
【図３６】
0005715793.tif 000037