(57)【要約】【課題】画像から四角形の領域を抽出して、その四角形を長方形に補正する場合に、四角形内のある辺領域が他の辺領域と異なる色又は濃度であった場合に、四角形の抽出誤りを防止するようにした画像処理装置を提供する。【解決手段】画像処理装置は、画像から境界を検出し、境界から直線線分を抽出し、直線線分をまたぐ近傍の画素値の差が予め定められた第１の値より大きい領域を検出し、領域内の直線線分を矩形の４辺のいずれかに分類し、４辺の外側の色又は濃度を検出し、矩形を構成し得る４辺の組み合わせのうち、組み合わせ内の直線線分に対応する色又は濃度の差が予め定められた第２の値以下又は未満である組み合わせを選択し、該組み合わせ内の直線線分を延長した場合の４つの頂点の座標と該４つの座標によって構成される四角形の面積が予め定められた条件を満たす組み合わせを検出し、該組み合わせによって構成される四角形を長方形に補正する。【選択図】図１
2014092899.tif 000002
【特許請求の範囲】
【請求項１】
画像から境界を検出する第１の検出手段と、
前記第１の検出手段によって検出された境界から直線線分を抽出する抽出手段と、
前記抽出手段によって抽出された直線線分をまたぐ近傍の画素値の差が予め定められた第１の値より大きい又は以上である領域を検出する第２の検出手段と、
前記第２の検出手段によって検出された領域内の直線線分を矩形の４辺のいずれかに分類する分類手段と、
前記分類手段によって分類された４辺の外側の色又は濃度を検出する第３の検出手段と、
矩形を構成し得る４辺の組み合わせのうち、該組み合わせ内の直線線分に対応する前記第３の検出手段によって検出された色又は濃度の差が予め定められた第２の値以下又は未満である組み合わせを選択する選択手段と、
前記選択手段によって選択された組み合わせのうち、該組み合わせ内の直線線分を延長した場合の４つの頂点の座標と該４つの座標によって構成される四角形の面積が予め定められた条件を満たす組み合わせを検出する第４の検出手段と、
前記第４の検出手段によって検出された組み合わせによって構成される四角形を長方形に補正する補正手段
を具備することを特徴とする画像処理装置。
【請求項２】
前記分類手段によって４辺に分類された直線線分のうち、１辺の直線線分と該直線線分と交わり得る２辺の直線線分との端点間の距離が予め定められた第３の値より長い又は以上である場合は、該１辺の直線線分を除外する除外手段
をさらに具備し、
前記第３の検出手段と前記選択手段は、前記除外手段によって除外された直線線分を対象としない
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記選択手段が用いる予め定められた第２の値を、背景領域の色の変化を選択する操作者の操作に応じて設定する設定手段
をさらに具備することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記選択手段は、選択した組み合わせによって構成される四角形の面積の前記画像に占める割合が予め定められた第４の値以下又は未満である場合は、前記予め定められた第２の値を変更して、選択処理を再度行う
ことを特徴とする請求項１から３のいずれか一項に記載の画像処理装置。
【請求項５】
前記第３の検出手段は、４辺の端点近傍における外側の色又は濃度を検出し、
前記選択手段は、互いに隣接する２辺によって構成される頂点近傍における外側の前記第３の検出手段によって検出された色又は濃度を対象とする
ことを特徴とする請求項１から４のいずれか一項に記載の画像処理装置。
【請求項６】
前記第３の検出手段は、３つの頂点近傍又は対角の２つの頂点近傍における外側の色又は濃度を検出する
ことを特徴とする請求項５に記載の画像処理装置。
【請求項７】
コンピュータを、
画像から境界を検出する第１の検出手段と、
前記第１の検出手段によって検出された境界から直線線分を抽出する抽出手段と、
前記抽出手段によって抽出された直線線分をまたぐ近傍の画素値の差が予め定められた第１の値より大きい又は以上である領域を検出する第２の検出手段と、
前記第２の検出手段によって検出された領域内の直線線分を矩形の４辺のいずれかに分類する分類手段と、
前記分類手段によって分類された４辺の外側の色又は濃度を検出する第３の検出手段と、
矩形を構成し得る４辺の組み合わせのうち、該組み合わせ内の直線線分に対応する前記第３の検出手段によって検出された色又は濃度の差が予め定められた第２の値以下又は未満である組み合わせを選択する選択手段と、
前記選択手段によって選択された組み合わせのうち、該組み合わせ内の直線線分を延長した場合の４つの頂点の座標と該４つの座標によって構成される四角形の面積が予め定められた条件を満たす組み合わせを検出する第４の検出手段と、
前記第４の検出手段によって検出された組み合わせによって構成される四角形を長方形に補正する補正手段
として機能させるための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
特許文献１には、台座画像の輪郭を原稿画像の輪郭と誤判定しないようにして、原稿画像の輪郭を正しく取得することを課題とし、書画カメラに備えられた画像処理装置は、予め、台座に原稿が載置されていない状態で撮影を行って比較画像を取得し、そして、画像処理装置は、台座に原稿が載置された状態の縮小画像と比較画像とを比較して、その差分画像を取得し、画像処理装置は、差分画像を用いて台座画像の輪郭を除去し、原稿画像の輪郭を取得することが開示されている。
【０００２】
特許文献２には、カメラなどの撮影装置で文書を撮影した場合、傾きから文書に台形状の歪みが発生し、これを補正するために文書枠を検出する必要があるが、文書領域外に直線成分が多数ある場合などには、文書枠の推定が困難であることを課題とし、直線成分の組み合わせから文書枠候補を推定する際に、直線の直交方向への色の勾配を加味することで、余分な文書枠候補を絞り込むことを可能とすることが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−０４８６２６号公報
【特許文献２】特開２０１２−０１４４３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、画像から四角形の領域を抽出して、その四角形を長方形に補正する場合に、四角形内のある辺領域が他の辺領域と異なる色又は濃度であった場合に、四角形の抽出誤りを防止するようにした画像処理装置及び画像処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００５】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、画像から境界を検出する第１の検出手段と、前記第１の検出手段によって検出された境界から直線線分を抽出する抽出手段と、前記抽出手段によって抽出された直線線分をまたぐ近傍の画素値の差が予め定められた第１の値より大きい又は以上である領域を検出する第２の検出手段と、前記第２の検出手段によって検出された領域内の直線線分を矩形の４辺のいずれかに分類する分類手段と、前記分類手段によって分類された４辺の外側の色又は濃度を検出する第３の検出手段と、矩形を構成し得る４辺の組み合わせのうち、該組み合わせ内の直線線分に対応する前記第３の検出手段によって検出された色又は濃度の差が予め定められた第２の値以下又は未満である組み合わせを選択する選択手段と、前記選択手段によって選択された組み合わせのうち、該組み合わせ内の直線線分を延長した場合の４つの頂点の座標と該４つの座標によって構成される四角形の面積が予め定められた条件を満たす組み合わせを検出する第４の検出手段と、前記第４の検出手段によって検出された組み合わせによって構成される四角形を長方形に補正する補正手段を具備することを特徴とする画像処理装置である。
【０００６】
請求項２の発明は、前記分類手段によって４辺に分類された直線線分のうち、１辺の直線線分と該直線線分と交わり得る２辺の直線線分との端点間の距離が予め定められた第３の値より長い又は以上である場合は、該１辺の直線線分を除外する除外手段をさらに具備し、前記第３の検出手段と前記選択手段は、前記除外手段によって除外された直線線分を対象としないことを特徴とする請求項１に記載の画像処理装置である。
【０００７】
請求項３の発明は、前記選択手段が用いる予め定められた第２の値を、背景領域の色の変化を選択する操作者の操作に応じて設定する設定手段をさらに具備することを特徴とする請求項１又は２に記載の画像処理装置である。
【０００８】
請求項４の発明は、前記選択手段は、選択した組み合わせによって構成される四角形の面積の前記画像に占める割合が予め定められた第４の値以下又は未満である場合は、前記予め定められた第２の値を変更して、選択処理を再度行うことを特徴とする請求項１から３のいずれか一項に記載の画像処理装置である。
【０００９】
請求項５の発明は、前記第３の検出手段は、４辺の端点近傍における外側の色又は濃度を検出し、前記選択手段は、互いに隣接する２辺によって構成される頂点近傍における外側の前記第３の検出手段によって検出された色又は濃度を対象とすることを特徴とする請求項１から４のいずれか一項に記載の画像処理装置である。
【００１０】
請求項６の発明は、前記第３の検出手段は、３つの頂点近傍又は対角の２つの頂点近傍における外側の色又は濃度を検出することを特徴とする請求項５に記載の画像処理装置である。
【００１１】
請求項７の発明は、コンピュータを、画像から境界を検出する第１の検出手段と、前記第１の検出手段によって検出された境界から直線線分を抽出する抽出手段と、前記抽出手段によって抽出された直線線分をまたぐ近傍の画素値の差が予め定められた第１の値より大きい又は以上である領域を検出する第２の検出手段と、前記第２の検出手段によって検出された領域内の直線線分を矩形の４辺のいずれかに分類する分類手段と、前記分類手段によって分類された４辺の外側の色又は濃度を検出する第３の検出手段と、矩形を構成し得る４辺の組み合わせのうち、該組み合わせ内の直線線分に対応する前記第３の検出手段によって検出された色又は濃度の差が予め定められた第２の値以下又は未満である組み合わせを選択する選択手段と、前記選択手段によって選択された組み合わせのうち、該組み合わせ内の直線線分を延長した場合の４つの頂点の座標と該４つの座標によって構成される四角形の面積が予め定められた条件を満たす組み合わせを検出する第４の検出手段と、前記第４の検出手段によって検出された組み合わせによって構成される四角形を長方形に補正する補正手段として機能させるための画像処理プログラムである。
【発明の効果】
【００１２】
請求項１の画像処理装置によれば、画像から四角形の領域を抽出して、その四角形を長方形に補正する場合に、四角形内のある辺領域が他の辺領域と異なる色又は濃度であった場合に、四角形の抽出誤りを防止することができる。
【００１３】
請求項２の画像処理装置によれば、矩形を構成し得ない直線線分を除外して処理することができる。
【００１４】
請求項３の画像処理装置によれば、背景領域の色の変化を選択する操作者の操作に応じて、予め定められた第２の値を設定することができる。
【００１５】
請求項４の画像処理装置によれば、選択した四角形の面積の画像に占める割合が適していない場合は、再度四角形を選択することができる。
【００１６】
請求項５の画像処理装置によれば、辺の端点近傍における外側の色又は濃度を用いて、四角形を選択することができる。
【００１７】
請求項６の画像処理装置によれば、４つの頂点近傍における外側の色又は濃度を検出することなく、選択処理を行うことができる。
【００１８】
請求項７の画像処理プログラムによれば、画像から四角形の領域を抽出して、その四角形を長方形に補正する場合に、四角形内のある辺領域が他の辺領域と異なる色又は濃度であった場合に、四角形の抽出誤りを防止することができる。
【図面の簡単な説明】
【００１９】
【図１】第１の実施の形態の構成例についての概念的なモジュール構成図である。
【図２】本実施の形態を実現する画像処理装置のハードウェア構成例を示すブロック図である。
【図３】第１の実施の形態による処理例を示すフローチャートである。
【図４】第１の実施の形態による処理例を示す説明図である。
【図５】第１の実施の形態による処理例を示す説明図である。
【図６】第１の実施の形態（直線線分抽出モジュール）による処理例を示す説明図である。
【図７】第１の実施の形態（直線線分抽出モジュール）による処理例を示す説明図である。
【図８】第１の実施の形態（直線線分抽出モジュール）による処理例を示す説明図である。
【図９】第１の実施の形態（ステップエッジ検出モジュール）による処理例を示す説明図である。
【図１０】第１の実施の形態（直線線分分類モジュール）による処理例を示す説明図である。
【図１１】第１の実施の形態（直線線分分類モジュール）による処理例を示す説明図である。
【図１２】第１の実施の形態（直線線分分類モジュール）による処理例を示す説明図である。
【図１３】第１の実施の形態（近傍色検出モジュール）による処理例を示す説明図である。
【図１４】第１の実施の形態（近傍色検出モジュール）による処理例を示す説明図である。
【図１５】線分情報テーブルのデータ構造例を示す説明図である。
【図１６】第１の実施の形態（四角形候補選択モジュール）による処理例を示す説明図である。
【図１７】第１の実施の形態（形状補正モジュール）による処理例を示す説明図である。
【図１８】第１の実施の形態（形状補正モジュール）による処理例を示す説明図である。
【図１９】第２の実施の形態による処理例を示す説明図である。
【図２０】第２の実施の形態の構成例についての概念的なモジュール構成図である。
【図２１】第２の実施の形態による処理例を示すフローチャートである。
【図２２】第２の実施の形態（孤立直線除去モジュール）による処理例を示す説明図である。
【図２３】第３の実施の形態の構成例についての概念的なモジュール構成図である。
【図２４】第３の実施の形態による処理例を示すフローチャートである。
【図２５】第４の実施の形態の構成例についての概念的なモジュール構成図である。
【図２６】第４の実施の形態による処理例を示すフローチャートである。
【図２７】第４の実施の形態による処理例を示すフローチャートである。
【図２８】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【図２９】文書等を撮影したときに生じる射影歪みの例を示す説明図である。
【発明を実施するための形態】
【００２０】
まず、本実施の形態を説明する前に、図２９を用いて、その前提の技術について説明する。なお、この説明は、本実施の形態の理解を容易にすることを目的とするものである。
文書やホワイトボードなどの長方形の撮影対象をカメラで撮影したときに射影歪みが発生する。撮影装置として、ユーザが原稿台に載置した原稿をカメラで撮影して、そのカメラで撮影した原稿の画像データを記憶して画像処理を行い、プロジェクタを用いてスクリーン上に原稿の画像を拡大して投影するものがある。ここでの画像処理として、射影歪みを元の長方形に補正するものがある。この射影歪みが発生している四角形を抽出する処理として、例えば、画像データから直線成分を検出し、その中から長方形を構成する４本の線を抽出する際に、４本の線の勾配の向きが内側又は外側のいずれかの方向に対して同一の向きにならない４本を選択する技術がある。また、文書等は台座の上に置いて撮影し、文書の４辺は予め撮影してある台座だけの画像との差分を利用して求めるようにする技術がある。
これらの技術は、基本的にホワイトボードやごく単純なレイアウトの文書には適用可能である。しかし、例えば、図２９（ａ）に示すような文書画像２９１０のように、その辺の全領域に色が付いたタイトル２９１２がある文書画像２９１０等が対象となる場合がある。この場合、画像２９００内からタイトル２９１２を含めた文書画像２９１０を検出できずに、図２９（ｂ）に示すように、画像２９００内からは文書画像（部分）２９１４を検出してしまい、この文書画像（部分）２９１４に対して補正を行ってしまうことが生じる。
【００２１】
以下、図面に基づき本発明を実現するにあたっての好適な各種の実施の形態の例を説明する。
＜第１の実施の形態＞
図１は、第１の実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、２以上の値（もちろんのことながら、全ての値も含む）が同じであってもよい。また、「Ａである場合、Ｂをする」という意味を有する記載は、「Ａであるか否かを判断し、Ａであると判断した場合はＢをする」の意味で用いる。ただし、Ａであるか否かの判断が不要である場合を除く。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ等を含んでいてもよい。
【００２２】
第１の実施の形態である画像処理装置は、射影歪みが発生した画像を補正するものであって、図１の例に示すように、画像処理モジュール１００は、エッジ検出モジュール１１０、直線線分抽出モジュール１２０、ステップエッジ検出モジュール１３０、直線線分分類モジュール１４０、近傍色検出モジュール１５０、四角形候補選択モジュール１６０、最大四角形検出モジュール１７０、形状補正モジュール１８０、出力モジュール１９０を有している。
【００２３】
エッジ検出モジュール１１０は、直線線分抽出モジュール１２０と接続されている。エッジ検出モジュール１１０は、画像から境界（エッジ、輪郭ともいわれるものであり、以下、エッジともいう）を検出する。画像内には、長方形（矩形（正方形を含む））である文書、ホワイトボード等が撮影されており、その長方形には射影歪みが発生している。なお、文書、ホワイトボード等と例示しているが、外形が長方形であれば対象はどのようなものであってもよい。また、対象とする画像を受け付けることには、例えば、スキャナ、カメラ（対象との位置関係が固定されたカメラ、ユーザが操作するデジタルカメラ、カメラ付き携帯電話等を含む）等で画像を読み込むこと、ファックス等で通信回線を介して外部機器から画像を受信すること、ハードディスク（コンピュータに内蔵されているものの他に、ネットワークを介して接続されているもの等を含む）等に記憶されている画像を読み出すこと等が含まれる。画像は、２値画像、多値画像（カラー画像を含む）であってもよい。受け付ける画像は、１枚であってもよいし、複数枚であってもよい。また、画像の内容として、ビジネスに用いられる文書、広告宣伝用のパンフレット、会議で用いられたホワイトボード等であってもよい。
境界の検出方法は、エッジ検出といわれる公知の技術を用いてよい。例えば、微分フィルタであるＳｏｂｅｌフィルタなどを用いて、予め定められた強度以上のエッジ部分を検出する。
【００２４】
直線線分抽出モジュール１２０は、エッジ検出モジュール１１０、ステップエッジ検出モジュール１３０と接続されている。直線線分抽出モジュール１２０は、エッジ検出モジュール１１０によって検出された境界から直線線分を抽出する。例えば、直線に近いエッジを検出し、その傾きや始点・終点の位置情報を得る。なお、直線線分抽出モジュール１２０は、予め定められた長さより短い直線線分を除くようにしてもよい。詳細は図６〜８を用いて後述する。
ステップエッジ検出モジュール１３０は、直線線分抽出モジュール１２０、直線線分分類モジュール１４０と接続されている。ステップエッジ検出モジュール１３０は、直線線分抽出モジュール１２０によって抽出された直線線分をまたぐ近傍の画素値の差が予め定められた第１の値より大きい又は以上である領域（以下、ステップエッジ領域ともいう）を検出する。「直線線分をまたぐ近傍の画素値の差」とは、直線線分によって２分された平面であって、一方の平面と他方の平面において、その直線線分から予め定められた距離内にある画素値の差（絶対値）をいう。例えば、直線線分抽出モジュール１２０で抽出した直線線分の中から対応するエッジがステップ型であったものだけを抽出する。詳細は図９を用いて後述する。
【００２５】
直線線分分類モジュール１４０は、ステップエッジ検出モジュール１３０、近傍色検出モジュール１５０と接続されている。直線線分分類モジュール１４０は、ステップエッジ検出モジュール１３０によって検出された領域内の直線線分を矩形の４辺のいずれかに分類する。例えば、その直線線分の傾きや位置に基づいて、直線線分を上辺候補、下辺候補、左辺候補、右辺候補に分類する。詳細は図１０〜１２を用いて後述する。
近傍色検出モジュール１５０は、直線線分分類モジュール１４０、四角形候補選択モジュール１６０と接続されている。近傍色検出モジュール１５０は、直線線分分類モジュール１４０によって分類された４辺の外側の色又は濃度を検出する。例えば、上辺候補、下辺候補、左辺候補、右辺候補の外側、つまり画像の端に近い側の色又は濃度を計測して保持する。詳細は図１３、１４を用いて後述する。
【００２６】
四角形候補選択モジュール１６０は、近傍色検出モジュール１５０、最大四角形検出モジュール１７０と接続されている。四角形候補選択モジュール１６０は、矩形を構成し得る４辺の組み合わせのうち、その組み合わせ内の直線線分に対応する近傍色検出モジュール１５０によって検出された色又は濃度の差が予め定められた第２の値以下又は未満である組み合わせ（四角形）を選択する。ここで、「色又は濃度の差」とは、組み合わせ内における色又は濃度の差をいう。例えば、上辺候補、下辺候補、左辺候補、右辺候補の全ての組み合わせの中から、近傍色が近い組み合わせだけを選択する。近傍色が近いとは、ある色空間で計算した距離が予め定められた値以下の事である。詳細は図１５、１６を用いて後述する。
【００２７】
最大四角形検出モジュール１７０は、四角形候補選択モジュール１６０、形状補正モジュール１８０と接続されている。最大四角形検出モジュール１７０は、四角形候補選択モジュール１６０によって選択された組み合わせのうち、その組み合わせ内の直線線分を延長した場合の４つの頂点の座標とその４つの座標によって構成される四角形の面積が予め定められた条件を満たす組み合わせを検出する。例えば、四角形候補選択モジュール１６０が出力した複数の４本の線分の組み合わせから、それらの４つの線分を延長したときの４頂点の座標とそのとき形成される四角形の中から最大の面積となる組み合わせを求める。「面積が予め定められた条件を満たす」としては、このように面積が最大となる四角形のほか、面積が画像の予め定められた割合以上である四角形であること等がある。以下、面積が最大であることを例示して説明する。
【００２８】
形状補正モジュール１８０は、最大四角形検出モジュール１７０、出力モジュール１９０と接続されている。形状補正モジュール１８０は、最大四角形検出モジュール１７０によって検出された組み合わせによって構成される四角形を長方形に補正する。例えば、最大面積となる四角形の４頂点の座標が補正後の長方形の４頂点に一致するように射影変換する。詳細は図１７、１８を用いて後述する。
出力モジュール１９０は、形状補正モジュール１８０と接続されている。出力モジュール１９０は、形状補正モジュール１８０によって長方形に補正された画像を出力する。画像を出力するとは、例えば、プリンタ等の印刷装置で印刷すること、プロジェクタ、ディスプレイ等の表示装置で表示すること、ファックス等の画像送信装置で画像を送信すること、画像データベース等の画像記憶装置へ画像を書き込むこと、メモリーカード等の記憶媒体に記憶すること、他の情報処理装置へ渡すこと等が含まれる。
【００２９】
図２は、本実施の形態（第１の実施の形態、後述する第２〜４の実施の形態を含む）を実現する画像処理装置のハードウェア構成例を示すブロック図である。
ハードウェア構成としては、画像処理モジュール１００、画像受付モジュール２１０、制御モジュール２２０、メモリ２３０、通信モジュール２４０、表示モジュール２５０、操作モジュール２６０を有している。
画像処理モジュール１００は、画像受付モジュール２１０、制御モジュール２２０、メモリ２３０、通信モジュール２４０、表示モジュール２５０と接続されている。図１に例示した各モジュールは、画像処理モジュール１００によって構成されている。
画像受付モジュール２１０は、画像処理モジュール１００と接続されている。エッジ検出モジュール１１０が対象とする画像を受け付ける。例えば、前述のカメラ等である。
【００３０】
メモリ２３０は、画像処理モジュール１００と接続されている。対象とする画像、処理結果等を記憶し、画像処理モジュール１００は、メモリ２３０を用いて処理を行う。
通信モジュール２４０は、画像処理モジュール１００と接続されている。画像処理モジュール１００は、処理結果等を、通信モジュール２４０を介して外部に出力する。
表示モジュール２５０は、画像処理モジュール１００と接続されている。液晶ディスプレイ等の表示装置であり、画像処理モジュール１００は、処理結果等を表示モジュール２５０に出力する。
操作モジュール２６０は、制御モジュール２２０と接続されている。ユーザの操作を受け付けるキーボード、マウス、タッチパネル等であって、画像処理モジュール１００に対しての指示を受け付ける。例えば、画像処理モジュール１００による処理の開始等の指示を受け付ける。受け付けた指示にしたがって、画像処理モジュール１００（特に、後述する近傍色閾値設定モジュール２３５５）が処理を行う。
制御モジュール２２０は、画像処理モジュール１００、操作モジュール２６０と接続されている。操作モジュール２６０によって受け付けられた指示に従って、画像処理モジュール１００に処理させる。
【００３１】
図３は、第１の実施の形態による処理例を示すフローチャートである。
ステップＳ３０２では、エッジ検出モジュール１１０が、画像受付モジュール２１０によって受け付けられた画像に対して、Ｓｏｂｅｌフィルタなどを用いて、予め定められた強度以上のエッジ部分を検出する。
ステップＳ３０４では、直線線分抽出モジュール１２０が、直線に近いエッジを検出し、その傾きや始点・終点の位置情報を得る。
ステップＳ３０６では、ステップエッジ検出モジュール１３０が、直線線分抽出モジュール１２０で抽出した線の中から対応するエッジがステップ型であったものだけを抽出する。
【００３２】
ステップＳ３０８では、直線線分分類モジュール１４０が、その直線の傾きや位置に基づいて、直線を上辺候補、下辺候補、左辺候補、右辺候補に分類する。
ステップＳ３１０では、近傍色検出モジュール１５０が、上辺候補、下辺候補、左辺候補、右辺候補の外側、つまり画像の端に近い側の色又は濃度を計測して保持する。
図４、図５の例を用いて説明する。
図４の例では、上辺候補の上側（計測領域（上側）４２０）、下辺候補の下側（計測領域（下側）４２４）、左辺候補の左側（計測領域（左側）４２６）、右辺候補の右側（計測領域（右側）４２２）における色又は濃度を計測して保持する。
図５の例では、４辺の端点近傍における外側の色又は濃度、つまり、上辺候補の上側（背景（右上Ａ）５２０、背景（左上Ｂ）５３４）、下辺候補の下側（背景（右下Ｂ）５２６、背景（左下Ａ）５２８）、左辺候補の左側（背景（左下Ｂ）５３０、背景（左上Ａ）５３２）、右辺候補の右側（背景（右上Ｂ）５２２、背景（右下Ａ）５２４）における色又は濃度を計測して保持する。
また、近傍色検出モジュール１５０は、３つの頂点近傍又は対角の２つの頂点近傍における外側の色又は濃度を検出するようにしてもよい。具体的には、３つの頂点近傍の外側とは４つの組み合わせ（（背景（右上Ａ）５２０、背景（右上Ｂ）５２２）、（背景（右下Ａ）５２４、背景（右下Ｂ）５２６）、（背景（左下Ａ）５２８、背景（左下Ｂ）５３０）、（背景（左上Ａ）５３２、背景（左上Ｂ）５３４））のうちの３つの組み合わせ、対角の２つの頂点近傍における外側とは（背景（右上Ａ）５２０、背景（右上Ｂ）５２２）と（背景（左下Ａ）５２８、背景（左下Ｂ）５３０）、又は（背景（右下Ａ）５２４、背景（右下Ｂ）５２６）と（背景（左上Ａ）５３２、背景（左上Ｂ）５３４）のいずれかをいう。
【００３３】
ステップＳ３１２では、四角形候補選択モジュール１６０が、上辺候補、下辺候補、左辺候補、右辺候補の全ての組み合わせの中から、近傍色又は近傍濃度が近い組み合わせだけを選択する。
図４の例では、上辺候補の上側（計測領域（上側）４２０）、下辺候補の下側（計測領域（下側）４２４）、左辺候補の左側（計測領域（左側）４２６）、右辺候補の右側（計測領域（右側）４２２）の４つがほぼ同じ色又は濃度（色又は濃度の差異が予め定められた値の範囲内にある）の組み合わせを四角形の候補として選択する。
図５の例では、互いに隣接する２辺によって構成される頂点近傍における外側の近傍色検出モジュール１５０によって検出された色又は濃度を対象とする。つまり、上辺候補の上側（背景（右上Ａ）５２０、背景（左上Ｂ）５３４）、下辺候補の下側（背景（右下Ｂ）５２６、背景（左下Ａ）５２８）、左辺候補の左側（背景（左下Ｂ）５３０、背景（左上Ａ）５３２）、右辺候補の右側（背景（右上Ｂ）５２２、背景（右下Ａ）５２４）のうち、隣り合う辺の端点近傍の外側がほぼ同じ色又は濃度となる線を選んで四角形の候補とする。具体的には、背景（右上Ａ）５２０と背景（右上Ｂ）５２２、背景（右下Ａ）５２４と背景（右下Ｂ）５２６、背景（左下Ａ）５２８と背景（左下Ｂ）５３０、背景（左上Ａ）５３２と背景（左上Ｂ）５３４における色又は濃度を比較する。また、前述の通り、近傍色検出モジュール１５０が、３つの頂点近傍における外側の色又は濃度を検出した場合は、その３つの組み合わせにおける色又は濃度を比較する。近傍色検出モジュール１５０が、対角の２つの頂点近傍における外側の色又は濃度を検出した場合は、その２つの組み合わせにおける色又は濃度を比較する。これは、複雑な背景、例えば、少なくとも単色ではない背景に対応するためのものである。（背景（右上Ａ）５２０、背景（右上Ｂ）５２２）の２つがほぼ同じ色若しくは濃度であって（背景（左下Ａ）５２８、背景（左下Ｂ）５３０）の２つがほぼ同じ色若しくは濃度である場合、又は（背景（右下Ａ）５２４、背景（右下Ｂ）５２６）の２つがほぼ同じ色若しくは濃度であって（背景（左上Ａ）５３２、背景（左上Ｂ）５３４）の２つがほぼ同じ色若しくは濃度である場合がある。したがって、例えば、背景（右上Ａ）５２０と背景（左下Ａ）５２８は、異なる色又は濃度であってもよい。
【００３４】
ステップＳ３１４では、最大四角形検出モジュール１７０が、前記四角形候補選択モジュール１６０が出力した複数の４本の線分の組み合わせから、それらの４つの線分を延長したときの４頂点の座標とそのとき形成される四角形の中から最大の面積となる組み合わせを求める。
ステップＳ３１６では、形状補正モジュール１８０が、前記最大面積となる四角形の４頂点の座標が予め定められた補正後の長方形の４頂点に一致するように射影変換する。
ステップＳ３１８では、出力モジュール１９０が、射影変換後の画像を出力する。
【００３５】
図６〜８を用いて、直線線分抽出モジュール１２０が行う処理の詳細について説明する。
直線線分抽出モジュール１２０は、エッジ検出モジュール１１０で抽出されたエッジ画像に対して、例えばハフ変換をすることで、画像中の直線エッジ成分の傾きと原点からの距離を得ることができる。例えば、エッジ検出モジュール１１０によって抽出されたエッジ画像が図６の例に示す画像であるとすると、ハフ変換によって抽出される直線線分は、図７の例に示すようになる。
ただし、ハフ変換で求めた線は、実際の直線状エッジ画像の傾きと原点からの距離だけの情報しかないため、ハフ変換で求めた線と実際のエッジ画像を比較し、予め定められた距離内である近傍内に存在するエッジ画像の範囲を得ることで、その線分の２つの端の座標（始点と終点）を得る。なお、この時点では、どちらの端が始点でもかまわない。このようにして得られた直線成分に番号をつけてリスト化して保存する。例えば、図８の例に示すように、ハフ変換で求めた１つの直線８２０と実際のエッジ８１０の位置を比較し、ハフ変換で求めた１つの直線８２０からの予め定められた幅の近傍８３０内に実際のエッジ８１０が含まれていれば、実際のエッジ８１０とハフ変換で求めた１つの直線８２０は対応していると判断し、実際のエッジ８１０の始点と終点の座標をハフ変換で求めた１つの直線８２０の始点と終点とする。
【００３６】
図９を用いて、ステップエッジ検出モジュール１３０が行う処理の詳細について説明する。
ステップエッジ検出モジュール１３０は、直線線分抽出モジュール１２０で抽出した線分の線分をまたぐ近傍の画素値の差が所定値以上の場合に、ステップエッジと判定し、ステップエッジでないと判定した線分の情報をリストから除去する。詳細にはエッジの種類は図９（ａ）〜図９（ｄ）の４種類となる。図９（ａ）に示す例はステップエッジ型であり、図９（ｂ）に示す例はランプエッジ型であり、図９（ｃ）に示す例はリッジ型であり、図９（ｄ）に示す例はルーフ型である。本実施の形態ではランプエッジ型のエッジもステップエッジと判定する。なお、画像中の罫線などは、リッジ型やルーフ型のエッジとして検出される。いずれの型であるかの判断は、画素値の分布が図９（ａ）〜（ｄ）の下に示したグラフの形状をしているか否かによって判断する。
さらに、ステップエッジの判定には、線分をまたぐ近傍の複数点や近傍領域の平均値などを利用してもよい。
【００３７】
図１０〜図１２を用いて、直線線分分類モジュール１４０が行う処理の詳細について説明する。
直線線分分類モジュール１４０は、リストに残っている線分を上辺候補、下辺候補、左辺候補、右辺候補の４つに分類する。分類は、まず直線線分の方向（傾き）から縦候補と横候補に分類する。
図１０の例では、直線線分１０１０の傾き（角度θ１０２０）が４５度〜１３５度の場合は縦候補とし、それ以外を横候補とする。
次に、縦候補の中の線分を左辺候補と右辺候補に分類する。具体的には、図１１の例に示すように、画像１１００内で、その直線線分１１１０の中点が左半分（左側領域１１２０）にあるか右半分（右側領域１１３０）にあるかで分類すればよい。また、中点ではなく端の点が左端と右端のどちらに近いかで分類してもよい。あるいは、図１２の例に示すように、画像１２００を縦に３つの部分（左側領域１２２０、中央領域１２３０、右側領域１２４０）に分け、その直線線分１２１０の中点が左の領域にある場合左辺候補、右にある場合右辺候補、真中の領域にある場合は、左辺・右辺両方の候補としてもよい。
横方向の線分に関しても、考え方は同様で、線分の中点が画像の上半分に存在するか、下半分に存在するかで分類すればいい。すなわち、上半分の領域に存在すれば上辺候補、下半分の領域に存在すれば下辺候補とすればよい。
なお、このとき、上辺候補と下辺候補では左側の端点を始点とし、左辺候補と右辺候補では上側を始点として、図１５の例を用いて後述する線情報のデータ構造体に格納する。これは、始点を統一して記録しておくためである。
【００３８】
図１３、１４を用いて、近傍色検出モジュール１５０が行う処理の詳細について説明する。
近傍色検出モジュール１５０は、上辺候補、下辺候補、左辺候補、右辺候補の外側の近傍の色又は濃度を計測して保持する。
計測領域としては、図１３の例に示すように、上辺候補である直線線分１３１０に沿って外側の近傍領域全体（計測領域（上側）１３２０）を計測してもよい。また、図１４の例に示すように、上辺候補である直線線分１４１０の中点近傍領域（計測領域（中央上）１４３０）や端点近傍領域（計測領域（左上）１４２０、計測領域（右上）１４４０）だけを計測してもよい。もちろんのことながら、計測領域は、下辺候補の直線線分の場合はその直線線分の下側の領域であり、左辺候補の直線線分の場合はその直線線分の左側の領域であり、右辺候補の直線線分の場合はその直線線分の右側の領域である。
なお、これらの計測領域の色又は濃度は、対象としている線が原稿画像内の本物の境界であった場合には背景の色又は濃度であると考えられる。
【００３９】
図１５、１６を用いて、四角形候補選択モジュール１６０が行う処理の詳細について説明する。
線分情報テーブル１５００は、各直線線分の情報を保持するデータ構造体の例である。線分情報テーブル１５００は、線ＩＤ欄１５０２、原点からの距離欄１５０４、傾き欄１５０６、始点座標欄１５０８、終点座標欄１５１０、位置の分類欄１５１２、近傍色（全体）欄１５１４、近傍色（中点）欄１５１６、近傍色（始点）欄１５１８、近傍色（終点）欄１５２０を有している。線ＩＤ欄１５０２は、直線線分を本実施の形態で一意に識別し得る情報（線ＩＤ：ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）を記憶している。原点からの距離欄１５０４は、ハフ変換におけるパラメータρを記憶している。傾き欄１５０６は、ハフ変換におけるパラメータθを記憶している。始点座標欄１５０８は、直線線分の始点の座標を記憶している。終点座標欄１５１０は、直線線分の終点の座標を記憶している。位置の分類欄１５１２は、上辺候補、下辺候補、左辺候補、右辺候補の別を示す情報を記憶している。近傍色（全体）欄１５１４〜近傍色（終点）欄１５２０は、その直線線分の外側における領域の色又は濃度を記憶している。例えば、具体的には、ＲＧＢそれぞれの値を記憶している。近傍色（全体）欄１５１４は、領域全体の計測結果（図１３の例に示した計測領域（上側）１３２０）を記憶している。近傍色（中点）欄１５１６は、中点における計測結果（図１４の例に示した計測領域（中央上）１４３０）を記憶している。近傍色（始点）欄１５１８は、始点における計測結果（図１４の例に示した計測領域（左上）１４２０）を記憶している。近傍色（終点）欄１５２０は、終点における計測結果（図１４の例に示した計測領域（右上）１４４０）を記憶している。
線分情報テーブル１５００が、線の数だけリスト化されている。なお、近傍色（全体）欄１５１４〜近傍色（終点）欄１５２０については、近傍色（全体）欄１５１４又は近傍色（中点）欄１５１６のいずれか一方だけでもよいし、近傍色（始点）欄１５１８と近傍色（終点）欄１５２０だけであってもよいし、近傍色（中点）欄１５１６と近傍色（始点）欄１５１８と近傍色（終点）欄１５２０だけであってもよい。
【００４０】
図１６は、四角形候補選択モジュール１６０による処理例の詳細をフローチャートで示す。ここで、Ｎは直線線分の総数で、ｉ，ｊ，ｋ，ｍは線ＩＤを指定する変数である。このフローチャート例では、直線線分の全ての組み合わせについて、ステップＳ１６２０の判断処理を行っている。
ステップＳ１６０２では、ｉ＝０とする。
ステップＳ１６０４では、ｉ＜Ｎであるか否かを判断し、ｉ＜Ｎである場合はステップＳ１６０６へ進み、それ以外の場合は処理を終了する（ステップＳ１６９９）。
ステップＳ１６０６では、ｊ＝ｊ＋１とする。
【００４１】
ステップＳ１６０８では、ｊ＜Ｎであるか否かを判断し、ｊ＜Ｎである場合はステップＳ１６１０へ進み、それ以外の場合はステップＳ１６３０へ進む。
ステップＳ１６１０では、ｋ＝ｊ＋１とする。
ステップＳ１６１２では、ｋ＜Ｎであるか否かを判断し、ｋ＜Ｎである場合はステップＳ１６１４へ進み、それ以外の場合はステップＳ１６２８へ進む。
ステップＳ１６１４では、ｍ＝ｋ＋１とする。
【００４２】
ステップＳ１６１６では、ｍ＜Ｎであるか否かを判断し、ｍ＜Ｎである場合はステップＳ１６１８へ進み、それ以外の場合はステップＳ１６２６へ進む。
ステップＳ１６１８では、分類（ｉ）、分類（ｊ）、分類（ｋ）、分類（ｍ）が全て異なるか否かを判断し、全て異なる場合はステップＳ１６２０へ進み、それ以外の場合はステップＳ１６２４へ進む。分類（ｉ）とは、線ＩＤ：ｉは上辺候補、下辺候補、左辺候補、右辺候補のいずれであるかの種類を示す。
【００４３】
ステップＳ１６２０では、４つのコーナーの近傍色間の差が予め定められた値以下であるか否かを判断し、予め定められた値以下である場合はステップＳ１６２２へ進み、それ以外の場合はステップＳ１６２４へ進む。
ステップＳ１６２２では、その四角形の組み合わせ（線ＩＤ：ｉ、ｊ、ｋ、ｍ）を選択する。
ステップＳ１６２４では、ｍに１を加え、ステップＳ１６１６へ戻る。
ステップＳ１６２６では、ｋに１を加え、ステップＳ１６１２へ戻る。
ステップＳ１６２８では、ｊに１を加え、ステップＳ１６０８へ戻る。
ステップＳ１６３０では、ｉに１を加え、ステップＳ１６０４へ戻る。
なお、ステップＳ１６２０の判断処理は、前述したように、３つのコーナーの近傍色の差が予め定められた値以下であるか否かを判断するようにしてもよいし、対角する２つのコーナーの近傍色の差が予め定められた値以下であるか否かを判断するようにしてもよい。
【００４４】
図１７、１８を用いて、形状補正モジュール１８０が行う処理の詳細について説明する。
図１８の例に示すように予め定められた長方形の４頂点の座標を（ｘ１，ｙ１），（ｘ２，ｙ２），（ｘ３，ｙ３），（ｘ４，ｙ４）とし、図１７の例に示すように最大四角形検出モジュール１７０で求めた四角形の４頂点を（ｘ１’，ｙ１’），（ｘ２’，ｙ２’），（ｘ３’，ｙ３’），（ｘ４’，ｙ４’）とすると、射影変換の式（１）より式（２）が算出される。
【数１】
2014092899.tif 000003
【数２】
2014092899.tif 000004
式（２）を解くことで未知パラメータｐ，ｑ，ａ，ｂ，ｃ，ｄ，ｅ，ｆが求められる。
幾何補正は、式（１）を使い座標（ｘ，ｙ）にマッピングする元画像の座標（ｘ’，ｙ’）を求めればいい。
なお、予め定められた長方形の４頂点の座標は、記憶装置に記憶された値であってもよいし、ユーザによる操作によって設定されてもよいし、受け付けた画像の大きさに合わせて設定されてもよい。
【００４５】
＜第２の実施の形態＞
図１９は、第２の実施の形態による処理例を示す説明図である。
第２の実施の形態は、画像１９００内に対象としている四角形（左辺候補１９１０、上辺候補１９２０、右辺候補１９３０、下辺候補１９４０によって構成される四角形）以外に画像１９００内に映り込んだ物体（物体画像１９５０、例えば、筆箱、消しゴム等）がある場合に対応するものである。
つまり、隣り合う辺候補の端点と自分の端点の距離の最小値が予め定められた値以上の線を除くようにしたものである。例えば、左辺候補１９１０と隣り合う辺として上辺候補１９２０と上辺候補１９６０等があるが、左辺候補１９１０の端点１９１２と上辺候補１９２０の端点１９２２間の距離、左辺候補１９１０の端点１９１２と上辺候補１９６０の端点１９６２間の距離を算出し、予め定められた値以上となる上辺候補１９６０を除くようにしたものである。
【００４６】
図２０は、第２の実施の形態の構成例についての概念的なモジュール構成図である。なお、前述の実施の形態と同種の部位には同一符号を付し重複した説明を省略する（以下、同様）。
第２の実施の形態である画像処理装置は、射影歪みが発生した画像を補正するものであって、図２０の例に示すように、画像処理モジュール１００は、エッジ検出モジュール１１０、直線線分抽出モジュール１２０、ステップエッジ検出モジュール１３０、直線線分分類モジュール１４０、孤立直線除去モジュール２０４５、近傍色検出モジュール１５０、四角形候補選択モジュール１６０、最大四角形検出モジュール１７０、形状補正モジュール１８０、出力モジュール１９０を有している。つまり、第１の実施の形態に孤立直線除去モジュール２０４５を付加したものである。
直線線分分類モジュール１４０は、ステップエッジ検出モジュール１３０、孤立直線除去モジュール２０４５と接続されている。
【００４７】
孤立直線除去モジュール２０４５は、直線線分分類モジュール１４０、近傍色検出モジュール１５０と接続されている。孤立直線除去モジュール２０４５は、直線線分分類モジュール１４０によって４辺に分類された直線線分のうち、１辺の直線線分とその直線線分と交わり得る２辺の直線線分との端点間の距離が予め定められた第３の値より長い又は以上である場合は、その１辺の直線線分を除外する。つまり、直線線分分類モジュール１４０の処理結果から、孤立した直線線分を除去する。「直線線分と交わり得る２辺の直線線分」とは、具体的には、上辺候補と下辺候補に対しては左辺候補、右辺候補であり、左辺候補と右辺候補に対しては上辺候補、下辺候補である。「端点間の距離」とは、一方の直線線分の端点Ａに対して、他方の直線線分の２つの端点のうち端点Ａに近い端点をいう。また、１辺の直線線分と交わり得る２辺の直線線分が複数ある場合は、その交わり得る全部の直線線分との関係が、第３の値より長い又は以上である場合は、その１辺の直線線分を除外する。
近傍色検出モジュール１５０は、孤立直線除去モジュール２０４５、四角形候補選択モジュール１６０と接続されている。
近傍色検出モジュール１５０と四角形候補選択モジュール１６０は、孤立直線除去モジュール２０４５によって除外された直線線分を対象としない。つまり、除外された直線線分との組み合わせは対象としないことになる。
【００４８】
図２１は、第２の実施の形態による処理例を示すフローチャートである。
ステップＳ２１０２では、エッジ検出モジュール１１０が、画像受付モジュール２１０によって受け付けられた画像に対して、Ｓｏｂｅｌフィルタなどを用いて、予め定められた強度以上のエッジ部分を検出する。
ステップＳ２１０４では、直線線分抽出モジュール１２０が、直線に近いエッジを検出し、その傾きや始点・終点の位置情報を得る。
ステップＳ２１０６では、ステップエッジ検出モジュール１３０が、直線線分抽出モジュール１２０で抽出した線の中から対応するエッジがステップ型であったものだけを抽出する。
【００４９】
ステップＳ２１０８では、直線線分分類モジュール１４０が、その直線の傾きや位置に基づいて、直線を上辺候補、下辺候補、左辺候補、右辺候補に分類する。
ステップＳ２１１０では、孤立直線除去モジュール２０４５が、検査するのが上辺候補であれば、その上辺候補の始点と全ての左辺候補の始点との距離をチェック、さらに上辺候補の終点と全ての右辺候補の始点をチェックし、それらの最短距離が所定値以上であれば、その上辺は孤立直線と考えリストから除去する。
ステップＳ２１１２では、近傍色検出モジュール１５０が、上辺候補、下辺候補、左辺候補、右辺候補の外側、つまり画像の端に近い側の色又は濃度を計測して保持する。
【００５０】
ステップＳ２１１４では、四角形候補選択モジュール１６０が、上辺候補、下辺候補、左辺候補、右辺候補の全ての組み合わせの中から、近傍色が近い組み合わせだけを選択する。近傍色が近いとは、ある色空間で計算した距離が所定値以下の事である。
ステップＳ２１１６では、最大四角形検出モジュール１７０が、前記四角形候補選択モジュール１６０が出力した複数の４本の線分の組み合わせから、それらの４つの線分を延長したときの４頂点の座標とそのとき形成される四角形の中から最大の面積となる組み合わせを求める。
ステップＳ２１１８では、形状補正モジュール１８０が、前記最大面積となる四角形の４頂点の座標が予め定められた補正後の長方形の４頂点に一致するように射影変換する。
ステップＳ２１２０では、出力モジュール１９０が、射影変換後の画像を出力する。
【００５１】
図２２は、第２の実施の形態（孤立直線除去モジュール２０４５）による処理例を示す説明図である。
孤立直線除去モジュール２０４５では、検査するのが上辺候補であれば、その上辺候補の始点と全ての左辺候補の始点との距離をチェック、さらに上辺候補の終点と全ての右辺候補の始点をチェックし、それらの最短距離が予め定められた値以上であれば、その上辺候補は孤立直線としてリストから除去する。例えば、上辺候補２２３０の始点である端点２２３２と左辺候補２２１０の始点である端点２２１２間の距離を算出し、上辺候補２２３０の始点である端点２２３２と左辺候補２２２０の始点である端点２２２２間の距離を算出し、上辺候補２２３０の終点である端点２２３４と右辺候補２２５０の始点である端点２２５２間の距離を算出し、上辺候補２２３０の終点である端点２２３４と右辺候補２２６０の始点である端点２２６２間の距離を算出する。算出した距離の全てが予め定められた距離以上であれば、上辺候補２２３０を除外する。なお、上辺候補２２４０の端点は、左辺候補２２２０、右辺候補２２５０の端点と予め定められた距離未満であるので、上辺候補２２４０は除外されない。
【００５２】
＜第３の実施の形態＞
図２３は、第３の実施の形態の構成例についての概念的なモジュール構成図である。
第３の実施の形態である画像処理装置は、射影歪みが発生した画像を補正するものであって、図２３の例に示すように、画像処理モジュール１００は、エッジ検出モジュール１１０、直線線分抽出モジュール１２０、ステップエッジ検出モジュール１３０、直線線分分類モジュール１４０、近傍色検出モジュール１５０、近傍色閾値設定モジュール２３５５、四角形候補選択モジュール１６０、最大四角形検出モジュール１７０、形状補正モジュール１８０、出力モジュール１９０を有している。つまり、第１の実施の形態に近傍色閾値設定モジュール２３５５を付加したものである。
近傍色検出モジュール１５０は、直線線分分類モジュール１４０、近傍色閾値設定モジュール２３５５と接続されている。
【００５３】
近傍色閾値設定モジュール２３５５は、近傍色検出モジュール１５０、四角形候補選択モジュール１６０と接続されている。近傍色閾値設定モジュール２３５５は、四角形候補選択モジュール１６０が用いる予め定められた第２の値を、背景領域の色の変化を選択する操作者の操作に応じて設定する。つまり、各辺候補の近傍色の近さを判定する閾値を可変とするものである。「背景領域の色の変化」とは、対象としている文書等以外の背景領域の色の変化が激しいか否かを指定するものである。例えば、何もないテーブルの上に置かれた文書を撮影した画像であれば、背景領域の色の変化はほとんど無いが、ホワイトボードを撮影した画像であれば、背景領域の色の変化が激しい。操作者が操作しやすいように、モード（「ホワイトボード撮影モード」、「文書撮影モード」）を選択するようにしてもよい。具体的にはホワイトボード撮影モードではホワイトボードの周辺にはいろんな物がある可能性が高く、背景領域の色の変化が激しい。文書撮影モードでは、テーブルのような色の一定している可能性が高く、背景領域の色の変化は少ない。そして、「ホワイトボード撮影モード」の場合は、四角形候補選択モジュール１６０が用いる予め定められた第２の値を標準値よりも大きい値に設定し、「文書撮影モード」の場合は、四角形候補選択モジュール１６０が用いる予め定められた第２の値を標準値よりも小さい値に設定する。
四角形候補選択モジュール１６０は、近傍色閾値設定モジュール２３５５、最大四角形検出モジュール１７０と接続されている。
【００５４】
図２４は、第３の実施の形態による処理例を示すフローチャートである。
ステップＳ２４０２では、エッジ検出モジュール１１０が、画像受付モジュール２１０によって受け付けられた画像に対して、Ｓｏｂｅｌフィルタなどを用いて、予め定められた強度以上のエッジ部分を検出する。
ステップＳ２４０４では、直線線分抽出モジュール１２０が、直線に近いエッジを検出し、その傾きや始点・終点の位置情報を得る。
ステップＳ２４０６では、ステップエッジ検出モジュール１３０が、直線線分抽出モジュール１２０で抽出した線の中から対応するエッジがステップ型であったものだけを抽出する。
【００５５】
ステップＳ２４０８では、直線線分分類モジュール１４０が、その直線の傾きや位置に基づいて、直線を上辺候補、下辺候補、左辺候補、右辺候補に分類する。
ステップＳ２４１０では、近傍色検出モジュール１５０が、上辺候補、下辺候補、左辺候補、右辺候補の外側、つまり画像の端に近い側の色又は濃度を計測して保持する。
ステップＳ２４１２では、近傍色閾値設定モジュール２３５５が、ユーザに撮影モードを選択させて、撮影モードに応じて閾値を設定する。具体的にはホワイトボード撮影モードではホワイトボードの周辺にはいろんな物がある可能性が高いため閾値を大きい値に設定し、文書撮影モードでは、テーブルのような色の一定した上で撮影されることを考慮して閾値を小さい値に設定する。
【００５６】
ステップＳ２４１４では、四角形候補選択モジュール１６０が、上辺候補、下辺候補、左辺候補、右辺候補の全ての組み合わせの中から、近傍色が近い組み合わせだけを選択する。近傍色が近いとは、ある色空間で計算した距離が予め定められた値以下の事である。
ステップＳ２４１６では、最大四角形検出モジュール１７０が、前記四角形候補選択モジュール１６０が出力した複数の４本の線分の組み合わせから、それらの４つの線分を延長したときの４頂点の座標とそのとき形成される四角形の中から最大の面積となる組み合わせを求める。
ステップＳ２４１８では、形状補正モジュール１８０が、前記最大面積となる四角形の４頂点の座標が予め定められた補正後の長方形の４頂点に一致するように射影変換する。
ステップＳ２４２０では、出力モジュール１９０が、射影変換後の画像を出力する。
【００５７】
＜第４の実施の形態＞
図２５は、第４の実施の形態の構成例についての概念的なモジュール構成図である。
第４の実施の形態である画像処理装置は、射影歪みが発生した画像を補正するものであって、図２５の例に示すように、画像処理モジュール１００は、エッジ検出モジュール１１０、直線線分抽出モジュール１２０、ステップエッジ検出モジュール１３０、直線線分分類モジュール１４０、近傍色検出モジュール１５０、四角形候補選択モジュール２５６０、最大四角形検出モジュール１７０、形状補正モジュール１８０、出力モジュール１９０を有している。つまり、第１の実施の形態の四角形候補選択モジュール１６０を四角形候補選択モジュール２５６０としたものである。ただし、四角形候補選択モジュール２５６０は、四角形候補選択モジュール１６０の処理内容を含む。
近傍色検出モジュール１５０は、直線線分分類モジュール１４０、四角形候補選択モジュール２５６０と接続されている。
四角形候補選択モジュール２５６０は、近傍色検出モジュール１５０、最大四角形検出モジュール１７０と接続されている。四角形候補選択モジュール２５６０は、選択した組み合わせによって構成される四角形の面積の画像に占める割合が予め定められた第４の値以下又は未満である場合は、予め定められた第２の値を変更して、選択処理を再度行う。つまり、四角形候補選択モジュール２５６０で適切な四角形を選択できなかった場合に閾値（第２の値）を変更して再度、四角形候補の選択処理を行うものである。この処理に関しては、図２７に例示のフローチャートを用いて詳細に説明する。
最大四角形検出モジュール１７０は、四角形候補選択モジュール２５６０、形状補正モジュール１８０と接続されている。
【００５８】
図２６は、第４の実施の形態による処理例を示すフローチャートである。
ステップＳ２６０２では、エッジ検出モジュール１１０が、画像受付モジュール２１０によって受け付けられた画像に対して、Ｓｏｂｅｌフィルタなどを用いて、予め定められた強度以上のエッジ部分を検出する。
ステップＳ２６０４では、直線線分抽出モジュール１２０が、直線に近いエッジを検出し、その傾きや始点・終点の位置情報を得る。
ステップＳ２６０６では、ステップエッジ検出モジュール１３０が、直線線分抽出モジュール１２０で抽出した線の中から対応するエッジがステップ型であったものだけを抽出する。
【００５９】
ステップＳ２６０８では、直線線分分類モジュール１４０が、その直線の傾きや位置に基づいて、直線を上辺候補、下辺候補、左辺候補、右辺候補に分類する。
ステップＳ２６１０では、近傍色検出モジュール１５０が、上辺候補、下辺候補、左辺候補、右辺候補の外側、つまり画像の端に近い側の色又は濃度を計測して保持する。
ステップＳ２６１２では、四角形候補選択モジュール１６０が、上辺候補、下辺候補、左辺候補、右辺候補の全ての組み合わせの中から、近傍色が近い組み合わせだけを選択する。近傍色が近いとは、ある色空間で計算した距離が所定値以下の事である。四角形候補選択モジュール１６０で適切な四角形が見つからなかった場合に閾値を変更して再度、四角形候補選択処理を行う。
【００６０】
ステップＳ２６１４では、最大四角形検出モジュール１７０が、前記四角形候補選択モジュール１６０が出力した複数の４本の線分の組み合わせから、それらの４つの線分を延長したときの４頂点の座標とそのとき形成される四角形の中から最大の面積となる組み合わせを求める。
ステップＳ２６１６では、形状補正モジュール１８０が、前記最大面積となる四角形の４頂点の座標が予め定められた補正後の長方形の４頂点に一致するように射影変換する。
ステップＳ２６１８では、出力モジュール１９０が、射影変換後の画像を出力する。
【００６１】
図２７は、第４の実施の形態による処理例を示すフローチャートである。ここで、Ｎは直線線分の総数で、ｉ，ｊ，ｋ，ｍは線ＩＤを指定する変数である。αは予め定められた値である。このフローチャート例では、直線線分の全ての組み合わせについて、ステップＳ２７２４の判断処理を行っている。そして、四角形が１つも選択されなかった場合（ステップＳ２７３６でＹ）は、ステップＳ２７０４で、閾値（第２の値）にαを加えることによって、四角形の選択が行われやすくなるようにしている。
【００６２】
ステップＳ２７０２では、閾値＝初期閾値−αとする。
ステップＳ２７０４では、閾値にαを加える。
ステップＳ２７０６では、ｉ＝０とする。
【００６３】
ステップＳ２７０８では、ｉ＜Ｎであるか否かを判断し、ｉ＜Ｎである場合はステップＳ２７１０へ進み、それ以外の場合は処理を終了する（ステップＳ２７９８）。
ステップＳ２７１０では、ｊ＝ｊ＋１とする。
ステップＳ２７１２では、ｊ＜Ｎであるか否かを判断し、ｊ＜Ｎである場合はステップＳ２７１４へ進み、それ以外の場合はステップＳ２７３４へ進む。
ステップＳ２７１４では、ｋ＝ｊ＋１とする。
【００６４】
ステップＳ２７１６では、ｋ＜Ｎであるか否かを判断し、ｋ＜Ｎである場合はステップＳ２７１８へ進み、それ以外の場合はステップＳ２７３２へ進む。
ステップＳ２７１８では、ｍ＝ｋ＋１とする。
ステップＳ２７２０では、ｍ＜Ｎであるか否かを判断し、ｍ＜Ｎである場合はステップＳ２７２２へ進み、それ以外の場合はステップＳ２７３０へ進む。
ステップＳ２７２２では、分類（ｉ）、分類（ｊ）、分類（ｋ）、分類（ｍ）が全て異なるか否かを判断し、全て異なる場合はステップＳ２７２４へ進み、それ以外の場合はステップＳ２７２８へ進む。
【００６５】
ステップＳ２７２４では、４つのコーナーの近傍色間の差が予め定められた値以下であるか否かを判断し、予め定められた値以下である場合はステップＳ２７２６へ進み、それ以外の場合はステップＳ２７２８へ進む。
ステップＳ２７２６では、その四角形の組み合わせを選択する。
ステップＳ２７２８では、ｍに１を加え、ステップＳ２７２０へ戻る。
ステップＳ２７３０では、ｋに１を加え、ステップＳ２７１６へ戻る。
【００６６】
ステップＳ２７３２では、ｊに１を加え、ステップＳ２７１２へ戻る。
ステップＳ２７３４では、ｉに１を加え、ステップＳ２７３６へ進む。
ステップＳ２７３６では、選択された四角形の組み合わせが１つもないか否かを判断し、１つもない場合はステップＳ２７０４へ戻り、それ以外の場合は処理を終了する（ステップＳ２７９９）。
なお、ステップＳ２７２２の判断処理は、前述したように、３つのコーナーの近傍色の差が予め定められた値以下であるか否かを判断するようにしてもよいし、対角する２つのコーナーの近傍色の差が予め定められた値以下であるか否かを判断するようにしてもよい。
【００６７】
図２８を参照して、本実施の形態の画像処理装置のハードウェア構成例について説明する。図２８に示す構成は、例えばパーソナルコンピュータ（ＰＣ）などによって構成されるものであり、スキャナ等のデータ読み取り部２８１７と、プリンタなどのデータ出力部２８１８を備えたハードウェア構成例を示している。
【００６８】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２８０１は、前述の実施の形態において説明した各種のモジュール、すなわち、画像処理モジュール１００、エッジ検出モジュール１１０、直線線分抽出モジュール１２０、ステップエッジ検出モジュール１３０、直線線分分類モジュール１４０、近傍色検出モジュール１５０、四角形候補選択モジュール１６０、最大四角形検出モジュール１７０、形状補正モジュール１８０、出力モジュール１９０、孤立直線除去モジュール２０４５、近傍色閾値設定モジュール２３５５、制御モジュール２２０等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【００６９】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２８０２は、ＣＰＵ２８０１が使用するプログラムや演算パラメータ等を格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２８０３は、前述のメモリ２３０に該当し、ＣＰＵ２８０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはＣＰＵバスなどから構成されるホストバス２８０４により相互に接続されている。
【００７０】
ホストバス２８０４は、ブリッジ２８０５を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス２８０６に接続されている。
【００７１】
キーボード２８０８、マウス等のポインティングデバイス２８０９は、前述の操作モジュール２６０に該当し、操作者により操作される入力デバイスである。ディスプレイ２８１０は、前述の表示モジュール２５０に該当し、液晶表示装置又はＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）などがあり、各種情報をテキストやイメージ情報として表示する。
【００７２】
ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）２８１１は、ハードディスクを内蔵し、ハードディスクを駆動し、ＣＰＵ２８０１によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、受け付けた画像、最終的な処理結果、途中の処理結果などが格納される。さらに、その他の各種のデータ処理プログラム等、各種コンピュータ・プログラムが格納される。
【００７３】
ドライブ２８１２は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体２８１３に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース２８０７、外部バス２８０６、ブリッジ２８０５、及びホストバス２８０４を介して接続されているＲＡＭ２８０３に供給する。リムーバブル記録媒体２８１３も、ハードディスクと同様のデータ記録領域として利用可能である。
【００７４】
接続ポート２８１４は、外部接続機器２８１５を接続するポートであり、ＵＳＢ、ＩＥＥＥ１３９４等の接続部を持つ。接続ポート２８１４は、インタフェース２８０７、及び外部バス２８０６、ブリッジ２８０５、ホストバス２８０４等を介してＣＰＵ２８０１等に接続されている。通信部２８１６は、前述の通信モジュール２４０に該当し、通信回線に接続され、外部とのデータ通信処理を実行する。データ読み取り部２８１７は、前述の画像受付モジュール２１０に該当し、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部２８１８は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【００７５】
なお、図２８に示す画像処理装置のハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図２８に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図２８に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
【００７６】
また、前述の実施の形態の説明において、予め定められた値との比較において、「以上」、「以下」、「より大きい」、「より小さい（未満）」としたものは、その組み合わせに矛盾が生じない限り、それぞれ「より大きい」、「より小さい（未満）」、「以上」、「以下」としてもよい。
なお、前述の各種の実施の形態を組み合わせてもよく（例えば、ある実施の形態内のモジュールを他の実施の形態内に追加する、入れ替えをする等も含む）、また、各モジュールの処理内容として背景技術で説明した技術を採用してもよい。
【００７７】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標））、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリーカード等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【００７８】
１００…画像処理モジュール
１１０…エッジ検出モジュール
１２０…直線線分抽出モジュール
１３０…ステップエッジ検出モジュール
１４０…直線線分分類モジュール
１５０…近傍色検出モジュール
１６０…四角形候補選択モジュール
１７０…最大四角形検出モジュール
１８０…形状補正モジュール
１９０…出力モジュール
２１０…画像受付モジュール
２２０…制御モジュール
２３０…メモリ
２４０…通信モジュール
２５０…表示モジュール
２６０…操作モジュール
２０４５…孤立直線除去モジュール
２３５５…近傍色閾値設定モジュール
２５６０…四角形候補選択モジュール
【図１】
2014092899.tif 000005
【図２】
2014092899.tif 000006
【図３】
2014092899.tif 000007
【図４】
2014092899.tif 000008
【図５】
2014092899.tif 000009
【図６】
2014092899.tif 000010
【図７】
2014092899.tif 000011
【図８】
2014092899.tif 000012
【図９】
2014092899.tif 000013
【図１０】
2014092899.tif 000014
【図１１】
2014092899.tif 000015
【図１２】
2014092899.tif 000016
【図１３】
2014092899.tif 000017
【図１４】
2014092899.tif 000018
【図１５】
2014092899.tif 000019
【図１６】
2014092899.tif 000020
【図１７】
2014092899.tif 000021
【図１８】
2014092899.tif 000022
【図１９】
2014092899.tif 000023
【図２０】
2014092899.tif 000024
【図２１】
2014092899.tif 000025
【図２２】
2014092899.tif 000026
【図２３】
2014092899.tif 000027
【図２４】
2014092899.tif 000028
【図２５】
2014092899.tif 000029
【図２６】
2014092899.tif 000030
【図２７】
2014092899.tif 000031
【図２８】
2014092899.tif 000032
【図２９】
2014092899.tif 000033