(57)【特許請求の範囲】
【請求項１】
原稿を読み取った画像データの各ラインにおいて原稿と背景の境界に位置する、当該ラインの一端側の第１エッジ画素及び他端側の第２エッジ画素の位置を求めるエッジ画素取得部と、
複数のラインにおける前記第１エッジ画素及び前記第２エッジ画素の少なくとも一方の位置の特徴に基づいて、原稿の輪郭の図形的特徴部分に位置する点である特徴点を検出する特徴点検出部と、
前記特徴点のそれぞれにおいて、当該特徴点の位置を含むライン又はその近傍のラインにおける前記第１エッジ画素及び前記第２エッジ画素の少なくとも一方の位置の特徴に基づいて、原稿が傾きなしであるか、一側に傾いているか、他側に傾いているか、のステータスを求めるステータス取得部と、
複数の前記特徴点のステータスを集計して最多数のステータスを求め、当該最多数のステータスと一致するステータスを有する特徴点から２つの特徴点を選択し、当該２つの特徴点の位置から原稿の傾きの度合いを表現する値を演算する傾き演算部と、
を備えることを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記傾き演算部は、前記最多数のステータスと一致するステータスを有する特徴点から、予め定められた優先順位に従って２つの特徴点を選択することを特徴とする画像処理装置。
【請求項３】
請求項１又は２に記載の画像処理装置であって、
前記特徴点検出部は、原稿の角部を前記特徴点として検出可能に構成されていることを特徴とする画像処理装置。
【請求項４】
請求項３に記載の画像処理装置であって、
前記特徴点検出部は、原稿の角部を前記特徴点として検出したときは、前記第１エッジ画素及び前記第２エッジ画素の少なくとも一方の位置の特徴に基づいて当該角部の角度が直角か否かを判定し、
前記傾き演算部は、前記角部の角度が直角でなかった場合は当該特徴点を除外してステータスを集計するとともに、前記最多数のステータスと一致するステータスを有する特徴点から前記角部を除外した上で２つの特徴点を選択することを特徴とする画像処理装置。
【請求項５】
請求項１から４までの何れか一項に記載の画像処理装置であって、
前記特徴点検出部は、前記画像データの前記ラインの長手方向両側で向かい合う平行辺のうち一辺上に位置し、かつ原稿の角部以外に位置する少なくとも２つの点を、それぞれ前記特徴点として取得可能に構成されていることを特徴とする画像処理装置。
【請求項６】
請求項５に記載の画像処理装置であって、
前記傾き演算部は、前記最多数のステータスを求めることができないときは、前記原稿の平行辺の一辺上に位置する２つの特徴点の位置から原稿の傾きの度合いを表現する値を演算することを特徴とする画像処理装置。
【請求項７】
請求項１から６までの何れか一項に記載の画像処理装置を備える画像読取装置であって、
原稿を読み取って画像データを取得する画像読取部と、
前記画像データから前記画像処理装置により得られた傾きの度合いを表現する値に基づいて、その傾きを補正するように前記画像データを回転処理する回転処理部と、
を備えることを特徴とする画像読取装置。
【請求項８】
請求項７に記載の画像読取装置であって、
前記画像処理装置の前記エッジ画素取得部は、前記画像読取部の主走査方向に沿った各ラインにおいて前記第１エッジ画素及び前記第２エッジ画素の位置を求めるように構成されていることを特徴とする画像読取装置。
【請求項９】
請求項７又は８に記載の画像読取装置であって、
前記画像読取部はフラットベッド部を備えていることを特徴とする画像読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主要には、原稿を読み取って得られた画像データの傾きを自動検出する画像処理装置に関する。
【背景技術】
【０００２】
イメージスキャナ装置、コピー装置、ファクシミリ装置、光学式文字読取装置（ＯＣＲ）等においては、原稿が傾いた状態で読み取られると、傾いた画像が得られることになって読取品質が低下する。これを回避するために、画像データを分析して原稿の傾き角度を自動検出する画像処理装置を備え、得られた傾き角度に基づいて画像データを回転処理して傾きを電子的に補正可能な画像読取装置が提案されている。
【０００３】
例えば特許文献１は、得られた画像データを一方向に走査し、走査線上で順次に数えて所定個数目に検出される文字パターン始端構成画素の位置を各走査線毎に検出する画素位置検出手段と、各走査線毎に検出された始端構成画素のうち極小となる画素の位置を抽出する極小点抽出手段と、抽出された極小となる画素の位置に基づいて情報媒体の傾きを抽出する傾き抽出手段と、を備える傾き抽出装置を開示する。特許文献１は、この構成により、傾き抽出処理の高速化を図ることができるとする。
【特許文献１】特開平２−１７５８７号公報
【０００４】
特許文献２は、イメージスキャナ等の読取手段により読取画像を画像メモリに格納した後、その読取画像を走査することにより連続する黒画素成分を抽出し、この連続黒画素成分の外接矩形の高さと幅等から、読取画像の傾きを検出する構成を開示する。特許文献２は、この構成により、容易に且つ効率良く読取画像の傾きを検出することができるとする。
【特許文献２】特開平６−７６１０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上記の特許文献１の構成は、文字パターンを構成する画素が検出できない場合、傾きを検出することができない。特許文献２の構成においても同様に、連続する黒画素成分が検出できない場合、傾きの検出が不可能になってしまう。
【０００６】
また、特許文献１及び２の構成は、デザイン上の事情等から傾けられた文章を配置した原稿、又は斜線が使われた原稿を読み取った場合、真っ直ぐ原稿がセットされていても読取時に傾きが誤って検出され、画像データが意図に反して回転されてしまうことがあった。従って、原稿内容にかかわらず適切に傾き補正を行うことが可能な画像処理装置が望まれていた。また、原稿の角部に折れ、破れ、丸み、歪み、シワ等が発生している等、状態の良くない原稿については、装置に真っ直ぐセットして読み取ることが困難であるが、その場合でも傾き補正を適切に行える画像処理装置が望まれていた。
【課題を解決するための手段及び効果】
【０００７】
本発明の解決しようとする課題は以上の如くであり、次にこの課題を解決するための手段とその効果を説明する。
【０００８】
本発明の第１の観点によれば、以下の構成の画像処理装置が提供される。即ち、この画像処理装置は、エッジ画素取得部と、特徴点検出部と、ステータス取得部と、傾き演算部と、を備える。前記エッジ画素取得部は、原稿を読み取った画像データの各ラインにおいて原稿と背景の境界に位置する、当該ラインの一端側の第１エッジ画素及び他端側の第２エッジ画素の位置を求める。前記特徴点検出部は、複数のラインにおける前記第１エッジ画素及び前記第２エッジ画素の少なくとも一方の位置の特徴に基づいて、原稿の輪郭の図形的特徴部分に位置する点である特徴点を検出する。前記ステータス取得部は、前記特徴点のそれぞれにおいて、当該特徴点の位置を含むライン又はその近傍のラインにおける前記第１エッジ画素及び前記第２エッジ画素の少なくとも一方の位置の特徴に基づいて、原稿が傾きなしであるか、一側に傾いているか、他側に傾いているか、のステータスを求める。前記傾き演算部は、複数の前記特徴点のステータスを集計して最多数のステータスを求め、当該最多数のステータスと一致するステータスを有する特徴点から２つの特徴点を選択し、当該２つの特徴点の位置から原稿の傾きの度合いを表現する値を演算する。
【０００９】
なお、「傾きなし」のステータスとは、回転が必要ないという意味のステータスを含むものである。また、「一側（他側）に傾いている」のステータスとは、その傾きを矯正する方向に回転すべきであるという意味のステータスを含むものである。
【００１０】
この構成により、原稿の内容ではなく原稿そのものの輪郭的特徴に基づいて傾きを検出するため、原稿の傾きを直接的かつ的確に検出できる。また、原稿の輪郭の特徴点及びそのステータスを利用した総合的な判断によって傾きを検出するので、原稿の傾きを精度良く検出することができるとともに、非長方形の原稿（例えば辺が非直線となっている原稿）を含む様々な形状の原稿について適切に傾きを検出することができる。
【００１１】
前記画像処理装置においては、前記傾き演算部は、前記最多数のステータスと一致するステータスを有する特徴点から、予め定められた優先順位に従って２つの特徴点を選択することが好ましい。
【００１２】
この構成により、優先順位を適切に定めておくことで、傾きの検出精度を一層高めることができる。特に、原稿の角部等に折れ、破れ、丸み、歪み、シワ等が発生している等の場合でも、傾きを適切に検出できる。また、特徴点の選択のための処理を単純化できるので、傾き検出の処理時間を短縮できる。
【００１３】
前記画像処理装置においては、前記特徴点検出部は、原稿の角部を前記特徴点として検出可能に構成されていることが好ましい。
【００１４】
この構成により、特徴点として原稿の角部を利用することで、十分に離れた２つの特徴点を傾きの演算のために選択することができ、原稿の傾きに関する値を精度良く検出することができる。
【００１５】
前記画像処理装置においては、以下の構成とすることが好ましい。即ち、前記特徴点検出部は、原稿の角部を前記特徴点として検出したときは、前記第１エッジ画素及び前記第２エッジ画素の少なくとも一方の位置の特徴に基づいて当該角部の角度が直角か否かを判定する。前記傾き演算部は、前記角部の角度が直角でなかった場合は当該特徴点を除外してステータスを集計するとともに、前記最多数のステータスと一致するステータスを有する特徴点から前記角部を除外した上で２つの特徴点を選択する。
【００１６】
この構成により、直角でない角部に基づいて傾きに関する値を演算することが防止されるので、傾きの誤検出を回避できる。
【００１７】
前記画像処理装置においては、前記特徴点検出部は、前記画像データの前記ラインの長手方向両側で向かい合う平行辺のうち一辺上に位置し、かつ原稿の角部以外に位置する少なくとも２つの点を、それぞれ前記特徴点として取得可能に構成されていることが好ましい。
【００１８】
この構成により、一般的でない形状の原稿（例えば、角丸長方形、非長方形又は非四角形の原稿）を読み取った場合でも、平行辺を有する形状であれば、その一辺に位置する２つの特徴点に基づいて原稿の傾きを適切に検出することができる。例えば、作成されてから長期間が経過した文書の原稿は、特に角部に折れ、破れ、丸み等が生じることが多いが、この場合でも平行辺に基づいて傾きを適切に検出することができる。また、例えば原稿の紙を一旦丸めて伸ばしたような複雑な形状の原稿でも、原稿の一部で平行辺となっている部分を検出できれば、それに基づいて傾きを一定の精度で検出することができる。
【００１９】
前記画像処理装置においては、前記傾き演算部は、前記最多数のステータスを求めることができないときは、前記原稿の平行辺の一辺上に位置する２つの特徴点の位置から原稿の傾きの度合いを表現する値を演算することが好ましい。
【００２０】
これにより、例えば角丸形状の原稿等、角部の正確な位置の検出が困難な場合であっても、平行辺を有していれば、当該平行辺に基づいて原稿の傾きを適切に検出することができる。従って、汎用性の高い傾き検出が実現される。
【００２１】
本発明の第２の観点によれば、前記画像処理装置を備える画像読取装置の以下の構成が提供される。即ち、この画像読取装置は、原稿を読み取って画像データを取得する画像読取部と、前記画像データから前記画像処理装置により得られた傾きの度合いを表現する値に基づいて、その傾きを補正するように前記画像データを回転処理する回転処理部と、を備える。
【００２２】
この構成により、画像読取部で読み取られた画像データに対し、複数の特徴点とそのステータスを利用した総合的な判断によって、原稿の傾きを精度良く検出して補正することができる。また、幅広い形状の原稿について、傾きを適切に補正することができる。
【００２３】
前記の画像読取装置においては、前記画像処理装置の前記エッジ画素取得部は、前記画像読取部の主走査方向に沿った各ラインにおいて前記第１エッジ画素及び前記第２エッジ画素の位置を求めるように構成されていることが好ましい。
【００２４】
この構成により、読取時において主走査方向に連続的に入力される画素のデータを逐次処理しつつ、エッジ画素の位置を求めることが可能になる。従って、メモリへの蓄積及び読出処理等を省略できるので、処理を単純化でき、読取画像の傾きの検出を高速に行うことができる。
【００２５】
前記画像読取装置においては、前記画像読取部はフラットベッド部を備えていることが好ましい。
【００２６】
この構成により、原稿をフラットベッド部にセットする際に向きを真っ直ぐにしなくても、前記傾き演算部と回転処理部により、正常な向きに補正された画像を得ることができる。従って、フラットベッド部に原稿を自由な向きでセットしてスキャンするような使用態様が可能になり、簡便な操作性を提供することができる。
【発明を実施するための最良の形態】
【００２７】
次に、発明の実施の形態を説明する。図１は本発明の一実施形態に係るイメージスキャナ装置の全体的な構成を示す正面断面図である。
【００２８】
図１に示すように、画像読取装置としてのイメージスキャナ装置１０１は、オートドキュメントフィーダ部及びフラットベッド部からなる画像読取部１１５を備えている。
【００２９】
以下、具体的に説明する。即ち、このイメージスキャナ装置１０１は、読取原稿を載置するプラテンガラス１０２が配設された原稿台１０３と、この読取原稿を前記プラテンガラス上に押圧した状態で保持するための原稿台カバー１０４と、を備えている。また、イメージスキャナ装置１０１には、原稿の読取開始等を指示するための図略の操作パネルが備えられている。原稿台カバー１０４の下面には、原稿を下向きに押し付けるための押さえパッド１２１が、前記プラテンガラス１０２に対面するように取り付けられている。
【００３０】
前記原稿台カバー１０４には、オートドキュメントフィーダ（自動原稿送り装置）１０７が配設されている。このオートドキュメントフィーダ１０７は、原稿台カバー１０４の上部に設けられた原稿トレイ１１１と、この原稿トレイ１１１の下方に設けられた排紙トレイ１１２と、を備える。
【００３１】
図１に示すように、前記原稿台カバー１０４の内部には、原稿トレイ１１１と排紙トレイ１１２とを繋ぐ湾曲状の原稿搬送経路１１３が構成されている。この原稿搬送経路１１３には、ピックアップローラ５１と、分離ローラ５２と、分離パッド５３と、搬送ローラ５５と、排紙ローラ５８と、が配置されている。
【００３２】
ピックアップローラ５１は原稿トレイ１１１上の読取原稿を繰り込み、分離ローラ５２及び分離パッド５３は、繰り込まれた原稿を１枚ずつ分離するように構成されている。搬送ローラ５５は、分離された原稿を原稿読取位置Ｐに向けて搬送し、排紙ローラ５８は、読取後の原稿を排紙トレイ１１２へ排出するように構成されている。また、前記原稿読取位置Ｐにおいて、プラテンガラスに対向するように押さえ部材１２２が備えられている。
【００３３】
上記の構成で、原稿トレイ１１１に重ねてセットされた読取原稿は、１枚ずつ分離されて湾曲状の前記原稿搬送経路１１３に沿って搬送され、原稿読取位置Ｐを通過して後述のスキャナユニット２１によって読み取られた後、排紙トレイ１１２へ排出される。
【００３４】
図１に示すように、前記原稿台１０３の内部にはスキャナユニット２１が備えられる。このスキャナユニット２１は、原稿台１０３の内部で移動可能なキャリッジを備えている。
【００３５】
このキャリッジ３０は、光源としての蛍光ランプ２２と、反射ミラー２３，２３・・・と、集光レンズ２７と、電荷結合素子（ＣＣＤ）２８と、を備える。蛍光ランプ２２は読取原稿に対して光を照射し、読取原稿からの反射光は、複数の反射ミラー２３，２３・・・で反射した後、集光レンズ２７を通過して収束してＣＣＤ２８表面に結像する。前記ＣＣＤ２８は、入射された収束光を電気信号に変換して出力する。
【００３６】
本実施形態において前記ＣＣＤ２８は３ライン式のカラーＣＣＤとされている。このＣＣＤ２８は、主走査方向（原稿の幅方向）に細長く延びる一次元ラインセンサが赤、緑、青（ＲＧＢ）の各色について設けられるとともに、各ラインセンサに対応して異なるカラーフィルタを備えた構成となっている。
【００３７】
前記原稿台１０３の内部には、駆動プーリ４７及び従動プーリ４８が回転自在に支持される。そして、駆動プーリ４７及び従動プーリ４８の間に無端状の駆動ベルト４９が張架され、この駆動ベルト４９の適宜箇所に前記キャリッジ３０が固定されている。この構成で、前記駆動プーリ４７を図略の電動モータで正逆駆動することにより、キャリッジ３０を副走査方向に沿って水平に走行させることができる。
【００３８】
この構成で、前記原稿読取位置Ｐに対応する位置に前記キャリッジ３０を予め移動させた状態で、オートドキュメントフィーダ１０７を駆動する。すると、原稿搬送経路１１３を搬送される読取原稿が原稿読取位置Ｐにおいて走査され、蛍光ランプ２２から照射されて読取原稿で反射した反射光はキャリッジ３０内へ導入され、反射ミラー２３，２３・・・により集光レンズ２７を通してＣＣＤ２８へ導かれて結像する。この結果、ＣＣＤ２８は読取内容に応じた電気信号を出力することができる。
【００３９】
また、フラットベッドスキャナとして使用する場合は、キャリッジ３０をプラテンガラス１０２に沿って一定の速度で移動させながら、当該プラテンガラス１０２上に載置された読取原稿を走査する。原稿からの反射光は、上記と同様にキャリッジ３０内のＣＣＤ２８へ導かれて結像する。
【００４０】
図２はイメージスキャナ装置１０１のブロック図である。図２に示すように、イメージスキャナ装置１０１は前記スキャナユニット２１のほか、ＣＰＵ４１と、ＲＯＭ４２と、画像処理部４３と、イメージメモリ６６と、傾き検出部６７と、傾き補正部６８と、符号変換部６９と、出力制御部７０と、を備えている。
【００４１】
ＣＰＵ４１は、イメージスキャナ装置１０１に備えられるスキャナユニット２１、傾き検出部６７、傾き補正部６８、出力制御部７０等を制御するための制御部として設けられている。この制御のためのプログラム及びデータ等は、記憶部としてのＲＯＭ４２に格納されている。
【００４２】
前記スキャナユニット２１はアナログフロントエンド（ＡＦＥ）６３を備えており、このＡＦＥ６３はＣＣＤ２８に接続されている。原稿読取時において、ＣＣＤ２８が備えるＲＧＢ各色の前記ラインセンサは、原稿内容を主走査方向に走査して１ライン分を読み取り、各ラインセンサの信号は前記ＡＦＥ６３によってアナログ信号からデジタル信号に変換される。この主走査により、１ライン分の画素のデータがＲＧＢ各色の階調値としてＡＦＥ６３から出力される。以上の処理を、原稿又はキャリッジ３０を副走査方向に微小距離ずつ送りながら反復することで、原稿全体の画像データをデジタル信号として得ることができる。
【００４３】
スキャナユニット２１は画像処理部６５を備えており、前記ＡＦＥ６３が出力する画像データのデジタル信号は、この画像処理部６５に入力される。この画像処理部６５は、主走査ごとに１ラインずつ入力される画素データに対しシェーディング補正を行って、スキャナユニット２１の光学系に起因する読取ムラの補正を行う。また画像処理部６５は、前記画素データに対し、ＣＣＤ２８におけるＲＧＢ各色のラインセンサの配置間隔（ラインギャップ）を原因とする色ズレを矯正する補正を行う。
【００４４】
前記イメージメモリ６６は、スキャナユニット２１で読み取った画像を蓄積するためのものである。スキャナユニット２１で読み取られた画像データは、画像処理部４３において公知の画像処理（フィルタ処理等）が更に行われた後、イメージメモリ６６に入力されて蓄積される。
【００４５】
イメージスキャナ装置１０１は、前記ＣＣＤ２８で読み取られた原稿の傾きを検出するための傾き検出部（画像処理装置）６７を備えている。この傾き検出部６７は、スキャナユニット２１の画像処理部６５から画像データが１ラインずつ入力されると、その画像データを解析する処理を行い、原稿の傾き（その傾きを矯正するために回転すべき角）を検出する。
【００４６】
この傾き検出部６７は、エッジ画素取得部７１と、特徴点検出部７２と、ステータス取得部７３と、傾き演算部７４と、を備えている。
【００４７】
前記エッジ画素取得部７１は、スキャナユニット２１から画像データが１ラインずつ入力されるごとに、当該ラインにおいて原稿の輪郭部分（言い換えれば、原稿と背景の境界）に位置するエッジ画素の位置を求めることが可能に構成されている。
【００４８】
前記特徴点検出部７２は、前記エッジ画素取得部７１により得られたエッジ画素の位置を、所定本数のライン分だけ記憶することができる。そして、その複数本のラインにおける当該エッジ画素の位置の特徴に基づいて、原稿の輪郭に関する特徴点を検出し、その特徴点の位置を求めることができる。なお、本明細書において「特徴点」とは、原稿の輪郭の図形的特徴部分に位置する点をいい、例えば原稿の角部の頂点である。
【００４９】
前記ステータス取得部７３は、特徴点検出部７２で取得された特徴点を含むライン又はその近傍のラインにおけるエッジ画素の位置の特徴を調べる。そしてステータス取得部７３は、その結果に基づいて、原稿の向きに関するステータス（傾きなしであるか、一側に傾いているか、他側に傾いているか）を求めることが可能に構成されている。
【００５０】
前記角度演算部７４は、それぞれの特徴点のステータスを集計して最多数のステータスを求め、この最多数のステータスと一致するステータスを有する特徴点から２つの特徴点を選択し、この選択された特徴点の位置から原稿の傾きに関する値（傾きを表現するパラメータ。本実施形態では、正接値）を演算して取得する。
【００５１】
なお、上述したエッジ画素取得部７１、特徴点検出部７２、ステータス取得部７３、及び角度演算部７４による傾き検出処理の詳細は後述する。
【００５２】
傾き補正部６８は、前記傾き検出部６７で得られた傾き（正接値）に基づいてイメージメモリ６６の画像データを読出し時に回転処理し、原稿の傾きを電子的に補正する。
【００５３】
符号変換部６９は、イメージメモリ６６に保存された画像データに対し、例えばＪＰＥＧ等の公知の圧縮処理を行って符号化する。
【００５４】
出力制御部７０は、符号化された画像データを、イメージスキャナ装置１０１と接続される上位装置としてのパーソナルコンピュータ（図略）に送信する。送信方法は任意であるが、例えば、ローカルエリアネットワーク（ＬＡＮ）を用いる方法、及びユニバーサルシリアルバス（ＵＳＢ）を用いる方法等が考えられる。
【００５５】
本実施形態において、画像処理部６５、傾き検出部６７、傾き補正部６８、及び符号変換部６９等は、例えばＡＳＩＣやＦＰＧＡ等のハードウェアを用いて実現されている。ただし、前記画像処理部６５及び傾き検出部６７等は、ＣＰＵ４１とプログラムの組合せ等により実現してもよい。
【００５６】
次に、前記傾き検出部６７による原稿の傾きの検出処理について、図３のフローチャートを参照しながら説明する。図３には、傾き検出処理のメインルーチンが示されている。
【００５７】
図３のメインルーチンが開始されると、傾き検出部６７は先ず、前記画像処理部６５が出力する画素データを１ライン分入力する（Ｓ１０１）。次に、入力された１ライン分の画素データから原稿画素と背景画素とを検出する処理を行う（Ｓ１０２）。
【００５８】
本実施形態において、原稿画素及び背景画素の検出処理は以下のようにして行う。即ち、本実施形態において、走査される原稿の裏面側に配置される前記押さえパッド１２１及び押さえ部材１２２（図１）の表面には、通常の紙よりも明るい白色のシート（プラテンシート）が貼り付けられている。従って、ＣＣＤ２８で読み取られた画像データにおいて、原稿の周囲の背景部分は輝度が高くなる。
【００５９】
これを利用して、Ｓ１０２の処理では、画素データのＲＧＢ成分から公知の式に従って輝度（Ｙ成分）を計算する画像処理を行い、その輝度が所定の閾値以上である場合は背景画素、前記閾値を下回る場合は原稿画素とする２値化処理を行う。本実施形態では、背景画素を「０」、原稿画素を「１」で表すこととしている。
【００６０】
なお、原稿画素と背景画素の検出精度の観点からは、Ｓ１０２の処理の前に、元の画像データに対してシェーディング補正、ガンマ補正等の適宜の画像処理を行うことが好ましい。また、前記シェーディング補正においてシェーディングデータの白に所定量を加算し、通常よりも明るい値を生成して処理することにより、原稿と背景とを容易に区別することができる。なお、押さえパッド１２１及び押さえ部材１２２のプラテンシートを黒色とし、主走査方向の端部側で読み取られる黒画素を背景画素とみなすことで、原稿と背景を識別することもできる。また、イメージスキャナ装置１０１をフラットベッドスキャナとして使用する場合であって、前記原稿台カバー１０４を開いた状態でブック原稿を読み取る場合についても、同様に、主走査方向の端部側で読み取られる黒画素を背景画素として識別することができる。
【００６１】
これにより、図４に示すように、画像データから原稿領域を判定することができる。なお、図４において、細かく区切られた１つのマスが１つの画素に対応するとともに、空白のマスが背景画素を、斜線が引かれたマスが原稿画素をそれぞれ表している。また、図４においてＸ方向が主走査方向であり、Ｙ方向が副走査方向である。
【００６２】
図４では原稿画素の領域全体を判り易く示すために画像データ全体が描かれているが、図３のＳ１０２で示す原稿画素及び背景画素の検出処理は、主走査方向と同方向のラインに沿って１画素ずつ逐次行われる。また、以降の説明では、長方形の原稿が斜行した状態でオートドキュメントフィーダ部により搬送され、スキャナユニット２１で読み取られた結果、図４に示すように、正規の向きから反時計方向に若干回転した長方形の画像が原稿画素領域として得られる場合で説明する。なお、フラットベッドスキャナ部の前記プラテンガラス１０２に長方形の原稿が斜めにセットされて読み取られた場合でも、図４に示すように傾いた画像が原稿画素領域として得られる。前記傾き検出部６７では、画像データが図４の上端のラインから１ラインずつ処理され、最後に下端のラインが処理されることになる。
【００６３】
前述したように、図３のＳ１０２の処理は、１ライン毎に、各ラインの一端から他端（左端から右端）に向かって１画素ずつ順次行われる。また、このＳ１０２の処理が１画素分完了する毎に、２値化後のデータの変化が調べられる（Ｓ１０３）。そして、Ｓ１０３の処理では、各ラインにおいて左端から画素を順次処理したときに、２値化後の画素が最初に「０」から「１」（即ち、背景から原稿）に変化した箇所での「１」となった画素を、第１エッジ画素（左端画素）と認定する。また、２値化後の画素が最後に「１」から「０」（即ち、原稿から背景）に変化した箇所での「１」であった画素を、第２エッジ画素（右端画素）と認定する。
【００６４】
こうして得られた２つのエッジ画素（左端画素及び右端画素）は、当該ラインにおいて原稿と背景の境界（言い換えれば原稿の輪郭）を示すことになる。Ｓ１０３の処理では、左端画素及び右端画素の位置を、適宜の記憶手段としてのメモリに記憶する。
【００６５】
本実施形態の傾き検出部６７は、こうして得られた２つのエッジ画素の位置を、現在処理している１ライン分と、直近に処理した８ライン分の、計９ライン分だけ記憶することができる。図４には、ある瞬間において処理対象とされているラインが符号Ｓ１で示されるとともに、直近に処理された８本のラインが符号Ｓ２〜Ｓ９で示されている。また、図４では、各ラインＳ１〜Ｓ９において検出された左端画素１２Ｌ及び右端画素１２Ｒの位置に相当するマスに、細かいハッチングが施されている。
【００６６】
エッジ画素の検出処理後は、この９ライン分の左端画素１２Ｌ及び右端画素１２Ｒの位置の特徴に基づいて、原稿の輪郭に関する特徴点（例えば、原稿の角部の頂点等）を検出する（Ｓ１０４）。
【００６７】
以下、この特徴点を検出する具体的処理の第１例として、原稿の先頭側に位置する角部（先頭角部）を検出する処理を図５に基づいて説明する。図５のフローは、図３のＳ１０４の処理で実行されるサブルーチンの１つを示している。
【００６８】
図５のサブルーチンでは最初に、最も過去に処理したラインから現在処理中のラインに至る９ラインにおいて、過去のラインから新しいラインに１ラインずつ近づくに従って、左端画素が連続して同位置又は左へ移動しているか否かを調べる（Ｓ２０１）。この条件を満たさない場合は、先頭角部を検出できなかったものとしてサブルーチンを終了する。
【００６９】
Ｓ２０１の条件が満たされていた場合は、最も過去に処理したラインから現在処理中のラインに１ラインずつ近づくに従って、右端画素が連続して同位置又は右へ移動しているか否かを調べる（Ｓ２０２）。Ｓ２０２の条件が満たされた場合は、先頭角部を認定する（Ｓ２０３）。条件を満たさない場合は、先頭角部を検出できなかったものとしてサブルーチンを終了する。
【００７０】
Ｓ２０１〜Ｓ２０２の判断について、図６を参照して詳細に説明する。図６には、現在処理対象となっているラインＳ１が示されており、図３のＳ１０３の処理の結果、左端画素Ｌ１及び右端画素Ｒ１の位置が図６に示すように得られたとする。また、過去の直近８ライン分の処理において、左端画素Ｌ２〜Ｌ９及び右端画素Ｒ２〜Ｒ９の位置がそれぞれ得られ、記憶されているものとする。
【００７１】
この場合において、図５のＳ２０１の処理では上述したとおり、９ライン分の領域において、過去のラインから新しいラインに１ラインずつ近づくに従って、左端画素が同位置又は左に移動しているか否かが判断される。
【００７２】
例えば図６の場合、左端画素の位置は、最も過去のラインＳ９から１つ新しいラインＳ８へ移行するに従って、Ｌ９からＬ８へと左端へ近づく向きに移動している。ラインＳ８からラインＳ７へ移行する場合、・・・、ラインＳ２から現在処理中のラインＳ１に移行する場合も同様である（Ｌ８〜Ｌ１）。従って、図６の場合、図５のＳ２０１の条件は満たすと判定される。
【００７３】
また、Ｓ２０２の処理では、９ライン分の領域において、過去のラインから新しいラインに１ラインずつ近づくに従って、右端画素が同位置又は右に移動しているか否かが判定される。
【００７４】
図６の例で説明すると、最も過去のラインＳ９から１つ新しいラインＳ８へ移行するに従って、右端画素の位置はＲ９からＲ８へと右端へ近づく向きに移動している。ラインＳ８からラインＳ７へ移動する場合は、Ｒ８とＲ７から明らかであるように、右端画素は同位置である。ラインＳ７からラインＳ６へ移行する場合、ラインＳ６からラインＳ５へ移行する場合も、右端画素は同位置である（Ｒ７〜Ｒ５）。ラインＳ５から現在処理中のラインＳ４へ移行する場合は、右端画素はＲ５からＲ４へと右端へ近づく向きに移動している。ラインＳ４からラインＳ３へ移行する場合、ラインＳ３からラインＳ２へ移行する場合は、右端画素は同位置である。ラインＳ２から現在処理中のラインＳ１へ移行する場合は、右端画素はＲ２からＲ１へと右端へ近づく向きに移動している。従って、図６の場合、図５のＳ２０２の条件は満たすと判定される。
【００７５】
従って、図６の例では前記サブルーチンはＳ２０３の処理に移行し、原稿の先頭角部が認定されることになる。具体的には、最も過去に処理したラインＳ９上の原稿画素の位置を先頭角部の位置として認定する。図６では、ラインＳ９上の原稿画素は１つだけであり、この画素が先頭角部として認定される（黒塗りのマスで図示）。こうして検知された原稿の先頭角部の位置は、適宜のメモリに記憶される。
【００７６】
以上のようにして原稿の先頭角部が検出されると、次に図５のＳ２０４の処理で、当該角部が直角であるか否かを調べる。
【００７７】
この直角の判定は以下のように、９本のライン上の左端画素及び右端画素の位置の特徴に基づいて行う。具体的には、先ず、最も過去のラインＳ９から現在のラインＳ１に８本分移行するまでに左端画素が左端側へ移動した距離ＤＬｘと、右端画素が右端側へ移動した距離ＤＲｘを求める。
【００７８】
そして、ＤＬｘ＞ＤＲｘの場合、最も過去のラインＳ９からＤＲｘ本だけ新しいラインに移行するまでに左端画素が左端側へ移動した距離ＤＬが８に（実質的に）等しいか否かを調べ、等しい場合は直角であると判定し、等しくない場合は直角でないと判定する。
【００７９】
一方、ＤＬｘ＜ＤＲｘの場合、最も過去のラインＳ９からＤＬｘ本だけ新しいラインに移行するまでに右端画素が右端側へ移動した距離ＤＲが８に（実質的に）等しいか否かを調べ、等しい場合は直角であると判定し、等しくない場合は直角でないと判定する。
【００８０】
図６の例では、最も過去のラインＳ９から現在のラインＳ１に移行するまでに、左端画素は左端側へ４２画素分だけ、右端画素は右端側へ２画素分だけそれぞれ移動している（Ｌ９とＬ１、Ｒ９とＲ１の位置を参照）。従って、ＤＬｘ＝４２，ＤＲｘ＝２となり、ＤＬｘ＞ＤＲｘである。そして、最も過去のラインＳ９から２本だけ新しいラインＳ７に移行するまでに、左端画素はＬ９からＬ７まで左端側へ８画素分移動しており、ＤＬ＝８である。従って、図６の例において、図５のＳ２０４の処理では先頭角部は垂直であると判定される。
【００８１】
次にＳ２０５の処理で、原稿の向きに関するステータスを求める。このステータスは、原稿が傾きなしであるか、時計方向に回転しているか、反時計方向に回転しているか、の状態を示すものである。なお、このステータスは上記に代えて、原稿の回転の必要なしであるか、反時計方向に回転すべきであるか、時計方向に回転すべきであるか、という状態を示すようにしても良いことは勿論である。
【００８２】
具体的には、前述の距離ＤＬｘ及びＤＲｘがＤＬｘ＞ＤＲｘの関係を満たせば反時計方向の回転、ＤＬｘ＜ＤＲｘの関係を満たせば時計方向の回転と判定する。なお、ＤＬｘ＝０かつＤＲｘ＝０であれば、傾きなしと判定される。
【００８３】
図６の例ではＤＬｘ＞ＤＲｘとなるので、図５のＳ２０５において画像は反時計方向に回転していると判定される。従って、Ｓ２０５の処理では、［反時計回転］のステータスを、Ｓ２０３の処理で求めた先頭角部の位置と対応付けて適宜のメモリに記憶する。
【００８４】
次に、特徴点を検出する具体的処理の第２例として、原稿の左側に位置する角部（左角部）を検出する処理を図７に基づいて説明する。図７のフローは、図５のフローと同様に、図３のＳ１０４で実行されるサブルーチンの１つを示している。
【００８５】
図７のサブルーチンが実行されると、最初に、前記９ラインのうち、最も過去に処理したラインＳ９から中央のラインＳ５までの５本分のラインにおける左端画素の位置を調べる（Ｓ３０１）。具体的には、Ｓ９〜Ｓ５のラインにおいて、過去のラインから新しいラインに１ラインずつ近づくごとに、左端画素が同位置又は左へ移動しているか否かを調べる。この条件を満たさない場合は、左角部を検出できなかったものとしてサブルーチンを終了する。
【００８６】
Ｓ３０１の条件が満たされていた場合は、中央のラインＳ５から現在処理しているラインＳ１までの５本分のラインにおける右端画素の位置を調べる（Ｓ３０２）。具体的には、Ｓ５〜Ｓ１のラインにおいて、過去のラインから新しいラインに１ラインずつ近づくごとに、左端画素が同位置又は右へ移動しているか否かを調べる。この条件が満たされた場合は、左角部を認定する（Ｓ３０３）。条件を満たさない場合は、左角部を検出できなかったものとしてサブルーチンを終了する。
【００８７】
Ｓ３０１〜Ｓ３０２の判断について、図８を参照して詳細に説明する。図８には、現在処理対象となっているラインＳ１が示されており、図３のＳ１０３の処理によって、左端画素Ｌ１の位置が図８に示すように得られたとする。また、過去の直近８ライン分の処理において、左端画素Ｌ２〜Ｌ９の位置がそれぞれ得られ、記憶されているものとする。
【００８８】
この場合において、図７のＳ３０１の処理では上述したとおり、Ｓ９〜Ｓ５の５ライン分の領域において、過去のラインから新しいラインに１ラインずつ近づくに従って、左端画素が同位置又は左に移動しているかが調べられる。
【００８９】
例えば図８の場合、左端画素の位置は、最も過去のラインＳ９から１つ新しいラインＳ８へ移行するに従って、Ｌ９からＬ８へと左端へ近づく向きに移動している。ラインＳ８からラインＳ７へ移行する場合、・・・、ラインＳ６からラインＳ５に移行する場合も同様である（Ｌ８〜Ｌ５）。従って、図８の場合、図７のＳ３０１の条件は満たすと判定される。
【００９０】
また、Ｓ３０２の処理では、Ｓ５〜Ｓ１の５ライン分の領域において、過去のラインから新しいラインに１ラインずつ近づくに従って、左端画素が同位置又は右に移動しているか否かが判定される。
【００９１】
この点、図８の例では、ラインＳ５から１つ新しいラインＳ４へ移行するとき、Ｌ５とＬ４から明らかであるように、左端画素は同位置である。ラインＳ４からラインＳ３へ移行する場合、ラインＳ３からラインＳ２へ移行する場合も、左端画素は同位置である（Ｌ４〜Ｌ２）。ラインＳ２から現在処理中のラインＳ１へ移行する場合は、左端画素はＬ２からＬ１へと右端へ近づく向きに移動している。従って、図８の場合、図７のＳ３０２の条件は満たすと判定される。
【００９２】
従って、図８の例では前記サブルーチンはＳ３０３の処理に移行し、原稿の左角部が認定されることになる。具体的には、図８に示すように、９本のラインの中央に位置するラインＳ５上の左端画素Ｌ５の位置を、左角部の位置として認定する（黒塗りのマスで図示）。こうして検知された原稿の左角部の位置は、適宜のメモリに記憶される。
【００９３】
原稿の左角部が検出された場合、図７のＳ３０４の処理で、当該角部が直角であるか否かを判定する。
【００９４】
この直角の判定は以下のようにして行う。即ち、最も過去に処理したラインＳ９から中央のラインＳ５に移行するまでに左端画素が左端側へ移動した距離ＤＬｘａを求める。また、中央のラインＳ５から現在処理しているラインＳ１まで左端画素が右端側へ移動した距離ＤＬｘｂ求める。
【００９５】
そして、ＤＬｘａ＞ＤＬｘｂの場合、中央のラインＳ５からＤＬｘｂだけ古いラインに移行するまでに左端画素が右端側へ移動した距離ＤＬが４に（実質的に）等しいか否かを調べ、等しい場合は直角であると判定し、等しくない場合は直角でないと判定する。
【００９６】
一方、ＤＬｘａ＜ＤＬｘｂの場合、中央のラインＳ５からＤＬｘａ本だけ新しいラインに移行するまでに左端画素が右端側へ移動した距離ＤＲが４に（実質的に）等しいか否かを調べ、等しい場合は直角であると判定し、等しくない場合は直角でないと判定する。
【００９７】
図８の例では、最も過去のラインＳ９から中央のラインＳ５へ移行するまでに、左端画素は左端側へ１９画素分だけ移動している（Ｌ９とＬ５の位置を参照）。また、中央のラインＳ５から現在の処理対象のラインＳ１へ移行するまでに、左端画素は右端側へ１画素分だけ移動している（Ｌ５とＬ１の位置を参照）。従って、ＤＬｘａ＝１９，ＤＬｘｂ＝１となり、ＤＬｘａ＞ＤＬｘｂである。そして、中央のラインＳ５から１本だけ古いラインＳ６に移行するまでに、左端画素はＬ５からＬ６まで右端側へ４画素分移動しており、ＤＬ＝４である。従って、図８の例において、図７のＳ３０４の処理では左角部は垂直であると判定される。
【００９８】
次にＳ３０５の処理で、原稿の向きに関するステータスを求める。具体的には、前述の距離ＤＬｘａ及びＤＬｘｂがＤＬｘａ＞ＤＲｘｂの関係を満たせば反時計方向の回転、ＤＬｘａ＜ＤＲｘｂの関係を満たせば時計方向の回転と判定する。
【００９９】
図８の例では、ＤＬｘａ＞ＤＬｘｂとなるので、画像は反時計方向に回転していると判定される。従って、Ｓ３０５の処理では、［反時計回転］のステータスを、Ｓ３０３の処理で求めた左角部の位置と対応付けて適宜のメモリに記憶する。
【０１００】
次に、特徴点を検出する具体的処理の第３例として、原稿の平行辺上の点を検出する処理を図９に基づいて説明する。図９のフローは、図５及び図７のフローと同様に、図３のＳ１０４の処理で実行されるサブルーチンの１つを示している。
【０１０１】
図９のサブルーチンでは最初に、前記９ラインの何れにおいても、左端画素から右端画素までの距離が（実質的に）等しいか否かを調べる（Ｓ４０１）。Ｓ４０１の条件が満たされた場合は、平行辺を認定する（Ｓ４０２）。条件を満たさない場合は、平行辺を検出できなかったものとしてサブルーチンを終了する。
【０１０２】
Ｓ４０１の判断について、図１０を参照して詳細に説明する。図１０には、現在処理対象となっているラインＳ１が示されており、図３に示すＳ１０３の処理の結果、左端画素Ｌ１及び右端画素Ｒ１の位置が図１０に示すように得られたとする。また、過去の直近８ライン分の処理において、左端画素Ｌ２〜Ｌ９及び右端画素Ｒ２〜Ｒ９の位置がそれぞれ得られ、記憶されているものとする。
【０１０３】
この場合において、Ｓ４０１の処理では上述したとおり、Ｓ１〜Ｓ９の９本のラインそれぞれにおいて、左端画素と右端画素との間の距離が等しいか否かが調べられる。
【０１０４】
例えば図１０の場合、左端画素から右端画素までの距離は、図面から明らかであるように９本のラインＳ１〜Ｓ９において全く一致している。従って、図１０の場合、図９のＳ４０１の条件は満たすと判定される。
【０１０５】
従って、図１０の例では前記サブルーチンはＳ４０２の処理に移行し、原稿の平行辺が認定されることになる。このＳ４０２の処理では、平行辺上の何れかの点を代表させて、その位置を適宜のメモリに記憶させる。本実施形態では、現在処理対象となっているラインＳ１上の左端画素Ｌ１の位置を特徴点として記憶させている（黒塗りのマスで図示）。ただし、右端画素の位置を特徴点としても良いし、過去に処理したラインＳ２〜Ｓ９上のエッジ画素の位置を特徴点としても良い。なお、左端画素及び右端画素の両方の位置を特徴点とすると、平行線に基づく特徴量が多くなり、精度が良くなる点で好ましい。
【０１０６】
次に、図９のＳ４０３の処理で、原稿の向きに関するステータスを求める。具体的には、最も過去に処理したラインＳ９の左端画素の位置（Ｌ９）と、現在処理対象となっているラインＳ１の左端画素の位置（Ｌ１）と、を比較する。そして、Ｌ１の位置がＬ９の位置よりも左端側に近い場合は時計方向の回転と判定し、Ｌ９の位置がＬ１の位置よりも左端側に近い場合は反時計方向の回転と判定する。なお、Ｌ１とＬ９が同位置である場合は、傾きなしと判定する。
【０１０７】
図１０の例では、Ｌ９の位置がＬ１の位置よりも左端側に近い。従って、Ｓ４０３の処理では、［反時計回転］のステータスを、Ｓ４０２の処理で求めた平行辺上の点の位置と対応付けて適宜のメモリに記憶する。その後、サブルーチンを終了する。
【０１０８】
なお、例えば長方形の原稿を読み取った場合は、平行辺上の特徴点が連続的に多数検出されることになる。これを避けるため、一度平行辺を検出した場合は、所定のライン数だけ検出しないようにすることが望ましい。この所定ライン数は、解像度、検出角度の精度等に応じて決定される。例えば読取解像度が２００ｄｐｉである場合、平行辺の検出をスキップするライン数を２００とすると、少なくとも２５．４ｍｍ以上の間隔をあけて平行辺上の特徴点が検出されることになる。
【０１０９】
以上に説明した３つのサブルーチンを実行することにより、原稿の先頭角部、左角部、及び平行辺を検出することができる。なお、メインルーチンのＳ１０４の処理では、上記のほか、原稿の末尾側に位置する角部（末尾角部）及び右側に位置する角部（右角部）の検出のためのサブルーチンも併せて実行される。右角部の検出のためのサブルーチンは、前述した左角部の検出のためのサブルーチンにおいて主走査方向の位置関係を逆にすることで実現できるので、説明を省略する。
【０１１０】
末尾角部の検出のためのサブルーチンについて、図１１を参照して説明する。図１１のサブルーチンでは最初に、最も過去に処理したラインから現在ラインの直前のラインまでの８ラインにおいて、過去のラインから新しいラインに１ラインずつ近づくに従って、左端画素が連続して同位置又は右へ移動しているか否かを調べる（Ｓ５０１）。この条件を満たさない場合は、末尾角部を検出できなかったものとしてサブルーチンを終了する。
【０１１１】
Ｓ５０１の条件が満たされていた場合は、最も過去に処理したラインから現在ラインの直前のラインまでに１ラインずつ近づくに従って、右端画素が連続して同位置又は左へ移動しているか否かを調べる（Ｓ５０２）。この条件を満たさない場合は、末尾角部を検出できなかったものとしてサブルーチンを終了する。
【０１１２】
Ｓ５０２の条件が満たされていた場合は、現在処理しているラインにおいて、左端画素及び右端画素が検出されているか否かを調べる（Ｓ５０３）。検出されていない場合は、末尾角部を認定し、その位置を求めて記録する（Ｓ５０４）。検出された場合は、末尾角部を検出できなかったものとしてサブルーチンを終了する。
【０１１３】
即ち、ラインが原稿の末尾角部に近づくに従って、左端画素は右側へ移動し、右端画素は左側へ移動し、ラインが原稿の末尾角部を過ぎると原稿画素が検出されなくなる。上記のＳ５０１〜Ｓ５０４の処理は、この末尾角部の特徴を用いて末尾角部の判定を自動的に行っている。
【０１１４】
次に、検出された末尾角部が直角か否かを判定して記録する（Ｓ５０５）。また、原稿の向きに関するステータスを求めて記録する（Ｓ５０６）。このＳ５０５及びＳ５０６の処理は、先頭角部の検出処理（図５）における直角判定処理（Ｓ２０４）及び向き判定処理（Ｓ２０５）と実質的に同様であるので、説明を省略する。
【０１１５】
上記の各サブルーチンの処理が終わり、図３のＳ１０４の処理が完了すると、全てのラインの画素データが入力されたか否かを判断する（Ｓ１０５）。そして、全ラインの入力がまだ完了していない場合は、Ｓ１０１の処理に戻る。
【０１１６】
以上のフローにより、全ライン分の原稿読取データが入力されるまで、Ｓ１０３、Ｓ１０４の処理が１ラインの入力ごとに反復される。従って、このＳ１０１〜Ｓ１０４のループ処理によって、原稿の先頭角部、左角部、末尾角部、右角部、及び平行辺を表す特徴点が検知されることになる。また、特徴点が検知される毎に、当該特徴点の位置と、（角部について）直角であるか否かの判定結果と、原稿の向きに関するステータスと、が記憶される。
【０１１７】
図１２には、検知された特徴点の位置と、それぞれの特徴点において得られた直角判定及びステータスの例が示されている。なお、平行辺については、互いに十分に離れた２つの点（平行辺（１）及び平行辺（２））が認定され、そのそれぞれの位置とステータスが記憶されている。
【０１１８】
全ライン分のデータについて処理が完了すると、メインルーチンは図３のＳ１０６の処理に移行する。このＳ１０６の処理では、Ｓ１０４で検知された特徴点から、直角でないと判定された角部の特徴点を除外する。除外された特徴点は、後述のＳ１０７、Ｓ１０８の処理において考慮されない。図１２の例では、４つの角部全てが直角であると判定されているので、どの特徴点も除外されない。
【０１１９】
次に、得られた特徴点についてステータスを集計し、最多数のステータスを決定する（Ｓ１０７）。図１２の例では、全ての特徴点のステータスが［反時計回転］であるので、最多数のステータスは［反時計回転］であると決定される。なお、上位２つのステータスが同数である場合も考えられるが、この場合は、予め定めた優先順位に従ってステータスを決定する。
【０１２０】
次に、図３のＳ１０８の処理において、最多数のステータスと一致するステータスを有する特徴点から、予め定められている優先順位に従って、２つの特徴点の組合せを選択する。この優先順位の例が図１３に示される。この例では、平行辺上の２点よりも、離れて存在する原稿の角部の２点を優先して選択するように優先順位が定められている。これにより、傾きの検出精度を高めることができる。
【０１２１】
図１２の例では、全ての特徴点のステータスが［反時計回転］であるので任意の特徴点が選択可能であるが、図１３の優先順位に従って、先頭角部と左角部が選択される。
【０１２２】
次に、図３のＳ１０９の処理に移行し、選択された２つの特徴点の位置に基づいて、原稿の傾きに関する値が算出される。本実施形態では、選択された先頭角部と左角部の点の位置に基づいて、原稿の傾き角度の正接値を求めている。ただし、原稿の傾き角度そのものの数値を、前記２つの特徴点を結ぶ直線の傾きに基づいて求めても良いし、例えば正弦値、余弦値を求めても良い。要するに、傾きの度合いを表現可能なパラメータであれば、どのようなパラメータであっても良い。
【０１２３】
なお、Ｓ１０７の集計処理時において、特徴点のステータスがバラバラで、最多数のステータスを求めることができない場合も考えられる。この場合は、ステータスに関係なく、平行辺の２点が得られている場合は当該平行辺の２点に基づいて原稿の傾きを求める。
【０１２４】
以上に示す処理により、ＣＣＤ２８の読取データのように、ライン単位で画素毎に連続して出力されるデータに基づいて、原稿の傾きに関するパラメータを演算して取得することができる。そして、このパラメータ（正接値）を前記傾き補正部６８に渡すことで、適切な角度の画像回転処理を行い、傾きが電子的に補正された良好な読取画像を得ることができる。
【０１２５】
そして、上記で説明した傾き検出処理は、原稿に折れ又は破れが生じていても傾きを良好に検出することができる。例えば、原稿の左角部に折れ及び破れが生じている場合の読取結果の例を図１４に示す。この図１４の例では、特徴点として左角部が検出される際に、その折れ部分の形状的特徴から、当該左角部が直角であると判定され、かつステータスが［時計回転］と判定されたとする。なお、左角部以外の特徴点は図１２と同様に、角部の場合は直角であると判定されるとともに、［反時計回転］のステータスが得られているものとする。
【０１２６】
図１４の場合、１つの特徴点は［時計回転］のステータスを有し、他の５つの特徴点は［反時計回転］のステータスを有している。従って、図３のＳ１０７の処理において、最多数のステータスは［反時計回転］と決定される。この結果、Ｓ１０８の特徴点の選択時には、図１４の左角部は最多数のステータスと一致しない［時計回転］のステータスを有しているため、選択されない。結局、図１３の優先順位に従って右角部と末尾角部が選択され、この２つの特徴点に基づいて原稿の傾きが的確に検知される。
【０１２７】
また、原稿の先頭側が大きく折られて非長方形となっている場合の読取結果の例を図１５に示す。この図１５の例では、特徴点として先頭角部及び左角部が検出される際に直角でないと判定され、後端角部及び右角部については直角であると判定される。
【０１２８】
この場合、図３のＳ１０６の処理において、直角でない先頭角部及び左角部が除外される。従って、Ｓ１０７の最多数ステータスの決定処理及びＳ１０８の特徴点選択処理において、先頭角部及び左角部は無視される。結局、図１５の例では右角部と後端角部が選択され、この２つの特徴点に基づいて原稿の傾きが的確に検知される。
【０１２９】
図１６の例は非四角形の原稿を読み取らせた場合であり、検出された４つの角部全てにおいて直角でないと判定されている。この場合は、図３のＳ１０６の処理で４つの角部全てが除外されるため、Ｓ１０８の処理で平行辺の２点が選択される。従って、非四角形の原稿であっても平行辺を有していれば、その平行辺上の２点に基づいて傾きを的確に検出することができる。
【０１３０】
以上に説明した本実施形態の傾き検出処理は、原稿画素を検出して解析することにより、原稿内容の如何にかかわらず適切に傾きを検出することができる。また、折れ又は破れが生じている原稿、角丸長方形、非長方形、非四角形の原稿等、様々な状態及び形状の原稿について、的確に傾きを検出することができる。
【０１３１】
以上に示すように、本実施形態のイメージスキャナ装置が備える傾き検出部６７は、エッジ画素取得部７１と、特徴点検出部７２と、ステータス取得部７３と、傾き演算部７４と、を備える。そして、エッジ画素取得部７１は、画像データを１ラインずつ入力し、当該ラインにおいて原稿と背景の境界に位置する左端画素及び右端画素を検出する。また、特徴点検出部７２は、９本のラインにおける左端画素及び右端画素の少なくとも一方の位置の特徴に基づいて、原稿の特徴点の位置（角部及び平行辺上の点の位置）を検出する。ステータス取得部７３は、前記特徴点のそれぞれにおいて、当該特徴点の位置を含む９本のラインにおける左端画素及び右端画素の少なくとも一方の位置の特徴に基づいて、原稿の向きに関するステータスを求める。そして、傾き演算部７４は、複数の前記特徴点のステータスを集計して最多数のステータスを求め、この最多数のステータスと一致するステータスを有する特徴点から２つの特徴点を選択し、当該２つの特徴点の位置から、原稿の傾きを表す正接値を演算する。
【０１３２】
これにより、原稿の特徴点及びそのステータスを利用した総合的な判断による傾きの検出が可能になるので、傾きの検出精度に優れる。また、様々な形状の原稿について適切に傾きを検出することができる。
【０１３３】
また、前記傾き検出部６７は、最多数のステータスと一致するステータスを有する特徴点から、予め定められた優先順位に従って２つの特徴点を選択するように構成されている。
【０１３４】
これにより、前記優先順位を適切に定めておくことにより、傾きの検出精度を一層高めることができる。また、特徴点の選択のための処理を単純化できるので、傾き検出の処理時間を短縮できる。更に、読み取られる原稿の形状は必ずしも長方形であるとは限らないが、前記優先順位を変更可能とすることにより、原稿のどの部分からの特徴点の検出を優先させたいかをユーザが設定することができる。従って、原稿の先頭側を優先させる、原稿の左辺を優先させる等、様々なニーズに対応可能である。
【０１３５】
また、特徴点検出部７２は、原稿の角部を前記特徴点として検出可能に構成されている。
【０１３６】
これにより、特徴点として原稿の角部を利用することで、例えば先頭角部と左角部というように、十分に離れた２つの特徴点を傾きの演算のために選択することができる。従って、原稿の傾き（正接値）を精度良く検出することができる。
【０１３７】
また、特徴点検出部７２は、原稿の角部を前記特徴点として検出したときは、左端画素及び右端画素の少なくとも一方の位置の特徴に基づいて、当該角部の角度がほぼ直角か否かを判定するように構成されている。そして、傾き演算部７４は、前記角部の角度が直角でなかった場合は当該特徴点を除外してステータスを集計するとともに、前記最多数のステータスと一致するステータスを有する特徴点から前記角部を除外した上で、傾きの演算のための２つの特徴点を選択するように構成されている。
【０１３８】
これにより、例えば図１５及び図１６のような形状の原稿の場合に、直角でない角部に基づいて傾き（正接値）を演算することが防止されるので、傾きの誤検出を回避できる。
【０１３９】
また、特徴点検出部７２は、例えば図１６の平行辺（１）及び平行辺（２）で示すように、原稿の左側と右側（ラインの両端側）で向かい合う平行辺の一辺（左辺）上に位置し、かつ原稿の角部以外に位置する２つの点を、特徴点として取得可能に構成されている。
【０１４０】
これにより、一般的でない形状の原稿（例えば、非長方形又は非四角形の原稿）を読み取った場合でも、平行辺を有する形状であれば、その一辺に位置する２つの特徴点に基づいて原稿の傾きを適切に検出することができる。
【０１４１】
また、傾き演算部７４は、前記最多数のステータスを求めることができないときは、前記原稿の平行辺の一辺上に位置する２つの特徴点の位置から原稿の傾き（正接値）を演算するように構成されている。
【０１４２】
これにより、例えば角丸形状の原稿等、角部の正確な位置の検出が困難な場合であっても、平行辺を有していれば、当該平行辺に基づいて原稿の傾きを適切に検出することができる。従って、汎用性の高い傾き検出が実現される。
【０１４３】
また、本実施形態のイメージスキャナ装置１０１は、図２に示すように、原稿を読み取って画像データを取得する画像読取部１１５と、傾き補正部６８と、を備えている。そして、この傾き補正部６８は、画像読取部１１５によって得られた画像データを傾き検出部６７で処理することにより得られた傾き（正接値）に基づいて、その傾きを補正するように前記画像データを回転処理する。
【０１４４】
これにより、総合的な判断によって原稿の傾きを精度良く検出して傾き補正を行うことができる。また、様々な形状の原稿について傾き補正を適切に行うことができる。
【０１４５】
また、前記イメージスキャナ装置１０１において、傾き検出部６７のエッジ画素取得部７１は、画像読取部１１５の主走査方向に沿った各ラインにおいて、左端画素及び右端画素の位置を求めるように構成されている。
【０１４６】
このように主走査方向とラインの方向を一致させることで、画像読取時において主走査方向に連続的に入力される画素のデータを逐次処理しつつ、左端画素及び右端画素の位置を求めることが可能になる。従って、メモリに画像データを蓄積して改めて画素データをライン方向に読み出す等の処理を省略できるので、処理を単純化でき、読取画像の傾きの検出を高速に行うことができる。
【０１４７】
また、本実施形態において、前記画像読取部１１５は図１に示すようにフラットベッド部を備えている。
【０１４８】
これにより、原稿をフラットベッド部にセットする際に向きを真っ直ぐにしなくても、前記傾き補正部６８によって正常な向きに補正された画像を得ることができる。従って、フラットベッド部のプラテンガラス１０２上に原稿を自由な向きで載置してスキャンするような使用態様が可能になり、簡便な操作性を提供することができる。
【０１４９】
以上に本発明の好適な実施形態を説明したが、以上の構成は例えば以下のように変更することができる。
【０１５０】
図３のＳ１０２の処理では、前記押さえパッド１２１及び押さえ部材１２２の白色と原稿の白色との輝度の違いを利用して、原稿画素と背景画素の検出を行っている。しかしながら、原稿画素と背景画素の検出方法としては他の方法を採ることもできる。例えば、前記押さえパッド１２１及び押さえ部材１２２に黄色のプラテンシートを貼り付ける構成とすることが考えられる。この場合、入力されたＲＧＢ値から色に関するパラメータであるＣｂ値を公知の式により計算し、このＣｂ値と所定の閾値とを比較することにより原稿画素と背景画素を検出することができる。
【０１５１】
また、フラットベッド部のプラテンガラス１０２に原稿を載置し、原稿台カバー１０４を開いたままの状態でスキャンを行う場合が考えられる。この場合は、原稿のない範囲は反射光が検出されず黒画素として検出されることを利用して、ラインの両端側で黒として検出される画素を背景画素と認定することができる。具体的には、イメージスキャナ装置１０１が原稿台カバー１０４の開閉を検知する適宜のセンサを備えるように構成し、原稿台カバー１０４が開かれていることを前記センサが検知した場合に上記の処理を行うようにすれば良い。
【０１５２】
図３のＳ１０３の処理においては、２値化された１ライン分の画素をメモリに記憶した上で、当該ラインの一端から他端へ（及び他端から一端へ）向かって原稿画素を探索し、初めて現れた原稿画素の位置をエッジ画素と認定しても良い。ただし、上記の実施形態のように左端から右端へ１画素ずつ画素の変化を調べて２つのエッジ画素を認定する方が、メモリが不要になり、データを連続的に処理できる点で好ましい。
【０１５３】
Ｓ１０４の特徴点検出処理では、９ライン分の左端画素と右端画素の位置に基づいて特徴点の検出を行っている。しかしながら、何ライン分の左端画素及び右端画素の位置から特徴点を検出するかについては、検出角度に求められる精度、読取解像度、メモリの容量及び処理負荷等を考慮して適宜変更することができる。
【０１５４】
Ｓ１０４の処理で、４つの角部及び平行辺のほか、例えば左角部のラインにおける右端画素、及び、右角部のラインにおける左端画素を特徴点として検出するよう変更することができる。また、平行辺上の点を３点以上検出するように変更することができる。
【０１５５】
特徴点のステータスについては、傾きなし、時計回転、反時計回転のほか、例えば４５°回転のステータスを検出して記録することもできる。
【０１５６】
また、複数の特徴点のステータスを集計して得られる最多数のステータスが過半数の特徴点のステータスである場合にのみ傾きを検出し、過半数に届かない場合は傾きの検出を中止するように変更することができる。また、過半数とする代わりに、例えば２／３以上を占める場合にのみ傾きを検出するように変更することができる。
【０１５７】
図１３に示す優先順位については、イメージスキャナ装置１０１の用途と目的等に応じて適宜変更することができる。例えば、非長方形の原稿を多数読み取る用途が想定される場合、平行辺上の２点をより優先して選択するように変更することができる。
【０１５８】
また、可能な場合は、図３のＳ１０１〜Ｓ１０４のループを途中で抜けて処理時間を短縮するように変更することもできる。例えば図１２の場合で、画像を上端から１ラインずつ入力して処理すると、最初に先頭角部が検出され、次に左角部、平行辺（１）、平行辺（２）、・・・というように特徴点が順次検出されていくことになる。そして、平行辺（２）までが検出された時点で、今まで検出された４つの特徴点のステータスが全て［反時計回転］であった場合を考える。この場合は、その後に検出される右角部、末尾角部のステータスが何れであっても、最多数のステータスは［反時計回転］になることが確実である。従って、平行辺（２）までの４つの特徴点が検出された時点で、図３のＳ１０１〜Ｓ１０４のループ処理を打ち切ってＳ１０５以降の処理に移行し、図１３の優先順位に従って先頭角部及び左角部を選択し、傾きを演算するようにしても良い。こうすることにより、傾き検出の処理時間を良好に短縮でき、高速読取に好適である。
【０１５９】
上記の傾き検出処理は、カラー画像に限らず、モノクロ画像に対しても同様に適用することができる。
【０１６０】
上記の傾き検出処理は、イメージスキャナ装置１０１に限らず、他の画像読取装置、例えばコピー装置、ファクシミリ装置、複合機、光学式文字読取装置（ＯＣＲ）等に適用することができる。
【図面の簡単な説明】
【０１６１】
【図１】本発明の一実施形態に係るイメージスキャナ装置の全体的な構成を示す正面断面図。
【図２】イメージスキャナ装置の電気的構成を示すブロック図。
【図３】傾き検出部において実行される傾き検出処理のメインルーチンを示すフローチャート。
【図４】画像データから検出された原稿画素を示す説明図。
【図５】原稿の先頭角部を検出するサブルーチンのフローチャート。
【図６】原稿の先頭角部を検出する処理を示す説明図。
【図７】原稿の左角部を検出するサブルーチンのフローチャート。
【図８】原稿の左角部を検出する処理を示す説明図。
【図９】原稿の平行辺を検出するサブルーチンのフローチャート。
【図１０】原稿の平行辺を検出する処理を示す説明図。
【図１１】原稿の末尾角部を検出するサブルーチンのフローチャート。
【図１２】長方形の原稿について検出される輪郭の特徴点とそのステータスの例を示す説明図。
【図１３】傾きの計算のために２つの特徴点を選択する優先順位の一例を示す図。
【図１４】原稿の左角部に折れ及び破れがある場合の傾き検出処理を示す説明図。
【図１５】原稿の先頭部が大きく折れている場合の傾き検出処理を示す説明図。
【図１６】原稿が非四角形である場合の傾き検出処理を示す説明図。。
【符号の説明】
【０１６２】
１２Ｌ，Ｌ１〜Ｌ９  左端画素（第１エッジ画素）
１２Ｒ，Ｒ１〜Ｒ９  右端画素（第２エッジ画素）
６７  傾き検出部（画像処理装置）
６８  傾き補正部（回転処理部）
７１  エッジ画素取得部
７２  特徴点検出部
７３  ステータス取得部
７４  傾き演算部
１０１  イメージスキャナ装置（画像読取装置）
１１５  画像読取部
Ｓ１〜Ｓ９  ライン
【図１】
0004482898.tif 000002
【図２】
0004482898.tif 000003
【図３】
0004482898.tif 000004
【図４】
0004482898.tif 000005
【図５】
0004482898.tif 000006
【図６】
0004482898.tif 000007
【図７】
0004482898.tif 000008
【図８】
0004482898.tif 000009
【図９】
0004482898.tif 000010
【図１０】
0004482898.tif 000011
【図１１】
0004482898.tif 000012
【図１２】
0004482898.tif 000013
【図１３】
0004482898.tif 000014
【図１４】
0004482898.tif 000015
【図１５】
0004482898.tif 000016
【図１６】
0004482898.tif 000017