(57)【特許請求の範囲】
【請求項１】
元画像であるラスター画像を回転処理して回転画像を得る画像処理装置において、
その比の値が回転角度の正接値に等しくなるような第１整数パラメータ及び第２整数パラメータが入力される整数パラメータ入力部と、
前記回転画像における注目画素のｘ座標を所定画素分変更するごとに、ｙ方向重み係数に前記第１整数パラメータを加算し、
前記ｙ方向重み係数が前記第２整数パラメータ以上になったときは、当該ｙ方向重み係数から前記第２整数パラメータを減算するとともに、元画像において前記注目画素に対応する位置の画素である対応注目画素のｙ座標を所定画素分変更する処理を行い、
前記回転画像における前記注目画素のｙ座標を所定画素分変更するごとに、ｘ方向重み係数に前記第１整数パラメータを加算し、
前記ｘ方向重み係数が前記第２整数パラメータ以上になったときは、当該ｘ方向重み係数から前記第２整数パラメータを減算するとともに、元画像の前記対応注目画素のｘ座標を所定画素分変更する処理を行う元画像対応位置演算部と、
前記元画像における前記対応注目画素と、当該対応注目画素とｘ座標及びｙ座標の少なくとも一方が所定画素分異なっている３つの画素と、を対象として、前記ｘ方向重み係数を前記第２整数パラメータで除した割合、及び、前記ｙ方向重み係数を前記第２整数パラメータで除した割合によって二次元補間することにより、回転画像における前記注目画素の画素値を求める二次元補間部と、
を備えることを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記二次元補間部は、前記注目画素の画素値の計算において、前記第２整数パラメータの２乗による除算をまとめて行うことを特徴とする画像処理装置。
【請求項３】
請求項１又は２に記載の画像処理装置であって、
前記二次元補間部は、前記第２整数パラメータを２の整数乗の値に変更し、更に、当該２の整数乗の値を変更前の前記第２整数パラメータで除して得られた比率を前記ｘ方向重み係数及び前記ｙ方向重み係数に乗じて整数値に近似した上で、前記注目画素の画素値の計算を行うことを特徴とする画像処理装置。
【請求項４】
請求項１から３までの何れか一項に記載の画像処理装置と、
原稿の画像を読み取って画像データを得る画像読取部と、
前記画像データにおける２つの点の座標から、その比が原稿の傾き角度の正接値に等しくなるような２つの傾きパラメータ整数を得る傾き角度検出部と、
を備え、
２つの前記傾きパラメータ整数を前記画像処理装置に前記第１整数パラメータ及び第２整数パラメータとして与えて前記画像データを回転処理することで、原稿の傾きを補正した画像データを得ることを特徴とする画像読取装置。
【請求項５】
その比の値が回転角度の正接値に等しくなるような第１整数パラメータ及び第２整数パラメータに基づいて、元画像であるラスター画像を回転処理して回転画像を得る画像処理方法であり、
前記回転画像における注目画素のｘ座標を所定画素分変更するごとに、ｙ方向重み係数に前記第１整数パラメータを加算し、
前記ｙ方向重み係数が前記第２整数パラメータ以上になったときは、当該ｙ方向重み係数から前記第２整数パラメータを減算するとともに、元画像において前記注目画素に対応する位置の画素である対応注目画素のｙ座標を所定画素分変更する処理を行い、
前記回転画像における前記注目画素のｙ座標を所定画素分変更するごとに、ｘ方向重み係数に前記第１整数パラメータを加算し、
前記ｘ方向重み係数が前記第２整数パラメータ以上になったときは、当該ｘ方向重み係数から前記第２整数パラメータを減算するとともに、元画像の前記対応注目画素のｘ座標を所定画素分変更する元画像対応位置演算工程と、
前記元画像における前記対応注目画素と、当該対応注目画素とｘ座標及びｙ座標の少なくとも一方が所定画素分異なっている３つの画素と、を対象として、前記ｘ方向重み係数を前記第２整数パラメータで除した割合、及び、前記ｙ方向重み係数を前記第２整数パラメータで除した割合によって二次元補間することにより、回転画像における前記注目画素の画素値を求める二次元補間工程と、
を含むことを特徴とする画像処理方法。
【請求項６】
元画像であるラスター画像を回転処理して回転画像を得る画像処理プログラムにおいて、
その比の値が回転角度の正接値に等しくなるような第１整数パラメータ及び第２整数パラメータを入力する整数パラメータ入力ステップと、
前記回転画像における注目画素のｘ座標を所定画素分変更するごとに、ｙ方向重み係数に前記第１整数パラメータを加算し、
前記ｙ方向重み係数が前記第２整数パラメータ以上になったときは、当該ｙ方向重み係数から前記第２整数パラメータを減算するとともに、元画像において前記注目画素に対応する位置の画素である対応注目画素のｙ座標を所定画素分変更する処理を行い、
前記回転画像における前記注目画素のｙ座標を所定画素分変更するごとに、ｘ方向重み係数に前記第１整数パラメータを加算し、
前記ｘ方向重み係数が前記第２整数パラメータ以上になったときは、当該ｘ方向重み係数から前記第２整数パラメータを減算するとともに、元画像の前記対応注目画素のｘ座標を所定画素分変更する処理を行う元画像対応位置演算ステップと、
前記元画像における前記対応注目画素と、当該対応注目画素とｘ座標及びｙ座標の少なくとも一方が所定画素分異なっている３つの画素と、を対象として、前記ｘ方向重み係数を前記第２整数パラメータで除した割合、及び、前記ｙ方向重み係数を前記第２整数パラメータで除した割合によって二次元補間することにより、回転画像における前記注目画素の画素値を求める二次元補間ステップと、
を実行することを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主要には、画像データを回転処理する画像処理装置に関する。
【背景技術】
【０００２】
イメージスキャナ装置、コピー装置、ファクシミリ装置、光学式文字読取装置（ＯＣＲ）等においては、原稿が斜行した状態で読み取られると、傾いた画像が得られることになって読取品質が低下する。これを回避するために、画像データを回転処理して斜行を電子的に補正可能な画像読取装置が提案されている。
【０００３】
このような画像回転処理は、回転行列を用いて行うことが一般的に知られている。例えば非特許文献１には、元画像の任意の画素の座標を（ｘ，ｙ）、変換後の画像の対応する画素の座標を（ｘ*，ｙ*）としたときに、本願の図１に示す式を用いて画像の回転を行うことが開示されている。また、非特許文献１には、上記回転処理を含む画像の幾何学的補正処理において、二次元的な補間処理を行うことで中間の画素の階調値（画素値）を求め得ることが開示されている。
【非特許文献１】安居院猛、長尾智治共著，「画像の処理と認識」，初版，株式会社昭晃堂，２０００年１０月，ｐ.２０−２２
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上記非特許文献１の方法は、通常は無理数であるsinθ及びcosθの乗算を画素毎に行うことになるため、計算コストが極めて大きくなってしまう。従って、このような画像回転処理は処理時間が著しく長くなってしまい、画像読取装置の斜行補正に適用する場合、高速読取を実現することが容易ではなかった。従って、より短時間で画像回転処理を行うことができる画像処理装置が求められていた。
【課題を解決するための手段及び効果】
【０００５】
本発明の解決しようとする課題は以上の如くであり、次にこの課題を解決するための手段とその効果を説明する。
【０００６】
本発明の第１の観点によれば、以下の構成の、元画像であるラスター画像を回転処理して回転画像を得る画像処理装置が提供される。即ち、この画像処理装置は、整数パラメータ入力部と、元画像対応位置演算部と、二次元補間部と、を備える。前記整数パラメータ入力部には、その比の値が回転角度の正接値に等しくなるような第１整数パラメータ及び第２整数パラメータが入力される。前記元画像対応位置演算部は、前記回転画像における注目画素のｘ座標を所定画素分変更するごとに、ｙ方向重み係数に前記第１整数パラメータを加算し、前記ｙ方向重み係数が前記第２整数パラメータ以上になったときは、当該ｙ方向重み係数から前記第２整数パラメータを減算するとともに、元画像において前記注目画素に対応する位置の画素である対応注目画素のｙ座標を所定画素分変更する処理を行う。また、前記元画像対応位置演算部は、前記回転画像における前記注目画素のｙ座標を所定画素分変更するごとに、ｘ方向重み係数に前記第１整数パラメータを加算し、前記ｘ方向重み係数が前記第２整数パラメータ以上になったときは、当該ｘ方向重み係数から前記第２整数パラメータを減算するとともに、元画像の前記対応注目画素のｘ座標を所定画素分変更する処理を行う。前記二次元補間部は、前記元画像における前記対応注目画素と、当該対応注目画素とｘ座標及びｙ座標の少なくとも一方が所定画素分異なっている３つの画素と、を対象として、前記ｘ方向重み係数を前記第２整数パラメータで除した割合、及び、前記ｙ方向重み係数を前記第２整数パラメータで除した割合によって二次元補間することにより、回転画像における前記注目画素の画素値を求める。
【０００７】
この構成により、２つの整数パラメータ及び重み係数を利用した整数演算処理及び整数比較処理を多用して、二次元補間を伴う回転処理を行うことができる。従って、浮動小数点演算等の計算コストの大きな処理を少なくでき、画質の良い回転画像を高速に得ることができる。
【０００８】
前記画像処理装置においては、前記二次元補間部は、前記注目画素の画素値の計算において、前記第２整数パラメータの２乗による除算をまとめて行うことが好ましい。
【０００９】
この構成により、計算コストの大きい除算処理を少なくできるので、回転処理を一層高速に行える。
【００１０】
前記画像処理装置においては、前記二次元補間部は、前記第２整数パラメータを２の整数乗の値に変更し、更に、当該２の整数乗の値を変更前の前記第２整数パラメータで除して得られた比率を前記ｘ方向重み係数及び前記ｙ方向重み係数に乗じて整数値に近似した上で、前記注目画素の画素値の計算を行うことが好ましい。
【００１１】
この構成により、除算処理の計算コストを著しく低減できるので、回転処理の一層の高速化が実現できる。
【００１２】
本発明の第２の観点によれば、以下の構成の画像読取装置が提供される。即ち、前記画像処理装置と、原稿の画像を読み取って画像データを得る画像読取部と、前記画像データにおける２つの点の座標から、その比が原稿の傾き角度の正接値に等しくなるような２つの傾きパラメータ整数を得る傾き角度検出部と、を備える。そして、この画像読取装置は、２つの前記傾きパラメータ整数を前記画像処理装置に前記第１整数パラメータ及び第２整数パラメータとして与えて前記画像データを回転処理することで、原稿の傾きを補正した画像データを得るように構成されている。
【００１３】
この構成により、傾きが補正された画像データを短時間で得ることができ、高速読取に特に好適である。
【００１４】
本発明の第３の観点によれば、以下の画像処理方法が提供される。即ち、この画像処理方法は、その比の値が回転角度の正接値に等しくなるような第１整数パラメータ及び第２整数パラメータに基づいて、元画像であるラスター画像を回転処理して回転画像を得る画像処理方法である。この画像処理方法は、元画像対応位置演算工程と、二次元補間工程と、を含む。前記元画像対応位置演算工程では、前記回転画像における注目画素のｘ座標を所定画素分変更するごとに、ｙ方向重み係数に前記第１整数パラメータを加算し、前記ｙ方向重み係数が前記第２整数パラメータ以上になったときは、当該ｙ方向重み係数から前記第２整数パラメータを減算するとともに、元画像において前記注目画素に対応する位置の画素である対応注目画素のｙ座標を所定画素分変更する処理を行う。また、前記元画像対応位置演算工程では、前記回転画像における前記注目画素のｙ座標を所定画素分変更するごとに、ｘ方向重み係数に前記第１整数パラメータを加算し、前記ｘ方向重み係数が前記第２整数パラメータ以上になったときは、当該ｘ方向重み係数から前記第２整数パラメータを減算するとともに、元画像の前記対応注目画素のｘ座標を所定画素分変更する処理を行う。前記二次元補間工程では、前記元画像における前記対応注目画素と、当該対応注目画素とｘ座標及びｙ座標の少なくとも一方が所定画素分異なっている３つの画素と、を対象として、前記ｘ方向重み係数を前記第２整数パラメータで除した割合、及び、前記ｙ方向重み係数を前記第２整数パラメータで除した割合によって二次元補間することにより、回転画像における前記注目画素の画素値を求める。
【００１５】
この方法により、２つの整数パラメータ及び重み係数を利用した整数演算処理及び整数比較処理を多用して、二次元補間を伴う回転処理を行うことができる。従って、浮動小数点演算等の計算コストの大きな処理を少なくでき、画質の良い回転画像を高速に得ることができる。
【００１６】
本発明の第４の観点によれば、以下のような、元画像であるラスター画像を回転処理して回転画像を得る画像処理プログラムが提供される。即ち、この画像処理プログラムは、整数パラメータ入力ステップと、元画像対応位置演算ステップと、二次元補間ステップと、を実行する。整数パラメータ入力ステップでは、その比の値が回転角度の正接値に等しくなるような第１整数パラメータ及び第２整数パラメータが入力される。前記元画像対応位置演算ステップでは、前記回転画像における注目画素のｘ座標を所定画素分変更するごとに、ｙ方向重み係数に前記第１整数パラメータを加算し、前記ｙ方向重み係数が前記第２整数パラメータ以上になったときは、当該ｙ方向重み係数から前記第２整数パラメータを減算するとともに、元画像において前記注目画素に対応する位置の画素である対応注目画素のｙ座標を所定画素分変更する処理を行う。また、前記元画像対応位置演算ステップでは、前記回転画像における前記注目画素のｙ座標を所定画素分変更するごとに、ｘ方向重み係数に前記第１整数パラメータを加算し、前記ｘ方向重み係数が前記第２整数パラメータ以上になったときは、当該ｘ方向重み係数から前記第２整数パラメータを減算するとともに、元画像の前記対応注目画素のｘ座標を所定画素分変更する処理を行う。前記二次元補間ステップでは、前記元画像における前記対応注目画素と、当該対応注目画素とｘ座標及びｙ座標の少なくとも一方が所定画素分異なっている３つの画素と、を対象として、前記ｘ方向重み係数を前記第２整数パラメータで除した割合、及び、前記ｙ方向重み係数を前記第２整数パラメータで除した割合によって二次元補間することにより、回転画像における前記注目画素の画素値を求める。
【００１７】
これにより、２つの整数パラメータ及び重み係数を利用した整数演算処理及び整数比較処理を多用して、二次元補間を伴う回転処理を行うことができる。従って、浮動小数点演算等の計算コストの大きな処理を少なくでき、画質の良い回転画像を高速に得ることができる。
【発明を実施するための最良の形態】
【００１８】
次に、発明の実施の形態を説明する。図２は本発明の一実施形態に係るイメージスキャナ装置の全体的な構成を示す正面断面図である。
【００１９】
図２に示すように、画像読取装置としてのイメージスキャナ装置１０１は、オートドキュメントフィーダ部及びフラットベッド部からなる画像読取部１１５を備えている。
【００２０】
以下、具体的に説明する。即ち、このイメージスキャナ装置１０１は、読取原稿を載置するプラテンガラス１０２が配設された原稿台１０３と、この読取原稿を前記プラテンガラス上に押圧した状態で保持するための原稿台カバー１０４と、を備えている。また、イメージスキャナ装置１０１には、原稿の読取開始等を指示するための図略の操作パネルが備えられている。原稿台カバー１０４の下面には、原稿を下向きに押し付けるための押さえパッド１２１が、前記プラテンガラス１０２に対面するように取り付けられている。
【００２１】
前記原稿台カバー１０４には、オートドキュメントフィーダ（自動原稿送り装置）１０７が配設されている。このオートドキュメントフィーダ１０７は、原稿台カバー１０４の上部に設けられた原稿トレイ１１１と、この原稿トレイ１１１の下方に設けられた排紙トレイ１１２と、を備える。
【００２２】
図２に示すように、前記原稿台カバー１０４の内部には、原稿トレイ１１１と排紙トレイ１１２とを繋ぐ湾曲状の原稿搬送経路１１３が構成されている。この原稿搬送経路１１３には、ピックアップローラ５１と、分離ローラ５２と、分離パッド５３と、搬送ローラ５５と、排紙ローラ５８と、が配置されている。
【００２３】
ピックアップローラ５１は原稿トレイ１１１上の読取原稿を繰り込み、分離ローラ５２及び分離パッド５３は、繰り込まれた原稿を１枚ずつ分離するように構成されている。搬送ローラ５５は、分離された原稿を原稿読取位置Ｐに向けて搬送し、排紙ローラ５８は、読取後の原稿を排紙トレイ１１２へ排出するように構成されている。また、前記原稿読取位置Ｐにおいて、プラテンガラスに対向するように押さえ部材１２２が備えられている。
【００２４】
上記の構成で、原稿トレイ１１１に重ねてセットされた読取原稿は、１枚ずつ分離されて湾曲状の前記原稿搬送経路１１３に沿って搬送され、原稿読取位置Ｐを通過して後述のスキャナユニット２１によって読み取られた後、排紙トレイ１１２へ排出される。
【００２５】
図２に示すように、前記原稿台１０３の内部にはスキャナユニット２１が備えられる。このスキャナユニット２１は、原稿台１０３の内部で移動可能なキャリッジを備えている。
【００２６】
このキャリッジ３０は、光源としての蛍光ランプ２２と、反射ミラー２３，２３・・・と、集光レンズ２７と、電荷結合素子（ＣＣＤ）２８と、を備える。蛍光ランプ２２は読取原稿に対して光を照射し、読取原稿からの反射光は、複数の反射ミラー２３，２３・・・で反射した後、集光レンズ２７を通過して収束してＣＣＤ２８表面に結像する。前記ＣＣＤ２８は、入射された収束光を電気信号に変換して出力する。
【００２７】
本実施形態において前記ＣＣＤ２８は３ライン式のカラーＣＣＤとされている。このＣＣＤ２８は、主走査方向（原稿の幅方向）に細長く延びる一次元ラインセンサが赤、緑、青（ＲＧＢ）の各色について設けられるとともに、各ラインセンサに対応して異なるカラーフィルタを備えた構成となっている。
【００２８】
前記原稿台１０３の内部には、駆動プーリ４７及び従動プーリ４８が回転自在に支持される。そして、駆動プーリ４７及び従動プーリ４８の間に無端状の駆動ベルト４９が張架され、この駆動ベルト４９の適宜箇所に前記キャリッジ３０が固定されている。この構成で、前記駆動プーリ４７を図略の電動モータで正逆駆動することにより、キャリッジ３０を副走査方向に沿って水平に走行させることができる。
【００２９】
この構成で、前記原稿読取位置Ｐに対応する位置に前記キャリッジ３０を予め移動させた状態で、オートドキュメントフィーダ１０７を駆動する。すると、原稿搬送経路１１３を搬送される読取原稿が原稿読取位置Ｐにおいて走査され、蛍光ランプ２２から照射されて読取原稿で反射した反射光はキャリッジ３０内へ導入され、反射ミラー２３，２３・・・により集光レンズ２７を通してＣＣＤ２８へ導かれて結像する。この結果、ＣＣＤ２８は読取内容に応じた電気信号を出力することができる。
【００３０】
また、フラットベッドスキャナとして使用する場合は、キャリッジ３０をプラテンガラス１０２に沿って一定の速度で移動させながら、当該プラテンガラス１０２上に載置された読取原稿を走査する。原稿からの反射光は、上記と同様にキャリッジ３０内のＣＣＤ２８へ導かれて結像する。
【００３１】
図３はイメージスキャナ装置１０１のブロック図である。図３に示すように、イメージスキャナ装置１０１は前記スキャナユニット２１のほか、ＣＰＵ４１と、ＲＯＭ４２と、画像処理部４３と、イメージメモリ６６と、傾き検出部６７と、傾き補正部（画像処理装置）６８と、符号変換部６９と、出力制御部７０と、を備えている。
【００３２】
ＣＰＵ４１は、イメージスキャナ装置１０１に備えられるスキャナユニット２１、傾き検出部６７、傾き補正部６８、出力制御部７０等を制御するための制御部として設けられている。この制御のためのプログラム及びデータ等は、記憶部としてのＲＯＭ４２に格納されている。
【００３３】
前記スキャナユニット２１はアナログフロントエンド（ＡＦＥ）６３を備えており、このＡＦＥ６３はＣＣＤ２８に接続されている。原稿読取時において、ＣＣＤ２８が備えるＲＧＢ各色の前記ラインセンサは、原稿内容を主走査方向に走査して１ライン分を読み取り、各ラインセンサの信号は前記ＡＦＥ６３によってアナログ信号からデジタル信号に変換される。この主走査により、１ライン分の画素のデータがＲＧＢ各色の階調値としてＡＦＥ６３から出力される。以上の処理を、原稿又はキャリッジ３０を副走査方向に微小距離ずつ送りながら反復することで、原稿全体の画像データをデジタル信号として得ることができる。
【００３４】
スキャナユニット２１は画像処理部６５を備えており、前記ＡＦＥ６３が出力する画像データのデジタル信号は、この画像処理部６５に入力される。この画像処理部６５は、主走査ごとに１ラインずつ入力される画素データに対しシェーディング補正を行って、スキャナユニット２１の光学系に起因する読取ムラの補正を行う。また画像処理部６５は、前記画素データに対し、ＣＣＤ２８におけるＲＧＢ各色のラインセンサの配置間隔（ラインギャップ）を原因とする色ズレを矯正する補正を行う。
【００３５】
前記イメージメモリ６６は、スキャナユニット２１で読み取った画像を蓄積するためのものである。スキャナユニット２１で読み取られた画像データは、画像処理部４３において公知の画像処理（フィルタ処理等）が更に行われた後、イメージメモリ６６に入力されて蓄積される。
【００３６】
前記傾き検出部６７は、スキャナユニット２１から入力される画像データを解析して原稿の領域を検出し、これに基づいて原稿の傾き（傾きを矯正するために回転すべき角度）を自動検出するように構成されている。
【００３７】
傾き検出部６７は、具体的には以下のような処理を行う。即ち、本実施形態において、走査される原稿の裏面側に配置される前記押さえパッド１２１及び押さえ部材１２２（図２）の表面には、通常の紙よりも明るい白色のシート（プラテンシート）が貼り付けられている。従って、ＣＣＤ２８で読み取られた画像データにおいて、原稿の周囲の背景部分は輝度が高くなる。
【００３８】
傾き検出部６７はこれを利用して、画素データのＲＧＢ成分から公知の式に従って輝度（Ｙ成分）を計算する画像処理を行い、その輝度が所定の値以上である場合は背景画素、所定の値を下回る場合は原稿画素として２値化処理を行う。
【００３９】
２値化された画像の例が図４に示される。なお、図４において、細かく区切られた１つのマスが１つの画素に対応するとともに、空白のマスが背景画素を、斜線が引かれたマスが原稿画素をそれぞれ表している。
【００４０】
図４の例では、原稿が斜行した状態でオートドキュメントフィーダ部により搬送され、スキャナユニット２１で読み取られた結果、正規の向きから時計方向に若干回転した長方形の画像が原稿画素領域として得られている。
【００４１】
本実施形態では、前記傾き検出部６７は、この原稿画素領域の角部に位置する２点（黒塗りのマスで図示）を、適宜の画像認識処理によって検出する。そして、検出された２つの点のｘ座標及びｙ座標をそれぞれ求めるとともに、２点のｘ座標の差及びｙ座標の差を演算して求める。ここで求められたｙ座標の差をｄｙとし、ｘ座標の差をｄｘとする。図４の例では、ｄｙ＝１０，ｄｘ＝５０である。
【００４２】
そして、傾き検出部６７は、ｙ座標の差ｄｙ及びｘ座標の差ｄｘをそれぞれ最大公約数で除し、得られた結果を傾きパラメータａ，ｂとする。図４の例では、ａ＝１，ｂ＝５である。
【００４３】
ここで、原稿の傾き角度をθとすると、θ＝tan-1(ｄｙ／ｄｘ)＝tan-1(ａ／ｂ)の関係が成り立つ。即ち、ａとｂの比の値（ａ／ｂ）は、原稿の傾き角度の正接値tanθに一致する。ただし、本実施形態の傾き検出部６７は傾きパラメータａ，ｂを適宜のメモリに記憶するだけで、傾き角度θは計算しない。
【００４４】
２点のｘ座標及びｙ座標はそれぞれ整数で表されるので、上述したｙ座標の差ｄｙ及びｘ座標の差ｄｘも整数となり、傾きパラメータａ，ｂも整数になる。得られた傾きパラメータ整数ａ，ｂは、後述の傾き補正部６８に与える整数パラメータとして使われる。
【００４５】
なお、前述の傾きパラメータａ，ｂの検出処理（角度検出処理）は、元画像を解像度変換（変倍）することなく行っても良いが、元画像を縮小化した縮小画像データを用いて角度検出を行ってもよい。縮小画像データを用いることにより、特にソフトウェアで処理する場合には、角度検出処理の短縮化が図れる。
【００４６】
図３に示す前記傾き補正部６８は、前記傾き検出部６７で得られた前記傾きパラメータ整数ａ，ｂに基づいてイメージメモリ６６のラスター画像データを回転処理し、原稿の斜行を電子的に補正するように構成されている。この傾き補正部６８は、整数パラメータ入力部７１と、元画像対応位置演算部７２と、二次元補間部７３と、を備えている。
【００４７】
パラメータ入力部７１は、２つの傾きパラメータ整数を、第１整数パラメータａ及び第２整数パラメータｂとして取得可能に構成されている。上述のとおり、２つの整数パラメータａ，ｂの比の値（ａ／ｂ）は、画像を回転すべき角度（原稿の傾き角度）の正接値tanθに等しい。
【００４８】
元画像対応位置演算部７２は、回転画像における注目画素（ｍ，ｎ）の位置に基づいて所定の計算を行うことで、元画像において前記注目画素（ｍ，ｎ）に対応する位置の画素である対応注目画素（ｉ，ｊ）の位置を求める。また、元画像対応位置演算部７２は、前記注目画素の位置に基づいて所定の計算を行うことで、前記二次元補間部７３が行う補間において用いられるｘ方向重み係数ｋｗｘ及びｙ方向重み係数ｋｗｙを求める。
【００４９】
二次元補間部７３は、前記対応注目画素（ｉ，ｊ）と、当該対応注目画素とｘ座標及びｙ座標の少なくとも何れか一方が異なる３つの画素と、に基づいて二次元補間を行うことにより、回転画像における注目画素の画素値Ｑ（ｍ，ｎ）を求める。この二次元補間には、前記ｘ方向重み係数ｋｗｘ及びｙ方向重み係数ｋｗｙをそれぞれ整数ｂで除した割合（ｋｗｘ／ｂ，ｋｗｙ／ｂ）が用いられる。なお、傾き補正部６８による回転処理の詳細は後述する。
【００５０】
符号変換部６９は、イメージメモリ６６に保存された画像データに対し、例えばＪＰＥＧ等の公知の圧縮処理を行って符号化する。
【００５１】
出力制御部７０は、符号化された画像データを、イメージスキャナ装置１０１と接続される上位装置としてのパーソナルコンピュータ（図略）に送信する。送信方法は任意であるが、例えば、ローカルエリアネットワーク（ＬＡＮ）を用いる方法、及びユニバーサルシリアルバス（ＵＳＢ）を用いる方法等が考えられる。
【００５２】
本実施形態において、画像処理部６５、傾き検出部６７、傾き補正部６８、及び符号変換部６９等は、例えばＡＳＩＣ、ＦＰＧＡ等のハードウェアを用いて実現されている。後述の方法により画像回転処理を行う画像処理プログラムがＡＳＩＣ等に書き込まれることにより、前記傾き補正部６８の回転処理機能が実現される。ただし、この傾き補正部６８等は、ＣＰＵ４１とプログラムの組合せ等により実現しても良い。
【００５３】
次に、前記傾き補正部６８による画像の回転処理について、図５のフローチャートを参照しながら説明する。
【００５４】
図５のフローが開始されると、傾き補正部６８は先ず、傾き検出部６７で求められた２つの傾きパラメータ整数を、第１整数パラメータａ及び第２整数パラメータｂとして入力する（Ｓ１０１）。なお、このＳ１０１の処理が、整数パラメータ入力ステップ（整数パラメータ入力工程）に相当する。
【００５５】
次に、変数の初期化処理を行う（Ｓ１０２）。この初期化処理では、回転画像における注目画素のｘ座標ｍ及びｙ座標ｎがゼロにリセットされる。また、対応注目画素（前記注目画素に対応する元画像の画素）の位置を演算する際に使用されるｘ方向のオフセット値ｍｏｆｆ及びｙ方向のオフセット値ｎｏｆｆについてもゼロにリセットされる。更に、二次元補間に使用されるｘ方向重み係数ｋｗｘ及びｙ方向重み係数ｋｗｙについても、ゼロにリセットされる。なお、上記の変数ｍ，ｎ，ｍｏｆｆ，ｎｏｆｆ，ｋｗｘ，ｋｗｙは、何れも整数変数である。
【００５６】
次に、回転画像の注目画素（ｍ，ｎ）の画素値Ｑ（ｍ，ｎ）を計算する（Ｓ１０３）。この処理では最初に、元画像の前記対応注目画素の位置（ｉ，ｊ）を計算する。対応注目画素のｘ座標ｉは、回転画像の注目画素のｘ座標ｍにオフセット値ｍｏｆｆを加えることで得られる（ｉ＝ｍ＋ｍｏｆｆ）。同様に、対応注目画素のｙ座標ｊは、回転画像の注目画素のｙ座標ｎにオフセット値ｎｏｆｆを加えることで得られる（ｊ＝ｎ＋ｎｏｆｆ）。
【００５７】
ここで、前記オフセット値ｍｏｆｆは、回転画像の注目画素がｙ方向に（ｂ／ａ）画素移動するごとに１減算される（Ｓ１１４）。また、オフセット値ｎｏｆｆは、回転画像の注目画素がｘ方向に（ｂ／ａ）画素移動するごとに１加算される（Ｓ１０７）。なお、このオフセット値の加算／減算処理については後述する。
【００５８】
図６に、図４の例で求めた傾きパラメータ整数ａ＝１，ｂ＝５を傾き補正部６８に第１整数パラメータ及び第２整数パラメータとして入力した場合の、回転画像の注目画素と元画像の対応注目画素との対応を示す。
【００５９】
図６には、回転画像の１行目及び１列目を注目画素とした場合の当該注目画素と、元画像の対応注目画素が、二重線で囲ったマスでそれぞれ示されている。図６の上側で示すように、元画像の対応注目画素は、回転画像の注目画素がｘ方向に５画素（＝ｂ／ａ）移動するごとに、ｙ方向に１画素分ズレる。また、元画像の対応注目画素は、回転画像の注目画素がｙ方向に５画素移動するごとに、ｘ方向に１画素分ズレる。
【００６０】
次に、回転画像の注目画素の画素値Ｑ（ｍ，ｎ）を、二次元線形補間することにより取得する。この二次元線形補間は、図７に示すように、元画像の対応注目画素（ｉ，ｊ）と、この対応注目画素にｘ方向で隣り合う画素（ｉ−１，ｊ）と、ｙ方向で隣り合う画素（ｉ，ｊ＋１）と、斜めに隣り合う画素（ｉ−１，ｊ＋１）と、の計４つの画素を対象にして行われる。そして、この４つの画素それぞれの画素値Ｐ（ｉ，ｊ）、Ｐ（ｉ−１，ｊ）、Ｐ（ｉ，ｊ＋１）、Ｐ（ｉ−１，ｊ＋１）に基づいて、ｘ方向重み係数ｋｗｘを第２整数パラメータｂで除した割合（ｋｗｘ／ｂ）、及び、ｙ方向重み係数ｋｗｙを第２整数パラメータｂで除した割合（ｋｗｙ／ｂ）によって線形補間することにより、回転画像の注目画素（ｍ，ｎ）の画素値Ｑ（ｍ，ｎ）を取得する。
【００６１】
ここで、ｘ方向重み係数ｋｗｘは、回転画像の注目画素がｙ方向に１画素移動するごとに、第１整数パラメータａだけ加算される（図５のＳ１１２）。また、ｙ方向重み係数ｋｗｙは、回転画像の注目画素がｘ方向に１画素移動するごとに、第１整数パラメータａだけ加算される（Ｓ１０５）。なお、この重み係数の加算処理については後述する。
【００６２】
図５のＳ１０３には、図７の概念図で説明した注目画素の画素値Ｑ（ｍ，ｎ）の計算式が示されている。なお、この計算式は、第２整数パラメータｂでの除算が大カッコ［〜］で括った外側に出るように変形されている。これにより、計算コストの大きい除算処理を第２整数パラメータの２乗（ｂ2）での除算１回にまとめることができ、計算処理を高速化することができる。
【００６３】
Ｓ１０３の画素値の取得処理（二次元補間ステップ、二次元補間工程）が終了した後、注目画素のｘ座標ｍに１を加算する（Ｓ１０４）。この処理は、回転画像の注目画素（ｍ，ｎ）をｘ方向に１画素分移動させることに相当する。
【００６４】
次に、ｙ方向重み係数ｋｗｙに第１整数パラメータａを加算する（Ｓ１０５）。そして、加算後のｙ方向重み係数ｋｗｙが第２整数パラメータｂ以上か否かを調べる（Ｓ１０６）。第２整数パラメータｂ以上であった場合は、ｙ方向のオフセット値ｎｏｆｆに１を加算するとともに（Ｓ１０７）、ｙ方向重み係数ｋｗｙから第２整数パラメータｂを減算する（Ｓ１０８）。その後、Ｓ１０６の処理に戻る。
【００６５】
ｙ方向重み係数ｋｗｙが第２整数パラメータｂを下回っている場合、Ｓ１０９の処理に移行し、回転画像の注目画素のｘ座標ｍが、回転画像の幅ｗｉｄｔｈに原稿の傾き角度の余弦値（cosθ）を乗じた数を下回っているか否かが判定される。ｘ座標ｍがｗｉｄｔｈ×cosθを下回っていた場合は、Ｓ１０３の処理に戻る。
【００６６】
以上のフローにより、回転画像の注目画素（ｍ，ｎ）を、そのｘ座標ｍを０から（ｗｉｄｔｈ×cosθ−１）まで１ずつ変化させながら、画素値Ｑ（ｍ，ｎ）を計算する処理が反復される。そして、ｘ座標ｍが１変化するごとにｙ方向重み係数ｋｗｙがａずつ加算されるので（Ｓ１０５）、画素値Ｑ（ｍ，ｎ）の計算の際の二次元補間において、図７の下側２つの画素値Ｐ（ｉ，ｊ＋１）、Ｐ（ｉ−１，ｊ＋１）が反映される重みが増大する。ｍが１変化するごとの当該重みの変化割合は、ａをｂで除した値に一致する。更に、ｙ方向重み係数ｋｗｙがｂ以上になると、ｙ方向オフセット値ｎｏｆｆが１加算される。これは、元画像の対応注目画素（ｉ，ｊ）がｙ方向に１画素分ズレることを意味する。
【００６７】
Ｓ１０９の判断で、注目画素のｘ座標ｍがｗｉｄｔｈ×cosθ以上であった場合、当該ｘ座標ｍ、ｙ方向オフセット値ｎｏｆｆ、及びｙ方向重み係数ｋｗｙが何れも０にリセットされるとともに（Ｓ１１０）、注目画素のｙ座標ｎに１が加算される（Ｓ１１１）。この処理は、回転画像の注目画素（ｍ，ｎ）をｙ方向に１画素分移動させることに相当する。
【００６８】
次に、ｘ方向重み係数ｋｗｘに第１整数パラメータａを加算する（Ｓ１１２）。そして、加算後のｘ方向重み係数ｋｗｘが第２整数パラメータｂ以上か否かを調べる（Ｓ１１３）。第２整数パラメータｂ以上であった場合は、ｘ方向のオフセット値ｍｏｆｆから１を減算するとともに（Ｓ１１４）、ｘ方向重み係数ｋｗｘから第２整数パラメータｂを減算する（Ｓ１１５）。その後、Ｓ１１３の処理に戻る。
【００６９】
ｘ方向重み係数ｋｗｘが第２整数パラメータｂを下回っている場合、Ｓ１１６の処理に移行し、回転画像の注目画素のｙ座標ｎが、回転画像の高さｈｅｉｇｈｔに原稿の傾き角度の余弦値（cosθ）を乗じた数を下回っているか否かが判定される。ｙ座標ｎがｈｅｉｇｈｔ×cosθを下回っていた場合は、Ｓ１０３の処理に戻る。ｙ座標ｎがｈｅｉｇｈｔ×cosθ以上であった場合、注目画素の画素値の計算が全て完了したことを意味するので、処理を終了する。
【００７０】
以上のフローにより、回転画像の注目画素（ｍ，ｎ）を、そのｙ座標ｎを０から（ｈｅｉｇｈｔ×cosθ−１）まで１ずつ変化させながら、画素値Ｑ（ｍ，ｎ）を計算する処理が反復される。そして、ｎが１変化するごとにｘ方向重み係数ｋｗｘがａずつ加算されるので、画素値Ｑ（ｍ，ｎ）の計算の際の二次元補間において、図７の左側２つの画素値Ｐ（ｉ−１，ｊ）、Ｐ（ｉ−１，ｊ＋１）が反映される重みが増大する。ｎが１変化するごとの当該重みの変化割合は、ａをｂで除した値に一致する。更に、ｘ方向重み係数ｋｗｘがｂ以上になると、ｘ方向オフセット値ｍｏｆｆが１減算される。これは、元画像の対応注目画素（ｉ，ｊ）がｘ方向に１画素分ズレることを意味する。なお、図５のＳ１０４〜Ｓ１１６の処理が、元画像対応位置演算ステップ（元画像対応位置演算工程）に相当する。
【００７１】
以上により、図８の上側に示すような元画像のラスター画像を回転処理して、下側に示すような回転画像を得ることができる。そして、図５に示すフローのうち二次元補間処理（Ｓ１０３）において、計算式の［〜］内は整数同士の加算及び乗算で実現でき、除算は１回のみ（整数ｂ2による除算のみ）で注目画素の画素値Ｑ（ｍ，ｎ）を得ることができる。また、重み係数の計算（Ｓ１０５，Ｓ１０８，Ｓ１１２，Ｓ１１５）は整数の加算／減算処理で実現でき、対応注目画素の位置をオフセットすべきか否かの判定（Ｓ１０６，Ｓ１１３）は整数同士の比較処理で実現できる。従って、計算コストを著しく低減でき、処理時間を短縮できる。
【００７２】
なお、図５及び図８は画像を反時計方向に回転する場合を示しているが、画像を時計方向に回転することも可能である。この処理は、図５のフローチャートのＳ１０３、Ｓ１０７及びＳ１１４の処理において、−１を＋１に変更し、＋１を−１に変更すれば良い。
【００７３】
また、図６及び図８では説明を簡単にするために縦１８画素×横１８画素の小さな画像で説明したが、本実施形態の回転処理は任意の大きさの画像に適用することができる。更に、図６及び図８ではグレースケール画像の例で説明しているが、本実施形態の回転処理は、ＲＧＢの各色の階調について上記と同様の処理を行うことによりカラー画像の回転にも適用できる。カラー画像を回転する場合、各画素について３成分共通の重み係数を生成した後、順次色成分毎に補間演算することが好ましい。即ち、画素ごとに色成分を切り替えることが好ましい。これにより、重み係数を算出する処理を色成分間で共通化でき、処理時間の短縮化を図ることができる。
【００７４】
以上に示すように、本実施形態のイメージスキャナ装置１０１が備える傾き補正部６８は、元画像であるラスター画像を回転処理して回転画像を得るように構成されている。そして図３に示すように、前記傾き補正部６８は、整数パラメータ入力部７１と、元画像対応位置演算部７２と、二次元補間部７３と、を備えている。前記パラメータ入力部７１には、その比の値（ａ／ｂ）が回転角度の正接値tanθに等しくなるような第１整数パラメータａ及び第２整数パラメータｂが入力される。前記元画像対応位置演算部７２は、前記回転画像における注目画素（ｍ，ｎ）のｘ座標ｍを１画素分変更するごとに、ｙ方向重み係数ｋｗｙに前記第１整数パラメータａを加算する（Ｓ１０４、Ｓ１０５）。そして、このｙ方向重み係数ｋｗｙが前記第２整数パラメータｂ以上になったときは、元画像対応位置演算部７２は、当該ｙ方向重み係数ｋｗｙから前記第２整数パラメータｂを減算し（Ｓ１０８）、更に元画像において前記注目画素（ｍ，ｎ）に対応する位置の画素である対応注目画素（ｉ，ｊ）のｘ座標ｉを１画素分変更する処理を行う（Ｓ１０７）。また、元画像対応位置演算部７２は、前記回転画像における前記注目画素（ｍ，ｎ）のｙ座標ｎを１画素分変更するごとに、ｘ方向重み係数ｋｗｘに前記第１整数パラメータａを加算する（Ｓ１１１、Ｓ１１２）。そして、このｘ方向重み係数ｋｗｘが前記第２整数パラメータｂ以上になったときは、元画像対応位置演算部７２は、当該ｘ方向重み係数ｋｗｘから前記第２整数パラメータｂを減算するとともに（Ｓ１１５）、元画像の前記対応注目画素（ｉ，ｊ）のｙ座標ｊを１画素分変更する処理を行う（Ｓ１１４）。また、二次元補間部７３は図７に示すように、前記元画像における前記対応注目画素（ｉ，ｊ）、及び、当該対応注目画素とｘ座標及びｙ座標の少なくとも一方が１画素分異なっている３つの画素（ｉ−１，ｊ）、（ｉ，ｊ＋１）、（ｉ−１，ｊ＋１）を対象として、前記ｘ方向重み係数を第２整数パラメータで除した割合（ｋｗｘ／ｂ）、及び、前記ｙ方向重み係数を第２整数パラメータで除した割合（ｋｗｙ／ｂ）によって二次元補間することにより、回転画像における前記注目画素の画素値Ｑ（ｍ，ｎ）を求める。
【００７５】
これにより、整数パラメータａ，ｂ及び重み係数ｋｗｘ，ｋｗｙを利用した整数演算処理及び整数比較処理を多用して、二次元補間を伴う回転処理を行うことができる。従って、浮動小数点演算等の計算コストの大きな処理を少なくでき、画質の良い回転画像を高速に得ることができる。
【００７６】
即ち、本実施形態のイメージスキャナ装置１０１の場合、オートドキュメントフィーダ部及びフラットベッド部の何れを用いて原稿を読み取る場合でも、原稿の傾き角度（回転すべき角度）θは通常数°程度である。この場合、cosθ＝１とみなしても誤差（画質の低下）はほとんどない。本実施形態ではこの点に着目し、上記の処理を行うことで、計算を著しく簡単にすることができる。上記のように原稿の傾きが数°程度であれば、高い精度を維持することができ、かつ、従来技術のような複雑な処理を回避することができる。
【００７７】
また、前記二次元補間部７３は、前記注目画素の画素値Ｑ（ｍ，ｎ）の計算（図５のＳ１０３）において、前記第２整数パラメータの２乗（ｂ2）による除算をまとめて行っている。
【００７８】
これにより、計算コストの大きい除算処理を少なくできるので、回転処理を一層高速に行える。
【００７９】
なお、注目画素の画素値Ｑ（ｍ，ｎ）の計算処理（Ｓ１０３）は、前記第２整数パラメータｂに適宜の比率を乗じて２の整数乗の値とし、更にｘ方向重み係数ｋｗｘ及びｙ方向重み係数ｋｗｙに前記比率を乗じて整数値に近似した上で行うこともできる。例えば、図４の例ではａ＝１，ｂ＝５であるが、第２整数パラメータｂに比率（１６／５）を乗じて、２の４乗の値である１６に変更することが考えられる。そして、ｘ方向重み係数ｋｗｘ及びｙ方向重み係数ｋｗｙにも当該比率（１６／５）を乗じて整数値に近似し、画素値Ｑ（ｍ，ｎ）の計算処理を行うことが好ましい。重み係数ｋｗｘ，ｋｗｙに対して比率を乗じて整数値に丸めた結果は、元のｋｗｘ（ｋｗｙ）の値が０の場合、１の場合、２の場合、・・・のそれぞれについて予め計算してルックアップテーブル等に記憶しておき、それを参照することで取得することとしてもよい。
【００８０】
これにより、除算処理の計算コストを著しく低減できるので、回転処理の一層の高速化が実現できる。
【００８１】
また、本実施形態のイメージスキャナ装置１０１は、図３に示すように、画像読取部１１５と、傾き検出部６７と、を備える。画像読取部１１５は、原稿の画像を読み取って画像データを得るように構成されている。傾き検出部６７は、前記画像データにおける２つの点の座標から、その比が原稿の傾き角度の正接値tanθに等しくなるような２つの傾きパラメータ整数ａ，ｂを得る。そして、イメージスキャナ装置１０１は、２つの前記傾きパラメータ整数ａ，ｂを前記傾き補正部６８に２つの整数パラメータとして与えて前記画像データを回転処理することで、原稿の傾きを補正した画像データを得るように構成されている。
【００８２】
これにより、傾きが補正された画像データを短時間で得ることができ、高速読取に特に好適である。
【００８３】
以上に本発明の好適な実施形態及びその変形例を説明したが、以上の構成は例えば以下のように変更することができる。
【００８４】
傾き角度θが４５°よりも小さい場合（ａ／ｂが１より小さくなる場合）は、Ｓ１０８の処理の後、Ｓ１０６に戻らずにＳ１０９に進むように変更することができる。同様に、Ｓ１１５の処理後、Ｓ１１３に戻らずにＳ１１６に進むように変更することができる。以上により、回転処理を一層高速化することができる。本実施形態のイメージスキャナ装置１０１は、通常の使用の限りにおいて４５°以上の角度で原稿を回転させることが想定されないため、上記の変更は有効である。
【００８５】
Ｓ１０５の処理においてｙ方向重み係数ｋｗｙに加算される値、及び、Ｓ１１２の処理においてｘ方向重み係数ｋｗｘに加算される値は、パラメータａそのものでなく、変倍率に応じた値に変更することができる。同様に、Ｓ１０８の処理においてｙ方向重み係数ｋｗｙから減算される値、及び、Ｓ１１５の処理においてｘ方向重み係数ｋｗｘから減算される値は、パラメータｂそのものでなく、変倍率に応じた値に変更することができる。これにより、傾き補正と同時に拡大縮小処理を行うことができる。変倍率をＸとした場合、Ｓ１０５及びＳ１１２の処理では重み係数にａ／Ｘを加算すれば良く、Ｓ１０８及びＳ１１５の処理では重み係数からｂ／Ｘを減算すれば良い。例えば、５０％縮小（Ｘ＝１／２）を行う場合、Ｓ１０５及びＳ１１２の処理ではａでなく２ａが加算され、Ｓ１０８及びＳ１１５の処理ではｂでなく２ｂが減算される。
【００８６】
図５〜図８では元画像の回転中心が（０，０）の場合の回転処理を説明しているが、回転中心の位置は適宜変更することができる。この場合、図５のフローでの初期化処理（Ｓ１０２）におけるオフセット値ｍｏｆｆ，ｎｏｆｆの初期値と、Ｓ１１０におけるｎｏｆｆのリセット値とを、回転中心の位置に応じて適切に設定すれば良い。
【００８７】
二次元補間処理は、上記の線形補間に代えて、例えば二次曲線又はスプライン曲線等による二次元補間に変更することができる。
【００８８】
傾き角度検出処理は、図４のように原稿領域の抽出によって検出することに代えて、例えば原稿に記載されている文字の並び及び図形の傾きに基づいて２つの傾きパラメータ整数ａ，ｂを得るように変更することができる。
【００８９】
上記の画像回転処理は、オートドキュメントフィーダ部による原稿読取時の斜行補正のほか、フラットベッド部による原稿読取時の傾き補正のために行うことができる。また、上記の画像回転処理は、イメージスキャナ装置１０１に限らず、他の画像読取装置、例えばコピー装置、ファクシミリ装置、複合機、光学式文字読取装置（ＯＣＲ）等に適用することができる。
【図面の簡単な説明】
【００９０】
【図１】画像を回転させる場合の一般的な座標の変換式を示す図。
【図２】本発明の一実施形態に係るイメージスキャナ装置の全体的な構成を示す正面断面図。
【図３】イメージスキャナ装置の電気的構成を示すブロック図。
【図４】傾き検出部において検出される２つの傾きパラメータ整数ａ，ｂを示す説明図。
【図５】傾き補正部で実行される回転処理を示すフローチャート。
【図６】回転処理の概要を示す説明図。
【図７】二次元補間処理を示す概念図。
【図８】元画像とその回転結果を示す図。
【符号の説明】
【００９１】
６７  傾き検出部
６８  傾き補正部（画像処理装置）
７１  パラメータ入力部
７２  元画像対応位置演算部
７３  二次元補間部
１０１  イメージスキャナ装置（画像読取装置）
１１５  画像読取部
【図１】
0004947314.tif 000002
【図２】
0004947314.tif 000003
【図３】
0004947314.tif 000004
【図４】
0004947314.tif 000005
【図５】
0004947314.tif 000006
【図６】
0004947314.tif 000007
【図７】
0004947314.tif 000008
【図８】
0004947314.tif 000009