(57)【特許請求の範囲】
【請求項１】
原稿を読み取り画像データを入力する入力手段と、
前記入力手段により入力された画像データを余白領域と印字情報領域との２つの領域に分割する分割手段と、
前記分割手段により分割された前記余白領域において第１の閾値より大きい階調値を有する画素の数をカウントし、該カウントした数の前記余白領域の単位面積あたりの画素数を取得し、
前記分割手段により分割された前記印字情報領域において第１の閾値より大きい階調値を有する画素の数をカウントし、該カウントした数の前記印字情報領域の単位面積あたりの画素数を取得する取得手段と、
前記取得手段にて取得された前記余白領域の単位面積あたりの画素数と前記印字情報領域の単位面積あたりの画素数との差分が第２の閾値より小さい場合、前記原稿を白紙と判定する判定手段とを有することを特徴とする画像処理装置。
【請求項２】
前記入力手段にて入力された画像データを２値化する２値化手段をさらに有し、
前記分割手段は、前記２値化手段にて２値化された画像データを余白領域と印字情報領域に分割し、
前記取得手段は、前記分割手段にて分割された各領域において、前記２値化手段による２値化処理の結果が１である画素の数をカウントすることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記分割手段は、表示画面を介してユーザにより設定された余白領域を用いて余白領域と印字情報領域を分割することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記階調値が前記第１の閾値より大きい第１の画素が前記余白領域に存在し、該第１の画素に隣接する第２の画素は前記印字情報領域に含まれ、階調値が前記第１の閾値より大きい場合、
該第１の画素の数をカウントしたカウント値を取得する境界連続画素カウント手段と、
前記境界連続画素カウント手段によりカウントされた第１の画素の値は、
前記取得手段にて前記余白領域においてカウントされた画素数から除かれ、前記印字情報領域においてカウントされた画素数に追加されることを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記取得手段により前記余白領域でカウントされた値が第３の閾値より大きい場合、前記原稿を前記判定手段の判定対象としないことを特徴とする請求項１に記載の画像処理装置。
【請求項６】
原稿を読み取り画像データを入力する入力ステップと、
前記入力ステップにより入力された画像データを余白領域と印字情報領域との２つの領域に分割する分割ステップと、
前記分割ステップにより分割された前記余白領域において第１の閾値より大きい階調値を有する画素の数をカウントし、該カウントした数の前記余白領域の単位面積あたりの画素数を取得し、前記分割手段により分割された前記印字情報領域において第１の閾値より大きい階調値を有する画素の数をカウントし、該カウントした数の前記印字情報領域の単位面積あたりの画素数を取得する取得ステップと、
前記取得ステップにて取得された前記余白領域の単位面積あたりの画素数と前記印字情報領域の単位面積あたりの画素数との差分が第２の閾値より小さい場合、前記原稿を白紙と判定する判定ステップとを有することを特徴とする画像処理装置の制御方法。
【請求項７】
前記入力ステップにて入力された画像データを２値化する２値化ステップをさらに有し、
前記分割ステップは、前記２値化ステップにて２値化された画像データを余白領域と印字情報領域に分割し、
前記取得ステップは、前記分割ステップにて分割された各領域において、前記２値化ステップによる２値化処理の結果が１である画素の数をカウントすることを特徴とする請求項６に記載の画像処理装置の制御方法。
【請求項８】
前記分割ステップは、表示画面を介してユーザにより設定された余白領域を用いて余白領域と印字情報領域を分割することを特徴とする請求項６に記載の画像処理装置の制御方法。
【請求項９】
前記階調値が前記第１の閾値より大きい第１の画素が前記余白領域に存在し、該第１の画素に隣接する第２の画素は前記印字情報領域に含まれ、階調値が前記第１の閾値より大きい場合、
該第１の画素の数をカウントしたカウント値を取得する境界連続画素カウントステップと、
前記境界連続画素カウントステップによりカウントされた第１の画素の値は、
前記取得ステップにて前記余白領域においてカウントされた画素数から除かれ、前記印字情報領域においてカウントされた画素数に追加されることを特徴とする請求項６に記載の画像処理装置の制御方法。
【請求項１０】
前記取得ステップにより前記余白領域でカウントされた値が第３の閾値より大きい場合、前記原稿を前記判定ステップでの判定対象としないことを特徴とする請求項６に記載の画像処理装置の制御方法。
【請求項１１】
請求項６に記載の画像処理装置の制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置における白紙検知方法に関する。
【背景技術】
【０００２】
デジタル複合機を用いてファックスやコピーを行う際に、ユーザが原稿の載置面を間違えるケースや、原稿内に意図しない白紙が混ざってしまうケースが一般的に存在する。こうしたケースへの対策として、「白紙検知」と呼ばれる技術が一般に用いられている。特許文献１では、読み取った画像をブロック分割し、ブロックごとに黒画素の割合を算出し白紙検知している。
【０００３】
また、白紙原稿に対する検知だけではなく、色紙原稿にも合わせて対応する技術として特許文献２では、主走査方向に１ライン毎に読み取った黒画素数の変化量と閾値を比較することによって、読み取り対象となるオブジェクトを持つ原稿かどうかを判定する。具体的には、原稿に存在する黒画素をライン毎に読み取り、１ライン毎の黒画素数の変化量が閾値よりも低い場合、読み取り対象となる原稿にはオブジェクトが存在しない白紙と判定する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−２８４８４６
【特許文献２】特開２００２−１６５０５４
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで近年、環境問題が注目される中で、印刷に用いられる原稿も環境に配慮した再生紙が用いられることが多くなっている。こうした原稿では、原料に混入している異物が視認できるほど目立つ場合があり、異物の割合が特に多い粗悪紙が用いられるケースもある。（以下では、再生紙と粗悪紙をまとめて低質紙と呼ぶ。）
このように、低質紙も原稿として用いられる機会が増えてきているが、白紙検知を行う際には低質紙が用いられた場合でも、検知精度が低下しないことが望ましい。しかしながら、先行技術において、原稿に用いられた紙の質が低く、多数の異物が混入していた場合は精度よく白紙の検知を行うことが困難である。なぜなら特許文献１の技術では、原稿中に多数の異物が混入されると、異物を表す黒画素と、原稿内容を表す黒画素の判別がつかなくなってしまうためである。また特許文献２の技術でも、多数の異物が混入して１ライン毎の黒画素の変化量が大きくなった場合、読み取り対象の原稿が、印字情報がある原稿か白紙原稿かの判別がつかなくなってしまう。
【０００６】
また、低質紙を用いる際は白紙検知に用いる閾値の設定を変更するという手段も考えられるが、読み取り対象の原稿に低質紙と上質紙が混在してしまうと、原稿毎に最適な閾値が違うため、全ての原稿で精度よく白紙検知できなくなるという課題がある。
また、前処理としてある一定濃度以下の画素を白画素に丸めこむ処理をするという手段も考えられるが、原稿内容を表す画素の濃度と、異物を表す画素の濃度の判別がつかないため、異物を表す画素のみを白画素に丸めこむことは難しい。
【課題を解決するための手段】
【０００７】
上記課題を解決すべく、本発明における画像処理装置は、原稿を読み取り画像データを入力する入力手段と、前記入力手段により入力された画像データを余白領域と印字情報領域との２つの領域に分割する分割手段と、  前記分割手段により分割された前記余白領域において第１の閾値より大きい階調値を有する画素の数をカウントし、該カウントした数の前記余白領域の単位面積あたりの画素数を取得し、前記分割手段により分割された前記印字情報領域において第１の閾値より大きい階調値を有する画素の数をカウントし、該カウントした数の前記印字情報領域の単位面積あたりの画素数を取得する取得手段と、前記取得手段にて取得された前記余白領域の単位面積あたりの画素数と前記印字情報領域の単位面積あたりの画素数との差分が第２の閾値より小さい場合、前記原稿を白紙と判定する判定手段とを備えることを特徴とする。
【発明の効果】
【０００８】
低質紙のように原稿全体に異物が存在する原稿に対しても精度の高い白紙検知が可能となる。また、汚れや異物の密度がページごとに異なる場合でも、精度の高い白紙検知が可能となる。
【図面の簡単な説明】
【０００９】
【図１】デジタル複合機の制御システム  ブロック図である。
【図２】複合機の操作部  外観図である。
【図３】実施例１の白紙判定処理部  ブロック図である。
【図４】実施例１の白紙検知設定画面  表示例である。
【図５】実施例１の白紙検知ＯＮ／ＯＦＦ設定画面  表示例である。
【図６】実施例１の低質紙対応検知ＯＮ／ＯＦＦ設定画面  表示例である。
【図７】実施例１の余白設定画面  表示例である。
【図８】実施例１の白紙検知レベル調整画面  表示例である。
【図９】境界座標の概念図である。
【図１０】実施例１の領域判定部  処理フローである。
【図１１】実施例１の印字情報領域画素カウント部  処理フローである。
【図１２】実施例１の余白領域画素カウント部  処理フローである。
【図１３】（ａ）印字情報領域のカウントにおいて、上限閾値を超える画像例である。（ｂ）余白領域のカウントにおいて、上限閾値を超える画像例である。（ｃ）印字情報領域、余白領域のカウントにおいて、上限閾値を超える画像例である。
【図１４】実施例１の比較判定部  処理フローである。
【図１５】実施例２の白紙判定処理部  ブロック図である。
【図１６】実施例２の領域判定部  処理フローである。
【図１７】実施例２の境界連続画素カウント部  処理フローである。
【図１８】実施例２の比較判定部  処理フローである。
【図１９】実施例２を適用する原稿の具体例である。
【図２０】内容領域まで連続している画素の座標位置を検出するためのフローである。
【図２１】（ａ）ラインバッファが保持している余白領域に存在する画素の座標範囲を示す図である。（ｂ）（Ｘ＿ｌｂ＜Ｘ）＆＆（Ｘ＜Ｘ＿ｒｂ）が示す範囲を示す図である。（ｃ）上境界座標近傍に含まれる範囲を示す図である。
【発明を実施するための形態】
【００１０】
［実施例１］
以下、本発明を実施するため実施例１について図面を用いて説明する。
【００１１】
本実施例において、白紙とは有意なオブジェクトである文字や写真、図形が含まれていない原稿、つまり印字情報のない原稿を指す。印字情報がなければ、色紙のような色付きの原稿や再生紙の原稿も白紙として扱う。をまた、これらを読み取った際の画像データも白紙と呼ぶ。
【００１２】
図１は、本実施例を実現するためのデジタル複合機における画像処理制御システムの構成例である。
コントローラ１００は画像入力装置であるスキャナ１１４や画像出力装置であるプリンタ１１３と接続し、一方ではＬＡＮ１１５や公衆回線１１６と接続することで、画像データやデバイス情報の入出力を行うためのコントローラである。
ＣＰＵ１０３は画像処理制御システム全体を制御するコントローラとして機能する。記憶部１０７は画像データや、圧縮されたデータを格納するためのものであり、ＣＰＵ１０３が動作するためのシステムワークメモリ等も含まれる。
操作部Ｉ／Ｆ１０４は操作部２００とのインターフェース部で、操作部２００に表示する画像データを操作部２００に対して出力する。また、操作部２００からユーザが入力した情報をＣＰＵ１０３に伝える役割をする。なお、操作部２００の詳細については後で述べる。
ネットワークＩ／Ｆ１０５はＬＡＮ１１５に接続し、情報の入出力を行う。モデム１０６は公衆回線１１６に接続し、データ送受信を行うための変調復調処理を行う。以上の構成がシステムバス１０１上に配置される。
イメージバスＩ／Ｆ１０８はシステムバス１０１と画像データを高速で転送するイメージバス１０２を接続し、データ構造を変換するバスブリッジである。
イメージバス１０２は、ＰＣＩバスまたはＩＥＥＥ１３９４などの高速バスで構成される。デバイスＩ／Ｆ部１１０は、画像入出力デバイスであるスキャナ１１４やプリンタ１１３とコントローラ１００を接続し、画像データの同期系／非同期系の変換を行う。
【００１３】
圧縮／解凍処理部１０９は画像データと後述するエッジデータを各々所定の圧縮方法により圧縮を行う。
入力画像処理部１１２は、スキャナ１１４で読み取られた画像データに対し補正、加工、編集を施し、その後のプリント出力または画像送信に適した処理を行う。
白紙判定処理部３００は、スキャナ１１４によって入力された画像データが白紙か否かの判定を行う。なお、白紙判定処理部３００の詳細については後で述べる。
出力画像処理部１１１は、プリント出力画像データに対して、プリンタ１１３に合わせた補正、解像度変換等を行う。
プリンタ１１３では、画像データを所定の印字方式によって紙上に出力する。印字方式は感光体ドラムや感光体ベルトを用いてトナーを紙に定着させる電子写真方式、微小ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等があるが本実施例において印字方式は特に限定しない。
【００１４】
次に、図２に本実施例を実現するためのデジタル複合機における操作部２００の構成例を示す。表示画面である液晶操作パネル２０１は液晶にタッチパネルを組み合わせたものであり、設定内容の表示、ソフトキーの表示等がなされるものである。なお、本実施例における各種表示の例については後で述べる。
スタートキー２０２はコピー動作等を開始指示するためのハードキーであり、内部に緑色および赤色のＬＥＤが組み込まれており、スタート可能のときに緑色、スタート不可のときに赤色のＬＥＤが点灯する。ストップキー２０３は動作を停止させるときに使用するハードキーである。ハードキー群２０４には、テンキー、クリアキー、リセットキー、ガイドキー、ユーザモードキーが設けられている。
【００１５】
次に、図３に実施例１における白紙判定処理部３００の構成を示す。
下地除去部３０１は、スキャナ１１４で読み取られた画像のヒストグラムを取得し、読み取った原稿の下地（背景）の信号レベルを検出し、その下地レベルを画像信号から減算して画像から下地を除去し、下地除去後の画像を出力する。
モノクロ化処理部３０２は、入力画像がカラー画像であった場合に、変換テーブルを用いてモノクロ画像を生成し、出力する。
２値化処理部３０３は、入力されたモノクロ画像の画素ごとの階調値と、所定の閾値とを比較することにより、モノクロ画像を単純２値化し、その２値画像を出力する。ここで、所定の閾値とは、比較対象の階調値が８ｂｉｔの場合、０〜３２の範囲の値であることが好ましい。この範囲の中でどの値を用いるかは、スキャナデバイスの特性に依存する。
【００１６】
領域判定部３０４は、注目画素が印字情報領域、余白領域のどちらに存在するのかを判定する。領域判定部３０４の処理の詳細については後で述べる。なお、本実施例において印字情報領域とは、画像内において印字情報が存在する領域を意味する。また、余白領域とは、画像内において印字情報領域以外の領域を意味する。これらの領域の境界座標は、後述する余白設定画面７００よりユーザが任意に設定可能である。
印字情報領域画素カウント部３０５は、印字情報領域に対して、２値化処理の結果が１である画素の数をカウントし、そのカウント値を出力する。印字情報領域画素カウント部３０５の処理の詳細については後で述べる。
余白領域画素カウント部３０６は、余白領域に対して２値化処理の結果が１である画素の数をカウントし、そのカウント値を出力する。余白領域画素カウント部３０６の処理の詳細については後で述べる。
比較判定部３０７は、前記印字情報領域画素カウント部３０５が出力したカウント値と、前記余白領域画素カウント部３０６が出力したカウント値と、前記印字情報領域の面積と、前記余白領域の面積に基づいて計算を行う。その計算結果を所定の閾値と比較し、その比較結果を出力する。比較判定部３０７の処理の詳細については後で述べる。
【００１７】
続いて、図４〜図８を用いて、本実施例における白紙検知機能の各設定を実施するための操作部２００の画面表示の例を説明する。
図４は、白紙検知に関わる各機能の設定確認、および設定画面に遷移するための白紙検知設定画面４００である。
白紙検知ＯＮ／ＯＦＦ設定ボタン４０１は、押下されることで、操作部２００の画面表示を白紙検知ＯＮ／ＯＦＦ設定画面５００に遷移させる。また、白紙検知ＯＮ／ＯＦＦ設定状態表示４０５は、白紙検知ＯＮ／ＯＦＦ設定画面５００で最後に設定された状態を表示する。
低質紙対応ＯＮ／ＯＦＦ設定ボタン４０２は、押下されることで、操作部２００の画面表示を低質紙対応ＯＮ／ＯＦＦ設定画面６００に遷移させる。また、低質紙対応ＯＮ／ＯＦＦ設定状態表示４０６は、低質紙対応ＯＮ／ＯＦＦ設定画面６００で最後に設定された状態を表示する。
【００１８】
余白設定ボタン４０３は、押下されることで、操作部２００の画面表示を余白設定画面７００に遷移させる。また、余白設定状態表示４０７は、余白設定画面７００で最後に設定された設定値を表示する。
白紙検知レベル調整ボタン４０４は、押下されることで、操作部２００の画面表示を白紙検知レベル調整画面８００に遷移させる。また、白紙検知レベル調整状態表示４０８は、白紙検知レベル調整画面８００で最後に設定された設定値を表示する。
確認ボタン４０９は、押下されることで、操作部２００の画面表示をホーム画面や各種設定画面などに遷移させる。
【００１９】
図５は、白紙検知機能のＯＮ／ＯＦＦ設定するための白紙検知ＯＮ／ＯＦＦ設定画面５００である。画面内には、はいボタン５０１、いいえボタン５０２、キャンセルボタン５０３、決定ボタン５０４が配置される。白紙検知機能は、はいボタン５０１が押下された直後に、決定ボタン５０４が押下されることで、ＯＮ状態になる。一方で、はいボタン５０１が押下された直後に、キャンセルボタン５０３が押下されると、前回設定時の状態が保持される。また、いいえボタン５０２が押下された直後に、決定ボタン５０４が押下されることで、白紙検知機能はＯＦＦ状態になる。一方で、いいえボタン５０２が押下された直後に、キャンセルボタン５０３が押下されると、前回設定時の状態が保持される。
【００２０】
図６は、低質紙対応機能のＯＮ／ＯＦＦ設定するための低質紙対応ＯＮ／ＯＦＦ設定画面６００である。画面内には、はいボタン６０１、いいえボタン６０２、キャンセルボタン６０３、決定ボタン６０４が配置される。低質紙対応機能は、はいボタン６０１が押下された直後に、決定ボタン６０４が押下されることで、ＯＮ状態になる。一方で、はいボタン６０１が押下された直後に、キャンセルボタン６０３が押下されると、前回設定時の状態が保持される。また、いいえボタン６０２が押下された直後に、決定ボタン６０４が押下されることで、低質紙対応機能はＯＦＦ状態になる。一方で、いいえボタン６０２が押下された直後に、キャンセルボタン６０３が押下されると、前回設定時の状態が保持される。
【００２１】
図７は、読み込む原稿の余白領域を設定するための余白設定画面７００である。画面内には、上余白設定ボタン７０１、左余白設定ボタン７０２、下余白設定ボタン７０３、右余白設定ボタン７０４、各余白設定ボタンを押下することにより表示されるプルダウンセレクタ７０５、キャンセルボタン７０６、決定ボタン７０７が配置される。
【００２２】
余白設定値は、各余白設定ボタンを押下することで表示されるプルダウンセレクタ７０５上から入力される。既定の値が選択されてもよいし、直接的に値が入力されてもよい。直接的に値が入力される場合は、装置特有の有効印字領域内で設定されるように、値に制限を設ける。余白設定値が入力された直後に、決定ボタン７０７が押下されることで、余白設定値が内部設定に反映される。一方で、余白設定値が入力された直後に、キャンセルボタン７０６が押下されると、前回設定時の状態が保持される。
【００２３】
このような表示画面を用いることで、画像データにおける余白領域がユーザにより設定されることが可能になる。画像データにおける余白領域と印字情報領域の領域分割は、このように画面を用いて、予めユーザにより決められる。
【００２４】
また、ユーザによる設定ではなく、装置によって設定されている有効印字領域を用いて、余白領域と印字情報領域を設定してもよい。
【００２５】
さらに、フォーマットが異なる（例えば、用紙の大きさがＡ３，Ａ４と異なり、印字領域が異なる）原稿を読み取る際には、自動的に有効印字領域を用いて余白領域を設定してもよい。または、余白領域が一番小さいフォーマットに合わせて、すべての種類のフォーマットの余白領域の設定が行われてもよい。または、フォーマット毎にユーザが余白領域の設定を行ってもよい。
【００２６】
図８は、白紙判定の閾値レベルを設定するための白紙検知レベル調整画面８００である。画面内には、白紙検知レベル調整バー８０１、キャンセルボタン８０２、決定ボタン８０３が配置される。白紙検知レベル調整バー８０１は、バーの位置を変更されることによって、余白領域画素カウント部３０６や印字情報領域画素カウント部３０５の閾値を変更することができる。例えば、バーの位置を「強」の方向へ変更すればするほど、白紙判定の閾値が高くなる。つまり、白紙と判定される原稿の量が増える。
【００２７】
レベル調整バーの位置が変更された直後に、決定ボタン８０３が押下されることで、変更後の閾値レベルが内部設定に反映される。一方で、レベル調整バーの位置を変更された直後に、キャンセルボタン８０２が押下されると、前回設定時の状態が保持される。
また、白紙検知レベルの調整はこのように調整バーを用いて調整するのではなく、閾値を直接設定するものでもよい。
【００２８】
続いて、図９を用いて、後述するフローで用いる余白領域と印字情報領域の境界座標について説明する。原稿９００はスキャナ１１４で読み取られた際に作成された画像データである。左境界座標９０１は、左余白領域と印字情報領域の境界座標である（以後の説明ではＸ＿ｌｂと記述する）。右境界座標９０２は、右余白領域と印字情報領域の境界座標である（以後の説明ではＸ＿ｒｂと記述する）。上境界座標９０３は、上余白領域と印字情報領域の境界座標である（以後の説明ではＹ＿ｔｂと記述する）。下境界座標９０４は、下余白領域と印字情報領域の境界座標である（以後の説明ではＹ＿ｂｂと記述する）。これらの境界座標は、スキャナ１１４が読み取った原稿サイズと、余白設定画面８３０において設定された余白情報を元にＣＰＵ１０３から領域判定部５００に対して設定が行われる。
【００２９】
続いて、図１０を用いて、実施例１における領域判定部３０４の詳細な処理フローを説明する。なお、本フローの各ステップを実現するプログラムコードは、記憶部（１０７）に記憶され、ＣＰＵ（１０３）によって実行される。
【００３０】
まず、Ｓ１０００にて、注目画素の座標情報（Ｘ，  Ｙ）を抽出する。これは、主走査方向と副走査方向のカウンタを具備することで実現する。
【００３１】
次に、Ｓ１００１に進み、注目画素が余白領域と印字情報領域のどちらに存在するのかを判定する。ここで、Ｘ＿ｌｂ、Ｘ＿ｒｂ、Ｙ＿ｔｂ、Ｙ＿ｂｂは前述したように、図９で示すような余白領域と印字情報領域の境界座標を意味している。これらの境界座標と、注目画素の座標情報とを用いて、下記の判定式（１）を用いて判定が実施される。
（Ｘ＿ｌｂ＜Ｘ）＆＆（Ｘ＜Ｘ＿ｒｂ）＆＆（Ｙ＿ｔｂ＜Ｙ）＆＆（Ｙ＜Ｙ＿ｂｂ）  ・・・（１）
上記の判定式が１だった場合、注目画素は印字情報領域に存在すると判定され、Ｓ１００２へ進み、領域フラグａｒｅａ＿ｆｌａｇに１が代入される。一方で、上記の判定式が０だった場合、Ｓ１００３へ進み注目画素は余白領域に存在すると判定され、ａｒｅａ＿ｆｌａｇは初期値０を保持する。ここで生成されたａｒｅａ＿ｆｌａｇは属性情報として画像データに付加され、後述する印字情報領域画素カウント部、余白領域画素カウント部に渡される。
【００３２】
次に、Ｓ１００３にて注目画素が最終画素かどうかを判定する。ここで、Ｘ＿ｅｎｄ、Ｙ＿ｅｎｄは、最終画素の座標であり、スキャナ１１４が読み取った原稿サイズを元にＣＰＵ１０３から領域判定部３０４に対して設定が行われる。これらの最終画素の座標と、注目画素の座標情報を用いて、下記の判定式（２）を用いて判定が実施される。
（Ｘ，Ｙ）＝＝（Ｘ＿ｅｎｄ，Ｙ＿ｅｎｄ）  ・・・（２）
上記の判定式が１だった場合、注目画素は最終画素であると判定され、Ｓ１００４へ進み最終画素フラグｅｎｄ＿ｆｌａｇに１が代入される。一方で、上記の判定式が０だった場合、注目画素は最終画素ではないと判定され、ｅｎｄ＿ｆｌａｇは初期値０を保持する。ここで生成されたｅｎｄ＿ｆｌａｇは属性情報として画像データに付加され、後述する印字情報領域画素カウント部３０５、余白領域画素カウント部３０６に渡される。
【００３３】
続いて、図１１を用いて、本実施例における印字情報領域画素カウント部３０５の詳細な処理フローを説明する。なお、本フローの各ステップを実現するプログラムコードは、記憶部（１０７）に記憶され、ＣＰＵ（１０３）によって実行される。
本フローを用いて、印字情報領域において、明らかに階調値が高い画素（黒画素）が多いと判定された原稿に対しては、白紙判定を行わず処理対象外とするためのフラグを付ける。
【００３４】
まず、Ｓ１１００にて注目画素が印字情報領域に存在するかどうかを判定する。
【００３５】
これは、図１０のフローにおいて示したように、領域判定部３０４において注目画素の画像データに付加されたａｒｅａ＿ｆｌａｇを参照して判定する。Ｓ１１００にて、ａｒｅａ＿ｆｌａｇが０であると判定されれば、注目画素は印字情報領域に存在しないと判定され、Ｓ１１０４へ進み注目画素に関するカウント処理は実施しない。一方で、Ｓ１１００にてａｒｅａ＿ｆｌａｇが１であると判定さればば、注目画素は印字情報領域に存在すると判定され、Ｓ１１０１へ進む。そして、そこで続けて注目画素の階調値Ｐｖの判定が実施される。
【００３６】
Ｓ１１０１において、Ｐｖが０つまり、前述した２値化処理部３０３により２値化された値が０（黒画素でない）であると判定されれば、Ｓ１１０４へ進み、注目画素に関するカウント処理は実施しない。一方で、Ｓ１１０１にてＰｖが１である（黒画素である）と判定されれば、Ｓ１１０２へ進み、カウンタｃｎｔ＿ｃがカウントアップされる。そして、Ｓ１１０３へ進み、続けてカウンタｃｎｔ＿ｃが上限閾値ｔｈ＿ｃに達したかどうかが判定される。ここで、ｔｈ＿ｃは、印字情報領域の全画素数の１％〜２０％の値に設定することが好ましい。例えば、６００ｄｐｉのＡ４画像において、印字情報領域が全体の８５％だとすると、この閾値ｔｈ＿ｃの画素数は２９５８００〜５９１６５９５といった範囲の値となる。この範囲の中でどの値を用いるかは、白紙検知レベル調整画面８００において設定された値に基づく。例えば、白紙検知レベルが最弱に設定されると、ｔｈ＿ｃは２９５８００となり、最強に設定されると、５９１６５９５となる。ｃｎｔ＿ｃがｔｈ＿ｃよりも大きい場合は、Ｓ１１０５へ進む。そしてＳ１１０５にてカウンタｃｎｔ＿ｃが上限閾値を越えていると判断され、オーバーフローフラグｃ＿ｏｖ＿ｆｌａｇに１が代入される。ここで生成されたｃ＿ｏｖ＿ｆｌａｇはＣＰＵ１０３に通知され、ＣＰＵ１０３はそれを元に比較判定部３０７に対して設定を行う。
【００３７】
Ｓ１１０３において、ｃｎｔ＿ｃがｔｈ＿ｃよりも小さい場合は、Ｓ１１０４へ進む。そしてＳ１１０４にて注目画素が最終画素かどうかを判定する。これは、領域判定部３０４において画像データに付加されたｅｎｄ＿ｆｌａｇを用いて判定する。ｅｎｄ＿ｆｌａｇが０であれば、次注目画素に関してＳ１１００へ戻り判定を行う。ｅｎｄ＿ｆｌａｇが１であれば、比較判定部３０７にｃｎｔ＿ｃの積算値を渡す。
【００３８】
このようにして、印字情報領域において、階調値が高い画素（黒画素）がある閾値以上存在した場合、処理対象原稿は白紙ではないことが明らかであるので以降の白紙判定処理にはせず、白紙ではないと判断する。
【００３９】
続いて、図１２を用いて、本実施例における余白領域画素カウント部３０６の詳細な処理フローを説明する。
【００４０】
なお、本フローの各ステップを実現するプログラムコードは、記憶部（１０７）に記憶され、ＣＰＵ（１０３）によって実行される。
【００４１】
本フローを用いて、余白領域において、明らかに階調値が高い画素（黒画素）が多いと判定された原稿に対しては、余白領域指定時にエラーがあった可能性が高いため、白紙判定を行わず処理対象外とするためのフラグを付ける。
【００４２】
まずＳ１２００にて、注目画素が余白領域に存在するかどうかを判定する。これは、図１０のフローにておいて示したように領域判定部３０４において画像データに付加されたａｒｅａ＿ｆｌａｇを参照して判定する。ａｒｅａ＿ｆｌａｇが１であると判定されれば、注目画素は余白領域に存在しないと判定され、注目画素に関するカウント処理は実施しない。一方で、ａｒｅａ＿ｆｌａｇが０であると判定されれば、注目画素は余白領域に存在すると判定され、Ｓ１２０１へ進む。そして、そこで注目画素の階調値Ｐｖの判定が実施される。
【００４３】
Ｓ１２０１では、Ｐｖが０であると判定されれば、Ｓ１２０４へ進み、注目画素に関するカウント処理は実施しない。一方で、Ｐｖが１であると判定されれば、Ｓ１２０２へ進みカウンタｃｎｔ＿ｍがカウントアップされる。そして、続けてＳ１２０３へ進み、カウンタｃｎｔ＿ｍが上限閾値ｔｈ＿ｍに達したかどうかが判定される。ここで、ｔｈ＿ｍは、余白領域の全画素数の１％〜２０％の値に設定することが好ましい。例えば、６００ｄｐｉのＡ４画像において、余白領域が全体の１５％だとすると、この閾値は閾値ｔｈ＿ｍ５２２００〜１０４４１０５といった範囲の値となる。この範囲の中でどの値を用いるかは、白紙検知レベル調整画面８００において設定された値に基づく。例えば、白紙検知レベルが最弱に設定されると、ｔｈ＿ｍは５２２００となり、最強に設定されると、１０４４１０５となる。Ｓ１２０３にて、ｃｎｔ＿ｍがｔｈ＿ｍよりも大きいと判定された場合は、カウンタｃｎｔ＿ｍが上限閾値を越えていると判断され、Ｓ１２０５へ進み、オーバーフローフラグｍ＿ｏｖ＿ｆｌａｇに１が代入される。ここで生成されたｍ＿ｏｖ＿ｆｌａｇはＣＰＵ１０３に通知され、ＣＰＵ１０３はそれを元に比較判定部３０７に対して設定を行う。
【００４４】
Ｓ１２０３において、ｃｎｔ＿ｍがｔｈ＿ｍよりも小さいと判定された場合は、続けてＳ１２０４へ進み、そこで注目画素が最終画素かどうかを判定する。これは、領域判定部３０４において画像データに付加されたｅｎｄ＿ｆｌａｇを用いて判定する。Ｓ１２０４にてｅｎｄ＿ｆｌａｇが０であれば、Ｓ１２００へ戻り、次注目画素に関して判定を行う。Ｓ１２０４にて、ｅｎｄ＿ｆｌａｇが１であれば、比較判定部３０７にｃｎｔ＿ｍの積算値を渡す。
このようにして、余白領域において、階調値が高い画素（黒画素）がある閾値以上存在した場合、処理対象原稿は白紙ではないことが明らかであるので以降の白紙判定処理をせず、白紙ではないと判断する。
【００４５】
続いて、図１３（ａ）〜（ｃ）を用いて、オーバーフローフラグｃ＿ｏｖ＿ｆｌａｇ、ｍ＿ｏｖ＿ｆｌａｇが１になる場合の画像データ例を示す。図１３（ａ）のような画像データ１３００の場合、印字情報領域のカウンタｃｎｔ＿ｃが上限閾値ｔｈ＿ｃに達するため、ｃ＿ｏｖ＿ｆｌａｇが１になる。図１３（ｂ）のような画像データ１３０１の場合、余白領域のカウンタｃｎｔ＿ｍが上限閾値ｔｈ＿ｍに達するため、ｍ＿ｏｖ＿ｆｌａｇが１になる。図１３（ｃ）のような画像データ１３０２の場合、印字情報領域のカウンタと余白領域のカウンタがともに上限閾値に達するため、ｃ＿ｏｖ＿ｆｌａｇとｍ＿ｏｖ＿ｆｌａｇが１になる。このように図１３（ａ）〜（ｃ）に示される画像データは、印字情報領域及び／又は余白領域のカウンタが閾値を超えている。このような画像データは、明らかに印字情報がありの原稿であったり、余白領域がミス設定されていたり、フチ無し原稿である可能性が高い。よって、強制的に通常の原稿（白紙ではない原稿）として扱う。
続いて、図１４を用いて、本実施例における比較判定部３０７の詳細な処理フローを説明する。なお、本フローの各ステップを実現するプログラムコードは、記憶部（１０７）に記憶され、ＣＰＵ（１０３）によって実行される。
【００４６】
まず、Ｓ１４００にて白紙検知機能がＯＮされているかどうかを判定する。これは、白紙検知機能有効フラグｗ＿ｅｎｂ＿ｆｌａｇが１であるかどうかで判定される。ｗ＿ｅｎｂ＿ｆｌａｇは白紙検知ＯＮ／ＯＦＦ画面５００において、ユーザが白紙検知機能を有効にした場合に、ＣＰＵ１０３から比較判定部３０７に対して１が設定される。Ｓ１４００にて、ｗ＿ｅｎｂ＿ｆｌａｇが０であった場合、白紙フラグｗｈｉｔｅ＿ｆｌａｇは０が設定され、ＣＰＵ１０３に対して通知される。
【００４７】
一方で、Ｓ１４００にて、ｗ＿ｅｎｂ＿ｆｌａｇが１であった場合、Ｓ１４０１へ進む。そして、Ｓ１４０１にて印字情報領域画素カウント部３０５におけるカウント値ｃｎｔ＿ｃが上限閾値ｔｈ＿ｃに達したかどうかが判定される。これは、印字情報領域画素カウント部３０５において生成されたオーバーフローフラグｃ＿ｏｖ＿ｆｌａｇに基づいて判定される。Ｓ１４０１にてｃ＿ｏｖ＿ｆｌａｇが１であった場合、白紙フラグｗｈｉｔｅ＿ｆｌａｇは０が設定され、ＣＰＵ１０３に対して通知される。
【００４８】
一方で、Ｓ１４０１にてｃ＿ｏｖ＿ｆｌａｇが０であった場合、Ｓ１４０２へ進む。そしてＳ１４０２にて、余白領域画素カウント部３０６におけるカウント値ｃｎｔ＿ｍが上限閾値ｔｈ＿ｍに達したかどうかが判定される。これは、余白領域画素カウント部３０６において生成された、オーバーフローフラグｍ＿ｏｖ＿ｆｌａｇが１であるかどうかで判定される。Ｓ１４０２にて、ｍ＿ｏｖ＿ｆｌａｇが１であった場合、白紙フラグｗｈｉｔｅ＿ｆｌａｇは０が設定され、ＣＰＵ１０３に対して通知される。
【００４９】
一方で、Ｓ１４０２にてｍ＿ｏｖ＿ｆｌａｇが０であった場合、Ｓ１４０３へ進む。ここまでのステップにより、図１３に示したような例外的な画像データ（強制的に通常原稿として扱われる画像データ）が処理対象から除かれる。そしてＳ１４０３にて低質紙対応機能がＯＮされているかどうかを判定する。これは、低質紙対応機能有効フラグｒ＿ｅｎｂ＿ｆｌａｇが１であるかどうかで判定され、ｒ＿ｅｎｂ＿ｆｌａｇは低質紙対応ＯＮ／ＯＦＦ設定画面６００において、ユーザが低質紙対応機能を有効にした場合に１が設定される。
【００５０】
Ｓ１４０３にて、ｒ＿ｅｎｂ＿ｆｌａｇが１であった場合、Ｓ１４０４へ進む。そしてＳ１４０４にて、カウント値ｃｎｔ＿ｃと印字情報領域面積ａｒｅａ＿ｃの比と、カウント値ｃｎｔ＿ｍと余白領域面積ａｒｅａ＿ｍの比の差分絶対値が算出される。この算出に用いられる計算式（３）は以下の通りである。
｜（ｃｎｔ＿ｍ／ａｒｅａ＿ｍ）−（  ｃｎｔ＿ｃ／ａｒｅａ＿ｃ）｜  ・・・（３）
ここでａｒｅａ＿ｍ、ａｒｅａ＿ｃは、スキャナ１１４が読み取った原稿サイズと、余白設定画面７００において設定された余白情報を元に、ＣＰＵ１０３から比較判定部３０７に対して設定される。（ｃｎｔ＿ｍ／ａｒｅａ＿ｍ）は、余白領域の単位面積における２値化処理の結果が１の画素のカウント値ｃｎｔ＿ｍの画素数である。同様に  （  ｃｎｔ＿ｃ／ａｒｅａ＿ｃ）は、印字領域にの単位面積における２値化処理の結果が１の画素のカウント値ｃｎｔ＿ｃの画素数である。
上記の計算式（３）で算出された値が、計算結果ｒａｔｅに代入される。
【００５１】
一方で、Ｓ１４０３にて、ｒ＿ｅｎｂ＿ｆｌａｇが０であった場合、Ｓ１４０５に進む。そして、Ｓ１４０５にてカウント値ｃｎｔ＿ｃとカウント値ｃｎｔ＿ｍの合計値と、印字情報領域面積ａｒｅａ＿ｃと余白領域面積ａｒｅａ＿ｍの合計値の比が算出される（Ｓ１４０５）。この算出に用いられる計算式（４）は以下の通りである。
（ｃｎｔ＿ｍ＋ｃｎｔ＿ｃ）／（ａｒｅａ＿ｍ＋ａｒｅａ＿ｃ）  ・・・（４）
上記の計算式で算出された値が、計算結果ｒａｔｅに代入される。
【００５２】
続いて、Ｓ１４０６にて、Ｓ１４０４もしくはＳ１４０５で算出されたｒａｔｅが、閾値ｔｈ＿ｗと比較される。Ｓ１４０６における、閾値ｔｈ＿ｗは、０．１％〜２％の範囲の値に設定することが好ましい。この範囲の中でどの値を用いるかは、白紙検知レベル調整画面８００において設定された値に基づく。例えば、白紙検知レベルが最弱に設定されると、ｔｈ＿ｗは０．１％となり、最強に設定されると、２％となる。この比較により、算出されたｒａｔｅが、閾値よりも小さい場合、Ｓ１４０７へ進む。そして、Ｓ１４０７にて、白紙フラグｗｈｉｔｅ＿ｆｌａｇには１が設定され、ＣＰＵ１０３に通知される。一方で、算出されたｒａｔｅが、閾値よりも大きい場合は、ｗｈｉｔｅ＿ｆｌａｇは初期値０を保持する。
以上により、ｗｈｉｔｅ＿ｆｌａｇが１とされた画像データに対応する原稿を白紙と判定する。
【００５３】
読み取り時に白紙と検知された原稿はコピー時にはコピーされないように制御されたり、読み取り後にメモリに保存しないように制御されたり、ＦＡＸ等送信時に送信されないように制御される。これにより、用紙やメモリの無駄を減らすことができる。
【００５４】
以上述べたように、本実施例では、原稿を読み込んだ画像データを２値化し、さらにその画像データを余白領域と印字情報領域に分け、各領域で２値化データをカウントする。そして、各領域のカウント結果とその面積比の差分絶対値をとり、その計算結果と閾値を比較する。これによって、画像データ全体に一様分布する汚れや異物の影響を取り除いて閾値比較ができるようになるので、低質紙のように原稿全体に異物が点在する原稿でも精度の高い白紙検知が可能となる。また、ページごとに上記の計算を行うので、汚れや異物の密度がページごとに異なっても、精度の高い白紙検知が可能となる。
［実施例２］
【００５５】
以下、本発明を実施するための実施例２について図面を用いて説明する。
【００５６】
本実施例では、例えば、図１９に示すように、印字情報領域から余白領域に連続して文字が記載されている場合、余白領域に存在し２値化処理の結果が１の画素は、カウント値に含まない。これにより、余白領域設定時のエラーや文字のはみ出し等にも対応する白紙検知を行う。本実施例における画像処理制御システムの構成例と、操作部２００の構成例は、実施例１と同様のため説明は省略する。
【００５７】
次に、図１５に実施例２における白紙判定処理部３００の構成を示す。
下地除去部３０１、モノクロ化処理部３０２、２値化処理部３０３、印字情報領域画素カウント部３０５、余白領域画素カウント部３０６は実施例１と同様なので説明は省略する。
Ｎラインバッファ部１５００は、ＳＲＡＭ等のメモリを用いて、画像データを副走査方向にＮライン分格納する。Ｎは奇数であることが望ましい。Ｎラインバッファ部１５００は、画像データ１ライン目から（Ｎ−１）／２ライン目までは、Ｎラインバッファ部１５００に入力される画像データをメモリに格納する。この際、画像データは後段に対して出力しない。Ｎラインバッファ部１５００に入力される画像データが（Ｎ＋１）／２ライン目に達すると、メモリ内に格納していた１ライン目のデータを後段に対して順次出力する。ただしこの際、メモリ内に格納されている１ライン目のデータの内容は保持しておく。Ｎラインバッファ部１５００に入力される画像データが（Ｎ＋１）ライン目に達すると、Ｎラインバッファ部１５００に入力される画像データは１ライン目のデータが格納されていた領域に上書きする。
【００５８】
領域判定部１５０１は、注目画素が印字情報領域、余白領域のどちらに存在するのかを判定するとともに、注目画素が図９にて示した境界座標であるＸ＿ｌｂ、Ｘ＿ｒｂ、Ｙ＿ｔｂ、Ｙ＿ｂｂの近傍に存在するか否かを判定する。領域判定部１５０１の処理の詳細については後で述べる。
境界連続画素カウント部１５０２は、Ｘ＿ｌｂ、Ｘ＿ｒｂ、Ｙ＿ｔｂ、Ｙ＿ｂｂの近傍で、余白領域内に存在する２値化処理の結果が１である注目画素から印字情報領域内の画素まで２値化処理の結果が１である画素で連続しているか否かを判定する。この判定の結果、印字情報領域まで繋がっていると判断された注目画素の数をカウントし、そのカウント値を出力する。境界連続画素カウント部１５０２の処理の詳細については後で述べる。
比較判定部１５０３は、前記印字情報領域画素カウント部３０５、前記余白領域画素カウント部３０６、境界連続画素カウント部１５０２のそれぞれが出力したカウント値と、前記印字情報領域の面積と、前記余白領域の面積に基づいて計算を行う。その計算結果を所定の閾値と比較し、その比較結果を出力する。比較判定部１５０３の処理の詳細については後で述べる。
【００５９】
続いて、図１６を用いて、実施例２における領域判定部１５０１の詳細な処理フローを説明する。なお、本フローの各ステップを実現するプログラムコードは、記憶部（１０７）に記憶され、ＣＰＵ（１０３）によって実行される。
【００６０】
まず、Ｓ１６００にて注目画素の座標情報（Ｘ，  Ｙ）を抽出する。これは、主走査方向と副走査方向のカウンタを具備することで実現する。
次に、Ｓ１６０１にて注目画素が余白領域と印字情報領域のどちらに存在するのかを判定する。ここで、Ｘ＿ｌｂ、Ｘ＿ｒｂ、Ｙ＿ｔｂ、Ｙ＿ｂｂは前述したように、図９で示すような余白領域と印字情報領域の境界座標を意味している。これらの境界座標と、注目画素の座標情報とを用いて、下記の判定式（５）で判定が実施される。
（Ｘ＿ｌｂ＜Ｘ）＆＆（Ｘ＜Ｘ＿ｒｂ）＆＆（Ｙ＿ｔｂ＜Ｙ）＆＆（Ｙ＜Ｙ＿ｂｂ）  ・・・（５）
上記の判定式（５）の結果が１だった場合、Ｓ１６０２へ進む。そして、Ｓ１６０２にて注目画素は印字情報領域に存在すると判定され、領域フラグａｒｅａ＿ｆｌａｇに１が代入される。一方で、上記の判定式が０だった場合、注目画素は余白領域に存在すると判定され、ａｒｅａ＿ｆｌａｇは初期値０を保持する。ここで生成されたａｒｅａ＿ｆｌａｇは属性情報として画像データに付加され、後述する印字情報領域画素カウント部、余白領域画素カウント部、境界連続画素カウント部に渡される。
【００６１】
次に、Ｓ１６０３にて、注目画素が上境界座標の近傍に存在するかどうかを判定する。判定は、Ｎラインバッファ部１５００のライン数Ｎと、境界座標と、注目画素の座標情報とを用いて、下記の判定式（６）で実施される。
（Ｙ＿ｔｂ−（Ｎ＋１）／２＜Ｙ）＆＆（Ｙ＜Ｙ＿ｔｂ）＆＆（Ｘ＿ｌｂ＜Ｘ）＆＆（Ｘ＜Ｘ＿ｒｂ）  ・・・（６）
判定式（６）における（Ｙ＿ｔｂ−（Ｎ＋１）／２＜Ｙ）＆＆（Ｙ＜Ｙ＿ｔｂ）は、注目画素が境界のＹ＿ｔｂ  に接する時に、ラインバッファが保持している余白領域に存在する画素の座標を示す。この評価式が示す範囲を図２１（ａ）の斜線部分に示す。さらに（Ｘ＿ｌｂ＜Ｘ）＆＆（Ｘ＜Ｘ＿ｒｂ）が示す範囲は図２１（ｂ）の斜線部分である。よって、判定式（６）が示す範囲は図２１（ｃ）における斜線部分であることがわかる。
【００６２】
上記の判定式が１だった場合、Ｓ１６０４へ進む。そして、Ｓ１６０４にて注目画素は上境界座標の近傍に存在すると判定され、上境界近傍フラグｙｔｂ＿ｆｌａｇに１が代入される。一方で、上記の判定式が０だった場合、Ｓ１６０５へ進み、続けて注目画素が下境界座標の近傍に存在するかどうかを判定する。判定は、Ｎラインバッファ部１５００のライン数Ｎと、境界座標と、注目画素の座標情報とを用いて、下記の判定式（７）で実施される。
（Ｙ＿ｂｂ−（Ｎ＋１）／２＜Ｙ）＆＆（Ｙ＜Ｙ＿ｂｂ）＆＆（Ｘ＿ｌｂ＜Ｘ）＆＆（Ｘ＜Ｘ＿ｒｂ）  ・・・（７）
上記の判定式が１だった場合、注目画素は下境界座標の近傍に存在すると判定され、Ｓ１６０６へ進む。そしてＳ１６０６にて下境界近傍フラグｙｂｂ＿ｆｌａｇに１が代入される。一方で、上記の判定式が０だった場合、Ｓ１６０７に進み、続けて注目画素が左境界座標の近傍に存在するかどうかを判定する。判定は、Ｎラインバッファ部１５００のライン数Ｎと、境界座標と、注目画素の座標情報とを用いて、下記の判定式（８）で実施される。
（Ｘ＿ｌｂ−（Ｎ＋１）／２＜Ｘ）＆＆（Ｘ＜Ｘ＿ｌｂ）＆＆（Ｙ＿ｔｂ＜Ｙ）＆＆（Ｙ＜Ｙ＿ｂｂ）  ・・・（８）
上記の判定式が１だった場合、注目画素は左境界座標の近傍に存在すると判定され、Ｓ１６０８へ進む。そして、Ｓ１６０８にて左境界近傍フラグｘｌｂ＿ｆｌａｇに１が代入される。一方で、上記の判定式が０だった場合、Ｓ１６０９へ進み、続けて注目画素が左境界座標の近傍に存在するかどうかを判定する。判定は、Ｎラインバッファ部１５００のライン数Ｎと、境界座標と、注目画素の座標情報とを用いて、下記の判定式（９）で実施される。
（Ｘ＿ｒｂ−（Ｎ＋１）／２＜Ｘ）＆＆（Ｘ＜Ｘ＿ｒｂ）＆＆（Ｙ＿ｔｂ＜Ｙ）＆＆（Ｙ＜Ｙ＿ｂｂ）  ・・・（９）
上記の判定式が１だった場合、注目画素は右境界座標の近傍に存在すると判定され、Ｓ１６１０へ進む。そして、Ｓ１６１０にて右境界近傍フラグｘｒｂ＿ｆｌａｇに１が代入される。
【００６３】
次に、Ｓ１６１１にて注目画素が最終画素かどうかを判定する。ここで、Ｘ＿ｅｎｄ、Ｙ＿ｅｎｄは、最終画素の座標であり、スキャナ１１４が読み取った原稿サイズを元にＣＰＵ１０３から領域判定部１５０１に対して設定が行われる。これらの最終画素の座標と、注目画素の座標情報を用いて、下記の判定式（１０）で判定が実施される。
（Ｘ，Ｙ）＝＝（Ｘ＿ｅｎｄ，Ｙ＿ｅｎｄ）  ・・・（１０）
上記の判定式が１だった場合、注目画素は最終画素であると判定され、Ｓ１６１２に進む。そして、Ｓ１６１２にて最終画素フラグｅｎｄ＿ｆｌａｇに１が代入される。一方で、上記の判定式が０だった場合、注目画素は最終画素ではないと判定され、ｅｎｄ＿ｆｌａｇは初期値０を保持する。ここで生成されたｅｎｄ＿ｆｌａｇは属性情報として画像データに付加され、後述する印字情報領域画素カウント部、余白領域画素カウント部、境界連続画素カウント部に渡される。
【００６４】
続いて、図１７を用いて、実施例２における境界連続画素カウント部１５０２の詳細な処理フローを説明する。なお、本フローの各ステップを実現するプログラムコードは、記憶部（１０７）に記憶され、ＣＰＵ（１０３）によって実行される。
また、このフローを説明するために図２０を用いて具体例を示す。図２０において、２０００で示される画素が最初に注目する注目画素であり、この画素は印字情報領域の右側の余白領域に存在する。
そして図２０は、２値化処理の結果が１の画素が、右側の余白領域から印字情報領域にまたがり、連続して存在していることを示しいている。
図１７のフローでは、図２０のように余白領域から印字情報領域にまたがり存在する、２値化処理の結果が１の画素を検出するために実行される。
【００６５】
まず、Ｓ１７００にて注目画素が余白領域に存在するかどうかを判定する。これは、領域判定部１５０１において画像データに付加されたａｒｅａ＿ｆｌａｇを参照して判定する。Ｓ１７００にてａｒｅａ＿ｆｌａｇが１であれば、注目画素は余白領域に存在しないと判定され、注目画素に関するカウント処理は実施しない。一方で、Ｓ１７００にてａｒｅａ＿ｆｌａｇが０であれば、注目画素は余白領域に存在すると判定され、Ｓ１７０１へ進み、続けて注目画素の階調値Ｐｖ（Ｘ，Ｙ）の判定が実施される。
【００６６】
Ｓ１７０１にてＰｖ（Ｘ，Ｙ）が０であれば、注目画素に関するカウント処理は実施しない。一方で、Ｓ１７０１にてＰｖが１であれば、続けてＳ１７０２に進む。つまり、余白領域に存在している２値化処理の結果が１の画素を処理対象とする。
そしてＳ１７０２にて、余白領域に存在する注目画素に隣接する画素（周辺画素）全ての階調値Ｐｖ（Ｘ＋ｘｄ，Ｙ＋ｙｄ）の判定が実施されたかどうかの判定が行われる。
【００６７】
ここで、ｘｄとｙｄはそれぞれ、−１，０，＋１のいずれかの値をとる変数であり、（Ｘ＋ｘｄ，Ｙ＋ｙｄ）は注目画素に対して隣接する８つの画素の座標を表している。すなわち、（ｘｄ，ｙｄ）は以下のような８種類の組み合わせに置き換えられる。
（＋１，＋１）；  （＋１，０）；  （＋１，−１）；  （０，＋１）；  （０，−１）；  （−１，＋１）；  （−１，０）；  （−１，−１）
Ｓ１７０２の判定は、１つの周辺画素を判定するごとにインクリメントされるポインタ変数ｐｔｒ＿ａを具備することで実現される。１つの画素に隣接する画素数は８画素なのでｐｔｒ＿ａが８の場合、周辺画素を全て判定したと判断する。ただし、注目画素が上下左右の端部に存在する場合は、ｐｔｒ＿ａが５の場合に周辺画素を全て判定したと判断する。また、注目画素が角端部に存在する場合は、ｐｔｒ＿ａが３の場合に周辺画素を全て判定したと判断する。
【００６８】
Ｓ１７０２において、周辺画素を全て判定していないと判断された場合、Ｓ１７０３へ進  む。そして、Ｓ１７０３にて、ｘｄとｙｄに対して、前述した８種類の（ｘｄ，ｙｄ）組み合わせのうちのいずれか１つが代入される。８種類の値は、あらかじめＣＰＵ１０３から境界連続画素カウント部１５０２に対して設定される（Ｍｘｄ［８］，  Ｍｙｄ［８］）。これを用いて、以下Ｓ１７０５にて、周辺画素の座標を作り出す。Ｓ１７０３ではｐｔｒ＿ａの値に応じて、ｘｄとｙｄにどの値を代入するかを決定する。ｘｄとｙｄの値を代入した後、続いてＳ１７０４にて、ｐｔｒ＿ａの値をインクリメントする。そして、Ｓ１７０５へ進み、Ｓ１７０４で決定したｘｄ、ｙｄの値に基づいて、周辺画素の階調値Ｐｖ（Ｘ＋ｘｄ，Ｙ＋ｙｄ）の判定が実施される）。
【００６９】
ここで、Ｐｖ（Ｘ＋ｘｄ，Ｙ＋ｙｄ）が１、つまり周辺画素の２値化処理の結果が１であれば、Ｓ１７０６へ進み、その座標が判定済みの座標でないかどうかを判定する。Ｓ１７０５において、２値化処理の結果が１であると一度判定された画素の座標であった場合、Ｓ１７０６にてその座標を保持しておき、それ以降の判定で、判定した座標と保持している座標を照会することで実現する。このＳ１７０５により、注目画素の周辺画素の階調をチェックする。２値化処理の結果が１であれば、注目画素と連続する周辺画素ということになる。
【００７０】
Ｓ１７０６において、判定済みの座標ではないと判定された場合、Ｓ１７０７へ進み、その座標を保持する。そして、Ｓ１７０８にて座標を保持した際は、ポインタ変数ｐｔｒ＿ｂをインクリメントする。これは、２値化処理の結果が１と判定された周辺画素が何画素あるかを判断するために用いるポインタ変数である。図２０の場合、注目画素２０００の周辺画素のうち、左隣の２００１のみが２値化処理の結果が１であるため、ｐｔｒ＿ｂ＝１となる。
【００７１】
Ｓ１７０２において、周辺画素を全て判定し終わったと判定された場合、Ｓ１７０９に進み、ポインタ変数ｐｔｒ＿ａはリセットされ（ｐｔｒ＿ａ＝０）、ｐｔｒ＿ｂはデクリメントされる（ｐｔｒ＿ｂ−−）。続いて、Ｓ１７１０へ進み、連続する周辺画素が残っているかどうかの判定が行われる。これはｐｔｒ＿ｂがマイナスの値になっているかどうかで判定される。この判定において、連続する周辺画素が残っていると判定された場合、続いてＳ１７１１へ進み、Ｓ１７０７において保持した座標（注目画素の周辺に存在し、２値化処理の結果が１である画素の座標）が呼び出される。座標を呼び出す際は、ポインタ変数ｐｔｒ＿ｂを用いる。
【００７２】
次に、Ｓ１７１２に進み、Ｓ１７１１において呼び出された座標が上境界座標の内側に存在するかが判定される。判定には、上境界座標Ｙ＿ｔｂと上境界近傍フラグｙｔｂ＿ｆｌａｇが用いられ、判定式（１１）は以下の通りである。
（ｙｔｂ＿ｆｌａｇ＝＝１）＆＆（Ｙ＝＝Ｙ＿ｔｂ＋１）  ・・・（１１）
上記判定式（１１）において、（ｙｔｂ＿ｆｌａｇ＝＝１）は、Ｙ＿ｔｂが余白領域に存在する上境界画素であることを示す。また、Ｙ＝＝Ｙ＿ｔｂ＋１は、注目画素の周辺画素のうち２値化処理の結果が１であるＳ１７１１で呼び出された画素のＹ座標が、上境界画素の内側（印字情報領域）に存在することを示す。
これにより、余白領域に存在した注目画素は、印字領域まで階調値１の画素が連続して存在していることが判定される。
【００７３】
このように上記の判定式が１の場合、Ｓ１７１６へ進み、カウンタｃｎｔ＿ｍ＿ｓｕｂがカウントアップされる。一方で上記の判定式が０の場合、Ｓ１７１３へ進み、Ｓ１７１１において呼び出された座標が下境界座標の内側に存在するかが判定される。判定には、上境界座標Ｙ＿ｂｂと下境界近傍フラグｙｂｂ＿ｆｌａｇが用いられ、判定式（１２）は以下の通りである。
（ｙｂｂ＿ｆｌａｇ＝＝１）＆＆（Ｙ＝＝Ｙ＿ｂｂ−１）  ・・・（１２）
上記の判定式が１の場合、Ｓ１７１６へ進み、カウンタｃｎｔ＿ｍ＿ｓｕｂがカウントアップされる。
【００７４】
一方で上記の判定式が０の場合、Ｓ１７１４へ進み、Ｓ１７１１において呼び出された座標が左境界座標の内側に存在するかが判定される。判定には、左境界座標Ｘ＿ｌｂと左境界近傍フラグｘｌｂ＿ｆｌａｇが用いられ、判定式（１３）は以下の通りである。
（ｘｌｂ＿ｆｌａｇ＝＝１）＆＆（Ｘ＝＝Ｘ＿ｌｂ＋１）  ・・・（１３）
上記の判定式が１の場合、Ｓ１７１６へ進み、カウンタｃｎｔ＿ｍ＿ｓｕｂがカウントアップされる。
【００７５】
一方で上記の判定式が０の場合、Ｓ１７１５へ進み、Ｓ１７１１において呼び出された座標が右境界座標の内側に存在するかが判定される。判定には、左境界座標Ｘ＿ｒｂと右境界近傍フラグｘｒｂ＿ｆｌａｇが用いられ、判定式（１４）は以下の通りである。
（ｘｒｂ＿ｆｌａｇ＝＝１）＆＆（Ｘ＝＝Ｘ＿ｒｂ−１）  ・・・（１４）
上記の判定式が１の場合、Ｓ１７１６へ進み、カウンタｃｎｔ＿ｍ＿ｓｕｂがカウントアップされる。これは図２０の２００２の画素である。
一方で上記の判定式が０の場合、Ｓ１７１１において呼び出された座標の画素の周辺画素について、前述した階調値の判定を行う。
【００７６】
つまり、次は、注目画素を２００１とし、その周辺画素において同様の処理を行う。このように、注目画素を次々と変更することで、余白領域から連続して存在する階調値１の画素の座標を記憶する。そして、記憶された座標が印字情報領域に到達しているか判定を行う。
【００７７】
Ｓ１７００およびＳ１７０１の判定で０だった場合、またはＳ１７１０の判定で１だった場合は、Ｓ１７１７へ進み、注目画素が最終画素かどうかを判定する。これは、領域判定部１５０１において画像データに付加されたｅｎｄ＿ｆｌａｇを用いて判定する。ｅｎｄ＿ｆｌａｇが０であれば、次注目画素に関してＳ１７００の判定を行う。ｅｎｄ＿ｆｌａｇが１であれば、比較判定部１５０３にｃｎｔ＿ｍ＿ｓｕｂの積算値を渡す。
【００７８】
続いて、図１８を用いて、本実施例における比較判定部１５０３の詳細な処理フローを説明する。なお、本フローの各ステップを実現するプログラムコードは、記憶部（１０７）に記憶され、ＣＰＵ（１０３）によって実行される。
【００７９】
Ｓ１４００〜Ｓ１４０７の各ステップは、図１４を用いて説明した内容と同様であるので、ここでの説明は省略する。図１４との差分であるＳ１８００についてのみ、ここでは説明する。
Ｓ１３０３においてｒ＿ｅｎｂ＿ｆｌａｇが１であった場合、カウント値と、印字情報領域面積および余白領域面積を用いて計算が実施される（Ｓ１８００）。計算式（１５）は以下の通りである。
｜（ｃｎｔ＿ｍ−ｃｎｔ＿ｍ＿ｓｕｂ／ａｒｅａ＿ｍ）−（  ｃｎｔ＿ｃ＋ｃｎｔ＿ｍ＿ｓｕｂ／ａｒｅａ＿ｃ）｜  ・・・（１５）
ここでａｒｅａ＿ｍ、ａｒｅａ＿ｃは、スキャナ１１４が読み取った原稿サイズと、余白設定画面７００において設定された余白情報を元に、ＣＰＵ１０３から比較判定部１５０３に対して設定される。
計算式（１５）に示すように、余白領域においてはカウント値から境界連続画素を除き、印字情報領域においてはカウント値に境界連続画素を追加する。
【００８０】
また、ｃｎｔ＿ｍ＿ｓｕｂの値が予め決められた値より多いと、余白設定にエラーがある可能性が高いと考えられるため、ユーザに余白設定のやり直しを促す画面を表示したり、自動的にＳ１３０５へ進んでもよい。
【００８１】
以上述べたように、本実施例では、読み込んだ画像データを２値化し、さらにその画像データを余白領域と印字情報領域に分け、各領域で２値化データをカウントする。さらに、印字情報領域と余白領域の境界に跨って連続する画素については、境界連続画素として別途カウントする。こうしてカウントした境界連続画素のカウント結果と、余白領域のカウント結果の差分をとることで、印字情報領域からはみ出したオブジェクトに関するカウントを余白領域のカウント結果から差し引くことが可能である。すなわち、ユーザが余白設定画面７００で設定した領域に多少の誤差があっても、精度を落とすことなく白紙検知が可能となる。
【００８２】
（その他の実施例）
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005804720.tif 000002
【図２】
0005804720.tif 000003
【図３】
0005804720.tif 000004
【図４】
0005804720.tif 000005
【図５】
0005804720.tif 000006
【図６】
0005804720.tif 000007
【図７】
0005804720.tif 000008
【図８】
0005804720.tif 000009
【図９】
0005804720.tif 000010
【図１０】
0005804720.tif 000011
【図１１】
0005804720.tif 000012
【図１２】
0005804720.tif 000013
【図１３】
0005804720.tif 000014
【図１４】
0005804720.tif 000015
【図１５】
0005804720.tif 000016
【図１６】
0005804720.tif 000017
【図１７】
0005804720.tif 000018
【図１８】
0005804720.tif 000019
【図１９】
0005804720.tif 000020
【図２０】
0005804720.tif 000021
【図２１】
0005804720.tif 000022