(57)【要約】【課題】  ２回の読取動作でクロップ処理を行う場合、動作時間がかかり、また原稿のずれなどにより所望の領域からずれた位置が切り取られてしまうことがある。しかしながら１回の読取動作でクロップ処理を行う場合には、原稿台全面を読取った画像を記憶できるフレームメモリが必要であった。【解決手段】  原稿台全面を読取った画像をバンド毎に記憶して、そのバンド内で原稿領域を検出する。複数バンドを記憶した結果、記憶した複数バンドが原稿画像を含む場合、原稿画像を切出す。これにより、原稿領域を含まないバンド、またはバンド内で原稿領域ではない領域を記憶する必要がなくなるので、１回の読取動作によるクロップ処理を、従来と比較してメモリ容量を抑えて行うことができる。【選択図】  図６
2010004476.tif 000002
【特許請求の範囲】
【請求項１】
読取装置が原稿を読取って得られた画像から前記原稿に対応する画像を切出す画像処理装置であって、
画像を記憶するためのメモリと、
読取装置が原稿を読取って得られた画像をバンド画像単位で入力する入力手段と、
前記入力手段により入力された前記バンド画像を解析して、前記バンド画像のうち前記原稿に対応する領域を検出する検出手段と、
前記バンド画像のうち前記検出手段により検出された領域を含む部分画像を前記メモリに記憶させる記憶制御手段と、
前記メモリに記憶された部分画像から前記原稿に対応する画像を切出す切出手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記切出し手段は、前記メモリに記憶された複数の部分画像から前記原稿に対応する画像を切出すことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記切出し手段は、前記検出手段により前記原稿に対応する画像の端点が検出されたことに基づき前記原稿を示す画像が入力されたと判断された場合に、画像を切出すことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記記憶制御手段は、画像データを圧縮符号化して記憶させることを特徴とする請求項１乃至請求項３のいずれか１項に記載の画像処理装置。
【請求項５】
前記記憶制御手段は、画像データをＪＰＥＧ形式で記憶させることを特徴とする請求項３に記載の画像処理装置。
【請求項６】
前記検出手段によりバンド画像のうち前記原稿に対応する領域が検出されなかった場合、前記記憶制御手段は記憶を行わないことを特徴とする請求項１乃至請求項５のいずれか１項に記載の画像処理装置。
【請求項７】
前記入力手段は、バンド画像を入力する毎に該バンド画像をバッファメモリ領域に上書きして記憶させることを特徴とする請求項１乃至請求項６のいずれか１項に記載の画像処理装置。
【請求項８】
前記切出手段により切出された画像を印刷装置に出力して印刷させることを特徴とする請求項１乃至請求項７のいずれか１項に記載の画像処理装置。
【請求項９】
前記切出手段により切出された画像をメモリカードに保存することを特徴とする請求項１乃至請求項７のいずれか１項に記載の画像処理装置。
【請求項１０】
前記読取装置は原稿台に載置された原稿を読取り、前記入力手段は前記原稿台に載置された原稿を読取って得られた画像を入力することを特徴とする請求項１乃至請求項９のいずれか１項に記載の画像処理装置。
【請求項１１】
読取装置が原稿を読取って得られた画像から前記原稿に対応する画像を切出す画像処理方法であって、
読取装置が原稿を読取って得られた画像をバンド画像単位で入力する入力工程と、
前記入力工程で入力された前記バンド画像を解析して、前記バンド画像のうち前記原稿に対応する領域を検出する検出工程と、
前記バンド画像のうち前記検出工程で検出された領域を含む部分画像をメモリに記憶させる記憶制御工程と、
前記メモリに記憶された部分画像から前記原稿に対応する画像を切出す切出工程と、
を有することを特徴とする画像処理方法。
【請求項１２】
請求項１１に記載の画像処理方法をコンピュータに実行させることを特徴とするプログラム。
【請求項１３】
請求項１２に記載のプログラムを記録したコンピュータが読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理装置の制御方法およびプログラムに関する。特に読取装置により読取られた画像に対してクロップ処理を行う画像処理装置に関する。
【背景技術】
【０００２】
最近は、スキャナやプリンタが一体になっているマルチファンクションプリンタ（以下「ＭＦＰ」という）が普及しており、ＰＣ等を使用せずに写真のコピー等の画像処理を手軽に実行することができる。
【０００３】
このＭＦＰの機能として読取った画像の一部を切出すクロップ処理があり、たとえば原稿台全面を読取った画像から、原稿台に置かれた原稿に対応する領域を切出して画像を得ることができる。
【０００４】
このクロップ処理を用いた機能として、例えばクロップ処理により切出して得られた画像の傾きを補正する傾き補正機能がある。また他にも、原稿台の上に写真等の小さな原稿が複数枚置かれたときに、原稿台全面を読取った画像から上記の複数枚の原稿それぞれに対応する領域を切出すことができるマルチクロップスキャン機能がある。加えて、マルチクロップスキャン機能で得られた複数の画像をそれぞれ用紙に印刷するマルチクロップコピー機能がある。さらに、これらの機能を組み合わせた技術として特許文献１には、原稿台上に複数の原稿が置かれたときに、マルチクロップスキャン機能により切出されたそれぞれの画像の傾きを揃える技術が記載されている。
【０００５】
このような技術を実現するために、原稿台全面を読取った画像を記憶できるメモリ（フレームメモリ）を備え、メモリに記憶された画像にクロップ処理を行うことが考えられるが、コスト等の理由により装置が十分な容量のメモリを備えない場合がある。
【０００６】
このようなＭＦＰにおいてもクロップ処理を実現するために、２回の読取動作を行うことが一般的となっている。具体的には、まずプレスキャンと呼ばれる低解像度での読取を行って画像を取得して、取得された画像を解析して切出す領域を検出する。そのあと、検出された領域に対して高解像度の読取を行うことで、切出された画像を得ることができる。さらに特許文献２は、切出す領域を検出する際の処理速度を向上させるための技術が記載されている。具体的には、まずプレスキャンで得られた画像を更に低解像度にした画像を解析して切出す領域を検出する。さらに、プレスキャンで得られた画像の解像度に基づき、検出された領域の境界の位置を調整している。
【特許文献１】特開２００２−１００５９号公報
【特許文献２】特開２００４−９６４８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記の２回の読取を行うことでクロップ処理を行う技術では、様々な問題があった。
【０００８】
例えば２回の読取動作を行うために、画像を得るまでに時間を要するという問題がある。また１回目と２回目のスキャンの間に振動などの影響により、原稿台の原稿が動いてずれてしまう可能性があり、その場合、ずれた位置を切出してしまう。さらには、走査機構の精度によって１回目と２回目の走査位置がずれるため、ずれた位置を切出してしまうという問題があった。
【０００９】
また読取装置の中には原稿台に載置された原稿を読取るだけでなく、複数枚の原稿を連続して自動で供給することのできるオートドキュメントフィーダ（以下「ＡＤＦ」という）を使用して原稿を読取るものもある。このＡＤＦを用いて比較的小さな原稿を読取る場合でも、クロップ処理が必要となる。しかし２回の読取動作によるクロップ処理では同じ原稿を２回続けて読取る必要があるにも関わらず、ＡＤＦでは同じ原稿を自動的に続けて読取ることができない装置が多い。このため、ＡＤＦを用いて複数の原稿を連続して読取る場合、クロップ処理が行えないという課題があった。
【００１０】
したがって、本来１回の読取動作でクロップ処理が行えるのが望ましいにも関わらず、メモリの容量不足が課題となっていた。
【００１１】
よって本発明は、フレームメモリを持たない装置においても、１回の読取動作でクロップ処理を行うことが可能な画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は以上の問題を鑑みて発明されたものであり、画像を記憶するためのメモリと、読取装置が原稿を読取って得られた画像をバンド画像単位で入力する入力手段と、前記入力手段により入力された前記バンド画像を解析して、前記バンド画像のうち前記原稿に対応する領域を検出する検出手段と、前記バンド画像のうち前記検出手段により検出された領域を含む部分画像を前記メモリに記憶させる記憶制御手段と、前記メモリに記憶された部分画像から前記原稿に対応する画像を切出す切出手段と、を有することを特徴とする画像処理装置である。
【発明の効果】
【００１３】
本発明により、１回の読取動作によるクロップ処理を行う際に必要なメモリ容量を抑えることができる画像処理装置を提供することができる。
【発明を実施するための最良の形態】
【００１４】
（実施例）
以下、本発明実施の形態を説明する。
【００１５】
図１は、本発明の実施の形態に係るＭＦＰ１の概観斜視図である。なお、このＭＦＰ１は、ホストコンピュータ（ＰＣ）からデータを受信して印刷する通常のＰＣプリンタとしての機能、スキャナとしての機能を有している。またＭＦＰ単体で動作する機能として、スキャナで読取った画像をプリンタで印刷するコピー機能を有している。さらにはメモリカードなどの記憶媒体に記憶されている画像データを直接読取って印刷する機能や、デジタルカメラからの画像データを受信して印刷する機能を備えている。
【００１６】
図１のように、ＭＦＰ１はフラットベッドスキャナなどの読取装置３４、インクジェット方式や電子写真方式などによる印刷装置３３、およびＬＣＤ等の表示パネル３９や各種キースイッチ等を備える操作部３５により構成されている。コピー動作時は、原稿台に置いた原稿を読取って得られた画像データをＭＦＰ内部でデータ処理し、印刷装置３３で印刷する。
【００１７】
読取装置３４はＣＣＤ、密着型イメージセンサ（ＣＩＳ）等のセンサを備えており、原稿画像を読取ると、赤（Ｒ）、緑（Ｇ）および青（Ｂ）色のアナログ輝度データを出力する。なお、後述のＡＤＦ３１を備えれば、連続で原稿を読取る事ができ、更に簡便である。またＭＦＰ１は不図示の駆動部を備え、給排紙ローラを駆動するためのステッピングモータ、モータの駆動力を伝達するギヤなどから構成され、上述した印刷装置３３や読取装置３４を使用する際に動作する。
【００１８】
操作部３５が有するキースイッチとしては、記憶媒体に記憶された画像データを選択し、記録をスタートするためにフォトダイレクトプリントスタートキー、オーダーシートをプリントさせるキー、原稿を読取らすキーがある。加えて、モノクロコピー時やカラーコピー時におけるコピースタートキー、コピー解像度や画質などのモードを指定するモードキー、コピー動作などを停止するためのストップキー、並びに、コピー数を入力するテンキーや登録キーなどがある。また、ＭＦＰ１の背面にはＰＣと通信するためのＵＳＢポート（不図示）が設けられ、ＰＣとの通信が行われる。
【００１９】
ＭＦＰ１は上記の構成に加え、各種メモリカードが挿入されるカードスロット４２やデジタルカメラが接続されるカメラポート４３を有する。さらに、自動で原稿を原稿台にセットするためのオートドキュメントフィーダ（以下ＡＤＦ）３１を有する。更にＭＦＰは、不図示の画像処理装置が制御部として備えられており、操作部３５が操作されるとユーザによる指示が制御部に入力され、入力した指示に基づく制御部の制御により各種の装置が動作する。またＰＣ、メモリカード、デジタルカメラとのデータ通信も制御部による制御に基づき行われる。
【００２０】
図２には制御部の構成を示すブロック図である。
【００２１】
指示入力部１５は、操作部３５で行われた操作に応じた信号が入力される。
【００２２】
ＣＰＵ１１は、指示入力部１５への入力に従い、ＲＯＭ１６に記憶されたプログラムを実行することで、制御部が備える各機能を制御する。
【００２３】
ＲＯＭ１６にはオペレーティングシステムも格納されており、これによりプログラムの実行単位であるタスクを複数生成することができる。ＣＰＵ１１はそれぞれのプログラムを時分割して実行することができるため、複数のプログラムをあたかも同時に処理するように実行できる。また、オペレーティングシステムは、メッセージやイベントなどの手段を提供してタスク間の同期を行うことができ、これによりＣＰＵ１１を効率的に使用できるようになっている。
【００２４】
画像処理部１２においては、後述する画像解析、変換特性の算出、輝度信号（ＲＧＢ）から濃度信号（ＣＭＹＫ）への変換、スケーリング、ガンマ変換、誤差拡散等画像処理が行われ、それによって得られるデータは、ＲＡＭ１７に格納される。このようにＲＡＭ１７に格納されたデータが記録するのに必要な所定量に達すると、図１の印刷装置３３により記録動作が実行される。また不揮発性ＲＡＭ１８は、バッテリバックアップされたＳＲＡＭなどで、画像処理装置に固有のデータなどを記憶する。
【００２５】
印刷制御部１３は印刷装置３３を制御し、ＣＰＵ１１の制御により、ＲＡＭ１７に格納されている記録データを読み出して印刷装置３３に出力して印刷を行わせる。また読取制御部１４は読取装置３４を制御し、センサを駆動させて画像を読取り、読取装置３４から入力した画像データをＲＡＭ１７に格納する。
【００２６】
カードインターフェイス２２は、カードスロット４２に挿入されたメモリカードに記録された画像データを、指示入力部１５へ入力されたユーザの指示に従い読み込み、ＲＡＭ１７に格納する。また指示入力部１５への入力に従って、画像データをメモリカードに書き込む。なお、カードインターフェイス２２を介して読み込まれた画像データの色空間は、必要ならば、画像処理部１２により、デジタルカメラの色空間（例えばＹＣｂＣｒ）から標準的なＲＧＢ色空間（例えばＮＴＳＣ−ＲＧＢやｓＲＧＢ）に変換される。カメラインターフェイス２３は、デジタルカメラが備えるメモリカードなどに記録された画像データを、指示入力部１５への入力に従いカメラポート４３を介して読み込み、ＲＡＭ１７に格納する。ＰＣインターフェイス２４はＵＳＢポートを介してＰＣから入力された画像をＲＡＭ１７に格納する。これらのインターフェイスで読み込まれた画像データは、有効な画素数への解像度変換など、アプリケーションに必要な様々な処理が必要に応じて施される。
【００２７】
表示制御部１９は例えばＬＣＤドライバ等であり、ＣＰＵ１１の制御に基づき画像を表示パネル３９に表示させる。またメモリカードに記録されていた画像データのサムネイルを表示する。センサ部２０は、記録紙幅センサ、記録紙有無センサ、原稿幅センサ、原稿有無センサおよび記録媒体検知センサなど各種のセンサの入力をＣＰＵ１１に通知する。ＣＰＵ１１は、これらの情報に基づき、原稿および記録紙の状態を検知する。
【００２８】
ＪＰＥＧエンコーダ２５はＣＰＵ１１の指示に基づき、ＲＡＭ１７に格納されているビットマップ形式のデータを圧縮符号化であるＪＰＥＧ形式に変換した後、ＲＡＭ１７に格納する。ＪＰＥＧデコーダ２６はＣＰＵ１１の指示に基づき、ＲＡＭ１７に格納されているＪＰＥＧデータをビットマップ形式のデータに変換した後、ＲＡＭ１７に格納する。
【００２９】
図３は本実施例における制御プログラムの構成図である。
【００３０】
この図のスキャンタスク８０１、解析タスク８０２、プリントタスク８０３の３つのタスクがそれぞれ、オペレーティングシステムの提供する手段によって同期を取りながら動作する。
【００３１】
スキャンタスク８０１は入力画像処理とエンコード処理を実施し、またクロップ位置情報を参照してＪＰＥＧバンド画像を作成するプログラムである。解析タスク８０２はスキャンタスクによって読み込まれた画像を変倍し画像の解析を行ってクロップ位置情報を作成するプログラムである。プリントタスク８０３はＪＰＥＧバンド画像とクロップ位置情報を参照して、ＪＰＥＧ画像データを作成するプログラムである。またプリントタスク８０３には回転、切出し、連結、エンコード、デコードの各処理が含まれる。これらスキャンタスク８０１、解析タスク８０２、プリントタスク８０３の各動作の詳細は後述する。
【００３２】
なお本発明の実施の形態はこれに限定されるものではなく、他の様々な実行単位に分割したり、別の手段を用いて同期をとったりしてもよい。また制御の一部または全てをハードウェアで構成してもよい。
【００３３】
次に、読取装置がフラットベッドスキャナの場合のマルチクロップについて説明する。
【００３４】
図４は、本実施例のフラットベッドスキャナによる読取動作を示す図であり、図４（ａ）は、実施例１でユーザが原稿台に原稿をセットした様子をあらわしている。ここで、原稿台の上には原稿６０１、６０２、６０３が重ならないように隙間をあけて置かれている。原稿の大きさはそれぞれ異なっていても良い。また原稿は原稿台に対して傾いていてもよい。ユーザは原稿台の上に原稿を置いた後、表示パネル３９の表示に従って操作部３５を操作すると読取動作を開始する。すると読取られた画像全てが一度に制御部に入力されるのではなく、バンド毎に入力される。
【００３５】
図４（ｂ）は原稿台全面を読取った画像をバンド毎に分割した様子を示している。詳細は図８のＳＴＥＰ１０１で後述する。
【００３６】
この図においては、１バンドに１６ラインが含まれており、実際には各バンドの短辺は長辺よりも十分に短いが、説明のため実際よりもバンドの短辺を大きく表現している。またＲＡＭ１７にはバンド画像単位で記憶されるため、１バンドに含まれるライン数はＲＡＭのサイズや画像処理部１２の一度に処理できるデータ量によって決まり、実際には８ラインないし３２ライン程度が適当と考えられる。この場合、６００ｄｐｉの解像度で読み込みすると、１バンドの幅はおよそ０．３４ミリメートルないし１．３５ミリメートルとなる。これは原稿台に置かれる通常の原稿の大きさと比較すれば十分に小さいので、原稿のデータは複数のバンドに分割される。
【００３７】
図４（ｃ）は後述の図３のスキャンタスク８０１で扱うバンド単位の画像データを表した模式図である。なお、このバンド単位の画像データをここではバンド画像という。
【００３８】
バンド画像６１０ないし６１３は、後述の図８のＳＴＥＰ１０１において読取制御部１４に入力され、ＲＡＭ１７に記憶される画像データである。なお本実施例のＲＡＭ１７はフレームメモリではないので、原稿台全面を読取った画像を構成する全てのバンドを記憶することはできない。したがってＲＡＭ１７の所定のメモリ領域が埋まった場合、バンド画像は上書きされて記憶されることになる。また図の各画素に付された座標は、解析タスク８０２で検出された各点の座標であり、図における左上の画素の座標を（０、０）としたときの座標である。この座標がクロップ位置情報となる。
【００３９】
図５はエンコード対象領域を示す図である。
【００４０】
図５（ａ）は解析タスク８０２の検出結果を示す表であり、図４（ｃ）に示した座標に対応して、各バンド内に含まれる画像の位置を示すクロップ位置情報が記載されている。例えばバンド番号０には４つの点で囲まれる１つの閉領域が存在し、バンド番号１には４つの点で囲まれる２つの閉領域が存在することを表している。またバンド番号３には４つの点で囲まれる１つの閉領域と、５つの点で囲まれる一つの閉領域が含まれることを表している。さらにバンド番号４には３つの点で囲まれる一つの閉領域が含まれることを表している。加えて、このような閉領域にそれぞれに対応したＩＤが付されている。
【００４１】
図５（ｂ）は各バンドのＪＰＥＧエンコード対象領域を示す表である。表の各行は各バンドでのエンコード対象となる領域のＸ座標と、その領域の幅であり、これらの領域は図５（ａ）で示した各バンドの閉領域を含むように設定される。
【００４２】
ただし、このようなエンコード対象領域は各種の制限の下に設定されており、結果として対象領域とクロップ位置情報の示す領域は一致しないことがある。例えば本実施例において、画像はＪＰＥＧ形式にエンコードされるため、ＪＰＥＧのエンコード単位であるＭｉｎｉｍｕｍ  Ｃｏｄｅｄ  Ｕｎｉｔ（以下ＭＣＵという）の倍数になるようにエンコード対象領域が選択される。なおＪＰＥＧのＭＣＵとしては幅８ピクセル高さ８ピクセルが代表的である。
【００４３】
またＪＰＥＧエンコーダによっては、読取制御部１４が入力した画像データが格納されているＲＡＭ１７のアドレスに制限がある場合がある。例えば入力する画像データは３２バイトの倍数アドレスから始まっていなければならない、といった制約がある場合、この制約を満たすようにＪＰＥＧエンコード領域を選択する。この場合、入力する画像データがＲＧＢ各８ビットの形式である場合、１ピクセルあたり３バイトの情報量が必要なので、３と３２の最小公倍数である９６バイトの倍数で一つのラインが構成されることが望ましい。従って、ＪＰＥＧエンコードの開始位置のＸ座標と、エンコード対象のＸ座標方向の幅は３２ピクセルの倍数で構成されるとその後の処理が簡単になる。
【００４４】
また後述するように、読取ノイズやエッジ検出処理、その他の理由によって、各バンドのクロップ位置情報に含まれる閉領域を連結した場合に、四辺形にならない場合がある。この場合、四辺形になるように画像領域を調整するが、ＪＰＥＧエンコード領域を大きめに取っておくことで、調整の範囲をあらかじめ確保しておくこともできる。
【００４５】
本実施例ではＪＰＥＧエンコードの開始位置のＸ座標と、エンコード対象領域のＸ座標方向の幅が３２ピクセルの倍数となる。なお、ここでは上述の理由により、領域が若干大きめになるよう求める。この領域は、各バンドで検出された図５（ａ）の各点の座標のＸ座標から次の計算で求めることができる。
（ＪＰＥＧエンコード領域の開始Ｘ座標）＝Ｍａｘ（［バンド内で検出された各点のうち最小のＸ座標／３２］×３２−３２、０）・・・・・・式（１）
（ＪＰＥＧエンコード領域の終了Ｘ座標）＝Ｍｉｎ（［（（バンド内で検出された各点の最大のＸ座標＋３１）／３２）］×３２＋３１、１ラインのピクセル数−１）・・・・・・式（２）
なお［］はガウス記号であり、囲まれた値を超えない最大の整数をあらわす。この式（１）で求められたＸ座標から式（２）で求められたＸ座標までがＪＰＥＧエンコーダの対象領域となる。なお、本実施例では符号化形式としてＪＰＥＧを例に挙げるが、ＪＰＥＧ以外の符号化形式を採用しても構わない。
【００４６】
図６はＪＰＥＧエンコード対象領域の一例を示す図であり、図４に示した画像に対してクロップ処理を行うと、このように各バンド画像のうち原稿台に置かれた原稿を含む画像をエンコードの対象とすることができる。なおここでは、バンド画像のうち、このエンコードされる画像を部分画像と呼ぶ。
【００４７】
また図７は原稿ごとに設定されたＪＰＥＧエンコード対象領域の一例を示す図である。このように１つのバンド内においても原稿に対応した領域ごとにＪＰＥＧエンコードを行うように設定すれば、ＪＰＥＧエンコードした結果を記憶するのに必要なメモリ容量をより削減することができる。
【００４８】
図８は、スキャンタスクの動作を説明するためのフローチャートである。
【００４９】
スキャンタスク８０１は、ＭＦＰに必要な画像処理のうち、スキャナ部が読取った画像データに対する画像処理を実行する。
【００５０】
ＳＴＥＰ１０１では、読取制御部１４に入力された１６ライン分の画像データ、つまりはバンド画像を取得すると、一時的に記憶させるためのバッファメモリ領域としてＲＡＭ１７に記憶して、ＳＴＥＰ１０２に進む。
【００５１】
ＳＴＥＰ１０２では、ＳＴＥＰ１０１でバンド画像を取得したことを示すメッセージを解析タスクに送信して、ＳＴＥＰ１０３に進む。
【００５２】
ＳＴＥＰ１０３では、ＳＴＥＰ１０１で取得した画像データの入力画像処理を行う。入力画像処理には、ガンマ変換、スキャナのデバイス色空間から標準色空間へのルックアップテーブルの適用、下地除去処理、などがある。これらの画像処理は画像処理部１２で行われる。
【００５３】
なおＳＴＥＰ１０２において、ＳＴＥＰ１０１でバンド画像を解析タスクに送信する代わりに、ＳＴＥＰ１０３で画像処理されたバンド画像を送信してもよい。しかし、ガンマ変換や下地除去処理を行った後の画像に対しては、図９のＳＴＥＰ２０２で後述する解析タスクでのクロップ位置検出処理が難しくなる。そのため、解析タスクに送信する画像はＳＴＥＰ１０３で画像処理をしたバンド画像ではなく、ＳＴＥＰ１０１で取得したバンド画像であることが望ましい。
【００５４】
次にＳＴＥＰ１０４では、解析タスクからＪＰＥＧエンコード対象領域を示すメッセージを受信する。メッセージを受信したら、ＳＴＥＰ１０５に進む。
【００５５】
ＳＴＥＰ１０５では、ＳＴＥＰ１０４で受信したメッセージに従って、ＳＴＥＰ１０３で画像処理を行ったバンド画像のＪＰＥＧエンコーダ対象領域を、ＪＰＥＧエンコーダ２５でエンコードしてＪＰＥＧバンド画像を生成する。さらに生成したＪＰＥＧバンド画像をＲＡＭ１７に記憶させる記憶制御を行う。
【００５６】
なお、図８の説明では、ＳＴＥＰ１０１での画像と、ＳＴＥＰ１０５での画像は、共にＲＡＭ１７に記憶されるが、それぞれ別のメモリに記憶するものであってもよい。例えばＳＴＥＰ１０１では画像を一時的に記憶する領域であるバッファメモリ領域に記憶させれば良く、その記憶先は問わない。
【００５７】
図５（ｂ）によればバンド０に対応するエンコード開始位置は４４８、終了位置は２０７９であるので、Ｘ座標が４４８から２０７９の１６３２ピクセル幅の領域をＪＰＥＧエンコーダ２５でエンコードする。なお、エンコードされない部分に関してはＲＡＭ１７から削除される。またバンド画像内にＪＰＥＧエンコード対象領域がない、つまりは原稿に対応する画像を含まない場合はエンコードを行わない。このようにＪＰＥＧバンド画像を生成したら、ＳＴＥＰ１０６に進む。
【００５８】
ＳＴＥＰ１０６では、原稿台全面をスキャンしたかどうかを判定する。
【００５９】
もし原稿台全面をスキャンし終えていたら、スキャン終了である。スキャンの終了処理には、スキャナヘッドをホームポジションに戻すなど、機構上必要な処理が含まれる。ＳＴＥＰ１０６で、もし原稿台全面をスキャンし終えていないと判断されたなら、ＳＴＥＰ１０１に戻り、次のバンドをスキャンする。
【００６０】
以上のＳＴＥＰ１０１からＳＴＥＰ１０６がスキャンタスク８０１により繰り返し処理されることによって、バンド毎に順次読取りが行われ、ＪＰＥＧバンド画像がＲＡＭ１７に順次記憶される。したがってこの処理により、原稿台に置かれた原稿の部分を含むＪＰＥＧバンド画像を生成することができる。
【００６１】
このように原稿に対応する画像を含まないバンドや、バンド内の原稿を含まない部分に関してはエンコードしないことで、原稿台全面を読取ったバンド全てをエンコードする場合と比較して必要なＲＡＭ使用量が少なくなるという効果がある。またＪＰＥＧで圧縮することによって、ＲＧＢのデータをそのままＲＡＭに格納する場合と比較して、必要なＲＡＭ使用量が少なくなるといった効果がある。
【００６２】
なお、このフローチャートではＳＴＥＰ１０３でガンマ変換をかけた後にＳ１０５でＪＰＥＧエンコードを行っている。これはＪＰＥＧエンコードを行った後にガンマ変換をかけると、階調性が失われてしまうからである。というのも読取制御部１４で入力した画像は１画素のＲＧＢ各色あたり８ビット（２５６階調）より多い階調を持っているが、ＪＰＥＧではフォーマットの仕様上、ＹＣｂＣｒの各色２５６階調より多い階調は失われてしまう。よってＪＰＥＧエンコードを行うことでＹＣｂＣｒ２５６階調にしてしまい、２５６階調にした後でガンマ変換をかけると、それと見てわかるほど階調性が失われてしまうことがある。
【００６３】
したがってエンコードするデータをＳＴＥＰ１０３で画像処理を施した後のデータとすることで、ＪＰＥＧ化による階調性の劣化を抑えることができる。
【００６４】
図９は、解析タスクの動作を説明するためのフローチャートである。
【００６５】
ＳＴＥＰ２０１で、スキャンタスクがＳＴＥＰ１０２で送信したメッセージを受信する。このように解析タスクは、スキャンタスクがＳＴＥＰ１０２で送信したメッセージを受信してから次のステップに進むことで、スキャンタスクの処理の進み具合に同期して解析タスクの処理を進めることができる。
【００６６】
つまり解析タスクは、メッセージが受信できるまで待ちつづけ、メッセージを受信したらＳＴＥＰ２０２に進む。
【００６７】
ＳＴＥＰ２０２では、スキャンタスクがＳＴＥＰ１０１でＲＡＭ１７に保存した画像データから、クロップ位置情報を生成する。まず解析タスクは、スキャンタスクがＳＴＥＰ１０１でＲＡＭ１７に保存した画像データの解像度を変換し、第二解像度の画像を作成してＲＡＭ１７に保存する。スキャンタスクが作成する画像解像度は６００ｄｐｉ程度であるので、これを１５０ｄｐｉ程度に小さくすることにより、ＣＰＵ１１が処理する画素数を少なくできる。第二の解像度を小さくすることで、解析結果の精度が低下するといった問題はあるものの、結果として解析タスクが画像解析に要する時間を短縮することができる。
【００６８】
またこの第二の解像度によって解析タスクが画像解析に要する時間を調整することができる。読取装置の動作が速いモードではより小さな解像度（例えば１００ｄｐｉ）に、読取装置の遅いモードではより大きな解像度（例えば３００ｄｐｉ）に指定することで、読取装置に合わせた処理速度に調整することができる。
【００６９】
このように解像度が変換され縮小された画像に対してエッジ検出処理を行ったあと２値化し、ラベリング処理を実行することでバンド画像のうち、原稿に対応する領域を検出する。なおエッジ検出処理には、ソーベルフィルタなど既知の様々なフィルタが利用可能である。さらにラベリング処理に加えて、濃度判定を行うことにより、原稿台の圧板の色が白であることを利用して、原稿領域と原稿領域外（すなわち圧板）を判別してクロップ位置情報を得ることができる。
【００７０】
またＳＴＥＰ２０２では前述した式（１）、式（２）を用いてクロップ位置情報からＪＰＥＧエンコード対象領域を求める。このようにクロップ位置情報を生成したら、ＳＴＥＰ２０３に進む。
【００７１】
ＳＴＥＰ２０３では、スキャンタスクへＪＰＥＧエンコード対象領域を示す情報を含むメッセージを送信する。メッセージを送信したら、ＳＴＥＰ２０４へ進む。
【００７２】
ＳＴＥＰ２０４では、画像が完成したかを判定する。この画像が完成したか否かの判定は、クロップ位置情報が示す座標のうちバンドの下端に届いていない座標があれば、連結した閉領域の終わりと判断できる。例えば図４（ｃ）に示す第３バンドの画像領域では、最も大きなＹ座標値が１３であることから一つの画像が完成したとみなすことができる。また最も大きなＹ座標値が１５である場合でも、次のバンドの判定時に連結する画像領域が存在しない場合にも一つの連結した閉領域の終わりと判断できる。このようにバンド画像の中に原稿画像の端点（原稿の角）が含まれ、その端点が原稿の下端である場合に原稿が完成したと判断することができる。
【００７３】
画像が完成したと判断されれば、ＳＴＥＰ２０５へ進む。また画像が完成したと判断されなければＳＴＥＰ２０１へ戻り、スキャンタスクが次のバンドを読取ってメッセージを送信するのを待つ。
【００７４】
ＳＴＥＰ２０５では、クロップ位置情報を含むメッセージをプリントタスクへ送信して、ＪＰＥＧバンド画像とクロップ位置情報とに基づいて印刷することを指示する。メッセージを送信したらＳＴＥＰ２０１に戻る。
【００７５】
図１０は、プリントタスクの動作を説明するためのフローチャートである。
【００７６】
ＳＴＥＰ３０１では、解析タスクがＳＴＥＰ２０５で送信したメッセージを受信する。このメッセージを受信したということは、ＲＡＭ１７に原稿に対応する画像のＪＰＥＧバンド画像が記憶されており、この情報をもとに原稿に対応する画像を切出すことが可能であるということである。
【００７７】
またＳＴＥＰ３０１では、隣接するＪＰＥＧバンド画像に含まれる原稿に対応する画像の一部を一つの領域として連結する。連結する際には解析タスクから受信したクロップ位置情報に基づき連結する領域を検出する。例えば、図５（ａ）において、ＩＤ＝０の行にあるバンド番号０の線分（５０５，１５），（２０２１，１５）と、ＩＤ＝１の行にあるバンド番号１の線分（２０２１，０）、（５０５，０）は１５１７ピクセルにわたって接していることがわかる。したがってＩＤ＝０とＩＤ＝１の領域を一つのまとまった領域と判断することができる。同様に、ＩＤ＝０とＩＤ＝１とＩＤ＝２とＩＤ＝３が一つの連結した領域と判断できる。同様にＩＤ＝２とＩＤ＝４とＩＤ＝６とＩＤ＝７が一つの連結した領域と判断できる。
【００７８】
さらに連結した領域が、長方形となるように、座標の調整をおこなってもよい。連結した領域は、そのままでは連結した多角形であり、長方形とは限らないため、その後の印刷や表示などの処理に不向きである。画像領域情報の座標力最小二乗法などを用いて、一つの直線を近似する方法が考えられる。このように、メッセージを受信して複数の領域を連結するとＳＴＥＰ３０２に進む。
【００７９】
ＳＴＥＰ３０２では、ＳＴＥＰ３０１で連結された領域を含む各バンドのＪＰＥＧバンド画像をデコードし、ＲＧＢ値を持つビットマップデータに変換してＲＡＭ１７に記憶する。なおこのとき、後述のＳＴＥＰ３０４でエンコードに必要な画素を計算して、必要なＭＣＵ分だけデコードするようにすると、ＲＡＭ１７のメモリ使用量が少なくてすむ。
【００８０】
ＳＴＥＰ３０３では、ＳＴＥＰ３０２でデコードされたＲＧＢデータから、ＳＴＥＰ３０１で連結された長方形領域に対応する部分を切出して回転する。回転時の補間方法としては、最近傍法や線形補間法などを使うことができる。
【００８１】
ＳＴＥＰ３０４では、ＳＴＥＰ３０３で回転された画像をＪＰＥＧ形式にエンコードし、連結した長方形領域に対応するＪＰＥＧ画像データを生成する。次にＳＴＥＰ３０５へ進み、ＳＴＥＰ３０４で生成したＪＰＥＧ画像データを印刷する。印刷が終了したら、処理を終了する。
【００８２】
なお印刷対象となるＪＰＥＧ画像データは原稿一枚分に相当するＪＰＥＧ画像データであるため、印刷の処理は、いわゆるカードダイレクトやカメラダイレクト機能で一般に実施されているものと同じである。
【００８３】
以上、図１０に示した処理により、ＲＡＭ１７に記憶された複数のＪＰＥＧバンド画像から、原稿に相当するＪＰＥＧ画像データを切出して印刷することができる。なお、解析タスクにおいて原稿に対応する画像が完成したと判断され（図９のＳＴＥＰ２０４でＹＥＳ）、解析タスクからプリントタスクにメッセージが送信されると再び図１０で示した処理が行われる。
【００８４】
以上の実施例によれば、原稿台全面を読取った画像をバンド画像毎に記憶して、そのバンド画像内で原稿領域を検出する。また複数バンドを記憶した結果、記憶した複数バンドが原稿画像を含む場合、原稿画像を切出す。
【００８５】
これにより、原稿領域を含まないバンド画像、またはバンド画像内で原稿領域ではない領域を記憶する必要がなくなるので、１回の読取動作によるクロップ処理を、従来と比較してメモリ容量を抑えて行うことができる。したがってフレームメモリを有さない装置においても２回以上スキャンする必要がなくなるために、動作完了までの時間が短くなるといった効果がある。また２回以上スキャンすることが原因でおこる、ずれた位置を切出してしまうという問題がなくなるといった効果がある。さらに、バンド単位でスキャンと解析処理をするので、スキャンが完了しなくとも読取った画像が完成したかを判定して順次印刷を開始できる。そのため、動作完了までの時間が短くなるといった効果がある。
【００８６】
加えて、以上の実施例に拠れば、中間のデータをＪＰＥＧバンドとして保存するので、原稿台全面を覆うような原稿を入力した場合においても、メモリ削減効果が得られるといった効果がある。
【００８７】
また、以上の実施例では本発明のクロップ処理で得られたＪＰＥＧ画像データを印刷用途に使用する場合を説明したが、本発明の適用はこれに限られるものではない。例えば、カードインターフェイス２２を介してメモリカードにＪＰＥＧ画像データを保存したり、ＰＣインターフェイス２４を介してＰＣへ転送したりすることにも利用可能である。
【００８８】
以上の実施例では複数の原稿が原稿台に置かれた場合のマルチクロップを例に説明したが、本発明はこれに限るものではなく、原稿が１枚であるときのクロップ処理でもよい。さらに原稿が原稿台に載置されて読取られる場合だけでなく、ＡＤＦにより読取られて得られた画像にクロック処理を行う場合であってもよい。
【００８９】
通常ではＡＤＦには積み重ねられた原稿を一枚ずつ紙送りしながら読取るため、ある時点で読取られている原稿は一枚だけである。またＡＤＦでは、一度紙の端まで読取りした原稿は読取りローラから外れてしまうため、もう一度原稿の最初から戻って２度目のスキャンができない構造となっている。したがって、ＡＤＦを使用して原稿を連続して読取る場合、２回の読取動作が必要なクロップ処理は行えないため、ＡＤＦはあるがフレームメモリを有さない装置において本発明は特に有効である。
【００９０】
他にも、本発明によりＡＤＦにより読取られた画像の傾き補正を行うことができる。つまり、ＡＤＦには原稿が傾かないように原稿給紙ガイドが設けられているが、ユーザが原稿給紙ガイドを正しく設定しなかったなどの原因で、まっすぐに原稿が給紙されず、傾いて読取られてしまう場合がある。このような場合に、本発明のクロップ処理を用いて読取られた画像から原稿に対応する領域を切出して、傾きを補正することができる。
【００９１】
また本発明の目的は、前述した実施形態の制御部の機能を実現するプログラムコードを記録した記録媒体をシステムあるいは装置に供給することによっても達成される。その場合、システムあるいは装置のコンピュータ（またはＣＰＵまたはＭＰＵ）がそのプログラムコードを読出して実行することによって実現できる。この場合、記録媒体から読み出されたプログラムコードが前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記録媒体、及びそのプログラムコード自体は本発明を構成することになる。
【００９２】
プログラムコードを供給するための記録媒体としては、例えば、ハードディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどがある。
【図面の簡単な説明】
【００９３】
【図１】ＭＦＰ１の概観斜視図である。
【図２】制御部の構成を示すブロック図である。
【図３】制御プログラムの構成図である。
【図４】フラットベッドスキャナによる読取動作を示す図である。
【図５】エンコード対象領域を示す図である。
【図６】ＪＰＥＧエンコード対象領域の一例を示す図である。
【図７】原稿ごとに設定されたＪＰＥＧエンコード対象領域の一例を示す図である。
【図８】スキャンタスクの動作を説明するためのフローチャートである。
【図９】解析タスクの動作を説明するためのフローチャートである。
【図１０】プリントタスクの動作を説明するためのフローチャートである。
【符号の説明】
【００９４】
１  ＭＦＰ
３１  オートドキュメントフィーダ
３３  印刷装置
３４  読取装置
３５  操作部
１１  ＣＰＵ
１２  画像処理部
１３  印刷制御部
１４  読取制御部
１５  指示入力部
１６  ＲＯＭ
１７  ＲＡＭ
１８  不揮発性ＲＡＭ
１９  表示制御部
２０  センサ部
２５  ＪＰＥＧエンコーダ
２６  ＪＰＥＧデコーダ
【図１】
2010004476.tif 000003
【図２】
2010004476.tif 000004
【図３】
2010004476.tif 000005
【図４】
2010004476.tif 000006
【図５】
2010004476.tif 000007
【図６】
2010004476.tif 000008
【図７】
2010004476.tif 000009
【図８】
2010004476.tif 000010
【図９】
2010004476.tif 000011
【図１０】
2010004476.tif 000012