(57)【要約】【課題】読み取り動作や、解析処理に要する時間が短く、原稿領域情報を高精度に得ることができる画像読取装置及び画像読取装置の制御方法を提供することを目的とする。【解決手段】原稿の２辺の高解像度の画像データ部分を検出し、原稿の４辺ではなく、原稿の２辺の高解像度の画像データ部分を用いて画像の輪郭を検出し、この検出された画像の輪郭の範囲で、読み出した画像を切り出す。また、２辺の高解像度の画像データ部分を用いて、原稿の傾きを検出する画像読取装置である。【選択図】図５
2008227852.tif 000002
【特許請求の範囲】
【請求項１】
原稿台に設置されている原稿を読み取る画像読取装置において、
原稿領域の候補である原稿領域候補を検出する第１原稿検知手段と；
上記原稿領域候補の画像を読み取る読取手段と；
上記読み取った上記原稿領域候補の画像の端部領域のうちで、解析する範囲を設定する解析範囲設定手段と；
上記解析範囲設定手段が解析した画像の２辺の高解像度データに基づいて原稿の輪郭を検知する第２原稿検知手段と；
上記読み取った画像のうちで、上記第２原稿検知手段が検知した原稿の輪郭内の画像を切出して画像出力する画像出力手段と；
を有することを特徴とする画像読取装置。
【請求項２】
請求項１において、
上記第１原稿検知手段は、第１の解像度で原稿台全面を読み取り、得られた第１の画像から、上記原稿領域の候補となる領域を特定する手段であり、
上記第２原稿検知手段は、第２の解像度で上記原稿領域の候補である領域を読み取り、得られた第２の画像の端部領域を解析する手段であり、
上記第１の解像度は、上記第２の解像度よりも低い解像度であることを特徴とする画像読取装置。
【請求項３】
請求項１において、
上記原稿領域の候補となる領域を読み取ると同時に圧縮し、上記読み取った画像の端部領域のみを伸張し、上記伸張された画像データについて、上記第２原稿検知を行い、上記第２原稿検知によって特定された上記原稿領域を伸張し、出力画像とすることを特徴とする画像読取装置。
【請求項４】
請求項１において、
さらに、上記解析範囲設定手段が解析した画像の２辺の高解像度データに基づいて、原稿の傾きを検出する傾き検出手段と；
を有し、
上記第２原稿検知における解析範囲は、上記傾き検出手段が検出した原稿の傾きに応じて、定められる範囲であることを特徴とする画像読取装置。
【請求項５】
原稿台に設置されている原稿を読み取る画像読取装置の制御方法において、
原稿領域の候補である原稿領域候補を検出し、記憶装置に記憶する第１原稿検知工程と；
上記原稿領域候補の画像を読み取り、記憶装置に記憶する読取工程と；
上記読み取った上記原稿領域候補の画像の端部領域のうちで、解析する範囲を設定し、記憶装置に記憶する解析範囲設定工程と；
上記解析範囲設定工程で解析された画像の２辺の高解像度データに基づいて原稿の輪郭を検知し、記憶装置に記憶する第２原稿検知工程と；
上記読み取った画像のうちで、上記第２原稿検知工程で検知された原稿の輪郭内の画像を切出し、記憶装置に記憶し、画像出力する画像出力工程と；
を有することを特徴とする画像読取装置の制御方法。
【請求項６】
さらに、上記解析範囲設定工程で解析された画像の２辺の高解像度データに基づいて、原稿の傾きを検出する傾き検出工程と；
を有し、
上記第２原稿検知における解析範囲は、上記傾き検出工程で検出された原稿の傾きに応じて定められることを特徴とする画像読取装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像供給デバイスから供給された画像データを補正した後に、出力する画像読取装置及びその制御方法に関する。
【背景技術】
【０００２】
近年、印刷機能だけを備えている所謂シングルファンクションプリンタ（ＳＦＰ）に代わり、印刷機能の他に、画像の読み取り機能をも備えている所謂マルチファンクションプリンタ（ＭＦＰ）が普及し始めている。
【０００３】
マルチファンクションプリンタは、シングルファンクションプリンタが有する「印刷（プリント）機能」の他に、「ダイレクト印刷（ダイレクトプリント）機能」、「画像供給（スキャン）機能」、「複写（コピー）機能」等を備える多機能プリンタである。
【０００４】
ここで、「印刷（プリント）機能」は、ＰＣ等の外部機器の制御によって、印刷を行う機能である。また、「ダイレクト印刷（ダイレクトプリント）機能」は、メモリカード等の画像データを印刷する機能である。さらに、「複写（コピー）機能」は、ＰＣ等の外部機器の制御によって、画像データを取り込む機能である。「複写（コピー）機能」は、取り込んだ画像を、ＰＣ等の外部機器を介さずに、印刷する機能である。
【０００５】
これらの中でも、「画像供給（スキャン）機能」や「複写（コピー）機能」の付加価値として、読取装置に複数枚設置した原稿の位置や、サイズや、傾き等、原稿領域情報を検知し、原稿領域のみを有効な画像とし、それぞれを出力する機能を有する装置がある。また、所謂シングルファンクションスキャナ（ＳＦＳ）においても、付加価値として、「画像供給（スキャン）機能」に、同様の機能を有する装置がある。
【０００６】
従来、原稿検知技術として、特別な原稿検知センサを搭載する装置が知られ（たとえば、特許文献１参照）、また、原稿検知技術として、読み取りと同時に原稿のエッジを検知し、端部のエッジ部分を消去する装置が知られている（たとえば、特許文献２参照）。
【０００７】
しかし、高解像度で原稿を読み込み、この読み込んだ画像から原稿情報を検知するには、膨大な画素数を扱う必要があり、検知処理に時間がかかる。また、データ量も膨大になるので、データ転送に必要な時間も増える。さらに、必要となるメモリ量が増え、コストアップに繋がる場合がある。そして、一般的なスキャナにおいて、高解像度で原稿を読み取ると、低解像度での読み取りに比べて、読み取り時間が遅いので、原稿の存在しない領域までも、低速で読み取り、速度面でのオーバヘッドが大きくなる。
【０００８】
特許文献２記載の発明のように、原稿幅から原稿高さを予測し、原稿検知エリアを限定することによって、オーバヘッドを削減する技術等は、高速に原稿検知することができる。しかし、原稿台の突き当て位置等の特定の位置に原稿が存在していない場合は、原稿の開始位置を検知するために多くの領域を読み取る必要がある。
【０００９】
このために、低価格な機器や、データ転送速度がボトルネックになるケースでは、一度低解像度でプレスキャンを行い、得られた画像を解析し、原稿領域を検知し、改めて高解像度で原稿の存在する位置を本スキャンする手法が一般的である。
【００１０】
しかし、低解像度で読み取ったプレスキャン画像を解析すると、精度による誤差が発生する。たとえば、プレスキャン解像度が７５ｄｐｉであり、本スキャン解像度が６００ｄｐｉである場合、プレスキャンデータに対する解析が１ピクセルずれただけで、本スキャン時に、０．３ミリ以上ずれる。また、実際には、読取部のセンサによっては、原稿内領域と原稿外領域との境界のエッジ部分がぼやけるので、誤差はさらに大きくなる可能性がある。このために、原稿外の領域を有効な画像として扱うことがあるという問題がある。
【００１１】
したがって、通常は、プレスキャンによって検知された領域が、確実に原稿領域に含まれるように余裕をもって検知をする方法や、検知された領域の一定量内側の領域を、有効画像とし、原稿外の領域を有効画像としない方法が用いられる。
【００１２】
また、原稿の輪郭を検出する際に、低解像度で粗く読み取り、おおよその原稿範囲を検出した後に、先に検出した原稿範囲を、高解像度で読み取る。そして、高解像度で読み取った原稿の４辺に相当する画像部分だけに基づいて、原稿の輪郭を検出することが提案されている（たとえば、特許文献４参照）。
【特許文献１】特許第３７５７７６１号公報
【特許文献２】特開平７−１４３２９０号公報
【特許文献３】特開平８−２３５３０６号公報
【特許文献４】特開２００５−１１５４１７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかし、実際の原稿領域よりも内側を有効画像とする場合、画像の端部が切り取られる可能性がある。所謂ふちなし写真のように、紙面全面に印刷された原稿である場合、端部まで有効な画像が印刷されているので、必要な情報が欠落する可能性がある。また、原稿の上下左右で、検知誤差が異なることがあるので、実際の原稿と有効な画像とのアスペクト比が異なるという不具合が生じる。
【００１４】
原稿検知の解析精度を高めるためには、高解像度なデータについて、より精度の高い解析アルゴリズムを用いて解析処理すればよい。しかし、原稿台全面を高解像度で読み取る必要があるので、読み取りにかかる時間が増えるという問題がある。また、画像データのサイズが大きくなり、必要なメモリ量が膨大し、安価な機器では、解析する画像データを蓄積することができないという問題がある。
【００１５】
さらに、上記従来例では、高解像度かつ広面積の領域から、原稿位置情報を特定するためには、解析処理を行う画素数が膨大になり、解析処理に長時間を要するという問題がある。
【００１６】
本発明は、読み取り動作や、解析処理に要する時間が短く、原稿領域情報を高精度に得ることができる画像読取装置及び画像読取方法を提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明は、原稿の４辺ではなく、原稿の２辺の高解像度の画像データ部分を用いて画像の輪郭を検出し、また、２辺の高解像度の画像データ部分を用いて、原稿の傾きを検出する画像読取装置である。
【発明の効果】
【００１８】
本発明は、原稿の４辺ではなく、原稿の２辺の高解像度の画像データ部分を用いて原稿の輪郭を検出し、２辺の高解像度の画像データ部分を用いて、原稿の傾きを検出する。よって、本発明によれば、読み取り動作や、解析処理に要する時間が短く、原稿領域情報を高精度に得ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１９】
発明を実施するための最良の形態は、次の実施例である。
【実施例１】
【００２０】
図１は、本発明の一実施例である画像記録装置１００の構成を示すブロック図である。
【００２１】
図１に示すように、画像記録装置１００は、ＣＰＵ２０と、ＲＯＭ１と、ＲＡＭ２と、不揮発性ＲＡＭ３と、操作部４と、表示部５と、記録部６とを有する。また、画像記録装置１００は、画像処理部７と、読取部８と、カードインタフェース９と、駆動部１０と、センサ部１１と、通信インタフェース１２とを有する。
【００２２】
画像記録装置１００は、ＰＣ等の外部機器２００と接続をして利用することができる。外部機器２００は、通信インタフェース１２を介して、記録命令や、読取命令を表すＪＯＢコマンドとして、画像記録装置１００に送信し、スキャンやプリント、コピー等の操作を行う。
【００２３】
また、画像記録装置１００は、ＰＣ等の外部機器２００と接続しなくても、操作部４における所定の操作によって、スキャンやプリント、コピー等を実行することができる。
【００２４】
ＣＰＵ２０は、画像記録装置１００が備える様々な機能を制御し、通信インタフェース部１２を介して受け取った外部機器２００によるＪＯＢコマンドに従い、ＲＯＭ１に記憶されている画像処理のプログラムを実行する。また、外部機器２００と接続しなくても、操作部４における所定の操作によって、ＲＯＭ１に記憶されている画像処理のプログラムを実行することもできる。
【００２５】
ＲＯＭ１は、画像記録装置１００の制御命令プログラム等を格納している。
【００２６】
図２、図３は、画像記録装置１００を示す斜視図である。
【００２７】
ＣＣＤを備える読取部８は、原稿画像を読み取り、赤（Ｒ）、緑（Ｇ）及び青（Ｂ）色のアナログ輝度データを出力する。なお、読取部８として、ＣＣＤの代わりに、密着型イメージセンサ（ＣＩＳ）を使用するようにしてもよい。
【００２８】
カードインタフェース９は、たとえばデジタルスチルカメラで撮影され、メモリカード等に記録されている画像ファイルを、操作部４の所定の操作に従い読み込む。
【００２９】
画像処理部７においては、画像解析、画像データ圧縮、画像データ伸張、画像補正、色変換等、画像処理を行う専用回路等によって構成され、ＲＯＭ１に記述されている制御命令プログラムによって制御される。これらの画像処理によって得られた画像データは、ＲＡＭ２に格納される。ＲＡＭ２に格納されている印刷データが、記録部６で記録する場合に必要な所定量に達すると、記録部６による記録動作が実行される。
【００３０】
なお、上記画像処理は、記録用紙サイズや記録用紙タイプ、変倍印刷する／しない、フチなし印刷する／しない等、印刷設定によって、異なる印刷データが作成される。
【００３１】
また、不揮発性ＲＡＭ３は、バッテリバックアップされたＳＲＡＭ等であり、画像記録装置１００に固有のデータ等を記憶する。操作部４は、記憶媒体に記憶されている画像データを選択し、記録をスタートするためのキーであり、次のキーから構成されている。すなわち、ダイレクト印刷機能を実行するダイレクト印刷スタートキー、複写機能を実行するコピースタートキー、コピー解像度や画質等のモードを指定するモードキー、動作を停止するためのストップキー、コピー数を入力するテンキーや登録キー等である。ＣＰＵ２０は、これらキーの押下状態を検出し、この押下状態に応じて、各部を制御する。
【００３２】
表示部５は、ドットマトリクスタイプの液晶表示部５（ＬＣＤ）とＬＣＤドライバとを備え、ＣＰＵ２０の制御に基づいて、各種の表示を行う。記録部６は、インクジェット方式のインクジェットヘッド、汎用ＩＣ等によって構成され、ＣＰＵ２０の制御によって、ＲＡＭ２に格納されている記録データを読み出し、ハードコピーとして印刷出力する。
【００３３】
駆動部１０は、読取部８、記録部６のそれぞれの動作において、給排紙ローラを駆動するためのステッピングモータ、ステッピングモータの駆動力を伝達するギヤと、ステッピングモータとを制御するドライバ回路等によって構成されている。
【００３４】
センサ部１１は、記録紙幅センサ、記録紙有無センサ、原稿幅センサ、原稿有無センサ、記録媒体検知センサ等によって構成されている。ＣＰＵ２０は、これらセンサから得られた情報に基づいて、原稿と記録紙との状態を検知する。
【００３５】
図４は、画像記録装置１００に記憶されているプログラム構成を示す図である。
【００３６】
図４に示すように、ＲＯＭ１の内部に記憶されているプログラムは、次のモジュールによって構成されている。すなわち、データフロー制御部Ｒ０１と、画像領域／サイズ情報決定部Ｒ０２と、スキャナエンジン制御部Ｒ０３と、読取画像処理部Ｒ０４と、記録画像処理部Ｒ０５と、プリントエンジン制御部Ｒ０６とによって構成されている。さらに、読取画像処理部Ｒ０４は、第１変倍処理部Ｒ０８と、第１色変換部Ｒ０９と、第２変倍処理部Ｒ１０と、データ圧縮部Ｒ１１とを有する。また、記録画像処理部Ｒ０５は、第３変倍処理部Ｒ１２と、第２色変換部Ｒ１３と、量子化処理部Ｒ１４と、データ伸張部Ｒ１５とを有する。
【００３７】
データフロー制御部Ｒ０１は、操作部４や通信インタフェース１２を介して、ユーザから指定された情報を受け取る。
【００３８】
次に、画像領域／サイズ情報決定部Ｒ０２やスキャナエンジン制御部Ｒ０３、読取画像処理部Ｒ０４との間で、モード情報や領域情報等のデータのやり取りを制御する。
【００３９】
画像領域／サイズ情報決定部Ｒ０２は、データフロー制御部Ｒ０１から受け取ったモード情報等に基づいて、読取範囲や記録範囲等を決定する。
【００４０】
スキャナエンジン制御部Ｒ０３は、駆動部１０と読取部８とを制御し、画像領域／サイズ情報決定部Ｒ０２によって定められている範囲とサイズの画像データとを読取った後に、ＲＡＭ２を介して、読取画像処理部Ｒ０４に渡す。
【００４１】
また、スキャナエンジン制御部Ｒ０３は、読み取り開始位置と読み取り解像度とのパラメータを、データフロー制御部Ｒ０１から受け取り、駆動部１０と読取部８とを制御する。
【００４２】
読取画像処理部Ｒ０４は、モードに応じて、変倍や、色変換等の画像処理を行い、必要に応じて、画像データを圧縮し、ＲＡＭ２に保存する。
【００４３】
記録画像処理部Ｒ０５は、ＲＡＭ２を介して受け取った画像データに対して、必要に応じて、伸張し、変倍や色変換、量子化等、記録を行うために必要な画像処理を行い、ＲＡＭ２に記憶する。
【００４４】
プリントエンジン制御部Ｒ０６は、ＲＡＭ２に記憶されている画像データを、記録メディア上の画像領域／サイズ情報決定部Ｒ０２によって定められている領域に記録するように、記録部６と駆動部１０とを制御する。
【００４５】
第１変倍処理部Ｒ０８、第２変倍処理部Ｒ１０、第３変倍処理部Ｒ１２は、変倍率等のパラメータをセットし、画像データを拡大／縮小する。
【００４６】
第１色変換部Ｒ０９、第２色変換部Ｒ１３は、色処理パラメータ等をセットし、マトリクス演算やルックアップテーブルを参照する等によって、色変換処理を行う。
【００４７】
データ圧縮部Ｒ１１は、画像データをＪＰＥＧファイルに圧縮する。データ伸張部Ｒ１５は、ＪＰＥＧファイルを伸張する。量子化処理部Ｒ１４は、誤差拡散等を行い、画像データを二値のデータに量子化する。
【００４８】
読取画像処理部Ｒ０４、記録画像処理部Ｒ０５に含まれている各画像処理部Ｒ０８〜Ｒ１５は、画像処理パラメータの設定と画像処理部７の制御とを行い、実処理を、専用の回路等で構成されている画像処理部７が実行するようにしてもよい。
【００４９】
本実施例において、読取部８は、６００ｄｐｉ又は、７５ｄｐｉで画像データを読み込む能力を有し、原稿台のサイズは、横方向に２２０ミリ、縦方向に３００ミリとする。また、記録部６は、画像データを６００ｄｐｉの解像度で記録する能力を有する。
【００５０】
本実施例は、ＲＯＭ１に記憶されているプログラムによって、実現される。
【００５１】
次に、上記実施例における動作について説明する。
【００５２】
図５は、ＲＯＭ１に記憶されているプログラムによって、画像記録装置１００を制御し、原稿検知とコピーとを実行する動作を示すフローチャートである。
【００５３】
まず、Ｓ１０１で、読取部８が、７５ｄｐｉで、原稿台全面をプレスキャンし、読み取った画像データを、ＲＡＭ２に記憶する。
【００５４】
図６は、画像記録装置１００において、ＲＡＭ２に記憶されている画像データを示す図である。
【００５５】
次に、Ｓ１０２で、第１原稿検知を行う。Ｓ１０２で、ＲＡＭ２に記憶されている画像データ全面を解析し、原稿台に設置されている原稿毎に、原稿領域の候補になる領域を検知する。
【００５６】
本実施例において、輝度による閾値を用い、プレスキャン画像データを、原稿候補領域と非原稿候補領域とに像域分離する。通常、原稿端部に関しては、原稿領域と非原稿領域とがあいまいである部分が存在する。本実施例では、あいまいな領域が、原稿候補領域であると判定されるように、閾値を設定する。
【００５７】
次に、原稿領域候補の４頂点座標（４つの頂点の座標）を求める。原稿１における原稿候補領域の第１頂点の座標を、Ｖ０［０］とし、第２頂点の座標を、Ｖ１［０］とし、第３頂点の座標を、Ｖ２［０］とし、第４頂点の座標を、Ｖ３［０］とする。図６に示す例において、Ｖ０［０］＝（１１８，５９）、Ｖ１［０］＝（４１８，８５）、Ｖ２［０］＝（７９，５０７）、Ｖ３［０］＝（３７８，５３３）である。ただし、座標値は、７５ｄｐｉでのピクセル値で表現され、座標値の成分は（横方向の座標値，縦方向の座標値）であり、読取基準位置が（０，０）であるとする。
【００５８】
複数の原稿が設置されている場合、原稿２（２つ目の原稿）、原稿３（３つ目の原稿）、……毎に、それぞれ４頂点座標を求める。たとえば、原稿２における４頂点座標のそれぞれは、第１頂点Ｖ０［１］、第２頂点Ｖ１［１］、第３頂点Ｖ２［１］、第４頂点Ｖ３［１］に保存される。また、原稿Ｎ（Ｎ枚目の原稿）に対する４頂点座標は、それぞれ第１頂点Ｖ０［Ｎ−１］、第２頂点Ｖ１［Ｎ−１］、第３頂点Ｖ２［Ｎ−１］、第４頂点Ｖ３［Ｎ−１］であると定義づけし、記憶される。
【００５９】
以下では、原稿１をコピーする場合を例にとって、説明する。
【００６０】
次に、Ｓ１０３で、本スキャンの読取範囲を定める。
【００６１】
図７は、本スキャンの読取範囲を示す図である。
【００６２】
本スキャンの読取範囲は、読み取り開始位置ａｒｅａ＿ｏｆｓ＿ｘ、ａｒｅａ＿ｏｆｓ＿ｙと、読み取り幅ａｒｅａ＿ｗｉｄｔｈと、読み取り高さａｒｅａ＿ｈｅｉｇｈｔによって定義される。それぞれの値は、読取解像度におけるピクセル値である。
【００６３】
本実施例において、コピー処理を行う際の本スキャンの読取解像度は、６００ｄｐｉとする。図７に示すように、本スキャンの読取範囲は、Ｓ１０２で検知された４頂点を、全て包含するような、傾きの無い矩形領域として求める。Ｓ１０２で得られた４頂点の座標値Ｖ０［０］、Ｖ１［０］、Ｖ２［０］、Ｖ３［０］は、演算誤差や検知アルゴリズムの精度次第では、原稿の内側であることがある。そこで、外側に１ピクセルずつ拡張し、第1頂点Ｖ０［０］＝（１１７，５８）、第２頂点Ｖ１［０］＝（４１９，８４）、第３頂点Ｖ２［０］＝（７８，５０８）、第４頂点Ｖ３［０］＝（３７９，５３４）であるとする。
【００６４】
さらに、各頂点座標を、６００ｄｐｉ相当のピクセル数に変換すると、拡張点は次のようになる。すなわち、第１頂点Ｖ０［０］＝（９３６，４６４）、第２頂点Ｖ１［０］＝（３３５２，６７２）、第３頂点Ｖ２［０］＝（６２４，４０６４）、第４頂点Ｖ３［０］＝（３０３２，４２７２）になる。
【００６５】
これらの頂点に外接する矩形領域が、読取範囲であるとする。読取範囲は、読み取り開始位置ａｒｅａ＿ｏｆｓ＿ｘ＝６２４、読み取り開始位置ａｒｅａ＿ｏｆｓ＿ｙ＝４６４、読み取り幅ａｒｅａ＿ｗｉｄｔｈ＝２７２８、読み取り高さａｒｅａ＿ｈｅｉｇｈｔ＝３８０８である。
【００６６】
次に、Ｓ１０４で、本スキャンを実行する。Ｓ１０４で、読取部８を制御する。そして、６００ｄｐｉで、読み取り開始位置ａｒｅａ＿ｏｆｓ＿ｘ、ａｒｅａ＿ｏｆｓ＿ｙ、読み取り幅ａｒｅａ＿ｗｉｄｔｈ、読み取り高さａｒｅａ＿ｈｅｉｇｈｔで定義された矩形領域を、順次１ライン毎に読み取り、ＲＡＭ２に記憶する。このときに、ＲＡＭ２の容量や使用量に応じて、一度に滞留させておくことができるライン数の限界値（規定量）が定められ、限界値（規定量）に達すると、読み取り処理を、一時的に中断するように制御する。本実施例においては、限界値（規定量）が、１６ラインである。
【００６７】
Ｓ１０５では、Ｓ１０６で行うエンコード処理が可能なライン数が、ＲＡＭ２に蓄積されているかどうかを判断し、エンコード処理が可能なライン数に達していれば、Ｓ１０６に処理を移す。また、エンコード処理が可能なライン数に達していなければ、Ｓ１０４に処理を移し、継続してスキャンするように制御する。本実施例においては、エンコード可能なライン数が１６ラインであるとする。ただし、原稿の終端部分については、１６ラインに満たなくても、エンコード処理が可能であるとする。
【００６８】
Ｓ１０６で、ＲＡＭ２に保存された画像データを、ＪＰＥＧにエンコードする処理を順次、実行し、ＲＡＭ２に保存する。
【００６９】
Ｓ１０７で、読取範囲を全てエンコードしたかどうかを判断し、読取範囲が全てエンコードされていれば、Ｓ１０８に進む。それ以外の場合、Ｓ１０４に戻り、スキャンを継続するように制御する。
【００７０】
Ｓ１０８では、Ｓ１０９で実行する第２原稿検知に必要なライン数を求める。原稿上端部分における原稿領域と非原稿領域との判定処理に必要なライン数ｕｐｐｅｒ＿ｌｉｎｅ＿ｎｕｍと、原稿左端部分における原稿領域と非原稿領域とを判定する処理に必要なライン数ｌｅｆｔ＿ｌｉｎｅ＿ｎｕｍとを計算する。なお、原稿左端部分における原稿領域と非原稿領域とを判定する処理は、原稿領域・非原稿領域判定処理である。この原稿領域・非原稿領域判定処理に必要なライン数は、第１原稿検知処理（Ｓ１０２）の精度と、原稿の傾き量とによって異なり、第１原稿検知処理で得られた原稿候補領域の４点頂点の座標に基づいて求められる。
【００７１】
本実施例において、原稿領域の４頂点座標Ｖ０［０］、Ｖ１［０］、Ｖ２［０］、Ｖ３［０］と、実際の原稿領域の頂点との誤差が、７５ｄｐｉ換算では、最大で２ピクセルであるとすると、６００ｄｐｉ換算では、１６ピクセルである。つまり、原稿候補領域から１６ピクセル内側であれば、確実に原稿領域内であると考えられる。
【００７２】
原稿の上端部分の検知に必要なライン数は、原稿候補領域の第１頂点Ｖ０［０］の縦方向成分と、第２頂点Ｖ１［０］の縦方向成分との差分によって求められる。したがって、６７２−４６４＝２０８ラインが、最低限必要である。
【００７３】
さらに、原稿領域の４頂点座標と、実際の原稿領域の頂点との誤差の最大値を考慮し、１６ライン加算し、判定処理に必要なライン数ｕｐｐｅｒ＿ｌｉｎｅ＿ｎｕｍ＝２２４ラインとする。これと同様に、原稿の左端部分の検知に必要なライン数は、原稿候補の第１頂点Ｖ０［０］の横方向成分と、第３頂点Ｖ２［０］の横方向成分との差分によって、３１２ラインが最低限必要である。さらに、原稿領域を確実に解析するためには、第１原稿検知誤差の最大値である１６ラインを加算し、判定処理に必要なライン数ｌｅｆｔ＿ｌｉｎｅ＿ｎｕｍ＝３２８ラインであるとする。
【００７４】
Ｓ１０９で、ＲＡＭ２に記憶されているＪＰＥＧデータのうちで、左端と上端とをデコードし、第２原稿検知を行い、原稿領域を求める。このときの原稿領域を、原稿開始位置の横方向成分ｒｅａｌ＿ｓｔａｒｔ＿ｘ、縦方向成分ｒｅａｌ＿ｓｔａｒｔ＿ｙと、原稿幅ｒｅａｌ＿ｗｉｄｔｈと、原稿高さｒｅａｌ＿ｈｅｉｇｈｔとによって定義する。
【００７５】
図８は、ＲＡＭ２に記憶されているＪＰＥＧ画像データを示す図である。
【００７６】
まず、ＲＡＭ２に記憶されているＪＰＥＧデータの左端から、幅ｌｅｆｔ＿ｌｉｎｅ＿ｎｕｍ（３２８ピクセル）領域を、デコードし、ＲＡＭ２に記憶する。
【００７７】
図９は、ＲＡＭ２に記憶されている左端画像データを示す図である。
【００７８】
ＲＡＭ２に記憶されている左端画像データについて、エッジ抽出と、直線抽出と、非原稿領域と原稿領域との画素値の連続性とを用いて、原稿領域と非原稿領域との境界である直線（境界線）を検出する。
【００７９】
次に、非原稿領域と原稿領域との境界である直線（境界線）の始点座標値ｖ＿ｓｔａｒｔ＿ｐｏｉｎｔと、終点座標値ｖ＿ｅｎｄ＿ｐｏｉｎｔとを求める。このときの始点座標値ｖ＿ｓｔａｒｔ＿ｐｏｉｎｔ、終点座標値ｖ＿ｅｎｄ＿ｐｏｉｎｔを、ＪＰＥＧ画像の左上を原点（０，０）とするピクセル数によって定義する。本実施例では、始点座標値ｖ＿ｓｔａｒｔ＿ｐｏｉｎｔ＝（３２１，９）、終点座標値ｖ＿ｅｎｄ＿ｐｏｉｎｔ＝（７，３６３１）が検知されたとする。
【００８０】
次に、左端と同様に、ＪＰＥＧ画像の上端についても、上端から高さｕｐｐｅｒ＿ｌｉｎｅ＿ｎｕｍ（２２４ピクセル）の領域を、デコードし、ＲＡＭ２に記憶する。
【００８１】
図１０は、ＲＡＭ２に記憶されている上端画像データを示す図である。
【００８２】
ＲＡＭ２に記憶されている上端画像データについても、解析し、非原稿領域と原稿領域との境界である直線（境界線）の始点座標値ｈ＿ｓｔａｒｔ＿ｐｏｉｎｔと、終点座標値ｈ＿ｅｎｄ＿ｐｏｉｎｔとを求める。本実施例においては、始点座標値ｈ＿ｓｔａｒｔ＿ｐｏｉｎｔ＝（３２１，９）、終点座標値ｈ＿ｅｎｄ＿ｐｏｉｎｔ＝（２７１１，２１８）が検知されたとする。
【００８３】
次に、求められた各点座標に基づいて、原稿開始位置の横方向成分ｒｅａｌ＿ｓｔａｒｔ＿ｘと、縦方向成分ｒｅａｌ＿ｓｔａｒｔ＿ｙ、原稿幅ｒｅａｌ＿ｗｉｄｔｈと、原稿高さｒｅａｌ＿ｈｅｉｇｈｔとを求める。
【００８４】
横方向成分ｒｅａｌ＿ｓｔａｒｔ＿ｘは、始点座標値ｖ＿ｓｔａｒｔ＿ｐｏｉｎｔの横方向成分であるので、本実施例では、横方向成分ｒｅａｌ＿ｓｔａｒｔ＿ｘ＝３２１である。また、縦方向成分ｒｅａｌ＿ｓｔａｒｔ＿ｙは、始点座標値ｖ＿ｓｔａｒｔ＿ｐｏｉｎｔの縦方向成分であるので、本実施例においては、縦方向成分ｒｅａｌ＿ｓｔａｒｔ＿ｙ＝９である。原稿幅ｒｅａｌ＿ｗｉｄｔｈは、始点座標値ｈ＿ｓｔａｒｔ＿ｐｏｉｎｔと終点座標値ｈ＿ｅｎｄ＿ｐｏｉｎｔとの距離であるので、本実施例では、原稿幅ｒｅａｌ＿ｗｉｄｔｈ＝２３９９、原稿高さｒｅａｌ＿ｈｅｉｇｈｔ＝３６３６である。
【００８５】
また、原稿の傾き角度をθとすると、ｓｉｎθ、ｃｏｓθは、それぞれ、次の式（１）、式（２）によって得られる。したがって、本実施例では、ｓｉｎθ＝３１４／３６３６、ｃｏｓθ＝３５８６／３６３６が記憶される。
【００８６】
ｓｉｎθ＝｜始点座標値ｖ＿ｓｔａｒｔ＿ｐｏｉｎｔの横方向成分−終点座標値ｖ＿ｅｎｄ＿ｐｏｉｎｔの横方向成分｜／原稿高さｒｅａｌ＿ｈｅｉｇｈｔ……式（１）
ｃｏｓθ＝｜始点座標値ｖ＿ｓｔａｒｔ＿ｐｏｉｎｔの縦方向成分−終点座標値ｖ＿ｅｎｄ＿ｐｏｉｎｔの縦方向成分｜／原稿高さｒｅａｌ＿ｈｅｉｇｈｔ……式（２）
次に、Ｓ１１０〜Ｓ１１５を繰り返すことによって、読み取った画像データを、記録用紙に記録する。
【００８７】
Ｓ１１０で、ＪＰＥＧ画像から求めた原稿領域をデコードし、ＲＡＭ２に保存する。このときに、滞留可能なライン数（ＲＡＭ２に保存可能なライン数）の最大値に達すると、Ｓ１１１に進む。
【００８８】
次に、Ｓ１１１で、傾き補正（Ｓ１１２）に必要なライン数に達したかどうかを判断し、達すると、Ｓ１１２を実行する。また、達しなければ、Ｓ１１０に戻り、デコードを再開する。本実施例において、傾き補正処理（Ｓ１１２）に必要な最低ライン数は、始点座標値ｈ＿ｓｔａｒｔ＿ｐｏｉｎｔの高さ成分と、終点座標値ｈ＿ｅｎｄ＿ｐｏｉｎｔの高さ成分との差分によって求められ、本実施例では、２０９ラインである。よって、ＪＰＥＧ画像をデコードし、原稿領域を含むライン（２０９ライン）を蓄積した後に、原稿領域についての傾き補正を開始する。
【００８９】
次に、Ｓ１１２では、画像中の原稿領域について、傾き補正を行う。このときに、ｓｉｎθとｃｏｓθとを用いた座標変換と補間演算とによって、傾き補正を行う。
【００９０】
Ｓ１１３で、記録用画像処理を行う。つまり、拡大、縮小、色変換、量子化を行い、この処理結果を、ＲＡＭ２に記憶する。
【００９１】
Ｓ１１４で、生成された量子化後の画像データを記録部６に渡し、記録部６を制御することによって、記録用紙への印字を開始する。Ｓ１１５で、原稿領域の全てを記録したかどうかを判断し、全てを記録したら、終了し、それ以外の場合は、Ｓ１１０に戻る。
【００９２】
上記処理によって、傾いて置かれている複数の原稿に基づいて、原稿領域を精度良く抽出し、記録用紙に記録することができる。
【００９３】
本実施例では、圧縮方式がＪＰＥＧであるが、ＭＲ圧縮等、他の圧縮方式を用いるようにしてもよい。また、ＲＡＭ２の容量が充分であれば、非圧縮で記憶するようにしてもよい。
【００９４】
また、輝度の閾値に基づいて、第１原稿検知を実行するが、エッジ検出等を用いた検知方法等、他の検知方法を用いてもよい。さらに、第２原稿検知でも、上記と同様に、他の検知方法を用いるようにしてもよい。
【００９５】
本実施例において、第２原稿検知を行う際に、ＪＰＥＧのデコードを比較的高速に行うことができる上端と左端との画像データを、解析対象にするが、他の部分を解析対象にするようにしてもよい。
【００９６】
図１１は、第２原稿検知において行う検知領域の例を示す図である。
【００９７】
たとえば、より高速かつ必要な記憶領域を少なく検知するために、図１１に示すように、ＪＰＥＧ画像の左上、右上、左下の３点のデータに基づいて、原稿領域の４頂点が含まれることが保証される矩形領域を切出し、解析する方法等を採用するようにしてもよい。
【００９８】
図１２は、第２原稿検知において行う検知領域の例を示す図である。
【００９９】
図１２に示すように、原稿の４つの辺が含まれることが保証される上端、左端、下端、右端の領域を解析対象領域とし、より高精度に検知するようにしてもよい。
【０１００】
その他、上端と下端とを解析対象領域とする方法や、左端と右端とを解析対象領域とする方法等を採用するようにしてもよい。
【０１０１】
また、第２原稿検知において原稿領域を検知する際に、原稿端部の欠けた領域や、影部等を検出し、記録処理時に補正するようにしてもよい。
【０１０２】
本実施例では、第２原稿検知に必要なライン数を、傾き量によって動的に計算するが、原稿の傾き量に制限がある場合、傾き量の最悪値によって算出された固定のライン数としてもよい。
【実施例２】
【０１０３】
本発明の実施例２は、第２原稿検知を行う前に傾き補正を行う実施例であり、このために、第２原稿検知に必要な領域が少なくても足りる。また、実施例２は、実施例１における画像記録装置１００を使用し、ＲＯＭ１の内部に記憶されているプログラムを変えることによって実現可能である。
【０１０４】
図１３は、実施例２におけるＲＯＭ１に記憶されているプログラムによる制御によって、原稿検知とコピーとを実行する動作を示すフローチャートである。
【０１０５】
実施例２において、実施例１と同様に、読取部８は、６００ｄｐｉ、７５ｄｐｉで画像データを読み込む能力を有し、記録部６は、６００ｄｐｉの解像度で画像データを記録する能力を有する。また、原稿台のサイズは、横方向に２２０ミリ、縦方向に３００ミリであるとする。さらに、実施例２において、実施例１と同様に、原稿台には、２種類の原稿が設置され、それぞれを原稿１、原稿２とする。
【０１０６】
まず、Ｓ２０１で、実施例１と同様に、読取部８を制御し、７５ｄｐｉで、原稿台全面をスキャンし、読み取った画像データを、ＲＡＭ２に記憶する。
【０１０７】
次に、Ｓ２０２で、実施例１で説明したＳ１０２と同様に、第１原稿検知を実行し、原稿候補である領域の４頂点を検知する。
【０１０８】
Ｓ２０２で、ＲＡＭ２に記憶されている画像データを解析し、原稿台に設置されている原稿毎に、原稿領域を検知する。実施例２において、原稿を検知する場合、プレスキャン画像データを、輝度による閾値を用い、原稿領域と非原稿領域とに像域分離する。このときに、原稿端部において、原稿領域と非原稿領域とがあいまいである部分が存在する。実施例２では、このあいまいな領域が原稿領域であると判定されるような閾値を設定する。
【０１０９】
実施例２では、原稿１についての原稿候補領域の４頂点座標の値が、それぞれＶ０［０］＝（１１８，５９）、Ｖ１［０］＝（４１８，８５）、Ｖ２［０］＝（７９，５０７）、Ｖ３［０］＝（３７８，５３３）であると検知されたとする。ただし、座標値は、７５ｄｐｉでのピクセル値で表現され、（横方向の座標値，縦方向の座標値）であるとし、読取基準位置を（０，０）と定義する。
【０１１０】
複数の原稿が設置されている場合、原稿２、原稿３、……のそれぞれについて、４頂点を求める。たとえば、２つ目の原稿（原稿２）に対する４頂点座標は、それぞれ、第１頂点Ｖ０［１］、第２頂点Ｖ１［１］、第３頂点Ｖ２［１］、第４頂点Ｖ３［１］に保存される。
【０１１１】
Ｎ枚目の原稿（原稿Ｎ）についての４頂点座標は、それぞれ、第１頂点Ｖ０［Ｎ−１］、第２頂点Ｖ１［Ｎ−１］、第３頂点Ｖ２［Ｎ−１］、第４頂点Ｖ３［Ｎ−１］であると定義づけ、記憶される。
【０１１２】
以降、実施例２において、原稿１をコピーする場合を例にとって、説明する。
【０１１３】
Ｓ２０３で、本スキャン範囲を求める。実施例１で説明したＳ１０３と同様に、本スキャンの読取範囲は、読み取り開始位置ａｒｅａ＿ｏｆｓ＿ｘ、ａｒｅａ＿ｏｆｓ＿ｙと、読み取り幅ａｒｅａ＿ｗｉｄｔｈと、読み取り高さａｒｅａ＿ｈｅｉｇｈｔとによって定義される。原稿候補領域の各頂点座標は、６００ｄｐｉ相当のピクセル数で、Ｖ０［０］＝（９３６，４６４）、Ｖ１［０］＝（３３５２，６７２）、Ｖ２［０］＝（６２４，４０６４）、Ｖ３［０］＝（３０３２，４２７２）であるとする。
【０１１４】
よって、読取範囲も、実施例１と同様に、ａｒｅａ＿ｏｆｓ＿ｘ＝６２４、ａｒｅａ＿ｏｆｓ＿ｙ＝４６４、読み取り幅ａｒｅａ＿ｗｉｄｔｈ＝２７２８、読み取り高さａｒｅａ＿ｈｅｉｇｈｔ＝３８０８である。また、同時に、原稿候補領域の幅と高さとを求める。ここで、原稿候補領域の幅がｐｒｅ＿ｗｉｄｔｈであり、その高さがｐｒｅ＿ｈｅｉｇｈｔであると定義する。ｐｒｅ＿ｗｉｄｔｈは、第１頂点Ｖ０［０］＝（９３６，４６４）と、第２頂点Ｖ１［０］＝（３３５２，６７２）との距離であるので、原稿候補領域幅が、ｐｒｅ＿ｗｉｄｔｈ＝２４２５であると記憶する。
【０１１５】
同様に、ｐｒｅ＿ｈｅｉｇｈｔは、第１頂点Ｖ０［０］＝（９３６，４６４）と第３頂点Ｖ２［０］＝（６２４，４０６４）との距離であるので、原稿候補領域高さが、ｐｒｅ＿ｈｅｉｇｈｔ＝３６１３であると記憶する。
【０１１６】
また、原稿の傾き候補角度がθ１であるとすると、ｓｉｎθ１、ｃｏｓθ１は、それぞれ、次の式（３）、式（４）によって得られる。したがって、実施例２では、ｓｉｎθ１＝３１２／３６１３、ｃｏｓθ１＝３６００／３６１３が、原稿候補領域の傾き量を表すパラメータであるとして記憶する。
【０１１７】
ｓｉｎθ１＝｜Ｖ０［０］の横方向成分−Ｖ２［０］の横方向成分｜／ｐｒｅ＿ｈｅｉｇｈｔ……式（３）
ｃｏｓθ１＝｜Ｖ０［０］の縦方向成分−Ｖ２［０］の縦方向成分｜／ｐｒｅ＿ｈｅｉｇｈｔ……式（４）
次に、Ｓ２０４〜Ｓ２０９の処理を繰り返し、原稿候補領域を読み取り、ＪＰＥＧ画像としてＲＡＭ２に保存する。
【０１１８】
まず、Ｓ２０４で、本スキャンを実行する。Ｓ２０４で、読取部８を制御し、６００ｄｐｉで原稿台の特定の矩形領域を、順次１ラインずつ読み取り、ＲＡＭ２に記憶する。このときに読み取る領域は、読み取り開始位置ａｒｅａ＿ｏｆｓ＿ｘ、ａｒｅａ＿ｏｆｓ＿ｙ、読み取り幅ａｒｅａ＿ｗｉｄｔｈ、読み取り高さａｒｅａ＿ｈｅｉｇｈｔによって定義される矩形領域である。
【０１１９】
Ｓ２０５で、第１の傾き補正（Ｓ２０６）をするために必要なライン数をスキャンしたかどうかを判断し、傾き補正が可能であると判断すれば、Ｓ２０６に進む。それ以外の場合、Ｓ２０４で、再びスキャンする。
【０１２０】
ここで、傾き補正（Ｓ２０６）において、１ライン分の傾き補正を行うためには、原稿候補領域の第１頂点Ｖ０［０］と第２頂点Ｖ１［０］とが、読み取り画像データに含まれている必要がある。実施例２では、第１頂点Ｖ０［０］の縦方向成分と、第２頂点Ｖ１［０］の縦方向成分との差分である２０８ライン以上が必要である。よって、実施例２では、滞留している本スキャンの出力画像のライン数が、２０８ライン以上であれば、Ｓ２０６に進む。滞留している本スキャンの出力画像のライン数が、２０８ライン未満であれば、Ｓ２０４でスキャンを開始する。
【０１２１】
Ｓ２０６で、第１の傾き補正を行う。ＲＡＭ２に保存されている読み取り画像データに傾き補正を行い、この補正結果を、ＲＡＭ２に保存する。このときに保存するデータは、原稿候補領域内の画素のデータのみである。また、ｓｉｎθ１とｃｏｓθ１とを用いた座標変換と補間演算とによって、傾きを補正する。
【０１２２】
Ｓ２０７で、エンコード（Ｓ２０８）するために必要なライン数に達しているかどうかを判断し、達していれば、Ｓ２０８に進む。それ以外であれば、Ｓ２０５に戻り、第１の傾き補正処理や、本スキャンを再開する。
【０１２３】
ここで、実施例２において、ＪＰＥＧエンコード（Ｓ２０８）するために必要なライン数を１６ラインとし、Ｓ２０６で、１６ラインまで出力可能であるとする。ただし、入力データが終了していれば、処理を終了し、Ｓ２０８に進む。
【０１２４】
次に、Ｓ２０８で、ＪＰＥＧエンコードを行う。実施例２では、入力となる１６ラインのデータ毎に、圧縮し、ＪＰＥＧ画像データを生成する。実施例２では、最終データの処理が終了すると、Ｓ２０３で求めた幅ｐｒｅ＿ｗｉｄｔｈ＝２４２５であり、高さｐｒｅ＿ｈｅｉｇｈｔ＝３６１３であるＪＰＥＧ画像を、ＲＡＭ２に保存する。
【０１２５】
また、Ｓ２０９で、幅ｐｒｅ＿ｗｉｄｔｈ、高さｐｒｅ＿ｈｅｉｇｈｔ分のデータを全てエンコードしたかどうかを判断し、エンコード済みであれば、Ｓ２１０に進む。エンコードが完了していなければ、Ｓ２０７に戻り、エンコード処理、傾き補正、本スキャンを行う。
【０１２６】
Ｓ２１０で、第２原稿検知（Ｓ２１１）に必要なライン数を求める。原稿上端部分での原稿領域と非原稿領域との判定処理に必要なライン数ｕｐｐｅｒ＿ｌｉｎｅ＿ｎｕｍと、原稿左端部分における原稿領域と非原稿領域との判定処理（原稿領域・非原稿領域判定処理）に必要なライン数ｌｅｆｔ＿ｌｉｎｅ＿ｎｕｍとを計算する。
【０１２７】
判定に必要なライン数は、第１原稿検知（Ｓ２０２）の精度と、第１の傾き補正（Ｓ２０６）の精度とによって定められる。実施例２では、第１原稿検知Ｓ２０２の誤差と、第１の傾き補正Ｓ２０６の誤差とが最大で３２ラインであるとする。したがって、判定処理に必要なライン数ｕｐｐｅｒ＿ｌｉｎｅ＿ｎｕｍ＝３２ラインとし、判定処理に必要なライン数ｌｅｆｔ＿ｌｉｎｅ＿ｎｕｍ＝３２ラインとする。第１の傾き補正によって、実施例１と比べて必要なライン数が削減され、第２原稿検知が高速になる。
【０１２８】
Ｓ２１１で、実施例１におけるＳ１０９と同様に、ＲＡＭ２に記憶されているＪＰＥＧデータのうちで、左端と上端とをデコードし、第２原稿検知を行い、原稿領域を求める。このときに、原稿開始位置の横方向成分が、横方向成分ｒｅａｌ＿ｓｔａｒｔ＿ｘであり、縦方向成分が、ｒｅａｌ＿ｓｔａｒｔ＿ｙであり、原稿幅が、ｒｅａｌ＿ｗｉｄｔｈであり、原稿高さが、ｒｅａｌ＿ｈｅｉｇｈｔであると定義する。
【０１２９】
まず、ＲＡＭ２に記憶されているＪＰＥＧデータの左端から、幅ｌｅｆｔ＿ｌｉｎｅ＿ｎｕｍ（３２ピクセル）の領域をデコードし、ＲＡＭ２に記憶する。次に、ＲＡＭ２に記憶されている左端画像データについて、エッジ抽出と、直線抽出と、非原稿領域と原稿領域との画素値の連続性とを用い、原稿領域と非原稿領域との境界である直線（境界線）を検出する。
【０１３０】
次に、非原稿領域と原稿領域との境界である直線（境界線）の始点座標値ｖ＿ｓｔａｒｔ＿ｐｏｉｎｔと終点座標値ｖ＿ｅｎｄ＿ｐｏｉｎｔとを求める。このときの始点座標値ｖ＿ｓｔａｒｔ＿ｐｏｉｎｔ、終点座標値ｖ＿ｅｎｄ＿ｐｏｉｎｔを、ＪＰＥＧ画像の左上を原点（０，０）としたピクセル数によって定義する。実施例２において、始点座標値ｖ＿ｓｔａｒｔ＿ｐｏｉｎｔ＝（７，９）、終点座標値ｖ＿ｅｎｄ＿ｐｏｉｎｔ＝（０，３６０８）が検知されたとする。
【０１３１】
次に、左端と同様に、ＪＰＥＧ画像の上端についても、上端の値に基づいて、高さｕｐｐｅｒ＿ｌｉｎｅ＿ｎｕｍ（３２ピクセル）の領域をデコードし、ＲＡＭ２に記憶する。
【０１３２】
ＲＡＭ２に記憶されている上端画像データを、解析し、非原稿領域と原稿領域との境界である直線（境界線）の始点座標値ｈ＿ｓｔａｒｔ＿ｐｏｉｎｔと、終点座標値ｈ＿ｅｎｄ＿ｐｏｉｎｔとを求める。実施例２において、始点座標値ｈ＿ｓｔａｒｔ＿ｐｏｉｎｔ＝（７，９）、終点座標値ｈ＿ｅｎｄ＿ｐｏｉｎｔ＝（２４０６，５）が検知されたとする。
【０１３３】
実施例２では、始点座標値ｖ＿ｓｔａｒｔ＿ｐｏｉｎｔと始点座標値ｈ＿ｓｔａｒｔ＿ｐｏｉｎｔとの検知結果が同じであるが、一致しないケースもある。始点座標値ｖ＿ｓｔａｒｔ＿ｐｏｉｎｔと始点座標値ｈ＿ｓｔａｒｔ＿ｐｏｉｎｔとが異なる結果であれば、ｖ＿ｂｏｒｄｅｒ＿ｌｉｎｅとｈ＿ｂｏｒｄｅｒ＿ｌｉｎｅとの交点座標を求める。この得られた交点座標を、始点座標値ｖ＿ｓｔａｒｔ＿ｐｏｉｎｔ、始点座標値ｈ＿ｓｔａｒｔ＿ｐｏｉｎｔとし、２つのパラメータを一致させる。次に、求められた各点座標から、原稿開始位置の横方向成分ｒｅａｌ＿ｓｔａｒｔ＿ｘと、縦方向成分ｒｅａｌ＿ｓｔａｒｔ＿ｙと、原稿幅ｒｅａｌ＿ｗｉｄｔｈと、原稿高さｒｅａｌ＿ｈｅｉｇｈｔとを求める。横方向成分ｒｅａｌ＿ｓｔａｒｔ＿ｘは、始点座標値ｖ＿ｓｔａｒｔ＿ｐｏｉｎｔ（始点座標値ｈ＿ｓｔａｒｔ＿ｐｏｉｎｔと等しい）の横方向成分であるので、実施例２において、横方向成分ｒｅａｌ＿ｓｔａｒｔ＿ｘ＝７である。また、縦方向成分ｒｅａｌ＿ｓｔａｒｔ＿ｙは、始点座標値ｖ＿ｓｔａｒｔ＿ｐｏｉｎｔ（始点座標値ｈ＿ｓｔａｒｔ＿ｐｏｉｎｔと等しい）の縦方向成分であるので、実施例２において、縦方向成分ｒｅａｌ＿ｓｔａｒｔ＿ｙ＝９である。原稿幅ｒｅａｌ＿ｗｉｄｔｈは、始点座標値ｈ＿ｓｔａｒｔ＿ｐｏｉｎｔと終点座標値ｈ＿ｅｎｄ＿ｐｏｉｎｔとの距離によって求められるので、実施例２において、原稿幅ｒｅａｌ＿ｗｉｄｔｈ＝２３９９、原稿高さｒｅａｌ＿ｈｅｉｇｈｔ＝３５９９である。
【０１３４】
また、ＪＰＥＧ画像中の原稿の傾き角度をθ２とすると、ｓｉｎθ２、ｃｏｓθ２は、それぞれ、次の式（５）、式（６）によって得られる。したがって、実施例２では、ｓｉｎθ２＝７／３５９９、ｃｏｓθ２＝３５９９／３５９９が記憶される。実施例２では、演算精度の都合上、ｃｏｓθ２の値が１であるが、微小な誤差であるので、実使用上は問題無い。ただし、演算精度を上げる程、より正確な値を得ることができる。
【０１３５】
ｓｉｎθ２＝｜始点座標値ｖ＿ｓｔａｒｔ＿ｐｏｉｎｔの横方向成分−終点座標値ｖ＿ｅｎｄ＿ｐｏｉｎｔの横方向成分｜／原稿高さｒｅａｌ＿ｈｅｉｇｈｔ……式（５）
ｃｏｓθ２＝｜始点座標値ｖ＿ｓｔａｒｔ＿ｐｏｉｎｔの縦方向成分−終点座標値ｖ＿ｅｎｄ＿ｐｏｉｎｔの縦方向成分｜／原稿高さｒｅａｌ＿ｈｅｉｇｈｔ……式（６）
次に、Ｓ２１２〜Ｓ２１７を繰り返すことによって、読み取った画像データを、記録用紙に記録する。
【０１３６】
Ｓ２１２では、Ｓ２０８で求められた原稿領域を、ＪＰＥＧ画像から切出し、デコードし、ＲＡＭ２に保存する。
【０１３７】
次に、Ｓ２１３で、デコードライン数が、第２の傾き補正（Ｓ２１４）で必要なライン数に達したかどうかを判断する。傾き補正に必要なライン数に達すれば、Ｓ２１４に進み、それ以外の場合、Ｓ２１２に戻り、デコードを再開する。また、実施例２において、傾き補正Ｓ２１４に必要な最低ライン数は、始点座標値ｈ＿ｓｔａｒｔ＿ｐｏｉｎｔの高さ成分と、終点座標値ｈ＿ｅｎｄ＿ｐｏｉｎｔの高さ成分との差分によって求められ、実施例２では、４ラインである。よって、Ｓ２１３では、デコード結果が４ライン以上蓄積されているかどうかを判断基準とする。
【０１３８】
次に、Ｓ２１５で、第２の傾き補正を行う。ｓｉｎθ２とｃｏｓθ２とを用いた座標変換と補間演算とによって、第２の傾き補正を行う。また、実施例２のように、θ２の値が微小である場合、第２の傾き補正（Ｓ２１４）を実行しなくても、出力結果に、大きな影響がない。
【０１３９】
Ｓ２１５で、記録用画像処理を行う。つまり、拡大、縮小、色変換、量子化を行い、この処理結果を、ＲＡＭ２に記憶する。
【０１４０】
次に、Ｓ２１６で、得られた量子化後の画像データを、記録部６に渡し、記録部６を制御することによって、記録用紙に印字する。
【０１４１】
Ｓ２１７で、全ての原稿領域データを記録したかどうかを判断し、全て記録済みであれば終了する。それ以外の場合、Ｓ２１２で、デコードを再開する。
【０１４２】
実施例２において、第２原稿検知を行う際に、ＪＰＥＧのデコードを、比較的高速に行うことができる上端と左端との画像データを解析の対象にするが、他の部分を解析対象にするようにしてもよい。たとえば、より高速かつ必要な記憶領域を少なく検知するために、図１１に示すように、ＪＰＥＧ画像の左上、右上、左下の３点に基づいて、原稿領域の４頂点が含まれていることが保証される矩形領域を切出し、解析するようにしてもよい。
【０１４３】
また、図１２に示すように、原稿の４つの辺が含まれていることが保証される上端、左端、下端、右端の領域を、解析対象領域とし、より高精度に検知するようにしてもよい。
【０１４４】
その他、上端と下端とを解析対象領域とする方法や、左端と右端とを解析対象領域とする方法等が考えられる。
【０１４５】
また、第２原稿検知において、原稿領域を検知する際、原稿端部の欠けた領域や、影部等を検出し、記録処理時に補正するようにしてもよい。
【実施例３】
【０１４６】
本発明の実施例３は、通信インタフェース１２を介して接続された外部機器２００に、画像を出力する実施例である。
【０１４７】
つまり、実施例３は、画像を生成する処理を、画像記録装置１００に対応する画像記録装置１００ａと、外部機器２００とで分担する。
【０１４８】
画像記録装置１００では、プレスキャン処理と第１原稿検知とを行った後に、本スキャンし、外部機器２００に随時画像データを送信する。外部機器２００は、受け取った画像データの端部について、第２原稿検知を行い、必要な領域を切出す。また、必要であれば、傾き補正し、画像データをファイルとして、外部機器内の不揮発性ＲＡＭに蓄積する。
【０１４９】
次に、画像記録装置１００の処理について説明する。
【０１５０】
図１４は、実施例３において、画像記録装置１００の動作を示すフローチャートである。
【０１５１】
画像記録装置１００は、外部機器２００からのジョブをトリガとし、処理を開始する。実施例３において、実施例１と同様に、読取部８は、６００ｄｐｉ、７５ｄｐｉで画像データを読み込む能力を有し、原稿台のサイズは、横方向が２２０ミリであり、縦方向が３００ミリであるとする。記録部６は、画像データを６００ｄｐｉの解像度で記録する能力を有する。さらに、実施例３において、実施例１と同様に、原稿台には、２種類の原稿が設置され、それぞれが、原稿１、原稿２であるとする。
【０１５２】
原稿１は、その幅が１０１．６ミリであり、その高さが１５２．４ミリであり、読取基準位置から縦方向に２０ミリ、横方向に４０ミリ離れた位置に設置され、時計回りに、５度傾いている状態で設置されているとする。また、原稿２は、その幅が１０１．６ミリであり、その高さが１５２．４ミリであり、読取基準位置から縦方向に２００ミリ、横方向に１００ミリ離れた位置に設置され、反時計回りに、５度傾いた状態で設置されているとする。
【０１５３】
まず、Ｓ３０１で、実施例１と同様に、読取部８を制御し、７５ｄｐｉで、原稿台全面をスキャンし、読み取った画像データをＲＡＭ２に記憶する。
【０１５４】
次に、第１原稿検知（Ｓ３０２）の動作について説明する。
【０１５５】
実施例１で説明したＳ１０２と同様に、第１原稿検知を行い、原稿候補となる領域の４頂点を検知する。Ｓ３０２で、ＲＡＭ２に記憶されている画像データを解析し、原稿台に設置されている原稿毎に、原稿領域を検知する。実施例３において、原稿検知する場合、プレスキャン画像データにおいて、輝度による閾値を用い、原稿領域と非原稿領域とに像域分離する。このときに、原稿端部に関して、原稿領域と非原稿領域とがあいまいである部分が存在する。実施例３では、あいまいな領域が、原稿領域であると判定される閾値を設定する。
【０１５６】
実施例３では、原稿１に対する原稿候補領域の４頂点座標値は、それぞれＶ０［０］＝（１１８，５９）、Ｖ１［０］＝（４１８，８５）、Ｖ２［０］＝（７９，５０７）、Ｖ３［０］＝（３７８，５３３）が検知されたとする。ただし、座標値は、７５ｄｐｉでのピクセル値で表現され、（横方向の座標値，縦方向の座標値）とし、読取基準位置が（０，０）であると定義する。
【０１５７】
次に、Ｓ３０３で、実施例１のＳ１０３と同様に、本スキャンの読取範囲を定める。本スキャンの読取範囲は、実施例１と同様に、読み取り開始位置ａｒｅａ＿ｏｆｓ＿ｘ、ａｒｅａ＿ｏｆｓ＿ｙと、読み取り幅ａｒｅａ＿ｗｉｄｔｈと、読み取り高さａｒｅａ＿ｈｅｉｇｈｔとによって定義される。
【０１５８】
実施例３において、実施例１のＳ１０３と同様に、読取範囲が定まる。つまり、読み取り開始位置ａｒｅａ＿ｏｆｓ＿ｘ＝６２４、読み取り開始位置ａｒｅａ＿ｏｆｓ＿ｙ＝４６４、読み取り幅ａｒｅａ＿ｗｉｄｔｈ＝２７２８、読み取り高さａｒｅａ＿ｈｅｉｇｈｔ＝３８０８によって、読取範囲が定まる。
【０１５９】
次に、Ｓ３０４で、本スキャンを実行する。Ｓ３０４で、読取部８を制御し、矩形領域を、順次１ライン毎に読み取り、ＲＡＭ２に記憶する。つまり、６００ｄｐｉで、読み取り開始位置ａｒｅａ＿ｏｆｓ＿ｘ、読み取り開始位置ａｒｅａ＿ｏｆｓ＿ｙ、読み取り幅ａｒｅａ＿ｗｉｄｔｈ、読み取り高さａｒｅａ＿ｈｅｉｇｈｔで定義される矩形領域を、順次１ライン毎に読み取り、ＲＡＭ２に記憶する。このときに、ＲＡＭ２の容量や使用量に応じて、一度にＲＡＭ２に滞留させることができるライン数の限界値（規定量）が定められ、この限界値（規定量）に達すると、読み取り処理を一時的に中断させる。実施例３において、上記限界値（規定量）を１６ラインとにする。
【０１６０】
Ｓ３０５で、ＲＡＭ２に滞留している画像データを、通信インタフェース１２を介して、順次、外部機器２００に送信する。読取範囲の画像データの全てを、外部機器２００に送信する。実施例３において、圧縮処理を行わずに画像データを送信しているが、ＪＰＥＧやＭＲ等で、圧縮すれば、より高速に転送を行うことができる。
【０１６１】
Ｓ３０６では、読取範囲の全てを転送したかどうかを判断し、全てを転送し終わると、終了する。また、それ以外の場合、Ｓ３０４に戻り、本スキャンを再開する。
【０１６２】
次に、外部機器２００で行う処理について説明する。
【０１６３】
図１５は、実施例３において、外部機器２００による処理動作を示すフローチャートである。
【０１６４】
Ｓ３０７で、画像記録装置１００から受け取った本スキャン結果画像を蓄積する。
【０１６５】
次に、Ｓ３０８で、実施例１におけるＳ１０８と同様に、第２原稿検知処理（Ｓ３０９）で必要なライン数を求める。実施例３では、実施例１と同様に、原稿上端部分と左端部分とを解析対象にする。原稿上端部の解析に必要なライン数を、ｕｐｐｅｒ＿ｌｉｎｅ＿ｎｕｍと定義し、原稿左端部の解析に必要なライン数を、ｌｅｆｔ＿ｌｉｎｅ＿ｎｕｍと定義する。このときに、それぞれの値は、実施例１と同様に、判定処理に必要なライン数ｕｐｐｅｒ＿ｌｉｎｅ＿ｎｕｍ＝２２４ラインであるとし、判定処理に必要なライン数ｌｅｆｔ＿ｌｉｎｅ＿ｎｕｍ＝３４８ラインであるとする。
【０１６６】
次に、Ｓ３０９で、第２原稿検知処理を行う。保存された画像データの左端から、判定処理に必要なライン数ｌｅｆｔ＿ｌｉｎｅ＿ｎｕｍの領域について、エッジ抽出と、直線抽出と、非原稿領域と原稿領域との画素値の連続性を用い、原稿領域と非原稿領域との境界である直線（境界線）とを検出する。なお、上記判定処理に必要なライン数ｌｅｆｔ＿ｌｉｎｅ＿ｎｕｍは、３４８ライン分である。
【０１６７】
次に、非原稿領域と原稿領域との境界である直線（境界線）の始点座標値ｖ＿ｓｔａｒｔ＿ｐｏｉｎｔと、終点座標値ｖ＿ｅｎｄ＿ｐｏｉｎｔとを求める。このときにおける始点座標値ｖ＿ｓｔａｒｔ＿ｐｏｉｎｔ、終点座標値ｖ＿ｅｎｄ＿ｐｏｉｎｔは、本スキャンの読取開始点を原点（０，０）としたピクセル数によって定義される。実施例３において、実施例１と同様に、始点座標値ｖ＿ｓｔａｒｔ＿ｐｏｉｎｔ＝（３２１，９）、終点座標値ｖ＿ｅｎｄ＿ｐｏｉｎｔ＝（７，３６３１）が検知されたとする。
【０１６８】
次に、上端についても、上端から高さｕｐｐｅｒ＿ｌｉｎｅ＿ｎｕｍ（２２４ピクセル分）の領域について解析し、非原稿領域と原稿領域との境界である直線（境界線）の始点座標値ｈ＿ｓｔａｒｔ＿ｐｏｉｎｔと終点座標値ｈ＿ｅｎｄ＿ｐｏｉｎｔとを求める。実施例３において、実施例１と同様に、始点座標値ｈ＿ｓｔａｒｔ＿ｐｏｉｎｔ＝（３２１，９）、終点座標値ｈ＿ｅｎｄ＿ｐｏｉｎｔ＝（２７１１，２１８）であると検知されたとする。
【０１６９】
次に、求められた各点座標から、原稿開始位置の横方向成分ｒｅａｌ＿ｓｔａｒｔ＿ｘと縦方向成分ｒｅａｌ＿ｓｔａｒｔ＿ｙと、原稿幅ｒｅａｌ＿ｗｉｄｔｈと、原稿高さｒｅａｌ＿ｈｅｉｇｈｔとを求める。
【０１７０】
横方向成分ｒｅａｌ＿ｓｔａｒｔ＿ｘは、実施例３において、実施例１と同様に、横方向成分ｒｅａｌ＿ｓｔａｒｔ＿ｘ＝３２１、縦方向成分ｒｅａｌ＿ｓｔａｒｔ＿ｙ＝９である。原稿幅ｒｅａｌ＿ｗｉｄｔｈは、始点座標値ｈ＿ｓｔａｒｔ＿ｐｏｉｎｔと終点座標値ｈ＿ｅｎｄ＿ｐｏｉｎｔとの距離によって求められるので、実施例３において、原稿幅ｒｅａｌ＿ｗｉｄｔｈ＝２３９９、原稿高さｒｅａｌ＿ｈｅｉｇｈｔ＝３５９９である。
【０１７１】
また、原稿の傾き角度をθとすると、ｓｉｎθ、ｃｏｓθは、それぞれ実施例１で記載した式（１）、式（２）によって得られる。したがって、実施例３において、実施例１と同様に、ｓｉｎθ＝３１４／３５９９、ｃｏｓθ＝３５８６／３５９９として記憶される。
【０１７２】
次に、Ｓ３１０で蓄積された画像データのうちで、原稿領域について、傾き補正処理を行う。このときの傾き補正は、ｓｉｎθとｃｏｓθとを用いた座標変換と補間演算とによって、原稿領域について行う補正である。
【０１７３】
次に、Ｓ３１１で、出力された画像データを電子ファイルとして、外部機器内の不揮発性ＲＡＭに保存し、終了する。
【０１７４】
上記処理によって、原稿台に設置されている原稿の複製となる画像データを、精度良く生成し、電子ファイルとして外部機器２００に蓄積保存することができる。
【０１７５】
実施例３について、印刷機能を有する画像記録装置１００を用いて説明したが、実施例３のように、外部機器に対して読み取った画像データを保存する用途であれば、印刷機能を有する必要は無い。たとえば、シングルファンクションスキャナのように、画像読取装置を用いるようにしてもよい。
【０１７６】
また、実施例３において、実施例２で示した例と同様に、第２の解析処理を行う前に、傾き補正を行うことによって、第２の解析処理で必要となる解析範囲を削減することができる。
【０１７７】
また、実施例３において、実施例１、２と同様に、第２原稿検知を行う際に、上端と左端との画像データを解析対象としたが、他の部分を解析対象にするようにしてもよい。たとえば、より高速かつ必要な記憶領域を少なく検知するために、図１１に示すように、画像の左上、右上、左下の３点に基づいて、原稿領域の４頂点が含まれることが保証される矩形領域を切出し、解析するようにしてもよい。
【０１７８】
また、図１２に示すように、原稿の４つの辺が含まれることが保証される上端、左端、下端、右端の領域を、解析対象領域とし、より高精度に検知するようにしてもよい。
【０１７９】
その他、上端と下端とを解析対象領域とする方法や、左端と右端とを解析対象領域とする方法等が考えられる。
【０１８０】
上記実施例によれば、原稿領域の候補になる領域を高速で限定し、この限定された領域を、高解像度で読み取った後に、この読み取った画像の一部分を詳細に解析するので、読取動作や、解析処理に要する時間が短く、原稿領域情報を高精度で得ることができる。
【０１８１】
また、上記実施例によれば、高解像度で読み取ったデータを一度圧縮して保存し、解析に必要な個所だけを、部分的に伸張し、解析処理するので、一面分の高解像度非圧縮データを保存する記憶領域を持たなくても、高解像度のデータを解析処理することができる。
【０１８２】
つまり、上記実施例は、原稿台に設置されている原稿を読み取る画像読取装置において、原稿領域の候補である原稿領域候補を検出する第１原稿検知手段と、上記原稿領域候補の画像を読み取る読取手段とを有する。また、上記実施例は、上記読み取った上記原稿領域候補の画像の端部領域のうちで、解析する範囲を設定する解析範囲設定手段と、上記解析範囲設定手段が解析した画像の２辺の高解像度データに基づいて原稿の輪郭を検知する第２原稿検知手段とを有する。上記実施例は、上記解析範囲設定手段が解析した画像の２辺の高解像度データに基づいて、原稿の傾きを検出する傾き検出手段と、上記読み取った画像のうちで上記第２原稿検知手段が検知した原稿の輪郭内の画像を切出して画像出力する画像出力手段とを有する。
【０１８３】
この場合、上記第１原稿検知手段は、第１の解像度で原稿台全面を読み取り、得られた第１の画像から、上記原稿領域の候補となる領域を特定する手段である。上記第２原稿検知手段は、第２の解像度で上記原稿領域の候補である領域を読み取り、得られた第２の画像の端部領域を解析する手段である。上記第１の解像度は、上記第２の解像度よりも低い解像度である。
【０１８４】
また、上記原稿領域の候補となる領域を読み取ると同時に圧縮し、上記読み取った画像の端部領域のみを伸張し、上記伸張された画像データについて、上記第２原稿検知を行い、上記第２原稿検知によって特定された上記原稿領域を伸張し、出力画像とする。
【０１８５】
さらに、上記第２原稿検知における解析範囲は、上記傾き検出手段が検出した原稿の傾きに応じて、定められる範囲である。
【０１８６】
そして、上記実施例を方法の発明として把握することができる。つまり、上記実施例は、原稿台に設置されている原稿を読み取る画像読取装置の制御方法において、原稿領域の候補である原稿領域候補を検出し、記憶装置に記憶する第１原稿検知工程を有する。また、上記実施例は、上記原稿領域候補の画像を読み取り、記憶装置に記憶する読取工程と、上記読み取った上記原稿領域候補の画像の端部領域のうちで、解析する範囲を設定し、記憶装置に記憶する解析範囲設定工程とを有する。そして、上記実施例は、上記解析範囲設定工程で解析された画像の２辺の高解像度データに基づいて原稿の輪郭を検知し、記憶装置に記憶する第２原稿検知工程を有する。さらに、上記実施例は、上記解析範囲設定工程で解析された画像の２辺の高解像度データに基づいて、原稿の傾きを検出し、記憶装置に記憶する傾き検出工程を有する。しかも、上記実施例は、上記読み取った画像のうちで、上記第２原稿検知工程で検知された原稿の輪郭内の画像を切出し、記憶装置に記憶し、画像出力する画像出力工程を有する画像読取装置の制御方法の例である。
【図面の簡単な説明】
【０１８７】
【図１】本発明の一実施例である画像記録装置１００の構成を示すブロック図である。
【図２】画像記録装置１００を示す斜視図である。
【図３】画像記録装置１００を示す斜視図である。
【図４】画像記録装置１００に記憶されているプログラム構成を示す図である。
【図５】ＲＯＭ１に記憶されているプログラムによって、画像記録装置１００を制御し、原稿検知とコピーとを実行する動作を示すフローチャートである。
【図６】画像記録装置１００において、ＲＡＭ２に記憶されている画像データを示す図である。
【図７】本スキャンの読取範囲を示す図である。
【図８】ＲＡＭ２に記憶されているＪＰＥＧ画像データを示す図である。
【図９】ＲＡＭ２に記憶されている左端画像データを示す図である。
【図１０】ＲＡＭ２に記憶されている上端画像データを示す図である。
【図１１】第２原稿検知において行う検知領域の例を示す図である。
【図１２】第２原稿検知において行う検知領域の例を示す図である。
【図１３】実施例２におけるＲＯＭ１に記憶されているプログラムによる制御によって、原稿検知とコピーとを実行する動作を示すフローチャートである。
【図１４】実施例３において、画像記録装置１００の動作を示すフローチャートである。
【図１５】実施例３において、外部機器２００による処理動作を示すフローチャートである。
【符号の説明】
【０１８８】
１００…画像記録装置、
１…ＲＯＭ、
２…ＲＡＭ、
３…不揮発性ＲＡＭ、
４…操作部、
５…表示部、
６…記録部、
７…画像処理部、
８…読取部。
【図１】
2008227852.tif 000003
【図２】
2008227852.tif 000004
【図３】
2008227852.tif 000005
【図４】
2008227852.tif 000006
【図５】
2008227852.tif 000007
【図６】
2008227852.tif 000008
【図７】
2008227852.tif 000009
【図８】
2008227852.tif 000010
【図９】
2008227852.tif 000011
【図１０】
2008227852.tif 000012
【図１１】
2008227852.tif 000013
【図１２】
2008227852.tif 000014
【図１３】
2008227852.tif 000015
【図１４】
2008227852.tif 000016
【図１５】
2008227852.tif 000017