(第1実施形態)
以下、本発明に係る複写装置及び濃度調整プログラムを、多機能周辺装置1に具体化した実施形態について、図面を参照しつつ詳細に説明する。図1は、本実施形態における多機能周辺装置1(「MFP(Multi Function Peripheral)若しくは(Multi Function Printer)」ともいう)の外観斜視図である。又、図2は、原稿カバー8が開かれた状態の多機能周辺装置1の外観斜視図である。
図1に示すように、多機能周辺装置1は、下部に設けられたプリンタ2と、上部に設けられたスキャナ3と、スキャナ3の正面側に設けられた操作パネル4とを一体的に備え、プリンタ機能、スキャナ機能、コピー機能及びファクシミリ機能を有する。
尚、多機能周辺装置1は、コンピュータ(図示せず)と接続されており、当該コンピュータから送信された画像データや文書データに基づいて、記録用紙20(被記録媒体)に画像や文書を記録しうる。又、多機能周辺装置1は、デジタルカメラ等の外部機器との接続により、デジタルカメラ等の外部機器から出力される画像データを記録用紙20に記録することも可能である。尚、当該多機能周辺装置1においては、メモリカード等の各種記憶媒体を装填して、その記憶媒体に記憶された画像データ等を記録用紙20に記録することも可能である。
スキャナ3は、FBS(Flatbed Scanner)として機能する原稿読取台6に対して、背面側の蝶番を支点として、原稿カバー8を開閉自在に取り付けて構成されている(図2参照)。
原稿カバー8には、自動原稿搬送機構7(ADF:Auto Document Feeder)が配設されている。又、原稿カバー8の裏側には、原稿押さえ19が設けられている。原稿押さえ19は、少なくとも片面が白色に形成された板状の部材であり、白色面が下向きに固定されている(図2参照)。
自動原稿搬送機構7は、原稿トレイ9から原稿排出トレイ10へ原稿搬送路を通じて原稿を搬送する機構である。自動原稿搬送機構7には、原稿を取り込む際に原稿の先端を検出する原稿先端センサ(図示せず)が配設されている。多機能周辺装置1においては、当該原稿先端センサにより検出された原稿の先端を基準位置として、原稿の搬送制御が行なわれる。
一方、原稿読取台6の上面は大きく開口されており、当該開口部にプラテンガラス12が嵌め込まれている。プラテンガラス12上面の一端(図2では、左側)には、原稿ガイド16が設けられている。この原稿ガイド16は、プラテンガラス12の上面に原稿を載置する際に、原稿の一辺を当接させることで、原稿を所定位置に案内する。
そして、原稿読取台6の内部には、画像読取ユニット3A(図3参照)が移動可能に配設されている。画像読取ユニット3Aは、副走査方向(X方向)に往復移動可能に設けられている。ここで、副走査方向Xと垂直な方向(Y方向)を主走査方向という。又、原稿読取台6の内部には、画像読取ユニット3Aに対する支持部材及び画像読取ユニット3Aの駆動機構等が配設されている。尚、画像読取ユニット3Aの詳細については後述する。
このように構成されたスキャナ3をFBS(Flatbed Scanner)として使用する場合は、原稿カバー8を開いてプラテンガラス12上に原稿を載置し、原稿カバー8を閉じることで当該原稿を固定する。原稿は、プラテンガラス12と原稿押さえ19との間に挟持されることで固定される。読取開始指令が入力されると、画像読取ユニット3Aは、プラテンガラス12の裏面に沿って副走査方向Xに走査され、原稿の画像が読み取られる。
ここで、原稿(例えば、ブック原稿G)の厚みが薄い場合、画像読取ユニット3Aにより読み取られた画像において、原稿外の部分が白色画像として含まれうる。
尚、原稿(例えば、ブック原稿G)の厚みが厚い場合は、画像読取ユニット3Aにより読み取られた画像において、原稿外の部分が黒色画像として含まれる。この場合については、第2実施形態において詳細に説明する。
この点、自動原稿搬送機構7を使用し、原稿(この場合、一枚毎に分離された原稿)を自動搬送させて読み取る場合は、自動原稿搬送機構7による原稿の搬送過程において、原稿が原稿読取台6上の読取面13を通過する。この時、当該読取面13の下方には、画像読取ユニット3Aが位置している。従って、原稿の搬送過程において、原稿が読取面13を通過する時点で、画像読取ユニット3Aにより、当該原稿の画像データが読み取られる。自動原稿搬送機構7による画像の読取は、原稿カバー8が原稿読取台6に対して閉じられた状態で行われる。
プリンタ2は、スキャナ3で読み取られた画像データ或いは外部入力された画像データに基づいて、選択的にインク滴を吐出することによって、記録用紙20上に画像を記録する所謂インクジェット方式の画像記録装置(インクジェット記録装置)である。上述したように、このプリンタ2は、スキャナ3の下方に配設されている。
多機能周辺装置1の正面側(即ち、プリンタ2の正面側)には、開口5が形成されている。開口5内には、給紙トレイ14及び排紙トレイ15が、完全に内包されるように設けられている。給紙トレイ14と排紙トレイ15は上下二段となるように配設されており、上段に排紙トレイ15が設けられ、その下方に給紙トレイ14が設けられている。給紙トレイ14には、記録用紙20が収納されている。従って、記録用紙20は、給紙トレイ14からプリンタ2に供給され、プリンタ2による印刷が施された後、排紙トレイ15に排出される。
図1に示すように、多機能周辺装置1の正面側には、操作パネル4が設けられている。操作パネル4は、プリンタ2やスキャナ3を操作するための操作手段であり、操作キー40と、LCD41と、を備えている。操作キー40には、十字キーやテンキーなどが設けられている。従って、使用者は、操作パネル4を用いて、所望の指令を入力することができる。所定の指令が入力されると、多機能周辺装置1では、当該入力指令に基づいて、各種動作制御が行われる。そして、LCD41は、所謂カラー液晶ディスプレイであり、プレビュー画面や各種設定画面等を表示可能である。
開口5の上側には、接続パネル70が設けられている。接続パネル70の左端側には、USB端子71が配設されている。USB端子71は、外部機器とUSB接続することにより当該外部機器と多機能周辺装置1とを通信可能に接続するコネクタ端子である。
また、接続パネル70の右端側には、スロット部72が配設されている。スロット部72は、カード型メモリを装填可能な複数のカードスロットが設けられている。従って、多機能周辺装置1においては、当該カードスロットにカード型メモリを装填すると、カード型メモリの記憶内容を読み出すことが可能である。
次に、多機能周辺装置1に係るスキャナ3の概略について説明する。図3は、スキャナ3の構成を概略的に示す説明図である。画像読取ユニット3Aは、CIS方式により原稿を読み取るものである。そして、画像読取ユニット3Aは、LED3B、導光体3C、導光体3D、撮像素子3Eを一ライン分、主走査方向Yに沿って備えており、当該画像読取ユニット3Aは、副走査方向Xに往復移動可能に配設されている。
画像読取ユニット3Aを構成するLED3Bは、光を照射する光源として機能する。又、導光体3Cは、原稿(例えば、ブック原稿G)の読取部分に光を収束させる。そして、撮像素子3Eは、受光した光の強度に応じて電圧を出力する。又、導光体3Dは、原稿から反射された反射光を撮像素子3Eに集光させる。
プラテンガラス12の上面に原稿(例えば、ブック原稿G)を載置して、操作キー40の原稿読み取りボタンが押下されると、画像読取ユニット3Aが原稿の読み取り開始位置に搬送され、原稿の読み取りが開始される。まず、LED3Bが点灯され、光が照射される。その光は、導光体3Cにより経路が変更され、照射光Sとして撮像素子3Eの上方に向かって照射される。原稿(プラテンガラス12)の表面で反射された光のうち、撮像素子3Eに向かって反射する反射光Rは、導光体3Dにより集光され、撮像素子3Eにより受光される。撮像素子3Eは、CMOSセンサなどにより構成され、受光した光の強度に応じて電圧値を出力し、その電圧値は、ASIC3Fに入力される。撮像素子3Eは、複数の素子が直線上(主走査方向Y)に配設されたものであり、一の素子が画像データの一ラインの一の画素を形成する。原稿の一ライン分が読み取られると、画像読取ユニット3Aは、次の一ラインを読み取るために副走査方向Xに所定量搬送され、次の一ライン分の読み取りが行われる。この一ライン分の読み取りと所定量の搬送とが繰り返され、原稿の全域の読み取りが行われる。尚、搬送される所定量は、読み取りに際して設定される解像度等によって適宜設定される。
ASIC3Fは、各撮像素子3Eから入力された電圧値を画像データとして出力させるために設計された集積回路である。具体的には、ASIC3Fは、各撮像素子3Eより入力された電圧値をそれぞれ16ビットの数値データに変換し、各種のデータ補正を行った後、画像データとして出力する。ここで、撮像素子3Eの一の素子に対応する色データ(R値、G値、B値)は、16ビットの数値で形成される。そして、ASIC3Fから出力された画像データは、バスライン25を介して、RAM23(図4参照)の画像メモリ23Aに書き込まれ、画像データとして記憶される。
次に、本実施形態に係る多機能周辺装置1の制御系構成について説明する。図4は、多機能周辺装置1の電気的構成を示したブロック図である。図4に示すように、多機能周辺装置1は、CPU21、ROM22、RAM23、EEPROM24を備えている。そして、CPU21、ROM22、RAM23、EEPROM24は、バスライン25を介して、プリンタ2、スキャナ3、NCU31(ネットワーク・コントロール・ユニット)、モデム32、操作キー40、LCD41、USB端子71、スロット部72、アンプ73、スピーカ74と相互に接続されている。即ち、当該多機能周辺装置1は、CPU21、ROM22、RAM23により、各種機能(即ち、プリンタ機能、スキャナ機能、コピー機能及びファクシミリ機能)を実現すべく制御される。つまり、CPU21は、ROM22、RAM23、EEPROM24に記憶されるデータテーブルやプログラム、NCU31を介して送受信される各種信号に従って、バスライン25により接続された各部を制御する。
ROM22は、各種制御プログラムやデータテーブルが記憶された書換不能なメモリである。具体的には、ROM22は、制御プログラムの1つとして、後述するブックコピー処理プログラム等を格納している。ここで、本実施形態におけるブックコピー処理プログラムは、複数枚のページ原稿を綴じ部により綴じこんで構成されるブック原稿G(図5参照)から、各ページ単位で画像データ(即ち、後述する第1ページ画像データ50、第2ページ画像データ60)を読み取り、これを記録用紙20に集約出力する際に実行されるプログラムである。
RAM23は、各種データを記憶するための書換可能なメモリである。このRAM23には、画像メモリ23A、設定データ記憶領域23B等の各種のメモリが設けられている。画像メモリ23Aは、スキャナ3により読み取られた原稿の画像データ等を記憶するメモリである。この画像メモリ23Aは、スキャナ3により一の読取動作で読み取られた画像データを、複数格納することができる。尚、当該画像メモリ23Aに格納する際に、スキャナ3によって読み取られた画像データには、夫々ページ番号が関連付けられる。そして、当該ページ番号は、RAM23内に格納される(S12)。設定データ記憶領域23Bは、多機能周辺装置1の今回のコピーにおける設定条件を示す各種データを記憶するメモリである。例えば、本実施形態においては、設定データ記憶領域23Bは、後述するブックコピーモードを含むモード設定や、後述する集約出力等のレイアウト設定、ブック原稿Gの見開き方向を示す見開き方向設定等の各種設定データを記憶する。
そして、EEPROM24は、記憶内容を自由に書き込むことが可能な記憶手段である。このEEPROM24は、RAM23と異なり、多機能周辺装置1に対する電源供給が遮断された場合であっても、記憶内容を保持しうる。
NCU31は、電話網(図示せず)に対するダイヤル信号の送出や、電話網からの呼出信号の応答等の動作を行う。モデム32は、NCU31を介して、画像データを変調及び復調し、相手ファクシミリ装置(図示せず)へ伝送すると共に、伝送制御用の各種手順信号を送受信する。USB端子71は、コンピュータとUSBケーブル(図示せず)を介してデータの送受信を行う既知の回路である。アンプ73は、当該アンプ73に接続されたスピーカ74を鳴動して、呼出音などを出力するための回路である。
次に、本実施形態に係る多機能周辺装置1において実行されるメイン処理プログラムについて、図面を参照しつつ詳細に説明する。図6は、メイン処理プログラムのフローチャートである。メイン処理プログラムの実行が開始されると、CPU21は、先ず、現在ブックコピーモードが設定されているか否かを判断する。具体的には、CPU21は、設定データ記憶領域23Bを参照し、ブックコピー設定データが格納されているか否かを判断する。このブックコピー設定データは、ユーザによるブックコピー設定操作に基づいて、設定データ記憶領域23Bに格納される。現在、ブックコピーモードが設定されている場合(S1:YES)、CPU21は、S2に処理を移行する。一方、ブックコピーモードが設定されていない場合(S1:NO)、CPU21は、S5に処理を移行する。例えば、ファクシミリ機能等のブックコピー以外のモードが設定されている場合、CPU21は、S5に処理を移行する。
S2に移行すると、CPU21は、設定データ記憶領域23Bを参照し、レイアウト設定「集約出力」が設定されているか否かを判断する。レイアウト設定「集約出力」とは、複数枚の原稿から読み取った画像データを、一枚の記録用紙20内にレイアウトして出力する出力態様である。ここで、ユーザによって、レイアウト設定「集約出力」に関する操作が行われると、集約出力設定データが設定データ記憶領域23Bに格納される。CPU21は、設定データ記憶領域23B内の集約出力設定データを参照することで、S2の判断を行う。レイアウト設定「集約出力」が設定されている場合(S2:YES)、CPU21は、S3に処理を移行する。レイアウト設定「集約出力」設定されていない場合(S2:NO)、CPU21は、S5に処理を移行する。即ち、ブック原稿Gの各ページ原稿から読み取った画像データを、夫々一枚の記録用紙20に出力する設定の場合は、CPU21は、S5に処理を移行する。
S3に移行すると、CPU21は、見開き方向指定処理を実行する。見開き方向指定処理(S3)では、CPU21は、ユーザにより操作キー40の操作に基づいて、見開き方向指定データを設定データ記憶領域23Bに格納する処理を実行する。この見開き方向指定データは、ブック原稿Gの見開き方向(即ち、「右開き」「左開き」)を示すデータである。ユーザによる見開き方向の指定に関する操作を受け付け、見開き方向指定データを格納した後、CPU21は、S4に処理を移行する。
S4においては、CPU21は、ブックコピー処理を実行する。このブックコピー処理(S4)では、CPU21は、後述するブックコピー処理プログラムを実行する。これにより、多機能周辺装置1は、ブック原稿Gのページ原稿をページ単位で読み取った画像データを集約出力すると共に、ブック原稿Gの画像データに基づく画像を適切な位置に調整した見やすい出力結果をユーザに提供しうる。このブックコピー処理プログラムの詳細については、後に図面を参照しつつ詳細に説明する。ブックコピー処理(S4)を終了すると、CPU21は、メイン処理プログラムを終了する。
一方、S5では、CPU21は、その他処理を実行する。その他処理(S5)では、CPU21は、ファクシミリ機能に関する処理等を実行する。又、CPU21は、このS5において、ブック原稿Gの各ページ原稿から読み取った画像データを、夫々一枚の記録用紙20に出力するコピーに関する処理も実行する。その他処理(S5)を終了すると、CPU21は、メイン処理プログラムを終了する。
続いて、メイン処理プログラムのS4で実行されるブックコピー処理プログラムについて、図面を参照しつつ詳細に説明する。図7は、ブックコピー処理プログラムのフローチャートである。
ブックコピー処理プログラムの実行を開始すると、CPU21は、先ず、ページ読取処理を実行する(S11)。このページ読取処理(S11)では、CPU21は、スキャナ3によってブック原稿Gの或るページ原稿の画像を読み取り、当該ページ原稿に係る画像データを画像メモリ23Aに格納する。ページ原稿に基づく画像データを画像メモリ23Aに格納した後、CPU21は、S12に処理を移行する。
S12に移行すると、CPU21は、ページ番号付与処理を実行する。このページ番号付与処理(S12)では、CPU21は、ページ読取処理(S11)で取得し、画像メモリ23Aに格納した画像データに、ページ番号データを関連付け、当該ページ番号データをRAM23に格納する。ページ番号データをRAM23に格納した後、CPU21は、S13に処理を移行する。
S13においては、CPU21は、ブック原稿Gを構成するページ原稿の内、ブックコピーの対象であるページ原稿の読取を完了したか否かを判断する。このS13の判断は、操作キー40におけるユーザの操作に基づいて行われる。これにより、ユーザは、ブック原稿Gを構成する複数のページ原稿の内、所望の範囲におけるページ原稿をブックコピーの対象とし得る。対象とする全ページ原稿の読取を終了している場合(S13:YES)、CPU21は、S14に処理を移行する。一方、未だ全ページ原稿の読取を完了していない場合(S13:NO)、CPU21は、S11に処理を戻す。これにより、ユーザは、残りのページ原稿からの画像データの取得等を行い得る。
ここで、S11〜S13の処理により、ページ原稿単位で画像メモリ23Aに格納された画像データについて、図面を参照しつつ詳細に説明する。図5に示すように、ブック原稿Gを見開き状態にすると、ブック原稿Gは、その綴じ部T(中央)を基準に、一方側に位置するページ原稿と他方側に位置するページ原稿との2ページから構成される。従って、ブック原稿Gは、奇数のページ番号が付されたページ原稿と、前記奇数のページ番号と連番である偶数のページ番号が付されたページ原稿とが、左右に隣り合った状態となる。尚、本実施形態においては、図5に示すようなブック原稿Gについて、図5を正面視して綴じ部Tを中心に左側に位置するページを左側のページ原稿とし、綴じ部Tを中心に右側に位置するページを右側のページ原稿とする。又、画像データの取得及びページ番号データの付与(S11〜S13)は、ブック原稿Gを構成する各ページ原稿に付されたページ番号の順番に従って実行されているものとする。
本実施形態においては、画像メモリ23Aに格納された画像データは、第1ページ画像データ50又は第2ページ画像データ60の何れかに分類される。第1ページ画像データ50は、ページ番号付与処理(S12)により、奇数のページ番号データが関連付けられた画像データであり、ブックコピーモードの設定後に読取が行われた複数のページ原稿のうち、ユーザにより奇数番目に読み取りが指示されたページ原稿の画像データに相当する。第2ページ画像データ60は、ページ番号付与処理(S12)により、偶数のページ番号データが関連付けられた画像データであり、読取が行われた複数のページ原稿のうち、ユーザにより偶数番目に読み取りが指示されたページ原稿の画像データに相当する。従って、ブック原稿Gの見開き状態において、奇数のページ番号が付されたページ原稿を読み取った画像データに対して必ずしも奇数のページ番号データが付与されるとは限らない。即ち、あくまでもユーザがページ原稿を読み取らせた順に基づいて、偶数或いは奇数のページ番号データがS12において付与される。そして、レイアウト設定「集約出力」がユーザにより設定されている場合には、第1ページ画像データ50と第2ページ画像データ60は、当該第1ページ画像データ50と第2ページ画像データ60を対にして、一枚の記録用紙20内にレイアウトされて出力される。
図8に示すように、第1ページ画像データ50は、第1ページ原稿画像領域51、第1ページ白色余白領域52、第1ページエッジ53を含んで構成される。第1ページ原稿画像領域51は、第1ページ画像データ50において、ページ原稿に基づく画像データが配置された領域である。第1ページ白色余白領域52は、第1ページ画像データ50において、ページ原稿外の部分に基づく白色画素で構成される画像データが配置された領域である。そして、第1ページエッジ53は、第1ページ画像データ50において、ページ原稿の境界部分において、当該ページ原稿の厚みによって生じる影部分に基づく画像データであり、黒色画素により構成されている。
又、第2ページ画像データ60は、第2ページ原稿画像領域61、第2ページ白色余白領域62、第2ページエッジ63を含んで構成される(図8参照)。第2ページ原稿画像領域61は、第2ページ画像データ60において、ページ原稿に基づく画像データが配置された領域である。第2ページ白色余白領域62は、第2ページ画像データ60において、ページ原稿外の部分に基づく白色画素で構成される画像データが配置された領域である。第2ページエッジ63は、第2ページ画像データ60において、ページ原稿の境界部分において、当該ページ原稿の厚みによって生じる影部分に基づく画像データであり、黒色画素により構成されている。ここで、第1ページ白色余白領域52及び第2ページ白色余白領域62は、見開き原稿のページ原稿のサイズが、スキャナ3による読取範囲のサイズよりも小さい場合に生じる。従って、ページ原稿のサイズがスキャナ3の読取範囲に対して小さいほど、第1ページ白色余白領域52、および第2ページ白色余白領域62が顕著に現れる。
図5に示すように、ブック原稿Gは、複数枚のページ原稿を綴じ部Tにより綴じこんで構成されている。従って、ユーザは、綴じ部Tの右側に位置するページ原稿についてのページ読取処理時と、綴じ部の左側に位置するページ原稿についてのページ読取処理時とでは、スキャナ3に対するブック原稿Gの向きを変更する必要がある。例えば、プラテンガラス12の短辺(画像読取ユニット3Aの主走査方向)とページ原稿の短辺を一致させて、綴じ部Tを画像読取ユニット3Aの副走査方向に一致させてプラテンガラス12上にブック原稿Gをセットしてページ読取処理を行う場合、ユーザは、綴じ部Tに対して一方側に位置するページ原稿に対するページ読取処理を実行した後、ブック原稿Gを180°回転させて、綴じ部Tに対して他方側に位置するページ原稿に対するページ読取処理を実行する必要がある。これは、ブック原稿Gをページ毎にプラテンガラス12上に配置する際に、本実施形態の多機能周辺装置1のように装置の背面側の蝶番を支点として、原稿カバー8を開閉自在に取り付けて構成されている都合上(図2参照)、ブック原稿Gの配置方向に制約を受けるためである。又、上述したように、スキャナ3は、画像読取ユニット3Aを副走査方向X方向に移動させつつ、画像データを読み取る(図3参照)。従って、第1ページ画像データ50、第2ページ画像データ60の何れか一方には、ページ原稿に係る画像が、180°回転した状態で含まれる。
又、ブックコピーの対象であるブック原稿Gが右開きであるか左開きであるかによって、第1ページ画像データ50、第2ページ画像データ60の構成態様は相違する。図8(A)に示すように、ブック原稿Gが右開きの場合、第1ページ画像データ50において、第1ページ原稿画像は、第1ページ画像データ50における下方向が第1ページ原稿画像の上方向と一致した状態(即ち、第1ページ原稿画像が180°回転した状態)で含まれることになる。一方、第2ページ画像データ60において、第2ページ原稿画像は、第2ページ画像データ60における上方向と、第2ページ原稿画像の上方向と一致した状態で含まれることになる。
一方、ブック原稿Gが左開きの場合、第1ページ画像データ50において、第1ページ原稿画像は、第1ページ画像データ50における上方向と、第1ページ原稿画像の上方向と一致した状態で含まれることになる。一方、第2ページ画像データ60において、第2ページ原稿画像は、第2ページ画像データ60における下方向が第2ページ原稿画像の上方向と一致した状態(即ち、第2ページ原稿画像が180°回転した状態)で含まれることになる。
つまり、S14移行時においては、図8に示す態様の画像データ(即ち、第1ページ画像データ50、第2ページ画像データ60)が、ページ番号付与処理(S12)により、RAM23に記憶されたページ番号データと関連付けられ、夫々、画像メモリ23Aに複数格納されている。
S14に移行すると、CPU21は、設定データ記憶領域23Bの見開き方向指定データを参照し、見開き方向「右開き」が設定されているか否かを判断する。見開き方向「右開き」が設定されている場合(S14:YES)、CPU21は、第1ページ画像回転設定処理(S15)に処理を移行する。一方、見開き方向「左開き」が設定されている場合(S14:NO)、CPU21は、第2ページ画像回転設定処理(S16)に処理を移行する。
S15に移行すると、CPU21は、第1ページ画像回転設定処理を実行する。この第1ページ画像回転設定処理(S15)においては、CPU21は、画像メモリ23Aに格納されている第1ページ画像データ50を180°回転する画像編集を行う。これにより、「右開き」のブック原稿Gに基づく第1ページ画像データ全体が180°回転されるので、第1ページ画像の向きが正常な向きに変更される。従って、「右開き」のブック原稿Gにおける第1ページ画像と第2ページ画像の向きが同じ方向となる(図18(A)参照)。第1ページ画像回転設定処理(S15)終了後、CPU21は、S17に処理を移行する。
一方、S16に移行すると、CPU21は、第2ページ画像回転設定処理を実行する。この第2ページ画像回転設定処理(S16)においては、CPU21は、画像メモリ23Aに格納されている第2ページ画像データ60を180°回転する画像編集を行う。これにより、「左開き」のブック原稿Gに基づく第2ページ画像データ60全体が180°回転されるので、第2ページ画像の向きが正常な向きに変更される。従って、「左開き」のブック原稿Gにおける第1ページ画像と第2ページ画像の向きが同じ方向となる(図17(A)参照)。第2ページ画像回転設定処理(S16)終了後、CPU21は、S17に処理を移行する。
S17においては、CPU21は、配置位置決定処理を実行する。この配置位置決定処理(S17)では、CPU21は、設定データ記憶領域23Bの見開き方向指定データを参照し、見開き方向の指定に基づいて、記録用紙20に集約出力する際の記録用紙20における第1ページ画像データ50、第2ページ画像データ60の配置を決定する。具体的には、見開き方向「左開き」が指定されている場合、CPU21は、記録用紙20上において、第1ページ画像に対して第2ページ画像を右側に配置した配置位置に調整する。即ち、第1ページ画像データ50を記録用紙20の左側に配置すると共に、第2ページ画像データ60を記録用紙20の右側に配置する(図17参照)。一方、見開き方向「右開き」が指定されている場合、CPU21は、記録用紙20上において、第1ページ画像に対して第2ページ画像を左側に配置した配置位置に調整する。即ち、第1ページ画像データ50を記録用紙20の右側に配置すると共に、第2ページ画像データ60を記録用紙20の左側に配置する(図18(B)参照)。見開き方向指定データの指定内容に基づいて、第1ページ画像データ50、第2ページ画像データ60の記録用紙20における配置を決定した後、CPU21は、S18に処理を移行する。
ここで、一般に、左開きのブック原稿Gは、綴じ部Tに対して左側のページ原稿から右側のページ原稿へと読み進めるように構成されている。一方、右開きのブック原稿Gは、綴じ部Tに対して右側のページ原稿から左側のページ原稿へと読み進めるように構成されている。そして、配置位置決定処理(S17)を実行することにより、ブック原稿Gに基づく集約出力結果は、ブック原稿Gの見開き方向に応じた配置に変更される(図17、図18参照)。従って、当該多機能周辺装置1は、ブック原稿Gの見開き方向(即ち、読み進める方向)に応じた態様で、各ページ原稿画像データを配置して集約出力しうるので、読み易い出力結果をユーザに提供しうる。
S18に移行すると、CPU21は、段差解消処理を実行する。ここで、段差解消処理について説明する。ページ原稿単位で読み取った画像データに原稿外の余白部分に相当する画像が含まれている場合、見開き2ページ分のページ原稿の画像データの内、一方のページ原稿に基づく画像データを180°回転すると、当該余白部分の位置が、見開き原稿の綴じ部Tに対して左側ページ部分と右側ページ部分で相違してしまう。この結果、見開き原稿に基づく出力結果において、右側のページ原稿と、左側のページ原稿との間に段差が生じてしまい、読みにくい出力結果を提供することになってしまう。そこで、この段差解消処理(S18)では、CPU21は、第1ページ画像データ50、第2ページ画像データ60に存在する第1ページ白色余白領域52、第2ページ白色余白領域62を特定し、ブック原稿Gに基づく出力対象から除外する。この段差解消処理(S18)については、後に図面を参照しつつ詳細に説明するので、ここでの説明は省略する。段差解消処理(S18)を終了すると、CPU21は、S19に処理を移行する。
ここで、当該段差解消処理(S18)で解消される段差Dについて説明する。上述したように、S15、S16により、第1ページ画像データ50、第2ページ画像データ60の何れか一方が180°回転される。そうすると、第1ページ画像データ50における第1ページ白色余白領域52の位置と、第2ページ画像データ60における第2ページ白色余白領域62の位置が、各ページ画像データにおける上部と下部に分かれる(図17(A)、図18(A)参照)。この結果、第1ページ画像データ50における第1ページ画像の上下方向の位置と、第2ページ画像データ60における第2ページ画像の上下方向の位置との間に「ズレ」が生じる。即ち、同様の位置に白色余白領域を有する2つのページ画像データの一方を180°回転させることによって、各ページ原稿画像の間に生じる上下方向の位置の「ズレ」を「段差D」という(図17(A)、図18(A)参照)。
そして、上記段差解消処理(S18)において、第1ページ画像データ50中の第1ページ白色余白領域52、第2ページ画像データ60中の第2ページ白色余白領域62を出力対象から除外すると、それに伴い、第1ページ画像データ50における第1ページ原稿画像領域51と、第2ページ画像データ60における第2ページ原稿画像領域61は、記録用紙20の上下方向に同じ位置に出力されることになる。これにより、多機能周辺装置1は、集約出力時に第1ページ原稿画像と第2ページ原稿画像の間に生じる段差Dを解消し、見やすい集約出力結果をユーザに提供し得る(図17(C)、図18(D)参照)。
段差解消処理(S18)終了すると、CPU21は、印刷処理を実行する。この印刷処理(S19)では、CPU21は、S15〜S18の処理による設定内容及び第1ページ画像データ50、第2ページ画像データ60の内容に基づいて、ブック原稿Gの第1ページ原稿、第2ページ原稿を記録用紙20に集約出力する(図17(C)、図18(D)参照)。1枚の記録用紙20に対して、第1ページ画像データ50、第2ページ画像データ60を集約出力した後、CPU21は、S20に処理を移行する。
S20においては、CPU21は、画像メモリ23A内に格納されている全ての画像データを記録用紙20に集約出力したか否かについて判断する。即ち、CPU21は、画像メモリ23Aを参照することで、S20の判断を行う。画像メモリ23A内の全画像データを記録用紙20に集約出力している場合(S20:YES)、CPU21は、ブックコピー処理プログラムを終了する。一方、全画像データの集約出力が完了していない場合(S20:NO)、CPU21は、S14に処理を戻す。これにより、CPU21は、残りの画像データ、即ち、画像メモリ23Aに格納されている他の第1ページ画像データ50及び第2ページ画像データ60に対しても同様に記録用紙20に集約出力し得る。
次に、ブックコピー処理プログラムのS18で実行される段差解消処理プログラムについて、図面を参照しつつ詳細に説明する。図9は、段差解消処理プログラムのフローチャートである。段差解消処理(S18)に移行し、段差解消処理プログラムの実行を開始すると、CPU21は、先ず、第1ページ画像データ50に関する余白検出処理を実行する(S21)。この余白検出処理(S21)では、CPU21は、第1ページ画像データ50を処理対象として、余白検出処理プログラムを実行する。余白検出処理プログラムについては、後に詳細に説明する。この余白検出処理プログラムを実行することにより、CPU21は、第1ページ画像データ50における第1ページ白色余白領域52を検出する(S21)。そして、第1ページ白色余白領域52の検出処理を実行した後、CPU21は、S22に処理を移行する。
S22においては、CPU21は、余白検出処理(S21)により、第1ページ画像データ50に余白(即ち、第1ページ白色余白領域52)が存在するか否かを判断する。具体的には、CPU21は、第1ページ画像データ50に関する「余白ありフラグ(即ち、後述する上部余白ありフラグ又は下部余白ありフラグ)」がONであるか否かを判断する。「余白ありフラグ」がONである場合(S22:YES)、CPU21は、S23に処理を移行する。一方、「余白ありフラグ」がOFFであり、「余白なしフラグ」がONである場合(S23:NO)、CPU21は、S24に処理を移行する。
S23に移行すると、CPU21は、第1ページ画像データ50を処理対象とする余白領域除去処理を実行する。この余白領域除去処理(S23)においては、CPU21は、後述する余白領域除去処理プログラムを実行する。これにより、CPU21は、第1ページ画像データ50における出力対象から、余白検出処理(S21)で検出された第1ページ白色余白領域52を除外する(S23)。余白領域除去処理プログラムの実行を終了すると、CPU21は、S24に処理を移行する。
S24では、CPU21は、第2ページ画像データ60に関する余白検出処理を実行する。この余白検出処理(S24)では、CPU21は、第2ページ画像データ60を処理対象として、余白検出処理プログラムを実行する。余白検出処理プログラムについては、S21と同様、後に詳細に説明する。余白検出処理プログラムを実行することにより、CPU21は、第2ページ画像データ60における第2ページ白色余白領域62を検出する(S24)。そして、第2ページ白色余白領域62の検出処理を実行した後、CPU21は、S25に処理を移行する。
S25においては、CPU21は、余白検出処理(S24)により、第2ページ画像データ60に余白(即ち、第2ページ白色余白領域62)が存在するか否かを判断する。具体的には、CPU21は、第2ページ画像データ60に関する「余白ありフラグ(即ち、後述する上部余白ありフラグ又は下部余白ありフラグ)」がONであるか否かを判断する。「余白ありフラグ」がONである場合(S25:YES)、CPU21は、S26に処理を移行する。一方、「余白ありフラグ」がOFFであり、「余白なしフラグ」がONである場合(S25:NO)、CPU21は、段差解消処理プログラムを終了する。
S26に移行すると、CPU21は、第2ページ画像データ60を処理対象とする余白領域除去処理を実行する。この余白領域除去処理(S26)においては、CPU21は、後述する余白領域除去処理プログラムを実行する。これにより、CPU21は、第2ページ画像データ60における出力対象から、余白検出処理(S24)で検出された第2ページ白色余白領域62を除外する(S26)。余白領域除去処理プログラムの実行を終了すると、CPU21は、段差解消処理プログラムを終了する。
次に、段差解消処理プログラムのS21、S24で実行される余白検出処理プログラムについて、図面を参照しつつ詳細に説明する。図10は、第1実施形態における余白検出処理プログラムのフローチャートである。
余白検出処理プログラムの実行を開始すると、第1実施形態に係る多機能周辺装置1のCPU21は、エッジ検出処理を実行する(S31)。このエッジ検出処理(S31)においては、CPU21は、エッジ検出処理プログラムを実行する。エッジ検出処理プログラムを実行することにより、CPU21は、第1ページ画像データ50における第1ページエッジ53、第2ページ画像データ60における第2ページエッジ63を検出する。エッジ検出処理プログラムの実行を終了した後、CPU21は、余白検出処理プログラムを終了する。
続いて、余白検出処理プログラムのS31で実行されるエッジ検出処理プログラムについて、図面を参照しつつ詳細に説明する。図11は、エッジ検出処理プログラムのフローチャートである。
S31でエッジ検出処理プログラムの実行を開始すると、先ず、CPU21は、エッジ検出実行処理を実行する(S41)。このエッジ検出実行処理(S41)では、CPU21は、後述するエッジ検出実行処理プログラムを実行する。このエッジ検出実行処理プログラムにより、CPU21は、処理対象である対象ページ画像データ(即ち、第1ページ画像データ50又は第2ページ画像データ60)の上部におけるエッジ(以下、上部エッジという)を構成する黒色画素をライン単位で検出することで、対象ページ画像データにおける上部エッジを検出する。エッジ検出実行処理プログラムの詳細については、後に図面を参照しつつ説明する。エッジ検出実行処理プログラムの実行終了後、CPU21は、S42に処理を移行する。
S42に移行すると、CPU21は、エッジ検出実行処理(S41)の検出結果に基づいて、対象ページ画像データにおける上部エッジの有無を判断する。上部エッジを検出した場合(S42:YES)、CPU21は、対象ページ画像データに関する「上部余白ありフラグ」をONにする(S43)。この「上部余白ありフラグ」とは、対象ページ画像データの上部における余白(例えば、第1ページ白色余白領域52、第2ページ白色余白領域62)が存在することを示すフラグである。「上部余白ありフラグ」をONにした後、CPU21は、S44に処理を移行する。一方、上部エッジを検出しなかった場合(S42:NO)、CPU21は、S45に処理を移行する。
「上部余白ありフラグ」をONすると、CPU21は、S44において、上部余白位置取得処理を実行する。この上部余白位置取得処理(S44)では、CPU21は、対象ページ画像データにおける上部エッジ(即ち、第1ページエッジ53、第2ページエッジ63)の位置に基づいて、上部余白位置を取得し、RAM23に格納する。ここで、上部余白位置は、対象ページ画像データの上端から上部エッジまでの距離に相当する画素数の最小値により決定される。取得した上部余白位置をRAM23に格納した後、CPU21は、S45に処理を移行する。
S45に移行すると、CPU21は、エッジ検出実行処理を実行する。このエッジ検出実行処理(S45)では、CPU21は、S41と同様に、後述するエッジ検出実行処理プログラムを実行する。このエッジ検出実行処理プログラムにより、CPU21は、対象ページ画像データの下部におけるエッジ(以下、下部エッジという)を構成する黒色画素をライン単位で検出することで、対象ページ画像データにおける下部エッジを検出する。エッジ検出実行処理プログラムの実行終了後、CPU21は、S46に処理を移行する。
S46においては、CPU21は、エッジ検出実行処理(S45)の検出結果に基づいて、対象ページ画像データにおける下部エッジの有無を判断する。下部エッジを検出した場合(S46:YES)、CPU21は、対象ページ画像データに関する「下部余白ありフラグ」をONにする(S47)。この「下部余白ありフラグ」とは、対象ページ画像データの下部における余白(例えば、第1ページ白色余白領域52、第2ページ白色余白領域62)が存在することを示すフラグである。「下部余白ありフラグ」をONにした後、CPU21は、S48に処理を移行する。一方、下部エッジを検出しなかった場合(S46:NO)、CPU21は、S49に処理を移行する。
「下部余白ありフラグ」をONすると、CPU21は、S48において、下部余白位置取得処理を実行する。この下部余白位置取得処理(S48)では、CPU21は、対象ページ画像データにおける下部エッジ(即ち、第1ページエッジ53、第2ページエッジ63)の位置に基づいて、下部余白位置を取得し、RAM23に格納する。ここで、下部余白位置は、対象ページ画像データの下端から下部エッジまでの距離に相当する画素数の最小値により決定される。取得した下部余白位置をRAM23に格納した後、CPU21は、S49に処理を移行する。
S49では、CPU21は、RAM23を参照し、「余白ありフラグ」がONであるか否かを判断する。ここで、「余白ありフラグ」とは、「上部余白ありフラグ」と「下部余白ありフラグ」を含む概念である。つまり、CPU21は、「上部余白ありフラグ」又は「下部余白ありフラグ」の何れかがONであるか、いずれもOFFであるかに基づいて、S49の判断を行う。「余白ありフラグ」がONである場合(S49:YES)、CPU21は、そのままエッジ検出処理プログラムを終了する。一方、「余白ありフラグ」がONでない場合(S49:NO)、CPU21は、対象ページ画像データ中に余白(即ち、第1ページ白色余白領域52、第2ページ白色余白領域62)が存在しないことを示す「余白なしフラグ」をONにする(S50)。その後、CPU21は、エッジ検出処理プログラムを終了する。
続いて、エッジ検出処理プログラムのS41、S45で実行されるエッジ検出実行処理プログラムについて、図面を参照しつつ詳細に説明する。図12は、エッジ検出実行処理プログラムのフローチャートである。エッジ検出実行処理(S41又はS45)に移行すると、CPU21は、先ず、検出対象領域設定処理(S51)を実行する。この検出対象領域設定処理(S51)は、対象ページ画像データにおけるエッジ(即ち、第1ページエッジ53、第2ページエッジ63)の検出対象となる領域を設定する処理である。
ここで、検出対象領域設定処理(S51)で設定される検出対象領域80の内容について、図面を参照しつつ詳細に説明する。図13は、検出対象領域設定処理で設定される検出対象領域及びその詳細に関する説明図である。上述したように、エッジ検出処理プログラム中において、エッジ検出実行処理プログラムは、上部エッジを検出する際(S41)と、下部エッジを検出する際に実行される。従って、検出対象領域設定処理(S51)では、検出対象領域は、上部エッジ検出時と、下部エッジ検出時において異なる位置に設定される。
先ず、上部エッジ検出時に、対象ページ画像データに対して設定される検出対象領域80等について説明する。図13(A)に示すように、上部エッジ検出時においては、検出対象領域80は、対象ページ画像データの上部を構成する複数ライン分の領域に設定される。そして、当該検出対象領域80を設定することで、CPU21は、主走査方向開始ライン81S、主走査方向終了ライン81F、検出開始ライン82S、検出終了ライン82Fを特定する。
主走査方向開始ライン81Sは、検出対象領域80において、上部エッジを構成する黒色画素の検出する際の最初の検出対象ラインであり、図13(A)に示すように、検出対象領域80の最も左端に位置する一ラインである。そして、主走査方向終了ライン81Fは、検出対象領域80において、上部エッジを構成する黒色画素を検出する際の最後の検出対象ラインであり、図13(A)に示すように、検出対象領域80の最も右端に位置する一ラインである。そして、検出開始ライン82Sは、各検出対象ラインにおける上部エッジを構成する黒色画素を検出する際に、最初の処理対象となる画素で構成されるラインである。尚、処理対象となる画素を「対象画素」という。即ち、図13(A)に示すように、上部エッジ検出時における検出開始ライン82Sは、検出対象領域80の上端に位置する一ラインである。又、検出終了ライン82Fは、各検出対象ラインにおける上部エッジを構成する黒色画素を検出する際に、最後の対象画素で構成されるラインである。即ち、図13(A)に示すように、上部エッジ検出時における検出終了ライン82Fは、検出対象領域80の下端に位置する一ラインである。
この検出終了ライン82Fを検出開始ライン82Sからどれだけの距離(画素数分)に設定するかは、多機能周辺装置1において予め設定されているものとする。原稿を読み取る際の解像度により、ページ原稿を構成する主走査方向(図13(A)中矢印Y)の1ライン分の画素数と、副走査方向(図13(A)中矢印X)の1ライン分の画素数とが定まるため、検出開始ライン82Sは、ページ原稿を読み取った画像データの先頭から読取り時の主走査方向における1ライン分の画素数に相当するデータになる。また、検出終了ライン82Fは、検出開始ライン82Sから予め設定されている画素数分だけ副走査方向に移動させたラインに相当するものであり、これも主走査方向の1ライン分の画素数と、検出終了ライン82Fと検出開始ライン82Sとの間の距離(画素数分)とに基づいて特定することができる。主走査方向開始ライン81S及び主走査方向終了ライン81Fについても、ページ原稿を構成する主走査方向の画素数及び副走査方向の画素数に基づいて、ページ原稿を読み取った画像データの中から特定することができる。
次に、下部エッジ検出時に、対象ページ画像データに対して設定される検出対象領域80等について説明する。図13(B)に示すように、下部エッジ検出時においては、検出対象領域80は、対象ページ画像データの下部を構成する複数ライン分の領域に設定される。上部エッジ検出時と同様に、当該検出対象領域80を設定することで、CPU21は、主走査方向開始ライン81S、主走査方向終了ライン81F、検出開始ライン82S、検出終了ライン82Fを特定する。
主走査方向開始ライン81Sは、検出対象領域80において、下部エッジを構成する黒色画素の検出する際の最初の検出対象ラインであり、図13(B)に示すように、検出対象領域80の最も左端に位置する一ラインである。そして、主走査方向終了ライン81Fは、検出対象領域80において、下部エッジを構成する黒色画素の検出する際における最後の検出対象ラインであり、図13(B)に示すように、検出対象領域80の最も右端に位置する一ラインである。
そして、検出開始ライン82Sは、各検出対象ラインにおける下部エッジを構成する黒色画素を検出する際に、最初の対象画素で構成されるラインである。即ち、図13(B)に示すように、下部エッジ検出時における検出開始ライン82Sは、検出対象領域80の下端に位置する一ラインである。又、検出終了ライン82Fは、各検出対象ラインにおける下部エッジを構成する黒色画素を検出する際に、最後の対象画素で構成されるラインである。即ち、図13(B)に示すように、下部エッジ検出時における検出終了ライン82は、検出対象領域80の上端に位置する一ラインである。尚、各ラインの特定方法は、上部エッジの場合と同様である。
検出対象領域設定処理(S51)において、CPU21は、上部エッジ検出時、下部エッジ検出時といった条件に応じて、対象ページ画像データの所定位置に、検出対象領域80を設定する。そして、検出対象領域80を設定することにより、CPU21は、条件に応じた主走査方向開始ライン81S、主走査方向終了ライン81F、検出開始ライン82S、検出終了ライン82Fを特定する(図13参照)。その後、CPU21は、S52に処理を移行する。
S52に移行すると、CPU21は、先ず、主走査方向開始ライン81S上に対象画素を移動する。そして、S53では、CPU21は、検出開始ライン82S上に対象画素を移動する。従って、黒色画素の検出開始時においては、対象画素は、主走査方向開始ライン81S上であって、検出開始ライン82S上に位置する。即ち、上部エッジの検出開始時において、対象画素は、対象ページ画像データの左上の角部に位置する画素に移動する。又、下部エッジの検出開始時において、対象画素は、対象ページ画像データの左下の角部に位置する画素に移動する。
S54に移行すると、CPU21は、対象画素濃度取得処理を実行する。この対象画素濃度取得処理(S54)では、CPU21は、現在の対象画素に関する濃度データを取得する。画素の濃度データの取得については、既に公知の技術であるため、詳細な説明は省略する。対象画素の濃度データを取得すると、CPU21は、連続性検出処理(S55)に処理を移行する。
S55では、CPU21は、連続性検出処理を実行する。この連続性検出処理(S55)においては、CPU21は、後述する連続性検出処理プログラムを実行し、検出対象領域80におけるエッジの有無を判定する。この連続性検出処理プログラムについては、後に図面を参照しつつ詳細に説明するので、ここでの説明は省略する。エッジの有無に関する判定結果をRAM23に格納した後、CPU21は、S56に処理を移行する。
続くS56では、CPU21は、RAM23を参照し、連続性検出処理(S56)による判定結果が「エッジあり」であるか否かを判断する。判定結果「エッジあり」である場合には(S56:YES)、CPU21は、そのままエッジ検出実行処理プログラムを終了する。一方、判定結果「エッジなし」の場合(S56:NO)、CPU21は、S57に処理を移行する。
S57に移行すると、CPU21は、現在の対象画素が検出終了ライン82Fを構成する画素であるか否かを判断する。即ち、S57では、CPU21は、検出対象領域80の縦方向(読取り時の副走査方向)の1ライン分を対象とするエッジの検出処理を完了したか否かを判断する。対象画素が検出終了ライン82Fに属する画素である場合(S57:YES)、CPU21は、S58に処理を移行する。対象画素が検出終了ライン82Fに属する画素でない場合(S57:NO)、CPU21は、S59に処理を移行する。
S58においては、CPU21は、主走査方向終了ライン81F方向(即ち、図13における対象ページ画像データの右方向)へ対象画素を移動させる。即ち、対象画素は、検出終了ライン82F上を主走査方向終了ライン81F方向へ移動する。
S59においては、CPU21は、対象画素を検出終了ライン82F方向へ移動する。即ち、対象画素は、上部エッジ検出時には、検出対象領域80の下部に向かって移動し、下部エッジ検出時には、検出対象領域80の上部に向かって移動する。その後、CPU21は、対象画素濃度取得処理(S54)に処理を戻す。即ち、未だ検出終了ライン82Fまでの画素に関する処理を完了していない場合(S58:NO)、CPU21は、対象画素を検出終了ライン82F方向へ移動し、未完了の画素に関する処理を実行する(S54〜S57)。
続くS60では、CPU21は、検出対象領域80全体に対するエッジの有無に関する判定を完了したか否かを判断する。検出対象領域80全体に対する判定を完了している場合(S60:YES)、CPU21は、S61に処理を移行する。一方、未だ検出対象領域80全体に対する判定を完了していない場合(S60:NO)、CPU21は、S53に処理を戻す。尚、検出対象領域80全体についてエッジの有無に関する判定を完了したか否かの判断は、検出対象領域80を構成している、読取時の主走査方向の1ラインを構成する画素の数に基づいて行う。従って、主走査方向開始ライン81Sからエッジの検出処理を完了したライン数をカウントしていき、そのカウント値が読取り時の主走査方向の1ラインを構成する画素の数に一致した場合に、検出対象領域80全体について判定を完了したと判断すればよい。
S61に移行すると、CPU21は、判定結果「エッジなし」を確定する。S61に移行する場合とは、CPU21は、常に判定結果「エッジあり」ではない場合(S57:NO)である。判定結果「エッジなし」を確定した後、CPU21は、エッジ検出実行処理プログラムを終了する。
続いて、エッジ検出実行処理プログラムのS55で実行される連続性検出処理プログラムについて、図面を参照しつつ詳細に説明する。図14は、連続性検出処理プログラムのフローチャートである。
S55に移行し、連続性検出処理プログラムの実行を開始すると、CPU21は、先ず、対象画素濃度取得処理(S54)で取得した対象画素の濃度データを読み出し、対象画素濃度がエッジ閾値より小さいか否かを判断する(S71)。ここで、エッジ閾値とは、第1ページエッジ53又は第2ページエッジ63を構成する黒色画素であるか否かの判断基準となる濃度値である。そして、エッジ閾値より小さい濃度値である場合は、当該対象画素は、エッジを構成する黒色画素であると判断され、エッジ閾値以上の濃度値である場合は、当該対象画素は、エッジを構成する黒色画素ではないと判断される。対象画素濃度がエッジ閾値より小さい場合(S71:YES)、CPU21は、RAM23に形成されたエッジ連続数カウンタに「1」を加算し、更に、その位置(検出開始ラインからの距離(画素数))をRAM23に記憶した後、S72に処理を移行する。一方、対象画素濃度がエッジ閾値以上である場合(S71:NO)、CPU21は、S80に処理を移行する。
S72に移行すると、CPU21は、補助画素濃度取得処理を実行する。この補助画素濃度取得処理(S72)では、CPU21は、対象画素90の近傍に位置する第1補助画素91、第2補助画素92、第3補助画素93の濃度を取得する。図15に示すように、第1補助画素91は、対象画素90の右隣(主走査方向)に隣接する画素である。第2補助画素92は、対象画素90右上方に隣接する画素である。そして、第3補助画素93は、対象画素90の右下方に隣接する画素である。これら第1補助画素91〜第3補助画素93の濃度データを取得した後、CPU21は、S73に処理を移行する。
S73においては、CPU21は、第1補助画素91の画素濃度がエッジ閾値より小さいか否かを判断する。第1補助画素91の画素濃度がエッジ閾値よりも小さい場合(S73:YES)、CPU21は、第1補助画素91が黒色画素であると判断し、エッジ連続数加算処理(S76)に処理を移行する。一方、第1補助画素91の画素濃度がエッジ閾値以上である場合は(S73:NO)、第1補助画素91が黒色画素ではないと判断し、CPU21は、S74に処理を移行する。
S74においては、CPU21は、第2補助画素92の画素濃度がエッジ閾値より小さいか否かを判断する。第2補助画素92の画素濃度がエッジ閾値よりも小さい場合(S74:YES)、CPU21は、第2補助画素92が黒色画素であると判断し、エッジ連続数加算処理(S76)に処理を移行する。一方、第2補助画素92の画素濃度がエッジ閾値以上である場合は(S74:NO)、第2補助画素92が黒色画素ではないと判断し、CPU21は、S75に処理を移行する。
S75においては、CPU21は、第3補助画素93の画素濃度がエッジ閾値より小さいか否かを判断する。第3補助画素93の画素濃度がエッジ閾値よりも小さい場合(S75:YES)、CPU21は、第3補助画素93が黒色画素であると判断し、エッジ連続数加算処理(S76)に処理を移行する。一方、第3補助画素93の画素濃度がエッジ閾値以上である場合は(S75:NO)、第3補助画素93が黒色画素ではないと判断し、CPU21は、S78に処理を移行する。
S76に移行すると、CPU21は、エッジ連続数加算処理を実行する。このエッジ連続数加算処理(S76)に移行すると、CPU21は、RAM23に形成されたエッジ連続数カウンタの値に「1」を加算する。ここで、エッジ連続数カウンタの数値は、検出対象領域80において、エッジ閾値より小さい濃度値である画素(黒色画素)が横方向に(読取り時の主走査方向)連続して隣接している数を示す。即ち、エッジ連続数カウンタの数値は、検出対象領域80において、エッジ(即ち、第1ページエッジ53、第2ページエッジ63)を構成する黒色画素と判断された画素データがライン状に連続している数を示す。この時、CPU21は、S73〜S75までの処理において、黒色画素であると判断された補助画素の位置(検出開始ラインからの距離(画素数))が、先にRAM23に記憶していた、対象画素濃度がエッジ閾値より小さいと判断された場合の(S71:YES)、対象画素の位置(検出開始ラインからの距離(画素数))よりも小さい場合には、RAM23の記憶内容を小さい方の距離(画素数)に更新する処理を行う。具体的には、第2補助画素92が黒色画素と判断された場合に、RAM23の記憶内容が更新されることになる。そして、この記憶内容が上部エッジ位置に相当する。下部エッジ検出の場合には、第3補助画素93が黒色画素と判断された場合に、RAM23の記憶内容が更新されることになる。そして、この記憶内容が下部エッジ位置に相当する。エッジ連続数加算処理(S76)を終了すると、CPU21は、S77に処理を移行する。
S77においては、CPU21は、対象画素変更処理を実行する。対象画素変更処理(S77)では、CPU21は、S73〜S75においてエッジ閾値より小さい濃度と判定された画素(即ち、第1補助画素91〜第3補助画素93のいずれか)を、新たな対象画素90に設定変更する。対象画素変更処理(S77)を終了すると、CPU21は、S72に処理を戻す。これにより、CPU21は、新たな対象画素90の近傍に位置する第1補助画素91〜第3補助画素93の濃度値を取得する。従って、CPU21は、第1補助画素91〜第3補助画素93にエッジ閾値より小さい濃度の画素が存在する限り、S72〜S77の処理を繰り返す。
一方、S78に移行すると、CPU21は、RAM23のエッジ連続数カウンタの数値を読み出し、エッジ連続数が連続閾値より大きいか否かを判断する。ここで、連続閾値とは、上部エッジ又は下部エッジの存在に関する判断基準となるエッジ連続数カウンタの数値である。エッジ連続数が連続閾値より大きい場合には(S78:YES)、CPU21は、検出対象領域80にエッジが存在すると判断し、連続性検出処理の判定結果として「エッジあり」をRAM23に格納する(S79)。判定結果「エッジあり」をRAM23に格納した後、CPU21は、連続性検出処理プログラムを終了する。一方、エッジ連続数が連続閾値以下である場合(S78:NO)、CPU21は、連続性検出処理の判定結果として「エッジなし」をRAMに格納する(S80)。判定結果「エッジなし」をRAM23に格納した後、CPU21は、連続性検出処理プログラムを終了する。
従って、この連続性検出処理プログラムでは、検出対象領域80における主走査方向開始ライン81Sを構成する画素列を上端(検出開始ライン82S側)から検出終了ライン82F方向に順番に黒色画素か否かを判断する。そして、主走査方向開始ライン81S上に黒色画素が存在していなければ、次のライン(主走査方向終了ライン81F側に隣接するライン)について同様の判断を行う。そして、黒色画素が検出されるまで、さらに次のラインに処理対象を移動させながら処理を繰り返す。そして、ライン中に黒色画素が検出された場合には、その位置を(検出開始ラインからの距離(画素数))をRAM23に記憶し、続いて、検出された黒色画素に隣接する補助画素91〜93について黒色画素か否かを判断していくことで、ページ原稿の画像データ中に、主走査方向に黒色画素が所定数以上連続している箇所が存在していることを検出している。
また、隣接する補助画素が黒色画素であると判断された場合には、その位置が先にRAM23に記憶していた位置よりも小さいか否かを判断し、小さい方を記憶する。そのため、主走査方向に連続している黒色画素が存在しており、連続性検出処理プログラムにおいて、「エッジあり」(S79)と判断された場合には、黒色画素の連続からなるエッジの検出開始ラインからの距離(画素数)の最小値がRAM23に保持されていることになる。そして、このエッジが上部エッジ(即ち、第1ページエッジ53、第2ページエッジ63)であり、RAM23に保持されている最小値がエッジ検出処理(図11)のS44において取得される上部余白位置となる。下部エッジの場合も同様であり、ページ原稿の画像データ中に下部エッジが検出された場合には、その下部エッジを構成する黒色画素の位置の最小値がエッジ検出処理(図11)のS48において取得される下部余白位置となる。
次に、段差解消処理プログラム(図9)のS23、S26で実行される余白除去処理プログラムについて、図面を参照しつつ詳細に説明する。図16は、余白除去処理プログラムのフローチャートである。
余白除去処理(S23、S26)に移行し、余白除去処理プログラムの実行を開始すると、CPU21は、先ず、RAM23を参照し、「上部余白ありフラグ」がONであるか否かを判断する(S81)。この「上部余白ありフラグ」は、エッジ検出処理プログラム(図11)のS43でONとなるフラグであり、対象ページ画像データに上部余白が存在することを示す。「上部余白ありフラグ」がONである場合(S81:YES)、CPU21は、S82に処理を移行する。一方、「上部余白ありフラグ」がONでない場合(S81:NO)、CPU21は、S83に処理を移行する。
S82においては、CPU21は、対象ページ画像データにおける先頭ポインタを上部余白位置に変更する。ここで、上部余白位置は、上述したようにエッジ検出処理プログラム(図11)のS44で取得されるものであり、第1ページエッジ53又は第2ページエッジ63の位置に対応する。そして、多機能周辺装置1は、対象ページ画像データにおける先頭ポインタ以後のデータを出力対象とする。従って、上部エッジより上方に存在する余白領域(例えば、第1ページ白色余白領域52、第2ページ白色余白領域62)は、出力対象から除外され、記録用紙20に出力される事はない。先頭ポインタの位置を変更した後、CPU21は、S83に処理を移行する。
S83では、CPU21は、RAM23を参照し、「下部余白ありフラグ」がONであるか否かを判断する。この「下部余白ありフラグ」は、エッジ検出処理プログラム(図11)のS47でONとなるフラグであり、対象ページ画像データに下部余白が存在することを示す。「下部余白ありフラグ」がONである場合(S83:YES)、CPU21は、S84に処理を移行する。一方、「下部余白ありフラグ」がONでない場合(S83:NO)、CPU21は、そのまま余白除去処理プログラムを終了する。
S84に移行すると、CPU21は、対象ページ画像データにおける最終ポインタを下部余白位置に変更する。ここで、下部余白位置は、上述したようにエッジ検出処理プログラム(図11)のS48で取得されるものであり、第1ページエッジ53又は第2ページエッジ63の位置に対応する。そして、多機能周辺装置1は、対象ページ画像データにおける最終ポインタ以前のデータを出力対象とする。従って、下部エッジより下方に存在する余白領域(例えば、第1ページ白色余白領域52、第2ページ白色余白領域62)は、出力対象から除外され、記録用紙20に出力される事はない。最終ポインタの位置を変更した後、CPU21は、余白除去処理プログラムを終了する。
以上説明したように、第1実施形態に係る多機能周辺装置1及びブックコピー処理プログラムは、見開き状態のブック原稿Gから、第1ページ画像データ50、第2ページ画像データ60を取得し、これらを一枚の記録用紙20に集約出力することができる。これにより、当該多機能周辺装置1は、見開き状態のブック原稿Gと同様の出力結果をユーザに提供することができる。
そして、第1実施形態に係る多機能周辺装置1及びブックコピー処理プログラムは、ブック原稿Gの見開き方向に応じて(S14)、第1ページ画像データ50又は第2ページ画像データ60の何れかを180°回転させた態様で、一枚の記録用紙20に集約出力する(S15、S16、S19)。即ち、多機能周辺装置1及びブックコピー処理プログラムは、第1ページ画像データ50、第2ページ画像データ60を集約出力する際に、ブック原稿Gを順次180°回転させてページ単位で読み取らせたとしても、第1ページ画像、第2ページ画像の向きを同じ方向にして集約出力し得る(図17(A)、図18(A)参照)。この結果、記録用紙20上において、第1ページ画像データ50に基づく画像と、第2ページ画像データ60に基づく画像とが同じ向きに配置された集約出力結果をユーザに提供することができ、もって、見やすい態様のブック原稿Gに基づく集約出力結果を提供しうる。
又、当該多機能周辺装置1及びブックコピー処理プログラムは、ブック原稿Gの見開き方向に応じて、記録用紙20における第1ページ画像と第2ページ画像の配置を決定し(S17)、決定した配置に基づいて、第1ページ画像データ50、第2ページ画像データ60を一枚の記録用紙20に集約出力する(S19)。これにより、当該多機能周辺装置1及びブックコピー処理プログラムは、ブック原稿Gにおける第1ページ画像、第2ページ画像と同様の配置の出力結果を提供しうる(図17、図18(B)参照)。つまり、多機能周辺装置1及びブックコピー処理プログラムは、ブック原稿Gにおける読み進める順番と同じ順番で読み進めることができる集約出力結果を提供することができ、もって、読みやすいブック原稿Gに基づく集約出力結果をユーザに提供し得る。
又、当該多機能周辺装置1及びブックコピー処理プログラムは、ブック原稿Gをページ単位で読み取った第1ページ画像データ50、第2ページ画像データ60に白色余白領域(即ち、第1ページ白色余白領域52、第2ページ白色余白領域62)が含まれる場合であっても、当該白色余白領域を出力対象から除外して(S18)、第1ページ画像データ50、第2ページ画像データ60に基づく集約出力を行う(S19)。即ち、白色余白領域を有する2つのページ画像データの一を180°回転して集約出力したとしても、記録用紙20の左右に位置する第1ページ画像と第2ページ画像との間に「段差D」が生じることはない(図17、図18参照)。この結果、集約出力結果の左側部分と右側部分で、第1ページ画像と第2ページ画像が同じ高さで出力されるので(図17(B)、図18(C)参照)、ユーザは、非常に見やすいブック原稿Gに基づく集約出力結果を手にすることができる。
更に、当該多機能周辺装置1及びブックコピー処理プログラムは、段差Dを生じさせることのない白色余白領域についても、集約出力に係る出力対象から除外し(S18)、ブック原稿Gに基づく集約出力を行う(S19)。従って、当該多機能周辺装置1及びブックコピー処理プログラムによる集約出力結果において、記録用紙20の右側と左側は、ページ画像部分を除き同様の態様となる。この結果、ユーザは、非常に見やすいブック原稿Gに基づく集約出力結果を手にすることができる。
尚、上記補助画素濃度取得処理(図14参照)において取得する補助対象画素は、上記3つの画素に限定されるものではなく、対象画素90に隣接する画素のみを対象としてもよく、また、補助対象画素とする画素数を増やしても良い。但し、ブック原稿Gをページ毎にプラテンガラス12上に配置する際に、ユーザがブック原稿Gを斜めに傾けて配置してしまうと、エッジ検出処理により検出しようとするエッジを構成する黒画素データが、対象ページ画像データ中において、必ずしも読み取りの主走査方向に対して隣接した状態で存在するとは限らない。そのような傾いた状態のエッジを検出するためにも、補助対象画素とする画素に余裕を持たせておくことは有効である。
(第2実施形態)
次に、上述した第1実施形態とは異なる実施形態(第2実施形態)について、図面を参照しつつ詳細に説明する。この第2実施形態においては、多機能周辺装置1の基本的構成及びブックコピー処理プログラム、段差解消処理プログラム、余白除去処理プログラムの内容は、第1実施形態と同様である。従って、第2実施形態においては、これらに関する説明を省略する。
そして、第2実施形態に係る多機能周辺装置1は、対象ページ画像データにおける余白領域を検出する際に実行される余白検出処理プログラムの内容に関し、上述した第1実施形態と相違する。従って、第2実施形態においては、これら第1実施形態との相違点について詳細に説明する。
ここで、第2実施形態に係る多機能周辺装置1においては、第1ページ画像データ50及び第2ページ画像データ60は、第1実施形態における第1ページ画像データ50、第2ページ画像データ60と異なる態様で構成されている。
図19に示すように、第2実施形態に係る第1ページ画像データ50は、第1ページ原稿画像領域51と、第1ページ黒色余白領域54と、により構成されている。同様に、第2ページ画像データ60は、第2ページ原稿画像領域61と、第2ページ黒色余白領域64と、により構成されている。即ち、第2実施形態における対象ページ画像データは、エッジ及び白色余白領域を有しておらず、黒色余白領域を有している。ここで、黒色余白領域は、例えば、ユーザが原稿カバー8を開いた状態でコピーを指示した場合や、原稿(例えば、ブック原稿G)の厚みが厚い場合において、画像読取ユニット3Aにより読み取られた対象ページ画像データに黒色画像として含まれる原稿外の部分により構成される。
つまり、第2実施形態に係る多機能周辺装置1は、黒色余白領域を備えるページ画像データを処理対象とし、これらのページ画像データに基づいて、みやすい集約出力結果をユーザに提供することを目的とする。
次に、第2実施形態に係る余白検出処理プログラムについて、図面を参照しつつ詳細に説明する。図20は、第2実施形態に係る余白検出処理プログラムのフローチャートである。この第2実施形態に係る余白検出処理プログラムは、対象ページ画像データに含まれる黒色余白領域(即ち、第1ページ黒色余白領域54、第2ページ黒色余白領域64)を検出するためのプログラムである。そして、CPU21は、第1実施形態と同様に、段差解消処理プログラム(図9)のS21、S24において、第2実施形態に係る余白検出処理プログラムを実行する。
図20に示すように、第2実施形態においては、余白検出処理プログラムの実行を開始すると、先ず、CPU21は、黒色余白領域検出処理を実行する(S101)。この黒色余白領域検出処理(S101)では、CPU21は、後述する黒色余白領域検出処理プログラムを実行する。この黒色余白領域検出処理プログラムを実行することにより、CPU21は、対象ページ画像データに含まれる黒色余白領域(即ち、第1ページ黒色余白領域54、第2ページ黒色余白領域64)を特定する。黒色余白領域検出処理(S101)を終了すると、CPU21は、余白検出処理プログラムを終了する。
続いて、第2実施形態における余白検出処理プログラムのS101で実行される黒色余白領域検出処理プログラムについて、図面を参照しつつ詳細に説明する。図21は、黒色余白領域検出処理プログラムのフローチャートである。
S101に移行し、黒色余白領域検出処理プログラムの実行を開始すると、CPU21は、先ず、対象ライン余白検出処理を実行する(S111)。この対象ライン余白検出処理(S111)では、CPU21は、対象ページ画像データを構成する縦方向(読取時の副走査方向X)の1ラインを処理対象とし、当該処理対象であるライン(以下、処理対象ラインという)における黒色余白領域を構成する黒色画素データを検出する。対象ライン余白検出処理(S111)の詳細については、後に図面を参照しつつ詳細に説明する。対象ライン余白検出処理(S111)を終了すると、CPU21は、S112に処理を移行する。
S112に移行すると、CPU21は、主走査方向Yの1ラインに存在する画素数分の処理対象ラインについて対象ライン余白検出処理(S111)を終了したか否かを判断する。即ち、CPU21は、対象ページ画像データを構成する全ての縦方向のラインについて対象ライン余白検出処理(S111)を実行したか否かを判断する。対象ページ画像データにおける縦方向のライン(処理対象ライン)の数は、第1実施形態においても説明したように、原稿を読み取る際の解像度により、ページ原稿を構成する主走査方向(図13(A)中矢印Y)の1ライン分の画素数が定まるため、この画素数の値に基づいて、全ての処理対象ラインに対する処理を完了したかを判断する。完了している場合(S112:YES)、CPU21は、S114に処理を移行する。一方、未だ全ての全ての処理対象ラインに対する処理を終了していない場合(S112:NO)、CPU21は、対象ライン変更処理(S113)を実行する。この対象ライン変更処理(S113)では、CPU21は、対象ページ画像データを構成する縦方向のラインの内、未だ対象ライン余白検出処理(S111)が行われていないラインに処理対象を変更する。具体的には、処理対象ラインを主走査方向(横方向)に1ライン分ずらす処理を行う。対象ライン変更処理(S113)の後、CPU21は、S111に処理を戻し、新たな対象ラインを処理対象とする対象ライン余白検出処理を実行する。
S114においては、CPU21は、RAM23に形成された上部余白カウンタの数値が上部余白閾値より大きいか否かを判断する。ここで、上部余白カウンタの数値は、対象ライン余白検出処理(S111)において、対象ページ画像データの上部に黒色余白領域を構成する黒色画素群が存在すると判断された処理対象ラインの本数を示す数値である。そして、上部余白閾値は、対象ページ画像データの上部における第1ページ黒色余白領域54、第2ページ黒色余白領域64(以下、上部黒色余白領域という)の有無に関する判断基準値であり、上部黒色余白領域を構成する黒色画素群が存在すると判断する処理対象ラインの本数を示す。
上部余白カウンタの数値が上部余白閾値より大きい場合(S114:YES)、CPU21は、対象ページ画像データに上部黒色余白領域が存在すると判断し、上部余白ありフラグをONにする(S115)。その後、CPU21は、上部余白位置取得処理を実行する(S116)。上部余白位置取得処理(S116)では、CPU21は、後述する上部余白境界位置に基づいて、当該上部黒色余白領域の位置を取得する。上部余白境界位置とは、上部黒色余白領域と、第1ページ原稿画像領域51、第2ページ原稿画像領域61との境界部分の位置である。上部余白位置取得処理(S116)を終了すると、CPU21は、S117に処理を移行する。一方、上部余白カウンタの数値が上部余白閾値以下である場合(S114:NO)、CPU21は、対象ページ画像データに上部黒色余白領域は存在しないと判断し、そのまま、S117に処理を移行する。
S117に移行すると、CPU21は、RAM23に形成された下部余白カウンタの数値が下部余白閾値より大きいか否かを判断する。ここで、下部余白カウンタの数値は、対象ライン余白検出処理(S111)において、対象ページ画像データの下部に黒色余白領域を構成する黒色画素群が存在すると判断された処理対象ラインの本数を示す数値である。そして、下部余白閾値は、対象ページ画像データの下部における第1ページ黒色余白領域54、第2ページ黒色余白領域64(以下、下部黒色余白領域という)の有無に関する判断基準値であり、下部黒色余白領域を構成する黒色画素群が存在すると判断する処理対象ラインの本数を示す。
下部余白カウンタの数値が下部余白閾値より大きい場合(S117:YES)、CPU21は、対象ページ画像データに下部黒色余白領域が存在すると判断し、下部余白ありフラグをONにする(S118)。その後、CPU21は、下部余白位置取得処理を実行する(S119)。下部余白位置取得処理(S119)では、CPU21は、後述する下部余白境界位置に基づいて、当該下部黒色余白領域の位置を取得する。下部余白境界位置とは、下部黒色余白領域と、第1ページ原稿画像領域51、第2ページ原稿画像領域61との境界部分の位置である。下部余白位置取得処理(S119)を終了すると、CPU21は、S120に処理を移行する。一方、下部余白カウンタの数値が下部余白閾値以下である場合(S117:NO)、CPU21は、対象ページ画像データに上部黒色余白領域は存在しないと判断し、そのまま、S120に処理を移行する。
そして、S120では、CPU21は、RAM23を参照し、「余白ありフラグ」がONであるか否かを判断する。ここで、「余白ありフラグ」とは、「上部余白ありフラグ」と「下部余白ありフラグ」を含む概念である。つまり、CPU21は、「上部余白ありフラグ」又は「下部余白ありフラグ」の何れかがONであるか、いずれもOFFであるかに基づいて、S120の判断を行う。「余白ありフラグ」がONである場合(S120:YES)、CPU21は、そのまま黒色余白領域検出処理プログラムを終了する。一方、「余白ありフラグ」がONでない場合(S120:NO)、CPU21は、対象ページ画像データ中に黒色余白領域(即ち、第1ページ黒色余白領域54、第2ページ黒色余白領域64)が存在しないことを示す「余白なしフラグ」をONにする(S121)。その後、CPU21は、黒色余白領域検出処理プログラムを終了する。
この黒色余白領域検出処理では、後述する対象ライン余白検出処理において検出される黒色画素の領域が余白として見なせるかを判断し、余白と見なせると判断した場合には、上部余白ありフラグ或いは下余白ありフラグをONにし、余白除去処理(図16)に移行するための処理である。
続いて、黒色余白領域検出処理プログラムのS111で実行される対象ライン余白検出処理プログラムについて、図面を参照しつつ詳細に説明する。図22は、対象ライン余白検出処理プログラムのフローチャートである。
S111に移行し、対象ライン余白検出処理プログラムの実行を開始すると、CPU21は、先ず、処理対象ラインの上部に対する黒色余白検出実行処理を実行する(S131)。この黒色余白検出実行処理(S131)では、CPU21は、処理対象ラインの上部(予め処理対象ラインを構成する画素の先頭から所定数分の画素を上部画素として決定しておく)に位置する画素を処理対象として、黒色余白検出実行処理プログラムを実行する。この黒色余白検出実行処理(S131)を実行することにより、CPU21は、処理対象ラインの上部における黒色余白領域を構成する黒色画素群を検出し得る。黒色余白検出実行処理(S131)の詳細については、後に図面を参照しつつ詳細に説明する。黒色余白検出実行処理(S131)を終了すると、CPU21は、S132に処理を移行する。
S132においては、CPU21は、黒色余白検出実行処理(S131)の検出結果に基づいて、上部黒色余白領域を構成する黒色画素群を処理対象ライン内から検出したか否かを判断する。上部黒色余白領域を構成する黒色画素群を検出した場合(S132:YES)、CPU21は、RAM23に格納されている上部余白カウンタの数値に「1」を加算し(S133)、当該処理対象ラインにおける上部余白境界位置として、検出した黒色画素群の最下端の位置(検出開始ラインからの距離(画素数))をRAM23に格納する(S134)。当該処理対象ラインにおける上部余白境界位置をRAM23に格納した後、CPU21は、S135に処理を移行する。一方、上部黒色余白領域を構成する黒色画素群を検出しなかった場合(S132:NO)、CPU21は、そのままS135に処理を移行する。
尚、S134においては、CPU21は、各処理対象ラインに対して、黒色画素群が存在しているかを順次検出していき、検出される毎に、その黒色画素群の最下端にある黒色画素の位置が、その時点でRAM23に記憶されている位置よりも上になるか否かを判断する。そして、上になる場合には、その位置をRAM23に記憶しなおす。従って、RAM23には、各処理対象ラインから検出された複数の黒色画素群を比較した場合に、各黒色画素群の下端に位置する画素の中で、最も上側に位置している黒色画素の位置(検出開始ラインからの距離(画素数))が記憶されることになる。そして、この処理においてRAM23に最終的に保持されている位置の値が、先の黒色余白領域検出処理(図21)における上部余白位置取得処理(S116)で取得される、上部黒色余白領域の上部余白位置になる。
S135では、CPU21は、処理対象ラインの下部(予め処理対象ラインを構成する画素の後端から所定数分の画素を下部画素として決定しておく)に対する黒色余白検出実行処理を実行する。この黒色余白検出実行処理(S135)では、CPU21は、処理対象ラインの下部に位置する画素を処理対象として、黒色余白検出実行処理プログラムを実行する。この黒色余白検出実行処理(S135)を実行することにより、CPU21は、処理対象ラインの下部における黒色余白領域を構成する黒色画素群を検出し得る。S131と同様に、黒色余白検出実行処理(S135)の詳細については、後に図面を参照しつつ詳細に説明する。黒色余白検出実行処理(S135)を終了すると、CPU21は、S136に処理を移行する。
S136においては、CPU21は、黒色余白検出実行処理(S135)の検出結果に基づいて、下部黒色余白領域を構成する黒色画素群を処理対象ライン内から検出したか否かを判断する。下部黒色余白領域を構成する黒色画素群を検出した場合(S136:YES)、CPU21は、RAM23に格納されている下部余白カウンタの数値に「1」を加算し(S137)、当該処理対象ラインにおける下部余白境界位置として、検出した黒色画素群の最上端の位置(検出開始ラインからの距離(画素数))をRAM23に格納する(S138)。当該処理対象ラインにおける下部余白境界位置をRAM23に格納した後、CPU21は、対象ライン余白検出処理プログラムを終了する。一方、下部黒色余白領域を構成する黒色画素群を検出しなかった場合(S136):NO)、CPU21は、そのまま対象ライン余白検出処理プログラムを終了する。
尚、S138においては、CPU21は、各処理対象ラインに対して、黒色画素群が存在しているかを順次検出していき、検出される毎に、その黒色画素群の最上端になる黒色画素の位置が、その時点でRAM23に記憶されている位置よりも下になるか否かを判断する。そして、下になる場合には、その位置をRAM23に記憶しなおす。従って、RAM23には、各処理対象ラインから検出された複数の黒色画素群を比較した場合に、各黒色画素群の上端に位置する画素の中で、最も下側に位置している黒色画素の位置が(検出開始ラインからの距離(画素数))記憶されることになる。そして、この処理においてRAM23に最終的に保持されている位置の値が、先の黒色余白領域検出処理(図21)における上部余白位置取得処理(S119)で取得される、下部黒色余白領域の下部余白位置になる。
この対象ライン余白検出処理プログラムを実行することにより、処理対象ライン内から検出される黒色画素群が主走査方向に連続して存在しているか、即ち、余白領域として見なせる黒色画素群が副走査方向だけでなく、主走査方向にも存在し、黒色画素から構成される領域を構成しているかを検出することができる。
続いて、対象ライン余白検出処理プログラムのS131、S135で実行される黒色余白検出実行処理プログラムについて、図面を参照しつつ詳細に説明する。図23は、黒色余白検出実行処理プログラムのフローチャートである。
S131又はS135に移行し、黒色余白検出実行処理プログラムの実行を開始すると、CPU21は、先ず、検出方向設定処理を実行する(S141)。検出方向設定処理(S141)では、CPU21は、上部黒色余白検出時であるか(S131)、下部黒色余白検出時であるか(S135)に基づいて、処理対象ラインにおける黒色画素群の検出方向を設定する。上部黒色余白検出時(S131)の場合、CPU21は、検出開始位置(この場合、処理対象ラインの最上端の位置)から下方向に向かって、順次、黒色画素群の検出処理を行う検出方向を設定する。一方、下部黒色余白検出時(S135)の場合、CPU21は、検出開始位置(この場合、処理対象ラインの最下端の位置)から上方向に向かって、順次、黒色画素群の検出処理を行う検出方向を設定する。検出方向設定処理(S141)終了後、CPU21は、S142に処理を移行する。
S142では、CPU21は、検出開始位置に対象画素を移動する。上述したように、検出開始位置は、上部黒色余白検出時の場合(S131)、処理対象ラインの最上端に位置する画素であり、下部黒色余白検出時の場合(S135)、処理対象ラインの最下端に位置する画素である。対象画素を検出開始位置に移動した後、CPU21は、S143に処理を移行する。
S143に処理を移行すると、CPU21は、現在の対象画素について、対象画素濃度取得処理を実行する。この対象画素濃度取得処理(S143)は、第1実施形態における対象画素濃度取得処理(S54)と同様の処理であるので、詳細な説明を省略する。対象画素濃度取得処理(S143)により対象画素の濃度データを取得した後、CPU21は、黒色余白判定処理(S144)に処理を移行する。
S144においては、CPU21は、黒色余白判定処理を実行する。黒色余白判定処理(S144)では、CPU21は、後述する黒色余白判定処理プログラムを実行する。黒色余白判定処理プログラムの詳細については、後に図面を参照しつつ詳細に説明する。黒色余白判定処理プログラムを実行することで、CPU21は、対象画素濃度取得処理(S143)で取得した対象画素濃度に基づいて、当該対象画素が黒色余白領域を構成する黒色画素であるか否かを判定すると共に、当該処理対象ラインにおける黒色余白領域の有無を示す判定結果を決定する。黒色余白判定処理(S144)を終了すると、CPU21は、S145に処理を移行する。
尚、後述するように、黒色余白判定処理においては、CPU21は、処理対象ラインにおける黒色余白領域の有無を、現時点では判定できない場合がある。この場合には、CPU21は、「判定結果:余白あり」「判定結果:余白なし」の何れの判定結果にも決定しない。
S145に移行すると、CPU21は、黒色余白判定処理(S144)による処理対象ラインにおける黒色余白領域の有無に関する判定結果がRAM23に存在するか否かを判断する。即ち、S145では、CPU21は、RAM23に「判定結果:余白あり」「判定結果:余白なし」の何れかの判定結果が格納されているか否かを判断する。RAM23に何れかの判定結果が格納されている場合(S145:YES)、CPU21は、そのまま黒色余白検出実行処理プログラムを終了する。一方、RAM23に何れの判定結果も格納されていない場合には(S145:NO)、CPU21は、S146に処理を移行する。
S146においては、CPU21は、現在の対象画素が検出最終位置の画素であるか否かを判断する。ここで、検出最終位置とは、検出開始位置から検出方向へ向かって、予め上部画素若しくは下部画素として決定しておいた複数画素分移動した位置をいう。現在の対象画素が検出最終位置の画素である場合(S146:YES)、CPU21は、当該処理対象ラインにおける黒色余白領域の有無に関する判定結果として、「判定結果:余白なし」をRAM23に格納する(S147)。「判定結果:余白なし」をRAM23に格納した後、CPU21は、黒色余白検出実行処理プログラムを終了する。一方、現在の対象画素が検出最終位置の画素でない場合(S146:NO)、CPU21は、S148に処理を移行する。
S148に移行すると、CPU21は、処理対象ライン上を検出方向設定処理で設定された検出方向に向かって、対象画素を移動させる。そして、対象画素を検出方向に向かって移動させた後、対象画素濃度取得処理(S143)に処理を戻す。これにより、新たな画素が対象画素となるので(S148)、CPU21は、新たな対象画素に対する黒色余白判定処理(S144)を行い得る。この黒色余白実行処理プログラムを実行することにより、一の処理対象ライン内(特に上部或いは下部)に黒色画素が連続して存在しているかを検出することができる。また、黒色余白実行処理プログラムは、ページ原稿を構成する全ての処理対象ラインに対して実行される。
次に、黒色余白検出実行処理プログラムのS144で実行される黒色余白判定処理プログラムについて、図面を参照しつつ詳細に説明する。図24は、黒色余白判定処理プログラムのフローチャートである。
S144に移行し、黒色余白判定処理プログラムの実行が開始すると、CPU21は、先ず、対象画素濃度取得処理(S143)で取得した対象画素濃度が白色判定値より大きいか否かを判断する(S151)。ここで、白色判定値とは、黒色余白領域を構成する黒色画素であるか否かを判定する際の判定基準となる濃度値である。尚、黒色余白領域を構成する黒色画素ではない画素を、白色判定画素という。
対象画素濃度が白色判定値よりも大きい場合(S151:YES)、CPU21は、当該対象画素を白色判定画素と判定し、RAM23に形成された白色カウンタに「1」を加算する(S152)。ここで、白色カウンタは、処理対象ライン上に連続して存在する白色判定画素の数を計数するカウンタである。そして、白色カウンタに「1」を加算した後、CPU21は、RAM23に形成された黒色カウンタの値を「0」に初期化する(S153)。この黒色カウンタは、処理対象ライン上に連続して存在し、黒色余白領域を構成する黒色画素であると判定された画素の数を計数するカウンタである。黒色カウンタの数値を初期化した後、CPU21は、S156に処理を移行する。
一方、対象画素濃度が白色判定値以下である場合(S151:NO)、CPU21は、当該対象画素を、黒色余白領域を構成し得る黒色画素と判定し、RAM23の黒色カウンタの値に「1」を加算する(S154)。黒色カウンタの値に「1」を加算した後、CPU21は、RAM23の白色カウンタの値を「0」に初期化する(S155)。白色カウンタの値を初期化すると、CPU21は、S156に処理を移行する。
S156においては、CPU21は、白色カウンタの数値が第1余白判定値より大きいか否かを判断する。ここで、第1余白判定値は、処理対象ライン上に黒色余白領域が存在しないか否かを判断する際の判断基準を示す数値である。そして、白色カウンタの数値が第1余白判定値より大きい場合(S156:YES)とは、処理対象ライン上に多くの白色判定画素(即ち、第1余白判定値よりも大きな数の白色判定画素)が連続して存在する場合を示す。つまり、この場合、黒色余白領域を構成する黒色画素は、処理対象ライン上に連続して存在していない。従って、白色カウンタの数値が第1余白判定値より大きい場合(S156:YES)、CPU21は、当該処理対象ラインに対する判定結果として、「判定結果:余白なし」をRAM23に格納する(S159)。その後、CPU21は、黒色余白判定処理プログラムを終了する。一方、白色カウンタの数値が第1余白判定値以下である場合(S156:NO)、CPU21は、S157に処理を移行する。
S157では、CPU21は、黒色カウンタの数値が第2余白判定値より大きいか否かを判断する。ここで、第2余白判定値は、処理対象ライン上に黒色余白領域が存在するか否かを判断する際の判断基準を示す数値である。そして、黒色カウンタの数値が第2余白判定値より大きい場合(S157:YES)とは、処理対象ライン上に多くの黒色画素(即ち、第2余白判定値よりも大きな数の黒色画素)が連続して存在する場合を示す。つまり、この場合、黒色余白領域を構成する黒色画素は、処理対象ライン上に連続して存在している。従って、黒色カウンタの数値が第2余白判定値より大きい場合(S157:YES)、CPU21は、当該処理対象ラインに対する判定結果として、「判定結果:余白あり」をRAM23に格納する(S158)。その後、CPU21は、黒色余白判定処理プログラムを終了する。一方、黒色カウンタの数値が第2余白判定値以下である場合(S157:NO)、CPU21は、そのまま黒色余白判定処理プログラムを終了する。この場合、RAM23には、「判定結果:余白あり」「判定結果:余白なし」のいずれも格納されることはない。
以上、説明したように、第2実施形態に係る多機能周辺装置1及びブックコピー処理プログラムは、第1実施形態と同様に、見開き状態のブック原稿Gから、第1ページ画像データ50、第2ページ画像データ60を取得し、これらを一枚の記録用紙20に集約出力することができる。これにより、当該多機能周辺装置1は、見開き状態のブック原稿Gと同様の出力結果をユーザに提供することができる。
そして、第2実施形態に係る多機能周辺装置1及びブックコピー処理プログラムは、ブック原稿Gの見開き方向に応じて(S14)、第1ページ画像データ50又は第2ページ画像データ60の何れかを180°回転させた態様で、一枚の記録用紙20に集約出力する(S15、S16、S19)。即ち、多機能周辺装置1及びブックコピー処理プログラムは、第1ページ画像データ50、第2ページ画像データ60を集約出力する際に、ブック原稿Gを順次180°回転させてページ単位で読み取らせたとしても、第1ページ画像、第2ページ画像の向きを同じ方向にして集約出力し得る(図25(A)参照)。この結果、記録用紙20上において、第1ページ画像データ50に基づく画像と、第2ページ画像データ60に基づく画像とが同じ向きに配置された集約出力結果をユーザに提供することができ、もって、見やすい態様のブック原稿Gに基づく集約出力結果を提供しうる。
又、当該多機能周辺装置1及びブックコピー処理プログラムは、ブック原稿Gの見開き方向に応じて、記録用紙20における第1ページ画像と第2ページ画像の配置を決定し(S17)、決定した配置に基づいて、第1ページ画像データ50、第2ページ画像データ60を一枚の記録用紙20に集約出力する(S19)。これにより、当該多機能周辺装置1及びブックコピー処理プログラムは、ブック原稿Gにおける第1ページ画像、第2ページ画像と同様の配置の出力結果を提供しうる(図25(B)参照)。つまり、多機能周辺装置1及びブックコピー処理プログラムは、ブック原稿Gにおける読み進める順番と同じ順番で読み進めることができる集約出力結果を提供することができ、もって、読みやすいブック原稿Gに基づく集約出力結果をユーザに提供し得る。
又、当該多機能周辺装置1及びブックコピー処理プログラムは、ブック原稿Gをページ単位で読み取った第1ページ画像データ50、第2ページ画像データ60に黒色余白領域(即ち、第1ページ黒色余白領域54、第2ページ黒色余白領域64)が含まれる場合であっても、当該黒色余白領域を出力対象から除外して(S18)、第1ページ画像データ50、第2ページ画像データ60に基づく集約出力を行う(S19)。即ち、黒色余白領域を有する2つのページ画像データの一を180°回転して集約出力したとしても、記録用紙20の左右に位置する第1ページ画像と第2ページ画像との間に「段差D」が生じることはない(図17、図18参照)。この結果、集約出力結果の左側部分と右側部分で、第1ページ画像と第2ページ画像が同じ高さで出力されるので(図25(C)参照)、ユーザは、非常に見やすいブック原稿Gに基づく集約出力結果を手にすることができる。
更に、当該多機能周辺装置1及びブックコピー処理プログラムは、段差Dを生じさせることのない黒色余白領域についても、集約出力に係る出力対象から除外し(S18)、ブック原稿Gに基づく集約出力を行う(S19)。従って、当該多機能周辺装置1及びブックコピー処理プログラムによる集約出力結果において、記録用紙20の右側と左側は、ページ画像部分を除き同様の態様となる(図25(D)参照)。この結果、ユーザは、非常に見やすいブック原稿Gに基づく集約出力結果を手にすることができる。
(第3実施形態)
続いて、上述した第1実施形態、第2実施形態と異なる実施形態(第3実施形態)について図面を参照しつつ詳細に説明する。この第3実施形態に係る多機能周辺装置1は、第1実施形態に係る多機能周辺装置1と同様の構成を有しており、ブックコピー処理プログラム、段差解消処理プログラム、余白除去処理プログラムの内容は、第1実施形態、第2実施形態と同様である。従って、第3実施形態においては、これらに関する説明を省略する。
そして、第3実施形態に係る多機能周辺装置1は、対象ページ画像データにおける余白領域を検出する際に実行される余白検出処理プログラムの内容に関し、上述した第1実施形態、第2実施形態と相違する。従って、第3実施形態においては、これら第1実施形態及び第2実施形態との相違点について詳細に説明する。
先ず、第3実施形態に係る余白検出処理プログラムについて、図面を参照しつつ詳細に説明する。図26は、第3実施形態に係る余白検出処理プログラムのフローチャートである。そして、第3実施形態では、CPU21は、第1実施形態と同様に、段差解消処理プログラム(図9)のS21、S24において、第3実施形態に係る余白検出処理プログラムを実行する。
段差解消処理プログラムのS21又はS24に移行し、余白検出処理プログラムの実行を開始すると、CPU21は、先ず、エッジ抽出処理を実行する(S201)。このエッジ抽出処理(S201)では、CPU21は、対象ページ画像データの各画素の濃度又は輝度が急激に変化する部分をエッジとして抽出する。このエッジ抽出処理によれば、CPU21は、対象ページ原稿画像データの原稿外部分が黒色余白領域であるか白色余白領域であるかにかかわらず、ページ原稿画像領域(即ち、第1ページ原稿画像領域51、第2ページ原稿画像領域61)の境界部分を抽出し得る。エッジ抽出処理(S201)を終了すると、CPU21は、S202に処理を移行する。尚、エッジ抽出処理は既に公知の処理であるので、エッジ抽出処理(S201)に関する詳細な説明は省略する。
S202に移行すると、CPU21は、エッジ検出処理を実行する。このエッジ検出処理(S202)では、CPU21は、上述したエッジ検出処理プログラムを実行する。第1実施形態において、当該エッジ検出処理プログラムについて既に説明しているので、再度の説明は省略する。エッジ検出処理(S202)を終了すると、CPU21は、第3実施形態に係る余白検出処理プログラムを終了する。
以上説明したように、第3実施形態に係る多機能周辺装置1及びブックコピー処理プログラムは、第1実施形態、第2実施形態と同様に、見開き状態のブック原稿Gから、第1ページ画像データ50、第2ページ画像データ60を取得し、これらを一枚の記録用紙20に集約出力することができる。これにより、当該多機能周辺装置1は、見開き状態のブック原稿Gと同様の出力結果をユーザに提供することができる。
そして、第3実施形態に係る多機能周辺装置1及びブックコピー処理プログラムは、第1実施形態、第2実施形態と同様に、第1ページ画像データ50、第2ページ画像データ60を集約出力する際に、ブック原稿Gを順次180°回転させてページ単位で読み取らせたとしても、ブック原稿Gの見開き方向に応じて(S14)、第1ページ画像、第2ページ画像の向きを同じ方向にして集約出力し得る(S15、S16、S19)。この結果、記録用紙20上において、第1ページ画像データ50に基づく画像と、第2ページ画像データ60に基づく画像とが同じ向きに配置された集約出力結果をユーザに提供することができ、もって、見やすい態様のブック原稿Gに基づく集約出力結果を提供しうる。
又、当該多機能周辺装置1及びブックコピー処理プログラムは、ブック原稿Gの見開き方向に応じて、記録用紙20における第1ページ画像と第2ページ画像の配置を決定し(S17)、決定した配置に基づいて、第1ページ画像データ50、第2ページ画像データ60を一枚の記録用紙20に集約出力する(S19)。これにより、多機能周辺装置1及びブックコピー処理プログラムは、ブック原稿Gにおける読み進める順番と同じ順番で読み進めることができる集約出力結果を提供することができ、もって、読みやすいブック原稿Gに基づく集約出力結果をユーザに提供し得る。
そして、第3実施形態に係る多機能周辺装置1及びブックコピー処理プログラムによれば、余白検出処理プログラムにより、第1ページ画像データ50、第2ページ画像データ60におけるエッジを抽出する(S201、S202)。つまり、当該多機能周辺装置1及びブックコピー処理プログラムによれば、これらのページ画像データに白色余白領域が含まれる場合であっても、黒色余白領域が含まれる場合であっても、当該白色余白領域、黒色余白領域を特定し得る。
従って、当該多機能周辺装置1及びブックコピー処理プログラムは、ブック原稿Gをページ単位で読み取った第1ページ画像データ50、第2ページ画像データ60に白色余白領域や黒色余白領域が含まれる場合であっても、当該白色余白領域や黒色余白領域を出力対象から除外して(S18)、第1ページ画像データ50、第2ページ画像データ60に基づく集約出力を行い得る(S19)。即ち、当該多機能周辺装置1及びブックコピー処理プログラムによれば、集約出力結果の左側部分と右側部分で、第1ページ画像と第2ページ画像が同じ高さで出力されるので、ユーザは、非常に見やすいブック原稿Gに基づく集約出力結果を手にすることができる。
更に、当該多機能周辺装置1及びブックコピー処理プログラムは、段差Dを生じさせることのない黒色余白領域、白色余白領域についても、集約出力に係る出力対象から除外し(S18)、ブック原稿Gに基づく集約出力を行う(S19)。従って、当該多機能周辺装置1及びブックコピー処理プログラムによる集約出力結果において、記録用紙20の右側と左側は、ページ画像部分を除き同様の態様となる。この結果、ユーザは、非常に見やすいブック原稿Gに基づく集約出力結果を手にすることができる。
以上、第1実施形態〜第3実施形態に基づき本発明を説明したが、本発明は上記各実施形態に何ら限定されるものでなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
例えば、上記各実施形態では、第1ページ画像回転設定処理(S15)、第2ページ画像回転設定処理(S16)において、CPU21は、第1ページ画像データ50又は第2ページ画像データ60の何れかを180°回転する画像編集を実行するように構成しているが、この態様に限定されるものではない。具体的には、図27に示すように、第1ページ画像回転設定処理(S15)、第2ページ画像回転設定処理(S16)において、画像データに対する編集を行わず、第1ページ画像データ50又は第2ページ画像データ60の読出方向を逆方向から読み出すように構成してもよい。図27に示すように、第1ページ画像データ50又は第2ページ画像データ60の読出方向を逆に設定することで、出力結果は、180°回転された態様となる。
又、各実施形態における余白除去処理プログラムにおいては、ページ画像データの読出開始位置(即ち、先頭ポインタの位置)や読出終了位置(即ち、最終ポインタの位置)を変更することで、白色余白領域、黒色余白領域を出力対象から除外するように構成していたが、この態様に限定するものではない。例えば、第1ページ画像データ50、第2ページ画像データ60における白色余白領域や黒色余白領域に相当する部分の画像データを削除することで、出力対象から除外することも可能である。
更に、各実施形態においては、一枚の記録用紙20に第1ページ画像データ50、第2ページ画像データ60の2つの画像を集約出力する態様について説明したが、この態様に限定するものではない。例えば、一枚の記録用紙20に対して、4つのページ画像データを集約出力する態様や、8つのページ画像データを集約出力する態様においても、本発明を適用することは可能である。
更に、本発明は、上記実施形態に示す多機能周辺装置1に限らず、種々の装置(例えば、コピー専用機)に対しても適用し得る。即ち、本発明に係る画像処理装置及び画像処理装置の制御プログラムは、画像処理装置における出力態様を、記録紙に対する印刷出力に限定するものではない。例えば、記録部を介して、記録紙を除く他の記録媒体に対して出力する構成であっても良いし、表示部に対する出力であっても良い。更に、パーソナルコンピュータ等の情報処理装置に対して出力する構成であっても良いことは、勿論である。