(57)【特許請求の範囲】
【請求項１】
入力画像から一つあるいは複数の四辺形を認識する画像処理方法であって、
入力画像から複数のエッジ領域を検出するエッジ領域検出工程と、
前記検出された複数のエッジ領域に対応する複数の線分を抽出する線分抽出工程と、
前記抽出された複数の線分から、２つの線分（以下、線分ペア）の組み合わせを選択し、各線分ペアを、当該線分ペアを構成する２つの線分の相対位置に応じて分類し、当該線分ペアの評価値を算出する線分ペア分類・評価工程と、
複数の線分ペアから、２つの線分ペアの組み合わせを選択し、それぞれ、２つの線分ペアの４つの線分により四辺形を生成し、各四辺形について、当該四辺形を構成する線分ペアの分類と評価値に基づいて四辺形評価値を算出する四辺形評価工程と、
前記算出された四辺形評価値に基づいて四辺形を選択する四辺形選択工程と、
を有することを特徴とする画像処理方法。
【請求項２】
請求項１に記載の画像処理方法において、
前記線分抽出工程により抽出された複数の線分を入力として、線分ペアの組み合わせを複数選択し、各線分ペアを構成する２つの線分の位置関係により、新しい線分を生成して既存の線分に追加する線分生成工程をさらに有し、
前記線分ペア分類・評価工程では、前記線分抽出工程で抽出された線分と前記線分生成工程で生成された線分とを入力として、線分ペアのすべての組み合わせを選択する、
ことを特徴とする画像処理方法。
【請求項３】
請求項１もしくは２に記載の画像処理方法において、
前記エッジ領域検出工程では、入力画像の各画素に対して輝度の縦変化量、横変化量を算出し、該縦変化量と横変化量に基づいてエッジ領域を検出すると共に、該縦変化量と横変化量による２次元空間を複数に分割して、エッジ領域を、その方向に応じて複数のグループ（以下、方向グループ）にグループ分けする、
ことを特徴とする画像処理方法。
【請求項４】
請求項３に記載の画像処理方法において、
前記線分抽出工程では、各方向グループごとに、各エッジ領域の画素情報を用いて主成分分析を行って、線分（直線）を抽出する、
ことを特徴とする画像処理方法。
【請求項５】
請求項４に記載の画像処理方法において、
前記線分抽出工程では、各エッジ領域の主成分方向に探索を行い、所定の画素数以内の隣接する複数のエッジ領域を統合して、元のエッジ領域を除去し、該統合したエッジ領域に対応する線分を抽出する、
ことを特徴とする画像処理方法。
【請求項６】
請求項１乃至５のいずれか１項に記載の画像処理方法において、
前記線分ペア分類・評価工程では、各線分ペアを、当該線分ペアを構成する２つの線分の相対位置関係に応じて、対辺、隣接辺あるいは無関係に分類して、評価値を算出し、
前記四辺形評価工程では、対辺と隣接辺関係の線分ペアをもとに四辺形を生成して四辺形評価値を算出する、
ことを特徴とする画像処理方法。
【請求項７】
請求項１乃至６のいずれか１項に記載の画像処理方法において、
前記四辺形評価工程では、四辺形の面積を求め、前記線分ペアの評価値による四辺形評価値に前記面積を重み付けした値を、あらたに四辺形評価値とする、
ことを特徴とする画像処理方法。
【請求項８】
請求項１乃至７のいずれか１項に記載の画像処理方法において、
前記四辺形評価工程では、四辺形を平行四辺形に変換する射影変換行列を求め、射影変換後の平行四辺形の形状に基づいて前記四辺形評価値を重み付けした値を四辺形評価値とする、
ことを特徴とする画像処理方法。
【請求項９】
請求項１乃至８のいずれか１項に記載の画像処理方法において、
前記四辺形選択工程により選択された四辺形から射影変換行列を算出し、前記入力画像に対して射影変換を施す射影変換工程をさらに有する、
ことを特徴とする画像処理方法。
【請求項１０】
入力画像から一つあるいは複数の四辺形を認識する画像処理装置であって、
入力画像から複数のエッジ領域を検出するエッジ領域検出手段と、
前記検出された複数のエッジ領域に対応する複数の線分を抽出する線分抽出手段と、
前記抽出された複数の線分から、２つの線分（以下、線分ペア）の組み合わせを選択し、各線分ペアを、当該線分ペアを構成する２つの線分の相対位置に応じて分類し、当該線分ペアの評価値を算出する線分ペア分類・評価手段と、
複数の線分ペアから、２つの線分ペアの組み合わせを選択し、それぞれ、２つの線分ペアの４つの線分により四辺形を生成し、各四辺形について、当該四辺形を構成する線分ペアの分類と評価値に基づいて四辺形評価値を算出する四辺形評価手段と、
前記算出された四辺形評価値に基づいて四辺形を選択する四辺形選択手段と、
を有することを特徴とする画像処理装置。
【請求項１１】
請求項１０に記載の画像処理装置において、
前記線分抽出手段により抽出された複数の線分を入力として、線分ペアの組み合わせを複数選択し、各線分ペアを構成する２つの線分の位置関係により、新しい線分を生成して既存の線分に追加する線分生成手段をさらに有し、
前記線分ペア分類・評価手段では、前記線分抽出手段で抽出された線分と前記線分生成手段で生成された線分とを入力として、線分ペアのすべての組み合わせを選択する、
ことを特徴とする画像処理装置。
【請求項１２】
請求項１０もしくは１１に記載の画像処理装置において、
前記エッジ領域検出手段では、入力画像の各画素に対して輝度の縦変化量、横変化量を算出し、該縦変化量と横変化量に基づいてエッジ領域を検出すると共に、該縦変化量と横変化量による２次元空間を複数に分割して、エッジ領域を、その方向に応じて複数のグループ（以下、方向グループ）にグループ分けする、
ことを特徴とする画像処理装置。
【請求項１３】
請求項１２に記載の画像処理装置において、
前記線分抽出手段では、各方向グループごとに、各エッジ領域の画素情報を用いて主成分分析を行って、線分（直線）を抽出する、
ことを特徴とする画像処理装置。
【請求項１４】
請求項１３に記載の画像処理装置において、
前記線分抽出手段では、各エッジ領域の主成分方向に探索を行い、所定の画素数以内の隣接する複数のエッジ領域を統合して、元のエッジ領域を除去し、該統合したエッジ領域に対応する線分を抽出する、
ことを特徴とする画像処理装置。
【請求項１５】
請求項１０乃至１４のいずれか１項に記載の画像処理装置において、
前記線分ペア分類・評価手段では、各線分ペアを、当該線分ペアを構成する２つの線分の相対位置関係に応じて、対辺、隣接辺あるいは無関係に分類して、評価値を算出し、
前記四辺形評価手段では、対辺と隣接辺関係の線分ペアをもとに四辺形を生成して四辺形評価値を算出する、
ことを特徴とする画像処理装置。
【請求項１６】
請求項１０乃至１５のいずれか１項に記載の画像処理装置において、
前記四辺形評価手段では、四辺形の面積を求め、前記線分ペアの評価値による四辺形評価値に前記面積を重み付けした値を、あらたに四辺形評価値とする、
ことを特徴とする画像処理装置。
【請求項１７】
請求項１０乃至１６のいずれか１項に記載の画像処理装置において、
前記四辺形評価手段では、四辺形を平行四辺形に変換する射影変換行列を求め、射影変換後の平行四辺形の形状に基づいて前記四辺形評価値を重み付けした値を、あらたに四辺形評価値とする、
ことを特徴とする画像処理装置。
【請求項１８】
請求項１０乃至１７のいずれか１項に記載の画像処理装置において、
前記四辺形選択手段により選択された四辺形から射影変換行列を算出し、前記入力画像に対して射影変換を施す射影変換手段をさらに有する、
ことを特徴とする画像処理装置。
【請求項１９】
請求項１０乃至１８のいずれか１項に記載の画像処理装置の各手段を具備することを特徴するデジタルカメラ装置。
【請求項２０】
請求項１乃至９のいずれか１項に記載の画像処理方法の各工程をコンピュータに実行させるための画像処理プログラムを記録したことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影された画像に対するあおり補正の前処理技術に係り、特に入力画像から四辺形を認識する画像処理方法及び装置、その機能を備えたデジタルカメラ装置、並びに画像処理プログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
近年、デジタルカメラは広く普及し、風景や人物に限らず、時刻表やポスター、掲示板等をメモ代りに撮影するのにも用いられるようになってきた。しかしながら、撮影された時刻表やポスター等は、撮影する位置により“あおり”が生じて、画像が歪むため、撮影されたポスター等は読みづらく、撮影された画像をそのまま再利用するには最適なものでなかった。
【０００３】
あおりは、実際の被写体は矩形であるのに対し、撮影される画像が、撮影する位置により台形等に歪む現象である。時刻表やポスター等の平面状の被写体をデジタルカメラで撮影する場合、このようなあおりを補正し、あたかも被写体に正対した位置から撮影した画像に変換する必要がある。
【０００４】
従来からデジタルカメラで撮影された画像から撮影時のあおりを補正する方法が種々提案されているが、代表的なものとしては次の方法がある（例えば、特許文献１、特許文献２参照）。まず、撮影された画像から縮小画像を生成し、該縮小画像からエッジ領域を抽出して、該エッジ領域に対し歪曲補正を行う。次に、この歪曲補正後のエッジ領域にハフ変換やラドン変換を行って直線を検出し、直線の組み合わせから、被写体の四辺形を認識する。この四辺形をもとに射影変換行列を算出し、撮影画像を射影変換することにより、あおり補正を行う。
【０００５】
【特許文献１】特開２００５−１２２３２０号公報
【特許文献２】特開２００５−１２２３２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記従来技術では、画像中心からの距離が遠い直線を優先的に四辺形の一辺として認識している。そのため、画像の中心部に被写体が位置しない場合（認識する４辺が画像中心位置から４方向に位置しない場合）、被写体を認識することができない。また、ハフ変換などにより直線検出を行っているため、処理時間が膨大になる。特にハフ変換の投票は非常に時間がかかる処理方法である。特許文献２では、Ｘ軸方向の候補となる直線の傾きを４５°≦θ≦１３５°、Ｙ軸の候補となる直線の傾きを１３５°≦θ≦２２５°と限定することで高速化を図っているが、高速化には限界がある。また、検出されたＮ本の直線の傾きを基に四辺形の縦方向の辺、横方向の辺などと限定してしまうと、認識できる撮影条件が限られてしまう。例えば、図１７の（ａ）は四辺形は認識できるが、（ｂ）の四辺形は、（ａ）についてカメラをスキューされて撮影させただけであるにもかかわらず、認識できなくなってしまう。
【０００７】
本発明は、あおり補正の前処理として、入力画像から一つあるいはそれ以上の四辺形を認識する技術として、上記従来技術より高精度かつ処理時間の短縮が可能な画像処理方法及び装置、その機能を備えたデジタルカメラ装置、並びに画像処理プログラムを記録した記録媒体を提供することにある。
【課題を解決するための手段】
【０００８】
本発明では、処理時間が膨大になるハフ変換などを使用しないで直線を検出するために、入力画像の画素ごとにエッジ方向というものを定義し、エッジ方向ごとにエッジ領域を検出し、エッジ領域ごとに対応する線分（直線）を検出する。これにより、エッジ検出処理を高速化できる。
【０００９】
上記したように、検出されたＮ本の線分（直線）の傾きを基に四辺形の縦方向の辺、横方向の辺などと限定すると、認識できる撮影条件が限られる。そこで、本発明では、検出されたＮ本の線分から４本を組み合わせてできる全ての四辺形を考慮することで、撮影条件に対する制限を緩和する。しかし、検出されたＮ本の線分から４本を組み合わせてできる全ての四辺形を考慮することは非常に処理時間がかかる。そのため、Ｎ本の線分から２本を組み合わせて線分ペアなるものを作り、各線分ペアに対して、例えば、対辺、隣接辺、無関係の３つに分類し、評価値を与えて、対辺と隣接辺関係の線分ペアに着目して四辺形を認識し、評価値に基づいて四辺形を選択する。これにより、以下のように処理時間を大きく短縮できる。
【００１０】
いま、Ｎ本の線分から、４本の線分を抜き出すことにより得られる四辺形は最大  Ｋ＝３×Ｎ×（Ｎ−１）×（Ｎ−２）×（Ｎ−３）／２４通りある（４本の線分の隣接する順序も考慮する）。よって処理時間を高速化するには、Ｋの数を減らすことが重要である。
【００１１】
通常、人間が長方形状の看板を撮影する場合、正対した位置に近い状態から画像範囲にちょうど収まる程度の大きさで撮影する。そのとき、撮影した画像上での長方形状の看板の形は、以下の２つの特徴を持つ。  
１．長方形の対辺が平行に近く、一定以上の距離離れた位置にある
２．長方形の隣接辺同士のなす角は９０度に近く、無論、隣接辺同士は交点を持つ
【００１２】
そのため、Ｎ本の線分から２本の線分を抜き出し、２本の線分（直線）のなす角が平行に近いものは対辺、９０度に近いものは隣接辺、それ以外は無関係と分類する。また、Ｎ本の線分から２本の線分を無限に延長して線分の交点を算出し、交点と２本の線分との距離を算出することで、２本のエッジの隣接辺らしさ（＝評価値）を算出する。
【００１３】
四辺形の４本の線分は、２つの対辺の組と４つの隣接辺の組から必ずできるので、Ｋ通りの四辺形のうち、２つの対辺の組と４つの隣接辺、の組から生成されていない四辺形は無視することができる。また、四辺形の４つの頂点は線分同士が交わったところなので、４つの評価値の大小により四辺形を評価することができる。
【００１４】
また、本発明では、ノイズなどの影響で線分が途切れてしまった場合、入力画像が歪曲ゆがみを持つ場合、被写体の背景が複雑な色をしている場合などでも四辺形を抽出できるようにするため、必要に応じて複数の線分を合成することにより、新しい線分を生成する。
【００１５】
また、黒地に白い長方形の描かれた画像に対して、通常のＳobelフィルタでエッジ検出を行うと、長方形の外周上の画素全てが一つのエッジ領域として抽出されてしまう。本発明では、ハフ変換を使用しないで、エッジ方向で分けてエッジ領域を求めることにより、長方形の各辺を異なるエッジ領域として抽出することができる。
【００１６】
また、本発明では、撮影者が通常撮影する場合、被写体を画像範囲内に大きく撮影することが一般的なので、その特性を利用するため、さらには、撮影者があおり補正モードで画像を撮影する際の構図を決定しやすくするため、四辺形の面積に基づいて評価値を算出し、該評価値を考慮して四辺形を選択できるようにする。
【００１７】
また、本発明では、使用者が撮影対象に選択する平面上の被写体の大半は長方形であるから、長方形のみの認識のみ行うことに限定することで、使用者が長方形を被写体として撮影したときの認識精度を大幅に向上させるため、四辺形を平行四辺形に変換する射影変換行列を算出し、射影変換後の平行四辺形の形状に基づいて評価値を算出し、評価値を考慮して四辺形を選択できるようにする。
【発明の効果】
【００１８】
本発明によれば、高精度かつ高速に、撮影画像から四辺形を認識し、該認識した四辺形を正対した位置から撮影した場合と同等な画像に変換することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の一実施の形態について図面を参照して説明する。  
図１は本発明の画像処理機能を備えたデジタルカメラ装置の一実施形態を示す全体的構成図である。図１において、撮影部１１はレンズ１１１、絞り１１２、シャッター１１３、光電変換素子１１４及び前処理部１１５などで構成される。シャッター１１３の操作により、被写体光がレンズ１１１、絞り１１２を通して光電変換素子１１４に受光し、アナログ画像信号に変換される。光電変換素子１１４には、例えば、ＣＣＤ（電荷結合素子）が使用される。前処理部１１５は、プリアンプやＡＧＣ（自動利得制御）等のアナログ信号処理部やＡ／Ｄ変換部を備えており、光電変換素子１１４から出力されたアナログ画像信号に対して増巾・クランプなどの前処理を施した後、該アナログ画像信号をデジタル画像信号に変換する。
【００２０】
撮影部１１の前処理部１１５から出力されたデジタル画像信号は、カメラ信号処理部１２を通してフレームメモリ１５に格納される。フレームメモリ１５には、ＶＲＡＭ，ＳＲＡＭ，ＤＲＡＭなどの半導体メモリが使用され、カメラ信号処理部１２での処理対象の画像信号を一時保持するのに利用される。
【００２１】
カメラ信号処理部１２はデジタル信号処理プロセッサ（ＤＳＰ）などにより構成されている。このカメラ信号処理部１２に、本発明の画像処理機能としてのあおり補正部１２０が備えられているが、その詳細は後述する。ＲＯＭ１３はカメラ信号処理部１２で使用されるプログラムを保持するプログラムメモリ、ＲＡＭ１４はカメラ信号処理部１２の処理途中のデータや、その他の必要なデータなどを一時的に保持するのに用いられる作業用メモリである。
【００２２】
ＣＰＵ１６はマイコンなどにより構成され、撮像部１１及びカメラ信号処理部１２などの動作を制御する。なお、ＲＯＭ１３、ＲＡＭ１４は、ＣＰＵ１６で兼用することでもよい。
【００２３】
フレームメモリ１５の画像信号はカメラ信号処理部１２に読み出され、該カメラ信号処理部１２において画像圧縮などの処理が施された後、インターフェース部（Ｉ／Ｆ）１７を介して外部記憶装置１９に記録されることにより保存される。外部記憶装置１９には、ＩＣメモリカードや光磁気ディスクなどが使用されるが、モデムカードやＩＳＤＮカードなどを利用して、ネットワークを経由して遠隔地の端末等に画像信号を送信することも可能である。逆に、外部記憶装置１９から読み出された画像信号は、Ｉ／Ｆ１７を介してカメラ信号処理部１２に送信され、カメラ信号処理部１２において伸長処理が施され、フレームメモリ１５に格納される。
【００２４】
画像信号の表示は、フレームメモリ１５の画像信号をカメラ信号処理部１２、Ｉ／Ｆ１７を介して表示部１８に送信することによって行われる。表示部１８は、例えば、本デジタルカメラ装置の筐体に設置された液晶表示装置により構成される。
【００２５】
ここで、カメラ信号処理部１２内のあおり補正部１２０は、例えば、フレームメモリ１５に格納された撮影画像デジタル画像信号を入力として、入力画像からあおり補正をする対象となる四辺形（長方形）の被写体を抽出し、あおり歪みの補正を行う。あおり補正されたデジタル画像信号は、例えば、フレームメモリ１５に再び格納して、以後の処理に利用される。図２は、あおり補正の具体的処理イメージを示したものである。あおり補正部１２０は、ＲＯＭ１３にあおり補正のための画像処理プログラムを格納して、それをカメラ信号処理部１２のデジタル信号処理プロセッサ（ＤＳＰ）に実行させるか、あるいは処理機能の一部または全部をハードウェアとして構成することでもよい。以下に、あおり補正部１２０の詳細構成および処理について説明する。
【００２６】
図３は、あおり補正部１２０の一実施例を示す詳細構成図である。本あおり補正部１２０はエッジ領域検出部２１０、線分抽出部２２０、線分生成部２３０、線分ペア分類・評価部２４０、四辺形評価部２５０、四辺形選択部２６０、及び、射影変換部２７０から構成される。ここで、２１０〜２６０の各部をまとめて四辺形抽出部２００と総称することにする。この四辺形抽出部２００が本発明の主要部を形成している。以下、各部での処理を詳述する。
【００２７】
＜エッジ領域抽出＞
エッジ領域検出部２１０では、撮影画像である入力画像からエッジ領域を検出する。具体的には、輝度変化の大きい部分を抽出してエッジ領域とする。図４にエッジ領域検出の処理フローチャートを示す。
【００２８】
まず、入力画像に対してＳobelフィルタやＣannyフィルタなどのエッジ検出フィルタによりフィルタリングを施し、各画素に対して、Ｘ方向の輝度変化量（ｇｈ）、Ｙ方向の輝度変化量（ｇｖ）を計算する（ステップ１００１）。そして、Ｘ変化量ｇｈ、Ｙ変化量ｇｖを入力とする関数funcl（ｇｈ，ｇｖ）の戻り値が閾値以上の画素をエッジ部（エッジ画素）とし、funcl（ｇｈ，ｇｖ）の戻り値が閾値以下の画素はエッジ部とみなさず、非エッジ画素とする（ステップ１００２）。次に、Ｘ変化量ｇｈとＹ変化量ｇｖによる２次元空間を複数のグループに分割し、各エッジ画素を、その方向に応じてグループ分けする（ステップ１００３）。実施例では、後述するように、ｇｈとｇｖによる２次元空間を８つに分割し、各エッジ画素をグループ１からグループ８までの８つのグループに区別する。最後に、各グループごとにラベル等で識別してエッジ画像を作成し（ステップ１００４）、エッジ領域分割を行う（ステップ１００５）。
【００２９】
以下に、エッジ検出処理について、より具体的に説明する。ここでは、入力画像の輝度画像は図５（ｃ）の如くとし、エッジ検出フィルタには図５（ａ），（ｂ）に示すＳobelフィルタを使用するとする。図５（ｃ）において、（ｘ00，ｙ00）は画素座標、ｖ00は画素値を表している。他の画素についても同様である。
【００３０】
いま、対象画素は、画素（ｘ11，ｙ11）とする。画素（ｘ11，ｙ11）のＸ方向の輝度変化量ｇｈは、図５（ａ）に示すＸ方向のＳobelフィルタを図５（ｃ）の輝度画像に施すことで、次のように求まる。  
ｇｈ＝ｖ00×(−１)＋ｖ10×(−２)＋ｖ20×(−１)＋ｖ02×１＋ｖ12×２＋ｖ22×１
また、画素（ｘ11，ｙ11）のＹ方向の輝度変化量ｇｖは、図５（ｂ）に示すＹ方向のＳobelフィルタを図５（ｃ）の輝度画像に施すことで、次のように求まる。  
ｇｖ＝ｖ00×(−１)＋ｖ01×(−２)＋ｖ02×(−１)＋ｖ20×１＋ｖ21×２＋ｖ22×１
画素（ｘ11，ｙ11）の輝度変化量ｇを、ｇ＝ｇｈ２＋ｇｖ２として求め、ｇが所定の閾値（例えば、５０とする）以上の場合、該画素（ｘ11，ｙ11）をエッジ画素とし、閾値以下の場合は非エッジ画素とする。
【００３１】
各画素について上記処理を繰り返すことで、入力画像のエッジ部分が抽出される。入力画像のエッジ部分が抽出されたなら、図６に示すように、Ｘ方向の輝度変化量ｇｈとＹ方向の輝度変化量ｇｖによる２次元空間を８つに分割し、その方向に応じて、各エッジ画素をグループ１からグループ８のいずれかにグループ分けする。このようにエッジ画素をエッジ方向で区別することで、被写体の周囲に存在するであろう４本のエッジを区別して扱うことができる（長方形の各辺を異なるエッジ領域として抽出することができる）。また、ハフ変換などを使用しないでエッジ検出するため、処理を高速化できる。
【００３２】
エッジ画像は、エッジ画素には０（黒）、非エッジ画素には２５５（白）を割り当てることにより作成される。ここでは、エッジ画像は１〜８の各方向グループごとに作成するとする。すなわち、８枚のエッジ画素を作成する。８枚のエッジ画像が、どの方向グループに属するかはラベル等で識別できるようにする。そして、各エッジ画像について、黒連結領域ごとに領域分割し、分割されたそれぞれの領域をエッジ領域とする。ここで、エッジ領域のうち、所定閾値より少ないエッジ画素数から構成されているエッジ領域（黒連結領域）はノイズとして除去する。
【００３３】
なお、エッジ画像は１枚のみとし、各エッジ画素について、例えば、各方向グループごとに異なる色などを割り振って区別することも可能である。
【００３４】
＜線分抽出＞
線分抽出部２２０では、エッジ領域検出部２１０で検出された各エッジ領域の画素情報に対して主成分分析を行うことにより各エッジ領域に対応する線分を抽出する。この線分抽出を各方向グループについて行う。図７に線分抽出の全体的処理フローチャートを示す。また、図８に具体例を示す。
【００３５】
まず、各エッジ領域の画素情報に対して主成分分析を行い（ステップ１１０１）、線分（直線）を抽出する（ステップ１１０２）。いま、図８（ａ）のようなエッジ領域が存在したとする。このエッジ領域の画素情報を用いて主成分分析を行うことで、図８（ｂ）に描かれているような線分（直線）が抽出される。ここで、主成分分析を行った際に、同時に第一主成分の寄与率を求めておき、エッジの線らしさとして直線と併せて保存しておく。続いて図８（ｃ）に示すように、エッジ領域を囲う最小の矩形を定めて、該矩形と線分の交点を求め、エッジ領域に対応する線分の２端点（の座標）を決定する（ステップ１１０３）。
【００３６】
以上の処理を８枚のエッジ画像から検出された各エッジ領域について実施することで、入力画像中の各エッジ領域に対応する線分の抽出がひとまず完了する。
【００３７】
続いて、ノイズの影響などで、本来一本の直線であるものが途切れて検出されてしまう場合を補うために、８枚のエッジ画像ごとに、各エッジ領域の主成分方向（２方向）に探索を行って隣接するエッジ領域を見つけ、必要なら隣接エッジ領域を統合し、あらためて線分の抽出をやり直す（ステップ１１０４）。図９に隣接エッジ領域の統合処理のフローチャートを示す。また、図１０に具体的処理例を示す。図１０は、１枚のエッジ画像中の一部分で、エッジ領域３０１、３０２、３０３の３つのエッジ領域が存在することを表している。
【００３８】
まず、着目するエッジ領域の主成分方向（２方向）に規定する画素数だけ探索を行い（ステップ１１１０）、隣接エッジ領域が存在するか否か判定する（ステップ１１１１）。図１０の場合、矢印３１１、３１２に示すように、例えばエッジ領域３０１の左右の２つの端点から規定の画素数だけ探索する。図１０で矢印の長さが、探索する規定の画素数を示している。該規定の画素数は、一定値にしてもよいし、エッジ領域に対応する線分の長さをもとに設定してもよい。
【００３９】
図１０の例では、エッジ領域３０１の端点からエッジ領域３０２は規定の画素数以内しか離れていないので、エッジ領域３０１とエッジ領域３０２は隣接エッジ領域と判定されるが、エッジ領域３０１とエッジ領域３０３は規定の画素数以上離れているので、隣接エッジ領域とは判定されない。
【００４０】
次に、隣接エッジ領域が存在する場合、隣接エッジ領域同士の画素情報を合成した合成画素情報を作成し（ステップ１１１２）、合成画素情報に対して主成分分析を行う（ステップ１１１３）。そして、このとき算出されたエッジの線らしさが閾値以上であるか判定し（ステップ１１１４）、閾値以上である場合（主成分の割合が多い）、隣接エッジ領域を統合したエッジ領域を作成して、元のエッジ領域を除去する（ステップ１１１５）。そして、作成した領域に関して、再びステップ１１１０からの処理を行う。これを全てのエッジ領域に対して繰返し、その後、あらためて図７の処理を実施する。
【００４１】
図１０の場合、隣接エッジ領域と判定されたエッジ領域３０１とエッジ領域３０２の画素情報の合成画素情報を作成し、該合成画素情報に対して主成分分析を行う。そして、エッジの線らしさが閾値以上なら、エッジ領域３０１とエッジ領域３０２を統合して新たなエッジ領域を作成し、エッジ領域３０１とエッジ領域３０２は除去する。そして、新たなエッジ領域に着目して再びステップ１１１０からの処理を行う。
【００４２】
以上のような処理を８枚のエッジ画像について、全てのエッジ領域に対して繰り返す。そして、最終的に残った各エッジ領域に対して図７の処理を行うことで、線分の抽出が完了する。
【００４３】
ここまでの処理では、分かり易いように、８枚のエッジ画像から抽出されたエッジ領域を別々に処理するとしたが、以下の処理では、８枚のエッジ画像から抽出されたエッジ領域を区別せずに扱う。ここで、エッジ領域の総計はＮ１であり、したがって、線分抽出部２２０で抽出された線分の総計はＮ１本となる。各線分には通し番号がふられているとする。
【００４４】
＜線分生成＞
線分生成部２３０では、線分抽出部２２０で抽出されたＮ１本の線分から、必要に応じて新たな線分を生成する処理を行う。エッジ領域抽出部２１０において、エッジ方向を８方向に分けたことに起因して、同一線分であるにもかかわらず、複数の線分に分割されて認識されてしまう線分が存在する場合がある。そのような場合を補う処理を線分生成部２３０で行う。線分生成部２３０は、入力画像が歪曲ゆがみを持つ場合、被写体の背景が複雑な色をしている場合などに対応するための処理である。図１１に線分生成部２３０の処理フローチャートを示す。また、図１２に具体例を示す。
【００４５】
線分抽出部２２０で抽出されたＮ１本の線分を入力として（ステップ１２００）、番号ｉと番号ｊの２本の線分を取り出し（ステップ１２０１）、Ｎ１本の線分から２本の線分を選ぶすべての組合せである、Ｎ１×（Ｎ１−１）／２個の線分ペアを生成する（ステップ１２０２）。ここで、各線分ペアには通し番号をつけておく。そして、カウント値Ｃntを１に初期設定し、また、Ｎ２＝Ｎ１とした後（ステップ１２０３）、以下の処理を行う。Ｃntは処理対象線分ペアの番号を表し、Ｎ２は既存の線分（Ｎ１本）＋新たな線分の総計を表す。
【００４６】
カウント値ＣntがＮ１×（Ｎ−１）／２を超えたか判定し（ステップ１２０４）、超えたから処理を終える。超えない場合、Ｃnt番目（最初は１番目）の線分ペアを選択し（ステップ１２０５）、当該線分ペアを構成する２つの線分（線分Ａ、線分Ｂとする）の成す角度を０〜９０°の範囲で算出する（ステップ１２０６）。そして、該線分ペアＡ，Ｂの成す角度が所定の閾値（例えば、５度）以下か判定し（ステップ１２０７）、閾値以上の場合にはＣntを＋１して（ステップ１２１６）、ステップ１２０４へ戻る。例えば、線分Ａと線分Ｂの位置関係が、図１２（ａ），（ｂ）のような場合には、線分ペアＡ，Ｂの成す角はθで表される。ここで、図１２の（ａ）は、線分ペアＡ，Ｂの成す角θが閾値以上の場合を示し、（ｂ）は線分ペアの成す角度θが閾値以下の場合を示しているとする。
【００４７】
線分ペアＡ，Ｂの成す角度が閾値以下の場合（例えば、図１２の（ｂ）の場合）、次に、当該線分ペアの距離を測定する（ステップ１２０８）。ここで、線分ペアＡ，Ｂの距離は、以下の１から４の距離の内、最小の値と定義する。  
１．線分Ｂを無限に延長した直線と、線分Ａの始点との距離
２．線分Ｂを無限に延長した直線と、線分Ａの終点との距離
３．線分Ａを無限に延長した直線と、線分Ｂの始点との距離
４．線分Ａを無限に延長した直線と、線分Ｂの終点との距離
【００４８】
求まった線分ペアＡ，Ｂの距離が所定の閾値以下か判定し（ステップ１２０９）、閾値以上（距離が離れすぎている）の場合には、Ｃntを＋１して（ステップ１２１６）、ステップ１２０４へ戻る。
【００４９】
一方、線分ペアの距離が所定の閾値以下の場合には、当該線分ペアの線分Ａの始点と終点、線分Ｂの始点と終点との組み合わせの４通りの距離を計算し、そのうちの最大値（距離１）と最小値（距離２）を求める（ステップ１２１０）。そして、次の式（１）
Ｖ＜（線分Ａの長さ＋線分Ｂの長さ＋距離２）／距離１            （１）
を満足するか否か判定する（ステップ１２１１）。ここで、Ｖは所定の閾値である。満足しない場合には、Ｃntを＋１して（ステップ１２１６）、ステップ１２０４へ戻る。
【００５０】
上記式（１）を満たす場合、当該線分ペアを構成する線分Ａと線分ＢのＸ，Ｙ座標の大小関係を比較して、以下の条件
［条件］
（線分Ａの始点と終点のＸ座標が、線分Ｂの始点と終点のＸ座標よりも大きい。
または、線分Ａの始点と終点のＸ座標が、線分Ｂの始点と終点のＸ座標よりも小さい。）
かつ、
（線分Ａの始点と終点のＹ座標が、線分Ｂの始点と終点のＹ座標よりも大きい。
または、線分Ａの始点と終点のＹ座標が、線分Ｂの始点と終点のＹ座標よりも小さい。）
を満足するか否か判定する（ステップ１２１２）。満足しない場合には、Ｃntを＋１して（ステップ１２１６）、ステップ１２０４に戻る。
【００５１】
上記条件を満たす場合、新しい線分を生成する（ステップ１２１３）。新しい線分は、ステップ１２１０で算出した、当該線分ペアの線分Ａの始点と終点、線分Ｂの始点と終点との組み合わせの４通りのうち、距離が最大となる２頂点の組を始点、終点に持つ線分Ｃとする。図１２（ｂ）の例の場合、図１２（ｃ）のように新しい線分Ｃが生成される。既存の線分はそのまま残し、この生成された線分に後続の通し番号を付けて追加する（ステップ１２１４）。そして、Ｎ２を＋１し（ステップ１２１５）、Ｃntを＋１して（ステップ１２１６）、ステップ１２０４へ戻る。
【００５２】
以上の処理を、Ｎ１×（Ｎ１−１）／２個のすべての線分ペアについて繰り返すことで、所望の線分が生成され追加される。このようにして、既存のＮ１本の線分に、この線分生成部２３０で新たに生成されて追加された線分を加えて、合計Ｎ２本の線分が得られる。
【００５３】
なお、ここでは、図１１のステップ１２０７、１２０９、１２１１、１２１３の各条件がすべて満たす場合に、新しい線分を生成するとしたが、必要に応じて、そのうちの一部の条件でも満たす時、新しい線分を生成するようにしてもよい。また、生成された線分Ｃと既存の線分で新たに線分ペアを作成し、この線分ペアについて、更に新しい線分を生成すべきか否か判定するようにしてもよい。
【００５４】
＜線分ペア分類・評価＞
線分ペア分類・評価部２４０では、既存のＮ１本の線分と、線分生成部２３０で新たに生成された（Ｎ２−Ｎ１）本の線分とを加えたＮ２本の線分から、番号ｉと番号ｊの２本の線分を取り出し（これを線分ペアｉ，ｊと呼ぶ）、線分ペアの分類と評価値を設定する。ここでは、無関係、対辺関係、隣接関係の３種類に分類するとする。図１３に線分ペア分類・評価部２４０の処理フローチャートを示す。
【００５５】
既存の線分に、線分生成部２３０で生成された線分が加わったＮ２本の線分を入力として（ステップ１３００）、番号ｉと番号ｊの２本の線分（線分ペアｉ，ｊ）を取り出し（ステップ１３０１）、Ｎ２本の線分から２本の線分を選ぶすべての組み合わせである、Ｎ２本（Ｎ２−１）／２個の線分ペアを生成する（ステップ１３０２）。各線分ペアには通し番号をつけておく。そして、カウント値Ｃntを１に初期設定した後（ステップ１３０３）、以下の処理を行う。
【００５６】
カウント値ＣntがＮ２×（Ｎ２−１）／２を超えたか判定し（ステップ１３０４）、超えたなら処理を終える。超えない場合、Ｃnt番目（最初は１番目）の線分ペアを選択し（ステップ１３０５）、当該線分ペアを構成する２つの線分（線分Ａ、線分Ｂとする）の成す角度を０〜９０°の範囲で算出する（ステップ１３０６）。線分ペアの成す角度は、図１２に示したと同様である。ここで、線分ペアの成す角度に応じて以下の処理を行う。なお、α、βは、例えば、統計等によりあらかじめ決めておく。
【００５７】
線分ペアの成す角度が０〜α度の場合には、当該線分ペアの距離を測定する（ステップ１３０７）。そして、線分ペアの距離が所定の閾値以下か判定し（ステップ１３０８）、閾値以下のときは、線分ペアの分類を「無関係」とし、更に該線分ペアの評価値を０に設定する（ステップ１３０９）。線分ペアの距離が閾値以上のときは、該線分ペアの分類を「対辺関係」とし、更に該線分ペアの評価値を０に設定する（ステップ１３１０）。その後、Ｃntを＋１して（ステップ１３１４）、ステップ１３０４へ戻る。
【００５８】
線分ペアの成す角度がα〜β度の場合には、当該線分ペアの分類を「対辺関係」として（ステップ１３１１）、ステップ１３１３の処理に進む。また、線分ペアの成す角度がβ〜９０度の場合には、当該線分ペアの分類を「隣接関係」として（ステップ１３１２）、ステップ１３１３の処理に進む。その後、Ｃntを＋１して（ステップ１３１４）、ステップ１３０４へ戻る。
【００５９】
ステップ１３１３では、当該線分ペアの評価値を、次のようにして求めて設定する。評価値は０〜１までの値で表現する。  
１．線分Ａを無限に延長した直線と、線分Ｂを無限に延長した直線の交点Ｏを求める。  
２．交点Ｏと線分Ａの始点とのユークリッド距離、交点Ｏと線分Ａの終点とのユークリッド距離を求め、小さい方の距離を距離Ａとする。  
３．交点Ｏと線分Ｂの始点とのユークリッド距離、交点Ｏと線分Ｂの終点とのユークリッド距離を求め、小さい方の距離を距離Ｂとする。  
４．距離Ａ、距離Ｂを式（２）に代入することにより評価値（Ｖａｌｕｅ）を算出する。
【００６０】
【数１】
0004712487.tif 000002
なお、Ｃonst．１は画像サイズに応じた定数である。交点Ｏが画像領域外に存在するときには、Ｃonst．１の値を変更することで、抽出したい四辺形の頂点が画像領域外に存在するときなどにも対応することができる。
【００６１】
本実施例では、線分ペアの分類を３種類（対辺関係、隣接関係、無関係）とし、線分ペアの評価値を１種類としたが、対辺関係にも評価値を設ける方法も考えられる。ただし、分類や評価値の数を増やすと処理時間が増大する。
【００６２】
＜四辺形評価＞
四辺形評価部２５０では、線分ペア分類・評価部２４０で得られたＲ組（Ｒ＝Ｎ２（Ｎ２−１）／２）の線分ペアから２組を順次取り出して、その種類と評価値に基づいて、当該２組の線分ペアが形成する四辺形に関して評価値の設定を行う。図１４に四辺形評価部２５０の処理フローチャートを示す。
【００６３】
線分ペア分類・評価部２４０で得られたＮ２×（Ｎ２−１）／２個の線分ペアを入力として（ステップ１４００）、Ｐ＝１，Ｒ＝Ｎ２×（Ｎ２−１）／２と設定し（ステップ１４０１）、Ｒ組（Ｒ＝Ｎ２×（Ｎ２−１）／２）の線分ペアから２組の線分ペアの組み合わせをすべて抽出して（ステップ１４０２〜１４０６）、以下の処理を行う。
【００６４】
２組の線分ペアを抽出し、線分ペアＰ、線分ペアＱとする（ステップ１４０７）。なお、線分ペアＰは線分ｉと線分ｊから構成される線分ペアｉ，ｊと等価であり、同様に線分ペアＱは線分ペアｋ，ｌと等価である。
【００６５】
まず、線分ペアＰと線分Ｑが「対辺関係」か否かを調べる（ステップ１４０８）。線分ペアＰと線分Ｑが両方とも「対辺関係」である場合、線分ペアＰ，Ｑを構成する線分ｉ、線分ｊ、線分ｋ、線分ｌが四辺形を成す可能性がある。そこで、次に、４つの線分ペア（線分ペアｊ，ｋ、線分ペアｉ，ｌ、線分ペアｊ，ｋ、線分ペアｊ，ｌ）の評価値が０より大きいか否かを調べる（ステップ１４０９）。４つの線分ペアがすべて０より大きい評価値である場合、線分（直線）ｉと線分ｋの交点ｋの交点ｍ１、線分ｉと線分ｌの交点ｍ２、線分ｊと線分ｌの交点ｍ３、線分ｊと線分ｋの交点ｍ４からなる四辺形を生成する（ステップ１４１０）。そして、この四辺形の評価値Ｖ（ｉ，ｋ，ｊ，ｌ）を、４つの線分ペアの評価値の和とする（ステップ１４１１）。
【００６６】
本実施例では線分ペアの評価値が０より大きいか否かにより判別を行ったが、あらかじめ線分ペアの評価値に対しソートなどを行い、評価値が上位の線分ペアのみを利用するように評価値に閾値を設けると更に処理時間が短くなる。また、ｍ１，ｍ２，ｍ３，ｍ４の座標が画像領域から遠い位置に存在する場合は、Ｖ（ｉ，ｋ，ｊ，ｌ）＝０としてもよい。加えて、四辺形ｍ１ｍ２ｍ３ｍ４が凸四辺形でない場合もＶ（ｉ，ｋ，ｊ，ｌ）＝０としてもよい。
【００６７】
次に、四辺形ｍ１ｍ２ｍ３ｍ４の面積Ｓを求め、Ｖ（ｉ，ｋ，ｊ，ｌ）に乗算する（ステップ１４１２）。なおＳを乗算する代わりに、Ｓとともに単調増加する関数ｇ（Ｓ）を作成し、ｇ（Ｓ）をＶ（ｉ，ｋ，ｊ，ｌ）に乗算、加算することでもよい。
【００６８】
次に、形状により四辺形ｍ１ｍ２ｍ３ｍ４を評価する（ステップ１４１３）。これは、例えば、次のようにして行う。線分ペアｉ，ｊの交点と線分ペアｋ，ｌの交点を２つの消失点とし、２つの消失点を無限遠点に変換するような射影変換行列を求める。この射影変換行列を求めるには、四辺形ｍ１ｍ２ｍ３ｍ４が三次元平面上に存在する平行四辺形であると仮定することで、平面の単位法線ベクトル（ａ，ｂ，ｃ）を算出し（例えば、森北出版、金谷健一著、「画像理解」）を参照）、単位法線ベクトルをカメラの光軸と一致させるような回転移動行列を、入力画像撮影時の焦点距離を利用して求めることができる。そして、四辺形ｍ１ｍ２ｍ３ｍ４を射影変換した射影平行四辺形ｎ１ｎ２ｎ３ｎ４を考え、射影平行四辺形の一つの角度θ（０°〜９０°）を算出する。もし、θが９０°以上となった場合は、そのほかの平行四辺形の角の角度を算出する。求めたθをＶ（ｉ，ｋ，ｊ，ｌ）に乗算する。なお、θを乗算する代わりに、θとともに単調増加する関数ｆ（θ）を作成し、ｆ（θ）をＶ（ｉ，ｋ，ｊ，ｌ）に乗算、加算することでもよい。また、上記面積Ｓやｇ（ｓ）で重み付けされたＶ（ｉ，ｋ，ｊ，ｌ）に、さらにθやｆ（０）を重み付けすることでもよい。
【００６９】
次に、四辺形ｉ，ｋ，ｊ，ｌを構成する４つの線分ペアの交点ｍ１ｍ２ｍ３ｍ４と、評価値Ｖ（ｉ，ｋ，ｊ，ｌ）とをメモリ等に登録する（ステップ１４１４）。
【００７０】
＜四辺形選択＞
四辺形選択部２６０では、四辺形評価部２５０にて登録された四辺形のうち、評価値Ｖ（ｉ，ｋ，ｊ，ｌ）が高い順に一つあるいはそれ以上の四辺形を選択する。なお、必要に応じて面積による評価値あるいは形状による評価値のいずれか一方を用いて選択することでもよい。
【００７１】
＜射影変換＞
射影変換部２７０では、四辺形選択部で選択された四辺形をもとに射影変換行列を算出し、入力画像に対して射影変換を行って、あおり補正を実施する。
【００７２】
射影変換行列の算出は、例えば次のように行われる。まず、四辺形ｍ１ｍ２ｍ３ｍ４の各頂点の順序を、原点に最も近い頂点を先頭とした時計回りに並び替え、再度四辺形ｍ１ｍ２ｍ３ｍ４とする。これを図１５に示す。次にステップ１４１３と同様の方法で射影平行四辺形を算出し、ｎ１ｎ２：ｎ１ｎ４の値を求める。入力画像の画像サイズをＩＭＧＷ×ＩＭＧＨとしたとき、横の長さ：縦の長さ＝ｎ１ｎ２：ｎ１ｎ４を満たす長方形で、面積が最大＆長方形の中心が画像中心と一致するような長方形を求め、その長方形の頂点を時計回りにｕ１，ｕ２，ｕ３，ｕ４とする。なお、四辺形ｍ１ｍ２ｍ３ｍ４と同様、ｕ１がｕ１ｕ２ｕ３ｕ４のうち、最も原点に近い頂点とする。そしてｍ１→ｕ１，ｍ２→ｕ２，ｍ３→ｕ３，ｍ４→ｕ４と対応付ける射影変換行列を求める。
【００７３】
こうして求められた射影変換行列を使用して、入力画像に射影変換を施す。なお、射影変換を施す際には必要に応じて画像の拡大・縮小、平行移動・回転移動を加えることもできる。
【００７４】
図１６に具体例を示す。例えば、撮影画像（入力画像）が図１６（ａ）であるとし、この射影画像から抽出された四辺形が図１６（ｂ）中の１６００で示された四辺形形状だとすると、例えば、図１６（ｃ）のようなあおり補正された画像を得ることができる。
【００７５】
以上、本発明の一実施形態について説明したが、本発明は、この実施形態に限定されるものではなく、種々の変更、拡張が可能である。
【図面の簡単な説明】
【００７６】
【図１】本発明の画像処理機能が適用されるデジタルカメラ装置の一実施形態の構成図である。
【図２】あおり補正の概念図である。
【図３】本発明の画像処理機能であるあおり補正部の一実施形態を示す構成図である。
【図４】図３中のエッジ領域検出部の処理フローチャート例である。
【図５】エッジ検出フィルタの一例と該フィルタが適用される輝度画像の一例である。
【図６】輝度の縦変化量と横変化量による２次元空間の分割の一例である。
【図７】図３中の線分抽出部の全体的処理フローチャート例である。
【図８】線分抽出の具体例である。
【図９】図７中のステップ１１０４の詳細な処理フローチャート例である。
【図１０】隣接エッジ領域の探索の具体例である。
【図１１】図３中の線分生成部の処理フローチャート例である。
【図１２】線分生成の具体例である。
【図１３】図３中の線分ペア分類・評価部の処理フローチャート例である。
【図１４】図３中の四辺形評価部の処理フローチャート例である。
【図１５】図３中の射影変換部での処理の一部を説明する図である。
【図１６】撮影画像から四辺形を抽出し、あおり補正画像を得る具体例である。
【図１７】従来技術の問題を説明する図である。
【符号の説明】
【００７７】
１２０  あおり補正部
２００  四辺形抽出部
２１０  エッジ領域検出部
２２０  線分抽出部
２３０  線分生成部
２４０  線分ペア分類・評価部
２５０  四辺形評価部
２６０  四辺形選択部
２７０  射影変換部
【図１】
0004712487.tif 000003
【図２】
0004712487.tif 000004
【図３】
0004712487.tif 000005
【図４】
0004712487.tif 000006
【図５】
0004712487.tif 000007
【図６】
0004712487.tif 000008
【図７】
0004712487.tif 000009
【図８】
0004712487.tif 000010
【図９】
0004712487.tif 000011
【図１０】
0004712487.tif 000012
【図１１】
0004712487.tif 000013
【図１２】
0004712487.tif 000014
【図１３】
0004712487.tif 000015
【図１４】
0004712487.tif 000016
【図１５】
0004712487.tif 000017
【図１６】
0004712487.tif 000018
【図１７】
0004712487.tif 000019