(57)【要約】【課題】原稿が１枚である場合でも、原稿が複数枚である場合でも、原稿領域を適切に得ることができる画像処理装置、画像処理方法及びプログラムを提供することを目的とする。【解決手段】画像読取装置が読み取った読取データのうちで、原稿領域を決定する画像処理装置において、原稿が１枚である場合に原稿領域を検出する１枚原稿領域検出手段と、原稿が複数である場合に仮の複数原稿領域を検出する複数原稿領域検出手段と、複数原稿領域検出手段が検出した各矩形領域の傾き角度を検出する傾き角度検出手段と、傾き角度検出手段が検出した各矩形領域の傾き角度が、互いにほぼ同じであるかどうかを判断する傾き角度判断手段と、傾き角度検出手段が検出した各矩形領域の傾き角度が互いにほぼ同じであると、傾き角度判断手段が判断すれば、仮の複数原稿領域を、最終的な原稿領域であると決定する最終原稿領域決定手段とを有する。【選択図】図６
2010288188.tif 000002
【特許請求の範囲】
【請求項１】
画像読取装置が読み取る、原稿領域を決定する画像処理装置であって、
原稿が１枚である場合に原稿領域を検知する原稿領域検知手段と；
原稿が複数である場合に原稿領域を検知する複数原稿領域検知手段と；
上記複数原稿領域検知手段が得た各矩形領域の傾き角度が同等であることを判定する手段と；
を有し、上記判定する手段による判定の結果が、各矩形領域の傾き角度が１つ以上同等でなければ、複数原稿領域検知手段が得た領域が原稿領域であると決定することを特徴とする画像処理装置。
【請求項２】
請求項１であって、
上記複数原稿領域検知手段による検知の結果が原稿台端に隣接しているかどうかを検知する隣接検知手段と；
上記隣接検知手段が、原稿台端に隣接していることを検知した場合、上記各矩形領域の傾き角度が同等であるかどうかの判定処理から除外することを特徴とする画像処理装置。
【請求項３】
画像読取装置が読み取る原稿領域を決定する画像処理装置であって、
原稿が１枚である場合に原稿領域を検知する原稿領域検知手段と；
原稿が複数である場合に原稿領域を検知する複数原稿領域検知手段と；
上記複数原稿領域検知手段が得た各矩形領域の傾き角度が同等であるかどうかを判定する手段と；
上記複数原稿領域検知手段が得た各矩形領域の寸法が同等であるかどうかを判定する判定手段と；
を有し、
上記判定する手段による判定の結果が、各矩形領域の傾き角度が１つ以上同等でなく、かつ、各矩形領域の寸法が同等であれば、複数原稿領域検知手段が得た領域が原稿領域であると決定することを特徴とする画像処理装置。
【請求項４】
請求項３であって、
矩形領域の寸法が同等であるかどうかを判定する判定手段は、
上記複数原稿領域検知手段が得た各矩形領域の最大である長辺、最小である長辺比率と、上記複数原稿領域検知手段が得た各矩形領域の最大である短辺、最小である短辺比率とを比較し、比率が１に近ければ、同等であると判定する手段であることを特徴とする画像処理装置。
【請求項５】
請求項３であって、
上記複数原稿領域検知手段が検知した原稿領域が原稿台端に隣接しているかどうかを検知する手段とを有し、
上記複数原稿領域検知手段が検知した原稿領域が原稿台端に隣接しているかどうかを検知する手段が隣接していることを検知した場合、上記矩形領域の傾き角度が同等であるかどうかの判定処理から除外することを特徴とする画像処理装置。
【請求項６】
画像読取装置が読み取る原稿領域を決定する画像処理装置であって、
原稿が１枚である場合に原稿領域を検知する原稿領域検知手段と；
原稿が複数である場合に複数原稿領域を検知する複数原稿領域検知手段と；
上記複数原稿領域検知手段が得た各矩形領域の位置が揃っていることを判定する判定手段と；
を有し、上記判定手段が、上記各矩形領域の位置が揃っていないと判定すると、上記複数原稿領域検知手段が得た領域が原稿領域であると決定することを特徴とする画像処理装置。
【請求項７】
請求項６であって、
上記複数原稿領域検知手段が検知した原稿領域が原稿台端に隣接しているかどうかを検知する隣接検知手段と；
上記複数原稿領域検知手段が検知した原稿領域が原稿台端に隣接していることを、上記隣接検知手段が検知すると、上記判定手段による判定の対象から除外することを特徴とする画像処理装置。
【請求項８】
画像読取装置が読み取る、原稿領域を決定する画像処理方法であって、
原稿が１枚である場合に原稿領域を検知する原稿領域検知工程と；
原稿が複数である場合に原稿領域を検知する複数原稿領域検知工程と；
上記複数原稿領域検知工程で得た各矩形領域の傾き角度が同等であることを判定する工程と；
を有し、上記複数原稿領域検知工程による検知の結果が、各矩形領域の傾き角度が１つ以上同等でなければ、複数原稿領域検知工程が得た領域が原稿領域であると決定することを特徴とする画像処理方法。
【請求項９】
画像読取方法が読み取る原稿領域を決定する画像処理方法であって、
原稿が１枚である場合に原稿領域を検知する原稿領域検知工程と；
原稿が複数である場合に原稿領域を検知する複数原稿領域検知工程と；
上記複数原稿領域検知工程で得た各矩形領域の傾き角度が同等であるかどうかを判定する工程と；
上記複数原稿領域検知工程で得た各矩形領域の寸法が同等であるかどうかを判定する判定工程と；
を有し、上記複数原稿領域検知工程による検知の結果が、各矩形領域の傾き角度が１つ以上同等でなく、かつ、各矩形領域の寸法が同等であれば、複数原稿領域検知工程で得た領域が原稿領域であると決定することを特徴とする画像処理方法。
【請求項１０】
画像読取方法が読み取る原稿領域を決定する画像処理方法であって、
原稿が１枚である場合に原稿領域を検知する原稿領域検知工程と；
原稿が複数である場合に複数原稿領域を検知する複数原稿領域検知工程と；
上記複数原稿領域検知工程で得た各矩形領域の位置が揃っていることを判定する判定工程と；
を有し、上記判定工程で、上記各矩形領域の位置が揃っていないと判定すると、上記複数原稿領域検知工程で得た領域が原稿領域であると決定することを特徴とする画像処理方法。
【請求項１１】
請求項１、３、６のいずれか１項記載の画像処理装置を構成する各手段としてコンピュータを機能させるプログラム。
【請求項１２】
請求項１、３、６のいずれか１項記載の画像処理装置を構成する各手段としてコンピュータを機能させるプログラム記憶しているコンピュータ読取可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像読取装置の原稿台に置かれている原稿を読み取り、この読み取った画像を処理し、出力する画像処理装置に係り、特に、原稿台に置かれている複数の原稿を一括して読み取り、原稿毎に出力する画像処理装置に関する。
【背景技術】
【０００２】
近年、通信ネットワークの発達、コンピュータの高速化及び記憶媒体の大容量化に伴い、画像情報が頻繁に取り扱われている。特に、スキャナ等で取り込んだ画像情報を、より正確・高速に読み取りたいという要求が高まっている。
【０００３】
従来、原稿台に置かれている原稿から、読み取るべき対象物を抽出し、原稿位置、原稿サイズ等の原稿領域を、自動的に決定する方法が知られている。その第１の従来方法は、抽出した全ての対象物に基づいて、原稿領域を決定する方法である。この第１の従来方法は、原稿が１枚のみ置かれていることが、予め分かっているときに有効な方法である。
【０００４】
これとは別の第２の従来方法は、複数の対象物から、個々の対象物を抽出し、この抽出された個々の対象物に基づいて、原稿領域を決定する方法である（たとえば、特許文献１参照）。この第２の従来方法は、原稿を１枚に限定しないので、個々の対象物について、それぞれ１枚の原稿の領域を決定することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−４６７３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
全ての対象物から原稿領域を決定する第１の従来方法は、原稿が１枚であることを前提に処理するので、原稿台に複数の原稿が置かれている場合、適切な原稿領域を決定することができないという問題がある。
【０００７】
一方、上記第２の従来方法は、複数の対象物から、個々の対象物を抽出し、この抽出された個々の対象物に基づいて原稿領域を決定するので、適切な原稿領域を決定することができる。しかし、原稿の内部に写真や画像オブジェクト等が配置されている場合、それぞれの画像データを、独立した対象物（１つの原稿）として抽出してしまう可能性が残る。原稿の内部に写真や画像オブジェクト等が配置されている場合の例は、原稿が、写真のサムネイル画像が一覧で印刷されたインデックスや、矩形領域が複数並んだプレゼンの資料などである場合である。
【０００８】
上記のように、複数の対象物から、個々の対象物を抽出し、この抽出された個々の対象物から原稿領域を決定する従来方法を用いると、原稿内部の写真を、原稿領域としてしまうという問題がある。
【０００９】
この原稿領域を決定する場合における問題に対して、ユーザ自身が置いた原稿に、適切な処理を選択させる方法が考えられる。しかし、初心者ユーザ等、自分の置いた原稿にどちらの処理が適切であるかを判断できない場合がある。
【００１０】
さらに、「ユーザ自身が置いた原稿に、ユーザが適切な処理を選択する」という操作が増え、操作が煩雑であるという問題がある。この問題は、原稿を原稿台に置き、ユーザが「読み取りボタン」を押すと、原稿に応じて最適な読み取り領域の画像を得ることができる機能を実現するための障害となっている。
【００１１】
本発明は、原稿が１枚である場合でも、原稿が複数枚である場合でも、適切な原稿領域を得ることができる画像処理装置、画像処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、読み取るべき複数の対象物が記載されている原稿であって、原稿台に載置されている原稿を読み取る。読み取った原稿から、読み取り対象物領域を抽出する。抽出された領域に基づいて、上記対象物が包含されている領域である第１領域を決定する手段と、抽出された領域に基づいて、上記複数対象物の領域集合である第２領域を決定する。
【００１３】
決定された第２領域に対し、原稿台端から離れている矩形のみの各傾き角度が異なっているか判定する。
【００１４】
判定結果に基づいて、原稿台端から離れている矩形のみの各傾き角度が１つでも異なっていれば、第２領域を使用し、それ以外の場合は第１領域を使用する。
【００１５】
また別の方法として、各傾き角度だけでなく、各長さを条件に判定する方法も考えられる。第１領域、第２領域の決定までは上記の手段と同じであり、決定された第２領域に対し、原稿台端から離れている領域のみの各傾き角度が異なっているか、各長辺、短辺の長さが同じであるかどうかを判定する。
【００１６】
判定結果に基づいて、原稿台端から離れている矩形のみの各傾き角度が１つでも異なり、かつ長辺、短辺の長さが同じであれば、第２領域を使用し、それ以外の場合は第１領域を使用する。
【００１７】
また、抽出された領域の位置を条件に判定する方法も考えられる。第１領域、第２領域の決定までは上記手段と同じであり、決定された第２領域に対して、原稿台端から離れている領域のみの各矩形位置が揃っているかどうかを判定する。この判定結果に基づいて、原稿台端から離れている矩形のみの各位置が揃っていれば、第１領域を使用し、それ以外の場合は第２領域を使用する。
【発明の効果】
【００１８】
本発明によれば、ユーザが原稿台にＬ判写真などを複数枚置くと、各写真が置かれている角度が互いに異なり、かつ領域サイズが同じであるので、Ｌ判写真として複数領域を決定することができる。印刷物など、内側が写真であると判定された場合でも、一般的な印刷物の写真は、各写真の角度が同じであり、かつ領域サイズが異なるので、写真ではなく印刷物として１枚の大きな領域として決定できる。したがって、本発明によれば、原稿が１枚である場合でも、原稿が複数枚の場合でも、適切な原稿領域を得ることができるという効果を奏する。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施例１である画像読取装置Ｒ１を示す断面図である。
【図２】実施例１において、スキャナ１０の機能構成を示すブロック図である。
【図３】実施例１において、ホストＰＣ５０の概略構成を示す図である。
【図４】実施例１において、ホストＰＣ５０の内部で動作するソフト構成図である。
【図５】スキャナ１０の読み取り動作を示すフローチャートである。
【図６】スキャナ１０の読み取り動作を示すフローチャートである。
【図７】１枚の印刷原稿の画像と、４枚の写真原稿の画像とを示す図である。
【図８】１枚の印刷原稿、４枚の印刷原稿のそれぞれの複数原稿領域の図である。
【図９】領域と原稿台の位置、原稿台端までの距離を示す図である。
【図１０】印刷原稿の複数領域から得られた計算値のリストを示す図である
【図１１】読み取るべき対象物を抽出する動作を示すフローチャートである。
【図１２】実施例１における原稿領域を決定する処理のフローチャートである。
【図１３】実施例３におけるスキャナ１０の読み取り動作のフローチャートである。
【図１４】２つの原稿領域の位置の差を求めるフローチャートである。
【図１５】１枚の印刷原稿の抽出結果と２枚の写真原稿の抽出結果を示す図である。
【図１６】印刷原稿の複数領域から得られた計算値のリストを示す図である。
【図１７】２つの原稿領域を示す図である。
【図１８】２点間を通る直線を求める式、点と直線の距離を求める式の図である。
【図１９】向き、サイズが違う複数領域の抽出結果を示す図である。
【発明を実施するための形態】
【００２０】
発明を実施するための形態は、次の実施例である。
【実施例１】
【００２１】
図１は、本発明の実施例１である画像読取装置Ｒ１を示す断面図である。
【００２２】
画像読取装置Ｒ１は、スキャナ１０を有し、読取原稿Ｄ１が載置される。スキャナ１０は、不図示のインタフェースケーブルによってホストコンピュータ（以下、「ホストＰＣ」という）に接続される。
【００２３】
画像読取装置Ｒ１は、プーリＰ１、Ｐ２と、原稿台ガラスＧ１と、ギア列１１と、ガイドレール１２と、白色基準板１３と、圧板１４と、パルスモータ１７と、無端ベルト１８と、光学ユニット３０と、電気基板４０とを有する。
【００２４】
白色基準板１３の中に、黒マーク１３ｂが設けられ、スキャナ１０は、この黒マーク１３ｂを基準にし、読み取りエリアを決め、画像を読み取る。
【００２５】
光学ユニット３０、パルスモータ１７は、それぞれ、不図示のケーブルによって、電気的に接続されている。また、光学ユニット３０は、圧板１４に載置され、ガイドレール１２に沿って摺動可能であり、圧板１４は、無端ベルト１８に固着されている。
【００２６】
光学ユニット３０は、反射原稿用光源１５と、複数の反射ミラーＭ１、Ｍ２、Ｍ３と、結像レンズ１９と、撮像手段であるラインセンサ２０とによって構成されている。
【００２７】
次に、スキャナ１０における反射原稿画像の読み取り動作について説明する。ホストＰＣが読み取り命令コマンドを発生すると、スキャナ１０が読み取り動作を開始する。スキャナ１０は、光学ユニット３０の反射原稿用光源１５を点灯し、読取原稿Ｄ１からの反射光を、複数の反射ミラーＭ１、Ｍ２、Ｍ３が反射し、結像レンズ１９を介して、ラインセンサ２０に結像することによって、主走査方向１ライン分の画像を読み取る。
【００２８】
ギア列１１を介して、パルスモータ１７の動力によって、プーリＰ１を回転させ、無端ベルト１８を駆動する。これによって、圧板１４に固着されている光学ユニット３０は、矢印Ｘで示す副走査方向に、ガイドレール上を移動する。
【００２９】
スキャナ１０は、光学ユニット３０を、副走査方向に移動しつつ、上記主走査方向のライン画像の読み取りを繰り返し、図１に点線で示す位置まで読み取り動作をしながら、光学ユニット３０を移動し、原稿台ガラスＧ１の全面をスキャンする。
【００３０】
ただし、ホストＰＣからの読み取りコマンドの内容に応じて、原稿台ガラスＧ１上の原稿の部分画像を読むことができる。この場合、ホストＰＣが指定する読み取り画像領域に対して、主走査方向には、センサ出力のうちで採用する画素領域を、電気基板４０上の上記制御部が規定することによって、原稿台ガラスＧ１上の読取原稿Ｄ１の部分画像を読むことができる。また副走査方向には、光学ユニット３０の移動領域を、電気基板４０上の上記制御部が規定することによって、原稿台ガラスＧ１上の読取原稿Ｄ１の部分画像を読むことができる。
【００３１】
また、副走査方向に、光学ユニット３０を移動させる場合には、ホストＰＣが指定する画像読み取りの解像度設定に応じて、システムコントローラ４１が速度を選択し、画像を読み取る。
【００３２】
なお、スキャナ１０は、マルチクロップスキャン機能を有し、ホストＰＣ又はスキャナ１０自身の制御によって、原稿台ガラスＧ１上に配置されている複数の読取原稿Ｄ１を、自動的に順に読み取る。
【００３３】
圧板１４上にオペレーションパネルを設置し、このオペレーションパネルには、液晶画面とボタンとを設け、ユーザが、マルチクロップのパラメータをスキャナ１０に入力し、読み取りの開始等の操作を行う。
【００３４】
図２は、実施例１において、スキャナ１０の機能構成を示すブロック図である。
【００３５】
スキャナ１０は、光学ユニット３０と、電気基板４０と、パルスモータ１７と、透過原稿用光源と、モータ駆動回路ＭＤ１とを有する。
【００３６】
光学ユニット３０は、光源点灯回路３１を有し、光源点灯回路３１は、反射原稿用光源１５を点灯する回路であり、この中に、反射原稿用光源１５の光量検知を行う検知部が含まれている。反射原稿用光源１５に冷陰極管を用いた場合、いわゆるインバータ回路を構成する。
【００３７】
電気基板４０は、システムコントローラ４１と、アナログゲイン調整器４２Ｒ、４２Ｇ、４２Ｂと、Ａ／Ｄ変換器４３と、画像処理部４４と、ラインバッファ４５と、インタフェース部４６とを有する。また、電気基板４０は、オフセットＲＡＭ４７と、ガンマＲＡＭ４８と、ＣＰＵバス４９とを有する。
【００３８】
アナログゲイン調整器４２Ｒ、４２Ｇ、４２Ｂは、ラインセンサ２０から出力されたアナログ画像信号を可変増幅する。Ａ／Ｄ変換器４３は、アナログゲイン調整器４２Ｒ、４２Ｇ、４２Ｂが出力したアナログ画像信号をデジタル画像信号に変換する。画像処理部４４は、デジタル信号化された画像信号について、オフセット補正、シェーディング補正、デジタルゲイン調整、カラーバランス調整、マスキング、主・副走査方向の解像度変換、画像圧縮等の画像処理を行う。
【００３９】
ラインバッファ４５は、画像データを一時的に記憶し、汎用のランダムアクセスメモリを有する。インタフェース部４６は、ホストＰＣ５０と通信し、ＵＳＢインタフェースによって構成されている。インタフェース部４６として、ＩＥＥＥ１３９４等、別のインタフェースを採用するようにしてもよい。
【００４０】
オフセットＲＡＭ４７は、画像処理を行う際のワーキングエリアとして用いるＲＡＭであり、ＲＧＢ用ラインセンサが、互いに所定のオフセットを持ち、ラインセンサ２０に、平行に配置されているので、このＲＧＢライン間オフセットの補正用として用いられる。また、オフセットＲＡＭ４７は、シェーディング補正等、各種データの一時記憶も行う。ここでは、汎用のランダムアクセスメモリで実現している。ガンマＲＡＭ４８は、ガンマカーブを記憶し、ガンマ補正を行うためのＲＡＭである。
【００４１】
システムコントローラ４１は、フィルムスキャナ全体のシーケンスを記憶しているシステムコントローラであり、ホストＰＣ５０からの命令に従って、各種制御を行う。
【００４２】
ＣＰＵバス４９は、システムコントローラ４１と、画像処理部４４と、ラインバッファ４５と、インタフェース部４６と、オフセットＲＡＭ４７と、ガンマＲＡＭ４８とを接続するバスであり、アドレスバスとデータバスとを有する。
【００４３】
モータ駆動回路ＭＤ１は、パルスモータ１７用のモータ駆動回路であり、スキャナ１０のシステム制御手段であるシステムコントローラ４１からの信号によって、パルスモータ１７の励磁切替え信号を出力する。
【００４４】
次に、実施例１において、スキャナ１０の制御に用いられるホストＰＣ５０の概略構成について、説明する。
【００４５】
図３は、実施例１において、スキャナ１０の制御に用いられるホストＰＣ５０の概略構成を示す図である。
【００４６】
ホストＰＣ５０は、中央処理装置５１と、ＲＯＭ５２と、ＲＡＭ５３と、ディスク装置５４と、バス５５と、Ｉ／Ｆ５６、５７と、外部記憶装置５８とを有する。
【００４７】
ＲＯＭ５２は、図５に示すフローチャートの動作を実現するプログラムを保持する。ＲＡＭ５３は、上記プログラムの動作に必要な記憶領域とワークエリアとを提供する。中央処理装置５１は、ＲＯＭ５２に保持されているプログラムに従って処理を行う。
【００４８】
バス５５は、上記各構成を接続し、各構成間におけるデータの授受を可能とする。Ｉ／Ｆ５６は、スキャナ１０との通信を行うＩ／Ｆであり、スキャナ１０のインタフェース部４６と同様に、ＵＳＢインタフェースで実現しているが、ＩＥＥＥ１３９４等、別のインタフェースを採用するようにしてもよい。
【００４９】
Ｉ／Ｆ５７は、マウスやキーボード等の入力部６１と接続する。また、外部記憶装置５８は、フロッピー（登録商標）ディスクやＣＤ−ＲＯＭ等、外部記憶媒体を駆動するための装置である。また、Ｉ／Ｆ５７は、上記のように、ＲＯＭ５２に制御プログラムを予め保持する代わりに、外部記憶媒体に記憶されている場合に、それを読み出してダウンロードする。なお、図示しないネットワークコネクタを介して、ネットワーク経由で、制御プログラムをダウンロードするようにしてもよい。
【００５０】
図４は、実施例１において、図３に示すホストＰＣ５０の内部で動作するソフト構成図を示す図である。ＴＷＡＩＮ規格に対応したアプリケーション４０１は、ＴＷＡＩＮドライバ４０２経由で図３に示すスキャナ１０から画像を読み取り、図３に示すモニタ６０に表示する。また、ユーザの指示によって画像を処理・保存する機能を有する。ＴＷＡＩＮドライバ４０２は、ＴＷＡＩＮ規格に従い、ＴＷＡＩＮ対応アプリケーション４０１に、図３に示すスキャナ１０からの画像を渡すと共に、独自のＧＵＩ（グラフィック・ユーザ・インタフェース）を表示する。ＧＵＩは、プレビュー、プレビュー画像に対するクロップエリアの指定、解像度の設定、読み取りモード（２値、８ビット多値、２４ビット多値等）の設定、ガンマ補正等の色調整の設定等を行う機能を有する。デバイスドライバ４０３は、図２に示すインタフェース部４６を介して、図２に示す画像処理部４４にアクセスする。デバイスドライバ４０３は、シェーディングの制御、解像度やクロップ範囲に応じたモータスピードを設定し、ＴＷＡＩＮドライバ４０２から受取ったガンマ補正データを、図２に示すガンマＲＡＭ４８へ送信処理し、画像読み取りのためのフロー制御を行う。ポートドライバ４０４は、パラレル・インタフェース、ＳＣＳＩインタフェース、ＵＳＢインタフェース、ＩＥＥＥ１３９４インタフェース等のインタフェースに応じて、図２に示すスキャナ１０との通信制御を行う。オペレーティングシステム４０５は、Ｗｉｎｄｏｗｓ（登録商標）等、図３に示すホストＰＣ５０のオペレーティングシステム（ＯＳ）である。
【００５１】
次に、実施例１において、ホストＰＣ５０によるスキャナ１０の読み取り動作について、説明する。
【００５２】
図５は、実施例１において、ホストＰＣ５０によるスキャナ１０の読み取り動作を示すフローチャートの一部である。
【００５３】
Ｓ４０１で、スキャナから画像を読み取る。読み取る時の画像の解像度は、仮のものであってもよく、ユーザ所望の解像度であってもよい。
【００５４】
図７（１）は、１枚の印刷原稿の画像８０１と、４枚の写真原稿の画像８０２とを示す図である。Ｓ４０２で、画像から、読み取るべき対象物を抽出する。
【００５５】
図７（２）は、抽出された結果を示す図である。図７（１）の１枚の印刷原稿の画像８０１から抽出した結果は、１枚の印刷原稿の抽出結果９０１である。図７（１）の４枚の写真原稿の画像８０２から抽出した結果は、４枚の写真原稿の抽出結果９０２である。詳細な抽出方法は別途説明する。
【００５６】
Ｓ４０３で、読取原稿が１枚である場合に原稿領域決定する原稿領域決定手段を用いて、抽出された全ての対象物について、原稿領域を求める。
【００５７】
図７（３）は、求められた１枚領域を示す図である。図７（２）の１枚の印刷原稿の抽出結果９０１から求めた１枚原稿領域は、１００１である。図７（２）の４枚の写真原稿の抽出結果９０２から求めた１枚原稿領域は、１００２である。詳細な抽出方法については、別途説明する。
【００５８】
Ｓ４０４で、抽出された対象物の個数を数える。抽出された対象物として、Ｓ４０２で得られた抽出結果を用いてもよく、Ｓ４０２で使用した抽出方法を用いて、抽出するための設定を変えて抽出結果を得るようにしてもよい。
【００５９】
対象物の個数を数える場合、ラベリング等がある。まず、カウンタを０に初期化し、画像を走査し、対象物である画素を探す。この対象物である画素に、カウント値が設定されていなければ、現在のカウント値を設定する。そして、隣接する対象物である画素に対しても、同じカウント値を設定する。新しくカウント値が設定された画素に隣接する画素に対しても、同じカウント値を設定する。隣接する対象物である画素で、カウント値が設定されていないものがなくなった時点で、カウント値を加算する。その後に、画像を走査し、対象物を探し、終了した時点のカウント値が、抽出された対象物の個数である。
【００６０】
Ｓ４０５で、原稿が複数枚である場合に行う原稿領域決定手段を用いて、１つの対象物に対し、包含するような原稿領域を求める。たとえば、Ｓ４０３と同様な方法がある。写真が傾いて置かれている場合を想定し、原稿領域を傾けて、原稿領域を決定することができる。
【００６１】
また、決定された原稿領域が正しくないと判断できれば、原稿領域決定から除外するようにしてもよい。たとえば、矩形の縦横比率が一定以下である場合や、矩形同士が接触していないことが、正しい条件となりえる。
【００６２】
図８（１）は、求められた結果を示す図である。図７（２）の１枚の印刷原稿の抽出結果９０１から求めた複数原稿領域は、１１０１である。図７（２）の４枚の写真原稿の抽出結果９０２から求めた複数原稿領域は、１１０２である。
【００６３】
図７（３）の１枚の印刷原稿の１枚原稿領域１００１と、図８（１）の１枚の印刷原稿の複数原稿領域１１０１とが異なる。図７（２）に示す抽出結果９０１おいて、原稿の下辺、右辺が抽出されているが、複数原稿領域１１０１には反映されていない。これは、矩形の縦横比率や、矩形同士の接触等の正しい条件から外れているので、この領域は、複数原稿領域１１０１から外される。
【００６４】
Ｓ４０６で、得られた複数原稿領域から、図８（２）に示す原稿の長辺１２０２、原稿の短辺１２０３、原稿の角度１２０１を求める。複数原稿領域は領域が長方形であるので、長辺と短辺とが求まる。また、原稿の傾きは、−４５度〜４５度の間であるように求める。
【００６５】
さらに、図９に示す原稿領域と原稿端までの距離とを求める。まず、原稿領域１３０５に対し、領域を内包する原稿内包矩形１３０６を求める。これによって、原稿領域の各頂点の最大値、最小値を求めることができる。その後に、原稿内包矩形の上辺と、原稿台の上辺の距離（原稿台端までの距離（Ｔｏｐ）１３０１）、その他３辺も同じように求める。また、原稿台端までの距離（Ｌｅｆｔ）１３０２、原稿台端までの距離（Ｒｉｇｈｔ）１３０３、原稿台端までの距離（Ｂｏｔｔｏｍ）１３０４を求める。その後に、４つの距離の最小値を、原稿台端までの距離とする。
【００６６】
Ｓ４０７で求めた計算結果をリストに登録する。図１０（１）に、図８（１）の１枚の印刷原稿の複数原稿領域１１０１から得られた計算結果を全て登録した後のリストを示す。領域が４個あるので、ＩｎｄｅｘＮｕｍｂｅｒは１〜４となり、それぞれ長辺、短辺、矩形の傾き角度、原稿台端までの距離が記録されている。このリストは、ＩｎｄｅｘＮｕｍｂｅｒによって各要素を参照でき、また、特定のＩｎｄｅｘＮｕｍｂｅｒのみを削除することもできる。
【００６７】
図１０（２）は、図８（１）の４枚の写真原稿の複数原稿領域１１０２から得られた計算結果を全て登録したあとのリストを示す図である。
【００６８】
Ｓ４０８で、全ての対象物が処理されるまで、Ｓ４０５〜Ｓ４０７をループする。Ｓ４０８の分岐処理をＹｅｓで抜けたときに、全ての対象物が処理され、各計算結果がリストに登録されている。
【００６９】
Ｓ５０１において、Ｓ４０５で求めた複数原稿領域の始めから、最後まで個数分ループする。ループの終端は、Ｓ５０７である。
【００７０】
Ｓ５０２において、Ｓ５０１のループカウント＋１から、Ｓ４０５で求めた複数原稿領域の最後までループする。ループの終端は、Ｓ５０６である。
【００７１】
Ｓ５０１とＳ５０２とのループ処理によって、複数原稿領域の全組み合わせを操作することができる。たとえば、複数原稿領域が０、１、２、３と４つあった場合、Ｓ５０１のループ開始では、ｉ＝０となり、Ｓ５０２のループで、ｊ＝１、２、３である。また、ｉ＝１の場合、ｊ＝２、３である。そして、ｉ＝２の場合、ｊ＝３である。最後にｉ＝３の場合、ｊが４以上になるので、ループ処理は発生しない。この２つのループ処理で（０，１）、（０，２）、（０，３）、（１，２）、（１，３）、（２，３）と全ての組み合わせが網羅されている。
【００７２】
Ｓ５０３で、原稿領域が原稿台に接しているかどうかを調べる。ｉ、ｊの値に基づいて、リスト（図１０（１）、（２））の中から、原稿台端までの距離を参照し、この値が５．０ｍｍ以下であるかどうかを調べる。原稿台端に接していれば、原稿台端までの距離が０．０ｍｍであるが、計算誤差などを含めて５．０ｍｍとしているが、デバイスなどの精度によっては、５．０ｍｍよりも小さくなることも、大きくなることも考えられる。
【００７３】
ここで、原稿台に接していると判定されれば、Ｓ５０６へ移動し、それ以外はＳ５０４へ移動する。
【００７４】
Ｓ５０４で、２つの原稿領域の角度差を求める。ｉ、ｊの値に基づいて、リスト（図１０（１）、図１０（２））の中から、矩形の傾き角度を参照し、２つの値の差の絶対値を求める。この値が、１．０度以下であれば、Ｓ５０５へ移動し、それ以外はＳ５０６へ移動する。ここで、写真原稿などを、ユーザが手動で原稿台に置いた場合、正確に置いたとしても僅かな角度差が生じ、写真などが印刷された原稿では、正確にレイアウトされているため角度差が生じない。この角度差は、Ｓ４０５で角度を求めるときの精度に依存するが、写真などが印刷された原稿ではほぼ０度である。誤差などのマージンを含め、１度としたが、Ｓ４０５の精度によっては、１度よりも大きくなることも小さくなることも考えられる。
【００７５】
Ｓ５０５では、ｊ番目の要素をリストから除外する。Ｓ５０６は、Ｓ５０２のループ端である。Ｓ５０７は、Ｓ５０１のループ端である。
【００７６】
図６は、実施例１において、ホストＰＣ５０によるスキャナ１０の読み取り動作を示すフローチャートの一部である。
【００７７】
Ｓ６０１で、図５のＳ４０５で求めた複数原稿領域の個数と、図５のＳ４０７及びＳ５０５で操作されたリストの要素数とを比較する。図５のＳ５０５による要素の削除がなければ、複数枚領域の個数と、リストの要素数は一致する。これは、複数枚領域の各角度差が生じていないことであり、ユーザが複数の原稿を手動で置いていない場合である。このため、図５のＳ４０３で求めた１枚原稿領域を、Ｓ４０１で読み取った画像の原稿領域とする。
【００７８】
図５のＳ５０５で要素が１つでも削除されたときは、複数枚領域の個数は、リストの要素数よりも大きくなる。これは、複数枚領域の各角度差が１つは生じたことであり、ユーザが複数の原稿を手動で置いた場合である。このために、図５のＳ４０５で求めた複数原稿領域を、Ｓ４０１で読み取った画像の原稿領域とする。
【００７９】
特に図示しないが、以降は、決定された原稿領域に基づいて、画像処理をすることができる。Ｓ４０１で読み取られた画像の解像度が仮の物であれば、決定された原稿領域を、所望の解像度で読み取ることもできる。得られた原稿領域が斜行していれば、斜行を補正するように、画像を回転することもできる。
【００８０】
図１１は、実施例１において、読み取るべき対象物を抽出する動作を示すフローチャートである。図５におけるフローチャートでは、Ｓ４０２の処理に該当する。
【００８１】
Ｓ２１で、画像から二値化のための閾値を決定する。この閾値は、後述するＳ２６の比較方法に依存して最適な値が変わる。閾値を簡単に決定するには、固定の値を予め決めておけばよい。
【００８２】
Ｓ２２で、ある１画素の値を取得する。画像から、読み取るべき対象物を抽出するために、全ての画素に対して処理を行わなければならないが、Ｓ２２で１画素毎に処理することができる。通常は、Ｘ座標、Ｙ座標を用いて、ある１画素の位置を特定する。処理開始時には、Ｘ座標、Ｙ座標を初期値（一般的には０）で初期化し、１画素処理する毎に、Ｘ座標、Ｙ座標を変化させ、全画素を走査する。
【００８３】
Ｓ２３では、Ｓ２２で取得した画素値の色空間を変換する。一般的に、ラインセンサ２０の特性・カラーフィルタや、反射原稿用光源１５によって、スキャナ１０毎の色空間が異なる。デバイス非依存の色空間にすれば、スキャナ１０に依存せずに対象物を抽出することができる可能性があるので、Ｓ２３で色空間を変換する。スキャナ１０に依存したパラメータを調整し、Ｓ２１の処理における閾値を決定する場合、このＳ２３の処理を省くことができる。
【００８４】
Ｓ２４では、Ｓ２３で得られた値を、スカラー値に変換する。カラー画像を入力する場合、ＲＧＢ三色値を持っている。このＲＧＢ三色値（ベクトル値）と、閾値（スカラー値）とを比較するために、ＲＧＢ三色値をスカラー値に変換する。ＲＧＢ三色値をスカラー値に変換する場合、どれか１色のみを取り出す方法、ＲＧＢ三色値に適当な重み付け平均をとり輝度値を求める方法、ＲＧＢ三色値から彩度を計算する方法等がある。
【００８５】
ただし、入力画像がグレースケール等、１色である場合、この処理を必要としないので、Ｓ２４の処理を省くことができる。
【００８６】
Ｓ２５では、Ｓ２４で得られた値から、ｎ次微分や差分を計算する。画像から対象物を抽出する処理において、原稿台に置いた読取原稿Ｄ１と、それ以外の境界とを抽出することによって、その後の原稿領域を精度よく決定することが容易になる可能性がある。この原稿台に置いた読取原稿Ｄ１の境界を抽出する目的で、ｎ次微分や差分を計算する。この処理は、Ｓ２４で得られた値の特性に依存するので、必要がなければ、Ｓ２５の処理を省くことができる。
【００８７】
Ｓ２６では、Ｓ２５で得られた値と、Ｓ２１で決定した閾値とを比較し、閾値未満であれば対象物でないとし、閾値以上であれば対象物であるとする。ただし、Ｓ２３〜Ｓ２５で求まる値によっては、この関係が逆転し、閾値未満であれば対象物とし、閾値以上であれば対象物でないとすることもある。この関係を予め決めておく。たとえば、輝度値であれば、閾値未満であれば対象物とし、彩度であれば、閾値以上であれば対象物である。
【００８８】
Ｓ２７では、Ｓ２６の結果を保存する。Ｓ２６の結果は、対象物か、対象物でないかの２種類しかないので、０を対象物、１を対象物でない等のように、符号化して保存する。
【００８９】
Ｓ２８で、全ての画素がＳ２７で処理されたかどうかを調べ、全て処理されていれば、終了する。
【００９０】
実施例１において、図１１に示すフローチャートの順で処理するが、Ｓ２１における閾値の決定に、Ｓ２５の結果が必要な場合があり、隣接する画素についてスカラー値への変換（Ｓ２４）の値を、Ｓ２５の計算で必要な場合がある。このために、図１１に示すフローチャートの処理順を、必要によって入れ替えるようにしてもよい。
【００９１】
実施例１では、図１１に示すフローチャートを１回のみ実行するが、場合によっては、複数回実行するようにしてもよく、このときに、内部の処理方法を変えるようにしてもよい。たとえば、１回目の処理では、色空間の変換を行わずに、輝度を求め、二次微分によって処理する。２回目の処理では、色空間の変換を行い、彩度を求め、Ｓ２５を飛ばして処理する。その後に、２つの結果の論理積または論理和を求めて合成する。論理積を使うか、論理和を使うかは、Ｓ２７の符号化に依存するので、適宜決める。
【００９２】
図７（２）は、実施例１において、１枚の印刷原稿を置いた場合における抽出結果９０１と、４枚の写真原稿を置いた場合における抽出結果９０２とを示す図である。
【００９３】
黒で塗りつぶされた箇所が、対象物として抽出された箇所である。
【００９４】
図１２は、実施例１において、原稿領域を決定する処理を示すフローチャートである。図５におけるフローチャートでは、Ｓ４０３の処理に該当する。
【００９５】
Ｓ３１で、原稿領域の初期値を設定する。原稿台全面の領域を、原稿領域の初期値として設定する。Ｓ３２で、原稿領域の上辺の辺上に、Ｓ４０２で抽出した対象物があるかどうかを判断する。上辺の辺上に対象物がなければ、Ｓ３３へ進み、上辺の辺上に対象物があれば、Ｓ３４へ進む。
【００９６】
Ｓ３３で、原稿領域の上辺を下に移動する。原稿領域の精度を１画素とするのであれば、１画素分、上辺を移動する。その後に、Ｓ３２へ進む。Ｓ３２の処理とＳ３３の処理とによって、原稿領域の上辺を求めることができる。
【００９７】
Ｓ３４で、原稿領域の下辺の辺上に、Ｓ４０２で抽出した対象物があるかどうかを判断する。原稿領域の下辺の辺上に対象物がなければ、Ｓ３５で、原稿領域の下辺を上に移動し、原稿領域の下辺の辺上に対象物があれば、Ｓ３６へ進む。
【００９８】
Ｓ３５で原稿領域の下辺を上に移動する場合、原稿領域の精度を１画素とするのであれば、下辺を、１画素分、移動する。その後に、Ｓ３４へ戻る。Ｓ３４の処理とＳ３５の処理とによって、原稿領域の下辺を求めることができる。
【００９９】
Ｓ３６で、原稿領域の右辺の辺上に、Ｓ４０２で抽出した対象物があるかどうかを判断する。右辺の辺上に対象物がなければ、Ｓ３７で、右辺を左に移動し、Ｓ３６に戻る。右辺の辺上に対象物があれば、Ｓ３８へ進む。
【０１００】
Ｓ３７で原稿領域の右辺を左に移動する場合、原稿領域の精度を１画素とするのであれば、右辺を、１画素分、移動する。その後に、Ｓ３６へ戻る。Ｓ３６の処理とＳ３７の処理とによって、原稿領域の右辺を求めることができる。
【０１０１】
Ｓ３８では、原稿領域の左辺の辺上に、Ｓ４０２で抽出した対象物があるかどうかを判断する。左辺の辺上に対象物がなければ、Ｓ３９で、原稿領域の左辺を右に移動する。左辺の辺上に対象物があれば、終了する。
【０１０２】
Ｓ３９で原稿領域の左辺を右に移動する場合、原稿領域の精度を１画素とするのであれば、左辺を、１画素分、移動する。Ｓ３８の処理とＳ３９の処理とによって、原稿領域の左辺を求めることができる。
【０１０３】
図７（３）は、実施例１において、１枚の印刷原稿を置いたときに読み取った画像から得られた１枚原稿領域１００１と、４枚の写真原稿を置いたときに読み取った画像から得られた１枚原稿領域１００２とを示す図である。
【０１０４】
図７（３）において、点線で示す領域が、原稿領域である。ここで得られる領域を、１枚原稿領域と呼ぶ。
【０１０５】
図７（２）に示す抽出結果９０１では、１枚領域原稿の領域全てが抽出されていないが、図７（３）に示す１枚原稿領域１００１を見ると、適切な領域が得られている。これは、図７（２）に示す抽出結果９０１において、原稿の上辺、下辺、右辺、左辺の一部を抽出できているので、図１２に示すフローチャートによって、適切に処理されたためである。
【実施例２】
【０１０６】
本発明の実施例２は、実施例１の図５のＳ５０７までは同じであり、図５のＢの次に、図６（２）のＢ２へ進む。
【０１０７】
Ｓ７０１では、図５のＳ４０５で求めた複数原稿領域の個数と、図５のＳ４０７及びＳ５０５による要素の削除がなければ、複数枚領域の個数と、リストの要素数とが一致する。これは、複数枚領域の各角度差が生じていないためであり、ユーザが複数の原稿を手動で置いていない場合である。このために、図５のＳ４０３で求めた１枚原稿領域を、Ｓ４０１で読み取った画像の原稿領域とする。
【０１０８】
図５のＳ５０５で要素が１つでも削除されていれば、複数枚領域の個数は、リストの要素数よりも大きくなる。これは、複数枚領域の各角度差が１つは生じたことであり、ユーザが複数の原稿を手動で置いた可能性があるので、Ｓ７０２へ進む。
【０１０９】
Ｓ７０２では、リストの中から、長辺の最大値と、長辺の最小値とを求める。そして、長辺比率として、長辺の最大値／長辺の最小値を求める。
【０１１０】
Ｓ７０３では、リストの中から短辺の最大値と、短辺の最小値を求める。そして、短辺比率として、短辺の最大値／短辺の最小値を求める。
【０１１１】
Ｓ７０４では、Ｓ７０２及びＳ７０３で得られた長辺比率、及び短辺比率が、１．２以上であるかどうかを比較する。ここで、ユーザがＬ判写真、４×６写真など、同じサイズの写真を置いた場合、長辺比率、短辺比率共に、１．０に近くなる。これは、同じサイズの原稿であるので、長辺の最大値と長辺の最小値とが似た値になるためである。正確には１．０になるが、図５のＳ４０５の領域決定の誤差や、原稿自身の誤差を考慮して、マージンを持たせ、１．２としている。この判定処理を入れることによって、ユーザが同じサイズの写真を置いた場合、複数原稿領域であることを確実に判定することができる。
【０１１２】
また、４ｉｎ１印刷やインデックス印刷の場合でも、Ｓ７０１で角度差の有無を判定するので、手動で原稿台に置いたか、自動的なレイアウト印刷であるかを判別することができる。つまり、角度差が生じ、原稿の長辺比率、短辺比率が同じであれば、図５のＳ４０５で求めた複数原稿領域を、Ｓ４０１で読み取った画像の原稿領域であると判断する。
【０１１３】
特に図示しないが、以降は、決定された原稿領域に基づいて、画像処理をすることができる。Ｓ４０１で読み取られた画像の解像度が仮の物であれば、決定された原稿領域を、所望の解像度で読み取ることもできる。得られた原稿領域が斜行していれば、斜行を補正するように、画像を回転することもできる。
【実施例３】
【０１１４】
図１３は、本発明の実施例３において、ホストＰＣ５０によるスキャナ１０の読み取り動作を示すフローチャートである。
【０１１５】
実施例３は、抽出された矩形の位置が縦横で揃っていれば、１枚の印刷原稿の複数領域（パワーポイントなどのプレゼン資料）であると判断する実施例である。
【０１１６】
図１３において、Ｓ１９０１〜Ｓ１９０５の処理は、実施例１で説明した図５のＳ４０１〜Ｓ４０５の処理と同様の処理である。Ｓ１９０６で、得られた複数原稿領域の４点の座標値を求める。さらに、実施例１の図９と同様に、原稿台からの距離も求める。Ｓ１９０７で求めた結果を、リストに登録する。
【０１１７】
図１６（１）は、図１５に示す１枚の印刷原稿の複数領域２１０１から得た計算結果を全て登録した後におけるリストを示す図である。
【０１１８】
領域が２個あるので、ＩｎｄｅｘＮｕｍｂｅｒは１〜２であり、それぞれ４点の座標値、原稿台端までの距離が記録されている。ＩｎｄｅｘＮｕｍｂｅｒによって、上記リストの各要素を参照することができる。
【０１１９】
図１６（２）は、図１５に示す２枚の写真原稿の複数領域２１０２から得られた計算結果を全て登録した後におけるリストを示す図である。
【０１２０】
Ｓ１９０８で、全ての対象物が処理されるまで、Ｓ１９０５〜Ｓ１９０７をループする。Ｓ１９０８の分岐処理を、Ｙｅｓで抜けたときに、全ての対象物が処理される。
【０１２１】
Ｓ２００１では、Ｓ１９０５で求めた複数原稿領域の始めから、最後まで、個数分ループする。ループの終端は、Ｓ２００５である。
【０１２２】
Ｓ２００２で、Ｓ２００１のループカウント＋１から、Ｓ１９０５で求めた複数原稿領域の最後まで、ループする。ループの終端は、Ｓ２００６である。
【０１２３】
Ｓ２００１とＳ２００２とのループ処理も、Ｓ５０１と同様に処理し、全組み合わせを操作することができる。
【０１２４】
Ｓ２００３で、原稿領域が原稿台に接しているかどうかを調べる。ｉ、ｊの値に基づいて、リスト（図１６（１）、（２））の中から原稿台端までの距離を参照し、この値が５．０ｍｍ以下であるかどうかを調べる。原稿台端に接していれば、原稿台端までの距離が０．０ｍｍであるが、計算誤差などを含めて５．０ｍｍとしている。しかし、デバイスなどの精度によっては、５．０ｍｍよりも小さくなることも、大きくなることも考えられる。
【０１２５】
ここで、原稿台に接していると判定されると、Ｓ２００５へ移動し、それ以外の場合は、Ｓ２００４へ移動する。
【０１２６】
Ｓ２００４で、２つの原稿領域の位置の差を求める。位置の差を求める詳細な方法は、別途説明する。位置の差が１ｍｍ以下であれば、Ｓ１９０３で読み取った１枚原稿領域を、Ｓ１９０１で読み取った画像の原稿領域とする。位置の差が１ｍｍよりも大きければ、Ｓ１９０５で求めた複数原稿領域を、図１３（１）のＳ１９０１で読み取った画像の原稿領域とする。
【０１２７】
ここで、写真原稿などをユーザが手動で原稿台に置いた場合、正確に置いたとしても僅かな位置の差が生じ、プレゼン資料などの原稿では、正確にレイアウトされているので、位置の差が生じない。この位置の差は、Ｓ１９０５で座標値を求めるときの精度に依存する。写真などが印刷された原稿では、上記位置の差は、ほぼ０である。誤差などのマージンを含め、１ｍｍとしたが、Ｓ１９０５の精度によっては、１ｍｍよりも大きくなることも、小さくなることも考えられる。
【０１２８】
Ｓ２００６は、Ｓ２００２のループ端である。Ｓ２００５は、Ｓ２００１のループ端である。
【０１２９】
図１４は、図１３のＳ２００４の２つの原稿領域の位置の差を求めるフローチャートである。Ｓ２１０１で、原稿領域［ｉ］の４辺全てに対して、原稿領域［ｊ］の全ての頂点からの距離を求めるために、４回ループする。ループの終端は、Ｓ２１０４である。
【０１３０】
Ｓ２１０２で、リスト（図１６（１）、（２））の中からｉの値の原稿領域の座標値を参照し、原稿領域の１辺の直線式Ｌを求める。たとえば、図１７において原稿領域２５００の頂点２５０１と頂点２５０２との座標値と、図１８（ａ）で示す式とから、直線式Ｌを求める。リスト（図１６（２））を参照した場合、頂点２５０１を、（１０，１０）とし、（ｘ１，ｙ１）に対応する。頂点２５０２を、（１０，１１０）とし、（ｘ２，ｙ２）に対応する場合、図１８（ａ）の式から、直線式Ｌ：ｘ＝１０が求まる。
【０１３１】
Ｓ２１０３では、Ｓ２１０１で求めた原稿領域［ｉ］の直線式Ｌと、リスト（図１６（１）、（２））の中から、ｊの値の原稿領域の座標値とを参照し、原稿領域［ｊ］の４点との垂線距離を求める。
【０１３２】
たとえば、図１７で頂点２５０１と頂点２５０２とから求めた直線式Ｌから、原稿領域２５１０の頂点２５１１、頂点２５１２、頂点２５１３、頂点２５１４の４点からの垂線距離を、図１８（ｂ）に示す式で求める。リスト（図１６（２））を参照し、Ｓ２１０２で求めた直線式が、Ｌ：ｘ＝１０であり、頂点２５１１（２０，１３０）、頂点２５１２（２０，２３０）、頂点２５１３（１７０，１３０）、頂点２５１４（１７０，２３０）とした場合、次のようになる。つまり、図１８（ｂ）の式から、直線Ｌと頂点２５１１との距離は、１０ｍｍであり、直線Ｌと頂点２５１２との距離が、１０ｍｍであり、直線Ｌと頂点２５１３の距離は、１６０ｍｍであり、直線Ｌと頂点２５１４との距離は、１６０ｍｍである。
【０１３３】
Ｓ２１０４は、Ｓ２１０１から始まるループの端のステップである。Ｓ２１０５では、Ｓ２１０３で求めた垂線距離が１ｍｍ以下である点が、２点あるかどうかを判定し、上記記載の条件を満たす直線が２つあるかどうかを判定する。存在すれば、原稿領域［ｉ］と原稿領域［ｊ］との位置の差が１ｍｍ以下であると判定し、存在しなければ、位置の差が１ｍｍよりも大きいと判定する。
【０１３４】
ここで、原稿をユーザが手動で原稿台に置いた場合、ずれが生じるが、プレゼン資料などは、複数原稿領域が正確にレイアウトされ、原稿領域同士の辺が一直線上である。垂線距離が１ｍｍ以下である点が２点あるので、プレゼン資料などであることを判定する場合の精度が上がる。
【０１３５】
また、プレゼン資料などは、印刷領域の大きさ、向きが同じであるので、上記条件を満たす直線が２つあり、これによって、図１９に示す原稿領域を除外することができ、誤判定を防ぐことができる。
【０１３６】
つまり、電気基板４０は、原稿が１枚である場合に原稿領域を検知する原稿領域検知手段の例であり、原稿が複数である場合に原稿領域を検知する複数原稿領域検知手段の例である。また、電気基板４０は、上記複数原稿領域検知手段が得た各矩形領域の傾き角度が同等であることを判定する手段の例である。そして、上記判定結果によって、各矩形領域の傾き角度が１つ以上同等でなければ、複数原稿領域検知手段が得た領域が原稿領域であると決定する。
【０１３７】
さらに、電気基板４０は、上記複数原稿領域検知結果が原稿台端に隣接しているかどうかを検知する隣接検知手段の例である。そして、上記隣接検知手段が、原稿台端に隣接していることを検知した場合、上記各矩形領域の傾き角度が同等であるかどうかの判定処理から除外する。
【０１３８】
しかも、電気基板４０は、上記複数原稿領域検知手段が得た各矩形領域の傾き角度が同等であるかどうかを判定する手段の例であり、上記複数原稿領域検知手段が得た各矩形領域の寸法が同等であるかどうかを判定する判定手段の例である。そして、上記判定結果によって各矩形領域の傾き角度が１つ以上同等でなく、かつ、各矩形領域の寸法が同等であれば、複数原稿領域検知手段が得た領域が原稿領域であると決定する。この場合、矩形領域の寸法が同等であるかどうかを判定する判定手段は、次のように判定する。すなわち、上記複数原稿領域検知によって得られた各矩形領域の最大である長辺、最小である長辺比率と、上記複数原稿領域検知手段が得た各矩形領域の最大である短辺、最小である短辺比率とを比較し、比率が１に近ければ、同等であると判定する。
【０１３９】
そして、電気基板４０は、上記複数原稿領域検知手段が検知した原稿領域が原稿台端に隣接しているかどうかを検知する手段の例である。この場合、上記複数原稿領域検知手段が検知した原稿領域が原稿台端に隣接しているかどうかを検知する手段が隣接していることを検知した場合、上記矩形領域の傾き角度が同等であるかどうかの判定処理から除外する。
【０１４０】
また、電気基板４０は、複数原稿領域検知手段が得た各矩形領域の位置が揃っていることを判定する判定手段の例である。この判定手段が、上記各矩形領域の位置が揃っていないと判定すると、上記複数原稿領域検知手段が得た領域が原稿領域であると決定する。
【０１４１】
また、電気基板４０は、上記複数原稿領域検知手段が検知した原稿領域が原稿台端に隣接しているかどうかを検知する隣接検知手段の例である。そして、上記複数原稿領域検知手段が検知した原稿領域が原稿台端に隣接していることを、上記隣接検知手段が検知すると、上記判定手段による判定の対象から除外する。
【０１４２】
また、上記実施例における各手段を工程に置き換えれば、上記実施例を、画像処理方法として把握することができる。
【実施例４】
【０１４３】
本発明の実施例４は、複数の機器（たとえば、ホストコンピュータ、インタフェース機器、スキャナ、プリンタ、複合機等）によって構成されているシステムに適応する実施例である。
【０１４４】
また、上記実施例の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体（又は記録媒体）を、システム又は装置に供給するようにしてもよい。そして、そのシステム又は装置のコンピュータ（又はＣＰＵやＭＰＵ）が、記憶媒体に格納されたプログラムコードを読み出し、実行するようにしてもよい。
【０１４５】
つまり、上記実施例は、画像読取装置の原稿台に複数の原稿を置き、スキャンする際、上記複数の原稿を一括で読み取り、この読み取った上記各原稿を、自動的に切り出すマルチクロップ機能を有する画像処理装置を制御するプログラムである。
【０１４６】
このプログラムにおいて、上記原稿台に載置されている原稿を切り出して検出した枚数である検出クロップ画像枚数を検出する検出クロップ画像枚数検出手順を、コンピュータに実行させるプログラムである。また、ユーザが入力した希望クロップ画像枚数と、上記検出クロップ画像枚数とを比較するクロップ画像枚数比較手順と、上記クロップ画像枚数比較手順で比較した結果を表示する比較結果表示手順とをコンピュータに実行させるプログラムの例である。
【０１４７】
この場合、記憶媒体から読み出されたプログラムコード自体が、上記実施例の機能を実現し、このプログラムコードを記憶した記憶媒体は、本発明を構成する。また、コンピュータが読み出したプログラムコードを実行することによって、上記実施例の機能が実現されるだけでない。つまり、そのプログラムコードの指示に基づいて、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）等が、実際の処理の一部又は全部を行い、この処理によって、上記実施例の機能が実現されるようにしてもよい。
【０１４８】
ここで、プログラムコードを記憶する記憶媒体としては、たとえば、フレキシブルディスク、ハードディスク、ＲＯＭ、ＲＡＭ、磁気テープ、不揮発性のメモリカード、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ、光ディスク、光磁気ディスク、ＭＯ等が考えられる。
【０１４９】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続されている機能拡張ユニットに設けられているメモリに書込まれる。その後に、上記プログラムコードの指示に基づいて、上記機能拡張カードや機能拡張ユニットに設けられているＣＰＵ等が実際の処理の一部又は全部を行い、この処理によって、上記実施例の機能が実現される。
【０１５０】
つまり、上記実施例は、請求項１、３、６のいずれか１項記載の画像処理装置を構成する各手段としてコンピュータを機能させるプログラムの例である。また、上記実施例は、請求項１、３、６のいずれか１項記載の画像処理装置を構成する各手段としてコンピュータを機能させるプログラム記憶しているコンピュータ読取可能な記憶媒体の例である。
【０１５１】
上記実施例によれば、初心者ユーザであっても、上級者ユーザであっても、常に同一精度の原稿領域を提供することができるので、ユーザによる原稿領域の精度低下を防ぐことができる。
【０１５２】
また、上記実施例によれば、「ユーザが適切な処理を選択する」という操作が必要ないので、原稿を置いて、ユーザが「読み取りボタン」を押すと、原稿に応じて最適な読み取り領域の画像を得ることが容易である。
【符号の説明】
【０１５３】
Ｒ１…画像読取装置、
１０…スキャナ、
３０…光学ユニット、
４０…電気基板、
５０…ホストＰＣ。
【図１】
2010288188.tif 000003
【図２】
2010288188.tif 000004
【図３】
2010288188.tif 000005
【図４】
2010288188.tif 000006
【図５】
2010288188.tif 000007
【図６】
2010288188.tif 000008
【図７】
2010288188.tif 000009
【図８】
2010288188.tif 000010
【図９】
2010288188.tif 000011
【図１０】
2010288188.tif 000012
【図１１】
2010288188.tif 000013
【図１２】
2010288188.tif 000014
【図１３】
2010288188.tif 000015
【図１４】
2010288188.tif 000016
【図１５】
2010288188.tif 000017
【図１６】
2010288188.tif 000018
【図１７】
2010288188.tif 000019
【図１８】
2010288188.tif 000020
【図１９】
2010288188.tif 000021