(57)【特許請求の範囲】
【請求項１】
複数の画素を複数の理想位置に対応付ける歪情報を作成する歪情報作成部と、
前記複数の画素を複数の差分に対応付けるルックアップテーブルを前記歪情報に基づいて作成するルックアップテーブル作成部とを具備し、
前記複数の画素のうちの第１画素が前記複数の理想位置のうちの第１理想位置に対応し、かつ、前記複数の画素のうちの前記第１画素と異なる第２画素が前記複数の理想位置のうちの第２理想位置に対応するときに、前記複数の差分のうちの前記第２画素に対応する差分は、前記第１理想位置を示す値が端数処理された基準位置値と前記第２理想位置を示す値との差を示す
画像処理用ルックアップテーブル作成装置。
【請求項２】
請求項１において、
前記基準位置値は、前記第１理想位置の座標が有する整数部分により決まる
画像処理用ルックアップテーブル作成装置。
【請求項３】
請求項１〜請求項２のいずれかにおいて、
前記第１画素は、前記複数の画素が補正後画像に形成されるときに、前記第２画素に隣接する
画像処理用ルックアップテーブル作成装置。
【請求項４】
請求項１〜請求項３のいずれかにおいて、
原画像を収集する原画像収集部と、
歪画像を収集する歪画像収集部とを更に具備し、
前記歪情報生成部は、前記原画像と前記歪画像とに基づいて前記歪情報を算出する
画像処理用ルックアップテーブル作成装置。
【請求項５】
請求項１〜請求項４のいずれかにおいて、
前記複数の差分の精度は、前記複数の理想位置の精度より低く、
前記基準位置値の精度は、前記複数の差分の精度に等しく、または、前記複数の差分の精度より低い
画像処理用ルックアップテーブル作成装置。
【請求項６】
複数の画素を複数の理想位置に対応付ける歪情報を作成する歪情報作成部と、
前記複数の画素を複数の差分に対応付けるルックアップテーブルを前記歪情報に基づいて作成するルックアップテーブル作成部とを具備し、
前記複数の画素のうちの第１画素が前記複数の理想位置のうちの第１理想位置に対応し、かつ、前記複数の画素のうちの前記第１画素と異なる第２画素が前記複数の理想位置のうちの第２理想位置に対応するときに、前記複数の差分のうちの前記第２画素に対応する差分は、前記第１理想位置を示す値が端数処理された基準位置値と前記第２理想位置を示す値との差を示す
画像処理用ルックアップテーブル作成プログラム。
【請求項７】
請求項６において、
前記基準位置値は、前記第１理想位置の座標が有する整数部分により決まる
画像処理用ルックアップテーブル作成プログラム。
【請求項８】
請求項６〜請求項７のいずれかにおいて、
前記第１画素は、前記複数の画素が補正後画像に形成されるときに、前記第２画素に隣接する
画像処理用ルックアップテーブル作成プログラム。
【請求項９】
請求項６〜請求項８のいずれかにおいて、
原画像を収集する原画像収集部と、
歪画像を収集する歪画像収集部とを更に具備し、
前記歪情報は、前記原画像と前記歪画像とに基づいて算出される
画像処理用ルックアップテーブル作成プログラム。
【請求項１０】
請求項６〜請求項９のいずれかにおいて、
前記複数の差分の精度は、前記複数の理想位置の精度より低く、
前記基準位置値の精度は、前記複数の差分の精度に等しく、または、前記複数の差分の精度より低い
画像処理用ルックアップテーブル作成プログラム。
【請求項１１】
複数の画素を複数の理想位置に対応付ける歪情報を作成するステップと、
前記複数の画素を複数の差分に対応付けるルックアップテーブルを前記歪情報に基づいて作成するステップとを具備し、
前記複数の画素のうちの第１画素が前記複数の理想位置のうちの第１理想位置に対応し、かつ、前記複数の画素のうちの前記第１画素と異なる第２画素が前記複数の理想位置のうちの第２理想位置に対応するときに、前記複数の差分のうちの前記第２画素に対応する差分は、前記第１理想位置を示す値が端数処理された基準位置値と前記第２理想位置を示す値との差を示す
画像処理用ルックアップテーブル作成方法。
【請求項１２】
請求項１１において、
前記基準位置値は、前記第１理想位置の座標が有する整数部分により決まる
画像処理用ルックアップテーブル作成方法。
【請求項１３】
請求項１１〜請求項１２のいずれかにおいて、
前記第１画素は、前記複数の画素が補正後画像に形成されるときに、前記第２画素に隣接する
画像処理用ルックアップテーブル作成方法。
【請求項１４】
請求項１１〜請求項１３のいずれかにおいて、
原画像を収集するステップと、
歪画像を収集するステップとを更に具備し、
前記歪情報は、前記原画像と前記歪画像とに基づいて算出される
画像処理用ルックアップテーブル作成方法。
【請求項１５】
請求項１１〜請求項１４のいずれかにおいて、
前記複数の差分の精度は、前記複数の理想位置の精度より低く、
前記基準位置値の精度は、前記複数の差分の精度に等しく、または、前記複数の差分の精度より低い
画像処理用ルックアップテーブル作成方法。
【請求項１６】
請求項１１〜請求項１５のいずれかに記載される画像処理用ルックアップテーブル作成方法と、
前記ルックアップテーブルを参照して撮影画像を補正後画像に補正する画像処理装置を作成するステップ
とを具備する画像処理装置製造方法。
【請求項１７】
請求項１１〜請求項１５のいずれかに記載される画像処理用ルックアップテーブル作成方法と、
前記ルックアップテーブルを参照して、カメラ本体を用いて撮影された撮影画像を補正後画像に変換する画像処理装置を作成するステップと、
前記カメラ本体と前記画像処理装置とをカメラに組み立てるステップ
とを具備するカメラ製造方法。
【請求項１８】
撮影画像を収集する撮像画像収集部と、
複数の画素を複数の差分に対応付けるルックアップテーブルを参照して、前記複数の画素に対応する複数の位置を算出する位置算出部と、
前記撮像画像のうちの前記複数の位置に映し出される複数の画素値を算出する画素値算出部と、
前記複数の画素に前記複数の画素値を対応付ける補正後画像を作成する補正部とを具備し、
前記複数の画素のうちの第１画素が前記複数の差分のうちの第１差分に対応し、かつ、前記複数の画素のうちの前記第１画素と異なる第２画素が前記複数の差分のうちの第２差分に対応するときに、前記複数の位置のうちの前記第２画素に対応する第２位置は、前記複数の位置のうちの前記第１画素に対応する第１位置を示す値が端数処理された基準位置値に前記複数の差分のうちの前記第２画素に対応する第２差分を示す値を加算した値を示す
画像処理装置。
【請求項１９】
請求項１８において、
前記複数の画素値のうちの前記第１画素を対応する第１画素値は、前記撮像画像のうちの前記第１位置に対応する画素値である
画像処理装置。
【請求項２０】
請求項１８〜請求項１９のいずれかに記載される画像処理装置と、
前記撮影画像を撮影するカメラ本体
とを具備するカメラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理用ルックアップテーブル作成装置および画像処理用ルックアップテーブル作成方法に関し、特に、画像を補正するときに利用されるルックアップテーブルを作成する画像処理用ルックアップテーブル作成装置および画像処理用ルックアップテーブル作成方法に関する。
【背景技術】
【０００２】
入力手段としてカメラなどを利用して、入力された画像から目的の物を探したり、入力された画像が何であるかを判断したり、入力された画像からカメラ位置を特定したりと、人の目の代わりをする動画処理システムが知られている。その動画処理システムとしては、例えば自動車分野で、自動車に取り付けたカメラ画像から道路に描かれた白線を検知、認識し、走行車両が走行車線から脱した場合に警告を発したり、前方方向に映った障害物や人を検知、認識し、接近した場合に警告を発したりするシステムがあげられる。
【０００３】
一般的に、このような白線検知、障害物検知、立体物検知には、単眼あるいはステレオ式のカメラが使用される。特に、障害物の距離計測や立体物検知には、ステレオカメラシステムが使用される。デジタルカメラや銀塩カメラを含むカメラ等の光学系においては、大小の差こそあれ、歪曲収差を生じるのが一般的である。この歪曲収差は、例えば、格子状の被写体を撮影すると、樽型、糸巻き型などとして観測される。特別高価なレンズを使用し、極限まで歪曲収差を小さくした一部カメラを除き、ごく一般的なカメラには格子状の被写体を撮影すれば、目で見てわかる程度の歪曲収差が必ず存在する。つまりステレオカメラシステムの場合には、左右のカメラにそれぞれ固有の歪曲収差が存在することになる。これは左右のカメラにまったく同じ絵を入力した場合であっても、レンズを通した画像では、本来一致すべき絵が一致しないことを示している。
【０００４】
特にステレオカメラシステムでは、カメラから入力された画像を比較したり、差分を求めたりする場合に、入力された画像を比較し、差分を取り正確な距離を求めるといったような使い方が考えられ、歪曲収差が存在することにより、所定の精度を得られないといった問題がある。すなわち、歪曲収差が存在することは、画像処理上の大きな障害となることは明らかである。このため、画像処理に大きな障害になる歪のある画像は、レンズを通る前の歪のない画像に歪補正を行う必要がある。その歪曲収差の特徴として、すでに記述したように、１０種類のレンズが存在すれば１０種類のレンズそれぞれに固有の歪曲収差が存在する。この歪曲収差は、レンズに物理的な変化、例えば、故意に研磨するなどしない限り変化しない。言い換えれば、レンズが決まれば、歪曲収差を数値化できるということである。
【０００５】
図１は、原画像と歪画像と補正後画像との例を示している。その原画像１０１は、被写体を示し、レンズ通過前の画像を示している。その歪画像１０２は、レンズ通過後の画像を示し、原画像１０１に対して所定の歪曲収差が出現した画像を示している。その補正後画像は１０３、補正後の画像を示している。原画像１０１と歪画像１０２と補正後画像は１０３とは、それぞれ、画像上の位置に色を対応付けている。
【０００６】
たとえば、原画像１０１上のある位置１０４にある色が対応しているときに、歪画像１０２では、位置１０４と異なる位置１０５に位置１０４に対応する色が対応している。このとき、補正後画像１０３は、位置１０４に対応する色が位置１０４と等しい位置１０６に対応するように、歪画像１０２に基づいて作成されることが望まれている。補正後画像１０３は、このように作成されることにより、原画像１０１に一致し、歪画像１０２で出現する歪曲収差が補正されることになる。歪画像１０２を補正後画像１０３に補正する一番単純な変換方法は、補正後画像の各位置が、レンズ通過後の歪画像のどの位置にあるかを指し示す対応座標をルックアップテーブルにテーブルデータ化しておき、そのルックアップテーブルにしたがって変換していく方法である。
【０００７】
図２は、原画像と歪画像と補正後画像との他の例を示している。その原画像１１１と歪画像１１２と補正後画像１１３とは、それぞれ、マトリクス状に配置された複数の画素から形成され、サイズは、Ｘ方向が６画素、Ｙ方向が５画素である。その複数の画素は、それぞれ、色を示す画像データを示している。原画像１１１は、被写体を示し、レンズ通過前の画像を示している。歪画像１１２は、レンズ通過後の画像を示し、原画像１１１に比較してＸ方向に＋１画素分ずれている画像を示している。補正後画像は１１３、補正後の画像を示している。
【０００８】
このとき、原画像１１１の画素と歪画像１１２の画素との対応は、Ｙ座標が０の位置の画素に関して、画素（０，０）→画素（１，０）、画素（１，０）→画素（２，０）、画素（２，０）→画素（３，０）、画素（３，０）→画素（４，０）、画素（４，０）→画素（５，０）となっている。このとき、そのルックアップテーブルは、補正後画像１１３の画素（０，０）、画素（１，０）、画素（２，０）、画素（３，０）、画素（４，０）、画素（５，０）を位置（１．０，０．０）、位置（２．０，０．０）、位置（３．０，０．０）、位置（４．０，０．０）、位置（５．０，０．０）、位置（６．０，０．０）にそれぞれ対応付けて、補正後画像１１３の各画素が示す色が歪画像１１２のどの位置に配置されているかを指し示している。補正後画像１１３は、歪画像１１２でそのルックアップテーブルが示す各位置に配置される色が算出され、その算出された色を各画素に対応付けて作成される。
【０００９】
この例では、歪画像１１２のサイズがＸ方向６画素、Ｙ方向５画素であるため、位置（６．０，０．０）の座標は、歪画像１１２に存在しない。このとき、このような画像領域外の画像データは、実際の画像変換時において周知の処理方法を用いて算出される。そのような処理方法としては、個々に対応するものであるが、本発明ではその処理方法は発明の趣旨から外れるため、ここでは特に言及しないものとする。さらに、ここでは、レンズ通過後の歪画像の位置をルックアップテーブルが整数で示した例で説明したが、一般的な歪みの場合は整数に限らず、小数を含む値を取る場合があるため、ルックアップテーブルは、一般的に、小数値を含む形式で準備される。
【００１０】
レンズ通過後の歪画像から補正後の画像へ変換するためのルックアップテーブルは、全画素に対応する処理を行うために、画面が６４０×４８０画素画像であれば、約３０万画素分の座標データを持つ必要がある。組み込み系のデバイスに係わるソフトウェア開発においては、ＲＯＭ／ＲＡＭなど限られたメモリ資源を有効活用することが望まれ、ルックアップテーブルを小さくまとめることが望まれている。
【００１１】
特開平０４−２２０７７７号公報には、この問題を解決するための手段が開示されている。すなわち、特開平０４−２２０７７７号公報には、補正後の画像の出力矩形の最上辺に対応する入力画像上の座標列は絶対座標テーブルを持ち、それ以下の座標に関しては、絶対座標テーブルからの差分のみを持ち、それ以下の補正後の画像出力矩形に対応するレンズ通過後の歪画像上の座標は、演算によって求めることが開示されている。さらに、応用例として、原点となる左上、つまり補正後画像の０，０座標に対応する歪画像上の座標のみとし、画像の左方向への座標も、下方向への座標も、左上の座標からの差分のみを記憶し、すべて演算によって求めるという方法が考えられる。つまりは原点からの差分のみ（以下、相対座標）を記憶しておき、実際の座標は加算演算によって求めることが開示されている。
【００１２】
【特許文献１】特開平０４−２２０７７７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
図３は、特開平０４−２２０７７７号公報に示されるルックアップテーブルの例を示し、図２の歪画像１１２を補正後画像１１３に補正するときに利用されるルックアップテーブルを示している。そのルックアップテーブル１２１は、補正後画像の画素に差分１２４が対応付けられている。補正後画像の画素は、Ｘ座標１２２とＹ座標１２３とにより識別されている。たとえば、最初のＸ＝０、Ｙ＝０の画素に対応する差分（＋１．０，０．０）は、補正後画像のＸ＝０、Ｙ＝０の座標位置に、歪画像の絶対座標Ｘ＝１．０、Ｙ＝０．０における画像データが対応することを示している。
【００１４】
最左列以外の画素に対応する差分は、その画素の直近の左にある画素に対応する位置に対する差分を示している。たとえば、Ｘ＝１，Ｙ＝０の画素に対応する差分（＋１．０，０．０）は、その画素の直近の左の画素に対応する絶対座標Ｘ＝１．０、Ｙ＝０．０に対する差分値を示しており、ここでは、Ｘ＝１，Ｙ＝０の画素に対応する位置は、Ｘ座標が１．０＋１．０の２．０となり、Ｙ座標が０．０＋０．０の０．０となり、補正後画像のＸ＝１、Ｙ＝０の画素に、歪画像の絶対座標Ｘ＝２．０、Ｙ＝０．０における画像データが対応することを示している。
【００１５】
最左列の画素に対応する差分は、その画素の直近の上にある画素に対応する位置に対する差分を示している。すなわち、Ｘ＝０、Ｙ＝１の画素に対応する差分（０．０，＋１．０）は、その画素の直近の上の画素に対応する絶対座標Ｘ＝１．０、Ｙ＝０．０に対する差分値を示しており、補正後画像のＸ＝０、Ｙ＝１の画素に、歪画像の絶対座標Ｘ＝１．０、Ｙ＝１．０における画像データが対応することを示している。
【００１６】
このようなルックアップテーブルは、差分値を記憶することで、補正後画像の出力矩形に対応する歪画像上の座標を画像全体に関してすべて記憶することに比較して、情報量がより少ない。
【００１７】
差分値を表現できるビット数は、レンズの歪曲収差の大小によって異なると考えられるが、一例として以下のように表すことができる。この方式は、差分を記憶するため符号ビットとして１ビットが必要になる。その符号ビットは、Ｘ方向であれば、直前の左画素より左方向か右方向かへのずれを示している。差分の小数部は、前述の正確な座標データを持つ場合と同程度の精度を保つ場合には、６ビットあるいは５ビット必要になる。
【００１８】
計算機で効率の良いデータ長は、８ビット単位であることが一般的に知られている。このため、差分のＸ成分またはＹ成分は、８ビットあるいは１６ビットで表現されるのが最適である。前述の正確な絶対座標データが１６ビットで表現された場合、差分が１６ビット消費するのでは、必要なメモリを削減するという目的から逸脱してしまうために、差分は、８ビットで表現することが好ましい。このとき、差分は、少数部を５ビットで表現し、、符号ビットを１ビットで表現し、残っている２ビットで整数部を表現する。
【００１９】
一般的な歪曲収差を持つレンズの場合、２倍、４倍という演算が必要な歪曲収差を持つことはない。整数部２ビットの場合には、１０進数では４未満を表現することが可能である。このため、整数部は２ビットあれば十分であり、Ｘ座標８ビット、Ｙ座標８ビットとして１座標あたり１６ビットで表現可能であることがわかる。この場合、１画素あたり１座標あたり３２ビット必要な絶対座標方式と比較し半分の１６ビットで表現可能であることがわかる。全体の必要メモリ容量も半分となる。
【００２０】
このような差分は、有限のビット幅の小数部で表現するため、必ず誤差が生じる。すなわち、１ビットで表現される小数部は、その小数部ビットが０を示すときに０を表し、その小数部ビットが１を示すときに０．５を表す。つまり、小数部１ビットで表すことができる値は、０．０、０．５、１．０、１．５、・・・である。例えば、１．７５という数値は誤差０で表現することはできず、１．５あるいは２．０と表現し、誤差０．２５が含まれることとなる。また最大誤差は、１ビットあたりの精度の半分になり、小数部１ビットの場合には、最大誤差は０．２５になる。
【００２１】
正確な座標データを記憶する絶対座標方式でも、小数部を使用する限り誤差は必ず存在する。しかし、それぞれの座標が独立して、歪画像上の座標位置を指し示すため、含まれる誤差は、その最大誤差の範囲内となる。対して、左画素の座標を基準に誤差を含むルックアップテーブルの値を加算をしていく方式では、誤差に誤差が加算され、画像の右端に近づくにしたがい誤差が蓄積されていくことがある。このようなルックアップテーブルを用いる方法では、このように誤差が蓄積されることにより誤差が大きくなり、歪画像を正しい補正後画像に変換できないことがある。
【００２２】
本発明の課題は、画像をより高精度に補正するときに利用されるルックアップテーブルの情報量をより小さくする画像処理用ルックアップテーブル作成装置および画像処理用ルックアップテーブル作成方法を提供することにある。
【課題を解決するための手段】
【００２３】
以下に、発明を実施するための最良の形態・実施例で使用される符号を括弧付きで用いて、課題を解決するための手段を記載する。この符号は、特許請求の範囲の記載と発明を実施するための最良の形態・実施例の記載との対応を明らかにするために付加されたものであり、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
【００２４】
本発明による画像処理用ルックアップテーブル作成装置（１）は、複数画素を複数理想位置に対応付ける歪情報（１０）を作成する歪情報作成部（４）と、複数画素を複数基準位置と複数差分とで対応付けるルックアップテーブル（１４）を歪情報（１０）に基づいて作成するルックアップテーブル作成部（５）とを備えている。複数画素のうちの第１画素が複数理想位置のうちの第１理想位置に対応し、かつ、複数画素のうちの第１画素と異なる第２画素が複数理想位置のうちの第２理想位置に対応するときに、複数差分のうちの第２画素に対応する差分は、第１理想位置に基づいて算出されたその複数基準位置のうちの第１の基準位置と第２理想位置とに基づいて算出される。
【００２５】
本発明による画像処理用ルックアップテーブル作成プログラムは、複数画素を複数理想位置に対応付ける歪情報（１０）を作成する歪情報作成部（４）と、複数画素を複数基準位置と複数差分とで対応付けるルックアップテーブル（１４）を歪情報（１０）に基づいて作成するルックアップテーブル作成部（５）とを備えている。複数画素のうちの第１画素が複数理想位置のうちの第１理想位置に対応し、かつ、複数画素のうちの第１画素と異なる第２画素が複数理想位置のうちの第２理想位置に対応するときに、複数差分のうちの第２画素に対応する差分は、第１理想位置に基づいて算出されたその複数基準位置のうちの第１の基準位置と第２理想位置とに基づいて算出される。
【００２６】
本発明による画像処理用ルックアップテーブル作成方法は、複数画素を複数理想位置に対応付ける歪情報（１０）を作成するステップ（Ｓ３）と、複数画素を複数基準位置と複数差分とで対応付けるルックアップテーブル（１４）を歪情報（１０）に基づいて作成するステップ（Ｓ４）とを備えている。複数画素のうちの第１画素が複数理想位置のうちの第１理想位置に対応し、かつ、複数画素のうちの第１画素と異なる第２画素が複数理想位置のうちの第２理想位置に対応するときに、複数差分のうちの第２画素に対応する差分は、第１理想位置に基づいて算出されたその複数基準位置のうちの第１の基準位置と第２理想位置とに基づいて算出される。
【００２７】
このようなルックアップテーブル（１４）は、撮像画像を補正後画像に補正する画像処理装置（４３）により利用される。すなわち、その画像処理装置（４３）は、撮像画像を収集し、そのルックアップテーブル（１４）を参照してその複数画素に対応する複数位置を算出し、その撮像画像のうちのその複数位置に対応する複数画素値を算出する。その複数画素にその複数画素値を対応付ける補正後画像を作成する。このように生成されたルックアップテーブル（１４）は、複数画素を複数理想位置に直接に対応付けるルックアップテーブルに比較して情報量がより少ない。この結果、その画像処理装置（４３）は、複数画素を複数理想位置に直接に対応付けるルックアップテーブルを参照して補正する画像処理装置に比較して、記憶装置の記憶容量をより小さく設計することができる。このように生成されたルックアップテーブル（１４）は、さらに、差分が２つの画素にそれぞれ対応する２つの理想位置の差が端数処理された値を示しているルックアップテーブルに比較して、算出される位置に生成される誤差をより小さくすることができる。この結果、その画像処理装置（４３）は、差分が２つの画素にそれぞれ対応する２つの理想位置の差が端数処理された値を示しているルックアップテーブルを参照して補正する画像処理装置に比較して、より高精度に補正することができる。
【００２８】
本発明による画像処理装置製造方法は、本発明による画像処理用ルックアップテーブル作成方法（Ｓ４１）と、ルックアップテーブル（１４）を参照して撮影画像を補正後画像に補正する画像処理装置（４３）を作成するステップ（Ｓ４２）とを備えている。
【００２９】
本発明によるカメラ製造方法は、本発明による画像処理用ルックアップテーブル作成方法（Ｓ４１）と、ルックアップテーブル（１４）を参照してカメラ本体（４２）を用いて撮影された撮影画像を補正後画像に変換する画像処理装置（４３）を作成するステップ（Ｓ４２）と、カメラ本体（４２）と画像処理装置（４３）とをカメラ（４１）に組み立てるステップ（Ｓ４３）とを備えている。
【００３０】
本発明による画像処理装置（４３）は、撮影画像を収集する撮像画像収集部（４４）と、複数画素を複数差分に対応付けるルックアップテーブル（１４）を参照して、複数画素に対応する複数位置を算出する位置算出部（４５）と、撮像画像のうちの複数位置に映し出される複数画素値を算出する画素値算出部（４６）と、複数画素に複数画素値を対応付ける補正後画像を作成する補正部（４７）とを備えている。複数画素のうちの第１画素が複数差分のうちの第１差分に対応し、かつ、複数画素のうちの第１画素と異なる第２画素が複数差分のうちの第２差分に対応するときに、複数位置のうちの第２画素に対応する第２位置は、基準位置と複数差分のうちの第２画素に対応する第２差分とに基づいて算出される。基準位置は、複数位置のうちの第１画素に対応する第１位置に基づいて算出される。
【００３１】
このようなルックアップテーブル（１４）は、第２差分が基準位置と第２位置との差を示すように、作成される。このようなルックアップテーブル（１４）は、複数画素を複数理想位置に直接に対応付けるルックアップテーブル（１４）に比較して情報量がより少ない。この結果、画像処理装置（４３）は、複数画素を複数理想位置に直接に対応付けるルックアップテーブルを参照して補正する画像処理装置に比較して、記憶装置の記憶容量をより小さく設計することができる。このようなルックアップテーブル（１４）は、さらに、差分が２つの画素にそれぞれ対応する２つの理想位置の差が端数処理された値を示すルックアップテーブルに比較して、算出される位置に生成される誤差をより小さくすることができる。この結果、画像処理装置（４３）は、差分が２つの画素にそれぞれ対応する２つの理想位置の差が端数処理された値を示すルックアップテーブルを参照して補正する画像処理装置に比較して、より高精度に補正することができる。
【００３２】
本発明によるカメラ（４１）は、本発明による画像処理装置（４３）と、撮影画像を撮影するカメラ本体（４２）とを備えている。
【発明の効果】
【００３３】
本発明による画像処理用ルックアップテーブル作成装置および画像処理用ルックアップテーブル作成方法は、画像を補正するときに利用されるルックアップテーブルの情報量をより低減することができ、かつ、画像を補正するときに生成する誤差をより低減することができるルックアップテーブルを作成することができる。さらに、本発明による画像処理装置は、記憶装置の記憶容量をより小さく設計することができ、かつ、画像をより高精度に補正することができる。
【発明を実施するための最良の形態】
【００３４】
図面を参照して、本発明による画像処理用ルックアップテーブル作成装置の実施の形態を記載する。その画像処理用ルックアップテーブル作成装置１は、コンピュータであり、図４に示されているように、複数のコンピュータプログラムがインストールされている。すなわち、画像処理用ルックアップテーブル作成装置１は、図示されていないＣＰＵと記憶装置と入力装置と出力装置とを備えている。そのＣＰＵは、画像処理用ルックアップテーブル作成装置１にインストールされるコンピュータプログラムを実行して、その記憶装置と入力装置と出力装置とを制御する。その記憶装置は、そのコンピュータプログラムを記録し、そのＣＰＵにより生成される情報を一時的に記録する。その入力装置は、ユーザに操作されることにより情報を生成し、その情報をそのＣＰＵに出力する。その出力装置は、そのＣＰＵにより生成される情報をユーザに認識可能に出力する。
【００３５】
その入力装置としては、スキャナが例示される。その出力装置としては、プリンタが例示される。さらに、その入力装置または出力装置としては、リムーバルメモリドライブ、通信装置が例示される。そのリムーバルメモリドライブは、リムーバルメモリに記録されている情報をそのＣＰＵに出力し、そのＣＰＵにより生成された情報をそのリムーバルメモリに記録する。そのリムーバルメモリとしては、フラッシュメモリ、磁気ディスク（フレキシブルディスク、ハードディスク）、磁気テープ（ビデオテープ）、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスクが例示される。その通信装置は、通信回線網を介してそのＣＰＵにより生成された情報を他のコンピュータに送信し、その通信回線網を介して他のコンピュータから出力された情報をそのＣＰＵに出力する。その通信回線網としては、ＬＡＮ、インターネット、専用回線が例示される。
【００３６】
画像処理用ルックアップテーブル作成装置１にインストールされるコンピュータプログラムは、原画像収集部２と歪画像収集部３と歪情報作成部４とルックアップテーブル作成部５とを含んでいる。原画像収集部２は、その入力装置を用いてユーザにより入力される原画像をその入力装置から収集する。歪画像収集部３は、その入力装置を用いてユーザにより入力される歪画像をその入力装置から収集する。歪情報作成部４は、原画像収集部２により収集される原画像と歪画像収集部３により収集される歪画像とに基づいて歪情報を作成する。ルックアップテーブル作成部５は、歪情報作成部４により作成される歪情報に基づいてルックアップテーブルを作成する。
【００３７】
図５は、歪情報作成部４により作成される歪情報を示している。その歪情報１０は、画素１１を理想位置１２に対応付けている。すなわち、画素１１のうちの任意の要素は、理想位置１２のうちの１つの要素に対応している。画素１１は、原画像収集部２により収集される原画像を構成する複数の画素を識別し、番号Ｘと番号Ｙとを示している。その番号Ｘと番号Ｙとは、それぞれ、整数により表現されている。理想位置１２は、歪画像収集部３により収集される歪画像のうちの位置を示し、画素１１により識別される画素に映し出される被写体の部分がその歪画像で映し出される位置を示している。その位置は、Ｘ座標とＹ座標とにより表現され、そのＸ座標とＹ座標とは、それぞれ、倍精度の固定小数点数により表現されている。その倍精度の固定小数点数は、６４ビットの情報量で表現されている。
【００３８】
図６は、ルックアップテーブル作成部５により作成されるルックアップテーブルを示している。そのルックアップテーブル１４は、画素１５を差分１６に対応付けている。すなわち、画素１５のうちの任意の要素は、差分１６のうちの１つの要素に対応している。画素１５は、補正後画像を構成する複数の画素を識別し、その画素の番号Ｘと番号Ｙとを示している。その番号Ｘと番号Ｙとは、それぞれ、整数により表現されている。差分１６は、理想位置と基準位置との差を示している。その理想位置は、歪情報１０の理想位置１２のうちの画素１５により識別される画素に対応する理想位置を示している。その基準位置は、理想位置２１のうちの画素１５により識別される画素に隣接する画素に対応する理想位置から算出される位置を示している。その差は、Ｘ成分とＹ成分とを示している。そのＸ成分とＹ成分とは、それぞれ、歪情報１０の理想位置１２の精度より低く、５ビットの情報量で表現されている。
【００３９】
図７は、本発明による画像処理用ルックアップテーブル作成方法の実施の形態を示している。ユーザは、まず、カメラを用いて所定の原画像を歪画像に撮影し、入力装置を用いてその原画像を画像処理用ルックアップテーブル作成装置１に入力し（ステップＳ１）、その歪画像を画像処理用ルックアップテーブル作成装置１に入力する（ステップＳ２）。画像処理用ルックアップテーブル作成装置１は、その原画像とその歪画像とに基づいて、歪情報１０を作成する（ステップＳ３）。画像処理用ルックアップテーブル作成装置１は、歪情報１０に基づいてルックアップテーブル１４を作成する（ステップＳ４）。
【００４０】
図８は、ルックアップテーブル１４を作成する動作を示している。画像処理用ルックアップテーブル作成装置１は、まず、変数Ｘに０を代入し、変数Ｙに０を代入し、変数ＰＸに０を代入し、変数ＰＹに０を代入する（ステップＳ１１）。
【００４１】
画像処理用ルックアップテーブル作成装置１は、変数ＰＸが示す値を変数ＰＸＢに代入し、変数ＰＹが示す値を変数ＰＹＢに代入する。画像処理用ルックアップテーブル作成装置１は、さらに、ステップＳ３により作成された歪情報１０を参照して、理想位置１２から変数Ｘと変数Ｙとにより識別される画素（Ｘ，Ｙ）に対応する理想位置を抽出し、その抽出された理想位置のＸ座標を変数ＰＸに代入し、その理想位置のＹ座標を変数ＰＹに代入する（ステップＳ１２）。
【００４２】
画像処理用ルックアップテーブル作成装置１は、変数Ｘが０を示していないときに（ステップＳ１３、Ｘ≠０）、変数ＰＸＢが示す値の整数部分を変数ＺＸに代入し、変数ＰＹＢが示す値の整数部分を変数ＺＹに代入する（ステップＳ１５）。次いで、画像処理用ルックアップテーブル作成装置１は、変数ＰＸが示す値と変数ＰＹが示す値と変数ＺＸが示す値と変数ＺＹが示す値とに基づいて差分を算出する。その差分のＸ成分は、変数ＰＸが示す値から変数ＺＸが示す値を減算した差を示し、その差分のＹ成分は、変数ＰＹが示す値から変数ＺＹが示す値を減算した差を示している。画像処理用ルックアップテーブル作成装置１は、その差分が画素（Ｘ，Ｙ）に対応するように、ルックアップテーブル１４を更新する（ステップＳ１６）。
【００４３】
画像処理用ルックアップテーブル作成装置１は、変数Ｘが０を示しているときに（ステップＳ１３、Ｘ＝０）、Ｘ成分が変数ＰＸの値を示し、かつ、Ｙ成分が変数ＰＹの値を示すように、その差分を算出し、その差分が画素（Ｘ，Ｙ）に対応するようにルックアップテーブル１４を更新する（ステップＳ１４）。すなわち、ルックアップテーブル１４は、左端にある画素に対応する差分がその画素に対応する理想位置を示している。なお、画像処理用ルックアップテーブル作成装置１は、変数Ｘが０を示し、かつ、変数Ｙが０以外の値を示しているときに、理想位置１２のうちの画素（０，Ｙ−１）（すなわち、Ｙ軸の負の方向に隣接する画素）に対応する理想位置を抽出し、Ｙ成分が変数ＰＹからその理想位置のＹ座標の整数部分を減算した値を示すように算出されることもできる。
【００４４】
画像処理用ルックアップテーブル作成装置１は、ステップＳ１４またはステップＳ１６が終了した後に、ルックアップテーブル１４が完成したかどうかを判別する。すなわち、画像処理用ルックアップテーブル作成装置１は、変数Ｘが示す値が変数Ｘの最大値を示し、かつ、変数Ｙが示す値が変数Ｙの最大値を示しているかどうかを判別する（ステップＳ１７）。画像処理用ルックアップテーブル作成装置１は、ルックアップテーブル１４が完成していないときに（ステップＳ１７、終了していない）、変数Ｘが示す値に１を加算した値を変数Ｘに代入する（すなわち、変数Ｘが示す値を１だけ増加させる）（ステップＳ１８）。次いで、画像処理用ルックアップテーブル作成装置１は、１ラインが終了したかどうかを判別する。すなわち、画像処理用ルックアップテーブル作成装置１は、変数Ｘが示す値が変数Ｘの最大値より大きいかどうかを判別する（ステップＳ１９）。
【００４５】
画像処理用ルックアップテーブル作成装置１は、変数Ｘが示す値が変数Ｘの最大値より大きくないときに（ステップＳ１９、終了）、変数Ｘに０を代入し、変数Ｙが示す値に１を加算した値を変数Ｙに代入する（すなわち、変数Ｙが示す値を１だけ増加させる）（ステップＳ２０）。画像処理用ルックアップテーブル作成装置１は、変数Ｘが示す値が変数Ｘの最大値より大きいときに（ステップＳ１９、終了していない）、または、ステップＳ２０を実行した後に、ステップＳ１２〜ステップＳ２０のループを再び実行する。
【００４６】
図９は、歪画像の一部を示している。歪情報１０は、その歪画像１７のうちの複数の理想位置１８−（０，０）〜１８−（３，３）を示している。複数の理想位置１８−（０，０）〜１８−（３，３）の各理想位置１８−（Ｘ，Ｙ）は、画素（Ｘ，Ｙ）に対応している。画像処理用ルックアップテーブル作成装置１は、図８のフローのステップＳ１５を実行することにより、歪画像１７のうちの複数の基準位置１９−（０，０）〜１９−（３，３）を算出する。このとき、複数の基準位置１９−（０，０）〜１９−（３，３）の各基準位置１９−（Ｘ，Ｙ）は、理想位置１８−（Ｘ，Ｙ）に基づいて算出される。すなわち、基準位置１９−（Ｘ，Ｙ）のＸ座標は、理想位置１８−（Ｘ，Ｙ）のＸ座標の整数部分を示し、基準位置１９−（Ｘ，Ｙ）のＹ座標は、理想位置１８−（Ｘ，Ｙ）のＹ座標の整数部分を示している。
【００４７】
図１０は、他の歪画像の一部を示し、図８のフローのステップＳ１６を実行することにより算出される差分を示している。その歪画像２０のうちの基準位置２２−Ｚ１は、理想位置２１−Ｐ１に基づいて算出され、基準位置２２−Ｚ２は、理想位置２１−Ｐ２に基づいて算出され、基準位置２２−Ｚ３は、理想位置２１−Ｐ３に基づいて算出されている。すなわち、基準位置２２−Ｚ１に対応する画素は、理想位置２１−Ｐ１に対応する画素に一致し、基準位置２２−Ｚ２に対応する画素は、理想位置２１−Ｐ２に対応する画素に一致し、基準位置２２−Ｚ３に対応する画素は、理想位置２１−Ｐ３に対応する画素に一致している。さらに、理想位置２１−Ｐ２に対応する画素は、理想位置２１−Ｐ１に対応する画素よりＸ軸方向に配置され、理想位置２１−Ｐ１に対応する画素に隣接している。理想位置２１−Ｐ３に対応する画素は、理想位置２１−Ｐ２に対応する画素よりＸ軸方向に配置され、理想位置２１−Ｐ２に対応する画素に隣接している。ここで、理想位置２１−Ｐ１に対応する画素は、補正後画像の左上端に配置され、番号Ｘが０を示し、番号Ｙが０を示している。さらに、基準位置２２−Ｚ１は、Ｘ座標が０を示し、Ｙ座標が０を示している。
【００４８】
このとき、理想位置２１−Ｐ１に対応する画素に対応する差分は、Ｘ成分が理想位置２１−Ｐ１のＸ成分から０（すなわち、基準位置２２−Ｚ１のＸ成分）を減算した差２３（すなわち、理想位置２１−Ｐ１のＸ成分）を示し、Ｙ成分が理想位置２１−Ｐ１のＹ成分から０（すなわち、基準位置２２−Ｚ１のＹ成分）を減算した差２４（すなわち、理想位置２１−Ｐ１のＹ成分）を示している。理想位置２１−Ｐ２に対応する画素に対応する差分は、Ｘ成分が理想位置２１−Ｐ２のＸ成分から基準位置２２−Ｚ１のＸ成分を減算した差２５を示し、Ｙ成分が理想位置２１−Ｐ２のＹ成分から基準位置２２−Ｚ１のＹ成分を減算した差２６を示している。理想位置２１−Ｐ３に対応する画素に対応する差分は、Ｘ成分が理想位置２１−Ｐ３のＸ成分から基準位置２２−Ｚ２のＸ成分を減算した差２７を示し、Ｙ成分が理想位置２１−Ｐ３のＹ成分から基準位置２２−Ｚ２のＹ成分を減算した差２８を示している。
【００４９】
図１１は、図８のステップＳ１６の一部を示し、差分のＸ成分を算出する処理を示している。画像処理用ルックアップテーブル作成装置１は、まず、変数Ａ１のデータ型を倍精度浮動小数点数型に設定し、変数Ａ２のデータ型を倍精度浮動小数点数型に設定し、変数Ｂのデータ型を倍精度浮動小数点数型に設定する（ステップＳ３１）。画像処理用ルックアップテーブル作成装置１は、変数ＰＸが示す値から変数ＺＸが示す値を減算した差を変数Ｂに代入する（ステップＳ３２）。
【００５０】
画像処理用ルックアップテーブル作成装置１は、変数Ｂが示す値に基づいて算出される上方値を変数Ｂ１に代入する（ステップＳ３３）。その上方値は、変数Ｂが示す値より大きい５ビットの数のうち、変数Ｂが示す値に最も近い値を示している。画像処理用ルックアップテーブル作成装置１は、変数Ｂが示す値に基づいて算出される下方値を変数Ｂ２に代入する（ステップＳ３４）。その下方値は、変数Ｂが示す値より小さい５ビットの数のうち、変数Ｂが示す値に最も近い値を示している。
【００５１】
画像処理用ルックアップテーブル作成装置１は、変数Ｂが示す値と変数Ｂ１が示す値とに基づいて算出される値を変数Ａ１に代入する（ステップＳ３５）。変数Ａ１が示す値は、変数Ｂが示す値から変数Ｂ１が示す値を減算した差の絶対値を示している。画像処理用ルックアップテーブル作成装置１は、変数Ｂが示す値と変数Ｂ２が示す値とに基づいて算出される値を変数Ａ２に代入する（ステップＳ３６）。変数Ａ２が示す値は、変数Ｂが示す値から変数Ｂ２が示す値を減算した差の絶対値を示している。
【００５２】
画像処理用ルックアップテーブル作成装置１は、変数Ａ２が示す値が変数Ａ１の値より大きいときに（ステップＳ３７、Ａ１＜Ａ２）、変数Ｂ１が示す値がその差分のＸ成分に代入されるように、ルックアップテーブル１４を作成する（ステップＳ３８）。画像処理用ルックアップテーブル作成装置１は、変数Ａ２が示す値が変数の値より大きくないときに（ステップＳ３７、Ａ１≧Ａ２）、変数Ｂ２が示す値がその差分のＸ成分に代入されるように、ルックアップテーブル１４を作成する（ステップＳ３９）。すなわち、ルックアップテーブル１４の差分は、５ビットの数が代入される。
【００５３】
画像処理用ルックアップテーブル作成装置１は、差分のＹ成分を算出する処理についても、差分のＸ成分を算出する処理と同様にして算出される。このとき、ステップＳ３２は、変数ＰＹが示す値から変数ＺＹが示す値を減算した差を変数Ｂに代入する動作に置換され、ステップＳ３８は、変数Ｂ１が示す値がその差分のＹ成分に代入されるように、ルックアップテーブル１４を作成する処理に置換され、ステップＳ３９は、変数Ｂ２が示す値がその差分のＹ成分に代入されるように、ルックアップテーブル１４を作成する処理に置換される。
【００５４】
画像処理用ルックアップテーブル作成装置１は、さらに、図８のステップＳ１４の処理についても、差分のＸ成分を算出する処理と同様にして算出される。このとき、ステップＳ３２は、変数ＰＸが示す値を変数Ｂに代入する動作に置換され、ステップＳ３８は、変数Ｂ１が示す値がその差分のＸ成分に代入されるように、ルックアップテーブル１４を作成する処理に置換され、ステップＳ３９は、変数Ｂ２が示す値がその差分のＸ成分に代入されるように、ルックアップテーブル１４を作成する処理に置換される。または、ステップＳ３２は、変数ＰＹが示す値を変数Ｂに代入する動作に置換され、ステップＳ３８は、変数Ｂ１が示す値がその差分のＹ成分に代入されるように、ルックアップテーブル１４を作成する処理に置換され、ステップＳ３９は、変数Ｂ２が示す値がその差分のＹ成分に代入されるように、ルックアップテーブル１４を作成する処理に置換される。
【００５５】
図１２は、数値を位置に対応付ける数直線を示している。その数直線は、点３１と点３２と点３３とを有している。点３１は、図１１のフローにおける変数Ｂが示す値を示している。点３２は、変数Ｂ１が示す値を示している。点３３は、変数Ｂ２が示す値を示している。点３２と点３３とは、それぞれ、５ビットの情報量で表現される数値を示し、５ビットの情報量で表現される数値を示す複数の点のうちの隣接する２点に対応している。すなわち、５ビットの情報量で表現される数値は、点３２が示す値より大きく、かつ、点３３が示す値より小さい数値を含んでいない。点３１は、６４ビットの情報量で表現される数値を示し、点３２と点３３との間に配置されている。すなわち、点３１が示す値は、点３２点が示す値より大きく、かつ、点３３が示す値より大きい。
【００５６】
このとき、画像処理用ルックアップテーブル作成装置１は、点３２が点３３より点３１に近いときに、点３２が示す値をその差分のＸ成分（またはＹ成分）に代入し、点３３が点３２より点３１に近いときに、点３３が示す値をその差分のＸ成分（またはＹ成分）に代入する。たとえば、画像処理用ルックアップテーブル作成装置１は、変数Ｂが約０．９００００を示すときに、０．９０６２５を示す変数Ｂ１を算出し、０．８７５（０ｂ１１１００）を示す変数Ｂ２を算出し、０．９０６２５（０ｂ１１１０１）をその差分のＸ成分（またはＹ成分）に代入する。
【産業上の利用可能性】
【００５７】
本発明による画像処理用ルックアップテーブル作成方法は、カメラを作製するときに適用される。そのカメラ４１は、図１３に示されているように、カメラ本体４２と画像処理装置４３とを備えている。カメラ本体４２は、ユーザに操作されることに応答して、被写体を撮影し、その被写体が映し出される撮影画像を作成する。その撮影画像は、カメラ本体４２に固有の歪曲収差でゆがめられた被写体の像が映し出される。その歪曲収差は、カメラ本体４２により固有であり、より詳細には、カメラ本体４２が備えるレンズにより固有である。
【００５８】
画像処理装置４３は、コンピュータであり、図１４に示されているように、複数のコンピュータプログラムがインストールされている。すなわち、画像処理用ルックアップテーブル作成装置１は、図示されていないＣＰＵと記憶装置と入力装置と出力装置とを備えている。そのＣＰＵは、画像処理用ルックアップテーブル作成装置１にインストールされるコンピュータプログラムを実行して、その記憶装置と入力装置と出力装置とカメラ本体４２とを制御する。その記憶装置は、そのコンピュータプログラムを記録し、そのＣＰＵにより生成される情報を一時的に記録する。その入力装置は、ユーザに操作されることにより情報を生成し、その情報をそのＣＰＵに出力する。その出力装置は、そのＣＰＵにより生成される情報をユーザに認識可能に出力する。その出力装置としては、ディスプレイが例示される。そのディスプレイは、表示面を備え、そのＣＰＵにより生成される画像をその表示面に表示する。
【００５９】
そのコンピュータプログラムは、撮影画像収集部４４と位置算出部４５と画素値算出部４６と補正部４７と画像処置部４８とを含んでいる。撮影画像収集部４４は、カメラ本体４２により撮影された撮影画像をカメラ本体４２から収集する。その撮影画像は、複数の画素を備え、複数の画素は、それぞれ、画素値を示している。位置算出部４５は、本発明による画像処理用ルックアップテーブル作成方法により作成されたルックアップテーブル１４を記憶装置に記録し、ルックアップテーブル１４を参照して、補正後画像を構成する複数の画素に対応する複数の位置を算出する。画素値算出部４６は、撮影画像収集部４４により収集された撮影画像と位置算出部４５により算出された位置とに基づいて、画素値を算出する。その画素値は、その撮影画像のうちのその位置に映し出される色を示している。補正部４７は、画素値算出部４６により算出された画素値に基づいて補正後画像を作成する。補正部４７は、さらに、その補正後画像を出力装置から出力する。画像処置部４８は、補正部４７により作成された補正後画像を画像処理して画像処理結果を算出し、その画像処理結果を出力装置から出力する。その画像処理結果としては、カメラ本体４２から被写体までの距離が例示される。
【００６０】
図１５は、カメラ４１の製造方法を示している。カメラ４１の生産者は、本発明による画像処理用ルックアップテーブル作成方法を実行することにより、所定の原画像とカメラ本体４２により撮影された原画像の撮影画像とに基づいてルックアップテーブル１４を作成する（ステップＳ４１）。その生産者は、ルックアップテーブル１４が記録された記憶装置を備える画像処理装置４３を作製する（ステップＳ４２）。生産者は、カメラ本体４２と画像処理装置４３とをカメラ４１に組み立てる（ステップＳ４３）。
【００６１】
図１６は、画像処理装置４３の動作を示している。画像処理装置４３は、カメラ本体４２により撮影画像が撮影されると、その撮影画像をカメラ本体４２から収集する（ステップＳ５１）。画像処理装置４３は、ルックアップテーブル１４を参照して、補正後画像の各画素に対応する複数の位置を算出する（ステップＳ５２）。すなわち、画像処理装置４３は、まず、ルックアップテーブル１４の差分１６のうちから１つの画素に対応する差分を算出する。画像処理装置４３は、その１つの画素がＸ軸の負の方向に隣接する画素に対応する位置に基づいて基準位置を算出する。その基準位置のＸ座標は、その隣接する画素に対応する位置のＸ座標の整数部分を示し、その基準位置のＹ座標は、その隣接する画素に対応する位置のＹ座標の整数部分を示している。画像処理装置４３は、次いで、その基準位置からその差分だけ移動した位置を算出する。その位置のＸ座標は、その基準位置のＸ座標にその差分のＸ成分を加算した値を示し、その位置のＹ座標は、その基準位置のＹ座標にその差分のＹ成分を加算した値を示している。
【００６２】
画像処理装置４３は、その撮影画像のうちのその算出された位置に対応する画素値を算出する（ステップＳ５３）。画像処理装置４３は、その算出された複数の画素値を複数の画素に対応付けて、補正後画像を作成する（ステップＳ５４）。画像処理装置４３は、その補正後画像を画像処理して画像処理結果を生成し、その画像処理結果を出力装置に出力する（ステップＳ５５）。
【００６３】
図１７は、その撮影画像の例を示している。その撮影画像５１は、複数の画素（０，０）〜（３，１）を備えている。その複数の画素（０，０）〜（３，１）は、それぞれ、撮影画像５１のうちの複数の位置５３−（０，０）〜５３−（３，１）に配置されている。画像処理装置４３は、複数の画素（０，０）〜（３，１）に対応する複数の位置５４−（０，０）〜５４−（３、０）を算出する。複数の位置５４−（０，０）〜５４−（３，１）は、複数の位置５３−（０，０）〜５３−（３，１）と一致しないことがある。
【００６４】
図１７は、さらに、その補正後画像を示している。その補正後画像５２は、複数の画素（０，０）〜（３，１）を備えている。その複数の画素（０，０）〜（３，１）は、それぞれ、補正後画像５２のうちの複数の位置５５−（０，０）〜５５−（３，１）に配置されている。このとき、画像処理装置４３は、撮影画像５１のうちの位置５４−（０，０）〜５４−（３，０）に対応する色をそれぞれ算出し、補正後画像５２のうちの５５−（０，０）〜５５−（３，１）に配置される画素がその算出された色をそれぞれ表現するように、補正後画像５２の画素に色を対応付ける。
【００６５】
ステップＳ５３６の画素値を算出する方法は、周知であり、画像の荒さを解消するため処理の公知の画像補間法が用いられることができる。その画像補間法としては、ニアレストネイバー法、バイリニア補間法、バイキュービック補間法などが例示される。このような画素値を算出する方法では、歪画像で画素が配置される位置と異なる位置（たとえば、画素が配置される位置が整数で表現されるときに、小数により表現される位置）に対応する画素値も算出される。
【００６６】
図１８は、歪画像の例を示している。その歪画像６１は、４個の画素（０、０）〜（１、１）を備えている。４個の画素は、縦に２列、横に２列に並んでいる。図１９は、図１６のフローが実行されることにより歪画像６１が補正された補正後画像の例を示している。その補正後画像６２は、１６個の画素（０，０）〜（３，３）を備えている。その１６個の画素は、縦に４列、横に４列に並んでいる。すなわち、図１８と図１９とは、２×２の歪画像を、縦横２倍（面積比４倍）の補正後画像６２に拡大する補正の例を示している。極端な話ではあるが、縦横半分になってしまうような歪のあるレンズを使ったときには、このような補正が実行されうる。
【００６７】
補正後画像６２の画素（０，０）と画素（１，０）と画素（０，１）と画素（１，１）とは、歪画像６１の画素（０，０）の画素値を示している。補正後画像６２の画素（２，０）と画素（３，０）と画素（２，１）と画素（３，１）とは、歪画像６１の画素（１，０）の画素値を示している。補正後画像６２の画素（０，２）と画素（１，２）と画素（０，３）と画素（１，３）とは、歪画像６１の画素（０，１）の画素値を示している。補正後画像６２の画素（２，２）と画素（３，２）と画素（２，３）と画素（３，３）とは、歪画像６１の画素（１，１）の画素値を示している。
【００６８】
このように歪画像６１を小数値をもたないルックアップテーブルで単純拡大すると、補正後画像６２のようになる。しかし、これは単純拡大であり、各ピクセルデータを縦横２倍にしただけである。小数を使用しないため、処理も高速であり、テーブルのデータ量も少ないが、変換後の画像データは非常に荒い画像データとなる。
【００６９】
図２０は、歪画像の他の例を示している。その歪画像６３は、４個の画素（０、０）〜（１、１）を備えている。４個の画素は、縦に２列、横に２列に並んでいる。図２１は、図１６のフローが実行されることにより歪画像６３が補正された補正後画像の例を示している。その補正後画像６４は、１６個の画素（０，０）〜（３，３）を備えている。その１６個の画素は、縦に４列、横に４列に並んでいる。すなわち、図２０と図２１とは、２×２の歪画像を、縦横２倍（面積比４倍）の補正後画像６４に拡大する補正の他の例（バイリニア補間法）を示している。バイリニア補間法は、本発明の主旨からずれてしまうため、詳細な説明は避けるが、バイリニア補間法は、求めたい座標の画素値を周りの４画素の画素値の重み付けの平均値を求めて、結果画像の画素値とする方法である。
【００７０】
補正後画像６４の画素（０，０）は、ルックアップテーブル１４により歪画像６３の位置（０．０，０．０）に対応付けられている。補正後画像６４の画素（１，０）は、歪画像６３の位置（０．５，０．０）に対応付けられている。補正後画像６４の画素（２，０）は、歪画像６３の位置（１．０，０．０）に対応付けられている。補正後画像６４の画素（３，０）は、歪画像６３の位置（１．５，０．０）に対応付けられている。補正後画像６４の画素（０，１）は、歪画像６３の位置（０．０，０．５）に対応付けられている。補正後画像６４の画素（１，１）は、歪画像６３の位置（０．５，０．５）に対応付けられている。補正後画像６４の画素（２，１）は、歪画像６３の位置（１．０，０．５）に対応付けられている。補正後画像６４の画素（３，１）は、歪画像６３の位置（１．５，０．５）に対応付けられている。補正後画像６４の画素（０，２）は、歪画像６３の位置（０．０，１．０）に対応付けられている。補正後画像６４の画素（１，２）は、歪画像６３の位置（０．５，１．０）に対応付けられている。補正後画像６４の画素（２，２）は、歪画像６３の位置（１．０，１．０）に対応付けられている。補正後画像６４の画素（３，２）は、歪画像６３の位置（１．５，１．０）に対応付けられている。補正後画像６４の画素（０，３）は、歪画像６３の位置（０．０，１．５）に対応付けられている。補正後画像６４の画素（１，３）は、歪画像６３の位置（０．５，１．５）に対応付けられている。補正後画像６４の画素（２，３）は、歪画像６３の位置（１．０，１．５）に対応付けられている。補正後画像６４の画素（３，３）は、歪画像６３の位置（１．５，１．５）に対応付けられている。
【００７１】
このとき、補正後画像６４の画素（０，０）の画像値は、歪画像６３のうちの対応する位置（０．０，０．０）の周りの４位置である位置（０．０，０．０）と、位置（０．５，０．０）と、位置（０．０，０．５）と、位置（０．５，０．５）の画素値から算出され、この４点の位置は全て黒であるので、黒を示す。補正後画像６４の各画素は、このような変換が順次行われることにより、生成される。補正後画像６２は、図１９に示されているように、荒い画像データになってしまったのに対し補正後画像６４は、階調が細かな画像に生成されることが出来る。つまり、２倍画像の場合には、元画像の（０．０，０．０）、（０．５，０．０）、（１．０，０．０）、（０．０，０．５）、（０．５，０．５）、（１．０，０．５）、（０．０，１．０）、（０．５，１．０）、（１．０，１．０）を使用する。その位置を求めるためのルックアップテーブルを構築するために、小数点以下の値（位置）が必要になる。通常の補正に関しても、同様のことが言えるため、ルックアップテーブルとしては、少数値を有する形式で利用される。
【実施例】
【００７２】
図２２は、図８のフローにより算出される変数の計算結果の実施例を示している。その計算結果は、基準位置のＸ座標と理想差分のＸ成分と変数Ｂ１と変数Ｂ２と変数Ａ１と変数Ａ２と差分のＸ成分とを含んでいる。この実施例において、歪情報１０は、理想位置のＸ座標として画素（０，０）を１に対応付け、画素（１，０）を１．９に対応付け、画素（２，０）を２．８に対応付け、画素（３，０）を３．７に対応付け、画素（４，０）を４．６に対応付け、画素（５，０）を５．５に対応付け、画素（６，０）を６．４に対応付け、画素（７，０）を７．３に対応付け、画素（８，０）を８．２に対応付け、画素（９，０）を９．１に対応付け、画素（１０，０）を１０に対応付けている。
【００７３】
基準位置のＸ座標は、図８のフローで変数ＺＸが示す値に対応している。このとき、画素（０，０）に対応する基準位置のＸ座標は１を示し、画素（１，０）に対応する基準位置のＸ座標は１を示し、画素（２，０）に対応する基準位置のＸ座標は２を示し、画素（３，０）に対応する基準位置のＸ座標は３を示し、画素（４，０）に対応する基準位置のＸ座標は４を示し、画素（５，０）に対応する基準位置のＸ座標は５を示し、画素（６，０）に対応する基準位置のＸ座標は６を示し、画素（７，０）に対応する基準位置のＸ座標は７を示し、画素（８，０）に対応する基準位置のＸ座標は８を示し、画素（９，０）に対応する基準位置のＸ座標は９を示し、画素（１０，０）に対応する基準位置のＸ座標は１０を示している。
【００７４】
理想差分のＸ成分は、図８のフローで次式：
ＰＸ−ＺＸ
により表現される値に対応し、図１１のフローの変数Ｂに対応している。このとき、画素（１，０）に対応する理想差分のＸ成分は０．９を示し、画素（２，０）に対応する理想差分のＸ成分は１．８を示し、画素（３，０）に対応する理想差分のＸ成分は１．７を示し、画素（４，０）に対応する理想差分のＸ成分は１．６を示し、画素（５，０）に対応する理想差分のＸ成分は１．５を示し、画素（６，０）に対応する理想差分のＸ成分は１．４を示し、画素（７，０）に対応する理想差分のＸ成分は１．３を示し、画素（８，０）に対応する理想差分のＸ成分は１．２を示し、画素（９，０）に対応する理想差分のＸ成分は１．１を示し、画素（１０，０）に対応する理想差分のＸ成分は１．０を示している。
【００７５】
このとき、図１１のフローで画素（１，０）に対応する変数Ｂ１は０．９０６２５を示し、画素（２，０）に対応する変数Ｂ１は１．８１２５を示し、画素（３，０）に対応する変数Ｂ１は１．７１８７５を示し、画素（４，０）に対応する変数Ｂ１は１．６２５を示し、画素（５，０）に対応する変数Ｂ１は１．５３１２５を示し、画素（６，０）に対応する変数Ｂ１は１．４０６２５を示し、画素（７，０）に対応する変数Ｂ１は１．３１２５を示し、画素（８，０）に対応する変数Ｂ１は１．２１８７５を示し、画素（９，０）に対応する変数Ｂ１は１．１２５を示し、画素（１０，０）に対応する変数Ｂ１は１．０３１２５を示している。
【００７６】
このとき、図１１のフローで画素（１，０）に対応する変数Ｂ２は０．８７５を示し、画素（２，０）に対応する変数Ｂ２は１．７８１２５を示し、画素（３，０）に対応する変数Ｂ２は１．６８７５を示し、画素（４，０）に対応する変数Ｂ２は１．５９３７５を示し、画素（５，０）に対応する変数Ｂ２は１．５を示し、画素（６，０）に対応する変数Ｂ２は１．３７５を示し、画素（７，０）に対応する変数Ｂ２は１．２８１２５を示し、画素（８，０）に対応する変数Ｂ２は１．１８７５を示し、画素（９，０）に対応する変数Ｂ２は１．０９３７５を示し、画素（１０，０）に対応する変数Ｂ２は１を示している。
【００７７】
このとき、図１１のフローで画素（１，０）に対応する変数Ａ１は０．００６２５を示し、画素（２，０）に対応する変数Ａ１は０．０１２５を示し、画素（３，０）に対応する変数Ａ１は０．０１８７５を示し、画素（４，０）に対応する変数Ａ１は０．０２５を示し、画素（５，０）に対応する変数Ａ１は０．０３１２５を示し、画素（６，０）に対応する変数Ａ１は０．００６２５を示し、画素（７，０）に対応する変数Ａ１は０．０１２５を示し、画素（８，０）に対応する変数Ａ１は０．０１８７５を示し、画素（９，０）に対応する変数Ａ１は０．０２５を示し、画素（１０，０）に対応する変数Ａ１は０．０３１２５を示している。
【００７８】
このとき、図１１のフローで画素（１，０）に対応する変数Ａ２は０．０２５を示し、画素（２，０）に対応する変数Ａ２は０．０１８７５を示し、画素（３，０）に対応する変数Ａ２は０．０１２５を示し、画素（４，０）に対応する変数Ａ２は０．００６２５を示し、画素（５，０）に対応する変数Ａ２は０を示し、画素（６，０）に対応する変数Ａ２は０．０２５を示し、画素（７，０）に対応する変数Ａ２は０．０１８７５を示し、画素（８，０）に対応する変数Ａ２は０．０１２５を示し、画素（９，０）に対応する変数Ａ２は０．００６２５を示し、画素（１０，０）に対応する変数Ａ２は０を示している。
【００７９】
このとき、図８のフローでルックアップテーブル１４に代入される画素（１，０）に対応する差分のＸ成分は０．９０６２５を示し、画素（２，０）に対応する差分のＸ成分は１．８１２５を示し、画素（３，０）に対応する差分のＸ成分は１．６８７５を示し、画素（４，０）に対応する差分のＸ成分は１．５９３７５を示し、画素（５，０）に対応する差分のＸ成分は１．５を示し、画素（６，０）に対応する差分のＸ成分は１．４０６２５を示し、画素（７，０）に対応する差分のＸ成分は１．３１２５を示し、画素（８，０）に対応する差分のＸ成分は１．１８７５を示し、画素（９，０）に対応する差分のＸ成分は１．０９３７５を示し、画素（１０，０）に対応する差分のＸ成分は１を示している。
【００８０】
図２２は、さらに、図１６のフローにより算出される位置のＸ座標を示している。画素（１，０）に対応する位置のＸ座標は１．９０６２５を示し、画素（２，０）に対応する位置のＸ座標は２．８１２５を示し、画素（３，０）に対応する位置のＸ座標は３．６８７５を示し、画素（４，０）に対応する位置のＸ座標は４．５９３７５を示し、画素（５，０）に対応する位置のＸ座標は５．５を示し、画素（６，０）に対応する位置のＸ座標は６．４０６２５を示し、画素（７，０）に対応する位置のＸ座標は７．３１２５を示し、画素（８，０）に対応する位置のＸ座標は８．１８７５を示し、画素（９，０）に対応する位置のＸ座標は９．０９３７５を示し、画素（１０，０）に対応する位置のＸ座標は１０を示している。
【００８１】
図２２は、さらに、その算出される位置のＸ座標と理想位置のＸ座標との差を示している。画素（１，０）に対応する差は０．００６２５を示し、画素（２，０）に対応する差は０．０１２５を示し、画素（３，０）に対応する差は０．０１２５を示し、画素（４，０）に対応する差は０．００６２５を示し、画素（５，０）に対応する差は０を示し、画素（６，０）に対応する差は０．００６２５を示し、画素（７，０）に対応する差は０．０１２５を示し、画素（８，０）に対応する差は０．０１２５を示し、画素（９，０）に対応する差は０．００６２５を示し、画素（１０，０）に対応する差は０を示している。すなわち、図１８は、本実施例において、その差の最大値が０．０１２６を示すことを示し、その差が５ビットで表現される数により生成される誤差以下であることを示している。
【００８２】
図２３は、画像処理用ルックアップテーブル作成方法の比較例における計算結果を示している。その比較例では、歪情報１０に基づいて画素に対応する理想差分が算出され、その理想差分に基づいてルックアップテーブルにより画素に対応付けられる差分が算出される。その理想差分は、倍精度の固定小数点数により表現され、対応する画素の理想位置とその画素の左に隣接する画素に対応する理想位置との差を示している。その差分は、５ビットにより表現される数により表現され、その理想差分を５ビットに端数処理して算出される。
【００８３】
このとき、歪情報１０は、既述の本発明による実施例に同一であり、理想位置のＸ座標として画素（０，０）を１に対応付け、画素（１，０）を１．９に対応付け、画素（２，０）を２．８に対応付け、画素（３，０）を３．７に対応付け、画素（４，０）を４．６に対応付け、画素（５，０）を５．５に対応付け、画素（６，０）を６．４に対応付け、画素（７，０）を７．３に対応付け、画素（８，０）を８．２に対応付け、画素（９，０）を９．１に対応付け、画素（１０，０）を１０に対応付けている。
【００８４】
このとき、画素（０，０）に対応する理想差分のＸ成分は１を示し、画素（１，０）に対応する理想差分のＸ成分は０．９を示し、画素（２，０）に対応する理想差分のＸ成分は０．９を示し、画素（３，０）に対応する理想差分のＸ成分は０．９を示し、画素（４，０）に対応する理想差分のＸ成分は０．９を示し、画素（５，０）に対応する理想差分のＸ成分は０．９を示し、画素（６，０）に対応する理想差分のＸ成分は０．９を示し、画素（７，０）に対応する理想差分のＸ成分は０．９を示し、画素（８，０）に対応する理想差分のＸ成分は０．９を示し、画素（９，０）に対応する理想差分のＸ成分は０．９を示し、画素（１０，０）に対応する理想差分のＸ成分は０．９を示している。
【００８５】
このとき、画素（０，０）に対応する５ビットの差分のＸ成分は１を示し、画素（１，０）に対応する５ビットの差分のＸ成分は０．８７５を示し、画素（２，０）に対応する５ビットの差分のＸ成分は０．８７５を示し、画素（３，０）に対応する５ビットの差分のＸ成分は０．８７５を示し、画素（４，０）に対応する５ビットの差分のＸ成分は０．８７５を示し、画素（５，０）に対応する５ビットの差分のＸ成分は０．８７５を示し、画素（６，０）に対応する５ビットの差分のＸ成分は０．８７５を示し、画素（７，０）に対応する５ビットの差分のＸ成分は０．８７５を示し、画素（８，０）に対応する５ビットの差分のＸ成分は０．８７５を示し、画素（９，０）に対応する５ビットの差分のＸ成分は０．８７５を示し、画素（１０，０）に対応する５ビットの差分のＸ成分は０．８７５を示している。
【００８６】
図２３は、さらに、画像処理方法の比較例における計算結果を示している。その比較例では、ルックアップテーブルにより画素に対応付けられる差分に基づいて画素に対応付けられる位置が算出される。その位置は、対応する画素の左に隣接する画素に関して算出された位置にその差分を加算された値により示される。
【００８７】
このとき、画素（０，０）に対応する位置のＸ座標は１を示し、画素（１，０）に対応する位置のＸ座標は１．８７５を示し、画素（２，０）に対応する位置のＸ座標は２．７５を示し、画素（３，０）に対応する位置のＸ座標は３．６２５を示し、画素（４，０）に対応する位置のＸ座標は４．５を示し、画素（５，０）に対応する位置のＸ座標は５．３７５を示し、画素（６，０）に対応する位置のＸ座標は６．２５を示し、画素（７，０）に対応する位置のＸ座標は７．１２５を示し、画素（８，０）に対応する位置のＸ座標は８を示し、画素（９，０）に対応する位置のＸ座標は８．８７５を示し、画素（１０，０）に対応する位置のＸ座標は９．７５を示している。
【００８８】
図２３は、さらに、その算出される位置のＸ座標と理想位置のＸ座標との差を示している。画素（０，０）に対応する差は０を示し、画素（１，０）に対応する差は０．０２５を示し、画素（２，０）に対応する差は０．０５を示し、画素（３，０）に対応する差は０．０７５を示し、画素（４，０）に対応する差は０．１を示し、画素（５，０）に対応する差は０．１２５を示し、画素（６，０）に対応する差は０．１５を示し、画素（７，０）に対応する差は０．１７５を示し、画素（８，０）に対応する差は０．２を示し、画素（９，０）に対応する差は０．２２５を示し、画素（１０，０）に対応する差は０．２５を示している。すなわち、図２３は、この比較例において、位置を算出する演算を繰り返すことにより誤差が蓄積されることを示している。図２３は、さらに、この比較例において、その差の最大値が０．２５示すことを示し、その差が５ビットで表現される数により生成される誤差より大きいことを示している。
【００８９】
比較例では、左画素からの差分情報を有限ビット数の小数部で記憶し、さらにそれを加算していたために、ルックアップテーブルに含まれる誤差が蓄積されていくという弱点があった。本発明による方法によれば、比較例と変わらないメモリ容量で誤差の蓄積をなくし、最小限の誤差に収めることができる。すなわち、本発明は、加算される演算元の基準データを、小数点以下の誤差を含まない整数座標にすること、理想座標に対して上方値、下方値を用いて誤差の小さいほうを選択することにより、比較例にある小数点以下の誤差の蓄積を最小限にとどめ、メモリを余分に消費することなく、歪曲収差を含んだレンズ通過後の画像から、レンズ通過前の画像へより誤差の少ない変換を可能とする。この結果、画像処理装置４３は、記憶装置の記憶容量をより小さく設計することができ、かつ、より高精度に補正することができる。
【００９０】
なお、理想位置から基準位置を算出する計算は、整数部分を算出することと異なる他の端数処理に置換されることもできる。その端数処理としては、切り上げ、より近い値を採用することが例示される。その端数処理で求められる位は、整数部分と異なる位に置換されることもでき、差分を表現する５ビットで表現される数を構成する桁のうちのいずれか桁が示す位に置換されることができる。すなわち、基準位置を示す数値としては、理想位置を示す数値を５ビットで表現される数に端数処理された値が適用されることもできる。このような端数処理が基準位置を算出する計算に適用されたときでも、画像処理用ルックアップテーブル作成装置１は、同様にして、情報量がより少ないルックアップテーブル１４を作成することができ、画像処理装置４３は、同様にして、撮影画像をより高精度に補正することができる。
【図面の簡単な説明】
【００９１】
【図１】図１は、原画像と歪画像と補正後画像との例を示す図である。
【図２】図２は、原画像と歪画像と補正後画像との例を示す図である。
【図３】図３は、歪画像から補正後画像を作成するときに参照される公知のルックアップテーブルを示す表である。
【図４】図４は、本発明による画像処理用ルックアップテーブル作成装置の実施の形態を示すブロック図である。
【図５】図５は、歪情報を示す図である。
【図６】図６は、ルックアップテーブルを示す図である。
【図７】図７は、本発明による画像処理用ルックアップテーブル作成方法の実施の形態を示すフローチャートである。
【図８】図８は、ルックアップテーブルを作成する動作を示すフローチャートである。
【図９】図９は、基準位置を示す図である。
【図１０】図１０は、差分を示す図である。
【図１１】図１１は、端数処理を示すフローチャートである。
【図１２】図１２は、端数処理により算出される差分を示すグラフである。
【図１３】図１３は、本発明によるカメラの実施の形態を示すブロック図である。
【図１４】図１４は、本発明による画像処理装置の実施の形態を示すブロック図である。
【図１５】図１５は、本発明によるカメラ製造方法の実施の形態を示すフローチャートである。
【図１６】図１６は、本発明による画像処理方法の実施の形態を示すフローチャートである。
【図１７】図１７は、本発明による画像処理方法により作成される補正後画像を示す図である。
【図１８】図１８は、画素値を算出するときに用いられる歪画像の例を示す図である。
【図１９】図１９は、補正後画像の例を示す図である。
【図２０】図２０は、画素値を算出するときに用いられる歪画像の他の例を示す図である。
【図２１】図２１は、補正後画像の他の例を示す図である。
【図２２】図２２は、本発明による画像処理用ルックアップテーブル作成方法の実施例における計算結果と本発明による画像処理方法の実施例における計算結果とを示す表である。
【図２３】図２３は、画像処理用ルックアップテーブル作成方法の比較例における計算結果と画像処理方法の比較例における計算結果とを示す表である。
【符号の説明】
【００９２】
１  ：画像処理用ルックアップテーブル作成装置
２  ：原画像収集部
３  ：歪画像収集部
４  ：歪情報作成部
５  ：ルックアップテーブル作成部
１０：歪情報
１１：画素
１２：理想位置
１４：ルックアップテーブル
１５：画素
１６：差分
１７：歪画像
１８−（０，０）〜１８−（３，３）：理想位置
１９−（０，０）〜１９−（３，３）：基準位置
２０：歪画像
２１−Ｐ１〜２１−Ｐ３：理想位置
２２−Ｚ１〜２２−Ｚ３：基準位置
２３〜２８：差
３１〜３３：点
４１：カメラ
４２：カメラ本体
４３：画像処理装置
４４：撮影画像収集部
４５：位置算出部
４６：画素値算出部
４７：補正部
４８：画像処置部
【図１】
0004906753.tif 000002
【図２】
0004906753.tif 000003
【図３】
0004906753.tif 000004
【図４】
0004906753.tif 000005
【図５】
0004906753.tif 000006
【図６】
0004906753.tif 000007
【図７】
0004906753.tif 000008
【図８】
0004906753.tif 000009
【図９】
0004906753.tif 000010
【図１０】
0004906753.tif 000011
【図１１】
0004906753.tif 000012
【図１２】
0004906753.tif 000013
【図１３】
0004906753.tif 000014
【図１４】
0004906753.tif 000015
【図１５】
0004906753.tif 000016
【図１６】
0004906753.tif 000017
【図１７】
0004906753.tif 000018
【図１８】
0004906753.tif 000019
【図１９】
0004906753.tif 000020
【図２０】
0004906753.tif 000021
【図２１】
0004906753.tif 000022
【図２２】
0004906753.tif 000023
【図２３】
0004906753.tif 000024