(57)【要約】【課題】画像内の地平線または水平線を推定すること。【解決手段】制御装置１０４は、水平方向に対する撮像光学系の光軸の傾きである第１の傾き情報と、光軸を中心とするカメラの回転方向の傾きである第２の傾き情報とを検出し、検出した第１の傾き、および第２の傾きに基づいて、カメラで撮像された画像内の地平線、または水平線を推定する。【選択図】図１
2007158997.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
水平方向に対する撮像光学系の光軸の傾きである第１の傾き情報と、前記光軸を中心とするカメラの回転方向の傾きである第２の傾き情報とを検出する傾き情報検出手順と、
前記傾き情報検出手順によって検出した前記第１の傾き情報、および前記第２の傾き情報に基づいて、前記撮像光学系を通して前記カメラにより撮像された画像内の地平線または水平線を推定する推定手順とを実行させるための画像処理プログラム。
【請求項２】
請求項１に記載の画像処理プログラムにおいて、
コンピュータに、
前記画像内おける重力の向きを判定する重力方向判定手順と、
前記重力方向判定手順による判定結果、および前記推定手順による推定結果に基づいて、前記画像内で空と推定される領域を空領域として抽出する空領域抽出手順とをさらに実行させるための画像処理プログラム。
【請求項３】
請求項１に記載の画像処理プログラムにおいて、
前記推定手順は、前記撮像光学系の焦点距離情報、前記カメラの撮像素子の大きさ情報、および前記撮像光学系の収差情報のうち少なくとも一つの情報をさらに加味して、前記画像内の地平線または水平線を推定することを特徴とする画像処理プログラム。
【請求項４】
請求項２に記載の画像処理プログラムにおいて、
コンピュータに、
前記空領域抽出手順によって抽出された前記空領域のデータに基づいて、前記画像に対して実行する画像処理の第１の係数を決定する係数決定手順をさらに実行させるための画像処理プログラム。
【請求項５】
請求項４に記載の画像処理プログラムにおいて、
前記画像処理の第１の係数は、前記画像のホワイトバランスを調整するためのホワイトバランス係数であることを特徴とする画像処理プログラム。
【請求項６】
請求項５に記載の画像処理プログラムにおいて、
コンピュータに、
前記空領域の色温度を検出する色温度検出手順と、
前記色温度検出手順による検出結果に基づいて、前記空領域として抽出した領域の画像が空の画像であるか否かを判定する空領域判定手順と、
前記空領域判定手順によって前記空領域の画像が空の画像であると判定された場合には、前記画像に対して前記第１の係数をホワイトバランス係数として設定し、前記空領域判定手順によって前記空領域の画像が空の画像でないと判定された場合には、前記画像に対して前記第１の係数とは異なる第２の係数をホワイトバランス係数として設定するホワイトバランス係数設定手順とをさらに実行させるための画像処理プログラム。
【請求項７】
水平方向に対する撮像光学系の光軸の傾きである第１の傾き情報と、前記光軸を中心とするカメラの回転方向の傾きである第２の傾き情報とを検出する傾き情報検出手段と、
前記傾き情報検出手段によって検出した前記第１の傾き情報、および前記第２の傾き情報に基づいて、前記撮像光学系を通して撮像した画像内の地平線または水平線を推定する推定手段とを備えることを特徴とするカメラ。
【請求項８】
請求項７に記載のカメラにおいて、
前記画像内おける重力の向きを判定する重力方向判定手段と、
前記重力方向判定手段による判定結果、および前記推定手段による推定結果とに基づいて、前記画像内で空と推定される領域を空領域として抽出する空領域抽出手段とをさらに備えることを特徴とするカメラ。
【請求項９】
請求項７に記載のカメラにおいて、
前記推定手段は、前記撮像光学系の焦点距離情報、撮像素子の大きさ情報、および前記撮像光学系の収差情報のうち少なくとも一つの情報をさらに加味して、前記画像内の地平線または水平線を推定することを特徴とするカメラ。
【請求項１０】
請求項７に記載のカメラにおいて、
前記空領域抽出手段によって抽出された前記空領域のデータに基づいて、前記画像に対して実行する画像処理の第１の係数を決定する係数決定手段をさらに備えることを特徴とするカメラ。
【請求項１１】
請求項７に記載のカメラにおいて、
前記画像処理の第１の係数は、前記画像のホワイトバランスを調整するためのホワイトバランス係数であることを特徴とするカメラ。
【請求項１２】
請求項１１に記載のカメラにおいて、
前記空領域の色温度を検出する色温度検出手段と、
前記色温度検出手段による検出結果に基づいて、前記空領域として抽出した領域の画像が空の画像であるか否かを判定する空領域判定手段と、
前記空領域判定手段によって前記空領域の画像が空の画像であると判定された場合には、前記画像に対して前記第１の係数をホワイトバランス係数として設定し、前記空領域判定手段によって前記空領域の画像が空の画像でないと判定された場合には、前記画像に対して前記第１の係数とは異なる第２の係数をホワイトバランス係数として設定するホワイトバランス係数設定手段とをさらに備えることを特徴とするカメラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を処理して画像内における地平線または水平線を推定するための画像処理プログラム、および画像を撮像するためのカメラに関する。
【背景技術】
【０００２】
次のような画像処理装置が特許文献１によって知られている。この画像処理装置は、実写画像を画像処理して画像の変化度合いが大きな領域を特定し、特定した領域に他の領域よりも重い重み付けを付与する。そして、画像データに基づいて抽出した画素の特徴量を、特定した領域に付与した重み付けを用いて再評価する。
【０００３】
【特許文献１】特許第３５７３１４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
一般的に、地平線や水平線より下の領域の画像は、地平線や水平線より上の空の領域色の影響を受けている場合が多い。そのため、撮影される画像中の地平線や水平線の位置を推定することができれば、地平線や水平線により分けられる領域の一方から情報を得ることにより、撮影された画像に好ましい処理をすることが可能となる。ところが、従来の画像処理装置では、画像中の地平線や水平線の位置に基づいた適切な処理ができないという問題があった。
【課題を解決するための手段】
【０００５】
本発明は、水平方向に対する撮像光学系の光軸の傾きである第１の傾き情報と、光軸を中心とするカメラの回転方向の傾きである第２の傾き情報とを検出し、検出した第１の傾き、および第２の傾きに基づいて、カメラで撮像された画像内の地平線または水平線を推定することを特徴とする。
そして、画像内おける重力の向きを判定し、重力の向きの判定結果と、地平線または水平線の推定結果とに基づいて画像内で空と推定される領域を空領域として抽出することが好ましい。
画像内の地平線または水平線を推定するに当たっては、撮像光学系の焦点距離情報、カメラの撮像素子の大きさ情報、および撮像光学系の収差情報のうち少なくとも一つの情報をさらに加味してもよい。
また、抽出された空領域のデータに基づいて、画像に対して実行する画像処理の第１の係数を決定してもよく、この第１の係数は、画像のホワイトバランスを調整するためのホワイトバランス係数としてもよい。
さらに、空領域の色温度を検出し、その検出結果に基づいて空領域として抽出した領域の画像が空の画像であるか否かを判定し、空領域の画像が空の画像であると判定された場合には、画像に対して第１の係数をホワイトバランス係数として設定し、空領域の画像が空の画像でないと判定された場合には、画像に対して第１の係数とは異なる第２の係数をホワイトバランス係数として設定することが好ましい。
【発明の効果】
【０００６】
本発明によれば、画像内の地平線または水平線を推定することができるため、地平線または水平線の位置に基づいた画像の処理が可能となる。
【発明を実施するための最良の形態】
【０００７】
図１は、本実施の形態における画像処理装置の一実施の形態の構成を示すブロック図である。画像処理装置１００は、例えばパーソナルコンピュータ（パソコン）であり、入力装置１０１と、外部インターフェース１０２と、ＨＤＤ１０３と、制御装置１０４と、モニタ１０５と、プリンタ１０６とを備えている。
【０００８】
入力装置１０１は、キーボードやマウスなど、使用者によって操作される種々の入力部材を含んでいる。
【０００９】
外部インターフェース１０２は、例えばＵＳＢインターフェースや無線ＬＡＮモジュールなど、外部機器と有線通信、または無線通信を行うためのインターフェースである。本実施の形態におけるパソコンは、この外部インターフェース１０２を介して外部機器、例えばカメラ（デジタルカメラ）から画像ファイルを取り込む。または、外部インターフェース１０２として、メモリカードなどの記憶媒体を挿入するためのメモリカードスロットを設け、メモリカード経由で画像データを取り込むようにしてもよい。
【００１０】
なお、外部インターフェース１０２を介して取り込まれる画像ファイルは、画像データ部と付加情報部とを含み、画像データ部には、デジタルカメラで撮像された生データ、すなわちＲＡＷデータが格納されている。このＲＡＷデータは、例えば、画像データを構成する各々の画素にＲＧＢのいずれか１つの色成分の色情報が存在するＢａｙｅｒ画像であるものとする。なお、ＲＧＢの各色成分の色情報とは、例えば０〜２５５のレベルで表される各色の強度信号であり、ＲＧＢの各色の強度信号を基に各画素の輝度が決定される。
【００１１】
また、付加情報部には、デジタルカメラで画像が撮像された時点における（Ａ）水平方向に対するレンズ（撮像光学系）の光軸の傾き情報、（Ｂ）レンズの光軸を中心とするデジタルカメラの回転方向の傾き情報、（Ｃ）レンズの焦点距離情報、（Ｄ）デジタルカメラに搭載された撮像素子、例えばＣＣＤの大きさ情報、（Ｅ）レンズの収差情報、および（Ｆ）画像の撮像地点情報、例えば緯度経度情報を含んでいる。この他、画像撮像時の日時情報など、種々の画像に関する情報も付加情報部に含んでいる。
【００１２】
このため画像を撮像したデジタルカメラは、（Ａ）および（Ｂ）の情報を取得するための重力センサ、および（Ｆ）の情報を取得するためのＧＰＳセンサを備えている。また、（Ｃ）および（Ｅ）の各情報については、デジタルカメラにマウントされているレンズ固有の情報として、交換レンズ内にあらかじめ記憶されているものとし、（Ｄ）の情報は、デジタルカメラに搭載されている撮像素子情報として、デジタルカメラ内にあらかじめ記憶されているものとする。
【００１３】
なお、デジタルカメラが一般的なコンパクトデジカメのように、レンズを交換できない機種である場合には、（Ｃ）および（Ｅ）の各情報はデジタルカメラ内にあらかじめ記憶されている。また、デジタルカメラが単焦点のレンズを搭載している場合には、（Ｃ）の情報は固定値となる。
【００１４】
外部インターフェース１０２を介して取り込んだ画像ファイルは、ＨＤＤ１０３に出力されて、所定のフォルダ内に記憶される。また、ＨＤＤ１０３には画像ファイルに画像データ部として含まれるＲＡＷデータを現像するためのＲＡＷ現像ソフトがインストールされている。すなわち、ＨＤＤ１０３にはＲＡＷ現像ソフトを画像処理装置１００上で実行するための画像処理プログラムが記憶されている。
【００１５】
制御装置１０４は、ＣＰＵ、メモリ、およびその他周辺回路で構成され、ＨＤＤ１０３に記憶された画像処理プログラムを実行することによって、ＲＡＷ現像ソフトを起動する。すなわち、制御装置１０４は、ＨＤＤ１０３から画像処理プログラムを読み込んで、制御装置１０４が有するメモリ空間上で実行することによって、画像処理装置１００上でＲＡＷ現像ソフトを起動する。
【００１６】
このＲＡＷ現像ソフトは、図２により後述する処理を行って、処理対象のＲＡＷデータが表す画像（ＲＡＷ画像）内の地平線、または水平線を推定して、ＲＡＷ画像内で空と推定される領域（空領域）を抽出する。そして、抽出した空領域のデータに基づいて、ＲＡＷ画像のホワイトバランスを調整するためのホワイトバランス係数を設定して、ＲＡＷ画像のホワイトバランスを調整する。
【００１７】
図２は、本実施の形態における画像処理プログラムによる処理を示すフローチャートである。この図２に示す処理は、使用者によって入力装置１０１が操作され、ＲＡＷ現像ソフトの起動が指示されると、制御装置１０４によってＨＤＤ１０３から画像処理プログラムが読み込まれ、起動されることにより実行される。なお、ここでは画像処理プログラムによる処理の流れを中心に説明し、各ステップにおける処理の詳細な説明については、後述することとする。
【００１８】
ステップＳ１０において、ＲＡＷ現像ソフトの作業ウィンドウをモニタ１０５に表示する。この作業ウィンドウには、ＨＤＤ１０３内に記憶された画像ファイルの一覧が表示されている。その後、ステップＳ２０へ進み、使用者によって入力装置１０１が操作され、作業ウィンドウ内の画像ファイル一覧から処理対象とする画像が選択されたか否かを判断する。画像が選択されたと判断した場合には、ステップＳ３０へ進む。
【００１９】
ステップＳ３０では、使用者によって選択された画像ファイルをＨＤＤ１０３から制御装置１０４が有するメモリ上に読み込んで、ステップＳ４０へ進む。ステップＳ４０では、後述する地平線／水平線推定処理を行って、画像ファイルの画像データ部に含まれるＲＡＷ画像内の地平線または水平線を推定する。その後、ステップＳ５０へ進み、後述する空領域抽出処理を行って、地平線／水平線推定処理で推定したＲＡＷ画像内の地平線または水平線に基づいて、ＲＡＷ画像内の空が写っていると推定される領域を推定し、その領域を空領域として抽出する。その後、ステップＳ６０へ進む。
【００２０】
ステップＳ６０では、ステップＳ５０で抽出した空領域に本当に空が写っているか否かを判断する。空領域に空が写っていると判断した場合にはステップＳ７０へ進み、空領域のデータに基づいて、ＲＡＷ画像に対して適用するホワイトバランス係数を設定する。これに対して、空領域に空が写っていないと判断した場合にはステップＳ８０へ進み、画像全体のデータに基づいて、ＲＡＷ画像に対して適用するホワイトバランス係数を設定する。その後、ステップＳ９０へ進む。
【００２１】
ステップＳ９０では、ステップＳ７０またはステップＳ８０で設定したホワイトバランス係数に基づき、ＲＡＷ画像のホワイトバランス演算処理を行う。その後、ステップＳ１００へ進み、公知の種々の画像処理や圧縮処理を行って、画像ファイルを所定の画像形式、例えばＪｐｅｇ形式の画像ファイルに変換して、ステップＳ１１０へ進む。ステップＳ１１０では、変換後の画像データをモニタ１０５、またはプリンタ１０６へ出力する。このとき、モニタ１０５とプリンタ１０６のいずれに出力するかは、使用者によってあらかじめ設定されているものとする。その後、ステップＳ１２０へ進む。
【００２２】
ステップＳ１２０では、使用者によって入力装置１０１が操作され、ＲＡＷ現像ソフトの終了が指示されたか否かを判断する。ＲＡＷ現像ソフトの終了が指示されていないと判断した場合には、ステップＳ２０へ戻って処理を繰り返す。これに対して、ＲＡＷ現像ソフトの終了が指示されたと判断した場合には、処理を終了する。
【００２３】
次に、図２の各ステップにおける処理について説明する。なお、ステップＳ１０〜ステップＳ３０、およびステップＳ１００〜ステップＳ１２０の処理については、それぞれ公知の処理であるため説明を省略し、ステップＳ４０〜ステップＳ９０の処理について詳細に説明する。
【００２４】
まず、ステップＳ４０における地平線／水平線推定処理について説明する。この地平線／水平線推定処理では、制御装置１０４は、画像ファイルに含まれる付加情報部に記憶された（Ａ）〜（Ｅ）の各情報に基づいて、画像データ部、すなわちＲＡＷ画像内の地平線または水平線を推定する。なお、以下の説明ではＲＡＷ画像内の地平線を推定する方法について説明するが、ＲＡＷ画像内の水平線を推定する場合も同様である。
【００２５】
制御装置１０４は、まず、付加情報部に記憶されている上述した（Ａ）の情報に基づいて、画像撮像時の水平方向に対するレンズの光軸の傾きを第１の傾き情報として検出する。また、（Ｂ）の情報に基づいて、レンズの光軸を中心とするデジタルカメラの回転方向の傾きを第２の傾き情報として検出する。
【００２６】
制御装置１０４は、まず、図３に示すように、第1の傾き情報、すなわち画像撮像時の水平方向に対するレンズの光軸の傾きに基づいて、ＲＡＷ画像内の地平線が存在する位置を推定する。例えば、（Ａ）の情報に基づいて検出される水平方向に対するレンズの光軸の傾きが０であれば、一般的に地平線は光軸上に存在することになる。そして、さらに（Ｂ）の情報に基づいて検出されるレンズの光軸を中心とするデジタルカメラの回転方向の傾き（第２の傾き情報）が０である場合を想定する。ここで、回転方向が０となるのは、撮影者が撮像素子の長辺方向と地平線とが平行となるようにカメラを構えた場合、すなわちカメラをいわゆる横位置に構えた場合である。
【００２７】
この想定において、撮像素子の撮像範囲が、撮像素子範囲３ａである場合には、地平線は撮像素子範囲３ａの短辺方向における中央を通り、かつ撮像素子範囲３ａの長辺方向に延在する直線として撮像される。その結果、ＲＡＷ画像内における地平線は、撮像範囲３ｂの短辺方向における中央に相当する部分を通り、かつ撮像範囲３ｂの長辺方向に相当する方向に延在している。なお、撮像素子の撮像範囲は、図４に示すように、（Ｄ）の情報に基づいて検出される撮像素子の大きさに基づいて決定される。
【００２８】
これに対して、レンズの光軸を中心とするデジタルカメラの回転方向の傾きが０度である場合に、水平方向に対するレンズの光軸の傾きがαであれば、撮像素子範囲３ａは、図３（ｂ）に示すように、図３（ａ）に示した場合と比較してその傾きαに応じたずれ量ｄだけ垂直方向にずれる。これによって、撮像素子範囲３ａ内における地平線は、撮像素子範囲３ａの短辺方向の中央からずれ量ｄだけずれて撮像素子範囲３ａの長辺方向に延在することになる。その結果、ＲＡＷ画像内における地平線も、撮像範囲３ｂの短辺方向の中央からずれ量ｄに相当するずれ量だけずれて撮像範囲３ｂの長辺方向に相当する方向に延在する。
【００２９】
このときの撮像範囲３ｂ上における短辺方向の中央からの地平線のずれ量ｄは、（Ｃ）の情報に基づいて検出されるレンズの焦点距離ｆと、（Ａ）の情報に基づいて検出される画像撮像時の水平方向に対するレンズの光軸の傾きαとに基づいて算出される。すなわち、レンズの焦点距離ｆが長い場合には、図５に示す画角５ａのように、撮像画像内に写りこむ画角が狭くなることから、画像撮像時の水平方向に対するレンズの光軸の傾きの変化量に対するずれ量ｄは大きくなる。これに対して、レンズの焦点距離ｆが短い場合には、図５に示す画角５ｂのように、撮像画像内に写りこむ画角が広くなることから、画像撮像時の水平方向に対するレンズの光軸の傾きの変化量に対するずれ量ｄは小さくなる。
【００３０】
このことを加味して、ずれ量ｄは、レンズの焦点距離ｆと、画像撮像時の水平方向に対するレンズの光軸の傾きαとに基づいて、次式（１）により算出される。
ｄ＝ｆ・ｔａｎα  ・・・（１）
【００３１】
図３で上述した例では、（Ｂ）の情報に基づいて検出されるレンズの光軸を中心とするデジタルカメラの回転方向の傾きが０度である場合について説明したため、ＲＡＷ画像内で地平線は撮像範囲３ｂの長辺方向に相当する方向に延在していた。しかし、レンズの光軸を中心としたデジタルカメラの回転方向の傾きが０でない場合には、その傾きに応じてＲＡＷ画像内での地平線の延在方向も傾くことになる。すなわち使用者がデジタルカメラを左右のいずれかに所定角度傾けて撮像した場合には、その角度分だけＲＡＷ画像内の地平線も傾く。
【００３２】
具体的には、使用者がデジタルカメラを左方向に回転させて画像を撮像した場合には、図６（ａ）に示すように、ＲＡＷ画像内の地平線は、ＲＡＷ画像内でカメラの回転方向とは逆方向に回転角度分傾き、ＲＡＷ画像の右下から左上に向かう方向に延在することになる。換言すれば、（Ｂ）の情報に基づいてレンズの光軸を中心とするデジタルカメラの左回転方向の傾きがβであると検出された場合には、ＲＡＷ画像内における地平線は、撮像範囲３ｂの長辺方向に相当する方向から右回りにβだけ傾いて延在する。
【００３３】
これに対して、使用者がデジタルカメラを右方向に回転させて画像を撮像した場合には、図６（ｂ）に示すように、ＲＡＷ画像内の地平線は、ＲＡＷ画像内でカメラの回転方向とは逆方向に回転角度分傾き、ＲＡＷ画像の左下から右上に向かう方向に延在することになる。換言すれば、（Ｂ）の情報に基づいてレンズの光軸を中心とするデジタルカメラの右回転方向の傾きがβであると検出された場合には、ＲＡＷ画像内における地平線は、撮像範囲３ｂの長辺方向に相当する方向から左周りにβだけ傾いて延在する。
【００３４】
また、制御装置１０４は、（Ｅ）の情報に基づいて検出されるレンズの収差情報に基づいて、例えば図７に示すように画像に歪みが生じていると判定した場合には、その歪みの量を算出して、ＲＡＷ画像内における地平線も算出した歪み量だけ歪んでいると判断する。そして、この地平線の歪みを加味して、ＲＡＷ画像内における地平線を推定する。
【００３５】
次に、ステップＳ５０における空領域抽出処理について説明する。この空領域抽出処理では、制御装置１０４は、ＲＡＷ画像内から上述した処理によって推定した地平線より上の領域に含まれる空が写っていると思われる領域を空領域候補として抽出する。このために、まず、（Ａ）の情報、または（Ｂ）の情報に基づいてＲＡＷ画像内の重力方向を検出し、ＲＡＷ画像から推定した地平線を境界とし、検出した重力方向とは逆方向側の領域を抽出する。これによって、ＲＡＷ画像内における地平線より上の領域を空領域候補として抽出することができる。
【００３６】
ステップＳ６０における処理では、制御装置１０４は、ステップＳ５０で抽出した空領域候補の色温度を算出し、算出した色温度が一般的な空が写っている画像の色温度の範囲に含まれるか否かを判定することによって、空領域候補に本当に空が写っているか否かを判断する。具体的には以下のように処理する。
【００３７】
制御装置１０４は、画像ファイルに含まれる付加情報部から上述した（Ｆ）の情報を取得し、この（Ｆ）の情報に基づいて画像が撮像された地点を特定する。また、付加情報部から画像の撮像日時を取得する。さらに使用者に対して、その画像が撮像された地点の画像撮像時の天気の入力を促し、入力装置１０１を介して天気情報の入力を受け付ける。
【００３８】
制御装置１０４は、このように画像撮像地点、画像撮像日時、および画像撮像時の天気が特定されることにより一意に決められる色温度と、ＲＡＷ画像内の空領域候補の画像から得られる色温度とを比較する。具体的には、地点、または地域ごとに、時間・天候別の色温度と空の色をデータベース化してＨＤＤ１０３に記憶しておき、特定した画像撮像地点、画像撮像日時、および画像撮像時の天気を検索キーとしてデータベースを検索することによって、一意に決められる色温度を選択する。
【００３９】
制御装置１０４は、次に、空領域候補内の画素におけるＲデータ、Ｂデータのそれぞれの平均値（Ｒデータの空領域平均値、およびＢデータの空領域平均値）を算出する。なお、画像内における特定範囲内のＲデータおよびＢデータの平均値を算出する処理は公知の手法のため説明を省略する。
【００４０】
そして、制御装置１０４は、算出したＲデータの空領域平均値、およびＢデータの空領域平均値に基づいて、例えば図８に示すようなＲデータの空領域平均値およびＢデータの空領域平均値と、色温度との関係をデータ化した色温度テーブルを参照して、空領域候補内の色温度を算出する。色温度テーブルは、あらかじめ作成されてＨＤＤ１０３に記憶されているものとする。
【００４１】
制御装置１０４は、このようにして算出した空領域候補の色温度とデータベースによって得られた色温度との差が所定値以内であれば、空領域候補に本当に空が写っていると判定する。これに対して、算出した空領域候補の色温度とデータベースによって得られた色温度との差が所定値を超える場合には、空領域候補には空は写っていないものと判定する。例えば、建物の壁が空を完全に遮っている画像は、この処理により空が写っていないと判定される。
【００４２】
ステップＳ７０、およびステップＳ８０では、上述したステップＳ６０での判定結果に基づいて、ＲＡＷ画像のホワイトバランスを調整するためのホワイトバランス係数を設定する。空領域候補に空が写っていると判定された場合には、ステップＳ７０で空領域候補内に含まれる空が写っている画素のデータに基づいてＲＡＷ画像に対して適用するホワイトバランス係数を設定する。これによって、ホワイトバランスを調整するための光源として適している空が写っている画素のデータに基づいてホワイトバランス係数を設定することができ、ホワイトバランスの性能を上げることができる。
【００４３】
具体的には、制御装置１０４は、空領域候補に含まれる各画素の色温度を算出し、算出した各画素の色温度とデータベースによって得られた色温度とを比較する。そして、データベースによって得られた色温度との差が所定値以内となる色温度が算出されている画素のみを抽出して、空領域候補の中から空が写っている画素のみを抽出する。例えば、空領域候補内に空と雲や飛行機などの空以外の物体が含まれている場合には、空以外の物体が写っている画素を排除して、空が写っている画素のみを抽出する。
【００４４】
制御装置１０４は、抽出した空が写っている画素全体におけるＲデータ、Ｇデータ、およびＢデータのそれぞれの平均値としてＲａｖｇ，Ｇａｖｇ、Ｂａｖｇを算出する。そして、次式（２）および（３）により、ＲＡＷ画像全体のＲデータに対して適用するホワイトバランス係数Ｒｗｂ、およびＢデータに対して適用するホワイトバランス係数Ｂｗｂを設定する。
Ｒｗｂ＝Ｒａｖｇ／Ｇａｖｇ  ・・・（２）
Ｂｗｂ＝Ｂａｖｇ／Ｇａｖｇ  ・・・（３）
【００４５】
また、空領域候補に空が写っていないと判定された場合には、ステップＳ８０で画像全体のデータに基づいてＲＡＷ画像に対して適用するホワイトバランス係数を設定する。これによって、ホワイトバランスを調整するための光源とすべき空が写っている画素のデータを取得できない場合でも、画像全体の状態に応じたホワイトバランス係数を設定して、ホワイトバランスを調整することができる。
【００４６】
具体的には、制御装置１０４は、ＲＡＷ画像に含まれる全画素におけるＲデータ、Ｇデータ、およびＢデータのそれぞれの平均値としてＲａｖｇ´，Ｇａｖｇ´、Ｂａｖｇ´を算出する。そして、次式（４）および（５）により、ＲＡＷ画像全体のＲデータに対して適用するホワイトバランス係数Ｒｗｂ´、およびＢデータに対して適用するホワイトバランス係数Ｂｗｂ´を設定する。
Ｒｗｂ´＝Ｒａｖｇ´／Ｇａｖｇ´  ・・・（４）
Ｂｗｂ´＝Ｂａｖｇ´／Ｇａｖｇ´  ・・・（５）
【００４７】
以上説明した本実施の形態によれば、以下のような作用効果を得ることができる。
（１）制御装置１０４は、付加情報部に記憶されている（Ａ）の情報、すなわち画像撮像時の水平方向に対するレンズの光軸の傾きに基づいて、画像内における垂直方向中央からの地平線のずれ量を算出した。また、（Ｂ）の情報、すなわちレンズの光軸を中心とするデジタルカメラの回転方向の傾きに基づいて、画像内における地平線の傾きを算出した。そしてこれらの算出結果に基づいてＲＡＷ画像内の地平線を推定するようにした。これによって、ＲＡＷ画像内に存在する地平線を簡易な処理により、精度高く推定することができる。
【００４８】
（２）制御装置１０４は、推定した地平線と重力方向とを加味して、ＲＡＷ画像内から空領域を抽出するようにした。これによって、一般的に、地平線より上の領域には空が写っている可能性が高いことを考慮して、ＲＡＷ画像内から空が写っていると思われる領域を精度高く抽出することができる。
【００４９】
（３）制御装置１０４は、空領域を抽出するに当たっては、付加情報部に記憶されている（Ｃ）〜（Ｅ）の情報、すなわち、レンズの焦点距離情報、デジタルカメラに搭載された撮像素子の大きさ情報、レンズの収差情報を加味するようにした。これによって、デジタルカメラのレンズや撮像素子の特徴も加味して、正確に地平線を推定することができる。
【００５０】
（４）制御装置１０４は、空領域内に空があると判断した場合には、空領域のデータに基づいてＲＡＷ画像に対して適用するホワイトバランス係数を設定し、設定したホワイトバランス係数を用いてＲＡＷ画像全体のホワイトバランスを調整するようにした。これによって、ホワイトバランスを調整するための光源として適している空が写っている領域のデータに基づいてホワイトバランス係数を設定することができ、画像全体を最適なホワイトバランスに調整することができる。
【００５１】
（５）制御装置１０４は、空領域内に空がないと判断した場合には、画像全体のデータに基づいてＲＡＷ画像に対して適用するホワイトバランス係数を設定し、設定したホワイトバランス係数を用いてＲＡＷ画像全体のホワイトバランスを調整するようにした。これによって、ホワイトバランスを調整するための光源とすべき空が写っている領域のデータを取得できない場合でも、画像全体の状態に応じたホワイトバランス係数を設定して、ホワイトバランスを調整することができる。
【００５２】
―変形例―
なお、上述した実施の形態の画像処理装置は、以下のように変形することもできる。
【００５３】
（１）上述した実施の形態では、画像処理プログラムによる処理の対象となる画像ファイルは、ＲＡＷデータに付加情報部を付加したもの、すなわちＲＡＷファイルである場合について説明した。しかしこれに限定されず、その他の画像形式、例えばＲＡＷデータをＪＥＰＧ形式に圧縮して、公知のＥｘｉｆ情報を付加したＥｘｉｆ形式の画像ファイルを処理の対象としてもよい。
【００５４】
なお、Ｅｘｉｆ形式の画像ファイルを処理対象とする場合には、ＲａｗデータからＪｐｅｇデータに変換する過程ですでにホワイトバランスの調整がなされていることが多い。したがって、画像変換過程でホワイトバランス調整を行なった際のホワイトバランス係数と、上述した（Ａ）〜（Ｆ）の情報とをＥｘｉｆデータ内に記憶しておくようにする。そして、ホワイトバランス調整済みのＪｐｅｇデータを、Ｅｘｉｆデータ内に記憶されているホワイトバランス係数に基づいて、ホワイトバランス調整が行なわれていない状態に戻す。
【００５５】
その後、上述したように（Ａ）〜（Ｆ）の情報を使用して地平線または水平線を推定して空領域を抽出し、抽出した空領域に基づいて設定したホワイトバランス係数をかけて、ホワイトバランスを調整し直すようにしてもよい。これによって、ＲａｗデータからＪｐｅｇデータに変換する過程で行なわれたホワイトバランス調整が本実施の形態で上述した方法とは異なる方法で行なわれていた場合であっても、Ｊｐｅｇデータのホワイトバランス調整を本実施の形態で上述した方法で行なうことができ、ホワイトバランス性能を向上することができる。
【００５６】
（２）上述した実施の形態では、画像処理装置１００としてパソコンを使用する例について説明し、画像処理プログラムを制御装置１０４により実行することによってＲＡＷ現像ソフトを起動する例について説明した。しかしこれに限定されず、画像処理装置１００をカメラ（デジタルカメラ）に適用し、カメラで画像処理プログラムを実行してもよい。これによって、カメラで撮像した画像のホワイトバランスを調整することができるようになる。この場合、上述した（Ａ）〜（Ｆ）の各情報については、上述した実施の形態と同様に画像ファイルの付加情報部に記憶しておいてもよく、あるいはカメラが有するメモリ内に記憶するようにしてもよい。
【００５７】
画像処理装置１００として一眼レフのカメラシステムを使用した場合のブロック図を図９に示す。カメラシステムは、カメラボディ２００と、交換レンズ３００とから構成されている。交換レンズ３００は、カメラボディ２００に対して着脱可能である。交換レンズ３００は、レンズ３０１と、レンズ情報記憶メモリ３０２と、レンズ部ＣＰＵ３０３と、レンズ部インターフェース３０４とを備えている。
【００５８】
レンズ３０１は、被写体像を撮像素子２０２に結像するための光学系である。レンズ３０１は焦点距離が可変のズームレンズである。レンズ情報記憶メモリ３０２は、（Ｃ）レンズの焦点距離と、（Ｅ）レンズの収差情報とを記憶しているメモリである。レンズ情報記憶メモリ３０２は、各焦点距離とそれに対応する収差情報とを関連付けて記憶している。レンズ部ＣＰＵ３０３は、交換レンズ３００の各部を制御する演算処理回路である。レンズ部インターフェース３０４は、後述するカメラ部インターフェース２１３と電気的に接続され、カメラボディ２００のカメラ部ＣＰＵ２０８と通信を行うための回路である。
【００５９】
カメラボディ２００は、撮像素子２０２と、アナログ処理回路２０３と、Ａ／Ｄ変換部２０４と、デジタル処理回路２０５と、圧縮回路２０６と、メモリカードインターフェース２０７と、カメラ部ＣＰＵ２０８と、重力センサ２０９と、ＬＣＤ駆動回路２１０と、ＬＣＤ２１１と、カメラ情報記憶メモリ２１２と、カメラ部インターフェース２１３と、ＧＰＳセンサ２１４と、操作部２１５とを備えている。操作部２１５には、レリーズボタンやカメラシステムの各種設定を行うためのスイッチが含まれる。
【００６０】
撮像素子２０２は、レンズ３０１によって結像された被写体像の光を光電変換することにより撮像して、撮像した画像データをアナログ処理回路２０３へ出力する。アナログ処理回路２０３では、画像データに対してＡＧＣ（オートゲインコントロール）、およびＣＤＳ（相関二重サンプリング）の各処理を実行して、Ａ／Ｄ変換部２０４へ出力する。ここで画像データはデジタルデータに変換され、デジタル処理回路２０５へ出力される。
【００６１】
デジタル処理回路２０５では、画像データに対して、ホワイトバランス処理、γ処理、色補間処理などの種々の画像処理を施して、圧縮回路２０６へ出力する。圧縮回路２０６では、所定の画像形式、例えばＪＰＥＧ形式に画像データを圧縮して画像ファイルを生成する。そして、生成した画像ファイルをメモリカードインターフェース２０７へ出力し、メモリカードインターフェース２０７を介してメモリカード２０７ａなどの記憶媒体に画像データを記憶する。また、ＬＣＤ駆動回路２１０を介してＬＣＤ２１１へ画像を出力する。
【００６２】
カメラ部ＣＰＵ２０８は、以下に説明する手順で、上述した（Ａ）〜（Ｆ）の各情報を取得する。（Ａ）水平方向に対するレンズの光軸の傾き情報と、（Ｂ）レンズの光軸を中心とするデジタルカメラの回転方向の傾き情報については、カメラ部ＣＰＵ２０８は、レリーズボタンからのレリーズ信号を受信した時点の重力センサ２０９の出力値を読み込む。そして、カメラ部ＣＰＵ２０８は、重力センサ２０９の出力値の示す重力の方向を（Ａ）水平方向に対するレンズの光軸の傾きの成分と、（Ｂ）レンズの光軸を中心とするデジタルカメラの回転方向の傾きの成分に分解して、それぞれを認識する。
【００６３】
次に（Ｃ）レンズの焦点距離情報と（Ｅ）レンズの収差情報の取得手順について説明する。カメラ部ＣＰＵ２０８は、レリーズボタンよりレリーズ信号を受信すると、カメラ部インターフェース２１３を介して交換レンズ３００側（レンズ部ＣＰＵ３０３）に情報要求信号を出力する。レンズ部ＣＰＵ３０３は、カメラ部ＣＰＵ２０８からの情報要求信号に応答して、情報要求信号を受信した時点の焦点距離情報とレンズ収差情報とをレンズ情報記憶メモリ３０２から読み取る。そして、レンズ部ＣＰＵ３０３は、レンズ部インターフェース３０４を介して、焦点距離情報とレンズ収差情報とをカメラボディ２００側（カメラ部インターフェース２１３）へ出力する。カメラ部ＣＰＵ２０８は、カメラ部インターフェース２１３を介して焦点距離情報とレンズ収差情報とを受信する。
【００６４】
（Ｄ）撮像素子の大きさ情報については、カメラ部ＣＰＵ２０８は、カメラ情報記憶メモリ２１２に記憶されているパラメータを読み出すことにより、撮像素子２０２の大きさを認識する。（Ｆ）画像の撮像地点情報については、カメラ部ＣＰＵ２０８は、レリーズ信号を受信すると、ＧＰＳセンサ２１４から緯度経度情報を取得する。カメラ部ＣＰＵ２０８は、ＧＰＳセンサ２１４から得られた緯度経度情報により、撮像地点を認識する。
【００６５】
圧縮回路２０６は、カメラ部ＣＰＵ２０８の命令に基づいて、画像データに上述した実施の形態における（Ａ）〜（Ｆ）の情報を含んだ付加情報部を付加した画像ファイルを生成する。
【００６６】
カメラ部ＣＰＵ２０８は、上述した画像処理プログラムを実行して、メモリカード２０７ａに記憶されている画像ファイルに対して画像処理を施し、画像ファイルに含まれる画像データのホワイトバランスを調整する。なお、この変形例では、すでにデジタル処理回路２０５によってホワイトバランス処理が実行されていることから、カメラ部ＣＰＵ２０８は、画像データに対して変形例（１）で上述した処理を実行する。
【００６７】
また、（Ａ）〜（Ｆ）の情報を含んだ付加情報部を付加したＪｐｅｇ形式またはＲＡＷ画像形式の画像ファイルを生成し、カメラ内では変形例（１）の処理を実行しなくてもよい。この場合は、前述した画像処理装置１００に変形例（１）の処理を実行させればよい。また、カメラ部ＣＰＵ２０８が、Ａ／Ｄ変換部２０４の出力するＲＡＷ画像と、（Ａ）〜（Ｆ）の情報とに基づいて、図２のステップＳ４０〜ステップＳ９０の処理を実行する構成にしてもよい。
【００６８】
（３）上述した実施の形態では、使用者によって入力装置１０３が操作され、作業ウィンドウ内の画像ファイル一覧から選択された画像を処理対象として、各画像ごとに上述した処理を実行する例について説明した。しかしこれに限定されず、ＨＤＤ１０３に記憶されている複数の画像を処理対象として、複数の画像に対して一括して処理を実行するようにしてもよい。
【００６９】
（４）上述した実施の形態では、制御装置１０４は、空領域候補に空が写っていると判定された場合には、ステップＳ７０で空領域候補内に含まれる空が写っている画素のデータに基づいてＲＡＷ画像に対して適用するホワイトバランス係数を設定する例について説明した。しかしこれに限定されず、空領域候補に空が写っていると判定された場合には、空領域候補内の全画素のデータに基づいてＲＡＷ画像に対して適用するホワイトバランス係数を設定するようにしてもよい。すなわち、空領域候補内に飛行機や雲などが映っていたとしても、これらが空領域候補内で占める割合は少ないことが一般的であることから、これらは誤差として処理可能であるため、ホワイトバランス係数設定時に空領域候補から除外しないようにする。これによって、空領域候補から空が写っている画素のみを抽出処理を省くことができるため、処理負荷を低減し、処理速度を向上することができる。
【００７０】
なお、本発明の特徴的な機能を損なわない限り、本発明は、上述した実施の形態における構成に何ら限定されない。
【図面の簡単な説明】
【００７１】
【図１】画像処理装置の一実施の形態の構成を示すブロック図である。
【図２】画像処理プログラムによる処理を示すフローチャート図である。
【図３】画像撮像時の水平方向に対するレンズの光軸の傾きに基づいてＲＡＷ画像内の地平線が存在する位置を推定する場合の具体例を示す図である。
【図４】撮像素子の大きさと撮像素子の撮像範囲との関係の具体例を示す図である。
【図５】レンズの焦点距離と画角との関係の具体例を示す図である。
【図６】カメラの光軸を中心とする回転角度と画像内の地平線の傾きとの関係の具体例を示す図である。
【図７】レンズの収差情報に基づいて検出される地平線の歪みの具体例を示す図である。
【図８】Ｒデータの空領域平均値およびＢデータの空領域平均値と色温度との関係の具体例を示す図である。
【図９】画像処理装置として一眼レフカメラシステムを使用した場合のブロック図である。
【符号の説明】
【００７２】
１００  画像処理装置、１０１  入力装置、１０２  外部インターフェース、１０３  ＨＤＤ、１０４  制御装置、１０５  モニタ、１０６  プリンタ
【図１】
2007158997.tif 000003
【図２】
2007158997.tif 000004
【図３】
2007158997.tif 000005
【図４】
2007158997.tif 000006
【図５】
2007158997.tif 000007
【図６】
2007158997.tif 000008
【図７】
2007158997.tif 000009
【図８】
2007158997.tif 000010
【図９】
2007158997.tif 000011