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