本発明の第1の観点によれば、以下の構成の画像処理装置が提供される。即ち、この画像処理装置は、エッジ画素取得部と、特徴点検出部と、ステータス取得部と、傾き演算部と、を備える。前記エッジ画素取得部は、原稿を読み取った画像データの各ラインにおいて原稿と背景の境界に位置する、当該ラインの一端側の第1エッジ画素及び他端側の第2エッジ画素の位置を求める。前記特徴点検出部は、複数のラインにおける前記第1エッジ画素及び前記第2エッジ画素の少なくとも一方の位置の特徴に基づいて、原稿の輪郭の図形的特徴部分に位置する点である特徴点を検出する。前記ステータス取得部は、前記特徴点のそれぞれにおいて、当該特徴点の位置を含むライン又はその近傍のラインにおける前記第1エッジ画素及び前記第2エッジ画素の少なくとも一方の位置の特徴に基づいて、原稿が傾きなしであるか、一側に傾いているか、他側に傾いているか、のステータスを求める。前記傾き演算部は、複数の前記特徴点のステータスを集計して最多数のステータスを求め、当該最多数のステータスと一致するステータスを有する特徴点から2つの特徴点を選択し、当該2つの特徴点の位置から原稿の傾きの度合いを表現する値を演算する。
なお、「傾きなし」のステータスとは、回転が必要ないという意味のステータスを含むものである。また、「一側(他側)に傾いている」のステータスとは、その傾きを矯正する方向に回転すべきであるという意味のステータスを含むものである。
この構成により、原稿の内容ではなく原稿そのものの輪郭的特徴に基づいて傾きを検出するため、原稿の傾きを直接的かつ的確に検出できる。また、原稿の輪郭の特徴点及びそのステータスを利用した総合的な判断によって傾きを検出するので、原稿の傾きを精度良く検出することができるとともに、非長方形の原稿(例えば辺が非直線となっている原稿)を含む様々な形状の原稿について適切に傾きを検出することができる。
前記画像処理装置においては、前記傾き演算部は、前記最多数のステータスと一致するステータスを有する特徴点から、予め定められた優先順位に従って2つの特徴点を選択することが好ましい。
この構成により、優先順位を適切に定めておくことで、傾きの検出精度を一層高めることができる。特に、原稿の角部等に折れ、破れ、丸み、歪み、シワ等が発生している等の場合でも、傾きを適切に検出できる。また、特徴点の選択のための処理を単純化できるので、傾き検出の処理時間を短縮できる。
この構成により、特徴点として原稿の角部を利用することで、十分に離れた2つの特徴点を傾きの演算のために選択することができ、原稿の傾きに関する値を精度良く検出することができる。
前記画像処理装置においては、以下の構成とすることが好ましい。即ち、前記特徴点検出部は、原稿の角部を前記特徴点として検出したときは、前記第1エッジ画素及び前記第2エッジ画素の少なくとも一方の位置の特徴に基づいて当該角部の角度が直角か否かを判定する。前記傾き演算部は、前記角部の角度が直角でなかった場合は当該特徴点を除外してステータスを集計するとともに、前記最多数のステータスと一致するステータスを有する特徴点から前記角部を除外した上で2つの特徴点を選択する。
この構成により、一般的でない形状の原稿(例えば、角丸長方形、非長方形又は非四角形の原稿)を読み取った場合でも、平行辺を有する形状であれば、その一辺に位置する2つの特徴点に基づいて原稿の傾きを適切に検出することができる。例えば、作成されてから長期間が経過した文書の原稿は、特に角部に折れ、破れ、丸み等が生じることが多いが、この場合でも平行辺に基づいて傾きを適切に検出することができる。また、例えば原稿の紙を一旦丸めて伸ばしたような複雑な形状の原稿でも、原稿の一部で平行辺となっている部分を検出できれば、それに基づいて傾きを一定の精度で検出することができる。
前記画像処理装置においては、前記傾き演算部は、前記最多数のステータスを求めることができないときは、前記原稿の平行辺の一辺上に位置する2つの特徴点の位置から原稿の傾きの度合いを表現する値を演算することが好ましい。
これにより、例えば角丸形状の原稿等、角部の正確な位置の検出が困難な場合であっても、平行辺を有していれば、当該平行辺に基づいて原稿の傾きを適切に検出することができる。従って、汎用性の高い傾き検出が実現される。
本発明の第2の観点によれば、前記画像処理装置を備える画像読取装置の以下の構成が提供される。即ち、この画像読取装置は、原稿を読み取って画像データを取得する画像読取部と、前記画像データから前記画像処理装置により得られた傾きの度合いを表現する値に基づいて、その傾きを補正するように前記画像データを回転処理する回転処理部と、を備える。
この構成により、画像読取部で読み取られた画像データに対し、複数の特徴点とそのステータスを利用した総合的な判断によって、原稿の傾きを精度良く検出して補正することができる。また、幅広い形状の原稿について、傾きを適切に補正することができる。
前記の画像読取装置においては、前記画像処理装置の前記エッジ画素取得部は、前記画像読取部の主走査方向に沿った各ラインにおいて前記第1エッジ画素及び前記第2エッジ画素の位置を求めるように構成されていることが好ましい。
この構成により、読取時において主走査方向に連続的に入力される画素のデータを逐次処理しつつ、エッジ画素の位置を求めることが可能になる。従って、メモリへの蓄積及び読出処理等を省略できるので、処理を単純化でき、読取画像の傾きの検出を高速に行うことができる。
この構成により、原稿をフラットベッド部にセットする際に向きを真っ直ぐにしなくても、前記傾き演算部と回転処理部により、正常な向きに補正された画像を得ることができる。従って、フラットベッド部に原稿を自由な向きでセットしてスキャンするような使用態様が可能になり、簡便な操作性を提供することができる。
次に、発明の実施の形態を説明する。図1は本発明の一実施形態に係るイメージスキャナ装置の全体的な構成を示す正面断面図である。
図1に示すように、画像読取装置としてのイメージスキャナ装置101は、オートドキュメントフィーダ部及びフラットベッド部からなる画像読取部115を備えている。
以下、具体的に説明する。即ち、このイメージスキャナ装置101は、読取原稿を載置するプラテンガラス102が配設された原稿台103と、この読取原稿を前記プラテンガラス上に押圧した状態で保持するための原稿台カバー104と、を備えている。また、イメージスキャナ装置101には、原稿の読取開始等を指示するための図略の操作パネルが備えられている。原稿台カバー104の下面には、原稿を下向きに押し付けるための押さえパッド121が、前記プラテンガラス102に対面するように取り付けられている。
前記原稿台カバー104には、オートドキュメントフィーダ(自動原稿送り装置)107が配設されている。このオートドキュメントフィーダ107は、原稿台カバー104の上部に設けられた原稿トレイ111と、この原稿トレイ111の下方に設けられた排紙トレイ112と、を備える。
図1に示すように、前記原稿台カバー104の内部には、原稿トレイ111と排紙トレイ112とを繋ぐ湾曲状の原稿搬送経路113が構成されている。この原稿搬送経路113には、ピックアップローラ51と、分離ローラ52と、分離パッド53と、搬送ローラ55と、排紙ローラ58と、が配置されている。
ピックアップローラ51は原稿トレイ111上の読取原稿を繰り込み、分離ローラ52及び分離パッド53は、繰り込まれた原稿を1枚ずつ分離するように構成されている。搬送ローラ55は、分離された原稿を原稿読取位置Pに向けて搬送し、排紙ローラ58は、読取後の原稿を排紙トレイ112へ排出するように構成されている。また、前記原稿読取位置Pにおいて、プラテンガラスに対向するように押さえ部材122が備えられている。
上記の構成で、原稿トレイ111に重ねてセットされた読取原稿は、1枚ずつ分離されて湾曲状の前記原稿搬送経路113に沿って搬送され、原稿読取位置Pを通過して後述のスキャナユニット21によって読み取られた後、排紙トレイ112へ排出される。
図1に示すように、前記原稿台103の内部にはスキャナユニット21が備えられる。このスキャナユニット21は、原稿台103の内部で移動可能なキャリッジを備えている。
このキャリッジ30は、光源としての蛍光ランプ22と、反射ミラー23,23・・・と、集光レンズ27と、電荷結合素子(CCD)28と、を備える。蛍光ランプ22は読取原稿に対して光を照射し、読取原稿からの反射光は、複数の反射ミラー23,23・・・で反射した後、集光レンズ27を通過して収束してCCD28表面に結像する。前記CCD28は、入射された収束光を電気信号に変換して出力する。
本実施形態において前記CCD28は3ライン式のカラーCCDとされている。このCCD28は、主走査方向(原稿の幅方向)に細長く延びる一次元ラインセンサが赤、緑、青(RGB)の各色について設けられるとともに、各ラインセンサに対応して異なるカラーフィルタを備えた構成となっている。
前記原稿台103の内部には、駆動プーリ47及び従動プーリ48が回転自在に支持される。そして、駆動プーリ47及び従動プーリ48の間に無端状の駆動ベルト49が張架され、この駆動ベルト49の適宜箇所に前記キャリッジ30が固定されている。この構成で、前記駆動プーリ47を図略の電動モータで正逆駆動することにより、キャリッジ30を副走査方向に沿って水平に走行させることができる。
この構成で、前記原稿読取位置Pに対応する位置に前記キャリッジ30を予め移動させた状態で、オートドキュメントフィーダ107を駆動する。すると、原稿搬送経路113を搬送される読取原稿が原稿読取位置Pにおいて走査され、蛍光ランプ22から照射されて読取原稿で反射した反射光はキャリッジ30内へ導入され、反射ミラー23,23・・・により集光レンズ27を通してCCD28へ導かれて結像する。この結果、CCD28は読取内容に応じた電気信号を出力することができる。
また、フラットベッドスキャナとして使用する場合は、キャリッジ30をプラテンガラス102に沿って一定の速度で移動させながら、当該プラテンガラス102上に載置された読取原稿を走査する。原稿からの反射光は、上記と同様にキャリッジ30内のCCD28へ導かれて結像する。
図2はイメージスキャナ装置101のブロック図である。図2に示すように、イメージスキャナ装置101は前記スキャナユニット21のほか、CPU41と、ROM42と、画像処理部43と、イメージメモリ66と、傾き検出部67と、傾き補正部68と、符号変換部69と、出力制御部70と、を備えている。
CPU41は、イメージスキャナ装置101に備えられるスキャナユニット21、傾き検出部67、傾き補正部68、出力制御部70等を制御するための制御部として設けられている。この制御のためのプログラム及びデータ等は、記憶部としてのROM42に格納されている。
前記スキャナユニット21はアナログフロントエンド(AFE)63を備えており、このAFE63はCCD28に接続されている。原稿読取時において、CCD28が備えるRGB各色の前記ラインセンサは、原稿内容を主走査方向に走査して1ライン分を読み取り、各ラインセンサの信号は前記AFE63によってアナログ信号からデジタル信号に変換される。この主走査により、1ライン分の画素のデータがRGB各色の階調値としてAFE63から出力される。以上の処理を、原稿又はキャリッジ30を副走査方向に微小距離ずつ送りながら反復することで、原稿全体の画像データをデジタル信号として得ることができる。
スキャナユニット21は画像処理部65を備えており、前記AFE63が出力する画像データのデジタル信号は、この画像処理部65に入力される。この画像処理部65は、主走査ごとに1ラインずつ入力される画素データに対しシェーディング補正を行って、スキャナユニット21の光学系に起因する読取ムラの補正を行う。また画像処理部65は、前記画素データに対し、CCD28におけるRGB各色のラインセンサの配置間隔(ラインギャップ)を原因とする色ズレを矯正する補正を行う。
前記イメージメモリ66は、スキャナユニット21で読み取った画像を蓄積するためのものである。スキャナユニット21で読み取られた画像データは、画像処理部43において公知の画像処理(フィルタ処理等)が更に行われた後、イメージメモリ66に入力されて蓄積される。
イメージスキャナ装置101は、前記CCD28で読み取られた原稿の傾きを検出するための傾き検出部(画像処理装置)67を備えている。この傾き検出部67は、スキャナユニット21の画像処理部65から画像データが1ラインずつ入力されると、その画像データを解析する処理を行い、原稿の傾き(その傾きを矯正するために回転すべき角)を検出する。
この傾き検出部67は、エッジ画素取得部71と、特徴点検出部72と、ステータス取得部73と、傾き演算部74と、を備えている。
前記エッジ画素取得部71は、スキャナユニット21から画像データが1ラインずつ入力されるごとに、当該ラインにおいて原稿の輪郭部分(言い換えれば、原稿と背景の境界)に位置するエッジ画素の位置を求めることが可能に構成されている。
前記特徴点検出部72は、前記エッジ画素取得部71により得られたエッジ画素の位置を、所定本数のライン分だけ記憶することができる。そして、その複数本のラインにおける当該エッジ画素の位置の特徴に基づいて、原稿の輪郭に関する特徴点を検出し、その特徴点の位置を求めることができる。なお、本明細書において「特徴点」とは、原稿の輪郭の図形的特徴部分に位置する点をいい、例えば原稿の角部の頂点である。
前記ステータス取得部73は、特徴点検出部72で取得された特徴点を含むライン又はその近傍のラインにおけるエッジ画素の位置の特徴を調べる。そしてステータス取得部73は、その結果に基づいて、原稿の向きに関するステータス(傾きなしであるか、一側に傾いているか、他側に傾いているか)を求めることが可能に構成されている。
前記角度演算部74は、それぞれの特徴点のステータスを集計して最多数のステータスを求め、この最多数のステータスと一致するステータスを有する特徴点から2つの特徴点を選択し、この選択された特徴点の位置から原稿の傾きに関する値(傾きを表現するパラメータ。本実施形態では、正接値)を演算して取得する。
なお、上述したエッジ画素取得部71、特徴点検出部72、ステータス取得部73、及び角度演算部74による傾き検出処理の詳細は後述する。
傾き補正部68は、前記傾き検出部67で得られた傾き(正接値)に基づいてイメージメモリ66の画像データを読出し時に回転処理し、原稿の傾きを電子的に補正する。
符号変換部69は、イメージメモリ66に保存された画像データに対し、例えばJPEG等の公知の圧縮処理を行って符号化する。
出力制御部70は、符号化された画像データを、イメージスキャナ装置101と接続される上位装置としてのパーソナルコンピュータ(図略)に送信する。送信方法は任意であるが、例えば、ローカルエリアネットワーク(LAN)を用いる方法、及びユニバーサルシリアルバス(USB)を用いる方法等が考えられる。
本実施形態において、画像処理部65、傾き検出部67、傾き補正部68、及び符号変換部69等は、例えばASICやFPGA等のハードウェアを用いて実現されている。ただし、前記画像処理部65及び傾き検出部67等は、CPU41とプログラムの組合せ等により実現してもよい。
次に、前記傾き検出部67による原稿の傾きの検出処理について、図3のフローチャートを参照しながら説明する。図3には、傾き検出処理のメインルーチンが示されている。
図3のメインルーチンが開始されると、傾き検出部67は先ず、前記画像処理部65が出力する画素データを1ライン分入力する(S101)。次に、入力された1ライン分の画素データから原稿画素と背景画素とを検出する処理を行う(S102)。
本実施形態において、原稿画素及び背景画素の検出処理は以下のようにして行う。即ち、本実施形態において、走査される原稿の裏面側に配置される前記押さえパッド121及び押さえ部材122(図1)の表面には、通常の紙よりも明るい白色のシート(プラテンシート)が貼り付けられている。従って、CCD28で読み取られた画像データにおいて、原稿の周囲の背景部分は輝度が高くなる。
これを利用して、S102の処理では、画素データのRGB成分から公知の式に従って輝度(Y成分)を計算する画像処理を行い、その輝度が所定の閾値以上である場合は背景画素、前記閾値を下回る場合は原稿画素とする2値化処理を行う。本実施形態では、背景画素を「0」、原稿画素を「1」で表すこととしている。
なお、原稿画素と背景画素の検出精度の観点からは、S102の処理の前に、元の画像データに対してシェーディング補正、ガンマ補正等の適宜の画像処理を行うことが好ましい。また、前記シェーディング補正においてシェーディングデータの白に所定量を加算し、通常よりも明るい値を生成して処理することにより、原稿と背景とを容易に区別することができる。なお、押さえパッド121及び押さえ部材122のプラテンシートを黒色とし、主走査方向の端部側で読み取られる黒画素を背景画素とみなすことで、原稿と背景を識別することもできる。また、イメージスキャナ装置101をフラットベッドスキャナとして使用する場合であって、前記原稿台カバー104を開いた状態でブック原稿を読み取る場合についても、同様に、主走査方向の端部側で読み取られる黒画素を背景画素として識別することができる。
これにより、図4に示すように、画像データから原稿領域を判定することができる。なお、図4において、細かく区切られた1つのマスが1つの画素に対応するとともに、空白のマスが背景画素を、斜線が引かれたマスが原稿画素をそれぞれ表している。また、図4においてX方向が主走査方向であり、Y方向が副走査方向である。
図4では原稿画素の領域全体を判り易く示すために画像データ全体が描かれているが、図3のS102で示す原稿画素及び背景画素の検出処理は、主走査方向と同方向のラインに沿って1画素ずつ逐次行われる。また、以降の説明では、長方形の原稿が斜行した状態でオートドキュメントフィーダ部により搬送され、スキャナユニット21で読み取られた結果、図4に示すように、正規の向きから反時計方向に若干回転した長方形の画像が原稿画素領域として得られる場合で説明する。なお、フラットベッドスキャナ部の前記プラテンガラス102に長方形の原稿が斜めにセットされて読み取られた場合でも、図4に示すように傾いた画像が原稿画素領域として得られる。前記傾き検出部67では、画像データが図4の上端のラインから1ラインずつ処理され、最後に下端のラインが処理されることになる。
前述したように、図3のS102の処理は、1ライン毎に、各ラインの一端から他端(左端から右端)に向かって1画素ずつ順次行われる。また、このS102の処理が1画素分完了する毎に、2値化後のデータの変化が調べられる(S103)。そして、S103の処理では、各ラインにおいて左端から画素を順次処理したときに、2値化後の画素が最初に「0」から「1」(即ち、背景から原稿)に変化した箇所での「1」となった画素を、第1エッジ画素(左端画素)と認定する。また、2値化後の画素が最後に「1」から「0」(即ち、原稿から背景)に変化した箇所での「1」であった画素を、第2エッジ画素(右端画素)と認定する。
こうして得られた2つのエッジ画素(左端画素及び右端画素)は、当該ラインにおいて原稿と背景の境界(言い換えれば原稿の輪郭)を示すことになる。S103の処理では、左端画素及び右端画素の位置を、適宜の記憶手段としてのメモリに記憶する。
本実施形態の傾き検出部67は、こうして得られた2つのエッジ画素の位置を、現在処理している1ライン分と、直近に処理した8ライン分の、計9ライン分だけ記憶することができる。図4には、ある瞬間において処理対象とされているラインが符号S1で示されるとともに、直近に処理された8本のラインが符号S2〜S9で示されている。また、図4では、各ラインS1〜S9において検出された左端画素12L及び右端画素12Rの位置に相当するマスに、細かいハッチングが施されている。
エッジ画素の検出処理後は、この9ライン分の左端画素12L及び右端画素12Rの位置の特徴に基づいて、原稿の輪郭に関する特徴点(例えば、原稿の角部の頂点等)を検出する(S104)。
以下、この特徴点を検出する具体的処理の第1例として、原稿の先頭側に位置する角部(先頭角部)を検出する処理を図5に基づいて説明する。図5のフローは、図3のS104の処理で実行されるサブルーチンの1つを示している。
図5のサブルーチンでは最初に、最も過去に処理したラインから現在処理中のラインに至る9ラインにおいて、過去のラインから新しいラインに1ラインずつ近づくに従って、左端画素が連続して同位置又は左へ移動しているか否かを調べる(S201)。この条件を満たさない場合は、先頭角部を検出できなかったものとしてサブルーチンを終了する。
S201の条件が満たされていた場合は、最も過去に処理したラインから現在処理中のラインに1ラインずつ近づくに従って、右端画素が連続して同位置又は右へ移動しているか否かを調べる(S202)。S202の条件が満たされた場合は、先頭角部を認定する(S203)。条件を満たさない場合は、先頭角部を検出できなかったものとしてサブルーチンを終了する。
S201〜S202の判断について、図6を参照して詳細に説明する。図6には、現在処理対象となっているラインS1が示されており、図3のS103の処理の結果、左端画素L1及び右端画素R1の位置が図6に示すように得られたとする。また、過去の直近8ライン分の処理において、左端画素L2〜L9及び右端画素R2〜R9の位置がそれぞれ得られ、記憶されているものとする。
この場合において、図5のS201の処理では上述したとおり、9ライン分の領域において、過去のラインから新しいラインに1ラインずつ近づくに従って、左端画素が同位置又は左に移動しているか否かが判断される。
例えば図6の場合、左端画素の位置は、最も過去のラインS9から1つ新しいラインS8へ移行するに従って、L9からL8へと左端へ近づく向きに移動している。ラインS8からラインS7へ移行する場合、・・・、ラインS2から現在処理中のラインS1に移行する場合も同様である(L8〜L1)。従って、図6の場合、図5のS201の条件は満たすと判定される。
また、S202の処理では、9ライン分の領域において、過去のラインから新しいラインに1ラインずつ近づくに従って、右端画素が同位置又は右に移動しているか否かが判定される。
図6の例で説明すると、最も過去のラインS9から1つ新しいラインS8へ移行するに従って、右端画素の位置はR9からR8へと右端へ近づく向きに移動している。ラインS8からラインS7へ移動する場合は、R8とR7から明らかであるように、右端画素は同位置である。ラインS7からラインS6へ移行する場合、ラインS6からラインS5へ移行する場合も、右端画素は同位置である(R7〜R5)。ラインS5から現在処理中のラインS4へ移行する場合は、右端画素はR5からR4へと右端へ近づく向きに移動している。ラインS4からラインS3へ移行する場合、ラインS3からラインS2へ移行する場合は、右端画素は同位置である。ラインS2から現在処理中のラインS1へ移行する場合は、右端画素はR2からR1へと右端へ近づく向きに移動している。従って、図6の場合、図5のS202の条件は満たすと判定される。
従って、図6の例では前記サブルーチンはS203の処理に移行し、原稿の先頭角部が認定されることになる。具体的には、最も過去に処理したラインS9上の原稿画素の位置を先頭角部の位置として認定する。図6では、ラインS9上の原稿画素は1つだけであり、この画素が先頭角部として認定される(黒塗りのマスで図示)。こうして検知された原稿の先頭角部の位置は、適宜のメモリに記憶される。
以上のようにして原稿の先頭角部が検出されると、次に図5のS204の処理で、当該角部が直角であるか否かを調べる。
この直角の判定は以下のように、9本のライン上の左端画素及び右端画素の位置の特徴に基づいて行う。具体的には、先ず、最も過去のラインS9から現在のラインS1に8本分移行するまでに左端画素が左端側へ移動した距離DLxと、右端画素が右端側へ移動した距離DRxを求める。
そして、DLx>DRxの場合、最も過去のラインS9からDRx本だけ新しいラインに移行するまでに左端画素が左端側へ移動した距離DLが8に(実質的に)等しいか否かを調べ、等しい場合は直角であると判定し、等しくない場合は直角でないと判定する。
一方、DLx<DRxの場合、最も過去のラインS9からDLx本だけ新しいラインに移行するまでに右端画素が右端側へ移動した距離DRが8に(実質的に)等しいか否かを調べ、等しい場合は直角であると判定し、等しくない場合は直角でないと判定する。
図6の例では、最も過去のラインS9から現在のラインS1に移行するまでに、左端画素は左端側へ42画素分だけ、右端画素は右端側へ2画素分だけそれぞれ移動している(L9とL1、R9とR1の位置を参照)。従って、DLx=42,DRx=2となり、DLx>DRxである。そして、最も過去のラインS9から2本だけ新しいラインS7に移行するまでに、左端画素はL9からL7まで左端側へ8画素分移動しており、DL=8である。従って、図6の例において、図5のS204の処理では先頭角部は垂直であると判定される。
次にS205の処理で、原稿の向きに関するステータスを求める。このステータスは、原稿が傾きなしであるか、時計方向に回転しているか、反時計方向に回転しているか、の状態を示すものである。なお、このステータスは上記に代えて、原稿の回転の必要なしであるか、反時計方向に回転すべきであるか、時計方向に回転すべきであるか、という状態を示すようにしても良いことは勿論である。
具体的には、前述の距離DLx及びDRxがDLx>DRxの関係を満たせば反時計方向の回転、DLx<DRxの関係を満たせば時計方向の回転と判定する。なお、DLx=0かつDRx=0であれば、傾きなしと判定される。
図6の例ではDLx>DRxとなるので、図5のS205において画像は反時計方向に回転していると判定される。従って、S205の処理では、[反時計回転]のステータスを、S203の処理で求めた先頭角部の位置と対応付けて適宜のメモリに記憶する。
次に、特徴点を検出する具体的処理の第2例として、原稿の左側に位置する角部(左角部)を検出する処理を図7に基づいて説明する。図7のフローは、図5のフローと同様に、図3のS104で実行されるサブルーチンの1つを示している。
図7のサブルーチンが実行されると、最初に、前記9ラインのうち、最も過去に処理したラインS9から中央のラインS5までの5本分のラインにおける左端画素の位置を調べる(S301)。具体的には、S9〜S5のラインにおいて、過去のラインから新しいラインに1ラインずつ近づくごとに、左端画素が同位置又は左へ移動しているか否かを調べる。この条件を満たさない場合は、左角部を検出できなかったものとしてサブルーチンを終了する。
S301の条件が満たされていた場合は、中央のラインS5から現在処理しているラインS1までの5本分のラインにおける右端画素の位置を調べる(S302)。具体的には、S5〜S1のラインにおいて、過去のラインから新しいラインに1ラインずつ近づくごとに、左端画素が同位置又は右へ移動しているか否かを調べる。この条件が満たされた場合は、左角部を認定する(S303)。条件を満たさない場合は、左角部を検出できなかったものとしてサブルーチンを終了する。
S301〜S302の判断について、図8を参照して詳細に説明する。図8には、現在処理対象となっているラインS1が示されており、図3のS103の処理によって、左端画素L1の位置が図8に示すように得られたとする。また、過去の直近8ライン分の処理において、左端画素L2〜L9の位置がそれぞれ得られ、記憶されているものとする。
この場合において、図7のS301の処理では上述したとおり、S9〜S5の5ライン分の領域において、過去のラインから新しいラインに1ラインずつ近づくに従って、左端画素が同位置又は左に移動しているかが調べられる。
例えば図8の場合、左端画素の位置は、最も過去のラインS9から1つ新しいラインS8へ移行するに従って、L9からL8へと左端へ近づく向きに移動している。ラインS8からラインS7へ移行する場合、・・・、ラインS6からラインS5に移行する場合も同様である(L8〜L5)。従って、図8の場合、図7のS301の条件は満たすと判定される。
また、S302の処理では、S5〜S1の5ライン分の領域において、過去のラインから新しいラインに1ラインずつ近づくに従って、左端画素が同位置又は右に移動しているか否かが判定される。
この点、図8の例では、ラインS5から1つ新しいラインS4へ移行するとき、L5とL4から明らかであるように、左端画素は同位置である。ラインS4からラインS3へ移行する場合、ラインS3からラインS2へ移行する場合も、左端画素は同位置である(L4〜L2)。ラインS2から現在処理中のラインS1へ移行する場合は、左端画素はL2からL1へと右端へ近づく向きに移動している。従って、図8の場合、図7のS302の条件は満たすと判定される。
従って、図8の例では前記サブルーチンはS303の処理に移行し、原稿の左角部が認定されることになる。具体的には、図8に示すように、9本のラインの中央に位置するラインS5上の左端画素L5の位置を、左角部の位置として認定する(黒塗りのマスで図示)。こうして検知された原稿の左角部の位置は、適宜のメモリに記憶される。
原稿の左角部が検出された場合、図7のS304の処理で、当該角部が直角であるか否かを判定する。
この直角の判定は以下のようにして行う。即ち、最も過去に処理したラインS9から中央のラインS5に移行するまでに左端画素が左端側へ移動した距離DLxaを求める。また、中央のラインS5から現在処理しているラインS1まで左端画素が右端側へ移動した距離DLxb求める。
そして、DLxa>DLxbの場合、中央のラインS5からDLxbだけ古いラインに移行するまでに左端画素が右端側へ移動した距離DLが4に(実質的に)等しいか否かを調べ、等しい場合は直角であると判定し、等しくない場合は直角でないと判定する。
一方、DLxa<DLxbの場合、中央のラインS5からDLxa本だけ新しいラインに移行するまでに左端画素が右端側へ移動した距離DRが4に(実質的に)等しいか否かを調べ、等しい場合は直角であると判定し、等しくない場合は直角でないと判定する。
図8の例では、最も過去のラインS9から中央のラインS5へ移行するまでに、左端画素は左端側へ19画素分だけ移動している(L9とL5の位置を参照)。また、中央のラインS5から現在の処理対象のラインS1へ移行するまでに、左端画素は右端側へ1画素分だけ移動している(L5とL1の位置を参照)。従って、DLxa=19,DLxb=1となり、DLxa>DLxbである。そして、中央のラインS5から1本だけ古いラインS6に移行するまでに、左端画素はL5からL6まで右端側へ4画素分移動しており、DL=4である。従って、図8の例において、図7のS304の処理では左角部は垂直であると判定される。
次にS305の処理で、原稿の向きに関するステータスを求める。具体的には、前述の距離DLxa及びDLxbがDLxa>DRxbの関係を満たせば反時計方向の回転、DLxa<DRxbの関係を満たせば時計方向の回転と判定する。
図8の例では、DLxa>DLxbとなるので、画像は反時計方向に回転していると判定される。従って、S305の処理では、[反時計回転]のステータスを、S303の処理で求めた左角部の位置と対応付けて適宜のメモリに記憶する。
次に、特徴点を検出する具体的処理の第3例として、原稿の平行辺上の点を検出する処理を図9に基づいて説明する。図9のフローは、図5及び図7のフローと同様に、図3のS104の処理で実行されるサブルーチンの1つを示している。
図9のサブルーチンでは最初に、前記9ラインの何れにおいても、左端画素から右端画素までの距離が(実質的に)等しいか否かを調べる(S401)。S401の条件が満たされた場合は、平行辺を認定する(S402)。条件を満たさない場合は、平行辺を検出できなかったものとしてサブルーチンを終了する。
S401の判断について、図10を参照して詳細に説明する。図10には、現在処理対象となっているラインS1が示されており、図3に示すS103の処理の結果、左端画素L1及び右端画素R1の位置が図10に示すように得られたとする。また、過去の直近8ライン分の処理において、左端画素L2〜L9及び右端画素R2〜R9の位置がそれぞれ得られ、記憶されているものとする。
この場合において、S401の処理では上述したとおり、S1〜S9の9本のラインそれぞれにおいて、左端画素と右端画素との間の距離が等しいか否かが調べられる。
例えば図10の場合、左端画素から右端画素までの距離は、図面から明らかであるように9本のラインS1〜S9において全く一致している。従って、図10の場合、図9のS401の条件は満たすと判定される。
従って、図10の例では前記サブルーチンはS402の処理に移行し、原稿の平行辺が認定されることになる。このS402の処理では、平行辺上の何れかの点を代表させて、その位置を適宜のメモリに記憶させる。本実施形態では、現在処理対象となっているラインS1上の左端画素L1の位置を特徴点として記憶させている(黒塗りのマスで図示)。ただし、右端画素の位置を特徴点としても良いし、過去に処理したラインS2〜S9上のエッジ画素の位置を特徴点としても良い。なお、左端画素及び右端画素の両方の位置を特徴点とすると、平行線に基づく特徴量が多くなり、精度が良くなる点で好ましい。
次に、図9のS403の処理で、原稿の向きに関するステータスを求める。具体的には、最も過去に処理したラインS9の左端画素の位置(L9)と、現在処理対象となっているラインS1の左端画素の位置(L1)と、を比較する。そして、L1の位置がL9の位置よりも左端側に近い場合は時計方向の回転と判定し、L9の位置がL1の位置よりも左端側に近い場合は反時計方向の回転と判定する。なお、L1とL9が同位置である場合は、傾きなしと判定する。
図10の例では、L9の位置がL1の位置よりも左端側に近い。従って、S403の処理では、[反時計回転]のステータスを、S402の処理で求めた平行辺上の点の位置と対応付けて適宜のメモリに記憶する。その後、サブルーチンを終了する。
なお、例えば長方形の原稿を読み取った場合は、平行辺上の特徴点が連続的に多数検出されることになる。これを避けるため、一度平行辺を検出した場合は、所定のライン数だけ検出しないようにすることが望ましい。この所定ライン数は、解像度、検出角度の精度等に応じて決定される。例えば読取解像度が200dpiである場合、平行辺の検出をスキップするライン数を200とすると、少なくとも25.4mm以上の間隔をあけて平行辺上の特徴点が検出されることになる。
以上に説明した3つのサブルーチンを実行することにより、原稿の先頭角部、左角部、及び平行辺を検出することができる。なお、メインルーチンのS104の処理では、上記のほか、原稿の末尾側に位置する角部(末尾角部)及び右側に位置する角部(右角部)の検出のためのサブルーチンも併せて実行される。右角部の検出のためのサブルーチンは、前述した左角部の検出のためのサブルーチンにおいて主走査方向の位置関係を逆にすることで実現できるので、説明を省略する。
末尾角部の検出のためのサブルーチンについて、図11を参照して説明する。図11のサブルーチンでは最初に、最も過去に処理したラインから現在ラインの直前のラインまでの8ラインにおいて、過去のラインから新しいラインに1ラインずつ近づくに従って、左端画素が連続して同位置又は右へ移動しているか否かを調べる(S501)。この条件を満たさない場合は、末尾角部を検出できなかったものとしてサブルーチンを終了する。
S501の条件が満たされていた場合は、最も過去に処理したラインから現在ラインの直前のラインまでに1ラインずつ近づくに従って、右端画素が連続して同位置又は左へ移動しているか否かを調べる(S502)。この条件を満たさない場合は、末尾角部を検出できなかったものとしてサブルーチンを終了する。
S502の条件が満たされていた場合は、現在処理しているラインにおいて、左端画素及び右端画素が検出されているか否かを調べる(S503)。検出されていない場合は、末尾角部を認定し、その位置を求めて記録する(S504)。検出された場合は、末尾角部を検出できなかったものとしてサブルーチンを終了する。
即ち、ラインが原稿の末尾角部に近づくに従って、左端画素は右側へ移動し、右端画素は左側へ移動し、ラインが原稿の末尾角部を過ぎると原稿画素が検出されなくなる。上記のS501〜S504の処理は、この末尾角部の特徴を用いて末尾角部の判定を自動的に行っている。
次に、検出された末尾角部が直角か否かを判定して記録する(S505)。また、原稿の向きに関するステータスを求めて記録する(S506)。このS505及びS506の処理は、先頭角部の検出処理(図5)における直角判定処理(S204)及び向き判定処理(S205)と実質的に同様であるので、説明を省略する。
上記の各サブルーチンの処理が終わり、図3のS104の処理が完了すると、全てのラインの画素データが入力されたか否かを判断する(S105)。そして、全ラインの入力がまだ完了していない場合は、S101の処理に戻る。
以上のフローにより、全ライン分の原稿読取データが入力されるまで、S103、S104の処理が1ラインの入力ごとに反復される。従って、このS101〜S104のループ処理によって、原稿の先頭角部、左角部、末尾角部、右角部、及び平行辺を表す特徴点が検知されることになる。また、特徴点が検知される毎に、当該特徴点の位置と、(角部について)直角であるか否かの判定結果と、原稿の向きに関するステータスと、が記憶される。
図12には、検知された特徴点の位置と、それぞれの特徴点において得られた直角判定及びステータスの例が示されている。なお、平行辺については、互いに十分に離れた2つの点(平行辺(1)及び平行辺(2))が認定され、そのそれぞれの位置とステータスが記憶されている。
全ライン分のデータについて処理が完了すると、メインルーチンは図3のS106の処理に移行する。このS106の処理では、S104で検知された特徴点から、直角でないと判定された角部の特徴点を除外する。除外された特徴点は、後述のS107、S108の処理において考慮されない。図12の例では、4つの角部全てが直角であると判定されているので、どの特徴点も除外されない。
次に、得られた特徴点についてステータスを集計し、最多数のステータスを決定する(S107)。図12の例では、全ての特徴点のステータスが[反時計回転]であるので、最多数のステータスは[反時計回転]であると決定される。なお、上位2つのステータスが同数である場合も考えられるが、この場合は、予め定めた優先順位に従ってステータスを決定する。
次に、図3のS108の処理において、最多数のステータスと一致するステータスを有する特徴点から、予め定められている優先順位に従って、2つの特徴点の組合せを選択する。この優先順位の例が図13に示される。この例では、平行辺上の2点よりも、離れて存在する原稿の角部の2点を優先して選択するように優先順位が定められている。これにより、傾きの検出精度を高めることができる。
図12の例では、全ての特徴点のステータスが[反時計回転]であるので任意の特徴点が選択可能であるが、図13の優先順位に従って、先頭角部と左角部が選択される。
次に、図3のS109の処理に移行し、選択された2つの特徴点の位置に基づいて、原稿の傾きに関する値が算出される。本実施形態では、選択された先頭角部と左角部の点の位置に基づいて、原稿の傾き角度の正接値を求めている。ただし、原稿の傾き角度そのものの数値を、前記2つの特徴点を結ぶ直線の傾きに基づいて求めても良いし、例えば正弦値、余弦値を求めても良い。要するに、傾きの度合いを表現可能なパラメータであれば、どのようなパラメータであっても良い。
なお、S107の集計処理時において、特徴点のステータスがバラバラで、最多数のステータスを求めることができない場合も考えられる。この場合は、ステータスに関係なく、平行辺の2点が得られている場合は当該平行辺の2点に基づいて原稿の傾きを求める。
以上に示す処理により、CCD28の読取データのように、ライン単位で画素毎に連続して出力されるデータに基づいて、原稿の傾きに関するパラメータを演算して取得することができる。そして、このパラメータ(正接値)を前記傾き補正部68に渡すことで、適切な角度の画像回転処理を行い、傾きが電子的に補正された良好な読取画像を得ることができる。
そして、上記で説明した傾き検出処理は、原稿に折れ又は破れが生じていても傾きを良好に検出することができる。例えば、原稿の左角部に折れ及び破れが生じている場合の読取結果の例を図14に示す。この図14の例では、特徴点として左角部が検出される際に、その折れ部分の形状的特徴から、当該左角部が直角であると判定され、かつステータスが[時計回転]と判定されたとする。なお、左角部以外の特徴点は図12と同様に、角部の場合は直角であると判定されるとともに、[反時計回転]のステータスが得られているものとする。
図14の場合、1つの特徴点は[時計回転]のステータスを有し、他の5つの特徴点は[反時計回転]のステータスを有している。従って、図3のS107の処理において、最多数のステータスは[反時計回転]と決定される。この結果、S108の特徴点の選択時には、図14の左角部は最多数のステータスと一致しない[時計回転]のステータスを有しているため、選択されない。結局、図13の優先順位に従って右角部と末尾角部が選択され、この2つの特徴点に基づいて原稿の傾きが的確に検知される。
また、原稿の先頭側が大きく折られて非長方形となっている場合の読取結果の例を図15に示す。この図15の例では、特徴点として先頭角部及び左角部が検出される際に直角でないと判定され、後端角部及び右角部については直角であると判定される。
この場合、図3のS106の処理において、直角でない先頭角部及び左角部が除外される。従って、S107の最多数ステータスの決定処理及びS108の特徴点選択処理において、先頭角部及び左角部は無視される。結局、図15の例では右角部と後端角部が選択され、この2つの特徴点に基づいて原稿の傾きが的確に検知される。
図16の例は非四角形の原稿を読み取らせた場合であり、検出された4つの角部全てにおいて直角でないと判定されている。この場合は、図3のS106の処理で4つの角部全てが除外されるため、S108の処理で平行辺の2点が選択される。従って、非四角形の原稿であっても平行辺を有していれば、その平行辺上の2点に基づいて傾きを的確に検出することができる。
以上に説明した本実施形態の傾き検出処理は、原稿画素を検出して解析することにより、原稿内容の如何にかかわらず適切に傾きを検出することができる。また、折れ又は破れが生じている原稿、角丸長方形、非長方形、非四角形の原稿等、様々な状態及び形状の原稿について、的確に傾きを検出することができる。
以上に示すように、本実施形態のイメージスキャナ装置が備える傾き検出部67は、エッジ画素取得部71と、特徴点検出部72と、ステータス取得部73と、傾き演算部74と、を備える。そして、エッジ画素取得部71は、画像データを1ラインずつ入力し、当該ラインにおいて原稿と背景の境界に位置する左端画素及び右端画素を検出する。また、特徴点検出部72は、9本のラインにおける左端画素及び右端画素の少なくとも一方の位置の特徴に基づいて、原稿の特徴点の位置(角部及び平行辺上の点の位置)を検出する。ステータス取得部73は、前記特徴点のそれぞれにおいて、当該特徴点の位置を含む9本のラインにおける左端画素及び右端画素の少なくとも一方の位置の特徴に基づいて、原稿の向きに関するステータスを求める。そして、傾き演算部74は、複数の前記特徴点のステータスを集計して最多数のステータスを求め、この最多数のステータスと一致するステータスを有する特徴点から2つの特徴点を選択し、当該2つの特徴点の位置から、原稿の傾きを表す正接値を演算する。
これにより、原稿の特徴点及びそのステータスを利用した総合的な判断による傾きの検出が可能になるので、傾きの検出精度に優れる。また、様々な形状の原稿について適切に傾きを検出することができる。
また、前記傾き検出部67は、最多数のステータスと一致するステータスを有する特徴点から、予め定められた優先順位に従って2つの特徴点を選択するように構成されている。
これにより、前記優先順位を適切に定めておくことにより、傾きの検出精度を一層高めることができる。また、特徴点の選択のための処理を単純化できるので、傾き検出の処理時間を短縮できる。更に、読み取られる原稿の形状は必ずしも長方形であるとは限らないが、前記優先順位を変更可能とすることにより、原稿のどの部分からの特徴点の検出を優先させたいかをユーザが設定することができる。従って、原稿の先頭側を優先させる、原稿の左辺を優先させる等、様々なニーズに対応可能である。
また、特徴点検出部72は、原稿の角部を前記特徴点として検出可能に構成されている。
これにより、特徴点として原稿の角部を利用することで、例えば先頭角部と左角部というように、十分に離れた2つの特徴点を傾きの演算のために選択することができる。従って、原稿の傾き(正接値)を精度良く検出することができる。
また、特徴点検出部72は、原稿の角部を前記特徴点として検出したときは、左端画素及び右端画素の少なくとも一方の位置の特徴に基づいて、当該角部の角度がほぼ直角か否かを判定するように構成されている。そして、傾き演算部74は、前記角部の角度が直角でなかった場合は当該特徴点を除外してステータスを集計するとともに、前記最多数のステータスと一致するステータスを有する特徴点から前記角部を除外した上で、傾きの演算のための2つの特徴点を選択するように構成されている。
これにより、例えば図15及び図16のような形状の原稿の場合に、直角でない角部に基づいて傾き(正接値)を演算することが防止されるので、傾きの誤検出を回避できる。
また、特徴点検出部72は、例えば図16の平行辺(1)及び平行辺(2)で示すように、原稿の左側と右側(ラインの両端側)で向かい合う平行辺の一辺(左辺)上に位置し、かつ原稿の角部以外に位置する2つの点を、特徴点として取得可能に構成されている。
これにより、一般的でない形状の原稿(例えば、非長方形又は非四角形の原稿)を読み取った場合でも、平行辺を有する形状であれば、その一辺に位置する2つの特徴点に基づいて原稿の傾きを適切に検出することができる。
また、傾き演算部74は、前記最多数のステータスを求めることができないときは、前記原稿の平行辺の一辺上に位置する2つの特徴点の位置から原稿の傾き(正接値)を演算するように構成されている。
これにより、例えば角丸形状の原稿等、角部の正確な位置の検出が困難な場合であっても、平行辺を有していれば、当該平行辺に基づいて原稿の傾きを適切に検出することができる。従って、汎用性の高い傾き検出が実現される。
また、本実施形態のイメージスキャナ装置101は、図2に示すように、原稿を読み取って画像データを取得する画像読取部115と、傾き補正部68と、を備えている。そして、この傾き補正部68は、画像読取部115によって得られた画像データを傾き検出部67で処理することにより得られた傾き(正接値)に基づいて、その傾きを補正するように前記画像データを回転処理する。
これにより、総合的な判断によって原稿の傾きを精度良く検出して傾き補正を行うことができる。また、様々な形状の原稿について傾き補正を適切に行うことができる。
また、前記イメージスキャナ装置101において、傾き検出部67のエッジ画素取得部71は、画像読取部115の主走査方向に沿った各ラインにおいて、左端画素及び右端画素の位置を求めるように構成されている。
このように主走査方向とラインの方向を一致させることで、画像読取時において主走査方向に連続的に入力される画素のデータを逐次処理しつつ、左端画素及び右端画素の位置を求めることが可能になる。従って、メモリに画像データを蓄積して改めて画素データをライン方向に読み出す等の処理を省略できるので、処理を単純化でき、読取画像の傾きの検出を高速に行うことができる。
また、本実施形態において、前記画像読取部115は図1に示すようにフラットベッド部を備えている。
これにより、原稿をフラットベッド部にセットする際に向きを真っ直ぐにしなくても、前記傾き補正部68によって正常な向きに補正された画像を得ることができる。従って、フラットベッド部のプラテンガラス102上に原稿を自由な向きで載置してスキャンするような使用態様が可能になり、簡便な操作性を提供することができる。
以上に本発明の好適な実施形態を説明したが、以上の構成は例えば以下のように変更することができる。
図3のS102の処理では、前記押さえパッド121及び押さえ部材122の白色と原稿の白色との輝度の違いを利用して、原稿画素と背景画素の検出を行っている。しかしながら、原稿画素と背景画素の検出方法としては他の方法を採ることもできる。例えば、前記押さえパッド121及び押さえ部材122に黄色のプラテンシートを貼り付ける構成とすることが考えられる。この場合、入力されたRGB値から色に関するパラメータであるCb値を公知の式により計算し、このCb値と所定の閾値とを比較することにより原稿画素と背景画素を検出することができる。
また、フラットベッド部のプラテンガラス102に原稿を載置し、原稿台カバー104を開いたままの状態でスキャンを行う場合が考えられる。この場合は、原稿のない範囲は反射光が検出されず黒画素として検出されることを利用して、ラインの両端側で黒として検出される画素を背景画素と認定することができる。具体的には、イメージスキャナ装置101が原稿台カバー104の開閉を検知する適宜のセンサを備えるように構成し、原稿台カバー104が開かれていることを前記センサが検知した場合に上記の処理を行うようにすれば良い。
図3のS103の処理においては、2値化された1ライン分の画素をメモリに記憶した上で、当該ラインの一端から他端へ(及び他端から一端へ)向かって原稿画素を探索し、初めて現れた原稿画素の位置をエッジ画素と認定しても良い。ただし、上記の実施形態のように左端から右端へ1画素ずつ画素の変化を調べて2つのエッジ画素を認定する方が、メモリが不要になり、データを連続的に処理できる点で好ましい。
S104の特徴点検出処理では、9ライン分の左端画素と右端画素の位置に基づいて特徴点の検出を行っている。しかしながら、何ライン分の左端画素及び右端画素の位置から特徴点を検出するかについては、検出角度に求められる精度、読取解像度、メモリの容量及び処理負荷等を考慮して適宜変更することができる。
S104の処理で、4つの角部及び平行辺のほか、例えば左角部のラインにおける右端画素、及び、右角部のラインにおける左端画素を特徴点として検出するよう変更することができる。また、平行辺上の点を3点以上検出するように変更することができる。
特徴点のステータスについては、傾きなし、時計回転、反時計回転のほか、例えば45°回転のステータスを検出して記録することもできる。
また、複数の特徴点のステータスを集計して得られる最多数のステータスが過半数の特徴点のステータスである場合にのみ傾きを検出し、過半数に届かない場合は傾きの検出を中止するように変更することができる。また、過半数とする代わりに、例えば2/3以上を占める場合にのみ傾きを検出するように変更することができる。
図13に示す優先順位については、イメージスキャナ装置101の用途と目的等に応じて適宜変更することができる。例えば、非長方形の原稿を多数読み取る用途が想定される場合、平行辺上の2点をより優先して選択するように変更することができる。
また、可能な場合は、図3のS101〜S104のループを途中で抜けて処理時間を短縮するように変更することもできる。例えば図12の場合で、画像を上端から1ラインずつ入力して処理すると、最初に先頭角部が検出され、次に左角部、平行辺(1)、平行辺(2)、・・・というように特徴点が順次検出されていくことになる。そして、平行辺(2)までが検出された時点で、今まで検出された4つの特徴点のステータスが全て[反時計回転]であった場合を考える。この場合は、その後に検出される右角部、末尾角部のステータスが何れであっても、最多数のステータスは[反時計回転]になることが確実である。従って、平行辺(2)までの4つの特徴点が検出された時点で、図3のS101〜S104のループ処理を打ち切ってS105以降の処理に移行し、図13の優先順位に従って先頭角部及び左角部を選択し、傾きを演算するようにしても良い。こうすることにより、傾き検出の処理時間を良好に短縮でき、高速読取に好適である。
上記の傾き検出処理は、カラー画像に限らず、モノクロ画像に対しても同様に適用することができる。
上記の傾き検出処理は、イメージスキャナ装置101に限らず、他の画像読取装置、例えばコピー装置、ファクシミリ装置、複合機、光学式文字読取装置(OCR)等に適用することができる。