(57)【特許請求の範囲】
【請求項１】
入力画像からエッジ画素を抽出するエッジ画素抽出部と、
前記抽出したエッジ画素から複数の直線を抽出する直線抽出部と、
前記複数の直線のうち四本の直線から構成される複数の矩形候補を抽出する矩形候補抽出部と、
前記複数の矩形候補のそれぞれについて、当該矩形候補の各辺から第１所定距離内にあるエッジ画素の数を求めるとともに、当該矩形候補の各角から第２所定距離内におけるエッジ画素の分布に基づいて各角の角らしさの度合いを求め、前記エッジ画素の数及び前記角らしさの度合いに基づいて前記複数の矩形候補から矩形を選択する矩形選択部と、
を有することを特徴とする画像処理装置。
【請求項２】
前記矩形選択部は、前記複数の矩形候補のそれぞれについて、当該矩形候補の各辺から前記第１所定距離内にある画素の数に対する当該第１所定距離内にあるエッジ画素の数の割合が高いほど点数の高い第１の評価点と、当該矩形候補の各角から前記第２所定距離内において各辺に沿って分布するエッジ画素の数が多いほど点数が高く、当該矩形候補の各角から前記第２所定距離内において各辺の延長線に沿って分布するエッジ画素の数が多いほど点数が低い第２の評価点とを算出し、前記第１の評価点と前記第２の評価点の合計に基づいて前記複数の矩形候補から矩形を選択する、請求項１に記載の画像処理装置。
【請求項３】
前記矩形選択部は、前記複数の矩形候補のそれぞれについて、当該矩形候補の各辺から前記第１所定距離内にあるエッジ画素の数が多いほど点数の高い第１の評価点と、当該矩形候補の各角から前記第２所定距離内において各辺に沿って分布するエッジ画素の数が多いほど点数が高く、当該矩形候補の各角から前記第２所定距離内において各辺の延長線に沿って分布するエッジ画素の数が多いほど点数が低い第２の評価点とを算出し、前記第１の評価点と前記第２の評価点の合計に基づいて前記複数の矩形候補から矩形を選択する、請求項１に記載の画像処理装置。
【請求項４】
前記矩形選択部は、相互に重複する矩形候補が複数存在する場合に、当該重複する矩形候補のうち前記第１の評価点と前記第２の評価点の合計が最も高い矩形候補を矩形として選択する、請求項２又は３に記載の画像処理装置。
【請求項５】
前記矩形選択部は、他の矩形候補内に包含される矩形候補は矩形として選択しない、請求項１〜４の何れか一項に記載の画像処理装置。
【請求項６】
前記矩形選択部は、他の矩形候補と重複しない矩形候補を矩形として選択する、請求項１〜５の何れか一項に記載の画像処理装置。
【請求項７】
前記直線抽出部は、前記矩形選択部が矩形を選択した後、当該選択された矩形に含まれるエッジ画素を除いたエッジ画素から直線を抽出しなおし、
前記矩形候補抽出部は、前記抽出しなおした直線から矩形候補を抽出しなおし、
前記矩形選択部は、前記抽出しなおした矩形候補から矩形を新たに選択する、請求項１〜６の何れか一項に記載の画像処理装置。
【請求項８】
前記エッジ画素抽出部は、前記入力画像から画素を間引いた縮小画像を生成し、前記縮小画像からエッジ画素を抽出し、当該抽出したエッジ画素からなる画像を前記入力画像と同一の解像度に拡大し、前記入力画像からエッジ画素を抽出するとき、当該拡大した画像内のエッジ画素と同一の位置に存在するエッジ画素のみを抽出する、請求項１〜７の何れか一項に記載の画像処理装置。
【請求項９】
前記エッジ画素抽出部は、前記縮小画像から抽出したエッジ画素のうち相互に隣接するエッジ画素をグループとしてまとめ、当該グループの大きさが所定サイズ以下である場合、当該グループ内のエッジ画素を除去する、請求項８に記載の画像処理装置。
【請求項１０】
前記直線抽出部は、
前記エッジ画素抽出部が抽出したエッジ画素からハフ変換を用いて直線候補を抽出する直線候補検出部と、
前記直線候補から所定距離内にあるエッジ画素に対して最小二乗法を用いて直線を検出する直線検出部と、を有する、請求項１〜９の何れか一項に記載の画像処理装置。
【請求項１１】
前記直線抽出部は、
前記エッジ画素抽出部が抽出したエッジ画素のうち相互に隣接するエッジ画素をグループとしてまとめるグループ化部と、
前記グループに含まれるエッジ画素のうち、水平方向又は垂直方向における両端に位置するエッジ画素間を結んだ直線を前記入力画像に含まれる原稿の端部に近似する直線として検出する近似直線検出部と、を有する、請求項１〜１０の何れか一項に記載の画像処理装置。
【請求項１２】
前記矩形選択部は、前記選択した矩形を前記入力画像に含まれる原稿の外接矩形と判定する、請求項１〜１１の何れか一項に記載の画像処理装置。
【請求項１３】
入力画像からエッジ画素を抽出するステップと、
前記抽出したエッジ画素から複数の直線を抽出するステップと、
前記複数の直線のうち四本の直線から構成される複数の矩形候補を抽出するステップと、
前記複数の矩形候補のそれぞれについて、当該矩形候補の各辺から第１所定距離内にあるエッジ画素の数を求めるとともに、当該矩形候補の各角から第２所定距離内におけるエッジ画素の分布に基づいて各角の角らしさの度合いを求め、前記エッジ画素の数及び前記角らしさの度合いに基づいて前記複数の矩形候補から矩形を選択するステップと、
を含むことを特徴とする矩形検出方法。
【請求項１４】
入力画像からエッジ画素を抽出するステップと、
前記抽出したエッジ画素から複数の直線を抽出するステップと、
前記複数の直線のうち四本の直線から構成される複数の矩形候補を抽出するステップと、
前記複数の矩形候補のそれぞれについて、当該矩形候補の各辺から第１所定距離内にあるエッジ画素の数を求めるとともに、当該矩形候補の各角から第２所定距離内におけるエッジ画素の分布に基づいて各角の角らしさの度合いを求め、前記エッジ画素の数及び前記角らしさの度合いに基づいて前記複数の矩形候補から矩形を選択するステップと、
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、矩形検出方法及びコンピュータプログラムに関し、特に、入力画像から原稿の領域を検出する画像処理装置、矩形検出方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
スキャナ装置等で原稿を読み取って画像データとして保存するためには、読み取った画像から原稿領域を正確に検出する必要がある。一般に、フラットベッドタイプ又は自動原稿送りタイプのスキャナ装置では、白色、黒色等の単調色の裏当てを用いることにより原稿領域とそれ以外の領域を容易に識別できる。しかし、例えば原稿領域の色が裏当て部の色と同じ場合には、原稿領域を正確に検出できないおそれがある。
【０００３】
そこで、特許文献１には、原稿を読み取った画像データの濃度変動に基づいて原稿の位置又はサイズを検知する画像処理装置が開示されている。この画像処理装置は、副走査方向の画素の濃度変動の差を検知し、その濃度変動の差が閾値以上となる画素を原稿の位置として検知する。
【０００４】
また、特許文献２には、原稿の裏当てとして電子ペーパーを用いた画像読み取り装置が開示されている。この画像読み取り装置は、原稿を読み取る際、電子ペーパーを明色にして原稿を読み取るとともに、電子ペーパーを暗色にして原稿を読み取り、読み取った各画像に基づいて原稿のサイズを検出する。
【０００５】
また、特許文献３には、背景と原稿の材質の違いを利用して原稿の境界を検出する画像処理装置が開示されている。この画像処理装置は、原稿の境界を検出できない場合には、原稿から罫線を抽出し、抽出した罫線に基づいて原稿の境界を決定する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−３３５９２７号公報
【特許文献２】特開２００８−２７８３１８号公報
【特許文献３】特開２００５−２８５０１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に開示された画像処理装置及び特許文献２に開示された画像読み取り装置は、精度よく原稿の位置又はサイズを検知することができる。しかしながら、これらの装置は単調色の裏当てを用いることを前提としているため、特許文献１及び特許文献２に開示された技術を、机の上に載置された原稿を読み取るタイプのスキャナ装置に適用することはできない。そのため、例えば、木目調の机の上に載置された原稿を読み取るような場合に、原稿の境界と机の模様とを正確に識別することはできない。
【０００８】
また、特許文献３に開示された画像処理装置は、精度よく原稿の境界を検出することができる。しかしながら、特許文献３に開示された画像処理装置では、罫線が記載されていない原稿についてはその原稿の境界を精度よく検出することができない。
【０００９】
そこで、本発明の目的は、読み取った画像から原稿の境界を精度よく検出することが可能な画像処理装置、矩形検出方法及びそのような矩形検出方法をコンピュータに実行させるコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明に係る画像処理装置は、入力画像からエッジ画素を抽出するエッジ画素抽出部と、抽出したエッジ画素から複数の直線を抽出する直線抽出部と、複数の直線のうち二本ずつが略直交する四本の直線から構成される複数の矩形候補を抽出する矩形候補抽出部と、複数の矩形候補のそれぞれについて、当該矩形候補の各辺から所定距離内にあるエッジ画素の数を求めるとともに、当該矩形候補の各角の近傍のエッジ画素の分布に基づいて各角の角らしさの度合いを求め、エッジ画素の数及び角らしさの度合いに基づいて複数の矩形候補から矩形を選択する矩形選択部と、を有する。
【００１１】
さらに、本発明に係る画像処理装置において、矩形選択部は、複数の矩形候補のそれぞれについて、当該矩形候補の各辺から所定距離内にある画素の数に対する当該所定距離内にあるエッジ画素の数の割合が高いほど点数の高い第１の評価点と、当該矩形候補の各角の近傍において各辺に沿って分布するエッジ画素の数が多いほど点数が高く、当該矩形候補の各角の近傍において各辺の延長線に沿って分布するエッジ画素の数が多いほど点数が低い第２の評価点とを算出し、第１の評価点と第２の評価点の合計に基づいて複数の矩形候補から矩形を選択することが好ましい。
【００１２】
さらに、本発明に係る画像処理装置において、矩形選択部は、複数の矩形候補のそれぞれについて、当該矩形候補の各辺から所定距離内にあるエッジ画素の数が多いほど点数の高い第１の評価点と、当該矩形候補の各角の近傍において各辺に沿って分布するエッジ画素の数が多いほど点数が高く、当該矩形候補の各角の近傍において各辺の延長線に沿って分布するエッジ画素の数が多いほど点数が低い第２の評価点とを算出し、第１の評価点と第２の評価点の合計に基づいて複数の矩形候補から矩形を選択することが好ましい。
【００１３】
さらに、本発明に係る画像処理装置において、矩形選択部は、相互に重複する矩形候補が複数存在する場合に、当該重複する矩形候補のうち第１の評価点と第２の評価点の合計が最も高い矩形候補を矩形として選択することが好ましい。
【００１４】
さらに、本発明に係る画像処理装置において、矩形選択部は、他の矩形候補内に包含される矩形候補は矩形として選択しないことが好ましい。
【００１５】
さらに、本発明に係る画像処理装置において、矩形選択部は、他の矩形候補と重複しない矩形候補を矩形として選択することが好ましい。
【００１６】
さらに、本発明に係る画像処理装置において、直線抽出部は、矩形選択部が矩形を選択した後、当該選択された矩形に含まれるエッジ画素を除いたエッジ画素から直線を抽出しなおし、矩形候補抽出部は、抽出しなおした直線から矩形候補を抽出しなおし、矩形選択部は、抽出しなおした矩形候補から矩形を新たに選択することが好ましい。
【００１７】
さらに、本発明に係る画像処理装置において、エッジ画素抽出部は、入力画像から画素を間引いた縮小画像を生成し、縮小画像からエッジ画素を抽出し、当該抽出したエッジ画素からなる画像を入力画像と同一の解像度に拡大し、入力画像からエッジ画素を抽出するとき、当該拡大した画像内のエッジ画素と同一の位置に存在するエッジ画素のみを抽出することが好ましい。
【００１８】
さらに、本発明に係る画像処理装置において、エッジ画素抽出部は、縮小画像から抽出したエッジ画素のうち相互に隣接するエッジ画素をグループとしてまとめ、当該グループの大きさが所定サイズ以下である場合、当該グループ内のエッジ画素を除去することが好ましい。
【００１９】
さらに、本発明に係る画像処理装置において、直線抽出部は、エッジ画素抽出部が抽出したエッジ画素からハフ変換を用いて直線候補を抽出する直線候補検出部と、直線候補から所定距離内にあるエッジ画素に対して最小二乗法を用いて直線を検出する直線検出部と、を有することが好ましい。
【００２０】
さらに、本発明に係る画像処理装置において、直線抽出部は、エッジ画素抽出部が抽出したエッジ画素のうち相互に隣接するエッジ画素をグループとしてまとめるグループ化部と、グループに含まれるエッジ画素のうち、水平方向又は垂直方向における両端に位置するエッジ画素間を結んだ直線を入力画像に含まれる原稿の端部に近似する直線として検出する近似直線検出部と、を有することが好ましい。
【００２１】
さらに、本発明に係る画像処理装置において、矩形選択部は、選択した矩形を入力画像に含まれる原稿の外接矩形と判定することが好ましい。
【００２２】
また、本発明に係る矩形検出方法は、入力画像からエッジ画素を抽出するステップと、抽出したエッジ画素から複数の直線を抽出するステップと、複数の直線のうち二本ずつが略直交する四本の直線から構成される複数の矩形候補を抽出するステップと、複数の矩形候補のそれぞれについて、当該矩形候補の各辺から所定距離内にあるエッジ画素の数を求めるとともに、当該矩形候補の各角の近傍のエッジ画素の分布に基づいて各角の角らしさの度合いを求め、エッジ画素の数及び角らしさの度合いに基づいて複数の矩形候補から矩形を選択するステップと、を含む。
【００２３】
また、本発明に係るコンピュータプログラムは、入力画像からエッジ画素を抽出するステップと、抽出したエッジ画素から複数の直線を抽出するステップと、複数の直線のうち二本ずつが略直交する四本の直線から構成される複数の矩形候補を抽出するステップと、複数の矩形候補のそれぞれについて、当該矩形候補の各辺から所定距離内にあるエッジ画素の数を求めるとともに、当該矩形候補の各角の近傍のエッジ画素の分布に基づいて各角の角らしさの度合いを求め、エッジ画素の数及び角らしさの度合いに基づいて複数の矩形候補から矩形を選択するステップと、をコンピュータに実行させる。
【発明の効果】
【００２４】
本発明によれば、読み取った画像から原稿の境界を精度よく検出することが可能な画像処理装置、矩形検出方法及びそのような矩形検出方法をコンピュータに実行させるコンピュータプログラムを提供することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明を適用した画像処理システムの概略構成図である。
【図２】画像処理部の概略構成図である。
【図３】画像読取処理の動作の例を示すフローチャートである。
【図４】直線検出処理及び矩形検出処理の動作を示すフローチャートである。
【図５】ノイズ除去処理の動作の例を示すフローチャートである。
【図６】（ａ）〜（ｄ）は、縮小画像を説明するための模式図である。
【図７】（ａ）〜（ｄ）は、ノイズ除去処理を説明するための模式図である。
【図８】直線検出処理の動作の例を示すフローチャートである。
【図９】（ａ）、（ｂ）は、ハフ変換を説明するための模式図である。
【図１０】ハフ変換処理の動作の例を示すフローチャートである。
【図１１】（ａ）〜（ｃ）は、直線候補の除外処理を説明するための模式図である。
【図１２】直線候補の除外処理の動作の例を示すフローチャートである。
【図１３】（ａ）、（ｂ）は、直線検出処理を説明するための模式図である。
【図１４】最小二乗法による直線検出処理の動作の例を示すフローチャートである。
【図１５】（ａ）、（ｂ）は、直線の分割処理を説明するための模式図である。
【図１６】直線の分割処理の動作の例を示すフローチャートである。
【図１７】（ａ）〜（ｃ）は、近似直線を説明するための模式図である。
【図１８】近似直線の検出処理の動作の例を示すフローチャートである。
【図１９】（ａ）〜（ｄ）は、グループの結合を説明するための模式図である。
【図２０】矩形検出処理の動作の例を示すフローチャートである
【図２１】（ａ）、（ｂ）は、第１の評価点を説明するための模式図である。
【図２２】（ａ）、（ｂ）は、第２の評価点を説明するための模式図である。
【図２３】重複する矩形候補を説明するための模式図である。
【図２４】他の矩形候補内に包含される矩形候補を説明するための模式図である。
【図２５】（ａ）、（ｂ）は、近似直線を含む矩形を説明するための模式図である。
【図２６】（ａ）、（ｂ）は、エッジ画素の除外を説明するための模式図である。
【図２７】（ａ）、（ｂ）は、閉領域の外接矩形を説明するための模式図である。
【図２８】閉領域の外接矩形の抽出処理の動作の例を示すフローチャートである。
【図２９】（ａ）、（ｂ）は、検出範囲の指定を説明するための模式図である。
【図３０】他の画像処理システムの概略構成図である。
【発明を実施するための形態】
【００２６】
以下、本発明に係る画像処理装置、矩形検出方法及びコンピュータプログラムについて図を参照しつつ説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
【００２７】
図１は、本発明を適用した画像処理システムの概略構成を示す図である。図１に示すように、画像処理システム１は、画像読取装置１０と、情報処理装置２０とを有する。画像読取装置１０は、例えばイメージスキャナ、デジタルカメラ等であり、情報処理装置２０は、例えば画像読取装置１０に接続して用いられるパーソナルコンピュータ等である。
【００２８】
画像読取装置１０は、画像入力部１１と、第１画像メモリ部１２と、第１インターフェース部１３と、第１記憶部１４と、第１中央処理部１５とを有する。以下、画像読取装置１０の各部について詳細に説明する。
【００２９】
画像入力部１１は、撮像対象物である原稿等を撮像する撮像センサを有する。この撮像センサは、１次元又は２次元に配列されたＣＣＤ、ＣＭＯＳ等の撮像素子と、撮像素子に撮像対象物の像を結像する光学系を備え、各撮像素子は、ＲＧＢ各色に対応するアナログ値を出力する。そして、画像入力部１１は、撮像センサが出力した各アナログ値をデジタル値に変換して画素データを生成し、生成した各画素データから構成される画像データ（以下、ＲＧＢ画像と称する）を生成する。このＲＧＢ画像は、各画素データが、例えばＲＧＢ各色毎に８ｂｉｔで表される計２４ｂｉｔのＲＧＢ値からなるカラー画像データとなる。
【００３０】
そして、画像入力部１１は、ＲＧＢ画像、またはＲＧＢ画像の各画素のＲＧＢ値を輝度値及び色差値（ＹＵＶ値）に変換した画像（以下、読取画像と称する）を生成し、第１画像メモリ部１２に保存する。なお、ＹＵＶ値は、例えば以下の式により算出することができる。
Ｙ値＝  ０．３０×Ｒ値＋０．５９×Ｇ値＋０．１１×Ｂ値    （１）
Ｕ値＝−０．１７×Ｒ値−０．３３×Ｇ値＋０．５０×Ｂ値    （２）
Ｖ値＝  ０．５０×Ｒ値−０．４２×Ｇ値−０．０８×Ｂ値    （３）
【００３１】
第１画像メモリ部１２は、不揮発性半導体メモリ、揮発性半導体メモリ、磁気ディスク等の記憶装置を有する。第１画像メモリ部１２は、画像入力部１１と接続され、画像入力部１１により生成された読取画像を保存する。
【００３２】
第１インターフェース部１３は、ＵＳＢ等のシリアルバスに準じるインターフェース回路を有し、情報処理装置２０と電気的に接続して画像データ及び各種の情報を送受信する。また、第１インターフェース部１３にフラッシュメモリ等を接続して第１画像メモリ部１２に保存されている画像データを一旦保存し、情報処理装置２０に複写するようにしてもよい。
【００３３】
第１記憶部１４は、ＲＡＭ、ＲＯＭ等のメモリ装置、ハードディスク等の固定ディスク装置、又はフレキシブルディスク、光ディスク等の可搬用の記憶装置等を有する。また、第１記憶部１４には、画像読取装置１０の各種処理に用いられるコンピュータプログラム、データベース、テーブル等が格納される。
【００３４】
第１中央処理部１５は、画像入力部１１、第１画像メモリ部１２、第１インターフェース部１３及び第１記憶部１４と接続され、これらの各部を制御する。第１中央処理部１５は、画像入力部１１の読取画像生成制御、第１画像メモリ部１２の制御、第１インターフェース部１３を介した情報処理装置２０とのデータ送受信制御、第１記憶部１４の制御等を行う。
【００３５】
情報処理装置２０は、第２インターフェース部２１と、第２画像メモリ部２２と、表示部２３と、入力部２４と、第２記憶部２５と、第２中央処理部２６と、画像処理部２７とを有する。以下、情報処理装置２０の各部について詳細に説明する。
【００３６】
第２インターフェース部２１は、画像読取装置１０の第１インターフェース部１３と同様のインターフェース回路を有し、情報処理装置２０と画像読取装置１０とを接続する。
【００３７】
第２画像メモリ部２２は、画像読取装置１０の第１画像メモリ部１２と同様の記憶装置を有する。第２画像メモリ部２２には、第２インターフェース部２１を介して画像読取装置１０から受信した読取画像を保存するとともに、画像処理部２７と接続され、画像処理部２７により読取画像に対して画像処理がなされた各種の処理画像を保存する。
【００３８】
表示部２３は、液晶、有機ＥＬ等から構成されるディスプレイ及びディスプレイに画像データを出力するインターフェース回路を有し、第２画像メモリ部２２と接続されて第２画像メモリ部２２に保存されている画像データをディスプレイに表示する。
【００３９】
入力部２４は、キーボード、マウス等の入力装置及び入力装置から信号を取得するインターフェース回路を有し、利用者の操作に応じた信号を第２中央処理部２６に出力する。
【００４０】
第２記憶部２５は、画像読取装置１０の第１記憶部１４と同様のメモリ装置、固定ディスク装置、可搬用の記憶装置等を有する。第２記憶部２５には、情報処理装置２０の各種処理に用いられるコンピュータプログラム、データベース、テーブル等が格納される。また、第２記憶部２５には、画像処理部２７が検出した直線、グループ及び矩形を記録するための直線リスト、グループリスト及び矩形リストが格納される。
【００４１】
第２中央処理部２６は、第２インターフェース部２１、第２画像メモリ部２２、表示部２３、入力部２４、第２記憶部２５及び画像処理部２７と接続され、これらの各部を制御する。第２中央処理部２６は、第２インターフェース部２１を介した画像読取装置１０とのデータ送受信制御、第２画像メモリ部２２の制御、表示部２３の表示制御、入力部２４の入力制御、第２記憶部２５の制御、画像処理部２７による画像処理の制御等を行う。
【００４２】
画像処理部２７は、第２画像メモリ部２２に接続され、直線検出処理、矩形検出処理を行う。この画像処理部２７は、第２中央処理部２６に接続され、第２中央処理部２６からの制御により予め第２記憶部２５に記憶されているプログラムに基づいて動作する。なお、画像処理部２７は、独立した集積回路、マイクロプロセッサ、ファームウェア等で構成されてもよい。
【００４３】
図２は、画像処理部２７の概略構成を示す図である。図２に示すように画像処理部２７は、エッジ画素抽出部２１０、直線抽出部２２０、矩形検出部２３０及び矩形切出し部２４０を有する。また、直線抽出部２２０は、直線候補検出部２２１、直線検出部２２２、グループ化部２２３、結合部２２４及び近似直線検出部２２５を有し、矩形検出部２３０は、矩形候補抽出部２３１及び矩形選択部２３２を有する。これらの各部は、プロセッサ上で動作するソフトウェアにより実装される機能モジュールである。なお、これらの各部は、それぞれ独立した集積回路、マイクロプロセッサ、ファームウェア等で構成されてもよい。
【００４４】
図３は、画像読取装置１０による画像読取処理の動作を示すフローチャートである。以下、図３に示したフローチャートを参照しつつ、画像読取処理の動作を説明する。なお、以下に説明する動作のフローは、予め第１記憶部１４に記憶されているプログラムに基づき主に第１中央処理部１５により画像読取装置１０の各要素と協働して実行される。
【００４５】
最初に、画像入力部１１は、撮像対象物である原稿を撮影した読取画像を生成し、第１画像メモリ部１２に保存する（ステップＳ３０１）。
【００４６】
次に、第１中央処理部１５は、第１画像メモリ部１２に保存された読取画像を第１インターフェース部１３を介して情報処理装置２０に送信し（ステップＳ３０２）、一連のステップを終了する。
【００４７】
図４は、情報処理装置２０による直線検出処理及び矩形検出処理の動作を示すフローチャートである。以下、図４に示したフローチャートを参照しつつ、直線検出処理及び矩形検出処理の動作を説明する。なお、以下に説明する動作のフローは、予め第２記憶部２５に記憶されているプログラムに基づき主に第２中央処理部２６により情報処理装置２０の各要素と協同して実行される。
【００４８】
最初に、第２中央処理部２６は、読取画像を第２インターフェース部２１を介して画像読取装置１０から取得し、第２画像メモリ部２２に保存する（ステップＳ４０１）。
【００４９】
次に、エッジ画素抽出部２１０は、第２画像メモリ部２２に保存された読取画像を読み出し、読取画像の輝度成分について水平方向及び垂直方向に画素を間引いた入力画像を生成し、第２画像メモリ部２２に保存する（ステップＳ４０２）。
【００５０】
一般に、情報処理装置２０は処理する画像の画素数により処理速度が大きく異なるため、画素を間引く割合は、第２中央処理部２６等の処理能力と情報処理装置２０に要求される処理速度に応じて定められる。なお、画素を間引かなくても要求される処理速度を満たす場合は読取画像の輝度成分をそのまま入力画像としてもよい。
【００５１】
次に、エッジ画素抽出部２１０は、入力画像についてノイズ除去処理を実施する（ステップＳ４０３）。
【００５２】
図５は、ノイズ除去処理の動作の例を示すフローチャートである。以下、図５に示したフローチャートを参照しつつ、ノイズ除去処理の動作の例を説明する。
【００５３】
エッジ画素抽出部２１０は、入力画像から水平方向及び垂直方向に画素を間引いた第１の縮小画像を生成し、第１の縮小画像から水平方向及び垂直方向に画素を間引いた第２の縮小画像を生成し、第２の縮小画像から水平方向及び垂直方向に画素を間引いた第３の縮小画像を生成し、各縮小画像を第２画像メモリ部２２に保存する（ステップＳ５０１）。
【００５４】
図６（ａ）〜（ｄ）は、縮小画像について説明するための模式図である。図６（ａ）に示す画像６００は入力画像の例であり、図６（ｂ）に示す画像６１０は第１の縮小画像の例であり、図６（ｃ）に示す画像６２０は第２の縮小画像の例であり、図６（ｄ）に示す画像６３０は第３の縮小画像の例である。入力画像６００から第１の縮小画像６１０への間引き率は、画像読取装置１０の画像入力部１１の撮像素子及び光学系の影響により生じるランダムノイズ６０１が第１の縮小画像６１０において除去されるように予め定められる。また、第１の縮小画像６１０から第２の縮小画像６２０への間引き率は、原稿内の網掛け部分６０２が第２の縮小画像６２０において除去されるように予め定められる。また、第２の縮小画像６２０から第３の縮小画像６３０への間引き率は、原稿が載置される机の木目調等の模様６０３が第３の縮小画像６３０において除去されるように予め定められる。
【００５５】
次に、エッジ画素抽出部２１０は、入力画像、第１の縮小画像、第２の縮小画像、第３の縮小画像のそれぞれについて水平方向、垂直方向にエッジ画素を抽出する。そして、各画像の水平方向、垂直方向のそれぞれについてエッジ画素からなる画像（以下、それぞれ入力エッジ画像、第１のエッジ画像、第２のエッジ画像、第３のエッジ画像と称する）を生成し、第２画像メモリ部２２に保存する（ステップＳ５０２）。
【００５６】
エッジ画素抽出部２１０は、入力画像、第１の縮小画像、第２の縮小画像、第３の縮小画像のそれぞれの画素の水平方向の両隣の画素の輝度値の差の絶対値（以下、隣接差分値と称する）を算出し、隣接差分値が閾値Th1を越える場合、その画像上の画素を垂直エッジ画素とする。この閾値Th1は、例えば、人が画像上の輝度の違いを目視により判別可能な輝度値の差（例えば20）に設定することができる。また、エッジ画素抽出部２１０は、各画像について垂直方向にも同様の処理を行い、水平エッジ画素を抽出する。そして、水平方向、垂直方向のそれぞれについて入力エッジ画像、第１のエッジ画像、第２のエッジ画像、第３のエッジ画像を生成する。以下のステップＳ５０３〜Ｓ５１０では、水平方向、垂直方向のそれぞれについて生成した各エッジ画像に対して処理が行われるものとする。
【００５７】
次に、エッジ画素抽出部２１０は、各エッジ画像について、各エッジ画素が各エッジ画像内の他のエッジ画素と連結しているか否かを判定し、連結しているエッジ画素を一つのグループとしてラベリングする（ステップＳ５０３）。エッジ画素抽出部２１０は、水平方向、垂直方向又は斜め方向（８近傍）に相互に隣接するエッジ画素を連結していると判定する。なお、エッジ画素抽出部２１０は、水平方向又は垂直方向のみ（４近傍）に相互に隣接するエッジ画素を連結していると判定してもよい。
【００５８】
次に、エッジ画素抽出部２１０は、各エッジ画像について、ラベリングによりグループ化された各グループの水平方向及び垂直方向の両方の大きさが閾値Th2以下か否かを判定し、水平方向及び垂直方向の両方の大きさが閾値Th2以下となるグループに含まれるエッジ画素を各エッジ画像から除去する（ステップＳ５０４）。この閾値Th2を原稿内の文字又は模様の最大値として想定される値（例えば10mmに相当する値）に設定することにより、原稿内の文字又は模様を除去することができる。
【００５９】
次に、エッジ画素抽出部２１０は、第３のエッジ画像を第２のエッジ画像と同一の解像度に拡大する（ステップＳ５０５）。
【００６０】
次に、エッジ画素抽出部２１０は、第３のエッジ画像を第２のエッジ画像と同一の解像度に拡大した画像と、第２のエッジ画像とにおいて同一の位置に存在するエッジ画素を抽出し、そのエッジ画素からなる画像（以下、第２の修正エッジ画像と称する）を生成する（ステップＳ５０６）。
【００６１】
図７（ａ）〜（ｄ）は、ノイズ除去処理について説明するための模式図である。図７（ａ）に示す画像７００は第３のエッジ画像の例であり、図７（ｂ）の画像７１０は第３のエッジ画像を第２のエッジ画像と同一の解像度に拡大した画像の例であり、図７（ｃ）に示す画像７２０は第２のエッジ画像の例であり、図７（ｄ）に示す画像７３０は第２の修正エッジ画像の例である。
【００６２】
第３のエッジ画像７００では原稿が載置される机の模様７２１が除去されるように画素が間引かれているため、画像７１０には模様７２１が存在しない。また、画像７１０は第３のエッジ画像７００を拡大した画像であるため、原稿の境界部分７１１は第２のエッジ画像７２０の原稿の境界部分７２２より膨張している。従って、画像７１０と第２のエッジ画像７２０とにおいて同一の位置に存在するエッジ画素のみを抽出することにより、原稿の境界部分７３１の太さを第２のエッジ画像７２０の境界部分７２２の太さと略同一にしつつ、原稿が載置される机の模様７２１を除去した第２の修正エッジ画像７３０を生成することができる。
【００６３】
次に、エッジ画素抽出部２１０は、第２の修正エッジ画像を第１のエッジ画像と同一の解像度に拡大する（ステップＳ５０７）。
【００６４】
次に、エッジ画素抽出部２１０は、第２の修正エッジ画像を第１のエッジ画像と同一の解像度に拡大した画像と、第１のエッジ画像とにおいて同一の位置に存在するエッジ画素を抽出し、そのエッジ画素からなる画像（以下、第１の修正エッジ画像と称する）を生成する（ステップＳ５０８）。図７（ａ）〜（ｄ）での説明と同様に、第１の修正エッジ画像は、原稿の境界部分の太さが第１のエッジ画像の原稿の境界部分の太さと略同一であり、原稿内の網掛け部分が除去された画像となる。
【００６５】
次に、エッジ画素抽出部２１０は、第１の修正エッジ画像を入力エッジ画像と同一の解像度に拡大する（ステップＳ５０９）。
【００６６】
次に、エッジ画素抽出部２１０は、第１の修正エッジ画像を入力エッジ画像と同一の解像度に拡大した画像と、入力エッジ画像とにおいて同一の位置に存在するエッジ画素を抽出し、そのエッジ画素からなる画像（以下、エッジ画像と称する）を生成し（ステップＳ５１０）、ノイズ除去処理を終了する。図７（ａ）〜（ｄ）での説明と同様に、エッジ画像は、原稿の境界部分の太さが入力エッジ画像の原稿の境界部分の太さと略同一であり、原稿内のランダムノイズが除去された画像となる。
【００６７】
図４に戻って、直線抽出部２２０は、エッジ画像について直線検出処理を実施する（ステップＳ４０４）。
【００６８】
図８は、直線検出処理の動作の例を示すフローチャートである。以下、図８に示したフローチャートを参照しつつ、直線検出処理の動作の例を説明する。
【００６９】
まず、直線候補検出部２２１は、水平エッジ画素から生成されたエッジ画像（以下、水平エッジ画像と称する）からハフ変換を用いて直線候補を抽出する（ステップＳ８０１）。なお、水平エッジ画像からは水平方向に伸びる直線候補が抽出される。
【００７０】
図９（ａ）、（ｂ）は、ハフ変換について説明するための模式図である。図９（ａ）に示すグラフ９００は、エッジ画像内のエッジ画素９０１、９０２、９０３を表す。グラフ９００の原点はエッジ画像上の最も左下にある画素を示し、横軸は水平位置を示し、縦軸は垂直位置を示す。直線候補検出部２２１は、エッジ画素９０１を通過する複数の直線９０４、９０５、９０６を抽出し、原点から各直線への法線９０７、９０８、９０９を求め、各法線の、原点から各直線までの長さをρ、横軸に対する角度をθとして算出する。なお、ρは、以下の式により算出することができる。
ρ＝ｘｃｏｓθ＋ｙｓｉｎθ    （４）
【００７１】
図９（ｂ）に示すグラフ９１０は、各法線について算出したρ、θを変数とするハフ空間を表す。グラフ９１０の横軸はθを示し、縦軸はρを示す。各点９１１、９１２、９１３は、法線９０７、９０８、９０９について算出したρ、θをプロットした点であり、曲線９１４はこれらの点をつなげた曲線である。また、曲線９１５、９１６は、エッジ画素９０２、９０３について同様の処理を行って求めた曲線である。この例において曲線９１４〜９１６の交点９１１におけるρ、θの値から定まる、グラフ９００上の直線９０４が各エッジ画素９０１、９０２、９０３が通過する直線となる。なお、この直線は、以下の式により算出することができる。
ｙ＝ａｘ＋ｂ
ａ＝−１／ｔａｎθ、  ｂ＝ρ／ｓｉｎθ    （５）
【００７２】
図１０は、ハフ変換処理の動作の例を示すフローチャートである。以下、図１０に示したフローチャートを参照しつつ、ハフ変換処理の動作の例を説明する。
【００７３】
直線候補検出部２２１は、まず、エッジ画像内の各エッジ画素を通過する複数の直線について、（ρ、θ）を算出する（ステップＳ１００１）。
【００７４】
次に、直線候補検出部２２１は、算出した（ρ、θ）に投票する（ステップＳ１００２）。
【００７５】
次に、直線候補検出部２２１は、エッジ画像内の全てのエッジ画素について（ρ、θ）を算出したか否かを判定する（ステップＳ１００３）。エッジ画像内の全てのエッジ画素について（ρ、θ）を算出していなければ、ステップＳ１００１に戻って、ステップＳ１００１〜Ｓ１００２の処理を繰り返す。
【００７６】
一方、エッジ画像内の全てのエッジ画素について（ρ、θ）を算出すると、直線候補検出部２２１は、（ρ、θ）を投票数の順にソートする（ステップＳ１００４）。
【００７７】
次に、直線候補検出部２２１は、投票された（ρ、θ）の組合せのうち、自身より投票数の多い組合せとρ及びθの両方の値が近似する（例えばρの差の絶対値が5mmに相当する距離以下且つθの差の絶対値が3°以下となる）組合せを除外する（ステップＳ１００５）。これにより、相互に近傍となる位置に複数の直線が検出されることを抑制することができる。なお、除外した組合せの投票数を、その除外した組合せとρ及びθの両方の値が近似する組合せの投票数に加算してもよい。
【００７８】
次に、直線候補検出部２２１は、投票された（ρ、θ）の組合せから定まる直線をエッジ画像における直線候補として抽出し（ステップＳ１００６）、第２記憶部２５に記録してハフ変換処理を終了する。なお、（ρ、θ）の組合せのうち、投票数の多い順に所定数（例えば、水平方向、垂直方向のそれぞれについて32個ずつ）のみ抽出し、抽出した（ρ、θ）の組合せから定まる直線のみを直線候補としてもよい。
【００７９】
図８に戻って、直線候補検出部２２１は、水平エッジ画像からの直線候補の抽出と同様にして、垂直エッジ画素から生成されたエッジ画像（以下、垂直エッジ画像と称する）からハフ変換を用いて直線候補を抽出する（ステップＳ８０２）。なお、垂直エッジ画像からは垂直方向に伸びる直線候補が抽出される。
【００８０】
次に、直線候補検出部２２１は、水平エッジ画像及び垂直エッジ画像の両方から直線候補が抽出されたか否かを判定する（ステップＳ８０３）。水平エッジ画像及び垂直エッジ画像の両方から直線候補が抽出されなかった場合、直線検出処理を終了する。
【００８１】
一方、水平エッジ画像及び垂直エッジ画像の両方から直線候補を抽出した場合、直線候補検出部２２１は、水平エッジ画像から抽出した直線候補のうち、注目する直線候補の近傍に位置するエッジ画素（以下、第１のエッジ画素と称する）の数を算出する。また、第１のエッジ画素のうち他の直線候補の近傍に位置するエッジ画素（以下、第２のエッジ画素と称する）の数を算出する。そして、第１のエッジ画素の数に対する第２のエッジ画素の数の割合が所定比率R1以上である場合、その注目する直線候補を直線の候補から除外する（ステップＳ８０４）。なお、直線候補の近傍の範囲は、その範囲内のエッジ画素がその直線候補と同一の直線に対応するとみなせる範囲に定められ、例えば直線候補から2mmに相当する距離内の範囲に設定することができる。また、所定比率R1は、画像処理システム１が使用される環境等に応じて適宜定められ、例えば50%に設定することができる。
【００８２】
図１１（ａ）〜（ｃ）は、直線候補の除外処理について説明するための模式図である。図１１（ａ）に示すエッジ画像１１００において、各点はエッジ画素を表し、１１０１〜１１０４は各エッジ画素から検出された直線候補を表す。直線候補１１０１と直線候補１１０２は同じエッジ画素に基づいて抽出されており、両方の直線を直線候補として検出することは冗長である。そのため、何れか一方の直線を直線候補から除外することにより、直線の検出精度を維持しつつ、処理負荷を軽減することができる。同様に、直線候補１１０４の元となるエッジ画素も、直線候補１１０１（又は１１０２）及び１１０３の元となるエッジ画素に含まれるため、直線候補１１０４を直線の候補から除外することにより、直線の検出精度を維持しつつ、処理負荷を軽減することができる。
【００８３】
図１２は、直線候補の除外処理の動作の例を示すフローチャートである。以下、図１２に示したフローチャートを参照しつつ、直線候補の除外処理の動作の例を説明する。
【００８４】
直線候補検出部２２１は、まず、各直線候補の元となるエッジ画素を管理するためのエッジ画素テーブルをクリアする（ステップＳ１２０１）。なお、このエッジ画素テーブルは、第２記憶部２５に格納される。
【００８５】
次に、直線候補検出部２２１は、水平エッジ画像から抽出した直線候補を、（ρ、θ）の組合せに対する投票数が多かった順に選択する（ステップＳ１２０２）。
【００８６】
次に、直線候補検出部２２１は、選択した直線候補の近傍の画素を走査する（ステップＳ１２０３）。例えば、直線候補検出部２２１は、図１１（ｂ）に示すように、直線候補１１０１の近傍の範囲１１１１にある画素を、最も左上の画素から垂直方向に走査し、走査するラインを１ラインずつ右側にずらしていく。
【００８７】
そして、直線候補検出部２２１は、走査した画素がエッジ画素か否かを判定する（ステップＳ１２０４）。直線候補検出部２２１は、走査した画素がエッジ画素でない場合、ステップＳ１２０９に移行し、一方、走査した画素がエッジ画素である場合、第１のエッジ画素としてカウントする（ステップＳ１２０５）。
【００８８】
次に、直線候補検出部２２１は、そのエッジ画素についての座標情報がエッジ画素テーブルに記録済みか否かを判定する（ステップＳ１２０６）。直線候補検出部２２１は、そのエッジ画素についての座標情報がエッジ画素テーブルに記録済みでなければ、そのエッジ画素についての座標情報をエッジ画素テーブルに記録し（ステップＳ１２０７）、一方、そのエッジ画素についての座標情報がエッジ画素テーブルに記録済みであれば、第２のエッジ画素としてカウントする（ステップＳ１２０８）。
【００８９】
次に、直線候補検出部２２１は、選択した直線候補の近傍の範囲の画素を全て走査したか否かを判定し（ステップＳ１２０９）、まだ走査していない画素がある場合、ステップＳ１２０３に戻り、ステップＳ１２０３〜Ｓ１２０８の処理を繰り返す。
【００９０】
一方、選択した直線候補の近傍の範囲の画素を全て走査した場合、直線候補検出部２２１は、第１のエッジ画素の数に対する第２のエッジ画素の数の割合が所定比率R1以上か否かを判定し（ステップＳ１２１０）、第１のエッジ画素の数に対する第２のエッジ画素の数の割合が所定比率R1以上の場合、その選択した直線候補を直線の候補から除外する（ステップＳ１２１１）。一方、第１のエッジ画素の数に対する第２のエッジ画素の数の割合が所定比率R1未満の場合は、その選択した直線候補は直線の候補から除外しないため、特に処理を行わない。
【００９１】
次に、直線候補検出部２２１は、全ての直線候補を選択したか否かを判定し（ステップＳ１２１２）、まだ画素を走査していない直線候補がある場合、ステップＳ１２０２に戻り、ステップＳ１２０２〜Ｓ１２１１の処理を繰り返す。一方、全ての直線候補について画素を走査すると、直線候補検出部２２１は、直線候補の除外処理を終了する。
【００９２】
例えば、図１１（ａ）に示す例において、直線候補１１０１、１１０２、１１０３、１１０４の順に（ρ、θ）の組合せに対する投票数が多い場合、直線候補１１０１を選択したときには、その近傍の範囲１１１１にあるエッジ画素についての座標情報はエッジ画素テーブルに記録されていないため、直線候補１１０１は直線の候補から除外されない。一方、図１１（ｃ）に示すように、直線候補１１０２の近傍の範囲１１１２にあるエッジ画素は全て直線候補１１０１の近傍の範囲１１１１にあるエッジ画素と重複している。そのため、直線候補１１０２を選択したときにはその近傍の範囲１１１２にあるエッジ画素についての座標情報は全てエッジ画素テーブルに記録されており、直線候補１１０２は直線の候補から除外される。また、直線候補１１０３を選択したときには、その近傍の範囲１１１３にあるエッジ画素についての座標情報はエッジ画素テーブルに記録されていないため、直線候補１１０３は直線の候補から除外されない。また、直線候補１１０４の近傍の範囲１１１４にあるエッジ画素は、全て直線候補１１０１の近傍の範囲１１１１又は直線候補１１０３の近傍の範囲１１１３にあるエッジ画素と重複している。そのため、直線候補１１０４を選択したときにはその近傍の範囲１１１４にあるエッジ画素についての座標情報は全てエッジ画素テーブルに記録されており、直線候補１１０４は直線の候補から除外される。
【００９３】
図８に戻って、直線候補検出部２２１は、水平エッジ画像から抽出した直線候補の除外処理と同様にして、垂直エッジ画像から抽出した直線候補の除外処理を実施する（ステップＳ８０５）。
【００９４】
次に、直線検出部２２２は、水平エッジ画像から抽出した直線候補から所定距離内にあるエッジ画素に対して最小二乗法を用いて水平方向の直線を検出する（ステップＳ８０６）。この所定距離は、画像処理システム１が使用される環境等に応じて適宜定められ、例えば2mmに相当する距離に設定される。
【００９５】
図１３（ａ）、（ｂ）は、最小二乗法による直線検出処理について説明するための模式図である。図１３（ａ）に示すエッジ画像１３００において、各点はエッジ画素を表し、直線１３０１は各エッジ画素からハフ変換により検出された直線候補を表す。つまり、直線候補１３０１は可能な限り多くのエッジ画素上を通過するように検出される。一方、その直線候補の近傍のエッジ画素は原稿の境界から発生している可能性が高く、その全てのエッジ画素から近い位置を通過する直線の方が、その直線候補より原稿の境界に近い可能性が高い。
【００９６】
そこで、直線検出部２２２は、図１３（ｂ）のエッジ画像１３１０に示すように、直線候補１３０１から所定距離内１３０２にある画素に対して最小二乗法を用いて直線１３２１を検出する。なお、最小二乗法では、各画素と、検出する直線１３２１との距離１３１１〜１３１６の二乗の和が最小となるように、以下の式により直線を算出することができる。
【数１】
0005871571.tif 000002
なお、ｎは直線候補から所定距離内にあるエッジ画素の数を表し、ｘi、ｙiは、それぞれｉ番目のエッジ画素の水平方向の座標及び垂直方向の座標を表す。
【００９７】
図１４は、最小二乗法による直線検出処理の動作の例を示すフローチャートである。以下、図１４に示したフローチャートを参照しつつ、最小二乗法による直線検出処理の動作の例を説明する。
【００９８】
直線検出部２２２は、まず、水平エッジ画像から抽出した直線候補のうちの一つを選択する（ステップＳ１４０１）。
【００９９】
次に、直線検出部２２２は、選択した直線候補から所定距離内のエッジ画素を抽出し（ステップＳ１４０２）、抽出したエッジ画素に対して最小二乗法を用いて直線を検出し（ステップＳ１４０３）、検出した直線で直線候補を更新する（ステップＳ１４０４）。
【０１００】
次に、直線検出部２２２は、全ての直線候補を選択したか否かを判定し（ステップＳ１４０５）、まだ選択していない直線候補がある場合、ステップＳ１４０１に戻り、ステップＳ１４０１〜Ｓ１４０４の処理を繰り返す。一方、全ての直線候補について画素を走査すると、直線検出部２２２は、最小二乗法による直線検出処理を終了する。
【０１０１】
図８に戻って、直線検出部２２２は、水平エッジ画像から抽出した直線候補についての最小二乗法による直線検出処理と同様にして、垂直エッジ画像から抽出した直線候補についても最小二乗法による直線検出処理を実施する（ステップＳ８０７）。
【０１０２】
次に、直線検出部２２２は、水平エッジ画像から検出した直線をその直線の近傍に位置するエッジ画素の密集の度合いに基づいて複数の直線に分割する（ステップＳ８０８）。なお、直線の近傍の範囲は、その範囲内のエッジ画素がその直線に対応するとみなせる範囲に定められ、例えば直線から2mmに相当する距離内の範囲に設定することができる。
【０１０３】
図１５（ａ）、（ｂ）は、直線の分割処理について説明するための模式図である。図１５（ａ）に示すエッジ画像１５００において、各点はエッジ画素を表し、直線１５０１は各エッジ画素から検出された直線を表し、領域１５０２は直線１５０１の近傍の範囲を表す。図１５（ａ）において、エッジ画素１５０３〜１５０４の間にあるエッジ画素と、エッジ画素１５０５〜１５０６の間にあるエッジ画素はそれぞれ密集しているが、エッジ画素１５０４とエッジ画素１５０５は離れており、読取画像にはその間に直線が存在しない可能性が高い。そこで、直線検出部２２２は、図１５（ｂ）のエッジ画像１５１０に示すように、検出した直線において閾値Th3以上にわたって近傍にエッジ画素が存在しない部分は直線の一部でないと判断し、直線１５０１を二つの直線１５１１と直線１５１２に分割する。なお、閾値Th3は、直線を構成するエッジ画素がノイズ等により検出されないおそれがある最大の長さに定められ、例えば5mmに相当する距離に設定することができる。
【０１０４】
図１６は、直線の分割処理の動作の例を示すフローチャートである。以下、図１６に示したフローチャートを参照しつつ、直線の分割処理の動作の例を説明する。
【０１０５】
直線検出部２２２は、まず、水平エッジ画像から検出した直線のうちの一つを選択する（ステップＳ１６０１）。
【０１０６】
次に、直線検出部２２２は、選択した直線の近傍の画素を走査し、その直線の始点となるエッジ画素を検出する（ステップＳ１６０２）。直線検出部２２２は、図１５（ａ）に示すように、直線１５０１の近傍の範囲１５０２にある画素を、最も左上の画素から垂直方向に走査し、走査するラインを１ラインずつ右側にずらしていく。そして、最初に検出したエッジ画素１５０３を直線１５０１の始点と判定する。
【０１０７】
次に、直線検出部２２２は、始点となるエッジ画素から引き続き直線の近傍の画素を走査し、その始点に対応する終点を検出する（ステップＳ１６０３）。直線検出部２２２は、図１５（ａ）に示すように、直線１５０１の近傍の範囲１５０２にある画素を、エッジ画素１５０３の位置から垂直方向に走査し、走査するラインを１ラインずつ右側にずらしていく。そして、検出したエッジ画素１５０５がその直前に検出したエッジ画素１５０４と閾値Th3以上離れている場合に、その直前に検出したエッジ画素１５０４を始点に対応する終点と判定する。
【０１０８】
次に、直線検出部２２２は、検出した直線のうち、始点となるエッジ画素から終点となるエッジ画素までの位置に対応する部分を一つの直線として第２記憶部２５に記録する（ステップＳ１６０４）。図１５（ｂ）に示す例では、直線検出部２２２は、直線１５０１のうちエッジ画素１５０３からエッジ画素１５０４までの位置に対応する部分１５１１が一つの直線として記録される。
【０１０９】
次に、直線検出部２２２は、選択した直線の近傍の画素を全て走査したか否かを判定し（ステップＳ１６０５）、まだ走査していない画素がある場合、ステップＳ１６０２に戻り、ステップＳ１６０２〜Ｓ１６０４の処理を繰り返す。この場合、ステップＳ１６０２では、終点として検出したエッジ画素の位置から、再度画素を走査していく。
【０１１０】
一方、選択した直線の近傍の範囲の画素を全て走査した場合、直線検出部２２２は、検出した全ての直線を選択したか否かを判定し（ステップＳ１６０６）、まだ選択していない直線がある場合、ステップＳ１６０１に戻り、ステップＳ１６０１〜Ｓ１６０５の処理を繰り返す。一方、検出した全ての直線を選択すると、直線検出部２２２は、直線の分割処理を終了する。
【０１１１】
図８に戻って、直線検出部２２２は、水平エッジ画像から検出した直線の分割処理と同様にして、垂直エッジ画像から検出した直線の分割処理を実施する（ステップＳ８０９）。
【０１１２】
次に、直線検出部２２２は、水平エッジ画像から検出した直線を長さの順にソートし、ソートした順に、水平エッジ画像から検出した水平方向の直線を記録するための水平方向の直線リストに記録する（ステップＳ８１０）。
【０１１３】
次に、直線検出部２２２は、垂直エッジ画像から検出した直線を長さの順にソートし、ソートした順に、垂直エッジ画像から検出した垂直方向の直線を記録するための垂直方向の直線リストに記録し（ステップＳ８１１）、一連のステップを終了する。
【０１１４】
なお、処理負荷を軽減するために、各直線リストに記録する直線の数はそれぞれ所定数（例えば32）以下とする。あるいは、直線の検出精度を高めるために、検出した全ての直線を各直線リストに記録してもよい。
【０１１５】
また、ステップＳ８０４、Ｓ８０５の直線候補の除外処理は、直線候補検出部２２１がハフ変換処理により抽出した直線候補に対して行うのではなく、直線検出部２２２が最小二乗法により検出した直線に対して行ってもよい。
【０１１６】
図４に戻って、直線抽出部２２０は、エッジ画像について近似直線検出処理を実施する（ステップＳ４０５）。
【０１１７】
図１７（ａ）〜（ｃ）は、近似直線について説明するための模式図である。図１７（ａ）に示すような書籍原稿を撮影した入力画像１７００において、書籍原稿の綴じ目部１７０１に対して平行な端部１７０２は直線として検出されるが、綴じ目部１７０１に対して直交する端部１７０３は綴じ目部１７０１の近傍で歪みが生じ、直線として検出されない場合がある。
【０１１８】
そこで、直線抽出部２２０は、図１７（ｂ）のエッジ画像１７１０に示すように、相互に隣接するエッジ画素１７１１を一つのグループ１７１２としてまとめ、そのグループに含まれるエッジ画素のうち、水平方向又は垂直方向における両端に位置するエッジ画素１７１３、１７１４を結んだ直線１７１５を原稿の端部の近似直線として検出する。
【０１１９】
また、書籍原稿の綴じ目部１７０１に対して直交する端部１７０３において、綴じ目部１７０１から離れた位置では水平エッジ画素が抽出されるが、綴じ目部１７０１の近傍では垂直エッジ画素のみが抽出され、水平エッジ画素が抽出されない場合がある。その場合、図１７（ｃ）のエッジ画像１７２０に示すように、端部１７０３は２つのグループ１７２１、１７２２に分離されるおそれがある。そこで、直線抽出部２２０は、各グループの外接矩形の間の水平方向及び垂直方向の位置関係に基づいてグループを結合する。
【０１２０】
図１８は、水平方向の近似直線検出処理の動作の例を示すフローチャートである。以下、図１８に示したフローチャートを参照しつつ、水平方向の近似直線検出処理の動作の例を説明する。
【０１２１】
まず、グループ化部２２３は、水平エッジ画像における各エッジ画素について、他のエッジ画素と相互に隣接するか否かを判定し、相互に隣接するエッジ画素を一つのグループとしてまとめてラベリングする（ステップＳ１８０１）。グループ化部２２３は、水平方向、垂直方向又は斜め方向（８近傍）に相互に隣接するエッジ画素を連結していると判定する。なお、グループ化部２２３は、水平方向又は垂直方向のみ（４近傍）に相互に隣接するエッジ画素を連結していると判定してもよい。また、まとめたグループの水平方向の大きさが閾値Th4以下である場合、そのグループをノイズと判断して以降の処理の対象外としてもよい。この閾値Th4は、画像処理システム１が使用される環境等に応じて適宜定められ、例えば10mmに相当する値に設定することができる。
【０１２２】
次に、結合部２２４は、グループ化部２２３によってまとめられたグループから注目するグループを選択する（ステップＳ１８０２）。
【０１２３】
次に、結合部２２４は、選択した注目するグループと結合条件を満たすグループが存在するか否かを判定する（ステップＳ１８０３）。結合部２２４は、注目するグループの外接矩形と、その注目するグループの外接矩形と垂直方向において第１の所定距離以上離れていない他のグループの外接矩形とが、水平方向において重複せず且つ第２の所定距離以上離れていない場合、当該他のグループは注目するグループとの結合条件を満たすと判定する。なお、第１の所定距離及び第２の所定距離は、画像処理システム１が使用される環境等に応じて適宜定められ、例えば5mmに相当する距離に設定することができる。
【０１２４】
図１９（ａ）〜（ｄ）は、各グループの結合条件について説明するための模式図である。図１９（ａ）のエッジ画像１９００に示す例では、注目するグループ１９０１の外接矩形１９０２に対して、グループ１９０３の外接矩形１９０４とグループ１９０５の外接矩形１９０６が垂直方向において第１の所定距離内にある。そして、外接矩形１９０２と外接矩形１９０４は水平方向において重複せず且つ水平方向の距離１９０７は第２の所定距離未満であるためグループ１９０１とグループ１９０３は結合条件を満たすと判定される。一方、外接矩形１９０２と外接矩形１９０６は水平方向において重複していないが、水平方向の距離１９０８は第２の所定距離以上であるためグループ１９０１とグループ１９０５は結合条件を満たさないと判定される。
【０１２５】
また、結合部２２４は、注目するグループの外接矩形と、その注目するグループの外接矩形と垂直方向において第１の所定距離以上離れていない他のグループの外接矩形が水平方向において重複し、注目するグループの外接矩形と当該他のグループの外接矩形が水平方向において重複する長さが所定の閾値Th5以下であり、且つ当該他のグループの外接矩形の水平方向の長さに対する注目するグループの外接矩形と当該他のグループの外接矩形が水平方向において重複する長さの割合が所定比率R2以下である場合、当該他のグループは注目するグループとの結合条件を満たすと判定する。なお、閾値Th5は、画像処理システム１が使用される環境等に応じて適宜定められ、例えば5mmに相当する距離に設定することができる。所定比率R2も、画像処理システム１が使用される環境等に応じて適宜定められ、例えば50%に設定することができる。
【０１２６】
図１９（ｃ）のエッジ画像１９２０に示す例では、注目するグループ１９２１の外接矩形１９２２に対して、グループ１９２３の外接矩形１９２４とグループ１９２５の外接矩形１９２６が垂直方向において第１の所定距離内にあり、水平方向において重複する。また、外接矩形１９２２と外接矩形１９２４が水平方向において重複する長さ１９２８、及び外接矩形１９２２と外接矩形１９２６が水平方向において重複する長さ１９３０は、それぞれ閾値Th5以下である。ここで、外接矩形１９２４の水平方向の長さ１９２７に対する外接矩形１９２２と外接矩形１９２４が水平方向において重複する長さ１９２８の割合が所定比率R2以下であるため、グループ１９２３はグループ１９２１との結合条件を満たすと判定される。一方、外接矩形１９２６の水平方向の長さ１９２９に対する外接矩形１９２２と外接矩形１９２６が水平方向において重複する長さ１９３０の割合は所定比率R2より大きいため、グループ１９２５はグループ１９２１との結合条件を満たさないと判定される。
【０１２７】
結合部２２４は、選択した注目するグループと結合条件を満たすグループが存在する場合、注目するグループに結合条件を満たすグループを結合する（ステップＳ１８０４）。
【０１２８】
図１９（ａ）に示した例では、図１９（ｂ）のエッジ画像１９１０に示すように、グループ１９０１とグループ１９０３が結合されて一つのグループとなり、外接矩形１９１１を構成する。また、図１９（ｃ）に示した例では、図１９（ｄ）のエッジ画像１９４０に示すように、グループ１９２１とグループ１９２３が結合されて一つのグループとなり、外接矩形１９４１を構成する。なお、グループを結合した場合でも、結合前のグループも引き続き一つのグループとして管理してもよい。
【０１２９】
次に、結合部２２４は、全てのグループに対して注目するグループとの結合条件を確認したか否かを判定し（ステップＳ１８０５）、まだ結合条件を確認していないグループがある場合、ステップＳ１８０３に戻り、ステップＳ１８０３〜Ｓ１８０４の処理を繰り返す。
【０１３０】
一方、全てのグループに対して注目するグループとの結合条件を確認した場合、結合部２２４は、注目するグループとして全てのグループを選択したか否かを判定し（ステップＳ１８０６）、まだ注目するグループとして選択していないグループがある場合、ステップＳ１８０２に戻り、ステップＳ１８０２〜Ｓ１８０５の処理を繰り返す。
【０１３１】
一方、注目するグループとして全てのグループを選択した場合、結合部２２４は、各グループをその水平方向の長さの順にソートする（ステップＳ１８０７）。
【０１３２】
次に、結合部２２４は、各グループを、ソートした順にグループリストに記録する（ステップＳ１８０８）。なお、グループリストには各グループの外接矩形の座標情報とラベリング処理により割り当てられたラベル番号が記録される。
【０１３３】
次に、近似直線検出部２２５は、グループリストに記録されたグループのうちの一つをソートした順に選択する（ステップＳ１８０９）。
【０１３４】
次に、近似直線検出部２２５は、選択したグループのエッジ画素の始点と終点を検出する（ステップＳ１８１０）。例えば、近似直線検出部２２５は、そのグループの外接矩形の左辺を垂直方向に走査し、最初に検出したエッジ画素を始点のエッジ画素とし、そのグループの外接矩形の右辺を垂直方向に走査し、最後に検出したエッジ画素を終点のエッジ画素とする。
【０１３５】
次に、近似直線検出部２２５は、エッジ画素の始点と終点を結んだ近似直線を算出する（ステップＳ１８１１）。
【０１３６】
次に、近似直線検出部２２５は、近似直線を直線リストに記録する（ステップＳ１８１２）。なお、直線検出部２２２が検出した直線と同様に、近似直線もその長さの順に直線リストに並ぶように挿入される。また、近似直線検出部２２５は、近似直線が直線リストに記録された何れかの直線と近似する場合、その近似直線を直線リストに記録せずに除外してもよい。例えば、近似直線検出部２２５は、図８に示すフローチャートのステップＳ８０４の処理と同様に、近似直線の近傍に位置する第１のエッジ画素の数を算出する。また、その第１のエッジ画素のうち他の直線候補の近傍に位置する第２のエッジ画素の数を算出する。そして、第１のエッジ画素の数に対する第２のエッジ画素の数の割合が所定比率R3以上である場合は、その近似直線を直線リストに記録しない。なお、近似直線の近傍の範囲は、その範囲内のエッジ画素がその直線候補と同一の直線に対応するとみなせる範囲に定められ、例えば近似直線から2mmに相当する距離内の範囲に設定することができる。また、所定比率R3は、画像処理システム１が使用される環境等に応じて適宜定められ、例えば50%に設定することができる。あるいは、近似直線は直線候補検出部２２１が検出した直線候補より直線としての信頼性が低いと考えて、所定比率R3は所定比率R1より低い値にしてもよい。
【０１３７】
次に、近似直線検出部２２５は、全てのグループに対して近似直線を算出したか否かを判定し（ステップＳ１８１３）、まだ近似直線を算出していないグループがある場合、ステップＳ１８０９に戻り、ステップＳ１８０９〜Ｓ１８１２の処理を繰り返す。一方、全てのグループに対して近似直線を算出した場合、近似直線検出部２２５は、水平方向の近似直線の検出処理を終了する。
【０１３８】
近似直線検出部２２５は、水平方向の近似直線の検出処理と同様にして、垂直方向の近似直線の検出処理を行う。なお、垂直方向の近似直線の検出処理は、水平方向の近似直線の検出処理において、単に水平方向と垂直方向を入れ替えた処理となるため、詳細な説明を省略する。
【０１３９】
図４に戻って、矩形検出部２３０は、検出された直線又は近似直線に基づいて、入力画像に含まれる原稿の端部、つまり原稿の外接矩形を検出する矩形検出処理を実施する（ステップＳ４０６）。矩形検出部２３０は、まず、直線リストに保存された複数の直線のうち二本ずつが略直交する四本の直線から構成される複数の矩形候補を抽出する。そして、各矩形候補について、矩形候補の各辺から所定距離（例えば2mmに相当する距離）内にあるエッジ画素の数を求めるとともに、その矩形候補の各角の近傍のエッジ画素の分布に基づいて各角の角らしさの度合いを求め、求めたエッジ画素の数及び角らしさの度合いに基づいて矩形候補から原稿の端部を表す矩形を選択する。
【０１４０】
図２０は、矩形検出処理の動作の例を示すフローチャートである。以下、図２０に示したフローチャートを参照しつつ、矩形検出処理の動作の例を説明する。
【０１４１】
まず、矩形候補抽出部２３１は、水平方向の直線リストから水平方向の直線（以下、第１の水平線と称する）を選択する（ステップＳ２００１）。
【０１４２】
次に、矩形候補抽出部２３１は、水平方向の直線リストから、第１の水平線と略平行（例えば±3°以内）かつ閾値Th6以上離れた水平方向の直線（以下、第２の水平線と称する）を抽出する（ステップＳ２００２）。なお、閾値Th6は、画像読取装置１０の読取りの対象となる原稿のサイズに応じて予め定められる。
【０１４３】
次に、矩形候補抽出部２３１は、垂直方向の直線リストから第１の水平線と略直交する（例えば90°に対して±3°以内）垂直方向の直線（以下、第１の垂直線と称する）を抽出する（ステップＳ２００３）。
【０１４４】
次に、矩形候補抽出部２３１は、垂直方向の直線リストから第１の水平線と略直交し、かつ第１の垂直線と閾値Th7以上離れた垂直方向の直線（以下、第２の垂直線と称する）を抽出する（ステップＳ２００４）。なお、閾値Th7は、画像読取装置１０の読取りの対象となる原稿のサイズに応じて予め定められ、閾値Th6と同じ値でもよい。
【０１４５】
次に、矩形候補抽出部２３１は、第１の水平線、第２の水平線、第１の垂直線及び第２の垂直線から構成される矩形を矩形候補として抽出する（ステップＳ２００５）。
【０１４６】
次に、矩形選択部２３２は、抽出された矩形候補について、矩形候補の各辺の辺らしさの度合いを表す第１の評価点を算出する（ステップＳ２００６）。
【０１４７】
図２１（ａ）、（ｂ）は、第１の評価点について説明するための模式図である。図２１（ａ）に示す画像２１００において、点２１０１〜２１０４は矩形候補の４つの角を表し、直線２１１１〜２１１４は矩形候補の各辺を表す。この直線２１１１〜２１１４の近傍にエッジ画素が密集しているほど、直線２１１１〜２１１４は原稿の境界を明確に表し、原稿の外接矩形を表す辺らしいと考えることができる。そこで、矩形選択部２３２は、矩形候補の各辺２１１１〜２１１４から所定距離内２１２１〜２１２４にある画素の数に対する所定距離内２１２１〜２１２４にあるエッジ画素の数の割合を第１の評価点とする（例えば、100%の場合に100点とする）。つまり、第１の評価点は、矩形候補の各辺から所定距離内にある画素の数に対する、所定距離内にあるエッジ画素の数の割合が高いほど点数が高くなり、第１の評価点が高いほど各辺が原稿の境界である可能性が高くなる。
【０１４８】
図２１（ｂ）の画像２１４０に示すように、複数の原稿２１４１、２１４２が撮影された入力画像において、原稿２１４１、２１４２の両方を包含する矩形候補２１４３は、一部の領域２１４４、２１４５に直線を構成するエッジ画素が存在しない。そのため、矩形候補２１４３については第１の評価点が低くなり、原稿２１４１、２１４２のそれぞれの外接矩形２１４６、２１４７が別個に検出されやすくなる。
【０１４９】
なお、矩形選択部２３２は、矩形候補２１００の各辺２１１１〜２１１４から所定距離内２１２１〜２１２４にあるエッジ画素の数を第１の評価点としてもよい。この場合、第１の評価点は、矩形候補の各辺から所定距離内にあるエッジ画素の数が多いほど点数が高くなり、第１の評価点が高いほど各辺が原稿の境界である可能性が高くなる。
【０１５０】
次に、矩形選択部２３２は、抽出された矩形候補について、矩形候補の各角の角らしさの度合いを表す第２の評価点を算出する（ステップＳ２００７）。
【０１５１】
図２２（ａ）、（ｂ）は、第２の評価点について説明するための模式図である。図２２（ａ）に示す画像２２００において、点２２０１は矩形候補の角を表し、直線２２０２、２２０３は矩形候補の各辺を表す。この直線２２０２、２２０３の端部が相互に接している場合は、点２２０１は矩形の角らしいと考えられるが、直線２２０２、２２０３の端部が接していない場合又は直線２２０２、２２０３が交差している場合は、点２２０１は矩形の角らしくないと考えられる。そこで、矩形選択部２３２は、角２２０１の近傍において各辺２２０２、２２０３に沿って分布するエッジ画素の数が多いほど点数が高くなり、角２２０１の近傍において各辺２２０２、２２０３の延長線に沿って分布するエッジ画素の数が多いほど点数が低くなるように第２の評価点を算出する。
【０１５２】
第２の評価点は０点を基準とする。そして、角２２０１の近傍における辺２２０２から所定距離内の領域２２０４において、水平方向のライン毎にエッジ画素が存在するか否かを判定し、水平方向のラインにエッジ画素が存在する場合、第２の評価点に１点を加算する。なお、各角の近傍の範囲及び各辺からの所定距離は、画像処理システム１が使用される環境等に応じて適宜定められ、例えば各角から5mmに相当する距離内の範囲及び各辺から2mmに相当する距離に設定することができる。同様に、角２２０１の近傍における辺２２０３から所定距離内の領域２２０５において、垂直方向のライン毎にエッジ画素が存在するか否かを判定し、垂直方向のラインにエッジ画素が存在する場合、第２の評価点に１点を加算する。また、角２２０１の近傍における辺２２０２の延長線から所定距離内の領域２２０６において、水平方向のライン毎にエッジ画素が存在するか否かを判定し、水平方向のラインにエッジ画素が存在する場合、第２の評価点から１点を減算する。同様に、角２２０１の近傍における辺２２０３の延長線から所定距離内の領域２２０７において、垂直方向のライン毎にエッジ画素が存在するか否かを判定し、垂直方向のラインにエッジ画素が存在する場合、第２の評価点から１点を減算する。
【０１５３】
例えば、図２２（ｂ）の画像２２１０に示すように、垂直方向の直線２２１２が矩形の角２２１１に到達していず、水平方向の直線２２１３が矩形の角２２１１を越えて伸びている場合、第２の評価点は、角２２１１の右側の近傍の領域２２１５では加点されるが、左側の近傍の領域２２１７では減点される。また、角２２１１の上側の近傍の領域２２１６では減点されないが、角２２１１の下側の近傍の領域２２１４では、領域内に存在するエッジ画素分のみ加点される。
【０１５４】
次に、矩形選択部２３２は、抽出した矩形候補を第１の評価点及び第２の評価点とともに矩形リストに記録する（ステップＳ２００８）。
【０１５５】
次に、矩形選択部２３２は、第２の垂直線として全ての垂直方向の直線を抽出したか否かを判定し（ステップＳ２００９）、まだ抽出していない直線がある場合、ステップＳ２００４に戻り、ステップＳ２００４〜Ｓ２００８の処理を繰り返す。
【０１５６】
一方、第２の垂直線として全ての垂直方向の直線を抽出した場合、矩形選択部２３２は、第１の垂直線として全ての垂直方向の直線を抽出したか否かを判定し（ステップＳ２０１０）、まだ抽出していない直線がある場合、ステップＳ２００３に戻り、ステップＳ２００３〜Ｓ２００９の処理を繰り返す。
【０１５７】
一方、第１の垂直線として全ての垂直方向の直線を抽出した場合、矩形選択部２３２は、第２の水平線として全ての水平方向の直線を抽出したか否かを判定し（ステップＳ２０１１）、まだ抽出していない直線がある場合、ステップＳ２００２に戻り、ステップＳ２００２〜Ｓ２０１０の処理を繰り返す。
【０１５８】
一方、第２の水平線として全ての水平方向の直線を抽出した場合、矩形選択部２３２は、第１の水平線として全ての水平方向の直線を選択したか否かを判定し（ステップＳ２０１２）、まだ選択していない直線がある場合、ステップＳ２００１に戻り、ステップＳ２００１〜Ｓ２０１１の処理を繰り返す。
【０１５９】
一方、第１の水平線として全ての水平方向の直線を選択した場合、矩形選択部２３２は、矩形リストに記録された矩形候補について第１の評価点と第２の評価点の合計を算出し、算出した合計の高い順にソートする（ステップＳ２０１３）。
【０１６０】
次に、矩形選択部２３２は、矩形リストに記録された矩形候補のうち重複する矩形候補を除去する（ステップＳ２０１４）。
【０１６１】
図２３は、重複する矩形候補について説明するための模式図である。図２３の画像２３００に示すように、相互に重複する矩形候補２３０１と矩形候補２３０２が抽出された場合、両方の矩形候補は、同一原稿に基づく可能性が高い。そこで、矩形選択部２３２は、相互に重複する矩形候補のうち第１の評価点と第２の評価点の合計が低い方の矩形候補を矩形リストから除去する。つまり、矩形選択部２３２は、相互に重複する矩形候補が複数存在する場合に、第１の評価点と第２の評価点の合計が最も高い矩形候補のみを矩形として選択し、他の矩形候補と重複しない矩形候補のみを矩形として選択する。
【０１６２】
次に、矩形選択部２３２は、矩形リストに記録された矩形候補のうち他の矩形候補内に包含される矩形候補を除去する（ステップＳ２０１５）。
【０１６３】
図２４は、他の矩形候補内に包含される矩形候補について説明するための模式図である。図２４の画像２４００に示すように、矩形候補２４０１が他の矩形候補２４０２内に包含される場合、その矩形候補２４０１は原稿内に記載された図形等である可能性が高い。そこで、矩形選択部２３２は、他の矩形候補２４０２内に包含される矩形候補２４０１を矩形リストから除去する。
【０１６４】
次に、矩形選択部２３２は、矩形リストに残った矩形候補から、入力画像に含まれる原稿の外接矩形を表す矩形を選択し（ステップＳ２０１６）、矩形検出処理を終了する。
【０１６５】
矩形選択部２３２は、矩形リストに残った矩形候補のうち第１の評価点と第２の評価点の合計の最も高い矩形候補を入力画像に含まれる原稿の外接矩形として検出する。あるいは、矩形リストに残った矩形候補のうち、面積が最も大きい（各角が最も離れている）矩形候補を原稿の外接矩形として検出してもよい。なお、矩形リストに複数の矩形候補が残っている場合、矩形選択部２３２は、入力画像に複数の原稿が含まれると判定して、全ての矩形候補を各原稿の外接矩形として検出してもよい。あるいは、第１の評価点と第２の評価点の合計が高い順に選択した所定数（例えば3つ）の矩形候補を各原稿の外接矩形として検出してもよい。
【０１６６】
なお、矩形選択部２３２は、原稿の外接矩形として検出した矩形のうちの一辺が近似直線である場合、その近似直線による一辺を、その近似直線に対応する、ラベリングされたグループに含まれる全てのエッジ画素がその矩形に含まれるように補正する。
【０１６７】
図２５（ａ）、（ｂ）は、近似直線を含む矩形について説明するための模式図である。図２５（ａ）の画像２５００に示すように、原稿２５０１の外接矩形として検出した矩形２５０２の辺２５０３、２５０４が近似直線である場合、近似直線２５０３、２５０４が原稿２５０１と重なり、矩形２５０２が原稿２５０１の全領域を含まない可能性がある。そこで、矩形選択部２３２は、図２５（ｂ）の画像２５１０に示すように、近似直線２５０３、２５０４を、各近似直線に対応するグループ２５１５、２５１６の外接矩形を構成する辺のうち、各近似直線と略平行であり、原稿２５１１からみて外側に位置する辺２５１３、２５１４に補正する。これにより、矩形２５０２は矩形２５１２に補正され、原稿２５１１の全領域を包含することが可能となる。
【０１６８】
図４に戻って、矩形切出し部２４０は、検出された矩形を切出す（ステップＳ４０７）。なお、矩形切出し部２４０は、公知の傾き補正技術を用いて矩形の補正を行ってから矩形の切出しを行ってもよい。
【０１６９】
次に、第２中央処理部２６は、矩形切出し部２４０が切出した矩形を表示部２３に表示し（ステップＳ４０８）、一連のステップを終了する。
【０１７０】
なお、画像処理部２７は、矩形を選択した後、選択された矩形に含まれるエッジ画素を除外したエッジ画素から直線を抽出しなおし、抽出しなおした直線から矩形候補を抽出しなおし、抽出しなおした矩形候補から矩形を新たに選択してもよい。
【０１７１】
図２６（ａ）、（ｂ）は、選択された矩形に含まれるエッジ画素を除外する処理について説明するための模式図である。図２６（ａ）の画像２６００に示すように、入力画像に複数の原稿２６０１〜２６０４が含まれる場合、特に直線リストに記録する直線の数を制限しているときは、そのうちの一つ以上の原稿２６０４が検出されない可能性がある。そこで、矩形選択部２３２は、図４に示すフローチャートにおいて、ステップＳ４０６で矩形を検出した後、水平エッジ画像及び垂直エッジ画像から、検出した矩形に含まれるエッジ画素を除外する。そして、処理をステップＳ４０４に戻し、ステップＳ４０４〜Ｓ４０６の処理を繰り返す。これにより、処理負荷を軽減しつつ、精度よく原稿の外接矩形を検出することができる。
【０１７２】
以上詳述したように、図４に示したフローチャートに従って動作することによって、情報処理装置２０は、読取画像から原稿の境界を精度よく検出することが可能となった。
【０１７３】
また、矩形検出部２３０は、エッジ画像からエッジ画素によって囲まれた、閉じた領域（以下、閉領域と称する）を抽出し、抽出した閉領域の外接矩形も原稿の外接矩形を表す矩形として検出してもよい。
【０１７４】
図２７（ａ）、（ｂ）は、閉領域の外接矩形について説明するための模式図である。図２７（ａ）の画像２７００に示すように、原稿２７０１の形状が矩形でない場合、原稿の境界の直線２７０２〜２７０５から構成される矩形についての第１の評価点及び第２の評価点は低くなる。そこで、図２７（ｂ）の画像２７１０に示すように、矩形検出部２３０は、エッジ画像から閉領域２７１１を抽出し、抽出した閉領域２７１１の外接矩形２７１２を算出して、算出した外接矩形２７１２を原稿の外接矩形とする。
【０１７５】
図２８は、閉領域の外接矩形の抽出処理の動作の例を示すフローチャートである。以下、図２８に示したフローチャートを参照しつつ、閉領域の外接矩形の抽出処理の動作の例を説明する。このフローチャートは、図１に示す情報処理装置２０において、前述した図４に示すフローチャートの代りに実行することが可能である。なお、以下に説明する動作のフローは、予め第２記憶部２５に記憶されているプログラムに基づき主に第２中央処理部２６により情報処理装置２０の各要素と協働して実行される。
【０１７６】
図２８に示すステップＳ２８０１〜Ｓ２８０６、Ｓ２８０９〜Ｓ２８１０の処理は、図４に示すステップＳ４０１〜Ｓ４０６、Ｓ４０７〜Ｓ４０８の処理と同じであるため、説明を省略し、以下では、ステップＳ２８０７、Ｓ２８０８の処理についてのみ説明する。
【０１７７】
ステップＳ２８０３において、エッジ画素抽出部２１０によるノイズ除去処理が実施されると、直線抽出部２２０による直線検出処理（ステップＳ２８０４）及び近似直線検出処理（ステップＳ２８０５）並びに矩形検出部２３０による矩形検出処理（ステップＳ２８０６）と並行して、矩形検出部２３０は、エッジ画像から閉領域を抽出する（ステップＳ２８０７）。
【０１７８】
次に、矩形検出部２３０は、抽出した閉領域の外接矩形を算出し、算出した外接矩形を原稿の外接矩形とする（ステップＳ２８０８）。
【０１７９】
なお、矩形検出部２３０は、抽出した閉領域の外接矩形が、図２０に示すフローチャートで検出された矩形と重なっている場合、又は図２０に示すフローチャートで検出された矩形に包含される場合、その外接矩形は原稿の外接矩形として検出しないようにしてもよい。
【０１８０】
以上詳述したように、図２８に示したフローチャートに従って動作することによって、情報処理装置２０は、原稿の形状が矩形でない場合でも、読取画像から原稿の境界を精度よく検出することが可能となった。
【０１８１】
また、画像処理部２７が、直線、近似直線又は矩形を検出する範囲は、利用者によって入力部２４から入力できるようにしてもよい。その場合、直線抽出部２２０又は矩形検出部２３０は、入力された範囲内で直線、近似直線又は矩形を検出する。
【０１８２】
図２９（ａ）、（ｂ）は、直線、近似直線又は矩形を検出する範囲が指定された場合の処理について説明するための模式図である。図２９（ａ）の画像２９００に示すように、利用者によって範囲２９０１が指定されると、直線抽出部２２０又は矩形検出部２３０は、指定された範囲内で直線、近似直線又は矩形を検出する。この場合、図２９（ｂ）の画像２９１０に示すように、原稿内の矩形２９１１が切り出される。これにより、情報処理装置２０は読取画像の原稿内のコンテンツを切り出すことも可能となる。また、矩形を検出する範囲を限定することにより、切り出すべき矩形の外側に存在するノイズを適切に除去することができ、精度よく原稿内の矩形を検出することができる。
【０１８３】
図３０は、他の画像処理システム２の概略構成を示す図である。図３０に示す画像処理システム２と、図１に示す画像処理システム１との差異は、画像処理部を備える装置が異なる点である。すなわち、画像処理システム２では、情報処理装置４０ではなく、画像読取装置３０が画像処理部３６を有する。この画像処理部３６は、情報処理装置２０の画像処理部２７と同様の機能を有する。
【０１８４】
図３０に示す画像処理システム２では、前述した図３、４、２８に示す処理とほぼ同様の処理を実行することができる。以下、図３のフローチャートに示される画像読取処理並びに図４のフローチャートに示される直線検出処理及び矩形検出処理についてどのように適応されるかを説明する。画像処理システム２では、ステップＳ３０１の処理及びステップＳ４０２〜Ｓ４０７の処理は、予め第１記憶部３４に記憶されているプログラムに基づき主に第１中央処理部３５により画像読取装置３０の各要素と協働して実行され、ステップＳ４０８の処理は、予め第２記憶部４５に記憶されているプログラムに基づき主に第２中央処理部４６により情報処理装置４０の各要素と協働して実行される。
【０１８５】
ステップＳ３０１において、画像読取装置３０の画像入力部３１は、撮像対象物を撮影した読取画像を生成し、第１画像メモリ部３２に保存する。直線検出処理及び矩形検出処理は、画像読取装置３０で実施されるため、ステップＳ３０２、Ｓ４０１の読取画像の送受信処理は省略される。
【０１８６】
ステップＳ４０２〜Ｓ４０７の処理は、画像読取装置３０の画像処理部３６によって実行される。これらの処理の動作は、画像処理システム１について説明した情報処理装置２０の画像処理部２７によって実行される場合と同様である。画像読取装置３０の画像処理部３６は、切出した矩形を第１インターフェース部３３を介して情報処理装置４０に送信する。一方、ステップＳ４０８において、情報処理装置４０の第２中央処理部４６は、受信した矩形を表示部４３に表示する。
【０１８７】
同様に、画像処理システム２に図２８のフローチャートに示される判定処理が適用される場合、ステップＳ２８０２〜Ｓ２８０９の処理は、予め第１記憶部３４に記憶されているプログラムに基づき主に第１中央処理部３５により画像読取装置３０の各要素と協働して実行され、ステップＳ２８１０の処理は、予め第２記憶部４５に記憶されているプログラムに基づき主に第２中央処理部４６により情報処理装置４０の各要素と協働して実行され、ステップＳ２８０１の処理は省略される。
【０１８８】
このように、画像読取装置３０が画像処理部３６を備えて直線検出処理及び矩形検出処理を実行する場合も、情報処理装置が画像処理部を備えて直線検出処理及び矩形検出処理を実行する場合と同様の効果を得ることができる。
【０１８９】
以上、本発明の好適な実施形態について説明してきたが、本発明はこれらの実施形態に限定されるものではない。例えば、画像読取装置と情報処理装置の機能分担は、図１及び図３０に示す画像処理システムの例に限られず、画像処理部内の各部を含めて画像読取装置及び情報処理装置の各部を画像読取装置と情報処理装置の何れに配置するかは適宜変更可能である。または、画像読取装置と情報処理装置を一つの装置で構成してもよい。
【０１９０】
また、図１に示す画像処理システム１において、画像読取装置１０の第１インターフェース部１３と、情報処理装置２０の第２インターフェース部２１を直接接続するのではなく、インターネット、電話回線網（携帯端末回線網、一般電話回線網を含む）、イントラネット等のネットワークを介して接続してもよい。その場合、第１インターフェース部１３及び第２インターフェース部２１に、接続するネットワークの通信インターフェース回路を備える。また、その場合、クラウドコンピューティングの形態で画像処理のサービスを提供できるように、ネットワーク上に複数の情報処理装置２０を分散して配置し、各情報処理装置２０が協働して、直線検出処理、矩形検出処理等を分担するようにしてもよい。これにより、画像処理システム１は、複数の画像読取装置１０が読み取った読取画像について、効率よく直線検出処理及び矩形検出処理を実施できる。
【０１９１】
同様に、図３０に示す画像処理システム２においても、画像読取装置３０の第１インターフェース部３３と、情報処理装置４０の第２インターフェース部４１をネットワークを介して接続してもよい。
【符号の説明】
【０１９２】
１、２    画像処理システム
１０、３０    画像読取装置
１１、３１    画像入力部
１２、３２    第１画像メモリ部
１３、３３    第１インターフェース部
１４、３４    第１記憶部
１５、３５    第１中央処理部
２０、４０    情報処理装置
２１、４１    第２インターフェース部
２２、４２    第２画像メモリ部
２３、４３    表示部
２４、４４    入力部
２５、４５    第２記憶部
２６、４６    第２中央処理部
２７、３６    画像処理部
２１０    エッジ画素抽出部
２２０    直線抽出部
２２１    直線候補検出部
２２２    直線検出部
２２３    グループ化部
２２４    結合部
２２５    近似直線検出部
２３０    矩形検出部
２３１    矩形候補抽出部
２３２    矩形選択部
２４０    矩形切出し部
【図１】
0005871571.tif 000003
【図２】
0005871571.tif 000004
【図３】
0005871571.tif 000005
【図４】
0005871571.tif 000006
【図５】
0005871571.tif 000007
【図６】
0005871571.tif 000008
【図７】
0005871571.tif 000009
【図８】
0005871571.tif 000010
【図９】
0005871571.tif 000011
【図１０】
0005871571.tif 000012
【図１１】
0005871571.tif 000013
【図１２】
0005871571.tif 000014
【図１３】
0005871571.tif 000015
【図１４】
0005871571.tif 000016
【図１５】
0005871571.tif 000017
【図１６】
0005871571.tif 000018
【図１７】
0005871571.tif 000019
【図１８】
0005871571.tif 000020
【図１９】
0005871571.tif 000021
【図２０】
0005871571.tif 000022
【図２１】
0005871571.tif 000023
【図２２】
0005871571.tif 000024
【図２３】
0005871571.tif 000025
【図２４】
0005871571.tif 000026
【図２５】
0005871571.tif 000027
【図２６】
0005871571.tif 000028
【図２７】
0005871571.tif 000029
【図２８】
0005871571.tif 000030
【図２９】
0005871571.tif 000031
【図３０】
0005871571.tif 000032