"原稿を読み取って取得した原稿画像データにおける原稿の正規位置に対する傾き角度を判定する原稿傾き判定装置であって、上記原稿画像データは、行方向および列方向にマトリクス状に配列された複数の画素のデータからなり、上記原稿画像データにおける、列方向に延伸する垂直エッジおよび行方向に延伸する水平エッジを検出するエッジ検出部と、上記エッジ検出部の検出結果に基づいて、上記原稿画像データの各行における最も左に位置する垂直エッジを当該各行における左エッジとして検出し、上記各行における最も右に位置する垂直エッジを当該各行における右エッジとして検出し、上記原稿画像データの各列における最も上に位置する水平エッジを当該各列における上エッジとして検出し、上記各列における最も下に位置する水平エッジを当該各列における下エッジとして検出し、上記原稿画像データの各画素または上記原稿画像データにおける互いに重複しない複数の画素群が上記左エッジ、上記右エッジ、上記上エッジ、上記下エッジ、および非エッジのいずれであるかを示すエッジデータを生成するエッジデータ生成部と、互いに異なる長さで行方向に延伸する複数のベースラインを上記各行において行方向に沿って所定画素ずつ移動させたときの、当該各ベースラインにおける移動方向の端部と、当該端部を通り当該各ベースラインの延伸方向に直交する列上に存在する上エッジまたは下エッジのうち当該端部から最も近いエッジとの距離であるデルタ値、および、互いに異なる長さで列方向に延伸する複数のベースラインを上記各列において列方向に沿って所定画素ずつ移動させたときの、当該各ベースラインにおける移動方向の端部と、当該端部を通り当該各ベースラインの延伸方向に直交する行上に存在する左エッジまたは右エッジのうち当該端部から最も近いエッジとの距離であるデルタ値を、ベースライン毎かつ上記各ベースラインを上記所定画素ずつ移動させる毎に算出するデルタ値算出部と、上記デルタ値のヒストグラムを上記ベースライン毎に生成するヒストグラム生成部と、上記各ベースラインに対応する上記ヒストグラムのピーク値を算出するピーク値算出部と、上記ピーク値算出部の算出した上記ピーク値に基づいて上記傾き角度を算出する傾き角度算出部とを備え、上記ピーク値算出部は、長さが最も短いベースラインからベースラインの長さ順に各ベースラインに対応するヒストグラムのピーク値を算出し、2番目以降のベースラインに対応するヒストグラムのピーク値を算出する際、当該ベースラインに対応する上記デルタ値のうち、当該ベースラインの次に短いベースラインについて算出したピーク値に対応するデルタ値を含む所定範囲内のデルタ値のヒストグラムのピーク値を算出し、上記傾き角度算出部は、長さが最も長いベースラインについて算出した上記ピーク値に対応する上記デルタ値に基づいて上記傾き角度を算出することを特徴とする原稿傾き判定装置。上記エッジデータ生成部は、上記原稿画像データを行方向k画素kは2以上の整数×列方向1画素のサイズからなる互いに重複しない複数の水平片に分割し、当該各水平片に含まれる各画素の画素値の平均値を当該水平片の集約尺度として算出し、上記各水平片と当該各水平片の集約尺度とを対応付けた水平片データを生成する水平片エッジ集約尺度算出部と、上記原稿画像データを行方向1画素×列方向k画素のサイズからなる互いに重複しない複数の垂直片に分割し、当該各垂直片に含まれる各画素の画素値の平均値を当該垂直片の集約尺度として算出し、上記各垂直片と当該各垂直片の集約尺度とを対応付けた垂直片データを生成する垂直片エッジ集約尺度算出部と、上記水平片データに基づいて水平エッジデータを生成する水平エッジ検出部と、上記垂直片データに基づいて垂直エッジデータを生成する垂直エッジ検出部とを備え、上記水平エッジデータおよび上記垂直エッジデータからなる上記エッジデータを生成し、上記水平エッジ検出部は、上記水平エッジデータと畳み込み行列式[-1,1]Tとの畳み込み演算を行い、この畳み込み演算によって算出される値に対応する回転角度の絶対値が予め設定される水平データ閾値よりも大きい水平片の値をエッジであることを示す値、その他の水平片の値を非エッジであることを示す値にすることで上記水平エッジデータを生成し、上記垂直エッジ検出部は、上記垂直エッジデータと畳み込み行列式[-1,1]との畳み込み演算を行い、この畳込み演算によって算出される値に対応する回転角度の絶対値が予め設定される垂直データ閾値よりも大きい垂直片の値をエッジであることを示す値、その他の垂直片の値を非エッジであることを示す値にすることで上記垂直エッジデータを生成することを特徴とする請求項1に記載の原稿傾き判定装置。上記エッジデータ生成部は、上記エッジデータを生成した後、当該エッジデータの生成に用いた原稿画像データにおける上記左エッジ、上記右エッジ、上記上エッジ、および上記下エッジを非エッジに置換した原稿画像データに基づいてエッジデータを生成することにより、複数層のエッジデータを生成し、上記デルタ値算出部は上記各層のエッジデータに基づいて層毎に上記デルタ値を算出し、上記ヒストグラム生成部は上記各層について上記デルタ値のヒストグラムを生成し、上記ピーク値算出部は上記各層についてヒストグラムのピーク値を算出し、上記傾き角度算出部は、上記各層について長さが最も長いベースラインについて算出した上記ピーク値に対応する上記デルタ値に基づいて傾き角度候補を算出し、上記各層について算出した傾き角度候補のうちの1つを上記傾き角度として選択することを特徴とする請求項1または2に記載の原稿傾き判定装置。上記エッジデータ生成部は、上記エッジ検出部の検出結果に基づいて、各行の垂直エッジのうち最も左に位置する垂直エッジを示す列番号のリストである左リスト、および各行の垂直エッジのうち最も右に位置するエッジを示す列番号のリストである右リストを生成する垂直エッジリスト生成部と、上記エッジ検出部の検出結果に基づいて、各列の水平エッジのうち最も上に位置する水平エッジを示す行番号のリストである上リスト、および各列の水平エッジのうち最も下に位置する水平エッジを示す行番号のリストである下リストを生成する水平エッジリスト生成部とを備え、上記デルタ値算出部は、上記左リスト、上記右リスト、上記上リスト、および上記下リストを用いて上記デルタ値を算出することを特徴とする請求項1から3のいずれか1項に記載の原稿傾き判定装置。上記ヒストグラム生成部は、長さが最も短いベースラインからベースラインの長さ順に各ベースラインに対応するヒストグラムを生成し、2番目以降のベースラインに対応するヒストグラムを生成する際、当該ベースラインに対応する上記デルタ値のうち、当該ベースラインの次に短いベースラインについて算出したピーク値に対応するデルタ値を含む所定範囲内のデルタ値のヒストグラムを生成し、上記所定範囲外のデルタ値についてはヒストグラムを生成しないことを特徴とする請求項1から4のいずれか1項に記載の原稿傾き判定装置。上記原稿画像データの解像度を所定の解像度に変換する解像度変換処理を行う解像度変換部と、上記原稿画像データをカラー画像データからグレースケール画像データに変換する色変換処理を行う色変換部とを備え、上記エッジ検出部は、上記解像度変換処理および上記色変換処理が施された後の原稿画像データに基づいて上記垂直エッジおよび上記水平エッジを検出することを特徴とする請求項1から5のいずれか1項に記載の原稿傾き判定装置。原稿を読み取って取得した原稿画像データにおける原稿の正規位置に対する傾き角度を判定する原稿傾き判定方法であって、上記原稿画像データは、行方向および列方向にマトリクス状に配列された複数の画素のデータからなり、上記原稿画像データにおける、列方向に延伸する垂直エッジおよび行方向に延伸する水平エッジを検出するエッジ検出工程と、上記エッジ検出工程の検出結果に基づいて、上記原稿画像データの各行における最も左に位置する垂直エッジを当該各行における左エッジ、上記各行における最も右に位置する垂直エッジを当該各行における右エッジ、上記原稿画像データの各列における最も上に位置する水平エッジを当該各列における上エッジ、上記各列における最も下に位置する水平エッジを当該各列における下エッジとして検出し、上記原稿画像データの各画素または上記原稿画像データにおける互いに重複しない複数の画素群が上記左エッジ、上記右エッジ、上記上エッジ、上記下エッジ、および非エッジのいずれであるかを示すエッジデータを生成するエッジデータ生成工程と、互いに異なる長さで行方向に延伸する複数のベースラインを上記各行において行方向に沿って所定画素ずつ移動させたときの、当該各ベースラインにおける移動方向の端部と、当該端部を通り当該各ベースラインの延伸方向に直交する列上に存在する上エッジまたは下エッジのうち当該端部から最も近いエッジとの距離であるデルタ値、および、互いに異なる長さで列方向に延伸する複数のベースラインを上記各列において列方向に沿って所定画素ずつ移動させたときの、当該各ベースラインにおける移動方向の端部と、当該端部を通り当該各ベースラインの延伸方向に直交する行上に存在する左エッジまたは右エッジのうち当該端部から最も近いエッジとの距離であるデルタ値を、ベースライン毎かつ上記各ベースラインを上記所定画素ずつ移動させる毎に算出するデルタ値算出工程と、上記デルタ値のヒストグラムを上記ベースライン毎に生成するヒストグラム生成工程と、上記各ベースラインに対応する上記ヒストグラムのピーク値を算出するピーク値算出工程と、上記ピーク値算出工程で算出した上記ピーク値に基づいて上記傾き角度を算出する傾き角度算出工程とを含みえ、上記ピーク値算出工程では、長さが最も短いベースラインからベースラインの長さ順に各ベースラインに対応するヒストグラムのピーク値を算出し、2番目以降のベースラインに対応するヒストグラムのピーク値を算出する際、当該ベースラインに対応する上記デルタ値のうち、当該ベースラインの次に短いベースラインについて算出したピーク値に対応するデルタ値を含む所定範囲内のデルタ値のヒストグラムのピーク値を算出し、上記傾き角度算出工程では、長さが最も長いベースラインについて算出した上記ピーク値に対応する上記デルタ値に基づいて上記傾き角度を算出することを特徴とする原稿傾き判定方法。請求項1から6のいずれか1項に記載の原稿傾き判定装置を動作させるプログラムであって、コンピュータを上記各部として機能させるためのプログラム。請求項8に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。しかしながら、特許文献1の技術では、原稿における文書のフォーマットによっては正確な判定が困難な場合がある。また、原稿画像の傾きを判定する際、判定に用いるデータをユーザーが選択する必要があり、ユーザーにとって手間であるという問題もある。本発明は、上記の問題点に鑑みてなされたものであり、その目的は、原稿画像データにおける原稿の傾き角度を、原稿のフォーマットにかかわらず容易に判定することのできる原稿傾き判定装置および原稿傾き判定方法を提供することにある。本発明の原稿傾き判定装置は、上記の課題を解決するために、原稿を読み取って取得した原稿画像データにおける原稿の正規位置に対する傾き角度を判定する原稿傾き判定装置であって、上記原稿画像データは、行方向および列方向にマトリクス状に配列された複数の画素のデータからなり、上記原稿画像データにおける、列方向に延伸する垂直エッジおよび行方向に延伸する水平エッジを検出するエッジ検出部と、上記エッジ検出部の検出結果に基づいて、上記原稿画像データの各行における最も左に位置する垂直エッジを当該各行における左エッジとして検出し、上記各行における最も右に位置する垂直エッジを当該各行における右エッジとして検出し、上記原稿画像データの各列における最も上に位置する水平エッジを当該各列における上エッジとして検出し、上記各列における最も下に位置する水平エッジを当該各列における下エッジとして検出し、上記原稿画像データの各画素または上記原稿画像データにおける互いに重複しない複数の画素群が上記左エッジ、上記右エッジ、上記上エッジ、上記下エッジ、および非エッジのいずれであるかを示すエッジデータを生成するエッジデータ生成部と、互いに異なる長さで行方向に延伸する複数のベースラインを上記各行において行方向に沿って所定画素ずつ移動させたときの、当該各ベースラインにおける移動方向の端部と、当該端部を通り当該各ベースラインの延伸方向に直交する列上に存在する上エッジまたは下エッジのうち当該端部から最も近いエッジとの距離であるデルタ値、および、互いに異なる長さで列方向に延伸する複数のベースラインを上記各列において列方向に沿って所定画素ずつ移動させたときの、当該各ベースラインにおける移動方向の端部と、当該端部を通り当該各ベースラインの延伸方向に直交する行上に存在する左エッジまたは右エッジのうち当該端部から最も近いエッジとの距離であるデルタ値を、ベースライン毎かつ上記各ベースラインを上記所定画素ずつ移動させる毎に算出するデルタ値算出部と、上記デルタ値のヒストグラムを上記ベースライン毎に生成するヒストグラム生成部と、上記各ベースラインに対応する上記ヒストグラムのピーク値を算出するピーク値算出部と、上記ピーク値算出部の算出した上記ピーク値に基づいて上記傾き角度を算出する傾き角度算出部とを備え、上記ピーク値算出部は、長さが最も短いベースラインからベースラインの長さ順に各ベースラインに対応するヒストグラムのピーク値を算出し、2番目以降のベースラインに対応するヒストグラムのピーク値を算出する際、当該ベースラインに対応する上記デルタ値のうち、当該ベースラインの次に短いベースラインについて算出したピーク値に対応するデルタ値を含む所定範囲内のデルタ値のヒストグラムのピーク値を算出し、上記傾き角度算出部は、長さが最も長いベースラインについて算出した上記ピーク値に対応する上記デルタ値に基づいて上記傾き角度を算出することを特徴としている。また、本発明の原稿傾き判定方法は、原稿を読み取って取得した原稿画像データにおける原稿の正規位置に対する傾き角度を判定する原稿傾き判定方法であって、上記原稿画像データは、行方向および列方向にマトリクス状に配列された複数の画素のデータからなり、上記原稿画像データにおける、列方向に延伸する垂直エッジおよび行方向に延伸する水平エッジを検出するエッジ検出工程と、上記エッジ検出工程の検出結果に基づいて、上記原稿画像データの各行における最も左に位置する垂直エッジを当該各行における左エッジ、上記各行における最も右に位置する垂直エッジを当該各行における右エッジ、上記原稿画像データの各列における最も上に位置する水平エッジを当該各列における上エッジ、上記各列における最も下に位置する水平エッジを当該各列における下エッジとして検出し、上記原稿画像データの各画素または上記原稿画像データにおける互いに重複しない複数の画素群が上記左エッジ、上記右エッジ、上記上エッジ、上記下エッジ、および非エッジのいずれであるかを示すエッジデータを生成するエッジデータ生成工程と、互いに異なる長さで行方向に延伸する複数のベースラインを上記各行において行方向に沿って所定画素ずつ移動させたときの、当該各ベースラインにおける移動方向の端部と、当該端部を通り当該各ベースラインの延伸方向に直交する列上に存在する上エッジまたは下エッジのうち当該端部から最も近いエッジとの距離であるデルタ値、および、互いに異なる長さで列方向に延伸する複数のベースラインを上記各列において列方向に沿って所定画素ずつ移動させたときの、当該各ベースラインにおける移動方向の端部と、当該端部を通り当該各ベースラインの延伸方向に直交する行上に存在する左エッジまたは右エッジのうち当該端部から最も近いエッジとの距離であるデルタ値を、ベースライン毎かつ上記各ベースラインを上記所定画素ずつ移動させる毎に算出するデルタ値算出工程と、上記デルタ値のヒストグラムを上記ベースライン毎に生成するヒストグラム生成工程と、上記各ベースラインに対応する上記ヒストグラムのピーク値を算出するピーク値算出工程と、上記ピーク値算出工程で算出した上記ピーク値に基づいて上記傾き角度を算出する傾き角度算出工程とを含みえ、上記ピーク値算出工程では、長さが最も短いベースラインからベースラインの長さ順に各ベースラインに対応するヒストグラムのピーク値を算出し、2番目以降のベースラインに対応するヒストグラムのピーク値を算出する際、当該ベースラインに対応する上記デルタ値のうち、当該ベースラインの次に短いベースラインについて算出したピーク値に対応するデルタ値を含む所定範囲内のデルタ値のヒストグラムのピーク値を算出し、上記傾き角度算出工程では、長さが最も長いベースラインについて算出した上記ピーク値に対応する上記デルタ値に基づいて上記傾き角度を算出することを特徴としている。上記原稿傾き判定装置および上記原稿傾き判定方法によれば、長さが最も短いベースラインからベースラインの長さ順に各ベースラインに対応する上記ヒストグラムのピーク値を算出し、2番目以降のベースラインに対応するヒストグラムのピーク値を算出する際、当該ベースラインに対応する上記デルタ値のうち、当該ベースラインの次に短いベースラインについて算出されたピーク値に対応するデルタ値を含む所定範囲内のデルタ値のヒストグラムのピーク値を算出し、長さが最も長いベースラインについて算出した上記ピーク値に対応する上記デルタ値に基づいて上記傾き角度を算出する。これにより、原稿画像データにおける原稿の傾き角度を、原稿のフォーマットにかかわらず容易に判定することができる。また、傾き角度に対応するピーク値を長さの短いベースラインから順に順次絞り込んでいくことができるので、傾き角度を精度よく算出することができる。また、2番目以降のベースラインについては上記所定範囲内のデルタ値のヒストグラムのピーク値を算出するだけでよいので、全てのデルタ値についてヒストグラムのピーク値を算出する場合に比べて演算量を低減し、処理速度を向上させることができる。また、上記エッジデータ生成部は、上記原稿画像データを行方向k画素kは2以上の整数×列方向1画素のサイズからなる互いに重複しない複数の水平片に分割し、当該各水平片に含まれる各画素の画素値の平均値を当該水平片の集約尺度として算出し、上記各水平片と当該各水平片の集約尺度とを対応付けた水平片データを生成する水平片エッジ集約尺度算出部と、上記原稿画像データを行方向1画素×列方向k画素のサイズからなる互いに重複しない複数の垂直片に分割し、当該各垂直片に含まれる各画素の画素値の平均値を当該垂直片の集約尺度として算出し、上記各垂直片と当該各垂直片の集約尺度とを対応付けた垂直片データを生成する垂直片エッジ集約尺度算出部と、上記水平片データに基づいて水平エッジデータを生成する水平エッジ検出部と、上記垂直片データに基づいて垂直エッジデータを生成する垂直エッジ検出部とを備え、上記水平エッジデータおよび上記垂直エッジデータからなる上記エッジデータを生成し、上記水平エッジ検出部は、上記水平エッジデータと畳み込み行列式[-1,1]Tとの畳み込み演算を行い、この畳み込み演算によって算出される値に対応する回転角度の絶対値が予め設定される水平データ閾値よりも大きい水平片の値をエッジであることを示す値、その他の水平片の値を非エッジであることを示す値にすることで上記水平エッジデータを生成し、上記垂直エッジ検出部は、上記垂直エッジデータと畳み込み行列式[-1,1]との畳み込み演算を行い、この畳込み演算によって算出される値に対応する回転角度の絶対値が予め設定される垂直データ閾値よりも大きい垂直片の値をエッジであることを示す値、その他の垂直片の値を非エッジであることを示す値にすることで上記垂直エッジデータを生成する構成としてもよい。上記の構成によれば、エッジ位置を水平片毎および垂直片毎に算出することにより、画素毎にエッジ位置を算出する場合に比べてノイズの影響を低減することができ、また演算量を低減して処理速度を向上させることができる。また、上記エッジデータ生成部は、上記エッジデータを生成した後、当該エッジデータの生成に用いた原稿画像データにおける上記左エッジ、上記右エッジ、上記上エッジ、および上記下エッジを非エッジに置換した原稿画像データに基づいてエッジデータを生成することにより、複数層のエッジデータを生成し、上記デルタ値算出部は上記各層のエッジデータに基づいて層毎に上記デルタ値を算出し、上記ヒストグラム生成部は上記各層について上記デルタ値のヒストグラムを生成し、上記ピーク値算出部は上記各層についてヒストグラムのピーク値を算出し、上記傾き角度算出部は、上記各層について長さが最も長いベースラインについて算出した上記ピーク値に対応する上記デルタ値に基づいて傾き角度候補を算出し、上記各層について算出した傾き角度候補のうちの1つを上記傾き角度として選択する構成としてもよい。上記の構成によれば、原稿画像データにおける最も外側のエッジに加えて、当該エッジよりも内側に存在するエッジを参照して傾き角度を算出できる。また、上記エッジデータ生成部は、上記エッジ検出部の検出結果に基づいて、各行の垂直エッジのうち最も左に位置する垂直エッジを示す列番号のリストである左リスト、および各行の垂直エッジのうち最も右に位置するエッジを示す列番号のリストである右リストを生成する垂直エッジリスト生成部と、上記エッジ検出部の検出結果に基づいて、各列の水平エッジのうち最も上に位置する水平エッジを示す行番号のリストである上リスト、および各列の水平エッジのうち最も下に位置する水平エッジを示す行番号のリストである下リストを生成する水平エッジリスト生成部とを備え、上記デルタ値算出部は、上記左リスト、上記右リスト、上記上リスト、および上記下リストを用いて上記デルタ値を算出する構成としてもよい。上記の構成によれば、上記リストを用いて上記デルタ値を算出することにより、デルタ値の算出処理を簡略化することができる。また、上記ヒストグラム生成部は、長さが最も短いベースラインからベースラインの長さ順に各ベースラインに対応する上記ヒストグラムを生成し、2番目以降のベースラインに対応するヒストグラムを生成する際、当該ベースラインに対応する上記デルタ値のうち、当該ベースラインの次に短いベースラインについて算出されたピーク値に対応するデルタ値を含む所定範囲内のデルタ値のヒストグラムを生成し、上記所定範囲外のデルタ値についてはヒストグラムを生成しない構成としてもよい。上記の構成によれば、全てのデルタ値についてのヒストグラムを生成する場合に比べて、ヒストグラムの生成処理を簡略化することができる。また、上記原稿画像データの解像度を所定の解像度に変換する解像度変換処理を行う解像度変換部と、上記原稿画像データをカラー画像データからグレースケール画像データに変換する色変換処理を行う色変換部とを備え、上記エッジ検出部は、上記解像度変換処理および上記色変換処理が施された後の原稿画像データに基づいて上記垂直エッジおよび上記水平エッジを検出する構成としてもよい。上記の構成によれば、原稿傾き判定装置に備えられる各部が、当該各部の特性に応じた所定の解像度の原稿画像データに基づいて処理することができ、またグレースケール画像データに基づいて処理することができるので、処理速度を向上させることができる。なお、上記原稿傾き判定装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記各部として動作させることにより、上記原稿傾き判定装置をコンピュータにて実現させるプログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に含まれる。以上のように、本発明の原稿傾き判定装置および原稿傾き判定方法は、長さが最も短いベースラインからベースラインの長さ順に各ベースラインに対応する上記ヒストグラムのピーク値を算出し、2番目以降のベースラインに対応するヒストグラムのピーク値を算出する際、当該ベースラインに対応する上記デルタ値のうち、当該ベースラインの次に短いベースラインについて算出されたピーク値に対応するデルタ値を含む所定範囲内のデルタ値のヒストグラムのピーク値を算出し、長さが最も長いベースラインについて算出した上記ピーク値に対応する上記デルタ値に基づいて上記傾き角度を算出する。それゆえ、原稿画像データにおける原稿の傾き角度を、原稿のフォーマットにかかわらず容易に判定することができる。本発明の一実施形態について、図面を参照しながら説明する。なお、図面全体を通して、同様の機能を有する部材には同じ符号を付している。図1は本実施形態にかかる原稿傾き判定装置2の概略構成を示す説明図である。この図に示すように、原稿傾き判定装置2は、画像取得部4、画像前処理部解像度変換部、色変換部6、エッジデータ生成部8、層処理部10、および回転評価部傾き角度算出部12を備えている。なお、原稿傾き判定装置2は、例えば、スキャナ画像読取装置、多機能周辺機器MFP;multifunctionperipheral、複合機、コピー機などの画像処理装置に備えられるものであってもよく、他の画像処理装置に備えられるものであってもよい。また、原稿傾き判定装置2は、パーソナルコンピュータ等の演算装置内に備えられていてもよい。また、原稿傾き判定装置2の各部は、複数の装置例えば近接配置された複数の装置、あるいは遠隔配置された複数の装置に分散して配置されていてもよい。また、原稿傾き判定装置2は、コンピュータ読み取り可能なプログラムあるいはそれを記録した記録媒体と、当該プログラムに応じた処理を実行するコンピュータ装置とによって実現されるものであってもよい。画像取得部4は、入力画像データ5を取得し、取得した入力画像データ5を画像前処理部6に出力する。画像前処理部6は、入力画像データ5に正規化処理を行い、正規化処理後の画像データをエッジデータ生成部8に出力する。なお、画像取得部4が、正規化処理された入力画像データを取得してもよく、その場合には画像前処理部6が画像取得部4から入力される正規化処理後の入力画像データをそのままエッジデータ生成部8に出力するようにしてもよい。具体的には、画像前処理部6は、解像度変換部ダウンサンプラーおよび色変換部を備えているいずれも図示せず。上記解像度変換部は、例えば、高解像度の入力画像データ例えば300dpidotsperinchをより低い解像度例えば75dpiに解像度変換ダウンサンプリングする。入力画像データの解像度をダウンサンプリングすることにより、原稿傾き判定装置2の演算速度を向上させることができる。また、上記色変換部は、例えば、ダウンサンプリングされた画像データを、必要に応じて、グレースケールデータに変換する。例えば、上記色変換部は、RGB赤,緑,青からなる入力画像データ5を従来から公知の変換方法を用いてRGBからYへ変換するものであってもよく、他の色空間の入力画像データをグレースケールに変換するものであってもよい。なお、グレースケール値の上限値を定めてもよい。また、グレースケール値の閾値を設定し、この閾値を超えるグレースケール値については上記閾値に設定するようにしてもよい。例えば、8ビットのグレースケール値の場合、上記閾値は、典型的には235に設定される。なお、まず入力画像データ5をグレースケールのデータに変換し、その後に解像度変換ダウンサンプリングを行うようにしてもよい。また、解像度変換および色変換は必須ではなく、省略してもよい。本実施形態では、解像度変換ダウンサンプリングおよび色変換が行われた入力画像データを入力画像データ5の正規化画像データ7と称する。エッジデータエッジバッファ生成部8は、画像前処理部6から入力される正規化された画像データに基づいて水平エッジデータ水平エッジバッファおよび垂直エッジデータ垂直エッジバッファからなるエッジデータ9を生成し、層処理部10に出力する。図2は、エッジデータ生成部8の構成を示す説明図である。この図に示すように、エッジデータ生成部8は、垂直片エッジ集約尺度算出部20と水平片エッジ集約尺度算出部24とを備えている。垂直片エッジ集約尺度算出部20は、垂直片エッジ集約尺度例えば垂直片に含まれる画素値の平均値を算出し、その算出結果に基づいて垂直片エッジデータ垂直片エッジバッファ21を生成して垂直エッジ検知部22に出力する。水平片エッジ集約尺度算出部24は、水平片エッジ集約尺度例えば水平片に含まれる画素値の平均値を算出し、その算出結果に基づいて水平片エッジデータ水平片エッジバッファ25を生成して水平エッジ検知部26に出力する。なお、水平片エッジとは水平方向に延伸する一片の帯状の領域短冊領域のエッジであり、垂直片エッジとは垂直方向に延伸する一片の帯状の領域短冊領域のエッジである。図3は、水平片エッジ集約尺度算出部24における水平片エッジデータの作成方法を示す説明図である。図3に示すように、水平片エッジ集約尺度算出部24は、正規化画像データ30を互いに重複しない1×k個kは2以上の整数の画素からなるブロック水平片、画素群に分割する。図3では、分割されたブロックのうちの7個を符号31~37で示している。また、水平片エッジ集約尺度算出部24は、各水平片について当該水平片の集約尺度を算出する。また、水平片エッジ集約尺度算出部24は、各水平片と当該各水平片に対応する集約尺度とを対応付けた水平片エッジデータ40を生成して記憶する。例えば、図3に示すように、水平片31~37は、当該水平片31~37に対応する集約尺度と対応付けられたデータ41~47として水平片エッジデータ40に含められる。水平片の幅上記kは、典型的には8画素、16画素、あるいは32画素に設定される。また、集約尺度としては、例えば水平片内の画素値の平均値が用いられる。図4は、垂直片エッジ集約尺度算出部20における垂直片エッジデータの作成方法を示す説明図である。図4に示すように、垂直片エッジ集約尺度算出部20は、正規化画像データ30を互いに重複しないk×1個の画素からなるブロック垂直片、画素群に分割する。図4では、分割されたブロックのうちの5個を符号51~55で示している。また、垂直片エッジ集約尺度算出部20は、各垂直片について当該垂直片の集約尺度を算出する。また、垂直片エッジ集約尺度算出部20は、各垂直片と当該各垂直片に対応する集約尺度とを対応付けた垂直片エッジデータ50を生成して記憶する。例えば、図4に示すように、垂直片51~55は、当該垂直片51~55に対応する集約尺度と対応付けられたデータ56~60として垂直片エッジデータ50に含められる。垂直片の高さ上記kは、典型的には8画素、16画素、あるいは32画素に設定される。また、集約尺度としては、例えば垂直片内の画素値の平均値が用いられる。図2に示したように、垂直片エッジ集約尺度算出部20によって生成された垂直片エッジデータは垂直エッジ検出部22に入力され、水平片エッジ集約尺度算出部24によって生成された水平片エッジデータは水平エッジ検出部26に入力される。垂直エッジ検出部22および水平エッジ検出部26は、例えば局所差分演算や閾値演算を行うものであってもよい。垂直エッジ検出部22は、垂直片エッジデータ21に基づいて各垂直片がエッジであるか否かを示す垂直エッジデータ23を生成する。また、水平エッジ検出部26は、水平片エッジデータ25に基づいて各水平片がエッジであるか否かを示す水平エッジデータ27を生成する。典型的には、垂直エッジ検出部22は、以下の数式に基づいて算出されるEVr,cを垂直エッジデータ23として算出する。また、水平エッジ検出部26は、以下の数式に基づいて算出されるEHr,cを水平エッジデータ27として算出する。ここで、BVr,cは垂直片エッジデータを示しており、BHr,cはおよび水平片エッジデータを示している。また、r,cは、水平片エッジデータ、水平エッジデータ、垂直片エッジデータ、および垂直エッジデータにおける行および列の位置を示している。また、DVは垂直畳み込み行列式[-1,1]を示しており、DHは水平畳み込み行列式[-1,1]Tを示している。また、θVは予め設定される垂直バッファ閾値を示しており、θHは予め設定される水平バッファ閾値を示している。また、は畳み込み演算を示している。なお、θV=θHであってもよい。本実施形態ではθV=θH=3としている。層処理部10は、エッジデータ9垂直エッジデータおよび水平エッジデータに基づいて、後述する各層1または複数の層のエッジデータについてそれぞれ回転ベクトル回転ベクトル推定値11を算出し、算出した回転ベクトル群各層についての回転ベクトル11のグループを回転評価部12に出力する。回転評価部12は、層処理部10から入力された少なくとも1つの層に関連付けられた1または複数の回転ベクトル11の中から、1つの回転ベクトル回転ベクトル推定値13を選択する。また、回転評価部12は、選択した回転ベクトル13を原稿傾き判定装置2あるいは他の装置における更なる処理を行う処理部図示せずに出力する。なお、上記回転ベクトルは傾き角度の特性を示すものである。本実施形態では、回転ベクトルとして、ベースライン値ベースラインの長さβと後述するデルタ値Δとを用いて定義される回転ベクトル傾き角度θ=arctanΔ/βを用いる。図1に示したように、層処理部10は、少なくとも1つの層について回転ベクトル11を算出する。垂直エッジデータ垂直エッジバッファの第1の層は、各行を左から走査したときに初めに検出されるゼロでないエントリーエッジの位置左エッジ、および各行を右から走査したときに初めに検出されるゼロでないエントリーエッジの位置右エッジである。エッジが含まれない行に対して当該行がエッジを含まない行であることを示す非エッジマーカーを関連付けてもよい。水平エッジデータ水平エッジバッファの第1の層は、各列を上から走査したときに初めに検出されるゼロでないエントリーエッジの位置上エッジ、および各列を下から走査したときに初めに検出されるゼロでないエントリーエッジの位置下エッジである。エッジが含まれない列に対して当該列がエッジを含まない列であることを示す非エッジマーカーを関連付けてもよい。したがって、上記第1の層は、画像座標を規定する2つの直交方向垂直方向および水平方向についての最も外側のエッジ、すなわち上端エッジ上エッジ、下端エッジ下エッジ、左端エッジ左エッジ、および右端エッジ右エッジとみなすことができる。2層目以降の層は、その前の層に対応する全ての左エッジ、右エッジ、上エッジ、および下エッジををゼロ非エッジに置換することによって決定される。図5は、層処理部10の典型的な構成例を示す説明図である。この図に示すように、層処理部10は、垂直左右エッジ検出部垂直立上り立下りエッジ検出部、エッジ検出部72、垂直エッジリスト生成部エッジデータ生成部74、水平上下エッジ検出部水平立上り立下りエッジ検出部、エッジ検出部76、水平エッジリスト生成部エッジデータ生成部78、ベースライン処理部80、垂直層更新部84、水平層更新部86、および回転ベクトル選択部傾き角度算出部82を備えている。垂直左右エッジ検出部72には、Λ=[λ1,λ2,...,λM]で示される層セット内におけるM個Mは1以上の整数の層λiの各層について、現在の層現在の処理対象とする層に対応する垂直エッジデータ70が入力される。また、水平上下エッジ検出部76には、現在の層現在の処理対象とする層に対応する水平エッジデータ71が入力される。なお、垂直立上りエッジおよび垂直立下りエッジは、それぞれ左エッジおよび右エッジに対応しており、水平立上りエッジおよび水平立下りエッジは、それぞれ上エッジおよび下エッジに対応している。垂直左右エッジ検出部72は、現在の層の垂直エッジデータ70における各行を行毎に左から右および右から左の各方向に走査することにより、当該現在の層の垂直エッジデータ70における立上りエッジ左エッジおよび立下りエッジ右エッジのエッジ位置73を検出する。水平上下エッジ検出部76は、現在の層の水平エッジデータ71における各列を列毎に上から下および下から上の各方向に走査することにより、当該現在の層の水平エッジデータ71における立上りエッジ上エッジおよび立下りエッジ下エッジのエッジ位置77を検出する。また、垂直左右エッジ検出部72は検出したエッジ位置73を垂直エッジリスト生成部74および垂直層更新部84に出力し、水平上下エッジ検出部76は検出したエッジ位置77を水平エッジリスト生成部78および水平層更新部86に出力する。典型的な層セットは、Λ1=[1]、Λ2=[1,3]、および、Λ3=[1,3,5]を含む。垂直エッジリスト生成部74は、左リストおよび右リストを含むエッジリスト75を生成してベースライン処理部80に出力する。左リストは各行を左から走査したときに最初に出現するエッジの列番号行内にエッジが存在しない場合には無効エッジ番号を示したリストであり、右リストは各行を右から走査したときに最初に出現するエッジの列番号行内にエッジが存在しない場合には無効エッジ番号を示したリストである。水平エッジリスト生成部78は、上リストおよび下リストを含むエッジリスト79を生成してベースライン処理部80に出力する。上リストは各列を上から走査したときに最初に出現するエッジの行番号列内にエッジが存在しない場合には無効エッジ番号を示したリストであり、下リストは各列を下から走査したときに最初に出現するエッジの行番号列内にエッジが存在しない場合には無効エッジ番号を示したリストである。ベースライン処理部80は、B=[β1,β2,...,βN]で示されるベースラインセットBに含まれる各ベースラインβiについて、回転角度候補を算出して回転ベクトル選択部82に出力する。典型的なベースラインセットBはB=[32,64,128,256,512,576]、すなわちβ1=32画素、β2=64画素、β3=128画素、β4=256画素、β5=512画素、β6=576画素であり、この場合、傾き角度を0.1°程度の精度で検出できる。なお、各ベースラインの長さを水平片の長さ上記kの整数倍に設定してもよい。図6は、ベースライン処理部80の構成を示す説明図である。この図に示すように、ベースライン処理部80は、デルタ値算出部90、デルタ値ヒストグラム生成部ヒストグラム生成部92、モード検出部ピーク値算出部94、回転ベクトル算出部傾き角度算出部96、および絞込範囲算出部98を備えている。デルタ値算出部制限デルタ値算出部90には、現在の層の垂直エッジリスト75左リストおよび右リスト、現在の層の水平エッジリスト79上リストおよび下リスト、および現在のベースライン88が入力される。デルタ値算出部90は、現在の立上がり-立下がりの組み合わせについての制限されたデルタ値91を算出する。制限されたという用語は、角度推定値が区間[-45°,45°]の範囲内に制限されることを示している。ベースラインは回転角に関連付けられた正接ベクトルのx成分と考えられ、算出されたデルタ値はこの正接ベクトルのy成分と考えられる。デルタ値は局所的なベースラインからの局所的な変位であってもよい。デルタ値算出部90は、現在のベースライン値を用いて、各エッジリスト左エッジリスト左リスト、右エッジリスト右リスト、上エッジリスト上リスト、および下エッジリスト下リストをそれぞれ当該ベースラインの延伸方向例えば水平方向に1画素ずつあるいは所定画素ずつ例えば水平片の長さ上記kに相当する画素ずつ走査する。非無効エッジ座標有効エッジに遭遇すると、エッジリストにおける現在のベースラインのオフセット位置ベースラインに直交する直線上の位置に有効エッジが存在しているかどうかが判定される。その位置に有効エッジが存在している場合、その座標で示された差当該有効エッジと現在のベースラインとの距離が局所的なデルタ値とされる。すなわち、有効エッジが検出された座標から現在のベースラインの位置に対応する座標を減算する。現在のベースラインにおける両端部のいずれかにおいて無効エッジ番号に遭遇した場合、その位置ではデルタ値は算出されない。図7はデルタ値の算出方法を示す説明図であり、水平エッジデータの一部100を示している。図7における灰色の画素例えば符号101は非エッジ画素を示しており、白色の画素例えば符号102はエッジ画素を示している。水平エッジデータに対応するエッジリスト水平エッジリストは、エッジが配置されている行を各列について挙げている。符号104、108で示される長さの現在のベースラインについて、エッジ位置103に対応するエッジリストエントリーが検査される場合、現在のベースライン104に対応するオフセットにおけるエッジリストエントリーが検査され、このオフセットに有効エッジが存在するかどうかが判定される。このオフセットにおけるエッジリスト内のエントリーは、エッジ位置105に対応し、デルタ値106は、これらの対応するエッジリストエントリーの間の相対差を検査することによって判定される。同様に、エッジ位置107に対応するエッジリストエントリーが検査される時は、現在のベースライン108に対応するオフセットにおけるエッジリストエントリーが検査され、このオフセットに有効エッジが存在するかどうかが判定される。このオフセットにおけるエッジリスト内のエントリーはエッジ位置109に対応し、デルタ値106はこれらの対応するエッジリストエントリーの間の相対差を検査することによって判定される。局所的なデルタ値が現在のベースラインよりも大きい場合、角度の大きさは45°よりも大きいため、折り畳み演算foldingoperationが行われる。図8は折り畳み演算の方法を示す説明図である。黒い実線110は、エッジデータこの図に示す例では水平エッジデータにおけるエッジ位置画像データの座標系における位置を示している。例えば、位置112のエッジ点を検査する場合、現在のベースライン113に直交するオフセット位置にエッジが存在しているか否かを判定する。この図に示す例の場合、オフセット距離Δ1符号115の位置にエッジ点114が存在する。また、オフセット距離Δ1符号115は現在のベースライン113の長さよりも短いので、オフセット距離Δ1符号115が記録される。一方、位置116のエッジ点を検査する場合、エッジ点118がベースライン117からオフセット距離Δ2符号119の位置に存在している。ところが、このオフセット距離Δ2符号119の長さは現在のベースライン117の長さよりも長い。このため、余接コタンジェントは[-45°,45°]の間に制限された回転角の代表値とされる。オフセット値を現在のベースライン117に関連付けるために、オフセット値Δ2符号119をベースライン117の長さに対応する長さ120に応じて再設定し、オフセット値Δ2’符号120が記録される。三角形の相似を利用することにより、Δ2’はΔ2’=-β2/Δ2を演算することで容易に算出できる。ここで、βは現在のベースラインの長さである。Δ2’符号121の正負を反転させることによって現在のベースライン117に関連付けられるデルタ値に対応するオフセット値123が求められる。このようにして、図8に示したように、エッジ点118のオフセット値デルタ値Δ2を制限範囲内の回転角をもたらすオフセット値デルタ値Δ2’に変換する折り畳み処理が行われる。なお、図7および図8では、水平方向に延伸するベースラインを水平方向に走査して各エッジ点に対応するデルタ値を算出する場合について説明したが、垂直方向に延伸するベースラインを垂直方向に走査する場合についても略同様の処理により各エッジ点に対応するデルタ値を算出することができる。図6に示したように、4つのエッジリストのそれぞれを処理することによって求められたデルタ値群91は、デルタ値ヒストグラム生成部92に入力される。デルタ値ヒストグラム生成部92は、デルタ値ヒストグラム93を生成してモード検出部94に出力する。デルタ値ヒストグラム93は2βilビンを含む。ここで、βiは現在のベースラインの長さであり、ビンは整数の閉区間[-βi,βi]にマップされる。モード検出部94は、ビン番号の下境界-上境界対[lbi,ubi]で示される現在の範囲現在の絞込み範囲89内のピーク値を算出する。ピーク値の算出方法としては、当該技術分野において従来から公知の方法を用いることができる。このピーク値は、制限されたモード95と呼ばれ、例えば、最大値を有する現在の範囲89内のビン番号を算出することによって算出可能である。なお、ピーク値の算出は、長さの短いベースラインからベースラインの長さ順に行う。また、第1のベースライン最も長さが短いベースラインについては上記ヒストグラムの全体をピーク値の算出範囲に含める。その後、次のベースラインについてのピーク値を算出するヒストグラムの範囲は、現在のベースラインについて算出したピーク値回転ベクトル97によって制限される。制限されたモード95は回転ベクトル算出部96に入力される。回転ベクトル算出部96は、現在のベースライン88に関連付けられた回転ベクトル97を算出する。回転ベクトル97は[βi,Δi]で示される。ここで、Δi=bincentersilbimdindexi-1である。また、iはベースラインを示す数字ベースラインの繰り返しを示す数字であり、mdindexiはモード番号であり、bincentersiはヒストグラムビンの中央値を置換値にマップした値である。算出された回転ベクトル97は、現在のベースラインと対応付けて記録されるとともに、次のベースラインの絞込範囲を算出するために絞込範囲算出部98に出力される。絞込範囲算出部98は、次のベースラインi1のための、次の絞込み範囲99を算出する。次の絞込み範囲99の中央のビン番号eci1は、eci1=sΔiβi11により、現在のデルタ推定値Δiを次のヒストグラムの範囲内にマッピングすることによって算出される。ここで、s=βi1/βiである。また、本実施形態では、絞込み範囲を、lbi1=maxeci1-n,mnindi1、および、ubi1=mineci1n,mxindi1によって算出する。ここで、mnindi1およびmxindi1は、それぞれ、次の繰り返しのヒストグムの範囲の最初のビンおよび最後のビンである。また、max関数およびmin関数は、絞込み範囲を有効ヒストグラム範囲に制限する。本実施形態ではn=2である。このように、第1のベースライン最も長さが短いベースラインについてはヒストグラム全体におけるピーク値を算出する。また、2番目以降のベースラインについては、当該ベースラインに対応するヒストグラムのうち、当該ベースラインの次に短いベースラインについて算出したピーク値に対応するデルタ値を含む所定範囲本実施形態では2βilビン内のヒストグラムのピーク値を算出する。回転ベクトル選択部82は、図5に示したように、現在の層について全ベースラインに基づいて算出した回転ベクトル群回転ベクトル候補群81の中から、現在の層に最も適合する回転ベクトル現在の層の回転ベクトル候補83を選択する。典型的には、最も正確、かつ最も可能性の高い推定値を選択する。例えば、回転ベクトル選択部82は、全てのベースラインについての回転ベクトルの平均値を算出する。そして、当該平均値と最終の回転ベクトル最も正確な回転ベクトルの推定値との差が閾値よりも小さい場合には最終の回転ベクトルを最も良好な回転ベクトルとして選択し、それ以外の場合には上記平均値を最も良好な回転ベクトルとして選択する。なお、回転ベクトル選択部82が、最終の回転ベクトルを現在の層に対応する最も正確な回転ベクトル候補83として選択するようにしてもよい。また、回転ベクトル選択部82が、上記回転ベクトルのモードを現在の層に対応する回転ベクトル候補83として選択するようにしてもよい。また、回転ベクトル選択部82が、上記各回転ベクトルの加重平均値例えば対応するベースラインの長さに応じた重み加重を各回転ベクトルに加えて算出した加重平均値などを現在の層に対応する回転ベクトル候補83として選択するようにしてもよい。回転ベクトル選択部82によって選択された各層についての回転ベクトル83からなる回転ベクトル群11は回転評価部12に出力される。垂直層更新部84および水平層更新部86は、層セットにおける現在の層および現在の層と次の層までの間に介在する層を無効化し、次の層次に現在の層トする層の垂直エッジデータ85を垂直左右エッジ検出部72に入力させ、次の層次に現在の層トする層における水平エッジデータ87を水平上下エッジ検出部76に入力させる。層処理部10は、次の層の垂直エッジデータ85および次の層における水平エッジデータ87に対して、前回現在の層とした層において垂直エッジデータ70および水平エッジデータ71に対して行った処理と同様の処理を行う。回転評価部12は、各層の回転ベクトル回転ベクトル推定値83からなる回転ベクトル群11に基づいて最終的な回転ベクトル傾き角度13を算出する。例えば、次式によって各層の回転ベクトル11の加重平均値が回転ベクトル13として算出される。ここで、wλ=e1/λであり、rλは層セットΛ内の層λに対応する回転ベクトルである。図9は、上述した原稿傾き判定装置2の変形例である原稿傾き判定装置140の構成を示す説明図である。この原稿傾き判定装置140では、垂直エッジデータおよび水平エッジデータを直接処理することにより傾き角度を判定する。なお、この原稿傾き判定装置140は、例えば、スキャナ画像読取装置、多機能周辺機器MFP;multifunctionperipheral、複合機、コピー機などの画像処理装置に備えられるものであってもよく、他の画像処理装置に備えられるものであってもよい。また、原稿傾き判定装置2は、パーソナルコンピュータ等の演算装置内に備えられていてもよい。また、原稿傾き判定装置2の各部は、複数の装置例えば近接配置された複数の装置、あるいは遠隔配置された複数の装置に分散して配置されていてもよい。また、原稿傾き判定装置2は、コンピュータ読み取り可能なプログラムあるいはそれを記録した記録媒体と、当該プログラムに応じた処理を実行するコンピュータ装置とによって実現されるものであってもよい。画像取得部142は、入力画像データ141を取得し、取得した入力画像データ141を画像前処理部144に出力する。画像前処理部144は、入力画像データ141に正規化処理を行い、正規化処理後の画像データをエッジデータ生成部148に出力する。なお、画像取得部142が、正規化処理された入力画像データを取得してもよく、その場合には画像前処理部144が画像取得部142から入力される正規化処理後の入力画像データをそのままエッジデータ生成部148に出力するようにしてもよい。具体的には、画像前処理部144は、解像度変換部ダウンサンプラーおよび色変換部を含んでいてよい。上記解像度変換部は、例えば、高解像度の入力画像データ例えば300dpidotsperinchをより低い解像度例えば75dpiに解像度変換ダウンサンプリングする。入力画像データの解像度をダウンサンプリングすることは、原稿傾き判定装置140の演算能力演算速度に影響する。また、上記色変換部は、例えば、ダウンサンプリングされた画像データを、必要に応じて、グレースケールデータに変換する。例えば、上記色変換部は、RGB赤,緑,青からなる入力画像データ141を従来から公知の変換方法を用いてRGBからYへ変換するものであってもよく、他の色空間の入力画像データをグレースケールに変換するものであってもよい。なお、グレースケール値の上限値を定めてもよい。また、グレースケール値の閾値を設定し、この閾値を超えるグレースケール値については上記閾値に設定するようにしてもよい。例えば、8ビットのグレースケール値の場合、上記閾値は、典型的には235に設定される。なお、まず入力画像データ141をグレースケールのデータに変換し、その後に解像度変換ダウンサンプリングを行うようにしてもよい。本実施形態では、解像度変換ダウンサンプリングおよび色変換が行われた入力画像データを入力画像データ141の正規化画像データ7と称する。エッジデータエッジバッファ生成部148は、図1に示したエッジデータ生成部8と同様、画像前処理部144から入力される正規化された画像データに基づいて、水平エッジデータ水平エッジバッファおよび垂直エッジデータ垂直エッジバッファを含むエッジデータ150を生成し、ヒストグラム生成部152に出力する。なお、エッジデータ生成部148は、図1に示したエッジデータ生成部8と同様、垂直片エッジデータ垂直片エッジバッファを生成する垂直片エッジ集約尺度算出部20と水平片エッジデータ水平片エッジバッファを生成する水平片エッジ集約尺度算出部24とを備え、垂直片エッジデータおよび水平片エッジデータに基づいてエッジデータ150を生成する構成であってもよい。ヒストグラム生成部152は、長さ順に配列されたベースラインを用いて、エッジデータ150における各エッジ点について、累進的に制限されるヒストグラムベースライン毎にピーク値を算出するデルタ値の範囲が順次制限されるヒストグラムにおけるエントリーを演算することにより、回転ベクトル154を推定する。また、ヒストグラム生成部152は、推定した回転ベクトル154を原稿傾き判定装置140あるいは他の装置における更なる処理を行う処理部図示せずに出力する。回転ベクトルは傾き角度の特性を示すものである。本実施形態では、回転ベクトルとして、ベースライン値βとデルタ値Δとを用いて定義される回転ベクトル傾き角度θ=arctanΔ/βを用いる。図10はヒストグラム生成部152における処理を示す説明図である。ヒストグラム生成部152は、B=[β1,β2,...,βN]で示されるベースラインセットの長さセットBに含まれる各ベースラインの長さβiについて、エッジデータにおける各エッジのデルタ値のヒストグラムを生成する。典型的なベースラインセットBはB=[32,64,128,256,512,576]であり、この場合、傾き角度を0.1°程度の精度で検出できる。各ベースラインについて一定サイズのヒストグラムを生成あるいは選択して用いてよく、各ベースラインについての一定サイズのデルタ値のヒストグラムを記録するために共通のメモリーを用いてもよい。例えば、デルタ値の各ヒストグラムは2β11ビンを含んでいてもよい。ここで、β1は最も短いベースライン、または最初のベースラインの長さであり、ビンは整数の閉区間[-β1,β1]にマップされる。また、最初の繰り返し最初のベースラインについてのヒストグラムは推定区間[-45°,45°]を対象としていてもよい。まず、ヒストグラム生成部152は、ヒストグラムサイズを初期化し170、ヒストグラム中心オフセットを0に初期化する172。次に、ヒストグラム生成部152は、未処理のベースラインが残っているか否かを判断する174。ベースラインセットに含まれる全てのベースラインの処理が完了している場合175、ヒストグラム生成部152は、ヒストグラム生成処理を終了し176、直近に算出した回転デルタ値を用いて回転ベクトルを判定する。ベースラインセットに含まれるベースラインの中に未処理のベースラインが残っている場合177、ヒストグラム生成部152は、前回のヒストグラムを消去し178、ベースラインセット内における次のベースライン次に現在のベースラインとするベースラインに関連付けられたヒストグラムを生成する。ヒストグラムを消去する際178、各ビン内の蓄積カウントデルタ値の度数を0に設定する。次に、ヒストグラム生成部152は、エッジデータ中に、現在のベースラインについて未処理のエッジが残っているか否かを判断する180。未処理のエッジが残っている場合181、ヒストグラム生成部152は、未処理のエッジについて現在のベースラインに対応するデルタ値を算出する182。デルタ値の算出方法としては、図1を参照して説明した方法と同様の方法を用いることができる。次に、ヒストグラム生成部152は、ステップ182で算出したデルタ値を、現在のヒストグラム中心オフセットヒストグラムの中心に対するオフセット量に基づいて調整する184。なお、最初のヒストグラム最初のベースラインに対応するヒストグラムについては当該ヒストグラムの中心がゼロに設定されるので調整の必要はない。2番目以降のヒストグラムについては、後述するステップ190において、各ベースラインについての繰り返し演算各ベースラインについてのデルタ値の算出処理の後、次のベースラインの繰り返し演算のためのヒストグラム中心オフセットが、現在ベースラインについて算出された回転デルタ値に基づいて更新される。具体的には、算出されたデルタ値をΔmeasured、調整後のデルタ値をΔadjusted、現在のヒストグラムの中心オフセット値をCenterOffsetとすると、調整後のデルタ値Δadjustedは、Δadjusted=Δmeasured-CenterOffset、により算出される。したがって、ヒストグラムのサイズを一定にすること、およびヒストグラム中心を調整することにより、ベースラインの長さが累積的に増大するデルタ値の制限されたウィンドウを実現できる。ヒストグラム生成部152は、上記調整後のデルタ値を現在のベースラインの長さに関連付けられたヒストグラム内に蓄積し186、ステップ180の処理に戻る。ステップ180において、エッジデータ内の全てのエッジが現在のベースラインにおいて処理されたと判断した場合187、ヒストグラム生成部152は、現在の繰り返し演算現在のベースラインについての回転デルタ値を算出する188。例えば、ヒストグラム生成部152は、グローバルヒストグラムモードを検出し、検出したモードのモード番号をビンの中央値のリストにマッピングし、中央値のオフセットに基づいて調整することにより上記回転デルタ値を算出する。次に、ヒストグラム生成部152は、次の繰り返し次のベースラインのために、ヒストグラム中心オフセットを算出した回転デルタ値に更新する190。したがって、現在の繰り返し現在のベースラインのための回転ベクトルは[βi,Δi]となる。ここで、Δi=bincentersilbimdindexi-1であり、bincentersiはヒストグラムビンの中心を置換値にマッピングするものである。ステップ190の処理の後、ヒストグラム生成部152は、ステップ174の処理に戻る。垂直エッジデータおよび水平エッジデータを直接処理する上記の実施形態について、図11を参照しながらより詳細に説明する。図11は、各ベースラインに対応するヒストグラムの生成方法を示す説明図である。図11におけるヒストグラム210は、長さがβi=8である第1のベースライン200に関連付けられる一定サイズのデルタ値ヒストグラムである。このデルタ値ヒストグラム210は、17個のビン211~227を有している。17個のビン211~227は、整数の区間[-8,8]内のデルタ値に関連付けられており、区間[tan-1-8/8,tan-18/8]=[-45°,45°]の範囲内の回転角傾き角度に相当している。この繰り返し演算による回転角の算出精度ベースライン200に基づいて算出される傾き角度の算出精度は、7.125°以下である。図11の例では、エッジ点208についてのデルタ値の算出結果を各ベースラインに対応するヒストグラムに反映させる場合の処理を示している。第1のベースラインについての繰り返し演算において、ベースラインβ1=8のオフセット位置におけるデルタ値がデルタ値ヒストグラム210内のヒストグラム中心オフセット第1の繰り返しでは0との比較結果に応じたビン例えばビン222に蓄積される。例えば、第1のベースラインについての繰り返し演算によって算出された回転デルタ値ヒストグラム210におけるデルタ値のピーク値が、ビン222に関連付けられたデルタ値である場合、長さがβ2=16である第2のベースライン202に関連付けられるデルタ値ヒストグラム230の中心ヒストグラム中心は、第1のベースラインについての繰り返し演算によって算出されたデルタ値オフセットビン222に対応するオフセット量の周辺に設定される239。これにより、デルタ値ヒストグラム230は、17個のビン231~247を有し、これら17個のビン231~247は整数の区間[-2,14]内のデルタ値に関連付けられ、区間[tan-1-2/16,tan-114/16]=[-7.1°,41.2°]内の回転角に相当するように設定される。第2のベースラインについての繰り返し演算によって算出された回転デルタ値ヒストグラム230におけるデルタ値のピーク値が、ビン241に関連付けられたデルタ値である場合、長さがβ3=32である第3のベースライン204に関連付けられるデルタ値ヒストグラム250の中心は、第2のベースラインについての繰り返し演算によって算出されたデルタ値オフセットビン241に対応するオフセット量の周辺に設定される259。これにより、デルタ値ヒストグラム250は、17個のビン251~267を有し、これら17個のビン251~267は整数の区間[8,24]内のデルタ値に関連付けられ、区間[tan-18/32,tan-124/32]=[14.0°,36.9°]内の回転角に相当するように設定される。第3のベースラインについての繰り返し演算によって算出された回転デルタ値ヒストグラム250におけるデルタ値のピーク値が、ビン261に関連付けられたデルタ値である場合、長さがβ4=64である第4のベースライン206に関連付けられるデルタ値ヒストグラム270の中心は、第3のベースラインについての繰り返し演算によって算出されたデルタ値オフセットビン261に対応するオフセット量の周辺に設定される279。これにより、デルタ値ヒストグラム270は、17個のビン271~287を有し、これら17個のビン271~287は整数の区間[28,44]内のデルタ値に関連付けられ、区間[tan-128/64,tan-144/64]=[23.6°,34.5°]内の回転角に相当するように設定される。第4のベースラインがベースラインセット内の最後のベースラインであり、第4のベースラインの繰り返し演算によって算出された回転デルタ値がビン280に関連付けられる回転デルタ値である場合、回転ベクトルは30.0°の回転角に相当する[64,37]である。図12は、デルタ値ヒストグラムのビンと回転角との関係を示している。以上のように、本実施形態にかかる原稿傾き判定装置は、原稿画像データの各行および各列における最も外側のエッジを検出するエッジ検出部垂直左右エッジ検出部72および水平上下エッジ検出部76と、予め設定された互いに長さが異なる複数種類のベースラインを行方向に沿って所定画素ずつ移動させ、上記各ベースラインに直交する列上に存在する上記エッジのうち当該各ベースラインとの距離が最も短いエッジと上記各ベースラインとの距離であるデルタ値をベースライン毎かつ上記各ベースラインを上記所定画素ずつ移動させる毎に算出するデルタ値算出部90と、上記デルタ値のヒストグラムを上記ベースライン毎に生成するデルタ値ヒストグラム生成部92と、上記各ベースラインに対応する上記ヒストグラムのピーク値を算出するモード検出部94と、算出した上記ピーク値に基づいて原稿の傾き角度を算出する回転ベクトル算出部96とを備えるている。また、モード検出部94は、長さが最も短いベースラインからベースラインの長さ順に各ベースラインに対応するヒストグラムのピーク値を算出し、2番目以降のベースラインに対応するヒストグラムのピーク値を算出する際、当該ベースラインに対応する上記デルタ値のうち、当該ベースラインの次に短いベースラインについて算出したピーク値に対応するデルタ値を含む所定範囲内のデルタ値のヒストグラムのピーク値を算出する。また、回転ベクトル選択部82は、長さが最も長いベースラインについて算出した上記ピーク値に対応する上記デルタ値に基づいて上記傾き角度を算出する。これにより、原稿画像データにおける原稿の傾き角度を、原稿のフォーマットにかかわらず容易に判定することができる。また、傾き角度に対応するピーク値を長さの短いベースラインから順に順次絞り込んでいくことができるので、傾き角度を精度よく算出することができる。また、2番目以降のベースラインについては上記所定範囲内のデルタ値のヒストグラムのピーク値を算出するだけでよいので、全てのデルタ値についてヒストグラムのピーク値を算出する場合に比べて演算量を低減し、処理速度を向上させることができる。また、本実施形態にかかる原稿傾き判定装置は、原稿を読み取って取得した原稿画像データにおける原稿の傾き角度を判定する原稿傾き判定装置原稿傾き判定システムであって、a上記原稿画像データを正規化した正規化画像データに基づいて垂直エッジデータおよび水平エッジデータを生成するエッジデータ生成部と、b上記垂直エッジデータおよび上記水平エッジデータにおける現在の層現在の処理対象とする層を処理することによって、当該現在の層の回転ベクトルを生成する層処理部と、c上記現在の層の回転ベクトルを含む複数の回転ベクトルの中から、上記原稿の傾き角度に対応する回転ベクトルを選択する回転評価部とを備えていてもよい。また、本実施形態にかかる原稿傾き判定装置は、上記原稿画像データを取得する画像取得部と、上記画像取得部が取得した原稿画像データを正規化する画像前処理部とを備えていてもよい。また、上記画像前処理部は、a上記原稿画像データの解像度を変換する解像度変換部と、b上記原稿画像データをカラー画像データからグレースケール画像データに変換する変換部とを備えていてもよい。また、上記エッジデータ生成部は、a正規化された原稿画像データを互いに重複しないk×1個の画素からなる垂直片に分割し、各垂直片の集約尺度を算出して垂直片データを生成する垂直片エッジ集約尺度算出部と、b正規化された原稿画像データを互いに重複しない1×k個の画素からなる水平片に分割し、各水平片の集約尺度を算出して水平片データを生成する水平片エッジ集約尺度算出部と、c上記垂直片データにおける第1のエッジ群を検出することにより上記垂直エッジデータを生成するための垂直エッジ検出部と、d上記水平片データにおける第2のエッジ群を検出することにより上記水平エッジデータを作成する水平エッジ検出部とを備えていてもよい。上記層処理部は、a上記垂直エッジデータにおける現在の層に対応する垂直エッジの位置を検出する垂直上下エッジ検出部垂直立上り立下りエッジ検出部と、b上記水平エッジデータにおける現在の層に対応する水平エッジの位置を検出する水平左右エッジ検出部水平立上り立下りエッジ検出部と、c上記垂直左右エッジ検出部の検出結果に基づいて、各行の垂直エッジのうち最も左のエッジを示す列番号のリストである左リスト、および各行の垂直エッジのうち最も右のエッジを示す列番号のリストである右リストを生成する垂直エッジリスト生成部と、d上記水平上下エッジ検出部の検出結果に基づいて、各列の水平エッジのうち最も上のエッジを示す行番号のリストである上リスト、および各列の水平エッジのうち最も下のエッジを示す行番号のリストである右リストを生成する水平エッジリスト生成部と、e上記左リスト、上記右リスト、上記上リスト、および上記下リストを、予め設定される複数のベースラインのうちの少なくとも1つのベースラインの長さに応じて処理することで現在の層に対応する回転ベクトル候補を生成するベースライン処理部とを備えていてもよい。また、上記ベースライン処理部は、上記左リスト、上記右リスト、上記上リスト、および上記下リストを、上記各ベースラインの長さに応じて処理することで現在の層に対応する複数の回転ベクトル候補を生成する構成であってもよい。また、上記層処理部は、現在の層に対応する上記複数の回転ベクトル候補の中から現在の層に関連付ける回転ベクトル候補を選択する回転ベクトル選択部層評価値選択部を備えていてもよい。また、上記回転ベクトル選択部は、現在の層に対応する上記複数の回転ベクトル候補のうち、最も正確な回転ベクトル候補を選択する構成であってもよい。また、上記回転ベクトル選択部は、a上記複数の回転ベクトル候補の平均値と上記最も正確な回転ベクトル候補との差が予め設定される第1閾値よりも小さい場合には上記最も正確な回転ベクトル候補を現在の層に関連付ける回転ベクトル候補として選択し、b上記差が上記第1閾値以上である場合には上記平均値を現在の層に関連付ける回転ベクトル候補として選択する構成であってもよい。また、上記層処理部は、a垂直層無効器と、b水平層無効器とを備えていてもよい。また、上記ベースライン処理部は、a上記左リスト、上記右リスト、上記上リスト、および上記下リストのうちのいずれかのリストにおけるエッジ位置において上記ベースラインの長さに関連付けられるデルタ値を算出するデルタ値算出部と、b上記デルタ値算出部によって算出された複数のデルタ値のヒストグラムを生成するデルタ値ヒストグラム生成部と、c上記ヒストグラムに対応する複数のヒストグラムビンにおける現在の絞込み範囲内における上記ヒストグラムのピーク値を検出するモード検出部と、d上記ピーク値に基づいて上記ベースラインの長さに関連付ける回転ベクトルを算出する回転ベクトル算出部と、e上記回転ベクトル算出部が算出した上記上記ベースラインの長さに関連付ける回転ベクトルと、上記複数のベースラインの中から選択される次のベースラインの長さとに基づいて上記ヒストグラムに対応する複数のヒストグラムビンについての次の絞込み範囲を算出する絞込範囲算出部とを備えていてもよい。また、上記デルタ値算出部は、上記ベースラインの長さに関連付ける上記デルタ値の大きさを当該ベースラインの長さに相当する大きさ以下に制限する構成であってもよい。また、本実施形態にかかる原稿傾き判定装置は、各種画像処理装置例えばスキャナ、多機能周辺機器、コピー機などまたは各種演算装置例えばパーソナルコンピュータなどに備えられるものであってもよい。また、本実施形態にかかる原稿傾き判定装置は、原稿を読み取って取得した原稿画像データにおける原稿の傾き角度を判定する原稿傾き判定装置原稿傾き判定システムであって、a上記原稿画像データを正規化した正規化画像データに基づいて垂直エッジデータおよび水平エッジデータを生成するエッジデータ生成部と、bヒストグラムを生成するヒストグラム生成部とを備えており、上記ヒストグラムは、i第1のベースラインの長さについて上記垂直エッジおよび上記水平エッジに関連付けられたデルタ値の第1ヒストグラム、およびii第2のベースラインの長さについて上記垂直エッジおよび上記水平エッジに関連付けられたデルタ値の第2ヒストグラムを含み、1上記第1のベースラインの長さは上記第2のベースラインの長さよりも短く、2上記第1ヒストグラムおよび上記第2ヒストグラムのサイズは同じであり、3上記第2ヒストグラムの中心は上記第1ヒストグラムに基づいて判定された第1のデルタ値の周辺に中心が設定されている構成であってもよい。また、上記エッジデータ生成部は、a正規化された原稿画像データを互いに重複しないk×1個の画素からなる垂直片に分割し、各垂直片の集約尺度を算出して垂直片データを生成する垂直片エッジ集約尺度算出部と、b正規化された原稿画像データを互いに重複しない1×k個の画素からなる水平片に分割し、各水平片の集約尺度を算出して水平片データを生成する水平片エッジ集約尺度算出部と、c上記垂直片データにおける第1のエッジ群を検出することにより上記垂直エッジデータを生成するための垂直エッジ検出部と、d上記水平片データにおける第2のエッジ群を検出することにより上記水平エッジデータを作成する水平エッジ検出部とを備えていてもよい。上記第1のデルタ値は、上記第1ヒストグラムにおけるピーク値であってもよい。上記第1の制限されたヒストグラムおよび上記第2の制限されたヒストグラムは、同一のメモリー位置内に記憶されていてもよい。また、本実施形態において、原稿傾き判定装置2に備えられる各部各ブロックを、CPU等のプロセッサを用いてソフトウェアによって実現してもよい。この場合、原稿傾き判定装置2は、各機能を実現する制御プログラムの命令を実行するCPUcentralprocessingunit、上記プログラムを格納したROMreadonlymemory、上記プログラムを展開するRAMrandomaccessmemory、上記プログラムおよび各種データを格納するメモリー等の記憶装置記録媒体などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである原稿傾き判定装置2の制御プログラムのプログラムコード実行形式プログラム、中間コードプログラム、ソースプログラムをコンピュータで読み取り可能に記録した記録媒体を、原稿傾き判定装置2に供給し、そのコンピュータまたはCPUやMPUが記録媒体に記録されているプログラムコードを読み出し実行することによって達成される。上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー登録商標ディスク/ハードディスク等の磁気ディスクやCD-ROM/MO/MD/DVD/CD-R等の光ディスクを含むディスク系、ICカードメモリカードを含む/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリー系などを用いることができる。また、原稿傾き判定装置2を通信ネットワークと接続可能に構成し、通信ネットワークを介して上記プログラムコードを供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網virtualprivatenetwork、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth登録商標、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。また、原稿傾き判定装置2の各ブロックは、ソフトウェアを用いて実現されるものに限らず、ハードウェアロジックによって構成されるものであってもよく、処理の一部を行うハードウェアと当該ハードウェアの制御や残余の処理を行うソフトウェアを実行する演算手段とを組み合わせたものであってもよい。本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。"