(57)【特許請求の範囲】
【請求項１】
第１の画像データを縮小して第２の画像データを生成する縮小手段と、
前記第２の画像データに対して倍率色収差補正および軸上色収差補正のいずれも行わずに歪曲収差補正を行うことで補正後の第２の画像データを生成する補正手段と、
前記補正後の第２の画像データを表示する表示手段と、
前記表示手段に表示された前記補正後の第２の画像データにおける一部の領域を指定する指定手段と、を有し、
前記補正手段は、前記指定手段にて指定された前記補正後の第２の画像データにおける前記一部の領域に対して、歪曲収差補正の逆変換となる処理を施すことで、前記補正後の第２の画像データにおける前記一部の領域に対応する前記第１の画像データの歪曲収差補正の対象とする領域を演算し、前記第１の画像データの歪曲収差補正の対象とする領域を含む一部の領域に対して倍率色収差補正および軸上色収差補正の少なくともいずれかを行ってから歪曲収差補正を行うことで、一部の補正後の第１の画像データを生成し、
前記表示手段が前記一部の補正後の第１の画像データを表示することを特徴とする画像処理装置。
【請求項２】
前記指定手段にて指定された前記補正後の第２の画像データにおける前記一部の領域は矩形であり、
前記補正手段は、前記補正後の第２の画像データにおける前記一部の領域の矩形の４頂点に逆変換を施して得られた４頂点よりも広い領域を、前記第１の画像データの歪曲収差補正の対象とする領域を含む一部の領域とすることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記補正手段は、複数の周辺画素を用いるフィルタ処理を行うことが可能であり、
前記補正手段が前記フィルタ処理を行う場合には、前記第１の画像データの歪曲収差補正の対象とする領域を含む一部の領域を拡大し、拡大後の領域に対してフィルタ処理を行ってから、前記歪曲収差補正を行うことを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
第１の画像データを縮小して第２の画像データを生成する工程と、
前記第２の画像データに対して倍率色収差補正および軸上色収差補正のいずれも行わずに歪曲収差補正を行うことで補正後の第２の画像データを生成する工程と、
前記補正後の第２の画像データを表示手段に表示させる工程と、
前記表示手段に表示された前記補正後の第２の画像データにおける一部の領域を指定する工程と、
指定された前記補正後の第２の画像データにおける前記一部の領域に対して、歪曲収差補正の逆変換となる処理を施すことで、前記補正後の第２の画像データにおける前記一部の領域に対応する前記第１の画像データの歪曲収差補正の対象とする領域を演算する工程と、
前記第１の画像データの歪曲収差補正の対象とする領域を含む一部の領域に対して倍率色収差補正および軸上色収差補正の少なくともいずれかを行ってから歪曲収差補正を行うことで、一部の補正後の第１の画像データを生成する工程と、
前記一部の補正後の第１の画像データを表示手段に表示させる工程と、を含むことを特徴とする画像処理方法。
【請求項５】
請求項４に記載の画像処理方法を画像処理装置に実行させることを特徴とするプログラム。
【請求項６】
請求項５に記載のプログラムを格納したことを特徴とする、コンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理方法に関し、特に撮像装置にて撮影して得られた画像データに収差補正を施す画像処理方法に関するものである。
【背景技術】
【０００２】
近年、デジタルカメラの性能向上により、撮影によって得られた画像データの解像度が高くなり、銀塩写真に勝るとも劣らない高品質の写真画像を得ることが可能になってきた。一般に、カメラで撮影して得られる画像データには、レンズの歪曲収差に起因する幾何学的歪みが生ずる。デジタルカメラでは画像データの加工が銀塩写真に比べて手軽に実行できるので、撮影レンズの撮影時の光学特性情報等を含むレンズ特性データを利用して、このような幾何学的歪みの補正（以下、歪曲収差補正という）を行うアプリケーションも登場している。このようなレンズ収差の補正処理を行うことで、より均質で高画質な画像を得ることができる。なお、レンズ特性データとは、その撮影レンズの歪曲収差に影響を与える要素の値を示すものであり、そのレンズの形状に関する情報、撮影レンズが有する絞りの開口径、および、撮影レンズの焦点距離などに起因して異なる値をとる。
【０００３】
一般的な歪曲収差補正の例を図２に示す。
【０００４】
図２（ａ）は被写体像の全体が樽形に歪んだ画像を補正する例を、図２（ｂ）は被写体像の全体が糸巻形に歪んだ画像を補正する例を模式的に表している。
【０００５】
歪曲収差は各画素データの座標の移動を伴う補正であって、像高に応じて複雑にその画素データの座標の移動量が変化するため、画像データの画素数が多いほどその計算負荷が増大する。
【０００６】
そこで、計算負荷の重い処理を施す画像データを、素早く画像として画面に表示する方法として、表示サイズや表示領域に応じて画像情報を構成する画素の間引き処理を行う方法が考えられる（例えば、特許文献１を参照）。
【特許文献１】特開２００５−２５１１６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、歪曲収差補正は画素データの座標の移動を伴う補正処理である。そのため、計算負荷を減らすことを目的として、歪曲収差補正の前に単純に間引き処理を行ってしまうと、精度の高い歪曲収差補正ができなくなる。
【０００８】
また、倍率色収差補正のように各画素の色情報を表示しないとその効果を確認しにくい補正処理の場合には、間引いた縮小画像では、その補正処理の効果をユーザーに確認させることが難しい。
【０００９】
これに対し、計算負荷の重い歪曲収差補正を省略して倍率色収差補正のみを行った画像を等倍で表示することも考えられるが、この場合は、歪曲収差補正と倍率色収差補正の両方の処理を施した場合に得られる効果をユーザーに確認させることができない。
【００１０】
ゆえに、計算負荷の軽減と、補正を施した画像を高い解像度で表示することを両立させるためには、画像の一部の領域のみを歪曲収差補正できるような画像処理方法を提供することが望ましいと考えられる。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本願発明は、第１の画像データを縮小して第２の画像データを生成する縮小手段と、前記第２の画像データに対して倍率色収差補正および軸上色収差補正のいずれも行わずに歪曲収差補正を行うことで補正後の第２の画像データを生成する補正手段と、前記補正後の第２の画像データを表示する表示手段と、前記表示手段に表示された前記補正後の第２の画像データにおける一部の領域を指定する指定手段と、を有し、前記補正手段は、前記指定手段にて指定された前記補正後の第２の画像データにおける前記一部の領域に対して、歪曲収差補正の逆変換となる処理を施すことで、前記補正後の第２の画像データにおける前記一部の領域に対応する前記第１の画像データの歪曲収差補正の対象とする領域を演算し、前記第１の画像データの歪曲収差補正の対象とする領域を含む一部の領域に対して倍率色収差補正および軸上色収差補正の少なくともいずれかを行ってから歪曲収差補正を行うことで、一部の補正後の第１の画像データを生成し、前記表示手段が前記一部の補正後の第１の画像データを表示することを特徴とする画像処理装置を提供するものである。
【００１２】
また、上記課題を解決するため、本願発明は、第１の画像データを縮小して第２の画像データを生成する工程と、前記第２の画像データに対して倍率色収差補正および軸上色収差補正のいずれも行わずに歪曲収差補正を行うことで補正後の第２の画像データを生成する工程と、前記補正後の第２の画像データを表示手段に表示させる工程と、前記表示手段に表示された前記補正後の第２の画像データにおける一部の領域を指定する工程と、指定された前記補正後の第２の画像データにおける前記一部の領域に対して、歪曲収差補正の逆変換となる処理を施すことで、前記補正後の第２の画像データにおける前記一部の領域に対応する前記第１の画像データの歪曲収差補正の対象とする領域を演算する工程と、前記第１の画像データの歪曲収差補正の対象とする領域を含む一部の領域に対して倍率色収差補正および軸上色収差補正の少なくともいずれかを行ってから歪曲収差補正を行うことで、一部の補正後の第１の画像データを生成する工程と、前記一部の補正後の第１の画像データを表示手段に表示させる工程と、を含むことを特徴とする画像処理方法を提供するものである。
【発明の効果】
【００１３】
本発明によれば、表示に必要とされる画像データの一部の領域に対して歪曲収差補正を施すことが可能となる。
【発明を実施するための最良の形態】
【００１４】
（第１の実施形態）
以下、図面を用いて本発明を具体的に説明する。
【００１５】
ここではデジタルカメラで撮影された画像データを読み込んだＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）を画像処理装置の例として説明を行うが、本発明は単体のデジタルカメラやビデオカメラの内部で実施することも可能である。
【００１６】
図１は、本実施形態を実現する画像処理装置の概略を示した図である。１０１は画像処理装置全体の動作をコントロールする制御部としてのＣＰＵであり、一次記憶素子１０２に格納されたプログラムを読み出して実行する。１０３は二次記憶素子であり、例えばハードディスクなどがこれに該当する。一般に一次記憶素子１０２の容量は二次記憶素子１０３の容量より小さく、一次記憶素子１０２に格納しきれないプログラムやデータなどは二次記憶素子１０３に格納される。また、長時間記憶しなくてはならないデータなども二次記憶素子１０３に格納される。本実施形態では、実施形態の処理手順を実現するようなプログラムは二次記憶素子１０３に格納し、プログラム実行時に一次記憶素子１０２に読み込んで、ＣＰＵ１０１が実行処理を行う。
【００１７】
１０４はマウスやキーボードなどの入力デバイスであり、画像の任意の領域を選択したり、プログラムなどに割り込み信号を送ったりするために用いる。
【００１８】
１０５はモニタやプリントなどの出力デバイスであり、ＣＰＵ１０１にて処理した画像データに基づく画像を画面に表示したり、印刷したりする。
【００１９】
１０６は読込デバイスであり、ＣＣＤやＣＭＯＳセンサ等の光電変換素子を備えた撮像装置で撮影された画像データを、直接または間接的に一次記憶素子１０２や二次記憶素子１０３に読み込む。
【００２０】
１０７はレンズ特性データ供給部であり、補正処理の対象となる画像を撮影したときに用いた撮影レンズのレンズ特性データを記憶するためのメモリを有する。レンズ特性データとは、図２に示すように歪曲収差を修正するための座標の移動量を示すデータであり、歪曲収差補正時の複数の像高位置における離散的な座標の移動量を補正量として備えたものである。このレンズ特性データは、歪曲収差の程度や歪みの形状に沿うように撮影レンズの種類、焦点距離、あるいは、絞りの開口径等に応じて複数用意されている。そして撮影された画像データに付随しているカメラの種類、レンズの種類、焦点距離、および、絞りの開口径などに関する情報から、その画像データに最も適したレンズ特性データを選択する。
【００２１】
本実施形態における歪曲収差補正処理は、レンズ特性データ供給部１０７から得たレンズ特性データを補間して画素毎の補正量を算出し、補正量に応じて画像を変形することで実行するものである。その詳細については後述する。なお、レンズ特性データの格納先はレンズ特性データ供給部１０７が有するメモリに限定されず、二次記憶素子１０３や、図示しない外部記憶装置であってもよい。
【００２２】
図３は、本実施形態における画像処理装置にて実行されるアプリケーションのＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）の概要を示す図である。
【００２３】
３０３は歪曲収差補正スライダ、３０４は倍率色収差補正スライダ３０４である。入力デバイス１０４の操作に応じて、これらのスライダ３０３、３０４をスライドさせることで、歪曲収差補正と倍率色収差補正の２種類のレンズ収差補正の適用量を調整することができる。スライダ３０３、３０４を左に動かすほど補正の程度を弱め、右に動かすほど補正の程度を強くする。左端までスライダ３０３、３０４を移動した場合、そのスライダに該当する補正処理は適用されない。便宜上、スライダ３０３、３０４を左端に位置したときのレンズ収差補正の適用量を０％、右端に位置したときの補正の適用量を１００％と表現することにする。なお、歪曲収差や倍率色収差の補正処理に限らず、周辺光量や軸上色収差の補正処理のためのスライダを追加表示してもよい。
【００２４】
３０１はフィット表示部であり、歪曲収差補正スライダ３０３にて指定された適用量でレンズ収差補正を施した画像データを、この表示部の大きさにあわせて縮小表示する。
【００２５】
任意の画像データに対してレンズ収差補正を行うには、補正対象となる画像データのファイルを、オペレーティングシステムのファイル管理システム上から、図３のフィット表示部３０１にドラッグアンドドロップすればよい。
【００２６】
３０２は拡大表示部であり、歪曲収差補正スライダ３０３および倍率色収差補正スライダ３０４にて指定された適用量で各々のレンズ収差補正を適用した画像データの一部を用いて、フィット表示部３０１よりも拡大された画像を表示する。本実施形態では、フィット表示部３０１が画像データを縮小表示するのに対して、拡大表示部３０２はユーザーから指示された画像データの一部の部位を縮小せずに等倍で表示する。フィット表示部３０１に表示された画像の何れかの位置を入力デバイス１０４にて指定すれば、その位置を中心として切り出された画像が拡大表示部３０２に表示される。入力デバイス１０４にて位置を指定する方法としては、マウス操作によってフィット表示部３０１内のカーソルを動かしたり、フィット表示部３０１に表示された画像の座標を直接数値で入力したりする方法がある。入力デバイス１０４にて位置が指定されなければ、初期値として、フィット表示部３０１に表示された画像の中央が指定され、中央部の画像が切り出されて拡大表示部３０２に等倍表示される。
【００２７】
フィット表示部３０１と拡大表示部３０２の両方を備えるのは、歪曲収差補正のように画像全体を見渡すほうが効果を確認しやすい処理と、倍率色収差の補正のように画像の一部を拡大表示したほうが効果を確認しやすい処理が存在するためである。なお、画面全体を見渡すほうが効果を確認しやすい処理としては、他に周辺光量補正が例としてあげられ、一部を拡大したほうが効果を確認しやすい処理としては、他に軸上色収差が例としてあげられる。
【００２８】
そこで、本実施形態では、フィット表示部３０１に表示する画像に対しては、倍率色収差補正や軸上色収差補正などの、画像を拡大表示しないと効果が分かりにくいレンズ収差補正処理は行わない。本実施形態におけるフィット表示部３０１に表示される画像は、拡大表示部３０２に表示される画像に比べてサイズが大きい。そのため、少しでもレンズ収差補正処理を省略することで、スライダ３０３、３０４の操作に対するフィット表示部３０１に表示される画像の更新頻度を向上させ、アプリケーション全体のレスポンスの向上を図ることができる。
【００２９】
図４はフィット表示部３０１に表示する画像に対する画像処理の流れを示すフローチャートである。上述したように、このフィット表示部３０１に表示する画像に対しては倍率色収差の補正処理は行われない。
【００３０】
ステップＳ４０１において、画像データをデコードし、デコード画像を取得する。
【００３１】
ステップＳ４０２において、歪曲収差補正スライダ３０３で指定された歪曲収差補正の適用量を取得する。
【００３２】
ステップＳ４０３において、歪曲収差補正の適用量が０であるか判定し、０でなければステップＳ４０４に進み、０であればステップＳ４０４を飛ばしてステップＳ４０５に進む。
【００３３】
ステップＳ４０４において、後述する歪曲収差補正処理を行い、歪曲収差補正後の画像データを用いて、フィット表示部３０１に画像を表示する。
【００３４】
ステップＳ４０５において、ユーザーからアプリケーションを終了する指示が入力されたかどうかを判定し、入力された場合はこのフローを終了する。アプリケーションを終了しない場合は、ステップＳ４０６に進む。
【００３５】
ステップＳ４０６において、歪曲収差補正スライダ３０３が操作され、歪曲収差補正の適用量が変更されたかどうかを判定する。適用量が変更された場合はステップＳ４０２へ戻り、変更されていなかった場合にはステップＳ４０５へ戻る。
【００３６】
ここで、デジタルカメラやデジタルビデオカメラで撮影可能な静止画の画像データとしては、センサの情報をそのまま記録したＲＡＷ画像データと、モニタに表示可能なように現像処理が施されたＪＰＥＧ画像データがある。
【００３７】
ＲＡＷ画像データは、画素補間処理やガンマ補正処理、色補正処理等の現像処理を経て、モニタに表示可能な画像データ（例えば、ｓＲＧＢ色空間の画像データ）に変換することができる。ＪＰＥＧ画像データでも、フィット表示部３０１の解像度に対して非常に大きな解像度の画像データとなる場合もある。このような場合、画像データを構成する画素全てではなく、デコード処理を省略して、縮小画像を得る縮小デコードを利用することでデコード処理を高速化することもよい。特にＲＡＷ画像データのように、撮像素子にて得られた画像データを構成する画素補間処理は、間引き補間によって処理を大幅に向上することが可能であるため、縮小デコードは有効である。
【００３８】
図５は、図４のステップＳ４０４における歪曲収差補正処理を示すフローチャートである。
【００３９】
ここでは、デコード画像に歪曲収差補正を施してフィット表示部３０１に表示する画像を得るための工程について述べる。
【００４０】
歪曲収差補正処理は、歪曲収差用のルックアップテーブルを使って行う。このルックアップテーブルは、画像データ上の二次的に配置された離散的な座標における歪曲収差補正前の像高と歪曲収差補正後の像高を対応させた表である。本実施形態では、レンズ特性データを補間して得られたルックアップテーブルを用いて、歪曲収差補正前の像高から歪曲収差補正後の像高へ変換することを順変換、歪曲収差補正後の像高から歪曲収差補正前の像高へ変換することを逆変換と呼ぶ。
【００４１】
図６はこのルックアップテーブルを補正関数として模式的に示したものであり、この補正関数を介して、歪曲収差補正前の像高と歪曲収差補正後の像高を変換することができる。
【００４２】
ステップＳ５０１において、レンズ収差補正の対象となる画像に付随した、撮影時のカメラや撮影レンズの種類、焦点距離、あるいは、絞りの開口径等の情報を基に、レンズ特性データ供給部１０７からレンズ特性データを選択して取得する。
【００４３】
ステップＳ５０２において、レンズ収差補正の対象となる画像の撮影時情報からデコード画像の画素ピッチを取得する。画素ピッチとは得られた画像データの画素間の距離であり、本実施形態では、撮像素子上の画素間の距離をミリ単位で表したものである。
【００４４】
ステップＳ５０３において、画像データの幅および高さと、フィット表示部３０１の幅および高さを比較し、この画像データの全体をフィット表示部３０１に表示するために縮小した際の、その縮小後の画像のサイズを求める。
【００４５】
ステップＳ５０４において、下記（１）式により、フィット表示部３０１に表示する画像の中心から画像の四隅の頂点までのピクセル単位での距離を示す歪曲収差補正用のルックアップテーブルサイズｆｓを算出する。下記（１）式におけるｆｗおよびｆｈは、それぞれ、ステップＳ５０３で求めた画像サイズのピクセル単位での幅および高さである。
ｆｓ＝√（（（ｆｗ／２）＊（ｆｗ／２））＋（（ｆｈ／２）＊（ｆｈ／２）））・・・（１）
ステップＳ５０５において、ステップＳ５０４で求めたサイズに応じて、ステップＳ５０１で得たレンズ特性データをスプライン補間する演算を行い、歪曲収差補正用のルックアップテーブルを作成する。
【００４６】
このルックアップテーブルを順変換に用いる場合の入力はデコード画像の中心からのピクセル単位の距離（像高）となり、出力はフィット表示部３０１に表示する画像の中心からのピクセル単位の距離（像高）となる。逆変換に用いる場合の入力はフィット表示部３０１に表示する画像の中心からのピクセル単位の距離（像高）となり、出力はデコード画像の中心からのピクセル単位の距離（像高）となる。
【００４７】
このルックアップテーブルを生成するために、レンズ特性データの像高（ミリ単位）からピクセル単位の像高へ変換する必要があるが、この変換にはステップＳ５０２で得たデコード画像の画素ピッチを用いる。また、ステップＳ４０１で縮小デコードした場合には、デコード画像の画素ピッチを縮小率分の１倍する必要がある。例えば縮小デコード後の幅が０．５倍になったのであれば、デコード画像の画素ピッチは２倍にして計算する必要がある。
【００４８】
ステップＳ５０６において、フィット表示部３０１に表示する画像の各画素データの値を求めるため、デコード画像を用いて歪曲収差補正画素値算出処理を実行する。歪曲収差補正画素値算出処理については図７、８を用いて後述する。そして、フィット表示部３０１に表示する画像の全ての画素データについて値を算出したら、このフローを終了する。
【００４９】
図７は、上述したステップＳ５０６の歪曲収差補正画素値算出処理を示すフローチャートであり、図８は図７に示す歪曲収差補正画素値算出処理の内容の理解を容易にするためのイメージ図である。
【００５０】
歪曲収差補正画素値算出処理では、フィット表示部３０１に表示される幅ｆｗ、高さｆｈの画像データの座標（ｉ，ｊ）に位置する画素データの出力値を歪曲収差補正用のルックアップテーブルを参照して求める。
【００５１】
ステップＳ７０１において、フィット表示部３０１に表示する画像の中心から座標（ｉ，ｊ）までのピクセル単位の距離（像高）を求める。
【００５２】
ステップＳ７０２において、歪曲収差補正用のルックアップテーブルを用いて、その座標（ｉ，ｊ）の像高に応じた補正量を求める。この像高が整数値にならない場合は、線形補間で補正量を算出する。
【００５３】
ステップＳ７０３において、ステップＳ７０２で求めた補正量を用いて、歪曲収差補正前のデコード画像における座標を下記（２）式で算出する。
Ｐ’（ｉ，ｊ）＝ｄ’＊Ｐ（ｉ，ｊ）／ｄ・・・（２）
ここで、Ｐ（ｉ，ｊ）はフィット表示部３０１に表示する歪曲収差補正後の画像の中心から座標（ｉ，ｊ）への方向ベクトルである。Ｐ’（ｉ，ｊ）は歪曲収差補正前の画像の中心から、歪曲収差補正後の座標（ｉ，ｊ）が歪曲収差補正前に位置した座標への方向ベクトルである。ｄは歪曲収差補正後の画像の座標（ｉ，ｊ）のピクセル単位での像高、ｄ’は歪曲収差補正用のルックアップテーブルを用いて算出した歪曲収差補正前の画像の座標（ｉ，ｊ）のピクセル単位での像高である。
【００５４】
すなわち、歪曲収差補正前の座標の像高ｄと、ルックアップテーブルを用いて、この座標に対応する歪曲収差補正後の座標の像高ｄ’を求める。そして、これらの像高ｄ、ｄ’と、歪曲収差正後の座標の方向ベクトルＰ（ｉ，ｊ）を掛けることによって、歪曲収差補正前の座標の方向ベクトルを求めている。
【００５５】
そしてステップＳ７０４において、歪曲収差補正前のデコード画像にてＰ’（ｉ，ｊ）に相当する座標の周囲に隣接する４つの座標の画素データの値を用いて、バイリニア補間を施す。そして得られた値を、歪曲収差補正後の座標（ｉ，ｊ）の画素データの値とする。
【００５６】
以上のようにして、歪曲収差補正が施された縮小画像をフィット表示部３０１に表示する。この歪曲収差補正は、デコード画像よりも小さなサイズの画像データに対して行われる処理であるため、デコード画像の全体に対して歪曲収差補正を施す場合に比較して処理時間を短縮できる。
【００５７】
次に、拡大表示部３０２にレンズ収差補正処理を施した画像を表示するための処理について説明する。
【００５８】
拡大表示部３０２は、フィット表示部３０１と異なり、歪曲収差補正だけでなく倍率色収差補正を施した画像を表示するため、縮小デコードを行わずに等倍表示を行う。縮小デコードを行わずにデコードしたデコード画像を、以後フル解像度画像と呼ぶ。
【００５９】
このフル解像度画像の全体に対して歪曲収差補正を行うと、計算処理の負荷が膨大なものになってしまう。しかしながら、この拡大表示部３０２の表示領域にはフル解像度画像の一部のみの画像が表示されるため、必要とされる領域に対してのみ歪曲収差補正処理を実行することで、処理を高速化することが可能である。
【００６０】
この必要とされる領域を算出するためには、図９（ａ）、（ｂ）に示すように、拡大表示部３０２に表示される歪曲収差補正後の矩形を構成するために必要な領域を含むように、歪曲収差補正前の領域を算出する必要がある。
【００６１】
本実施形態では、拡大表示部３０２に表示される歪曲収差補正後の矩形を囲む四辺を構成する領域に対応した歪曲収差補正前の領域を算出し、この領域に外接する矩形である補正対象領域に対してのみ、レンズ収差補正処理を実行する。歪曲収差補正は複雑な変形をする可能性があるため、本実施形態では四辺を構成する全ての画素（以下、周囲画素という）を用いて補正対象領域を求めている。ただし、レンズ特性データから極端な座標の移動が生じないことが予めわかっている場合には、歪曲収差補正後の矩形の４頂点だけを変換し、歪曲収差補正前の４頂点を算出し、この４頂点よりもやや広い領域のみを補正対象領域としても良い。以下の説明においては、補正対象領域は長方形であるものとする。
【００６２】
図１０は拡大表示部３０２に表示する画像に対する画像処理の流れを示すフローチャートである。上述したように、拡大表示部３０２に表示される画像に対しては、歪曲収差補正と倍率色収差補正の両方のレンズ収差補正が行われる。
【００６３】
ステップＳ１００１において、レンズ収差補正処理の対象となる画像をデコードし、歪曲収差補正前のフル解像度画像を得る。
【００６４】
ステップＳ１００２において、歪曲収差補正スライダ３０３で指定された歪曲収差補正の適用量に応じた歪曲収差補正用のルックアップテーブルを生成する。歪曲収差補正用のルックアップテーブルは、図５のステップＳ５０１からステップＳ５０５までで示した処理手順とほぼ同様の手順で生成される。ただし、拡大表示部３０２には画像が等倍表示されるためステップＳ５０３が飛ばされる。また、歪曲収差補正用のルックアップテーブルサイズｆｓに代えて、下記（３）式を用いてルックアップテーブルサイズｄｓを算出し、これを用いて歪曲収差補正用のルックアップテーブルを生成する点が異なる。下記（３）式におけるｗおよびｈは、それぞれ、フル解像度画像のピクセル単位での幅および高さである。
ｄｓ＝√（（（ｗ／２）＊（ｗ／２））＋（（ｈ／２）＊（ｈ／２）））・・・（３）
ステップＳ１００３において、歪曲収差補正用のルックアップテーブルを用いて、レンズ収差補正処理の対象となるフル解像度画像の領域を算出する。このレンズ収差補正処理の対象となる補正対象領域の算出処理について図１１を用いて説明する。
【００６５】
ステップＳ１１０１において、ユーザーから指示されたフィット表示部３０１の画像における領域の座標を、幅ｗおよび高さｈの等倍画像上における領域の座標に変換し、拡大表示部３０２に表示する歪曲収差補正後の画像の領域を求める。そして、求めた画像の領域の境界部を構成する周囲画素の座標を求める。
【００６６】
ステップＳ１１０２において、全ての周囲画素について歪曲収差補正後の画像中心からのピクセル単位での距離（像高）を求め、この距離と歪曲収差補正用のルックアップテーブルを用いて、歪曲収差補正前の画像における座標を得る。
【００６７】
ステップＳ１１０３において、歪曲収差補正前の画像上にてステップＳ１１０２で得た座標を囲む最小の長方形の矩形領域を求め、これを補正対象領域とする。
【００６８】
そして図１０に戻り、ステップＳ１００４において、フル解像度画像上の補正対象領域に対して公知の方法により倍率色収差補正を適用した画像データを得る。
【００６９】
倍率色収差を例にあげたが、軸上色収差、周辺光量落ち、あるいは、フィルタ処理等の他のいずれかの補正処理を施しても良いし、あるいは、それら複数の補正処理を施しても良い。
【００７０】
ステップＳ１００５において、ステップＳ１００４で得た倍率色収差補正後の画像データに対して歪曲収差補正処理を適用し、拡大表示部３０２に表示するための画像データを得、この画像データを用いて拡大表示部３０２に画像を表示する。この歪曲収差補正処理は、ステップＳ１００２で生成した歪曲収差補正ルックアップテーブルを用いて補正対象領域に対して順変換を行う。
【００７１】
ステップＳ１００６において、ユーザーからアプリケーションを終了する指示が入力されたかどうかを判定し、入力された場合はこのフローを終了する。アプリケーションを終了しない場合は、ステップＳ１００７に進む。
【００７２】
ステップＳ１００７において、倍率色収差補正スライダ３０４が操作され、倍率色収差補正の適用量が変更されたかどうかを判定する。適用量が変更された場合はステップＳ１００４へ戻り、変更されていなかった場合はステップＳ１００８へ進む。
【００７３】
ステップＳ１００８において、歪曲収差補正スライダ３０３が操作され、歪曲収差補正の適用量が変更されたかどうかを判定する。適用量が変更された場合はステップＳ１００２へ戻り、変更されていない場合はステップＳ１００６へ戻る。
【００７４】
以上のようにして、歪曲収差補正および倍率色収差補正が施された等倍画像を拡大表示部３０２に表示することができる。これにより、ユーザーが歪曲収差補正と倍率色収差補正の効果を実際に見て確認することができるとともに、フル解像度画像の一部の領域に対してのみ歪曲収差補正処理を行うことができるので、処理時間を短縮することができる。また、拡大表示部３０２に表示する画像データに対する第１の歪曲収差補正と、フィット表示部３０１に表示する画像データに対する第２の歪曲収差補正とで、それぞれの画像サイズにあわせて歪曲収差補正用のルックアップテーブルをカスタマイズすることができる。
【００７５】
（第２の実施形態）
第１の実施形態では歪曲収差補正以外の画像処理が倍率色収差補正だけであったため、歪曲収差補正用のルックアップテーブルを用いた逆変換で直接算出した矩形領域を歪曲収差補正および倍率色収差補正の補正対象領域とした。
【００７６】
しかしながら、歪曲収差補正処理以外にフィルタ処理のような周辺画素を利用する処理が含まれる場合、その影響範囲に応じて補正対象領域を拡大しても良い。
【００７７】
この場合、拡大した補正対象領域に対してフィルタ処理を施した後、この拡大した補正対象領域を逆変換にて算出された拡大前の補正対象領域に限定し、この限定した補正対象領域に対して歪曲収差補正を実行する。
【００７８】
図１２を用いて、第一の実施形態で述べた倍率色収差、歪曲収差に加え、半径ｎ画素に対するメディアンフィルタを適用する場合の補正対象領域を説明する。ここでは、まず倍率色収差補正を適用した後、メディアンフィルタを適用する。
【００７９】
この場合、第１の実施形態と同様に補正対象領域を求めた後、メディアンフィルタの適用領域を考慮して、補正対象領域の上下左右をｎ画素拡大する。図１２（ａ）に歪曲補正用のルックアップテーブルを用いて求められた補正対象領域を示し、図１２（ｂ）にこの補正対象領域の上下左右をｎ画素拡大した拡大後の補正対象領域を示す。この図１２（ｂ）に示す拡大後の補正対象領域に対して倍率色収差補正およびメディアンフィルタを適用した後、図１２（ａ）に示す補正領域に対して歪曲収差補正を適用して、拡大表示部３０２に表示するための画像データを生成すればよい。
【００８０】
（第３の実施形態）
さらに、別の実施形態について説明する。
【００８１】
図２で示したように、歪曲収差補正後の画像データは複雑に変形した形状になるが、一般的にデジタル画像であるビットマップは矩形であり、歪曲収差補正後の領域から歪曲収差補正前の画素だけを含む矩形領域を有効領域として出力とすることが多い。
【００８２】
したがって、全ての画素データに対して歪曲収差補正処理する前に、歪曲収差補正後に表示される有効領域を求めておけば、最終的に切り捨てる不要な画素に関する補正処理を行う必要が無い。本実施形態では、レンズ特性データから順変換のルックアップテーブルを生成し、このテーブルを用いて有効領域を算出する。ここで、順変換に用いるルックアップテーブルはレンズ特性データを用いて作成しても良いが、本実施形態では、第１の実施形態で逆変換のために用いた歪曲収差補正用のルックアップテーブルから作成する。
【００８３】
図１３は、有効領域の算出処理を示すフローチャートである。
【００８４】
ステップＳ１３０１において、歪曲収差補正処理の対象となる画像から歪曲収差補正前のフル解像度画像の幅ｗ、高さｈを得る。
【００８５】
ステップＳ１３０２において、歪曲収差補正スライダ３０３で指定された歪曲収差補正の適用量に応じた歪曲収差補正用のルックアップテーブルを生成する。この歪曲収差補正用のルックアップテーブルは、上述した（３）式を用いて、第１の実施形態にて拡大表示部３０２で表示する画像のためのルックアップテーブルを生成したときとほぼ同様の手順で生成される。
【００８６】
ステップＳ１３０３において、歪曲収差補正用のルックアップテーブルから、歪曲収差補正前のフル解像度画像における補正対象領域の最大像高を求める。ここで、最大像高は歪曲収差補正用のルックアップテーブルの最大値と等しい。歪曲収差補正用のルックアップテーブルがピクセル単位で表現されるため、最大像高もピクセル単位となる。
【００８７】
ステップＳ１３０４において、この最大像高を用いて歪曲収差補正ルックアップテーブルから順変換ルックアップテーブルを生成する。順変換用のルックアップテーブルサイズｒｔｓは、歪曲収差補正ルックアップテーブルの最大値ｍａｘＬを用いて次式で算出する。
ｒｔｓ＝［ｍａｘＬ＋１］・・・（４）
ここで、［］はガウス記号である。順変換用のルックアップテーブルは、入力が歪曲収差補正前のピクセル単位の像高、出力が歪曲収差補正後のピクセル単位の像高である。順変換用のルックアップテーブルの出力が整数値にならない場合があるが、その場合は歪曲収差補正用のルックアップテーブルを線形補間することによって補う。
【００８８】
ステップＳ１３０５、Ｓ１３０６において有効領域のサイズを求める。ここで、図１４に補正対象領域と有効領域の関係を示す。図１４においてｘ軸は画像の幅を示し、ｙ軸は画像の高さを示す。
【００８９】
まずステップＳ１３０５で、図１４の補正対象領域の高さをｈ／２に固定し、幅を０からｗ／２まで変化させる。そして、変化させた幅毎に原点からの距離を計算して順変換用のルックアップテーブルを引き、歪曲収差補正後の新たな座標を計算する。得られた座標のｘ軸の成分のうち最も小さい値をｈＷとすると、有効領域の幅はｈＷの２倍の値になる。
【００９０】
次にステップＳ１３０６で、図１４の補正領域の幅をｗ／２に固定し、高さを０からｈ／２まで変化させる。そして、変化させた高さ毎に原点からの距離を計算して順変換用のルックアップテーブルを引き、歪曲収差補正後の新たな座標を計算する。得られた座標のｘ軸の成分のうち最も小さい値をｈＷとすると、有効領域の高さはｈＷの２倍の値になる。
【００９１】
このように、ステップＳ１３０５およびＳ１３０６では、画像の中心部を通る２軸で分割された領域のうちの第１象限について有効領域を求める。有効領域は画像を中心とする矩形であるので、他の象限については処理を行う必要は無く、第１象限で求めた有効領域の幅と高さを単純に２倍することで、画像全体の有効領域を得ることができる。
【００９２】
以上のような処理を実行して有効領域を算出することで、必要な領域に対してのみレンズ収差補正処理を実行することが可能になる。
【００９３】
（第４の実施形態）
上述した第１の実施形態で示したアプリケーションでは、フィット表示部３０１に歪曲収差補正処理後の画像が内接するように表示した。しかしながら、第１の実施形態で述べた方法では、歪曲収差補正処理前の画像データのサイズが大きいと、歪曲収差補正処理に伴うメモリアクセス速度が遅くなってしまうという問題がある。
【００９４】
さらに、歪曲収差補正処理前後の画像の解像度が変化してしまうという課題がある。歪曲収差補正を施すと、図１４に示したように、画素の像高が変化するため、歪曲収差補正処理の前後で画像サイズが変化する。よって、歪曲収差補正処理の前後で画像サイズが同じになるようにするためには、補正後の画像全体を拡大あるいは縮小処理することになる。その結果、歪曲収差補正の影響をほとんど受けない画像の中心部分までも縮小されてしまう。
【００９５】
これを解決するためには、歪曲収差補正処理前後の画素ピッチを固定し、歪曲収差補正処理の適用量に応じて画像サイズが変化する様を視覚的に確認できるような表示を行うことが望ましい。
【００９６】
そこで本実施形態では、まず、歪曲収差補正処理を適用する前に縮小処理を実行する。歪曲収差補正処理において参照するメモリ領域を小さくすることで、画像処理に伴うメモリアクセス速度を向上させるためである。さらに、歪曲収差補正処理の前後の画像で同じ画素ピッチを想定して、歪曲収差補正処理を実行した画像をフィット表示部３０１に表示する。歪曲収差補正処理前後の画像のうち、大きいサイズの画像がちょうどフィット表示領域に収まるサイズとなるように画像データを縮小する。そして、この画像データを用いて歪曲収差補正処理を施すことで、補正処理の前後による画像サイズの変化を視覚的に提示することができる。
【００９７】
図１５は本実施形態におけるフィット表示部３０１に表示する画像に対する画像処理の流れを示すフローチャートである。基本的な処理は図４と類似しているが、デコード直後に画像の縮小率を求めて、縮小処理を実行する点が異なる。
【００９８】
ステップＳ１５０１において、画像データをデコードし、デコード画像を取得する。
【００９９】
ステップＳ１５０２において、歪曲収差補正の適用量を最大にした場合の有効領域を算出する。
【０１００】
ステップＳ１５０３において、デコード画像の変倍率を求める。まず、デコード画像とステップＳ１５０２で得た画像サイズの幅および高さについて、大きい方の値を選択する。選択した値を基に生成される矩形に対してデコード画像が内接するように変倍率を求める。この変倍率でリサイズした画像データに対して歪曲収差補正処理を実行すると、歪曲収差補正の適用量を０からから最大値まで変化させた場合でも、フィット表示部３０１に画像を収めることができる。
【０１０１】
ステップＳ１５０４において、デコード画像をリサイズし、この画像データをキャッシュする。一般的にフィット表示部３０１に表示する画像は、フル解像度画像よりもサイズが小さいことが多いので、このような処理は高速化に非常に有効である。
【０１０２】
ステップＳ１５０５以降の処理は、第１の実施形態における図４のステップＳ４０２以降の処理とほぼ同じであるため、説明を省略する。
【０１０３】
ただし、ステップＳ１５０７にて実行する歪曲収差補正処理は第１実施形態と異なり、本実施形態では歪曲収差補正前と歪曲収差補正処理の後で画素ピッチを統一する。そのため、撮像素子上の像高に応じてミリ単位で表現された歪曲収差補正ルックアップテーブルを用いる。この画素ピッチの値は、ステップＳ１５０３で求めた変倍率に応じて変換することで、正しく歪曲収差補正の補正量を算出することができる。
【０１０４】
このように、歪曲収差処理補正前後の画像のうち、大きいサイズの画像とフィット表示領域の大きさの比較結果に応じて画像データの縮小処理を行うことで、メモリアクセス速度の向上と画像サイズの変化量の提示を可能にすることができる。
【０１０５】
次に、上述した各実施形態の機能を実現するためのプログラムについて説明する。
【０１０６】
上述した実施形態の機能を実現するように各種のデバイスを動作させ、その各種のデバイスと接続された装置あるいはシステム内のコンピュータに対して上述した実施形態の機能を実現させるソフトウェアのプログラムコード（プログラム）を供給する。
【０１０７】
そして、そのシステムあるいは装置のコンピュータ（ＣＰＵあるいはＭＰＵ）に（ソフトウェア的に又はハードウェア的に）格納された画像処理プログラムにしたがって上に記載した各種のデバイスを動作させるようにしたものも、本発明の範疇に含まれる。
【０１０８】
また、この場合、上記のソフトウェアの画像処理プログラム自体が上述した実施形態の機能を実現することになる。
【０１０９】
また、その画像処理プログラム自体、及びその画像処理プログラムのプログラムコードをコンピュータに供給するための手段、例えばかかるプログラムを格納した記憶媒体も、本発明の範疇に含まれる。
【０１１０】
かかる画像処理プログラムを記憶する記憶媒体としては、例えば、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【０１１１】
また、供給された画像処理プログラムをコンピュータが実行することにより、上述の実施形態の機能が実現されるだけではない。
【０１１２】
例えば、その画像処理プログラムがコンピュータにおいて稼動しているＯＳ（オペレーティングシステム）あるいは他のアプリケーション等と協働して上述の実施形態の機能を実現させる場合にも、かかる画像処理プログラムは、本発明の範疇に含まれる。
【０１１３】
さらに、供給された画像処理プログラムは、コンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納される。
【０１１４】
そして、その画像処理プログラムの指示に基づいて機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される場合にも、かかる画像処理プログラムは本発明の範疇に含まれる。
【図面の簡単な説明】
【０１１５】
【図１】本発明の実施形態を実現する画像処理装置の概略を示した図である。
【図２】歪曲収差補正によって画像データが変形する様子を示した図である。
【図３】本発明の本実施形態における画像処理装置にて実行されるアプリケーションのＧＵＩの概要を示す図である。
【図４】本発明の第１の実施形態におけるフィット表示部に表示する画像に対する画像処理の流れを示すフローチャートである。
【図５】本発明の第１の実施形態における歪曲収差補正処理を示すフローチャートである。
【図６】本発明の第１の実施形態における歪曲収差補正用のルックアップテーブルを補正関数として模式的に示した図である。
【図７】本発明の第１の実施形態における歪曲収差補正画素値算出処理を示すフローチャートである。
【図８】図７に示す歪曲収差補正画素値算出処理の内容の理解を容易にするためのイメージ図である。
【図９】拡大表示部に表示される歪曲収差補正後の画像に対応する歪曲収差補正前の画像の領域を説明するための図である。
【図１０】本発明の第１の実施形態における拡大表示部に表示する画像に対する画像処理の流れを示すフローチャートである。
【図１１】本発明の第１の実施形態におけるレンズ収差補正処理の対象となる領域の算出処理の流れを示すフローチャートである。
【図１２】本発明の第２の実施形態における倍率色収差、歪曲収差に加え、メディアンフィルタを適用する場合の補正対象領域を説明するための図である。
【図１３】本発明の第３の実施形態における有効領域の算出処理を示すフローチャートである。
【図１４】本発明の第３の実施形態における補正対象領域と有効領域の関係を示すための図である。
【図１５】本発明の第４の実施形態におけるフィット表示部に表示する画像に対する画像処理の流れを示すフローチャートである。
【符号の説明】
【０１１６】
１０１  ＣＰＵ
１０２  一次記憶素子
１０３  二次記憶素子
１０４  入力デバイス
１０５  出力デバイス
１０６  読込デバイス
１０７  レンズ特性データ供給部
【図１】
0004940050.tif 000002
【図２】
0004940050.tif 000003
【図３】
0004940050.tif 000004
【図４】
0004940050.tif 000005
【図５】
0004940050.tif 000006
【図６】
0004940050.tif 000007
【図７】
0004940050.tif 000008
【図８】
0004940050.tif 000009
【図９】
0004940050.tif 000010
【図１０】
0004940050.tif 000011
【図１１】
0004940050.tif 000012
【図１２】
0004940050.tif 000013
【図１３】
0004940050.tif 000014
【図１４】
0004940050.tif 000015
【図１５】
0004940050.tif 000016