A.第1実施例
A−1.端末装置100の構成
次に、本発明の実施の形態を実施例に基づき説明する。図1は、本発明の画像処理装置としての端末装置100の構成を示すブロック図である。端末装置100は、例えば、パーソナルコンピュータやスマートフォンなどの計算機であり、プロセッサとしてのCPU110と、DRAM(Dynamic Random Access Memoryの略)などの揮発性記憶装置120と、フラッシュメモリやハードディスクドライブなどの不揮発性記憶装置130と、液晶ディスプレイなどの表示部140と、マウスやキーボードなど操作部150と、外部装置と通信を行うためのインタフェースである通信IF170と、を備えている。
通信IF170は、例えば、イーサネット(登録商標)規格に準拠したネットワークインタフェースを含み、該ネットワークインタフェースを介して、ローカルエリアネットワークLNに接続されている。これによって、端末装置100は、ローカルエリアネットワークLNを介して、印刷実行部としてのプリンタ300や読取実行部としてのスキャナ400などの外部装置と通信可能に接続される。
揮発性記憶装置120は、CPU110が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置130には、コンピュータプログラムPG1が格納されている。コンピュータプログラムPG1は、例えば、プリンタ300を制御するためのドライバプログラムである。コンピュータプログラムPG1は、例えば、プリンタ300の製造者が運用するサーバからダウンロードされる形態で提供されても良い。これに代えて、コンピュータプログラムPG1は、DVD−ROMなどに格納される形態で提供されてもよく、端末装置100の製造時に不揮発性記憶装置130に格納(インストール)される形態で提供されても良い。
CPU110は、コンピュータプログラムPG1を実行することにより、プリンタ300を制御して、プリンタ300に画像を印刷させるためのプリンタドライバとして機能する。具体的には、CPU110は、コンピュータプログラムPG1を実行することにより、後述する印刷処理を実行することができる。
プリンタ300は、例えば、トナーやインクなどの色材を用いて、所定の方式(例えば、レーザ方式やインクジェット方式)に従って、用紙などの印刷媒体上に、画像を印刷する装置である。本実施例のプリンタ300は、シアン(C)、マゼンタ(M)、イエロ(Y)、ブラック(K)の4種類のインクを用いて、カラー印刷を行うインクジェットプリンタである。プリンタ300は、用紙トレイに格納される用紙の種類、すなわち、印刷に用いられる用紙の種類を自動的に特定する用紙センサ310を備えている。用紙センサ310は、用紙の表面からの反射光の反射率や波長を測定することによって、印刷に用いられる用紙が、光沢紙と普通紙とを含む複数種の用紙のうちのいずれであるかを検出する。
スキャナ400は、例えば、原稿などの対象物を、イメージセンサを用いて光学的に読み取ることによって、該原稿などの対象物を示すスキャンデータを生成する装置である。
A−2.印刷処理
図2は、印刷処理のフローチャートである。この画像処理は、端末装置100においてプリンタドライバが起動されて、該プリンタドライバに対して、ユーザから印刷指示が入力されたときに実行される。印刷指示は、該プリンタドライバによって表示部140に表示されるユーザインタフェース画面(UI画面)を介して、入力される。印刷指示は、各種の印刷に関連する条件を示す印刷条件情報、例えば、印刷の対象画像を示す対象画像データを指定する情報を含む。
図3は、印刷指示を入力するためのUI画面の一例を示す図である。図3のUI画面WI1は、印刷に関連する複数個の設定項目のそれぞれについて、対応する複数個の選択肢の中から、1個の有効な選択肢を指定するための入力要素を含んでいる。具体的には、UI画面WI1は、複数個の選択肢から設定情報を入力するプルダウンメニューPM1と、複数個のラジオボタンRB1〜RB9と、複数個のボタンBT1、BT2と、を含んでいる。
プルダウンメニューPM1は、印刷媒体としての用紙のサイズの指定を入力するための入力要素である。ラジオボタンRB1、RB2は、用紙を縦方向として印刷するか横方向として印刷するかの指示を入力するための入力要素である。ラジオボタンRB3、RB4は、用紙の両面に印刷を行う両面印刷と、用紙の片面に印刷を行う片面印刷と、のいずれを実行するかの指示を入力するための入力要素である。
ラジオボタンRB5〜RB7は、印刷のカラーモードの指定を入力するための入力要素である。カラーモードの選択肢は、本実施例では、モノクロモード、CMYモード、CMYKモードの3種類である。モノクロモードは、無彩色のKインクだけを用いて、C、M、Yのインクを用いずに、印刷を行うモードである。CMYモードは、3種類の有彩色インク、すなわち、C、M、Yのインクだけを用いて、Kインクを用いずに、印刷を行うモードである。CMYKモードは、4種類のインク、すなわち、C、M、Y、Kのインクを用いて、印刷を行うモードである。
ラジオボタンRB8、RB9は、印刷の画質モードの指定を入力するための入力要素である。画質モードの選択肢は、本実施例では、高画質モードと、高速モードと、の2種類である。高画質モードで印刷される画像は、高速モードで印刷される画像よりも画質が高い。一方で、高画質モードの印刷に要する時間は、高速モードの印刷に要する時間よりも長い。例えば、高画質モードでは、例えば、2パス印刷や4パス印刷などのマルチパス印刷が行われ、高速モードでは、1パス印刷が行われる。
UI画面WI1において、印刷ボタンBT1が押下されると、その時点でUI画面WI1にて指定されている選択肢を示す設定情報が、対応する設定項目の有効な設定情報として記憶される。有効な設定情報は、印刷指示に含まれる条件情報の一種である、と言うことができる。
S10では、CPU110は、印刷指示に含まれる情報によって指定される対象画像データを取得する。本実施例の対象画像データは、例えば、スキャナ400によって生成されるスキャンデータであっても良い。また、対象画像データは、文書作成ソフトや描画ソフトなどによって作成された画像データであっても良い。CPU110は、端末装置100の不揮発性記憶装置130に保存された対象画像データを、不揮発性記憶装置130から取得する。これに代えて、CPU110は、スキャナ400を制御して、スキャナ400の原稿台に設置された原稿をスキャナ400に読み取らせることによって、スキャナ400にスキャンデータを生成させても良い。この場合は、CPU110は、該スキャンデータを、対象画像データとしてスキャナ400から取得する。
本実施例で取得される対象画像データは、複数個の画素の値を含み、複数個の画素の値のそれぞれは、画素の色をRGB値で表す。すなわち、対象画像データは、RGB画像データである。1個の画素のRGB値は、例えば、赤(R)と緑(G)と青(B)との3個の成分値(以下、R値、G値、B値とも呼ぶ)を含んでいる。本実施例では、各成分値の階調数は、256階調である。なお、取得される対象画像データが、RGB画像データではない場合には、例えば、該対象画像データに対して、ラスタライズ処理や変換処理が実行されて、RGB画像データに変換される。
図4は、本実施例で用いられる画像の一例を示す図である。図4(A)には対象画像データによって示される対象画像SIの一例が示されている。この対象画像SIは、複数個の画素を含む。該複数個の画素は、第1方向D1と、第1方向D1と直交する第2方向D2と、に沿って、マトリクス状に配置されている。対象画像SIは、背景Bg1と、2個の文字とは異なるオブジェクト(非文字とも呼ぶ)Ob1、Ob2と、4個の文字Ob3〜Ob6と、を含んでいる。非文字は、例えば、写真や描画である。
S15では、CPU110は、印刷に関連する印刷条件情報を取得する。具体的には、CPU110は、用紙の種類を示す情報と、対象画像データの種類を示す情報と、印刷で用いられるべき印刷モードを示す情報と、プリンタ300の総印刷枚数を示す情報と、を印刷条件情報として、取得する。
CPU110は、用紙の種類を示す情報を、プリンタ300に対して、該情報の送信を要求することによって、プリンタ300から取得する。プリンタ300のCPUは、端末装置100からの要求に応じて、用紙センサ310を用いて、トレイ内の用紙の種類を特定し、該用紙の種類を示す情報を、端末装置100に対して送信する。
CPU110は、例えば、S10にて取得済みの対象画像データのファイル名に含まれる拡張子(例えば、「.jpg」、「.bmp」)や対象画像データのヘッダ情報に基づいて、該対象画像データの保存形式を特定し、該保存形式を示す情報を、対象画像データの種類を示す情報として取得する。対象画像データの種類を示す情報は、例えば、対象画像データが、JPEG形式で保存されていることを示す情報や、ビットマップ形式で保存されていることを示す情報などを含む。
CPU110は、上述した図3のUI画面WI1を介して取得される印刷に関する設定情報に含まれる情報であって、指定されたカラーモードおよび画質モードを示す情報を、印刷モードを示す情報として、取得する。
CPU110は、総印刷枚数を示す情報を、プリンタ300に対して、該情報の送信を要求することによって、プリンタ300から取得する。プリンタ300のCPUは、製造後に印刷された枚数の合計である総印刷枚数を示す情報を、装置に関する情報を格納するデータベースに保存しており、印刷を行う度に、該情報を更新している。プリンタ300のCPUは、端末装置100からの要求に応じて、総印刷枚数を示す情報を、データベースから取得し、端末装置100に対して送信する。
S20では、CPU110は、S15にて取得された印刷条件情報を用いて、分類条件決定処理を実行する。分類条件決定処理は、後述するS30のオブジェクト分類処理にて、オブジェクトを、文字と非文字とに分類する際に用いられる分類条件を決定する処理である。該分類条件決定処理については後述する。
S25では、CPU110は、対象画像データを用いて、オブジェクト特定処理を実行する。オブジェクト特定処理は、対象画像データを解析することによって、対象画像SI内のオブジェクトを示すオブジェクト領域を特定する処理である。オブジェクト特定処理によって、例えば、図4(A)の対象画像SI内の非文字Ob1、Ob2を示すオブジェクト領域OA1、OA2が特定される。また、対象画像SI内の文字Ob3〜Ob6を示すオブジェクト領域OA3、OA4が特定される。該オブジェクト特定処理については後述する。
S30では、CPU110は、対象画像データを用いて、オブジェクト分類処理を実行する。オブジェクト分類処理は、対象画像SI内に特定済みの複数個のオブジェクト領域を、文字を示す文字領域を含む複数種類の領域に分類する処理である。本実施例のオブジェクト分類処理では、各オブジェクト領域は、文字領域と、非文字を示す非文字領域と、のいずれかに分類される。該オブジェクト分類処理については後述する。例えば、図4(A)の対象画像SI内のオブジェクト領域OA1、OA2は、非文字領域に分類され、オブジェクト領域OA3、OA4は、文字領域に分類される。
S40では、CPU110は、S15にて取得された印刷条件情報を用いて、圧縮条件決定処理を実行する。圧縮条件決定処理では、文字領域の文字の色数に応じて、文字領域を、対象画像SIから分離してJPEG圧縮方式とは異なる圧縮方式によって圧縮するか、対象画像SIから分離せずにJPEG圧縮方式によって圧縮するかが決定される。以下では、図4の例では、単色の文字領域OA3は、対象画像SIから分離されてMMR圧縮方式によって圧縮されると決定され、2色の文字領域OA4は、対象画像SIから分離されてZIP圧縮方式によって圧縮されると決定されるものとして説明する。
また、圧縮条件決定処理では、印刷条件情報に応じて、対象画像データまたは非文字画像データ(後述)を、JPEG圧縮方式によって圧縮する際の圧縮レベルが決定される。決定される圧縮レベルが高いほど、JPEG圧縮方式による圧縮率が高くなる。該圧縮条件決定処理については後述する。
S45では、CPU110は、対象画像SIから分離すべき文字領域があるか否かを判断する。図4の例では、上述したように、図4(A)の文字領域OA3、OA4は、S40の圧縮条件決定処理にて、対象画像SIから分離されると決定されるので、本ステップでは、分離すべき文字領域があると判断される。
対象画像SIから分離すべき文字領域がある場合には(S45:YES)、S50にて、CPU110は、対象画像データを用いて、非文字画像GIを示す非文字画像データを生成する。非文字画像GIは、対象画像SIから、分離すべき文字領域内の文字が消去された画像である。具体的には、CPU110は、分離すべき文字領域内の文字を構成する画素を特定する。文字を構成する画素は、オブジェクト特定処理において生成される二値画像データ(詳細は後述)を用いて特定される。CPU110は、対象画像SIにおける文字を構成する画素の色値を、対象画像SIの背景Bgの色を表す値に変更する。この結果、対象画像SIから文字が消去される。対象画像SIの背景Bgの色を表す値は、オブジェクト特定処理において算出されている(詳細は後述)。
図4(B)には、非文字画像データによって示される非文字画像GIの一例が示されている。非文字画像GIは、対象画像SI内の非文字Ob1、Ob2を含み、対象画像SI内の文字Ob3〜Ob6を含まない。
S55では、CPU110は、文字画像データを生成する。文字画像データは、分離すべき文字領域内の文字を示す画像データである。文字画像データは、文字領域内の文字を構成する画素と文字を構成しない画素とを示す。文字画像データは、分離すべき文字領域内の文字の色数が、1色である場合には、該文字領域内の文字を構成する画素と、文字を構成しない画素と、を示す二値画像データである。文字画像データは、分離すべき文字領域内の文字の色数が、2色または3色である場合には、文字を構成する画素を文字色ごとに分けて示すために、三値画像データ、または、四値画像データである。
図4(C)には、対象画像SIの文字領域OA3内の文字を示す文字画像データによって示される文字画像TI3と、文字領域OA4内の文字を示す文字画像データによって示される文字画像TI4と、が示されている。文字画像データには、文字の色を示す文字色値TCと、対象画像SIにおける文字領域の位置を示す座標値CDと、が関連付けられる。文字色値TCは、文字の色を表すRGB値であり、例えば、文字を構成する画素の色値であるRGB値の平均値である。座標値CDは、非文字画像GIに対して、文字画像データによって表される文字画像が配置されるべき位置を表す情報である。図4(C)の例では、文字画像TI3を表す文字画像データに、文字色値TC1(R1、G1、B1)と、座標値CD1(X1、Y1)と、が関連付けられている。文字画像TI4を表す文字画像データに、2色分の文字色値TC2(R2、G2、B2)、TC3(R3、G3、B3)と、座標値CD2(X2、Y2)と、が関連付けられている。
対象画像SIから分離すべき文字領域がない場合には(S45:NO)、CPU110は、S50およびS55をスキップする。
S60では、CPU110は、S40の決定処理にて決定された圧縮方式によって、圧縮対象の画像データを圧縮する圧縮処理を実行する。圧縮対象の画像データは、S50およびS55が実行された場合には、非文字画像データと文字画像データであり、S50およびS55がスキップされた場合には、対象画像データである。非文字画像データ、および、対象画像データは、JPEG圧縮方式によって圧縮され、文字画像データは、MMR圧縮方式またはZIP圧縮方式によって圧縮される。
S65では、CPU110は、圧縮済みの画像データ(対象画像データ、または、非文字画像データと文字画像データ)を用いて、圧縮PDFファイルを生成する。圧縮済みの画像データが、非文字画像データと、文字画像データと、に分かれている場合には、CPU110は、圧縮済みの非文字画像データを、最下層のレイヤーとして表示させる画像データとして、PDFファイルに格納する。そして、CPU110は、圧縮済みの文字画像データを、圧縮済みの非文字画像データより上位層のレイヤーとして表示する画像データとして、PDFファイルに格納する。圧縮済みの文字画像データは、文字色値TCおよび座標値CDと関連付けて、PDFファイルに格納される。
S70では、CPU110は、生成された圧縮PDFファイルをプリンタ300に対して送信して、印刷処理を終了する。該圧縮PDFファイルを受信したプリンタ300は、圧縮PDFファイル内の画像データを解凍して、解凍された画像データを用いて、印刷データを生成する。プリンタ300は、該印刷データを用いて、圧縮PDFファイルによって示される画像を用紙上に印刷する。
以上説明した印刷処理によれば、圧縮PDFファイルを生成して、プリンタ300に送信するので、例えば、圧縮されていない対象画像データを、プリンタ300に送信する場合と比較して、ローカルエリアネットワークLNのトラフィックを低減できる。
A−3.分類条件決定処理
図2のS20の分類条件決定処理について、説明する。図5は、第1実施例の分類決定処理のフローチャートである。分類条件決定処理では、印刷条件情報を用いて、図2のS30のオブジェクト分類処理にて用いられる分類条件を決定する。
S110では、CPU110は、文字検出レベルを初期値(例えば、レベル1)に設定する。文字検出レベルが高いほど、判定対象のオブジェクト領域が、文字領域に分類される確率が高くなり、非文字領域に分類される確率が低くなるように、分類条件が決定される。ここで、対象画像SIの主要オブジェクトが文字である場合には、文字検出レベルを高くして、文字領域が漏れなく文字領域に分類される確率を高め、文字領域が誤って非文字領域に分類される確率を低くすることが好ましい。主要オブジェクトが非文字(例えば、写真や描画)である場合には、文字検出レベルを低くして、非文字領域が漏れなく非文字領域に分類される確率を高め、非文字領域が誤って文字領域に分類される確率を低くすることが好ましい。このために、本実施例の分類条件決定処理では、主要オブジェクトが文字である確率が高いほど、文字検出レベルを高くし、主要オブジェクトが非文字である確率が高いほど、文字検出レベルを高くするように、工夫されている。
S120では、CPU110は、印刷条件情報の1つである取得済みの用紙の種類を示す情報に基づいて、印刷に用いられる用紙が、普通紙であるか、光沢紙であるか、を判断する。光沢紙は、普通紙より高い画質で印刷を行うことができ、一般的には普通紙よりも高額である。このために、光沢紙は、高い画質が要求される非文字(例えば、写真)の印刷に用いられる確率が高く、普通紙は、高い画質が要求されない文字の印刷に用いられる確率が高い。このために、印刷に用いられる用紙が、普通紙である場合には(S120:YES)、S130にて、CPU110は、文字検出レベルを1段階高くする。印刷に用いられる用紙が、光沢紙である場合には(S120:NO)、CPU110は、文字検出レベルを変更しない。
S140では、CPU110は、印刷条件情報の1つであるカラーモードを示す情報に基づいて、印刷に用いられるカラーモードが、CMYモードとは異なるモード、すなわち、CMYKモード若しくはモノクロモードであるか否かを判断する。CMYモードは、Kインクを使用しない分、濃度を確保するためにCMYインクを多用する。そのため、CMYモードでは、単位面積当たりのインク使用量が増えるので、CMYKモードやモノクロモードと比較して、インクが滲みやすく、文字のエッジが目立ちにくくなる。このために、文字が主要オブジェクトである場合には、CMYモードが用いられる確率は低い。文字が主要オブジェクトである場合には、CMYKモードもしくはモノクロモードが用いられる確率が高い。このために、印刷に用いられるカラーモードが、CMYKモードもしくはモノクロモードである場合には(S140:YES)、S150にて、CPU110は、文字検出レベルを1段階高くする。印刷に用いられるカラーモードが、CMYモードである場合には(S140:NO)、CPU110は、文字検出レベルを変更しない。
S160では、CPU110は、印刷条件情報の1つである対象画像データの種類を示す情報に基づいて、対象画像データの種類が、ベクトルデータであるか、ビットマップデータであるかを判断する。ベクトルデータは、例えば、文書作成アプリケーションで作成された画像データを含み、ビットマップデータと比較して、文字を含む画像を示す確率が高い。ビットマップデータは、例えば、JPEG形式の画像データを含み、ベクトルデータと比較して、写真を含む画像を示す確率が高い。このために、対象画像データの種類が、ベクトルデータである場合には(S160:YES)、S170にて、CPU110は、文字検出レベルを1段階高くする。対象画像データの種類が、ビットマップデータである場合には(S160:NO)、CPU110は、文字検出レベルを変更しない。
S180では、CPU110は、文字検出レベルに応じて、分類用の閾値Cth、Sthを、分類条件として決定する。本実施例の分類条件決定処理では、文字検出レベルは、1、2、3、4のいずれかの値を取る。また、詳細は後述するが、分類用の閾値Cth、Sthが大きいほど、オブジェクト領域が文字領域に分類される確率が高くなる。このために、例えば、分類用の閾値Cth、Sthは、以下のように決定される。
文字検出レベルが「1」である場合は、閾値Cthは、標準値に決定され、閾値Sthは、標準値より小さな値に決定される。文字検出レベルが「2」である場合は、閾値Cthは、標準値に決定され、閾値Sthは、標準値に決定される。文字検出レベルが「3」である場合は、閾値Cthは、標準値に決定され、閾値Sthは、標準値より大きな値に決定される。文字検出レベルが「4」である場合は、閾値Cthは、標準値より大きな値に決定され、閾値Sthは、標準値より大きな値に決定される。
A−4.オブジェクト特定処理
図2のS25のオブジェクト特定処理について、説明する。図6は、オブジェクト特定処理のフローチャートである。図7は、オブジェクト特定処理の説明図である。オブジェクト特定処理では、対象画像データを解析することによって、対象画像SI内のオブジェクトを示すオブジェクト領域が特定される。
S210では、CPU110は、対象画像データを用いて、エッジ画像データを生成する。図7(A)には、エッジ画像データによって表されるエッジ画像EIの概略図が示されている。
エッジ画像EIは、対象画像SI内の各画素位置におけるエッジ強度を表している。本実施例では、対象画像データの各画素の値に対して、エッジ抽出フィルタ、例えば、ソーベルフィルタ(Sobel filter)を適用することによって、RGBの色成分ごとに、エッジ強度Seが算出される。図7(A)では、エッジ強度が比較的大きい画素(以下、エッジ画素とも呼ぶ)の位置を、一点破線Eg1〜Eg6で示している。図7(A)のエッジ画像EIは、対象画像SI(図4(A))のオブジェクトOb1〜Ob6に対応するエッジ画素Eg1〜Eg6を含んでいる。
S220では、CPU110は、複数個の画素を含むブロックBLをエッジ画像EI上に設定する。図7(A)の破線は、エッジ画像EI上にマトリクス状に配置されたブロックBLを示している。1個のブロックBLは、例えば、BLn行×BLn列(BLnは、2以上の整数)の画素PXで構成されたブロックである。BLnの値には、例えば、10〜50の範囲内の値を採用可能である。
S230では、CPU110は、ブロックBL単位で、ベタ領域と非ベタ領域とを特定する。ベタ領域は、領域が有するエッジ強度が所定の基準未満の領域であり、非ベタ領域とは、領域が有するエッジ強度が所定の基準以上の領域である。具体的には、CPU110は、ブロックBL毎に、平均エッジ強度であるERave、EGave、EBaveを算出する。平均エッジ強度ERave、EGave、EBaveは、RGBの色成分ごとに、算出される。CPU110は、平均エッジ強度ERave、EGave、EBaveを、色成分ごとに定められた基準値であるETr、ETg、ETbと比較する。この結果、ERave<ETr、かつ、EGave<ETg、かつ、EBave<ETbが成立する場合には、処理対象のブロックBLは、ベタブロックに決定される。ERave≧ETr、および、EGave≧ETg、および、EBave≧ETbのうちの少なくとも一つが成立する場合には、処理対象のブロックBLは、非ベタブロックに決定される。図7(A)のエッジ画像EIにおいて、非ベタブロックには、ハッチングが付され、ベタブロックには、ハッチングが付されていない。
S240では、CPU110は、ベタ領域と非ベタ領域とを連結してオブジェクト領域と背景領域とを特定する。具体的には、互いに隣り合う(連続する)1個以上の非ベタブロックが連結されて、1個のオブジェクト領域として特定される。また、互いに隣り合う1個以上のベタブロックが連結されて、1個の背景領域として特定される。図7(A)の例では、対象画像SI(図2(A))のオブジェクトOb1〜Ob6に対応するオブジェクト領域L11〜L14が特定されている。さらに、対象画像SIの背景Bgに対応する1個の背景領域L10が特定されている。
S250では、CPU110は、対象画像SI内の各オブジェクト領域を二値化するための二値化基準値を、対象画像SI内のオブジェクト領域の周囲を囲む背景領域内の画素の色値を用いて、オブジェクト領域L11〜L14毎に決定する。本実施例では、二値化基準値は、RGBの成分毎に決定される。具体的には、オブジェクト領域の周囲を囲む背景領域の全ての画素についての、RGBの各成分値の平均値Rr、Gr、Brが、二値化基準値として採用される。図7(A)の例では、全てのオブジェクト領域L11〜L14は、1個の背景領域L10に囲まれているので、全てのオブジェクト領域L11〜L14の二値化基準値は、同じ値となる。
S250では、CPU110は、オブジェクト領域L11〜L14ごとに、二値画像データを生成する。具体的には、二値化基準値Rr、Gr、Brを用いて算出される6個の閾値R1、R2、G1、G2、B1、B2を用いて二値化処理が実行される。
R成分の下限閾値R1=Rr−dV、R成分の上限閾値R2=Rr+dV
G成分の下限閾値G1=Gr−dV、G成分の上限閾値G2=Gr+dV
B成分の下限閾値B1=Br−dV、B成分の上限閾値B2=Br+dV
CPU110は、これらの6個の閾値R1、R2、G1、G2、B1、B2を用いて、対象画像SIにおけるオブジェクト領域内の各画素を、1画素毎に、オブジェクト画素と、背景画素と、に分類することによって、オブジェクト領域の二値画像データを生成する。
具体的には、オブジェクト領域内の画素Pxiの階調値であって、RGBの色成分の階調値であるRi、Gi、Biが、以下の3つの条件を全て満たす場合には、画素Pxiは、背景画素に分類され、以下の3つの条件のいずれかを満たさない場合に、画素Pxiは、オブジェクト画素に分類される。
(第1条件)R1<Ri<R2
(第2条件)G1<Gi<G2
(第3条件)B1<Bi<B2
図7(B)には、二値画像BIが示されている。実際には、上述したオブジェクト領域L11〜L14毎に、別々の二値画像データが生成されるが、図7(B)では、1個の二値画像BIで示している。二値画像BI内の黒色の部分は、オブジェクト画素に分類された画素群を示す。図7(B)の二値画像BIは、オブジェクト領域L11〜L14に対応する二値画像BI1〜BI4を含んでいる。
以上のオブジェクト特定処理によって、対象画像SI内のオブジェクト領域L11〜L14が特定されるとともに、各オブジェクト領域について、オブジェクト画素と背景画素とを示す二値画像データが生成される。
A−5.オブジェクト分類処理
図2のS30のオブジェクト分類処理について、説明する。図8は、オブジェクト分類処理のフローチャートである。図9は、オブジェクト分類処理の説明図である。オブジェクト分類処理では、対象画像SI内に特定済みの複数個のオブジェクト領域が、文字領域と、非文字領域と、のいずれかに分類される。
S310では、CPU110は、特定済みのオブジェクト領域L11〜L14の中から注目オブジェクト領域を選択する。
S320では、CPU110は、注目オブジェクト領域内の画素密度Sを算出して、バッファ領域221に格納する。画素密度Sは、注目オブジェクト領域のオブジェクト画素を示す二値画像内の総画素数に対する、オブジェクト画素の画素数である。例えば、注目オブジェクト領域が、図7(A)のオブジェクト領域L11である場合には、図7(B)の二置画像BI1の総画素数に対する、オブジェクト画素の画素数が、画素密度Sとして算出される。
S330では、CPU110は、注目オブジェクト領域内のオブジェクトの色の分布幅Wを算出する。具体的には、CPU110は、注目オブジェクト領域内の複数個のオブジェクト画素の輝度分布を算出する。図9(A)には、オブジェクトの輝度分布を表すヒストグラムの一例が示されている。図9(A)のヒストグラムは、横軸に輝度値Y(256階調)を取り、各輝度値を有する画素の数を縦軸にプロットして得られる。輝度値Yは、RGB画素データ(R、G、B)を用いて、例えば、輝度値Y=((0.298912×R)+(0.586611×G)+(0.114478×B))という式で算出される。
分布幅Wは、例えば、有効輝度値の最大値と有効輝度値の最小値との差分である。有効輝度値は、階調数分(例えば、256個)の輝度値Yのうち、基準数Thu以上の画素が有する輝度値Y(図9(A)のハッチングされた領域に対応する輝度値)である。図9(A)の例では、分布幅Wは、輝度値Y6と、輝度値Y1と、の差分である。
S340では、CPU110は、注目オブジェクト領域内のオブジェクトの色数Cを算出する。色数Cは、本実施例では、上述した有効輝度値の数である。輝度値Yが異なれば、その画素の色が異なるので、異なる輝度値Yの数(輝度値Yの種類の数)は、色の数(色の種類の数)を表している。図8の例では、色数Cは、C1+C2+C3である(C1=Y2−Y1、C2=Y4−Y3、C3=Y6−Y5)。
S350では、CPU110は、上述した画素密度S、分布幅W、色数Cと、閾値Sth、Wth、Cthと、の比較に基づき、注目オブジェクト領域を、文字領域と非文字領域とのいずかに分類する。具体的には、図9(B)の分類テーブルCTを参照して、決定される。
分類テーブルCTから解るように、注目オブジェクト領域が、文字領域に分類される場合は、以下の2つの場合である。
(1)色数C<Cth、かつ、画素密度<Sth
(2)分布幅W<Wth、かつ、色数C≧Cth、かつ、画素密度S<Sth
上記(1)、(2)以外の場合は、注目オブジェクト領域は、非文字領域に分類される。
例えば、(1)に示す場合に、注目オブジェクト領域を文字領域に分類するので、色数Cが比較的少なく、画素密度Sが比較的小さいという、典型的な文字の特徴を有するオブジェクト領域を、適切に文字領域に分類することができる。色数Cが比較的少なく、画素密度Sが比較的大きいという、典型的な描画の特徴を有するオブジェクト領域や、分布幅Wが比較的大きく、色数Cが比較的多いという、典型的な写真の特徴を有するオブジェクト領域を、適切に非文字領域に分類することができる。
(2)の場合、すなわち、分布巾Wが比較的小さく、かつ、色数Cが比較的多く、かつ、画素密度Sが比較的小さい場合には、分布巾Wが比較的小さい点、画素密度Sが比較的小さい点の2点で、「文字」の特徴に合致している。一方、「写真」の特徴に合致している点は、色数Cが比較的多い点だけであり、「描画」の特徴に合致している点は、見られない。本実施例では、上述した(2)の場合には、注目オブジェクト領域を文字領域に分類するので、典型的ではないものの、特徴の合致点の多さに基づいて、精度良くオブジェクト領域を分類することができる。
また、上記(1)から、閾値Cth、Sthが大きいほど、注目オブジェクト領域が文字領域に分類される確率が高くなることが解る。
A−6.圧縮条件決定処理
図2のS40の圧縮条件決定処理について、説明する。図10は、第1実施例の圧縮条件決定処理のフローチャートである。図11は、圧縮条件決定処理の説明図である。圧縮条件決定処理では、文字領域の文字の色数に応じて、文字領域を、対象画像SIから分離してJPEG圧縮方式とは異なる圧縮方式によって圧縮するか、対象画像SIから分離せずにJPEG圧縮方式によって圧縮するかが決定される。また、圧縮条件決定処理では、印刷条件情報に応じて、対象画像データまたは非文字画像データを、JPEG圧縮方式によって圧縮する際の圧縮レベルが決定される。
S510では、CPU110は、圧縮レベルを初期値(例えば、レベル2)に設定する。圧縮レベルが高いほど、対象画像データまたは非文字画像データをJPEG圧縮方式によって圧縮する際の圧縮率が高くなるように、JPEG圧縮方式の条件が決定される。ここで、JPEG圧縮方式は、非可逆の圧縮方式であり、圧縮率を高くするほど、圧縮前のデータの情報が失われる。このために、JPEG圧縮方式の圧縮率が高いほど、図2の65にて生成される圧縮PDFファイルのサイズ(データ量)が小さくなるが、圧縮PDFファイルによって示される画像(印刷される画像)の画質は、低下する。したがって、印刷される画像に対して要求される画質が比較的高い場合には、圧縮レベルを低くして、印刷される画像の画質の維持を優先することが好ましい。そして、印刷される画像に対して要求される画質が比較的低い場合には、圧縮レベルを高くして、圧縮PDFファイルのサイズを低減することを優先することが好ましい。圧縮PDFファイルのサイズを低減すれば、上述したように、ローカルエリアネットワークLNの通信負荷を低減することができる。このために、本実施例の圧縮条件決定処理では、印刷すべき画像に要求される画質が高いほど、圧縮レベルを低くするように、工夫されている。
S515では、CPU110は、印刷条件情報の1つである取得済みの用紙の種類を示す情報に基づいて、印刷に用いられる用紙が、普通紙であるか、光沢紙であるか、を判断する。光沢紙は、普通紙より高い画質で印刷を行うことができ、一般的には普通紙よりも高額である。このために、光沢紙は、普通紙が用いられる場合よりも高い画質で印刷すべき場合に用いられる。このために、印刷に用いられる用紙が、普通紙である場合には(S515:YES)、S520にて、CPU110は、圧縮レベルを1段階高くする。印刷に用いられる用紙が、光沢紙である場合には(S515:NO)、CPU110は、圧縮レベルを変更しない。
S525では、CPU110は、印刷条件情報の1つである画質モードを示す情報に基づいて、印刷に用いられる画質モードが、高速モードであるか、高画質モードであるかを判断する。高画質モードは、高速モードよりも高い画質で印刷すべき場合に用いられる。このために、印刷に用いられる画質モードが、高速モードである場合には(S525:YES)、S530にて、CPU110は、圧縮レベルを1段階高くする。印刷に用いられる画質モードが、高画質モードである場合には(S525:NO)、CPU110は、圧縮レベルを変更しない。
S535では、CPU110は、印刷条件情報の1つである対象画像データの種類を示す情報に基づいて、対象画像データの種類が、ベクトルデータであるか、ビットマップデータであるかを判断する。ベクトルデータは、例えば、文字や描画を含む画像を示す確率が、ビットマップデータより高い。ビットマップデータは、例えば、写真を含む画像を示す確率が、ベクトルデータより高い。写真を含む画像は、文字や描画を含む画像よりも高い画質で印刷すべき場合が多い。このために、対象画像データの種類が、ベクトルデータである場合には(S535:YES)、S540にて、CPU110は、圧縮レベルを1段階高くする。対象画像データの種類が、ビットマップデータである場合には(S535:NO)、CPU110は、圧縮レベルを変更しない。
S545では、CPU110は、印刷条件情報の1つである総印刷枚数を示す情報に基づいて、プリンタ300の総印刷枚数が、基準以上であるか否かを判断する。プリンタ300の総印刷枚数が、基準以上である場合には、印刷ヘッドや搬送機構などの部品の劣化に起因して印刷される画質が低下する確率が高くなる。この場合には、当該部品の劣化に起因する画質の低下を補うために、印刷データによって示される画像に要求される画質は、プリンタ300の総印刷枚数が基準未満である場合と比較して高い。このために、プリンタ300の総印刷枚数が、基準以上である場合には(S545:YES)、S550にて、CPU110は、圧縮レベルを1段階低くする。プリンタ300の総印刷枚数が、基準未満である場合には(S545:NO)、CPU110は、圧縮レベルを変更しない。
S555では、CPU110は、圧縮レベルに応じて、JPEG圧縮のための量子化テーブルを決定する。本実施例の圧縮条件決定処理では、圧縮レベルは、1、2、3、4、5のいずれかの値を取る。CPU110は、圧縮レベル1〜5に対応する5個の量子化テーブルの中から、現在の圧縮レベルに対応する量子化テーブルを、使用すべき量子化テーブルとして決定する。図11には、量子化テーブルの一例が示されている。この量子化テーブルQTは、JPEG圧縮において生成される縦方向8種×横方向8種の周波数成分を表すDCT係数に対応する縦方向8種×横方向8種の合計64個の量子化係数を含んでいる。これらの量子化係数が大きいほどJPEG圧縮の圧縮率が高くなる。このために、5個の量子化テーブルでは、対応する圧縮レベルが高いほど、上述した64個の量子化係数が大きな値に設定されており、圧縮率が高くなる。これによって、圧縮レベルに応じて、JPEG圧縮の圧縮率を適切に調整することができる。
S560〜S590では、CPU110は、オブジェクト分類処理によって文字領域に分類されたオブジェクト領域(以下、単に文字領域と呼ぶ)のそれぞれについて、圧縮方式を決定する。
S560では、CPU110は、対象画像SI内の1個以上の文字領域から、注目文字領域を選択する。S565では、注目文字領域内の文字の色数を特定する。図12は、文字領域内の文字の色数の特定方法の説明図である。具体的には、CPU110は、注目文字領域内の文字を構成する複数個の画素(すなわち、オブジェクト画素)の輝度分布を算出する。図12には、文字の輝度分布を表すヒストグラムの一例が示されている。文字の輝度分布を表すヒストグラムには、文字の色に対応する1個以上のピークが現れる。CPU110は、該ヒストグラムに現れるピークの個数を、文字の色数として特定する。図12の例では、輝度Ya、Yb、Ycの位置に、3個のピークが現れているので、文字の色数は、「3」に特定される。
S570では、CPU110は、注目文字領域内の文字の色数は、1色であるか、2色以上3色以下であるか、4色以上であるか、を判断する。該文字の色数が1色である場合には、S575にて、CPU110は、注目文字領域内の画像を、対象画像SIから分離して、MMR(Modified Modified Read)圧縮方式によって圧縮することを決定する。MMR圧縮方式は、FAXG4方式とも呼ばれ、二値画像の圧縮に適した可逆圧縮方式である。該文字の色数が2色以上3色以下である場合には、S580にて、CPU110は、注目文字領域内の画像を、対象画像SIから分離して、ZIP圧縮方式によって圧縮することを決定する。ZIP圧縮方式は、デフレート(Deflate)と呼ばれる可逆データ圧縮アルゴリズムを用いる圧縮方式である。該文字の色数が4色以上である場合には、S585にて、CPU110は、注目文字領域内の画像を、対象画像SIから分離せず、非文字画像データまたは対象画像データとともに、JPEG(Joint Photographic Experts Group)圧縮方式によって圧縮することを決定する。JPEG圧縮方式は、多階調の画像データ、例えば、写真を示す画像データの圧縮に適した非可逆圧縮方式である。
S590では、CPU110は、対象画像SI内の全ての文字領域を処理したか否かを判断する。未処理の文字領域がある場合には(S590:NO)、CPU110は、S560に戻って、未処理の文字領域を選択する。全ての文字領域が処理された場合には(S590:YES)、CPU110は、圧縮条件決定処理を終了する。
以上説明した第1実施例によれば、対象画像SIの印刷に関連する条件を示す印刷条件情報を用いて、分類条件(具体的には、閾値Sth、Cth)が決定される(図5のS120〜S180)。そして、該分類条件を用いて、対象画像内の複数個のオブジェクト領域が、文字領域を含む複数種類の領域に分類される(図8)。そして、対象画像データを用いて、オブジェクト領域の分類結果を用いた画像処理が実行されて(図2のS45〜S65)、印刷すべき画像を示す圧縮PDFファイルが生成される。ここで、図5の分類条件決定処理では、上述したように、対象画像SIの主要オブジェクトが文字である確率が高いことを示す印刷条件情報が取得される場合ほど、分類対象の領域が文字領域に分類される確率が高くなるように、分類条件が決定される。すなわち、一の印刷条件情報(例えば、用紙が光沢紙であることを示す情報、カラーモードがCMYモードであることを示す情報、対象画像データがビットマップデータであることを示す情報)が取得される場合には、分類条件として、分類対象の領域が、一の確率で文字領域に分類される一の分類条件が決定される。そして、対象画像SIの主要オブジェクトが文字である確率が、該一の印刷条件情報が取得される場合よりも高いことを示す他の印刷条件情報(例えば、用紙が普通紙であることを示す情報、カラーモードがCMYKモードであることを示す情報、対象画像データがベクトルデータであることを示す情報)が取得される場合には、分類条件として、分類対象の領域が、上記一の確率よりも高い他の確率で文字領域に分類される他の分類条件が決定される。この結果、印刷に関連する条件を考慮して、対象画像SI内の複数個の領域を、文字領域を含む複数種類の領域に、適切に分類することができる。
例えば、ビジネス文書などの文字が主要オブジェクトである対象画像において、特定の文字領域が、誤って非文字領域に分類されることを抑制できる。さらには、写真が主要オブジェクトである対象画像において、写真の中の一部の領域が、誤って文字領域に分類されることを抑制できる。
より具体的には、分類条件の決定に用いられる印刷条件情報は、印刷に関連する特定の設定項目に対応する設定情報(本実施例では、カラーモード、用紙の種類を示す情報)を含む。この結果、印刷に関連する特定の設定項目に対応する設定情報を考慮して、対象画像SI内の複数個の領域を、適切に分類することができる。
さらに、上記第1実施例では、該特定の設定項目に対応する設定情報は、複数個の選択肢の中からユーザの指示に基づいて選択される選択肢を示す情報を含む(図3)。この結果、ユーザの指示に基づいて選択される選択肢を示す設定情報を考慮して、対象画像SI内の複数個の領域を、適切に分類することができる。
さらには、上記第1実施例では、該特定の設定項目に対応する設定情報は、ユーザの指示に基づくことなく、例えば、センサ(具体的には、用紙センサ310)によって自動的に検出される設定情報を含む。この結果、自動的に検出される設定情報を考慮して、対象画像SI内の複数個の領域を、適切に分類することができる。
具体例としては、特定の設定項目に対応する設定情報は、対象画像SIの印刷に用いられる用紙が、一の種類の用紙(例えば、光沢紙)であることを示す情報や、他の種類の用紙(例えば、普通紙)であることを示す情報を含む。この結果、印刷に用いられる用紙の種類を考慮して、対象画像SI内の複数個の領域を、適切に分類することができる。
さらには、上記第1実施例では、分類条件の決定に用いられる印刷条件情報は、対象画像データが一の種類のデータ(例えば、ビットマップデータ)であることを示す情報や、対象画像データが他の種類のデータ(例えば、ベクトルデータ)であることを示す情報を含む。この結果、対象画像データの種類を考慮して、対象画像SI内の複数個の領域を、適切に分類することができる。
また、上記第1実施例によれば、CPU110は、文字画像データを圧縮して圧縮済みの文字画像データを生成し、非文字画像データを圧縮して圧縮済みの非文字画像データを生成する(図2のS60)。そして、CPU110は、圧縮済みの文字画像データおよび非文字画像データと用いて、対象画像SIを印刷するための圧縮PDFファイルを生成する(図2のS65)。このとき、図10の圧縮条件決定処理では、上述したように、印刷される画像に要求される画質が高いことを示す印刷条件情報が取得される場合ほど、非文字画像データをJPEG圧縮方式によって圧縮する際の圧縮率が低くなるように、圧縮方式が決定される(図10のS510〜S555)。すなわち、一の印刷条件情報(例えば、用紙が普通紙であることを示す情報、画質モードが高速モードであることを示す情報、対象画像データがベクトルデータであることを示す情報、総印刷枚数が基準未満であることを示す情報)が取得される場合には、一の圧縮方式(例えば、比較的大きな量子化係数を含む量子化テーブルを用いるJPEG圧縮方式)を用いて、非文字画像データが圧縮される。そして、一の印刷条件情報が取得される場合よりも高い画質で、対象画像SIを印刷すべきことを示す他の印刷条件情報(例えば、用紙が光沢紙であることを示す情報、画質モードが高画質モードであることを示す情報、対象画像データがビットマップデータであることを示す情報、総印刷枚数が基準以上であることを示す情報)が取得される場合には、該一の圧縮方式よりも圧縮率が低い他の圧縮方式(例えば、比較的小さな量子化係数を含む量子化テーブルを用いるJPEG圧縮方式)を用いて、非文字画像データが圧縮される。この結果、印刷に関連する条件を考慮して、適切なデータサイズと適切な画質を有する圧縮PDFファイルを生成することができる。
より具体的には、該圧縮方式の決定(すなわち、用いるべき量子化テーブルの決定(図10のS555))に用いられる印刷条件情報は、印刷に関連する特定の設定項目に対応する設定情報(本実施例では、画質モード、用紙の種類を示す情報)を含む。この結果、印刷に関連する特定の設定項目に対応する設定情報を考慮して、適切なデータサイズと適切な画質を有する圧縮PDFファイルを生成することができる。
さらに、上記第1実施例では、該特定の設定項目に対応する設定情報は、複数個の選択肢の中からユーザの指示に基づいて選択される選択肢を示す情報を含む(図3)。この結果、ユーザの指示に基づいて選択される選択肢を示す設定情報を考慮して、適切なデータサイズと適切な画質を有する圧縮PDFファイルを生成することができる。
さらには、上記第1実施例では、該特定の設定項目に対応する設定情報は、ユーザの指示に基づくことなく、例えば、センサ(具体的には、用紙センサ310)によって自動的に検出される設定情報を含む。この結果、自動的に検出される設定情報を考慮して、適切なデータサイズと適切な画質を有する圧縮PDFファイルを生成することができる。
具体例としては、特定の設定項目に対応する設定情報は、対象画像SIの印刷に用いられる用紙が、一の種類の用紙(例えば、光沢紙)であることを示す情報や、他の種類の用紙(例えば、普通紙)であることを示す情報を含む。この結果、印刷に用いられる用紙の種類を考慮して、適切なデータサイズと適切な画質を有する圧縮PDFファイルを生成することができる。
さらには、上記第1実施例では、圧縮方式の決定に用いられる印刷条件情報は、対象画像データが一の種類のデータ(例えば、ビットマップデータ)であることを示す情報や、対象画像データが他の種類のデータ(例えば、ベクトルデータ)であることを示す情報を含む。この結果、対象画像データの種類を考慮して、適切なデータサイズと適切な画質を有する圧縮PDFファイルを生成することができる。
さらに、上記第1実施例では、圧縮方式の決定に用いられる印刷条件情報は、印刷に用いられるプリンタ300の部品の劣化であって、印刷される画像の画質を変動させる部品の劣化の程度を示す特性情報、具体的には、プリンタ300の総印刷枚数を示す情報を含む。この結果、プリンタ300の部品の劣化を考慮して、適切なデータサイズと適切な画質を有する圧縮PDFファイルを生成することができる。
B.第2実施例
B−1.スキャナ200の構成
図13は、本発明の画像処理装置としてのスキャナ200の構成を示すブロック図である。スキャナ200は、プロセッサとしてのCPU210と、DRAMなどの揮発性記憶装置220と、フラッシュメモリやハードディスクドライブなどの不揮発性記憶装置230と、液晶ディスプレイなどの表示部240と、液晶ディスプレイと重畳されたタッチパネルなど操作部250と、外部装置と通信を行うためのインタフェースである通信IF270と、読取実行部280と、温度センサ290と、を備えている。
揮発性記憶装置220は、CPU210が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置230は、コンピュータプログラムPG2と、データベースDBと、が格納されている。コンピュータプログラムPG2は、例えば、スキャナ200の製造時に不揮発性記憶装置230に格納(インストール)される形態で提供される。これに代えて、コンピュータプログラムPG2は、例えば、スキャナ200の製造者が運用するサーバからダウンロードされる形態で提供されても良く、DVD−ROMなどに格納される形態で提供されてもよい。
データベースDBは、スキャナ200に関する各種の情報を格納する。データベースDBは、各種の情報の1つとして、スキャナ200の製造日時を示す情報を格納している。
CPU210は、コンピュータプログラムPG2を実行することにより、スキャナ200を制御するコントローラとして機能する。具体的には、CPU210は、コンピュータプログラムPG2を実行することにより、後述する保存処理を実行することができる。
読取実行部280は、一次元イメージセンサを備えている。読取実行部280は、原稿などの対象物を、該イメージセンサを用いて光学的に読み取ることによって、原稿などの対象物を示すスキャンデータを生成する。
温度センサ290は、温度を測定するための公知のセンサであり、スキャナ200が設置されている場所の温度を測定する。
B−2.保存処理
図14は、保存処理のフローチャートである。この読取処理は、スキャナ200にユーザから原稿の読取指示が入力されたときに実行される。読取指示は、CPU210によって表示部240に表示されるUI画面を介して、入力される。読取指示は、スキャンデータの生成に関連する条件を示す読取条件情報、例えば、後述するように、読取解像度を示す情報を含む。
図15は、読取指示を入力するためのUI画面の一例を示す図である。図15のUI画面WI2は、スキャンデータの生成に関連する複数個の設定項目のそれぞれについて、対応する複数個の選択肢の中から、1個の有効な選択肢を指定するための入力要素を含んでいる。具体的には、UI画面WI2は、複数個の選択肢から設定情報を入力するプルダウンメニューPM2と、複数個のラジオボタンRB10〜RB13と、複数個のボタンBT3、BT4と、を含んでいる。
プルダウンメニューPM2は、読取実行部280による原稿の読取解像度の指定を入力するための入力要素である。読取解像度の選択肢は、例えば、縦方向および横方向の解像度について「1200」と「600」と「300」と「200」とである(単位は、dpi(dot per inch))。選択肢は、他の解像度(例えば、1200dpi)を含んでも良いし、選択肢において縦方向と横方向の解像度が異なっていても良い。
ラジオボタンRB10、RB11は、生成されるスキャンデータの保存形式の指定を入力するための入力要素である。保存形式の選択肢は、本実施例では、「PDF」と「PDF/A」とである。「PDF」は、通常のPDF(通常PDFとも呼ぶ)である。「PDF/A」は、長期保存のためのPDFファイルである。「PDF/A」のファイルには、例えば、カラープロファイルとフォントデータとがPDFファイルに埋め込まれる。
ラジオボタンRB12、RB13は、読取のカラーモードの指定を入力するための入力要素である。カラーモードの選択肢は、本実施例では、モノクロモードと、フルカラーモードと、の2種類である。モノクロモードでは、各画素の値が、輝度を示す1個の成分値であるモノクロ画像データが、スキャンデータとして生成される。フルカラーモードでは、各画素の値が、R、G、Bの3個の成分値を含むRGB値であるRGB画像データが、スキャンデータとして生成される。スキャンデータの画素の値(輝度や、RGB値)の各成分値の階調数は、例えば、256階調である。
UI画面WI2において、読取ボタンBT3が押下されると、その時点でUI画面WI2にて指定されている選択肢を示す設定情報が、対応する設定項目の有効な設定情報として記憶される。有効な設定情報は、読取指示に含まれる条件情報の一種である、と言うことができる。
S10Bでは、CPU210は、例えば、読取実行部280を制御して、原稿台に載置された原稿を読取実行部280に読み取らせることによって、原稿を示すスキャンデータを生成させ、該スキャンデータを対象画像データとして取得する。スキャンデータは、有効な設定情報に従って生成されるので、ユーザによって指定される読取解像度に対応する個数の画素の値を含み、ユーザによって指定されるカラーモードに対応する画素の値(例えば、輝度、または、RGB値)を含む。以下では、スキャンデータとして、RGB画像データが生成されるとして説明を行う。スキャンデータによって示されるスキャン画像、すなわち、対象画像データによって示される対象画像SIは、図4(A)に示される対象画像SIであるとする。
S15Bでは、CPU210は、対象画像データ(スキャンデータ)の生成に関連する読取条件情報を取得する。具体的には、CPU210は、原稿の用紙の種類を示す情報と、対象画像データの保存形式を示す情報と、読取解像度を示す情報と、カラーモードを示す情報と、スキャナ200が設置されている場所の温度を示す情報と、経過時間を示す情報と、を読取条件情報として、取得する。
CPU210は、原稿の用紙の種類を示す情報を、対象画像データ(スキャンデータ)を解析することによって、取得する。具体的には、CPU210は、対象画像データによって示される原稿の外形を示すエッジを検出することによって、原稿の外形を特定する。CPU210は、原稿の外形のサイズを特定することによって、原稿の用紙の種類が、写真サイズ(例えば、L版のサイズ)の用紙であるか、写真サイズとは異なるサイズ(例えば、A4サイズ)の用紙であるかを示す情報を、原稿の用紙の種類を示す情報として取得する。
CPU210は、上述した図15のUI画面WI2を介して取得される対象画像データの生成に関する設定情報に含まれる情報から、指定されたカラーモード、読取解像度、および、保存形式を示す情報を取得する。なお、カラーモードを示す情報は、対象画像データに含まれる各画素の成分値の個数に基づいて取得されても良い。読取解像度を示す情報は、対象画像データに含まれる画素の個数に基づいて取得されても良い。
CPU210は、データベースDBから、スキャナ200の製造日時を示す情報を取得するとともに、図示しない時計機能を用いて、現在日時を示す情報を取得する。CPU210は、これらの情報から、製造日時から現在日時までの期間を算出し、該算出された期間を、経過時間を示す情報として取得する。
CPU210は、温度を示す情報を、温度センサ290を用いて測定することによって、取得する。
S20Bでは、CPU210は、S15Bにて取得された読取条件情報を用いて、分類条件決定処理を実行する。分類条件決定処理は、第1実施例の分類条件決定処理と同様に、後述するS30のオブジェクト分類処理にて、オブジェクトを、文字と非文字とに分類する際に用いられる分類条件を決定する処理である。該分類条件決定処理については後述する。
S25、S30では、CPU210は、オブジェクト特定処理およびオブジェクト分類処理を実行する。オブジェクト特定処理によって、例えば、図4(A)の対象画像SI内の非文字Ob1、Ob2を示すオブジェクト領域OA1、OA2と、文字Ob3〜Ob6を示すオブジェクト領域OA3、OA4が特定される。また、オブジェクト分類処理によって、図4(A)の対象画像SI内のオブジェクト領域OA1、OA2は、非文字領域に分類され、オブジェクト領域OA3、OA4は、文字領域に分類される。オブジェクト特定処理およびオブジェクト分類処理は、第1実施例のオブジェクト特定処理およびオブジェクト分類処理(図2のS25、S30)と、同一であるので、詳細の説明を省略する。
S40Bでは、CPU210は、S15Bにて取得された読取条件情報を用いて、圧縮条件決定処理を実行する。圧縮条件決定処理では、第1実施例の圧縮条件決定処理と同様に、文字領域の文字の色数に応じて、文字領域を、対象画像SIから分離してJPEG圧縮方式とは異なる圧縮方式によって圧縮するか、対象画像SIから分離せずにJPEG圧縮方式によって圧縮するかが決定される。また、圧縮条件決定処理では、読取条件情報に応じて、対象画像データまたは非文字画像データ(後述)を、JPEG圧縮方式によって圧縮する際の圧縮レベルが決定される。該圧縮条件決定処理については後述する。
S45〜S65では、CPU210は、図2のS45〜S65と同一の処理を行って、圧縮PDFファイルを生成する。
S70Bでは、CPU210は、生成された圧縮PDFファイルを不揮発性記憶装置230に保存して、保存処理を終了する。保存された圧縮PDFファイルは、例えば、ユーザの利用に供される。具体的には、圧縮PDFファイルは、ユーザの端末装置(図示省略)の表示部に、該圧縮PDFファイルによって示される画像を表示するために用いられる。あるいは、圧縮PDFファイルは、ユーザのプリンタ(図示省略)を用いて、該圧縮PDFファイルによって示される画像を印刷するために用いられる。変形例としては、圧縮PDFファイルは、ユーザの端末装置に送信され、該端末装置のハードディスクなどの不揮発性記憶装置に保存されても良い。
以上説明した印刷処理によれば、圧縮PDFファイルを生成して、不揮発性記憶装置230に保存するので、例えば、圧縮されていない対象画像データを保存する場合と比較して、保存に要するメモリ量を低減できる。
B−3.分類条件決定処理
図14のS20Bの分類条件決定処理について、説明する。図16は、第2実施例の分類決定処理のフローチャートである。分類条件決定処理では、読取条件情報を用いて、図14のS30のオブジェクト分類処理にて用いられる分類条件を決定する。
S610では、CPU210は、文字検出レベルを初期値(例えば、レベル2)に設定する。第1実施例と同様に、文字検出レベルが高いほど、判定対象のオブジェクト領域が、文字領域に分類される確率が高くなり、非文字領域に分類される確率が低くなるように、分類条件が決定される。本実施例の分類条件決定処理では、第1実施例と同様に、主要オブジェクトが文字である確率が高いほど、文字検出レベルを高くし、主要オブジェクトが非文字である確率が高いほど、文字検出レベルを高くするように、工夫されている。
S620では、CPU210は、読取条件情報の1つである原稿の用紙の種類を示す情報に基づいて、原稿の用紙が、写真サイズの用紙であるか、写真サイズとは異なるサイズの用紙であるか、を判断する。原稿の用紙が、写真サイズの用紙である場合には、原稿の用紙が、写真サイズとは異なるサイズの用紙である場合と比較して、対象画像SIの主要オブジェクトが写真である確率が高い。また、原稿の用紙が、写真サイズとは異なるサイズの用紙である場合には、原稿の用紙が、写真サイズの用紙である場合と比較して、主要オブジェクトが文字である確率が高い。このために、原稿の用紙が、写真サイズの用紙である場合には(S620:YES)、S630にて、CPU210は、文字検出レベルを1段階低くする。原稿の用紙が、写真サイズとは異なるサイズの用紙である場合には(S620:NO)、CPU210は、文字検出レベルを変更しない。
S640では、CPU210は、読取条件情報の1つである読取解像度を示す情報に基づいて、読取解像度が基準以上(例えば、600dpi以上)であるか否かを判断する。読取解像度が基準以上である場合には、読取解像度が基準未満である場合と比較して、検出漏れが起こりやすい小さな文字が主要オブジェクトである確率が高い。このために、読取解像度が、基準以上である場合には(S640:YES)、S650にて、CPU210は、文字検出レベルを1段階高くする。読取解像度が、基準未満である場合には(S640:NO)、CPU210は、文字検出レベルを変更しない。
S660では、CPU210は、読取条件情報の1つであるカラーモードを示す情報に基づいて、対象画像データが、モノクロ画像データであるか、RGB画像データであるか
を判断する。文字が主要オブジェクトである場合には、フルカラーの画像で出力する必要性が比較的低い。したがって、モノクロ画像データが用いられる場合には、RGB画像データが用いられる場合と比較して、文字が主要オブジェクトである確率が高い。このために、対象画像データが、モノクロ画像データである場合には(S660:YES)、S670にて、CPU210は、文字検出レベルを1段階高くする。対象画像データが、RGB画像データである場合には(S660:NO)、CPU210は、文字検出レベルを変更しない。
S680では、CPU210は、文字検出レベルに応じて、分類用の閾値Cth、Sthを、分類条件として決定する。本実施例の分類条件決定処理では、文字検出レベルは、1、2、3、4のいずれかの値を取る。このために、例えば、分類用の閾値Cth、Sthは、第1実施例の分類条件決定処理と同様に、以下のように決定される。
文字検出レベルが「1」である場合は、閾値Cthは、標準値に決定され、閾値Sthは、標準値より小さな値に決定される。文字検出レベルが「2」である場合は、閾値Cthは、標準値に決定され、閾値Sthは、標準値に決定される。文字検出レベルが「3」である場合は、閾値Cthは、標準値に決定され、閾値Sthは、標準値より大きな値に決定される。文字検出レベルが「4」である場合は、閾値Cthは、標準値より大きな値に決定され、閾値Sthは、標準値より大きな値に決定される。
A−4.圧縮条件決定処理
図14のS40Bの圧縮条件決定処理について、説明する。図17は、第2実施例の圧縮条件決定処理のフローチャートである。圧縮条件決定処理では、第1実施例の圧縮条件決定処理と同様に、文字領域の文字の色数に応じて、文字領域を、対象画像SIから分離してJPEG圧縮方式とは異なる圧縮方式によって圧縮するか、対象画像SIから分離せずにJPEG圧縮方式によって圧縮するかが決定される。また、圧縮条件決定処理では、読取条件情報に応じて、対象画像データまたは非文字画像データを、JPEG圧縮方式によって圧縮する際の圧縮レベルが決定される。
S710では、CPU210は、圧縮レベルを初期値(例えば、レベル6)に設定する。第2実施例の圧縮条件決定処理では、圧縮PDFファイルによって示される画像に要求される画質が高いほど、圧縮レベルを高くするように、工夫されている。
S715では、CPU210は、読取条件情報の1つである原稿の用紙の種類を示す情報に基づいて、原稿の用紙が、写真サイズの用紙であるか、写真サイズとは異なるサイズの用紙であるか、を判断する。原稿の用紙が、写真サイズの用紙である場合には、原稿の用紙が、写真サイズとは異なるサイズの用紙である場合と比較して、対象画像SIの主要オブジェクトが写真である確率が高い。また、原稿の用紙が、写真サイズとは異なるサイズの用紙である場合には、原稿の用紙が、写真サイズの用紙である場合と比較して、主要オブジェクトが文字である確率が高い。写真は、文字よりも高い画質が要求される場合が多い。このために、原稿の用紙が、写真サイズの用紙である場合には(S715:YES)、S720にて、CPU210は、圧縮レベルを1段階低くする。原稿の用紙が、写真サイズとは異なるサイズの用紙である場合には(S715:NO)、CPU210は、圧縮レベルを変更しない。
S725では、CPU210は、読取条件情報の1つである保存形式を示す情報に基づいて、対象画像データの保存形式が、PDF/Aであるか、通常PDFであるかを判断する。PDF/Aは、長期保存用の保存形式であるので、通常PDFと比較して重要なデータの保存に用いられる。したがって、PDF/Aは、通常PDFと比較して、高い画質が要求される確率が高い。このために、対象画像データの保存形式が、PDF/Aである場合には(S725:YES)、S730にて、CPU210は、圧縮レベルを1段階低くする。対象画像データの保存形式が、通常PDFである場合には(S725:NO)、CPU210は、圧縮レベルを変更しない。
S735では、CPU210は、読取条件情報の1つである読取解像度を示す情報に基づいて、読取解像度が基準以上(例えば、600dpi以上)であるか否かを判断する。読取解像度が基準以上である場合には、読取解像度が基準未満である場合と比較して、画質が低下すると見難くなるオブジェクト(例えば、小さな文字)を含む確率が高い。したがって、読取解像度が基準以上である場合には、読取解像度が基準未満である場合と比較して、高い画質が要求される確率が高い。このために、読取解像度が、基準以上である場合には(S735:YES)、S740にて、CPU210は、圧縮レベルを1段階低くする。読取解像度が、基準未満である場合には(S735:NO)、CPU210は、圧縮レベルを変更しない。
S745では、CPU210は、印刷条件情報の1つである経過時間を示す情報に基づいて、スキャナ200の製造時からの経過時間が、基準以上(例えば、数年以上)であるか否かを判断する。スキャナ200の製造時からの経過時間が基準以上である場合には、該経過時間が基準未満である場合と比較して、スキャナ200のイメージセンサや光源などの部品の劣化に起因して対象画像SIの画質が低下する確率が高くなる。この場合には、当該部品の劣化に起因する画質の低下を補うために、圧縮による画質の低下を抑制して画質を維持する必要性が高い。このために、スキャナ200の製造時からの経過時間が、基準以上である場合には(S745:YES)、S750にて、CPU210は、圧縮レベルを1段階低くする。スキャナ200の製造時からの経過時間が、基準未満である場合には(S745:NO)、CPU210は、圧縮レベルを変更しない。
S755では、CPU210は、印刷条件情報の1つである温度を示す情報に基づいて、スキャナ200が設置された場所の温度が、基準以上(例えば、摂氏35度以上)であるか否かを判断する。スキャナ200が設置された場所の温度が基準以上である場合には、該温度が基準未満である場合と比較して、例えば、ノイズが増加することなどに起因して対象画像SIの画質が低下する確率が高くなる。この場合には、当該画質の低下を補うために、圧縮による画質の低下を抑制して画質を維持する必要性が高い。このために、スキャナ200が設置された場所の温度が、基準以上である場合には(S755:YES)、S760にて、CPU210は、圧縮レベルを1段階低くする。スキャナ200が設置された場所の温度が、基準未満である場合には(S760:NO)、CPU210は、圧縮レベルを変更しない。
S765では、CPU210は、圧縮レベルに応じて、JPEG圧縮のための量子化テーブルを決定する。本実施例の圧縮条件決定処理では、圧縮レベルは、1〜6のいずれかの値を取る。CPU210は、圧縮レベル1〜6に対応する6個の量子化テーブルの中から、現在の圧縮レベルに対応する量子化テーブルを、使用すべき量子化テーブルとして決定する。6個の量子化テーブルでは、対応する圧縮レベルが高いほど、図11の64個の量子化係数が大きな値に設定されており、圧縮率が高くなる。
S770では、CPU210は、図10のS560〜S590を実行する。これによって、第1実施例と同様に、オブジェクト分類処理によって決定された文字領域のそれぞれについて、圧縮方式が決定される。
以上説明した第2実施例によれば、対象画像データの生成に関連する条件を示す読取条件情報を用いて、分類条件(具体的には、閾値Sth、Cth)が決定される(図16のS620〜S680)。そして、該分類条件を用いて、対象画像内の複数個のオブジェクト領域が、文字領域を含む複数種類の領域に分類される(図8)。そして、対象画像データを用いて、オブジェクト領域の分類結果を用いた画像処理が実行されて(図14のS45〜S65)、保存すべき画像を示す圧縮PDFファイルが生成される。ここで、図16の分類条件決定処理では、上述したように、対象画像SIの主要オブジェクトが文字である確率が高いことを示す読取条件情報が取得される場合ほど、分類対象の領域が文字領域に分類される確率が高くなるように、分類条件が決定される。すなわち、一の読取条件情報(例えば、用紙が写真サイズであることを示す情報、読取解像度が基準未満であることを示す情報、対象画像データがRGB画像データであることを示す情報)が取得される場合には、分類条件として、分類対象の領域が、一の確率で文字領域に分類される一の分類条件が決定される。そして、対象画像SIの主要オブジェクトが文字である確率が、該一の読取条件情報が取得される場合よりも高いことを示す他の読取条件情報(例えば、用紙が写真サイズとは異なるサイズであることを示す情報、読取解像度が基準以上であることを示す情報、対象画像データがモノクロ画像データであることを示す情報)が取得される場合には、分類条件として、分類対象の領域が、上記一の確率よりも高い他の確率で文字領域に分類される他の分類条件が決定される。この結果、対象画像データの生成に関連する条件を考慮して、対象画像SI内の複数個の領域を、文字領域を含む複数種類の領域に、適切に分類することができる。
例えば、第1実施例と同様に、ビジネス文書などの文字が主要オブジェクトである対象画像において、特定の文字領域が、誤って非文字領域に分類されることを抑制できる。さらには、写真が主要オブジェクトである対象画像において、写真の中の一部の領域が、誤って文字領域に分類されることを抑制できる。
より具体的には、分類条件の決定に用いられる読取条件情報は、対象画像データの生成に関連する特定の設定項目に対応する設定情報(本実施例では、原稿の用紙の種類、カラーモード、読取解像度、保存形式を示す情報)を含む。この結果、対象画像データの生成に関連する特定の設定項目に対応する設定情報を考慮して、対象画像SI内の複数個の領域を、適切に分類することができる。
さらに、上記第2実施例では、該特定の設定項目に対応する設定情報は、複数個の選択肢の中からユーザの指示に基づいて選択される選択肢を示す情報を含む(図15)。この結果、ユーザの指示に基づいて選択される選択肢を示す設定情報を考慮して、対象画像SI内の複数個の領域を、適切に分類することができる。
さらには、上記第2実施例では、該特定の設定項目に対応する設定情報は、ユーザの指示に基づくことなく、例えば、対象画像データに基づいて自動的に検出される設定情報(例えば、原稿の用紙の種類)を含む。この結果、自動的に検出される設定情報を考慮して、対象画像SI内の複数個の領域を、適切に分類することができる。
具体例としては、特定の設定項目に対応する設定情報は、対象画像データの生成に用いられる原稿の用紙が、一の種類の用紙(例えば、写真サイズの用紙)であることを示す情報や、他の種類の用紙(例えば、写真サイズとは異なるサイズの用紙)であることを示す情報を含む。この結果、原稿の用紙の種類を考慮して、対象画像SI内の複数個の領域を、適切に分類することができる。
さらには、上記第2実施例では、分類条件の決定に用いられる印刷条件情報は、対象画像データの保存形式が、一の保存形式(例えば、通常PDF)であることを示す情報や、対象画像データの保存形式が他の保存形式(例えば、PDF/A)であることを示す情報を含む。この結果、対象画像データの保存形式を考慮して、対象画像SI内の複数個の領域を、適切に分類することができる。
また、上記第2実施例によれば、CPU110は、文字画像データを圧縮して圧縮済みの文字画像データを生成し、非文字画像データを圧縮して圧縮済みの非文字画像データを生成する(図14のS60)。そして、CPU110は、圧縮済みの文字画像データおよび非文字画像データと用いて、対象画像SIを印刷するための圧縮PDFファイルを生成する(図14のS65)。このとき、図17の圧縮条件決定処理では、上述したように、印刷される画像に要求される画質が高いことを示す読取条件情報が取得される場合ほど、非文字画像データをJPEG圧縮方式によって圧縮する際の圧縮率が低くなるように、圧縮方式が決定される(図17のS715〜S765)。すなわち、一の読取条件情報(例えば、用紙が写真サイズとは異なるサイズであることを示す情報、保存形式が通常PDFであることを示す情報、読取解像度が基準未満であることを示す情報、経過時間や温度が基準未満であることを示す情報)が取得される場合には、一の圧縮方式(例えば、比較的大きな量子化係数を含む量子化テーブルを用いるJPEG圧縮方式)を用いて、非文字画像データが圧縮される。そして、一の読取条件情報が取得される場合よりも高い画質で、対象画像SIを保存すべきことを示す他の印刷条件情報(例えば、用紙が写真サイズであることを示す情報、保存形式がPDF/Aであることを示す情報、読取解像度が基準以上であることを示す情報、経過時間や温度が基準以上であることを示す情報)が取得される場合には、該一の圧縮方式よりも圧縮率が低い他の圧縮方式(例えば、比較的小さな量子化係数を含む量子化テーブルを用いるJPEG圧縮方式)を用いて、非文字画像データが圧縮される。この結果、対象画像データの生成に関連する条件を考慮して、適切なデータサイズと適切な画質を有する圧縮PDFファイルを生成することができる。
より具体的には、該圧縮方式の決定(すなわち、用いるべき量子化テーブルの決定(図17のS765))に用いられる読取条件情報は、対象画像データの生成に関連する特定の設定項目に対応する設定情報(本実施例では、原稿の用紙の種類、保存形式、読取解像度、カラーモードを示す情報)を含む。この結果、対象画像データの生成に関連する特定の設定項目に対応する設定情報を考慮して、適切なデータサイズと適切な画質を有する圧縮PDFファイルを生成することができる。
さらに、上記第2実施例では、該特定の設定項目に対応する設定情報は、複数個の選択肢の中からユーザの指示に基づいて選択される選択肢を示す情報を含む(図15)。この結果、ユーザの指示に基づいて選択される選択肢を示す設定情報を考慮して、適切なデータサイズと適切な画質を有する圧縮PDFファイルを生成することができる。
さらには、上記第2実施例では、該特定の設定項目に対応する設定情報は、ユーザの指示に基づくことなく、例えば、対象画像データに基づいて自動的に検出される設定情報を含む。この結果、自動的に検出される設定情報を考慮して、適切なデータサイズと適切な画質を有する圧縮PDFファイルを生成することができる。
具体例としては、特定の設定項目に対応する設定情報は、原稿の用紙が、一の種類の用紙(例えば、写真サイズの用紙)であることを示す情報や、他の種類の用紙(例えば、写真サイズとは異なるサイズの用紙)であることを示す情報を含む。この結果、印刷に用いられる用紙の種類を考慮して、適切なデータサイズと適切な画質を有する圧縮PDFファイルを生成することができる。
さらには、上記第2実施例では、該圧縮方式の決定に用いられる読取条件情報は、対象画像データの保存形式が、一の保存形式(例えば、通常PDF)であることを示す情報や、対象画像データの保存形式が他の保存形式(例えば、PDF/A)であることを示す情報を含む。この結果、対象画像データの種類を考慮して、適切なデータサイズと適切な画質を有する圧縮PDFファイルを生成することができる。
さらに、上記第2実施例では、圧縮方式の決定に用いられる読取条件情報は、対象画像データの生成に用いられるスキャナ200(読取実行部280)の部品の劣化であって、対象画像の画質を変動させる部品の劣化の程度を示す特性情報、具体的には、スキャナ200の製造時からの経過時間を示す情報を含む。この結果、スキャナ200の部品の劣化を考慮して、適切なデータサイズと適切な画質を有する圧縮PDFファイルを生成することができる。
さらに、上記第2実施例では、圧縮方式の決定に用いられる読取条件情報は、スキャナ200(読取実行部280)の環境を示す情報、具体的には、スキャナ200が配置された場所の温度を示す情報を含む。この結果、スキャナ200の環境、具体的には、スキャナ200が配置された場所の温度を考慮して、適切なデータサイズと適切な画質を有する圧縮PDFファイルを生成することができる。
C.変形例
(1)上記第1実施例の圧縮条件決定処理(図10)において、圧縮方式の決定に用いられる印刷条件情報は、一例であり、これらに限られない。例えば、圧縮方式の決定に用いられる印刷条件情報は、プリンタ300の環境を示す情報、具体的には、プリンタ300が配置された場所の温度を示す情報や、湿度を示す情報を含んでも良い。プリンタ300が設置された場所の温度が基準以上である場合には、該温度が基準未満である場合と比較して、例えば、インクの粘度が低下して、インクの吐出量が増大することなどに起因して対象画像SIの画質が低下する確率が高くなる。この場合には、当該画質の低下を補うために、圧縮による画質の低下を抑制して画質を維持する必要性が高い。このために、例えば、第1実施例の圧縮条件決定処理において、プリンタ300が配置された場所の温度が、基準以上である場合には、圧縮レベルが1段階低くされ、該温度が、基準未満である場合には、圧縮レベルが変更されない。こうすれば、プリンタ300の環境を考慮して、適切なデータサイズと適切な画質を有する圧縮PDFファイルを生成することができる。
また、圧縮方式の決定に用いられる印刷条件情報は、対象画像SIの縁部における余白の量を示す情報を含んでも良い。余白の量を示す情報は、例えば、対象画像データを解析することによって取得される。余白の量が基準より小さい場合、例えば、縁なし印刷である場合には、余白の量が基準以上である場合、例えば、縁あり印刷である場合よりも、対象画像SIの主要オブジェクトが写真である確率が高く、高い画質が要求される確率が高い。この場合には、したがって、例えば、余白の量が基準より小さい場合には、圧縮レベルが一段階低くされ、余白の量が基準以上である場合には、圧縮レベルは、変更されない。
また、圧縮方式の決定に用いられる印刷条件情報として、プリンタ300の総印刷枚数を示す情報に代えて、プリンタ300の製造時からの経過時間を示す情報が用いられてもよい。また、印刷履歴を示す情報としては、総印刷枚数とは異なる他の印刷履歴を示す情報、例えば、1年当たりの平均印刷枚数が用いられてもよい。
(2)上記第2実施例の圧縮条件決定処理(図17)において、圧縮方式の決定に用いられる読取条件情報は、一例であり、これらに限られない。例えば、スキャナ200の環境を示す情報として、温度を示す情報に代えて、スキャナ200が設置された場所の湿度を示す情報が用いられても良い。また、原稿の用紙の種類を示す情報として、原稿のサイズの種類を示す情報に代えて、原稿の用紙の紙種を示す情報(例えば、光沢紙であるか普通紙であるかを示す情報)が用いられても良い。
また、上記第2実施例の圧縮条件決定処理では、上記対象画像SIの画質を変動させるスキャナ200の部品の劣化の程度を示す情報として、スキャナ200の製造時からの経過時間を示す情報が用いられている。これに代えて、例えば、スキャナ200のイメージセンサの光源の光量を示す情報が用いられてもよい。光源の光量が基準未満まで低下すると、対象画像SIの画質が低下する確率が高くなる。このために、例えば、光源の光量が基準未満である場合には、圧縮レベルが1段階低くされ、光源の光量が基準以上である場合には、圧縮レベルは変更されない。
(3)上記各実施例の圧縮条件決定処理(図10、図17)において、圧縮方式の決定に用いられる印刷条件情報、および、読取条件情報の用い方は、一例であり、これに限られない。例えば、設計思想に応じて、読取条件情報の用い方は、適宜変更され得る。例えば、上記第2実施例の圧縮条件決定処理(図17)では、CPU210は、対象画像データの保存形式が、PDF/Aである場合には、圧縮レベルを1段階低くし、通常PDFである場合には、圧縮レベルを変更しない。これは、上述したように、PDF/Aは、長期保存用の保存形式であるので、通常PDFと比較して重要なデータの保存に用いられるため、PDF/Aは、通常PDFと比較して、高い画質が要求される確率が高い、という思想に基づいている。これに代えて、例えば、PDF/Aは、長期保存用の保存形式であるので、通常PDFと比較して、データ量を低減することが重要であるため、PDF/Aは、通常PDFと比較して、画質を犠牲にしてでも圧縮率を高くすることが求められる、と考えることもできる。該思想に基づく場合には、例えば、CPU210は、対象画像データの保存形式が、PDF/Aである場合には、圧縮レベルを1段階高くし、通常PDFである場合には、圧縮レベルを変更しない、こととしても良い。
(4)上記第1実施例の分類条件決定処理(図5)において、分類条件の決定に用いられる印刷条件情報は、一例であり、これらに限られない。例えば、プリンタ300が、小ドット、中ドット、大ドットなどの複数種類のサイズのドットを形成可能なプリンタである場合には、印刷条件情報は、印刷時の小ドットの使用量を示す情報を含んでも良い。該情報は、対象画像データを解析することによって取得されても良いし、印刷データを生成する際に用いるべきカラープロファイルに基づいて取得されても良い。小ドットが多い場合には、対象画像SIは、主要オブジェクトとして、小さな文字を含む確率が高いので、例えば、文字検出レベルを1段階高くしても良い。
また、分類条件の決定に用いられる印刷条件情報は、対象画像SIの縁部における余白の量を示す情報を含んでも良い。余白の量を示す情報は、例えば、対象画像データを解析することによって取得される。余白の量が基準より小さい場合、例えば、縁なし印刷である場合には、余白の量が基準以上である場合、例えば、縁あり印刷である場合よりも、対象画像SIの主要オブジェクトが写真である確率が高く、主要オブジェクトが文字である確率が低い。この場合には、したがって、例えば、余白の量が基準より小さい場合には、文字検出レベルが一段階低くされ、余白の量が基準以上である場合には、文字検出レベルは、変更されない。
(5)上記各実施例では、対象画像SI内の複数個のオブジェクト領域が、文字領域と非文字領域とに分類された後に、文字領域に対しては、該文字領域内の文字を示す文字画像データを生成する処理が行われ(図2、図14のS50)、文字領域とは異なる領域(非文字領域や背景の領域)に対しては、非文字画像データを生成する処理が行われる(図2、図14のS50)。そして、出力される処理済画像データとして、圧縮PDFファイルが生成される(図2、図14のS60、S65)。これに代えて、文字領域や、文字領域とは異なる領域に対して、別の画像処理が実行されても良い。例えば、文字領域に対しては、文字のエッジを強調する処理が実行されても良く、文字領域とは異なる領域に対しては、領域内の網点を目立たなくするための平滑化処理が実行されても良い。一般的には、オブジェクト分類処理による分類結果を用いた画像処理が実行されて、処理済画像を示す処理済画像データが生成されれば良い。さらには、該分類結果を用いた画像処理は、文字領域に対する第1の画像処理と、文字領域とは異なる領域に対する第2の画像処理と、を含むことが好ましい。こうすれば、文字領域と、文字領域とは異なる領域と、に対して、適切な画像処理を実行できるので、適切な処理済み画像データを生成することができる。
(6)上記第2実施例の図14のS10Bで取得される対象画像データは、スキャンデータであるが、これに限られない。対象画像データは、原稿をデジタルカメラによって撮影して生成される撮像画像データであっても良い。撮像画像データは、二次元イメージセンサを用いて生成される画像データである、と言うことができる。
(7)上記第2実施例の図14のS70Bでは、生成された圧縮PDFファイルは、不揮発性記憶装置230に出力されて保存される。これに代えて、生成された圧縮PDFファイルが、表示部240に出力されることによって、該圧縮PDFファイルによって示される画像が表示されても良いし、プリンタ300に出力されることによって、該圧縮PDFファイルによって示される画像が印刷されても良い。
(8)上記各実施例の圧縮処理(図2、図14のS60)にて用いられる圧縮方式は、一例であり、これに限られない。例えば、非文字画像データの圧縮には、圧縮レベルが高くなるに連れて、例えば、解像度、階調性、使用される色数、取り得る色数(色データのビット数)などの各種の画像データの属性の全部または一部を、所定のルールに従って、低下させていく圧縮方式や、これらの圧縮方式とJPEG圧縮方式とを組合わせた圧縮方式などが用いられても良い。いずれの圧縮方式が用いられる場合でも、圧縮レベルが高いほど、圧縮率が高くなるように、圧縮レベルに応じて、圧縮のパラメータが異なる圧縮方式が採用されることが好ましい。
また、文字画像データの圧縮には、取り得る色数(色データのビット数)を減少させる処理と、Deflate圧縮などの可逆圧縮とを組合わせた圧縮処理などが採用されても良い。
(9)上記各実施例において、文字画像データの圧縮方式は、非文字画像データの圧縮方式と同様に、圧縮条件決定処理において決定される圧縮レベルに応じて切り替えられても良い。例えば、図10の圧縮条件決定処理のS570〜S585において、文字の色数が2色以上M色未満(Mは、3以上の整数)である場合に、注目文字領域の圧縮方式がZIP圧縮方式に決定され(S580)、文字の色数がM色以上である場合に、注目文字領域の圧縮方式がJPEG圧縮方式に決定されることする(S585)。そして、圧縮レベルが第1のレベル(例えば、2)である場合には、上記Mを第1の値(例えば、4)に設定し、圧縮レベルが第1のレベルより高い第2のレベル(例えば、4)である場合には、上記Mを前記第1の値より大きな第2の値(例えば、6)に設定しても良い。
(10)上記各実施例の圧縮条件決定処理(図10、図17)や分類条件決定処理(図5、図16)では、圧縮レベルや文字検出レベルを、印刷条件情報や読取条件情報に基づいて変更し、該圧縮レベルや文字検出レベルに基づいて、圧縮方式や分類条件を決定している。印刷条件情報や読取条件情報に基づいて、圧縮方式や分類条件を決定するこのような具体的な方法は、一例であり、これに限られない。例えば、図5の分類条件決定処理に代えて、分類条件Aと、分類条件Aよりも文字に分類する確率が高い分類条件Bと、の2段階の分類条件が用いられてもよい。そして、CPU110は、主要オブジェクトが文字である確率が比較的高いことを示す3個の印刷条件情報(用紙が普通紙であることを示す情報、カラーモードがCMYモードとは異なるモードであることを示す情報、対象画像データがベクトルデータであることを示す情報)のうちの2個以上の情報が取得される場合に、分類条件Bに決定しても良い。そして、CPU110は、該3個の印刷条件情報のうち、1個以下の情報しか取得されない場合に、分類条件Aに決定しても良い。
(11)上記第1実施例の印刷処理は、端末装置100によって実現されているが、これに代えて、複合機、デジタルカメラ、スキャナなどが備える制御装置、または、これらの機器とネットワークを介して通信可能なサーバによって実現されてもよい。例えば、スキャナが、自身が生成したスキャンデータを対象画像データとして、第1実施例の印刷処理を実行しても良い。また、上記第2実施例の保存処理は、スキャナ200によって実現されているが、これに代えて、複合機、デジタルカメラ、ユーザの端末装置などが備える制御装置、または、これらの機器とネットワークを介して通信可能なサーバによって実現されてもよい。例えば、ユーザの端末装置が、通信可能に接続されたスキャナから取得したスキャンデータを対象画像データとして、第2実施例の保存処理を実行しても良い。また、当該印刷処理や保存処理は、1つの装置で実行されてもよいし、これに代えて、ネットワークを介して接続される複数の装置(例えば、スキャナまたは複合機とサーバ)によって、実現されても良い。この場合には、当該印刷処理や保存処理を実現する複数個の装置の全体が、画像処理装置に相当する。
(12)上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。