(57)【要約】【課題】  ユーザの手間を省きながらも高精度に歪曲補正を行うことのできる歪曲補正方法などを提供する。【解決手段】  歪曲補正方法は、準備手順と、補正手順と、選出手順と、繰り返し手順とを含む。準備手順では、光学系が画像に与える歪曲パターンと、その光学系のレンズポジションとの関係を取得する。補正手順では、光学系のレンズポジションのデータを上記の関係へ当てはめることにより、光学系で撮影された画像の歪曲パターンを推測する。そして、補正手順では、その歪曲パターンを抑えるための歪曲補正パターンで画像へ歪曲補正を少なくとも１回以上施して仮補正画像を得る。選出手順では、補正手順で得られた少なくとも１つの仮補正画像に基づき、画像に本補正で適用すべき歪曲補正パターンを選出する。繰り返し手順では、本補正で適用すべき歪曲補正パターンが選出されないときに、補正手順で当てはめるべきデータの値を調節して補正手順を繰り返す。【選択図】  図９
2008182684.tif 000002
【特許請求の範囲】
【請求項１】
光学系が画像に与える歪曲パターンと、その光学系のレンズポジションとの関係を取得する準備手順と、
前記光学系のレンズポジションのデータを前記関係へ当てはめることにより、前記光学系で撮影された画像の歪曲パターンを推測し、その歪曲パターンを抑えるための歪曲補正パターンで前記画像へ歪曲補正を少なくとも１回以上施して仮補正画像を得る補正手順と、
前記補正手順で得られた少なくとも１つの前記仮補正画像に基づき、前記画像に本補正で適用すべき歪曲補正パターンを選出する選出手順と、
前記本補正で適用すべき歪曲補正パターンが選出されないときに、前記補正手順で当てはめるべきデータの値を調節して前記補正手順を繰り返す繰り返し手順と、
を含むことを特徴とする歪曲補正方法。
【請求項２】
請求項１に記載の歪曲補正方法において、
前記データは、前記画像の撮影時に前記光学系から実測されたデータであることを特徴とする歪曲補正方法。
【請求項３】
請求項２に記載の歪曲補正方法において、
前記関係は、前記光学系から読み出される前記データの誤差範囲を含み、
前記繰り返し手順では、前記データの値の調節範囲を、少なくとも前記データの誤差範囲と同程度に設定することを特徴とする歪曲補正方法。
【請求項４】
請求項１から請求項３のいずれか１項に記載の歪曲補正方法において、
前記選出手順では、前記補正画像に残留した歪曲の量に基づき前記選出を行うことを特徴とする歪曲補正方法。
【請求項５】
請求項１から請求項４のいずれか１項に記載の歪曲補正方法において、
前記レンズポジションとは、前記光学系の焦点位置と焦点距離との少なくとも一方であることを特徴とする歪曲補正方法。
【請求項６】
光学系が画像に与える歪曲パターンと、その光学系のレンズポジションとの関係を取得する準備部と、
前記光学系のレンズポジションのデータを前記関係へ当てはめることにより、前記光学系で撮影された画像の歪曲パターンを推測し、その歪曲パターンを抑えるための歪曲補正パターンで前記画像へ歪曲補正を少なくとも１回以上施して仮補正画像を得る補正部と、
前記補正部で得た少なくとも１つの前記仮補正画像に基づき、前記画像に本補正で適用すべき歪曲補正パターンを選出する選出部と、
前記本補正で適用すべき歪曲補正パターンが選出されないときに、前記補正部で当てはめるべきデータの値を調節して前記補正部に動作を繰り返させる繰り返し部と、
を備えたことを特徴とする歪曲補正装置。
【請求項７】
請求項６に記載の歪曲補正装置において、
前記データは、前記画像の撮影時に前記光学系から実測されたデータであることを特徴とする歪曲補正装置。
【請求項８】
請求項７に記載の歪曲補正装置において、
前記関係は、前記光学系から読み出される前記データの誤差範囲を含み、
前記繰り返し部は、前記データの値の調節範囲を、少なくとも前記データの誤差範囲と同程度に設定することを特徴とする歪曲補正装置。
【請求項９】
請求項６から請求項８のいずれか１項に記載の歪曲補正装置において、
前記選出部は、前記補正画像に残留した歪曲の量に基づき前記選出を行うことを特徴とする歪曲補正装置。
【請求項１０】
請求項６から請求項９の何れか１項に記載の歪曲補正装置において、
前記レンズポジションとは、前記光学系の焦点位置と焦点距離との少なくとも一方であることを特徴とする歪曲補正装置。
【請求項１１】
請求項１から請求項５のいずれか１項に記載の歪曲補正方法をコンピュータに実行させることを特徴とする歪曲補正プログラム。
【請求項１２】
請求項６から請求項１０のいずれか１項に記載の歪曲補正装置を備えたことを特徴とするディジタルカメラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理ソフトウエアなどに適用される歪曲補正方法、歪曲補正プログラムに関する。また、本発明は、ディジタルカメラ、モニタ付きプリンタ、画像ストレージャなどに搭載される歪曲補正装置に関する。また、本発明は、ディジタルカメラに関する。
【背景技術】
【０００２】
撮影光学系には歪曲収差があるので、画像に歪曲を生じさせる。その歪曲量分布（以下「歪曲パターン」という。）は撮影光学系の仕様によって異なり、同じ仕様の光学系であってもレンズポジション（焦点距離と焦点位置との組み合わせ）によって異なる。
【０００３】
したがって、画像処理ソフトウエアによる歪曲補正では、モニタ上に被補正画像を表示し、ユーザが手動で補正量分布（以下「歪曲補正パターン」という。）を調節しながら最適な歪曲補正パターンを見出す必要がある（特許文献１，特許文献２等を参照）。
【特許文献１】特許第３６３１３７０号公報
【特許文献２】米国特許６，３２３，９３４号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、歪曲パターンには大きく分けて樽型、糸巻き型、陣笠型の３種類があるので、補正レベルの調節だけでは対処できない。中でも陣笠型の歪曲パターンは、他の歪曲パターンと比較すると複雑なので、歪曲補正パターンが最適なものから少しずれただけでも画像の歪曲を大きく悪化させる可能性がある。
【０００５】
したがって、熟練したユーザであっても最適な歪曲補正パターンを見出すまでに時間が掛かり、不慣れなユーザに至っては最終的に最適な歪曲補正パターンを見出せないことも多い。
【０００６】
そこで本発明は、ユーザの手間を省きながらも高精度に歪曲補正を行うことのできる歪曲補正方法、歪曲補正装置、歪曲補正プログラム、ディジタルカメラを提供することを目的とする。
【課題を解決するための手段】
【０００７】
一の形態に係る歪曲補正方法は、準備手順と、補正手順と、選出手順と、繰り返し手順とを含む。準備手順では、光学系が画像に与える歪曲パターンと、その光学系のレンズポジションとの関係を取得する。補正手順では、光学系のレンズポジションのデータを上記の関係へ当てはめることにより、光学系で撮影された画像の歪曲パターンを推測する。そして、補正手順では、その歪曲パターンを抑えるための歪曲補正パターンで画像へ歪曲補正を少なくとも１回以上施して仮補正画像を得る。選出手順では、補正手順で得られた少なくとも１つの仮補正画像に基づき、画像に本補正で適用すべき歪曲補正パターンを選出する。繰り返し手順では、本補正で適用すべき歪曲補正パターンが選出されないときに、補正手順で当てはめるべきデータの値を調節して補正手順を繰り返す。
【０００８】
上記の一の形態において、上記のデータは、画像の撮影時に光学系から実測されたデータであってもよい。
【０００９】
上記の一の形態において、上記の関係は、光学系から読み出されるデータの誤差範囲を含んでもよい。そして、繰り返し手順では、データの値の調節範囲を、少なくともデータの誤差範囲と同程度に設定してもよい。
【００１０】
上記の一の形態において、選出手順では、補正画像に残留した歪曲の量に基づき選出を行うようにしてもよい。
【００１１】
上記の一の形態において、レンズポジションとは、光学系の焦点位置と焦点距離との少なくとも一方であってもよい。
【００１２】
なお、上記の一の形態の画像処理方法を画像処理装置として表現したものや、上記の画像処理方法をコンピュータに実行させるためプログラムや、上記の画像処理装置を備えたディジタルカメラも本発明の具体的態様として有効である。
【発明の効果】
【００１３】
本発明によれば、ユーザの手間を省きながらも高精度に歪曲補正を行うことのできる歪曲補正方法、歪曲補正装置、歪曲補正プログラム、ディジタルカメラが実現する。
【発明を実施するための最良の形態】
【００１４】
［第１実施形態］
本発明の第１実施形態を説明する。本実施形態は、カメラシステムの実施形態である。
【００１５】
先ず、本システムの構成を説明する。
【００１６】
図１は、本システムの構成図である。図１に示すとおり、本システムは、交換レンズ１１とカメラ本体１０とからなる。
【００１７】
交換レンズ１１には、レンズポジション（焦点位置ｄと焦点距離ｆとの組み合わせ）が可変の撮影レンズ１１Ｌ，レンズＣＰＵ１１Ａ，ＲＯＭ１１Ｂ，エンコーダ１１Ｃなどが備えられ、カメラ本体１０には、カメラＣＰＵ１０Ａ，撮像素子１２，信号処理回路１３，フレームメモリ１４，カードメモリ１６，背面モニタ１７，操作ボタン１８などが備えられる。
【００１８】
交換レンズ１１の撮影レンズ１１Ｌは、撮像素子１２上に被写体の像を形成する。被写体の像は、撮像素子１２によって画像信号へと変換される。その画像信号は、信号処理回路１３において処理された後、フレームメモリ１４へ蓄積される。カメラＣＰＵ１０Ａは、フレームメモリ１４へ蓄積された１フレーム分の画像信号（以下、「画像」という。）へ画像処理を施した後、その画像の画像ファイルを作成してカードメモリ１６へ保存する。
【００１９】
交換レンズ１１のエンコーダ１１Ｃは、撮影レンズ１１Ｌのレンズポジションを検出し、レンズポジションデータを生成する。レンズポジションデータは、撮影レンズ１１Ｌの焦点位置ｄを数値化してできる焦点位置データ”ｄ”と、撮影レンズ１１Ｌの焦点距離ｆを数値化してできる焦点距離データ”ｆ”とから構成される。レンズＣＰＵ１１Ａは、カメラＣＰＵ１０Ａと通信を行い、カメラＣＰＵ１０Ａからの要求に応じてエンコーダ１１Ｃの生成する焦点位置データ”ｄ”、焦点距離データ”ｆ”を読み出し、カメラＣＰＵ１０Ａへ送信する。
【００２０】
交換レンズ１１のＲＯＭ１１Ｂには、交換レンズ１１に附随する誤差範囲情報と係数情報とが格納される。誤差範囲情報、係数情報の各々は、交換レンズ１１の仕様によって決まるものであり、交換レンズ１１の種類毎に予め用意される。これらの情報の詳細は後述する。レンズＣＰＵ１１ＡはカメラＣＰＵ１０Ａと通信を行い、カメラＣＰＵ１０Ａからの要求に応じて誤差範囲情報及び係数情報をＲＯＭ１１Ｂから読み出し、カメラＣＰＵ１０Ａへ送出する。
【００２１】
なお、本システムのユーザは、カメラ本体１０の操作ボタン１８を操作することにより、カメラＣＰＵ１０Ａへモード切り替えなどの各種の指示を入力する。例えば、カメラ本体１０が撮影モードにあるとき、ユーザは任意のタイミングで画像の撮影指示をカメラＣＰＵ１０Ａへ与えることができる。また、カメラ本体１０が再生モードにあるとき、ユーザは、カードメモリ１６に保存された画像ファイルの再生指示をカメラＣＰＵ１０Ａへ与えることができる。このときカメラＣＰＵ１０Ａは、画像ファイルに収められた画像（保存用の画像）を低解像度化したもの（表示用の画像）を、背面モニタ１７へ再生表示する。
【００２２】
また、背面モニタ１７へ画像が再生表示されているとき、ユーザは、再生表示中の画像に対する歪曲補正の指示をカメラ本体１０へ入力することができる。歪曲補正の詳細は後述する。
【００２３】
次に、ＲＯＭ１１Ｂに格納された誤差範囲情報を説明する。
【００２４】
図２は、誤差範囲情報を説明する図である。図２に示すとおり誤差範囲情報には焦点位置データ”ｄ”の誤差範囲情報と焦点距離データ”ｆ”の誤差範囲情報とがある。
【００２５】
通常、撮影レンズ１１Ｌに設定される焦点位置ｄの真値は連続的である。それに対し、焦点位置データ”ｄ”、つまり焦点位置ｄの読みは、０．３ｍ，０．５ｍ，１ｍ，…などと不連続な値を採る。このため、焦点位置データ”ｄ”には、測定誤差が含まれている可能性がある。この焦点位置データ”ｄ”の誤差範囲（真値の範囲）を示すのが、焦点位置データ”ｄ”の誤差範囲情報である。
【００２６】
但し、通常の撮影レンズ１１Ｌでは、焦点位置データ”ｄ”の値間隔が一定ではないので、誤差範囲の広さも焦点位置データ”ｄ”の値によって様々である。よって、図２（ａ）に示すとおり、誤差範囲は焦点位置データ”ｄ”の値毎に用意される。
【００２７】
また、通常、撮影レンズ１１Ｌに設定される焦点距離ｆの真値は連続的である。それに対し、焦点距離データ”ｆ”、つまり焦点距離ｆの読みは１０．５ｍｍ，１２ｍｍ，…などと不連続な値を採る。このため、焦点距離データ”ｆ”には、測定誤差が含まれている可能性がある。この焦点距離データ”ｆ”の誤差範囲（真値の範囲）を示すのが、焦点距離データ”ｆ”の誤差範囲情報である。
【００２８】
但し、通常の撮影レンズ１１Ｌでは、焦点距離データ”ｆ”の値間隔が一定ではないので、誤差範囲の広さも焦点距離データ”ｆ”の値によって様々である。よって、図２に示すとおり、誤差範囲は焦点距離データ”ｆ”の値毎に用意される。
【００２９】
次に、ＲＯＭ１１Ｂに格納された係数情報を説明する。
【００３０】
通常、撮影レンズ１１Ｌが画像に与える歪曲量Ｄは、図３に示すとおり像高比ｒ（＝像高／最大像高）の関数Ｄ（ｒ）で表される。この関数Ｄ（ｒ）が歪曲パターンを示す。歪曲パターンＤ（ｒ）は、例えば式（１）で表される。
【００３１】
【数１】
2008182684.tif 000003
但し、撮影レンズ１１Ｌのレンズポジション（ｄ，ｆ）が変化すると、式（１）の係数Ａも変化する。つまり、係数Ａは、レンズポジション（ｄ，ｆ）の関数であり、例えば以下の式（２）で表される。
【００３２】
【数２】
2008182684.tif 000004
また、撮影レンズ１１Ｌのレンズポジション（ｄ，ｆ）が変化すると、式（１）の係数Ｂも変化する。つまり、係数Ｂは、レンズポジション（ｄ，ｆ）の関数であり、例えば以下の式（３）で表される。
【００３３】
【数３】
2008182684.tif 000005
また、撮影レンズ１１Ｌのレンズポジション（ｄ，ｆ）が変化すると、式（１）の係数Ｃも変化する。つまり、係数Ｃは、レンズポジション（ｄ，ｆ）の関数であり、例えば以下の式（４）で表される。
【００３４】
【数４】
2008182684.tif 000006
そして、式（２）における１２個の係数Γ00，Γ01，Γ02，Γ10，Γ11，Γ12，Γ20，Γ21，Γ22，Γ30，Γ31，Γ32，式（３）における１２個の係数Δ00，Δ01，Δ02，Δ10，Δ11，Δ12，Δ20，Δ21，Δ22，Δ30，Δ31，Δ32，式（４）における１２個の係数Λ00，Λ01，Λ02，Λ10，Λ11，Λ12，Λ20，Λ21，Λ22，Λ30，Λ31，Λ32の値は、撮影レンズ１１Ｌの仕様によって決まる。
【００３５】
これらの係数（合計３６個の係数）の値を示すのが、係数情報である。係数情報を可視化すると、図４に示すとおりとなる。
【００３６】
なお、式（１）〜（４）は、カメラＣＰＵ１０Ａによって予め記憶される。カメラＣＰＵ１０Ａには、式（１）〜（４）が別々に記憶されても、式（２）〜（４）を式（１）へ代入してできる式が１つだけ記憶されてどちらでもよい。また、ここでは係数の個数が３６であるが、式（１）におけるｒの項数と、式（２）〜（４）におけるｄの項数と、ｆの項数との組み合わせにより、３６以外の個数になることもある。
【００３７】
次に、焦点位置データ”ｄ”、焦点距離データ”ｆ”、係数情報、式（１）〜（４）の用途を説明する。
【００３８】
カメラＣＰＵ１０Ａが交換レンズ１１から係数情報（３６個の係数の値）を読み出し、それを式（１）〜（４）へ当てはめれば、画像に生じる歪曲パターンＤ（ｒ）と、撮影レンズ１１Ｌのレンズポジション（ｄ，ｆ）との関係式Ｄ（ｒ）＝Ｄ（ｒ，ｄ，ｆ）が得られる。
【００３９】
よって、カメラＣＰＵ１０Ａが交換レンズ１１から焦点位置データ”ｄ”、焦点距離データ”ｆ”を読み出し、それを関係式Ｄ（ｒ）＝Ｄ（ｒ，ｄ，ｆ）へ当てはめれば、画像に生じている歪曲パターンＤ（ｒ）を推測することができる。
【００４０】
但し、前述したとおり、焦点位置データ”ｄ”，焦点距離データ”ｆ”の各々には測定誤差が含まれている可能性があるので、この推測では推測誤差が生じ得る。
【００４１】
図５に示すのは、推測誤差の程度を説明する歪曲収差データである。或る撮影レンズの焦点距離ｆの真値を、焦点距離ｆの読み（＝焦点距離データ”ｆ”）が不変となる範囲内（＝誤差範囲内）で３通りに変化させ、そのときに画像に生じた３通りの歪曲パターンが図５（ａ），図５（ｂ），図５（ｃ）である。
【００４２】
図５（ａ）は、焦点距離ｆの真値が焦点距離ｆの読みと一致していたときの歪曲パターンであり、図５（ｂ），（ｃ）は、焦点距離ｆの真値が誤差範囲の両端に一致していたときの歪曲パターンである。
【００４３】
このように、焦点距離ｆの読みがたとえ同じであっても、焦点距離ｆの真値が異なると歪曲パターンは大幅に異なる。このため、前述した推測では大きな推測誤差が生じ得る。（ａ）と（ｂ）との差異、又は（ａ）と（ｃ）の差異が、測定誤差の程度に相当する。
【００４４】
なお、図５に示した歪曲収差データは、或る撮影レンズの広角側のレンズポジションにおける歪曲収差データである。同じ撮影レンズの望遠側における歪曲収差データは、図６に示すとおりである。図６によると、望遠側においても大きな推測誤差が生じ得ることがわかる。
【００４５】
また、ここでは焦点距離データ”ｆ”の測定誤差に起因する推測誤差しか説明しなかったが、焦点位置データ”ｄ”の測定誤差に起因する推測誤差も、焦点距離データ”ｆ”の測定誤差に起因するものほど大きくはないものの、或る程度発生する。
【００４６】
次に、カメラ本体１０が撮影モードにあるときのカメラＣＰＵ１０Ａの動作を説明する。
【００４７】
図７は、カメラ本体１０が撮影モードにあるときのカメラＣＰＵ１０Ａの動作フローチャートである。図７に示すとおり、カメラ本体１０が撮影モードにあるとき、カメラＣＰＵ１０Ａはユーザからの撮影指示を認識すると（ステップＳ１ＹＥＳ）、撮像素子１２及び信号処理回路１３を駆動して撮影を行い、画像を取得する（ステップＳ２）。
【００４８】
このタイミングでカメラＣＰＵ１０Ａは、焦点位置データ”ｄ”、焦点距離データ”ｆ”、誤差範囲情報、係数情報を交換レンズ１１から読み出す（ステップＳ３）。
【００４９】
続いて、カメラＣＰＵ１０Ａは、ステップＳ２で取得した画像の画像ファイルを作成する（ステップＳ４）。このステップＳ４においてカメラＣＰＵ１０Ａは、読み出された誤差範囲情報、読み出された焦点位置データ”ｄ”、読み出された焦点距離データ”ｆ”に基づき、その焦点位置データ”ｄ”の誤差範囲と、その焦点距離データ”ｆ”の誤差範囲とをそれぞれ認識する。例えば、その焦点位置データ”ｄ”の値が０．３ｍであり、その焦点距離データ”ｆ”の値が１０．５ｍｍであった場合は、図２に示すとおり、焦点位置データ”ｄ”の誤差範囲は（０．３ｍ〜０．３５ｍ）と認識され、焦点距離データ”ｆ”の誤差範囲は（１０ｍｍ〜１１ｍｍ）と認識される。そして、カメラＣＰＵ１０Ａは、認識したそれらの誤差範囲の情報を、読み出された係数情報、焦点位置データ”ｄ”、読み出された焦点距離データ”ｆ”と共にその画像ファイルのタグへ書き込む。この場合、画像ファイルの構成は図８に示すとおりとなる。
【００５０】
続いて、カメラＣＰＵ１０Ａは、ステップＳ３で作成した画像ファイルをカードメモリ１６へ保存する（ステップＳ５）。
【００５１】
以上のステップＳ２〜Ｓ５の処理は、撮影指示が入力される度（ステップＳ１ＹＥＳとなる度）に実行される。よって、撮影モード中に撮影指示が複数回入力されると複数の画像が取得され、それら画像の各々には図８に示すとおり、その画像の撮影に使用された交換レンズ１１に附随する３６個の係数、その撮影時における交換レンズ１１の焦点位置データ”ｄ”、その撮影時における交換レンズ１１の焦点距離データ”ｆ”、焦点位置データ”ｄ”の誤差範囲、その焦点距離データ”ｆ”の誤差範囲の各情報が付加される。
【００５２】
なお、図７に示すフローチャートでは交換レンズ１１から誤差範囲情報及び係数情報が読み出されるタイミングを撮影の度としたが、これらの情報は交換レンズ１１に固有なので、レンズ交換の度としても構わない。また、各交換レンズの係数情報、誤差範囲情報を予めカメラ本体１０に記憶させても良く、その場合、図８に示すタグに３６個の係数や誤差範囲の情報を書き込む必要は無い。
【００５３】
次に、歪曲補正に関するカメラＣＰＵ１０Ａの動作を説明する。
【００５４】
図９は、歪曲補正の指示が入力されたときのカメラＣＰＵ１０Ａの動作フローチャートである。図９に示すとおり、背面モニタ１７に或る画像が再生表示されているときに歪曲補正の指示が入力されると、カメラＣＰＵ１０Ａは、その画像（以下、「被補正画像」という。）の画像ファイルを参照し、その被補正画像に付加された３６個の係数、焦点位置データ”ｄ”、焦点距離データ”ｆ”、焦点位置データ”ｄ”の誤差範囲、焦点距離データ”ｆ”の誤差範囲をそれぞれ認識する（ステップＳ７）。
【００５５】
カメラＣＰＵ１０Ａは、認識した３６個の係数の値を式（１）〜（４）へ当てはめて関係式Ｄ（ｒ）＝Ｄ（ｒ，ｄ，ｆ）を取得すると共に、その関係式Ｄ（ｒ）＝Ｄ（ｒ，ｄ，ｆ）へ認識した焦点位置データ”ｄ”及び焦点距離データ”ｆ”を当てはめることにより、被補正画像の歪曲パターンＤ（ｒ）を推測する。これによって、被補正画像を補正するための歪曲補正パターンＤ’（ｒ）が取得されたことになる（ステップＳ８）。
【００５６】
さらに、カメラＣＰＵ１０Ａは、ステップＳ８で取得した歪曲補正パターンＤ’（ｒ）で被補正画像へ仮の歪曲補正（仮補正）を施す（ステップＳ９）。ここで、「仮補正」とは、保存用の被補正画像に対する歪曲補正のみならず、保存用の被補正画像を低解像度化したものに対する歪曲補正であってもよい。この仮補正は比較的短時間のうちに行われる。
【００５７】
さらに、カメラＣＰＵ１０Ａは、仮補正後の被補正画像へエッジ抽出の処理を施し、エッジ画像を取得する（ステップＳ１０）。取得したエッジ画像の例を図１０（ａ）に示した。このエッジ画像は、仮補正後に取得したものなので、撮影レンズ１１Ｌの歪曲収差に起因する歪曲は、完全では無いものの或る程度は抑えられている。
【００５８】
よって、建物などの直線状の被写体の輪郭は、このエッジ画像中に直線に近い曲線となって現れる（但し、図ではわかりやすいように歪曲が実際よりも強調されている。）。この曲線の直線からの乖離量が、ステップＳ８における推測の推測誤差（つまりステップ９における仮補正の補正誤差）を示す。
【００５９】
そこで、カメラＣＰＵ１０Ａは、そのエッジ画像中に存在する複数の連続曲線の中から、以下の条件を満たすような被評価曲線を１本選出する（ステップＳ１１）。
【００６０】
カメラＣＰＵ１０Ａは、被補正画像の中心を通過しない線のうち、「直線からの乖離量が十分に小さく」かつ「曲線の全長が十分に長い」ものを被評価曲線とする。
【００６１】
一例として、カメラＣＰＵ１０Ａは、エッジ画像中に含まれる線のうち、被補正画像の中心を通過する線を除外して被評価曲線の候補とする。次に、カメラＣＰＵ１０Ａは、線が長い順に、上記の被評価曲線の候補を一定数（例えば５本など）まで絞り込む。そして、カメラＣＰＵ１０Ａは、残された被評価曲線の候補のうちで、直線からの乖離量が最も小さいものを被評価曲線とする。なお、カメラＣＰＵ１０Ａは、被評価曲線の候補を「直線からの乖離量の小ささ」で絞り込み、残された被評価曲線の候補のうちで最も長い線を被評価曲線としてもよい。
【００６２】
このとき、図１０（ｂ）に示すような曲線が被評価曲線として選出される。因みに、図１０（ａ）に符号Ａ，Ｂで示した曲線の歪曲は、撮影レンズ１１Ｌの歪曲収差に起因して生じたものではないので、直線からの乖離量が大きい。よって、曲線Ａ，Ｂは前記条件を満たさず、被評価曲線として選出されることは無い。
【００６３】
さらに、カメラＣＰＵ１０Ａは、選出された被評価曲線に基づき、仮補正の補正誤差を示す評価値Ｅを算出する（ステップＳ１２）。評価値Ｅは、例えば、図１０（ｃ）に示すとおり、被評価曲線の全長Ｌと、被評価曲線の膨らみ量ｄとにより、Ｅ＝ｄ／Ｌの式で算出される。
【００６４】
続いて、カメラＣＰＵ１０Ａは、算出した評価値Ｅを閾値と比較し、その評価値Ｅが閾値を下回っていなければ（ステップＳ１３ＮＯ）、焦点位置データ”ｄ”及び焦点距離データ”ｆ”の値の組み合わせを調節し（ステップＳ１４）、ステップＳ８へ戻る。
【００６５】
２回目のステップＳ８では、カメラＣＰＵ１０Ａは、調節後の焦点距離データ”ｆ”，調節後の焦点位置データ”ｄ”を使用して改めて歪曲補正パターンＤ’（ｒ）を取得する。次のステップＳ９では、カメラＣＰＵ１０Ａは、取得した歪曲補正パターンＤ’（ｒ）を使用して被補正画像（仮補正前の被補正画像である。）へ仮補正を施す。続いて、カメラＣＰＵ１０Ａは、ステップＳ１０，Ｓ１１，Ｓ１２を実行して評価値Ｅを算出する。
【００６６】
そして、カメラＣＰＵ１０Ａは、ステップＳ１２で算出される評価値Ｅが閾値を下回るまで（ステップＳ１３ＹＥＳとなるまで）、ステップＳ１４→ステップＳ８→ステップＳ９→ステップＳ１０→ステップＳ１１→ステップＳ１２→ステップＳ１３のループを繰り返す。
【００６７】
但し、そのループのステップＳ１４では、カメラＣＰＵ１０Ａは焦点位置データ”ｄ”の値の調節範囲を焦点位置データ”ｄ”の誤差範囲と同等に制限し、焦点距離データ”ｆ”の値の調節範囲を焦点距離データ”ｆ”の誤差範囲と同等に制限する。
【００６８】
また、焦点位置データ”ｄ”の１回分の調節量は、誤差範囲を例えば５等分した量に設定され、焦点距離データ”ｆ”の１回分の調節量は、誤差範囲を例えば５等分した量に設定される。この場合、焦点位置データ”ｄ”の最大の調節回数は「６」、焦点距離データ”ｆ”の最大の調節回数も「６」となるので、前記ループの最大の繰り返し回数は６×６＝３６回となる。
【００６９】
さて、カメラＣＰＵ１０Ａは、評価値Ｅが閾値を下回ると（ステップＳ１３ＹＥＳ）、直前の仮補正で使用した歪曲補正パターンＤ’（ｒ）を本番の歪曲補正（本補正）パターンとして選出する。カメラＣＰＵ１０Ａは、本補正後の画像の画像ファイルを新たに作成すると、それをカードメモリ１６へ保存する（ステップＳ１５）。なお、「本補正」とは、保存用の被補正画像に対する歪曲補正のことを指す。
【００７０】
以上、本システムでは、歪曲補正パターンを変化させながら仮補正を繰り返すが、その際に調節されるのは、歪曲補正パターン自体ではなく、その歪曲補正パターンの算出に使用される焦点距離データ”ｆ”又は焦点位置データ”ｄ”である。この場合、被補正画像の歪曲補正パターンは、最適な歪曲補正パターンの近辺でのみ変化する。したがって本システムは、仮補正された複数の被補正画像の中から、その歪曲が良好に補正されたものを確実に見出すことができる。
【００７１】
しかも、本システムでは、焦点距離データ”ｆ”の調節範囲は焦点距離データ”ｆ”の誤差範囲をカバーし、焦点位置データ”ｄ”の調節範囲は焦点位置データ”ｄ”の誤差範囲をカバーしているので、それらの調節範囲が狭い範囲に限定されているにも拘わらず、最適な歪曲補正パターンが候補から外れる可能性は無い。
【００７２】
したがって、本システムによれば、ユーザの手間を省きながらも高精度に歪曲補正を行うことができる。
【００７３】
なお、本システムでは、焦点距離データ”ｆ”の調節範囲を焦点距離データ”ｆ”の誤差範囲に一致させ、焦点位置データ”ｄ”の調節範囲を焦点位置データ”ｄ”の誤差範囲に一致させたが、実際には、調節範囲を誤差範囲よりも若干広めに設定し、その誤差範囲を完全にカバーすることが望ましい。
【００７４】
また、上述した歪曲補正モードは、焦点距離データ”ｆ”と焦点位置データ”ｄ”とが既知である場合を想定したが、それらが未知であった場合（被補正画像にレンズポジションデータが付加されていなかった場合）は、次のようにすればよい。
【００７５】
すなわち、カメラＣＰＵ１０は、焦点距離データ”ｆ”の調節範囲と、焦点位置データ”ｄ”の調節範囲とをそれぞれ広く設定する。焦点距離データ”ｆ”の調節範囲は、撮影レンズに設定され得る焦点距離の全範囲に設定され、焦点位置データ”ｄ”の調節範囲は、撮影レンズに設定され得る焦点位置の全範囲に設定される。例えば、焦点位置データ”ｄ”の１回分の調節量は焦点位置の全範囲の９等分に設定され、焦点距離データ”ｆ”の１回分の調節量が焦点距離の全範囲の９等分に設定される。その場合、焦点位置データ”ｄ”の最大の調節回数は「１０」、焦点距離データ”ｒ”の最大の調節回数は「１０」となるので、前記ループの最大の繰り返し回数は、１０×１０＝１００回となる。
【００７６】
また、本システムのカメラＣＰＵ１０Ａは、焦点距離データ”ｆ”と焦点位置データ”ｄ”との値の組み合わせを少しずつ変更しながら評価値Ｅを算出し、評価値Ｅが閾値を下回った時点で前記ループを終了させ、最後の仮補正で使用された歪曲補正パターンＤ’（ｒ）を本補正に使用したが、次のようにしてもよい。
【００７７】
すなわち、カメラＣＰＵ１０Ａは、焦点距離データ”ｆ”と焦点位置データ”ｄ”との値の組み合わせを全ての組み合わせに変更しながら評価値Ｅを算出し、評価値Ｅが最小となった仮補正で使用された歪曲補正パターンＤ’（ｒ）を本補正に使用する。
【００７８】
また、本システムでは、調節対象を、焦点位置データ”ｄ”と焦点距離データ”ｆ”との双方としたが、何れか一方のみに限定してもよい。因みに、焦点距離データ”ｆ”の測定誤差の方が大きな推測誤差を発生させる傾向にあるので、何れか一方のみに限定する場合は、焦点距離データ”ｆ”の方を採用することが望ましい。
【００７９】
また、前述した式（１）〜（４）は、必要に応じて変更してもよい。因みに、撮影レンズが発生させる歪曲パターンが複雑であるほど式（１）〜（４）の項数を多くする必要性が高くなる。
【００８０】
また、本システムでは、被補正画像へ本補正を施したが、被補正画像へ本補正を施す代わりに、本補正に必要な情報（歪曲補正パターンＤ’（ｒ）の情報など）を被補正画像の画像ファイルへ付加してもよい。その場合は、本補正をコンピュータなどの他の機器で行うことが可能となる。
【００８１】
また、本システムのカメラＣＰＵ１０Ａは、前記ループの実行中、仮補正を行う度に、仮補正後の被補正画像を背面モニタ１７へ表示させてもよい。そうすれば、歪曲補正処理の待ち時間中にユーザに対し歪曲補正処理の経過を呈示することができる。
【００８２】
また、本システムの誤差範囲情報（図２）は、焦点位置データ”ｄ”の誤差範囲を絶対値で（０．３ｍ〜０．３５ｍ）などと表しているが、相対値で（０ｍ〜＋０．５ｍ）などと表してもよい。
【００８３】
また、本システムの誤差範囲情報（図２）は、焦点距離データ”ｆ”の誤差範囲を絶対値で（１０ｍｍ〜１１ｍｍ）などと表しているが、相対値で（−０．５ｍｍ〜＋０．５ｍｍ）などと表してもよい。
【００８４】
なお、本システムでは、カメラＣＰＵ１０Ａの動作の一部を、カメラＣＰＵ１０Ａとは別にカメラ本体１０へ備えられた専用の回路に行わせてもよい。
【００８５】
また、本システムでは、歪曲補正に関する動作フローチャートをカメラ本体１０が実行したが、その動作フローチャートの一部又は全部をコンピュータ、画像ストレージャ、プリンタなどに実行させてもよい。
【００８６】
因みに、コンピュータのＣＰＵにその動作フローチャートの一部又は全部を実行させる場合、それを実行させるためのプログラム（歪曲補正プログラム）が、ＣＤ−ＲＯＭなどの記録媒体やインターネットを介してコンピュータへインストールされる。
【００８７】
歪曲補正プログラムがコンピュータへインストールされる場合は、交換レンズ１１が予め記憶すべき情報の情報量を抑えるために、各種の交換レンズの係数情報及び誤差範囲情報が予めその歪曲補正プログラムに書き込まれていることが望ましい。その場合、カメラ本体１０が交換レンズ１１から読み出し、画像ファイルへ付加すべき情報は、交換レンズの種類情報と、レンズポジションデータとの２つとなる。
【００８８】
また、その場合、歪曲補正プログラムは、新種の交換レンズが発売される毎に更新されることが望ましい。更新情報は、交換レンズの製造者がインターネット上で公開し、それをユーザがインターネット経由でコンピュータへダウンロードすればよい。
【図面の簡単な説明】
【００８９】
【図１】本システムの構成図である。
【図２】誤差範囲情報を説明する図である。
【図３】或る撮影レンズの歪曲パターンを示す図である。
【図４】係数情報を説明する図である。
【図５】推測誤差の程度を説明する歪曲収差データである（広角側）。
【図６】推測誤差の程度を説明する歪曲収差データである（望遠側）。
【図７】カメラ本体１０が撮影モードにあるときのカメラＣＰＵ１０Ａの動作フローチャートである。
【図８】画像ファイルの構成を示す図である。
【図９】歪曲補正の指示が入力されたときのカメラＣＰＵ１０Ａの動作フローチャートである。
【図１０】ステップＳ１０〜Ｓ１２を説明する図である。
【符号の説明】
【００９０】
１１…交換レンズ，１０…カメラ本体，１１Ｌ…撮影レンズ，１１Ａ…レンズＣＰＵ，１１Ｂ…ＲＯＭ，１１Ｃ…エンコーダ，１０Ａ…カメラＣＰＵ，１２…撮像素子，１３…信号処理回路，１４…フレームメモリ，１６…カードメモリ，１７…背面モニタ，１８…操作ボタン
【図１】
2008182684.tif 000007
【図２】
2008182684.tif 000008
【図３】
2008182684.tif 000009
【図４】
2008182684.tif 000010
【図５】
2008182684.tif 000011
【図６】
2008182684.tif 000012
【図７】
2008182684.tif 000013
【図８】
2008182684.tif 000014
【図９】
2008182684.tif 000015
【図１０】
2008182684.tif 000016