A.第1実施例:
A−1.複合機100の構成
次に、実施の形態を実施例に基づき説明する。図1は、実施例の画像処理装置としての複合機100の構成を示すブロック図である。
複合機100は、制御部120と、読取実行部130と、印刷実行部140と、通信インタフェース(通信IF)150と、図示しない液晶ディスプレイなどの表示部と、図示しないタッチパネルやボタンを含む操作部と、を備えている。
制御部120は、メインプロセッサ101と、複数個の画像処理部102〜110と、DRAMなどの複数個の揮発性メモリ111〜116と、フラッシュメモリなどの不揮発性メモリ117と、を備えている。
メインプロセッサ101は、不揮発性メモリ117に格納されるコンピュータプログラムPGを実行することによって、読取実行部130や印刷実行部140、および、画像処理部102〜110を含む複合機100の全体を制御するCPUである。
複数個の画像処理部102〜110は、メインプロセッサ101の制御に従って動作するASICなどのハードウェア回路である。揮発性メモリ111〜116は、メインプロセッサ101や画像処理部102〜110によって利用されるメモリである。これら画像処理部やメモリを用いた処理の概要は後述する。
不揮発性メモリ117には、上述のコンピュータプログラムPGが格納されている。コンピュータプログラムPGは、メインプロセッサ101に複合機100の制御を実現させる制御プログラムである。コンピュータプログラムPGは、複合機100の製造時に、不揮発性メモリ117に予め格納される形態で提供される。これに代えて、コンピュータプログラムPGは、サーバからダウンロードされる形態で提供されても良く、DVD−ROMなどに格納される形態で提供されてもよい。
読取実行部130は、メインプロセッサ101の制御に従って、一次元イメージセンサを用いて原稿を光学的に読み取ることによってスキャンデータを生成する。スキャンデータは、複数個の画素の値を含み、複数個の画素の値のそれぞれは、画素の色をRGB表色系の色値(RGB値とも呼ぶ)で表す。すなわち、スキャンデータは、RGB画像データである。1個の画素のRGB値は、例えば、赤色(R)と緑色(G)と青色(B)との3個の色成分の値(以下、R値、G値、B値とも呼ぶ)を含んでいる。本実施例では、各成分値の階調数は、256階調である。
印刷実行部140は、メインプロセッサ101の制御に従って、複数種類のトナー、具体的には、シアン(C)、マゼンタ(M)、イエロ(Y)、ブラック(K)のトナーを、色材として用いて、レーザ方式で用紙などの印刷媒体に画像を印刷する。なお、変形例では、印刷実行部140は、色材としてのインクを吐出して、用紙上に画像を形成するインクジェット方式の印刷実行部であっても良い。
通信IF150は、ユーザの端末装置(図示省略)などの外部装置と通信を行うためのインタフェース、例えば、イーサネット(登録商標)規格に従うネットワークインタフェースである。
A−2.複合機100の処理の概要
複合機100によって実行されるコピー処理、すなわち、読取実行部130を用いて、原稿を示すスキャンデータを生成し、該スキャンデータを用いて原稿を示す画像を印刷する処理の概要を説明する。なお、本実施例の原稿は、例えば、複合機100、あるいは、図示しないプリンタによって画像が印刷された印刷物である。
利用者は、複写すべき原稿を読取実行部130のシートフィーダにセットし、複写の開始指示を図示しない操作部を介して入力する。読取実行部130は、開始指示に応じて、原稿を1枚ずつ読み取ることによって、対象画像データとしてのスキャンデータを生成する。生成されたスキャンデータは、第1入力処理部102に出力される。
第1入力処理部102は、読取実行部130から出力されるスキャンデータに対して、シェーディング補正、色補正など、周知の画像処理を行って、画像処理済みのスキャンデータを領域分離処理部103に送信する。
領域分離処理部103は、第1入力処理部102から出力されるスキャンデータに対して、領域分離処理を行う。領域分離処理部103は、スキャンデータによって示されるスキャン画像の画素ごとに写真(自然画)領域、文字領域、網点領域、網点内の文字領域といった画像の特徴を検出して、領域ごとの属性を表すフラグデータを、後述する文字フラグ1007、網点フラグ1008、網点内文字フラグ1009として生成する。該フラグデータは、第2入力処理部104に出力されるとともに、第1フラグメモリ112に格納される。
第2入力処理部104は、第1入力処理部102から出力されるスキャンデータに対して、領域分離処理部103から出力されるフラグデータに基づき、領域ごとに適正な画像処理を行なって、処理済画像データを生成する。処理済画像データは、第1画像メモリ111に格納される。例えば、第2入力処理部104は、文字領域に対して、画像の高周波成分を強調して文字の鮮鋭度を強調する処理を行い、網点領域に対して、ローパスフィルタ処理を行う。ローパスフィルタ処理によって、スキャン画像に含まれるいわゆるモアレ成分が除去される。これらの処理の切り替えは、領域分離処理部103で生成したフラグデータに基づいて、画素単位で行われる。
第1画像メモリ111に1ページ分の処理済画像データが格納されると、データ圧縮部107は、該処理済画像データを、例えば、非可逆圧縮方式(例えば、JPEG方式)を用いて圧縮し、圧縮済みの処理済画像データを、メインメモリ113に格納する。
第1フラグメモリ112に1ページ分のフラグデータが格納されると、データ圧縮部107は、該フラグデータを、可逆圧縮方式(例えば、ZIP方式)を用いて圧縮し、圧縮済みのフラグデータを、メインメモリ113に格納する。
上記の処理を行なって、メインメモリ113には各原稿の圧縮済みの処理済画像データおよび圧縮済みのフラグデータが蓄積されていく。この蓄積処理と並行して、データ復号部109は、メインメモリ113から圧縮済みの処理済画像データおよび圧縮済みのフラグデータを取得し、復号処理を行なう。このとき、解像度変換部108は、必要に応じて、復号された処理済画像データに対して、該処理済画像データの解像度を変換する解像度変換を行なう。
復号および解像度が変換された処理済画像データは、第2画像メモリ116に格納され、復号されたフラグデータは、第2フラグメモリ115に格納される。
出力処理部110は、第2画像メモリ116に格納された処理済画像データ(RGB値)に対して、色変換処理やハーフトーン処理を含む生成処理を実行して、印刷データを生成する。出力処理部110は、印刷データを生成する過程において、第2フラグメモリ115に格納されたフラグデータを参照して、各画素が属する領域の属性を認識し、領域ごとに適した画像処理を実行することができる。これによって、適切な印刷データが生成される。生成される印刷データは、印刷実行部140に出力される。この結果、印刷実行部140によって、用紙上に原稿を示す画像が印刷される。
上記は、コピー処理についてのものであったが、複合機100は、ユーザの端末装置などの端末装置から送信される印刷ジョブを、通信IFを介して受信し、該印刷ジョブに基づいて画像を印刷する、いわゆるネットワークプリンタとしても機能する。
この場合には、通信IF150を介して受信される印刷ジョブは、PDL形式の画像データを含む。該印刷ジョブは、インタープリタ106に供給される。インタープリタ106は、受信した印刷ジョブに含まれるPDL形式の画像データを解釈し、RIP105が解釈可能な描画コマンド(中間データ)に変換する。RIP105は、この描画コマンドに基づき描画処理(ラスタライズ処理)を行なって、RGB画像データを生成する。このRGB画像データは、第1画像メモリ111に格納される。RIP105は、フラグデータを生成して、第1フラグメモリ112に格納する。PDL形式の印刷データでは、文字、写真(自然画)、網点等は、印刷コマンドで定義されているので、RIP105は、フラグデータを容易に生成することができる。
A−3.領域分離処理部103による処理
領域分離処理部103によって実行される処理について説明する。図2は、第1実施例の領域分離処理部103の構成を示すブロック図である。
最小成分データ生成部1002には、第1入力処理部102から出力されるスキャンデータの各画素の値を示す画素単位の入力信号1001が、画素ごとに入力される。入力信号1001は、スキャンデータの各画素のRGB値を示す信号である。最小成分データ生成部1002は、入力信号1001によって示されるRGB値に基づいて、最小成分値Vminを示す信号を、属性判定用の画素単位の判定信号として生成する。最小成分値Vminは、RGB値に含まれる複数個の成分値(R値、G値、B値)のうちの最小値である。最小成分データ生成部1002は、入力されるスキャンデータの画素ごとに、当該画素を構成する複数個の成分値の最小値を、最小成分値Vminとして生成する回路である、と言うことができる。
最小成分データ生成部1002にて生成された最小成分値Vminを示す判定信号は、文字判定部1003と、網点判定部1004と、網点内文字判定部1005と、にそれぞれ出力される。文字判定部1003と、網点判定部1004と、網点内文字判定部1005とは、入力される判定信号を用いて、文字判定、網点判定、網点内文字判定を、それぞれ、実行し、判定結果を示す結果信号を、属性フラグ生成部1006に出力する。
属性フラグ生成部1006は、各判定部1003〜1005からの結果信号を用いて、属性フラグを生成する。実施例では、文字フラグ1007、網点フラグ1008、網点内文字フラグ1009が生成される。文字フラグ1007は、スキャンデータ内の対応する画素が、文字領域を構成する文字画素であるか否かを示すフラグである。網点フラグ1008は、スキャンデータ内の対応する画素が、網点領域を構成する網点画素であるか否かを示すフラグである。網点内文字フラグ1009は、スキャンデータ内の対応する画素が、網点内文字領域を構成する網点内文字画素であるか否かを示すフラグである。これらの属性フラグを基に、スキャン画像に含まれる画像の特徴に応じて最適な画像処理を施すことが可能になる。以下、文字判定部1003、網点判定部1004、網点内文字判定部1005について、より詳しく説明する。
A−3−1.文字判定部1003の説明
図3は、文字判定部1003の構成を示すブロック図である。
エッジ強調部1102には、最小成分データ生成部1002からの判定信号(最小成分値Vmin)が入力される。エッジ強調部1102は、該判定信号に対してエッジ強調処理を行ない、エッジ強調信号を出力する。このエッジ強調処理は、最小成分データの所望の周波数成分を、強調・抽出するフィルタ処理が行われる。本実施例では、ラプラシアンフィルタなどの2次微分フィルタが用いられる。このために、エッジ強調部1102は、フィルタ処理に必要な、最小成分データの複数個の画素の最小成分値Vminを示す複数個の判定信号を記憶するためのバッファメモリを備える。
エッジ強調部1102から出力されたエッジ強調信号は、エッジ強調信号によって示される値と、閾値と、の比較を行う閾値判定部1103、1104に入力される。閾値判定部1103には正の値の閾値が、閾値判定部1104には負の値の閾値が設定されている。
図4は、文字判定部の処理を説明するための図である。エッジ強調処理において2次微分フィルタを用いた場合、エッジ強調信号によって示される画素の値は、正の値である場合と、負の値である場合がある。図4(A)において、エッジ境界部1501は、下地1503(例えば白色)にある文字1502(例えば、黒色)と、下地1503と、のエッジを表している。図4(B)には、エッジ境界部1501の断面1510に対応する最小成分データ(すなわち、判定信号)1504が示されている。この例では、文字1502の部分における最小成分データの値(最小成分値Vmin)は、比較的小さな値1505であり、下地1503の部分における最小成分データの値は、比較的大きな値1506である。図4(C)には、図4(B)の最小成分データ1504に対して、2次微分フィルタを用いエッジ強調処理を行って得られるエッジ抽出データ1507(すなわち、エッジ強調信号によって示されるデータ)が示されている。エッジ抽出データ1507は、文字1502側では正の値1508となり、下地1503側では負の値1509となる。閾値判定部1103は、エッジ強調信号によって示される値が、正の閾値を超えた場合に、「1」を示す内エッジ信号を出力し、正の閾値以下である場合に、「0」を示す内エッジ信号を出力する。「1」を示す内エッジ信号は、対応する画素が、最小成分データにおいて、比較的小さな値から比較的大きな値へと変化するエッジを構成する小さな値側の画素(内エッジ画素)であることを示す。図4の例では、文字1502と下地1503とのエッジを構成する文字側の画素が、内エッジ画素である。閾値判定部1104は、エッジ強調信号によって示される値が、負の閾値を下回った場合に、「1」を示す外エッジ信号を出力し、負の閾値以上である場合に、「0」を示す外エッジ信号を出力する。「1」を示す外エッジ信号は、対応する画素が、最小成分データにおいて、比較的小さな値から比較的大きな値へと変化するエッジを構成する大きな値側の画素(外エッジ画素とも呼ぶ)であることを示す。図4の例では、文字1502と下地1503とのエッジを構成する下地側の画素が、外エッジ画素である。
閾値判定部1103から出力された内エッジ信号は、エリア積算部1105へ、閾値判定部1104から出力された外エッジ信号は、エリア積算部1106へ、それぞれ出力される。エリア積算部1105は、注目画素を中心とする縦3画素×横3画素の周辺範囲内の画素に対応する9個の内エッジ信号を積算した積算信号を、画素ごとに出力する。エリア積算部1106は、注目画素の上記周辺範囲内の画素に対応する9個の外エッジ信号を積算した積算信号を、画素ごとに出力する。したがって、エリア積算部1105、1106から出力される積算信号は、対応する画素の周辺範囲内に存在する内エッジ画素の個数、外エッジ画素の個数を、それぞれ示す。したがって、積算信号が示す値は0以上9以下の範囲となる。
閾値判定部1107、1108は、エリア積算部1105および1106から出力される積算信号が示す値と、閾値と、を比較して、その結果を示す積算判定信号を出力する。例えば、閾値としてそれぞれ「2」という値が設定されている。このために、閾値判定部1107から出力される積算判定信号は、対応する画素の上記周辺範囲内に、内エッジ画素が2個以上ある場合に、肯定的な値(例えば、「1」)を示す。閾値判定部1108から出力される積算判定信号は、対応する画素の上記周辺範囲内に、外エッジ画素が2個以上ある場合に、肯定的な値(例えば、「1」)を示す。
処理の具体例を、図5を用いて説明する。図5は、文字判定部の各処理の信号を示す図である。図5(A)には、最小成分データによって示される最小成分画像内に現れる下地上の文字のエッジの一部1301が示されている。
図5(B)は、判定信号(すなわち、最小成分値Vminを示す信号)をエッジ強調部1102によってエッジ強調し、閾値判定部1104によって処理した結果、すなわち、外エッジ画素の特定結果を示している。図示のように、領域1302は、文字のエッジの外側の領域(外エッジ領域)を表わしている。
図5(C)は、閾値判定部1104からの外エッジ信号をエリア積算部1106によって処理し、エリア積算部1106からの積算信号を閾値判定部1108によって処理した結果、すなわち、外エッジのエリア積算の判定結果を示している。図示のように、領域1304は、外エッジ領域1302の拡張した結果となる。
図5(D)は、判定信号(すなわち、最小成分値Vminを示す信号)をエッジ強調部1102によってエッジ強調し、閾値判定部1103によって処理した結果、すなわち、内エッジ画素の特定結果を示している。図示のように、領域1303は、文字のエッジの内側の領域(内エッジ領域)を表わしている。
図5(E)は、閾値判定部1103からの内エッジ信号をエリア積算部1105によって処理し、エリア積算部1105からの積算信号を閾値判定部1107によって処理した結果、すなわち、内エッジのエリア積算の判定結果を示している。図示のように、領域1305は、内エッジ領域1303の拡張した結果となる。
総合判定部1109には、閾値判定部1103、1107、1108から出力される3種類の信号、すなわち、内エッジ信号と、内エッジの積算判定信号と、外エッジの積算判定信号と、が入力される。総合判定部1109は、文字判定部1003の判定結果を示す結果信号である文字判定信号1110を生成する。図5(F)には、文字判定信号によって文字である示される領域1306が示されている。
総合判定部1109は、内エッジ信号と、内エッジの積算判定信号と、外エッジの積算判定信号と、に基づいて、決められた論理に従って文字判定信号1110を出力する。例えば、文字判定信号1110は、以下のような論理で、文字であることを示す信号(本実施例では「1」)、または、文字でないことを示す信号(本実施例では「0」)に決定される。
(1)対応する画素が内エッジである。→「1」
(2)対応する画素が外エッジであり、かつ、上記縦3画素×縦3画素の周辺範囲に外エッジが2個以上ある。→「0」
(3)上記(1)、(2)のいずれにも該当せず、かつ、上記縦3画素×縦3画素の周辺範囲に内エッジが2個以上ある。→「1」
(4)上記(1)〜(3)のいずれにも該当しない。→「0」
図6は、総合判定部1109が保持するテーブルの一例を示す図である。上記を実現するためには、総合判定部1109は、図6のテーブルを参照する。図示の如く、入力される内エッジ信号、内エッジの積算判定信号、外エッジの積算判定信号の結果に応じて、文字判定信号1110が決定される。以上のように行うことで、文字を好適に抽出することができる。
A−3−2.網点判定部1004の説明
図7は、実施例における網点判定部1004の構成を示すブロック図である。
エッジ強調部1202には、最小成分データ生成部1002からの判定信号(最小成分値Vmin)が入力される。エッジ強調部1202は、判定信号に対してエッジ強調処理を行ない、エッジ強調信号を出力する。エッジ強調部1202によるエッジ強調処理は、図3のエッジ強調部1102によるエッジ強調処理と同様の処理であり、例えば、ラプラシアンフィルタなどの2次微分フィルタを用いたフィルタ処理である。
エッジ強調部1202から出力されたエッジ強調信号は、エッジ強調信号によって示される値と、閾値と、の比較を行う閾値判定部1203、1204に入力される。閾値判定部1203には正の値の閾値が、閾値判定部1204には負の値の閾値が設定されている。
図8は、網点判定部の処理を説明するための図である。エッジ強調処理において2次微分フィルタを用いた場合、上述したように、エッジ強調信号によって示される画素の値は、正の値である場合と、負の値である場合がある。図8(A)において、エッジ境界部1601は、下地1603(例えば、白色)にある1個の網点1602と、下地1603と、のエッジを表している。図8(B)には、網点エッジ境界部1601の断面1610に対する最小成分データ(すなわち、判定信号)1604が示されている。この例では、網点1602の部分における最小成分データの値(最小成分値Vmin)は、比較的小さな値1605であり、下地1603の部分における最小成分データの値は、比較的大きな値1606である。図8(C)には、図8(B)の最小成分データ1604に対して、2次微分フィルタを用いエッジ強調処理を行って得られるエッジ抽出データ1607が示されている。エッジ抽出データ1607は、網点1602側では正の値1608となり、下地1603側では負の値1609となる。閾値判定部1203は、図3の閾値判定部1103と同様に、内エッジ信号を出力する。閾値判定部1204は、図3の閾値判定部1104と同様に、外エッジ信号を出力する。図6の例では、網点1602と下地1603とのエッジを構成する網点側の画素が、内エッジ画素である。また、網点1602と下地1603とのエッジを構成する下地側の画素が、外エッジ画素である。
閾値判定部1203から出力される内エッジ信号は、孤立量判定部1205に入力される。閾値判定部1204から出力される外エッジ信号は、孤立量判定部1206に入力される。
孤立量判定部1205は、閾値判定部1203からの内エッジ信号についてパターンマッチング処理を行う。原稿に含まれる網点には、比較的単位面積当たりの線数が少ないものから比較的単位面積あたりの線数が多いものまであるため、原稿によって網点のサイズや間隔は異なる。そのため、どのような線数の網点でも検出できるように、パターンマッチングは複数のパターンにて行う。少線数の網点に対しては、比較的大きなパターンにてマッチングを行い、網点かどうかを判定する。多線数の網点に対しては、比較的小さなパターンにてマッチングを行い、網点かどうかを判定する。また、網点は、原稿上で表現すべき濃度によっても形状が変化するので、それに対応できるよう、マッチングの際に、複数の判定レベルを用いる。
図9は、パターンマッチングの一例を示す第1の図である。図9(A)は、閾値判定部1203の結果の例である。図9(A)には、縦4画素×横4画素の範囲でパターンマッチングする例を説明するため、当該範囲内の内エッジ信号1700を示している。その中で、閾値判定部1203で、「1」を示す内エッジ信号が出力された画素(内エッジ画素)が、ハッチングされた領域1702の4画素である。「0」を示す内エッジ信号が出力された画素(非内エッジ画素)は、ハッチングされていない領域1703の画素である。マッチングの対象となる注目画素は画素1701である。
次に、同サイズの判定パターンの一例を図9(B)に示す。図示の判定パターン1710において、4個の黒画素1712は、該パターンにおいて、内エッジ画素であるべき画素である。8個の白画素1713は、非内エッジ画素であるべき画素である。4隅の画素は、内エッジ画素でも非内エッジ画素でも構わない任意画素1714である。これを基本パターンとして、黒画素1712と白画素1713のそれぞれに、複数の一致レベルを持たせて、判定レベルを調整する。
図10は、内エッジ信号と、図9(B)の判定パターン1710と、マッチングの結果の一例を示す図である。
判定パターン1710における黒画素1712と、内エッジ信号における内エッジ画素と、が、4画素のうちN1画素(N1は、1以上3以下の整数)以上一致した場合は、黒画素判定を有効とする。判定パターン1710における白画素1713と、内エッジ信号における非エッジ画素と、が8画素のうちN2画素以上(N2は、1以上7以下の整数)一致した場合は、白画素判定を有効とする。黒画素判定と白画素判定との両方が有効である場合に限って、注目画素1801の判定結果を示す孤立量判定信号を、「1」とする。N1とN2の値を調整することで、判定レベルを任意に調整できる。本実施例では、N1=3、N2=6とする。
図10(A)の内エッジ信号1810の場合、黒画素判定は有効(一致数=4)であり、かつ、白画素判定は有効(一致数=8)であるので、孤立量判定信号は「1」となる。
図10(B)の内エッジ信号1820の場合、黒画素判定は有効(一致数=4)であり、かつ、白画素判定は有効(一致数=7)であるので、孤立量判定信号は「1」となる。
図10(C)の内エッジ信号1830の場合、黒画素判定は有効(一致数=3)であり、かつ、白画素判定は有効(一致数=8)であるので、孤立量判定信号は「1」となる。
図10(D)の内エッジ信号1840の場合、黒画素判定は無効(一致数=2)であり、かつ、白画素判定は有効(一致数=8)であるので、孤立量判定信号は「0」となる。
このようなパターンマッチングを複数のサイズの判定パターンを用いて行う。実施例では、内エッジ信号について説明したが、外エッジ信号についても同様のパターンマッチングを行う。その際、判定パターンや判定レベルの調整値は任意に設定できる。
さて、孤立量判定部1205、1206から出力される孤立量判定信号は、図7のOR処理部1207に入力される。OR処理部1207では、縦3画素×横3画素の範囲内で孤立量判定信号の論理和をとり、該範囲内に孤立量判定信号が「1」である画素があるか否かを判定する。OR処理部1207は、判定の結果、孤立量判定信号が「1」である画素が、該範囲内に1個以上あれば、判定対象の注目画素のOR処理信号を「1」とし、孤立量判定信号が「1」である画素が、該範囲内に1個もなければ、判定対象の注目画素のOR処理信号を「0」とする。
図11は、OR処理部1207による処理の説明図である。図11(A)の例では、縦3画素×横3画素の範囲のうち、中心の注目画素の孤立量判定信号だけが「1」である。従って、出力されるOR処理信号は、「1」である。図11(B)の例では、中心の注目画素の孤立量判定信号は「0」であるが、縦3画素×横3画素の範囲内の右上の画素の孤立量判定信号は、「1」である。従って、出力されるOR処理信号は、「1」である。図11(C)の例では、中心の注目画素の孤立量判定信号は「0」であるが、その周囲の8個の画素の孤立量判定信号は、「1」である。従って、出力されるOR処理信号は、「1」である。
OR処理部1207から出力されるOR処理信号は、積算処理部1209に入力される。図12は、積算処理部1209と、閾値判定部1211と、の構成を示すブロック図である。
積算処理部1209は、注目画素を中心とする複数種類のサイズの積算範囲内の画素に対応する複数個のOR処理信号を積算した積算信号を、画素ごとに出力する。OR処理信号の信号を複数の積算範囲を用いて積算する。例えば、第1積算部2011は、積算範囲として、縦9画素×横9画素の範囲を用いる。したがって、第1積算部2011から出力される積算判定信号は、0以上81以下の範囲となる。第2積算部2012、第3積算部2013は、積算範囲として、それぞれ、縦15画素×横15画素の範囲、縦21画素×横21画素の範囲を用いる。したがって、第2積算部2012、第3積算部2013から出力される積算信号は、それぞれ、0以上225以下の範囲、0以上441以下の範囲となる。第1積算部2011、第2積算部2012、第3積算部2013から出力される積算信号は、それぞれ、閾値判定部1211の第1判定部2021、第2判定部2022、第3判定部2023に、入力される。
第1判定部2021、第2判定部2022、第3判定部2023は、それぞれに入力される積算信号が示す値と、閾値と、を比較して、その結果を示す積算判定信号を出力する。を行う。具体的には、第1判定部2021、第2判定部2022、第3判定部2023から出力される積算判定信号は、積算信号が示す値が、設定された閾値以上である場合には、「1」とされ、該閾値未満である場合には、「0」とされる。第1判定部2021、第2判定部2022、第3判定部2023で用いられる閾値は、互いに異なる値であり、本実施例では、それぞれ、「5」、「12」、「23」に設定されている。これによって、各判定部2021、2022、2023は、積算信号が示す値が、積算範囲内の画素数の約5%を超える場合に、「1」を示す積算判定信号を出力し、積算信号が示す値が、積算範囲内の画素数の約5%以下である場合に、「0」を示す積算判定信号を出力する。
第1判定部2021、第2判定部2022、第3判定部2023から出力される積算判定信号は、総合判定部1213(図7、図12)に入力される。総合判定部1213は、入力される3個の積算判定信号に基づいて、網点判定部1004の判定結果を示す結果信号である網点判定信号1215を生成する。網点判定信号1215は、注目画素が網点画素であることを示す値「1」と、注目画素が網点画素でないことを示す値「0」と、のいずれかである。
図13〜図15は、閾値判定部1211と、総合判定部1213と、の処理の一例を示す図である。図13(A)には、OR処理部1207によって出力されるOR処理信号2100が概念的に図示されている。このOR処理信号2100は、比較的低い濃度を示す網点を含む領域を処理した場合の例である。クロスハッチングされた画素は、対応するOR処理信号が「1」である画素を示し、クロスハッチングされていない画素は、対応するOR処理信号が「0」である画素を示す。図には、注目画素2101を中心とした、縦9画素×横9画素の積算範囲2102と、縦15画素×横15画素の積算範囲2103と、縦21画素×横21画素の積算範囲2104と、がそれぞれ示されている。それぞれの積算範囲での積算結果、すなわち、第1積算部2011、第2積算部2012、第3積算部2013から出力される積算信号の値が、図13(B)に示されている。第1積算部2011(9×9)の積算結果は、12画素であり、第2積算部2012(15×15)の積算結果は、40画素であり、第3積算部2013の積算結果は、76画素である。
したがって、図13(B)に示すように、第1積算部2011(9×9)の積算結果の「12」は閾値「5」以上であるので、第1判定部2021(9×9)が出力する積算判定信号は、「1」(網点)になる。同様に、第2積算部2012(15×15)の積算結果の「40」も閾値「12」以上であり、第3積算部2013(21×21)の積算結果の「76」も閾値「23」以上であるので、対応する第2判定部2022、第3判定部2023が出力する積算判定信号は、両方とも「1」になる。
総合判定部1213は、上記3種類の結果を元に、注目画素が最終的に網点かどうかを判定し、該判定結果を示す網点判定信号1215を生成する。本実施例では、総合判定部1213は、図13(C)に示すように、3種類の結果から二組のペアを作る。例えば、第1判定部2021と第2判定部2022との積算判定信号で第1のペアを作り、第2判定部2022と第3判定部2023との積算判定信号で第2のペアを作る。総合判定部1213は、それぞれの組の積算判定信号の論理積(AND)を算出する。第1のペアの論理積は、「1」(網点)であり、第2のペアの論理積も「1」(網点)である。総合判定部1213は、さらに、第1のペアの論理積と、第2のペアの論理積と、の論理和を、網点判定信号1215として生成する。図13の例では、いずれの論理積も「1」であるので、注目画素の網点判定信号1215は、「1」(網点)になる。
図14(A)には、図13と同程度の濃度を示す網点を含み、かつ、文字のエッジ2205を含む領域に対応するOR処理信号2200が概念的に図示されている。図示のように、文字のエッジ2205がある場合は、該エッジ近傍には、孤立したドットが発生しないため、文字エッジ近傍のOR処理信号は「0」になる。この場合には、図14(B)に示すように、第1積算部2011(9×9)の積算結果は、4画素であり、第2積算部2012(15×15)の積算結果は、32画素であり、第3積算部2013の積算結果は、60画素である。
したがって、図14(B)に示すように、第1積算部2011(9×9)の積算結果の「4」は閾値「5」未満であるので、第1判定部2021(9×9)が出力する積算判定信号は、「0」(非網点)になる。第2積算部2012(15×15)の積算結果の「32」は閾値「12」以上であり、第3積算部2013(21×21)の積算結果の「60」も、閾値「23」以上であるので、対応する第2判定部2022、第3判定部2023が出力する積算判定信号は、両方とも「1」(網点)になる。
図14(C)に示すように、第1のペアの論理積は、「0」(非網点)であり、第2のペアの論理積は「1」(網点)である。第1のペアの論理積と、第2のペアの論理積と、の論理和は、すなわち、注目画素の網点判定信号1215は、「1」(網点)になる。このように、文字のエッジを含むために、1つの積算範囲の積算結果が、非網点を示しても、最終的には、網点と判定される。このように、複数の積算範囲と、複数個の閾値を用いることで、網点として適切に検出できる。
図15(A)には、図13(A)と同程度の濃度を示す網点を含む領域の縁の外側に注目画素がある場合のOR処理信号2300が概念的に図示されている。この場合には、図15(B)に示すように、第1積算部2011(9×9)の積算結果は、0画素であり、第2積算部2012(15×15)の積算結果は、12画素であり、第3積算部2013の積算結果は、20画素である。
したがって、図15(B)に示すように、第1積算部2011(9×9)の積算結果の「0」は閾値「5」未満であるので、第1判定部2021(9×9)が出力する積算判定信号は、「0」(非網点)になる。第2積算部2012(15×15)の積算結果の「12」は閾値「12」以上であるので、第2判定部2022(15×15)が出力する積算判定信号は、「1」(網点)になる。第3積算部2013(21×21)の積算結果の「20」は閾値「23」未満であるので、第3判定部2023(21×21)が出力する積算判定信号は、「0」(非網点)になる。
図15(C)に示すように、第1のペアの論理積は、「0」(非網点)であり、第2のペアの論理積も「0」(非網点)である。第1のペアの論理積と、第2のペアの論理積と、の論理和は、すなわち、注目画素の網点判定信号1215は、「0」(非網点)になる。このように、複数の積算範囲と、複数個の閾値を用いることで、網点の縁の外側の画素を、非網点として適切に検出できる。
ここで説明した積算処理の組み合わせは一例に過ぎず、これに限るものではない。目的に応じて自由に組み合わせを構成できる。また、説明では3種類の積算処理の結果を用いたため二組の論理積を用いたが、これに限るものではない。入力数とその論理演算部は自由に構成できるものである。さらに、論理積と論理輪の組み合わせも一例に過ぎず、これに限るものではない。論理積や論理和を自由に組み合わせることができる。
A−3−2.網点内文字判定部1005の説明
図16は、網点内文字判定部1005の構成を示すブロック図である。
適応的スムージング処理部2401は、最小成分データ生成部1002からの判定信号を入力し、適応的なスムージング処理を行なう。ここでは、適応的に文字/細線を除外しつつ、スキャンデータの所望の周波数成分を平滑化するデジタルフィルタ処理が行われる。
適応的スムージング処理部2401から出力されたスムージング信号は、エッジ強調部2402に入力される。エッジ強調部2402は、スムージング信号に対して、エッジ強調処理を行い、エッジ強調信号を出力する。エッジ強調部2402によるエッジ強調処理は、図3のエッジ強調部1102によるエッジ強調処理と同様の処理であり、例えば、ラプラシアンフィルタなどの2次微分フィルタを用いたフィルタ処理である。
エッジ強調部2402から出力されたエッジ強調信号は、閾値判定部2403に入力される。閾値判定部2403には正の値の閾値が設定されている。
図4を参照して説明したように、エッジ強調処理において2次微分フィルタを用いた場合、エッジ強調信号によって示される画素の値は、正の値である場合と、負の値である場合がある。図4(B)に示すように、2次微分フィルタを用いエッジ強調処理を行って得られるエッジ抽出データ1507(すなわち、エッジ強調信号によって示されるデータ)は、文字1502側では正の値1508となり、下地1503側では負の値1509となる。
網点内文字判定では、網点領域内の文字自体を抽出することを目的としているため、文字の外エッジは網点領域とみなし、文字の内エッジを抽出することで網点内文字としている。このために、閾値判定部2403は、エッジ強調信号によって示される値が、正の閾値を超えた場合に、「1」を示す内エッジ信号を出力し、正の閾値以下である場合に、「0」を示す内エッジ信号を出力する。以下、上記処理を更に詳しく説明する。
図17は、適応的スムージング処理部2401の構成を示すブロック図である。最小成分データ生成部1002からの判定信号2501(最小成分値Vmin)は、3つに分岐され、平滑化処理部2502と、セレクタ2504と、線判定部2503と、にそれぞれ入力される。
平滑化処理部2502は、判定信号2501に対して、処理対象の注目画素を中心とする縦M画素×横M画素(Mは、2以上の整数)のフィルタ範囲内の複数個の画素の値を用いて平滑化処理を実行する。平滑化処理は、特定周波数帯域の感度を落とすことを目的とする処理であり、例えば、ガウシアンフィルタを用いた処理であっても良いし、平均値フィルタを用いた処理であっても良い。処理部2502は、平滑化処理の結果を示す平滑化信号を、セレクタ2504に供給する。
セレクタ2504に入力される判定信号2501は、平滑化処理部2502による処理の処理ライン数に応じた画像遅延に対応するために、図示しない遅延メモリを経由することで、遅延された後に、セレクタ2504に入力される。
線判定部2503は、平滑化処理部2502による処理のM本のライン分の処理バッファを利用して、縦N画素×横L画素(L、Nは、2以上の整数、N≦Mが好ましい)の処理領域にて、注目画素について、縦線、横線、斜め線上の画素であるか否かの判定を行う。線判定部2503は、これらの線についての判定結果に応じて、セレクタ2504に対して切替信号を出力する。線判定部2503は、注目画素が、これらの線上の画素(線画素とも呼ぶ)であると判定した場合には、「1」を示す切替信号を出力し、注目画素が線画素でないと判定した場合には、「1」を示す切替信号を出力する。
セレクタ2504は、線判定部2503から出力される切替信号に基づき、平滑化処理部2502から出力される平滑化信号と、フィルタ処理されていない判定信号2501と、のいずれかを出力する。セレクタ2504は、切替信号が「1」である場合、すなわち、線判定部2503にて、注目画素が線画素であると判定されたときは、フィルタ処理されない判定信号2501を出力する。セレクタ2504は、切替信号が「0」である場合、すなわち、注目画素が線画素でないと判定されたときは、平滑化信号を出力する。
線判定部2503について説明する。図18は、線判定に用いられる線パターンの一例を示す図である。線判定部2503は、図18(A)〜(D)に示すような線パターンを用いて、注目画素が線画素であるか否かを判定する。線パターンのサイズは、上述した縦N画素×横L画素のサイズである。図18の例では、N=5、L=7である。縦方向(副走査方向)の画素数Nは、平滑化処理部2502による処理のフィルタ範囲の副走査方向の画素数Mより小さい方がメモリを共有する観点から好ましいが、それに限られない。横方向(主走査方向)の画素数Lは、Mより大きくても構わない。
図18(A)の線パターン2600は縦線について判定するための線パターンを示し、図18(B)の線パターン2610は、横線について判定するための線パターンを示す。図18(C)、(D)の線パターン2620、2630は、斜め線について判定するための線パターンを表している。ここでは、線パターン2600を用いて、縦線についての判定方法を説明する。
パターン2600は縦5画素×横7画素のサイズを有する。線パターン2600は、縦5画素×横1画素の画素ブロック2602、2603、2604を含む。線判定部2503は、それぞれの画素ブロックについて、判定信号2501によって示される値の総和(ALL)、最大値(MAX)、最小値(MIN)を算出する。すなわち、それぞれの画素ブロックについて、画素ブロック内の画素の最小成分値Vminの総和、最大値、最小値が、算出される。
線判定部2503は、以下の条件式を評価する。
(1)MAX(2602)− MIN(2602) ≦ 閾値1
(2)MAX(2603)− MIN(2603) ≦ 閾値1
(3)ALL(2603)≦ ALL(2602)− 閾値2
条件(1)は、画素ブロック2602内の5画素について、画素の値の差がないことを評価する。条件(2)は、画素ブロック2603内の5画素について、画素の値の差がないことを評価する。条件(3)は、画素ブロック2602内の画素の値の総和と、画素ブロック2603内の画素の値の総和と、を比較し、画素ブロック2603が画素ブロック2602に対して、画素の値が相対的に低いことを評価する。条件(1)〜(3)が全て満たされる場合には、画素ブロック2603は、縦線を構成すると判定される。
線判定部2503は、以下の条件式を評価する。
(4)MAX(2604)− MIN(2604) ≦ 閾値1
(5)MAX(2603)− MIN(2603) ≦ 閾値1
(6)ALL(2603)≦ ALL(2604)− 閾値2
条件(4)は、画素ブロック2604内の5画素について、画素の値の差がないことを評価する。条件(5)は、画素ブロック2603内の5画素について、画素の値の差がないことを評価する。条件(6)は、画素ブロック2604内の画素の値の総和と、画素ブロック2603内の画素の値の総和と、を比較し、画素ブロック2603が画素ブロック2604に対して、画素の値が相対的に低いことを評価する。条件(4)〜(6)が全て満たされる場合には、画素ブロック2603は、縦線を構成すると判定される。
条件(1)〜(3)、または、条件(4)〜(6)を評価した結果、いずれか一方において、画素ブロック2603は縦線を構成すると判定された場合には、線判定部2503は、注目画素は、縦線上に位置する線画素である、と判定する。
図19は、図18(A)の線パターン2600を用いた判定の例を示す図である。図19(A)〜(C)には、線パターン2600に対応する縦5画素×横7画素領域内の判定信号(最小成分値Vmin)2700、2710、2720が示されている。判定信号2700は、白地に縦線がある部分の画像を示す。ハッチングされた複数個の画素は、縦線を構成している。説明の便宜上、判定信号が、0〜255の256階調の値を示す場合に、白の画素は、対応する判定信号の値が「255」であり、シングルハッチングされた画素は、対応する判定信号の値が「128」であり、クロスハッチングされた画素は、対応する判定信号の値が「0」であるとする。また、上記条件(1)〜(6)の閾値1は20であり、閾値2は200であるとする。
判定信号2700に上記条件(1)〜(6)を適用して、真偽を判定した結果は、以下の通りである。
(1)MAX(2702)− MIN(2702) ≦ 閾値1
128−128 ≦ 20 → 真
(2)MAX(2703)− MIN(2703) ≦ 閾値1
0−0 ≦ 20 → 真
(3)ALL(2703)≦ ALL(2702)− 閾値2
0×5 ≦ 128×5 − 200 → 真
(4)MAX(2704)− MIN(2704) ≦ 閾値1
128−128 ≦ 20 → 真
(5)MAX(2703)− MIN(2703) ≦ 閾値1
0−0 ≦ 20 → 真
(6)ALL(2703)≦ ALL(2704)− 閾値2
0×5 ≦ 128×5 − 200 → 真
このように、条件(1)〜(3)がすべて真のため、注目画素は、縦線上に位置する線画素であると判定される。また、条件(4)〜(6)もすべて真であるので、こちらの条件からも、注目画素は、縦線上に位置する線画素であると判定される。
図19(B)の判定信号2710は、白地に横線がある部分の画像を示す。判定信号2710に上記条件(1)〜(6)を適用して、真偽を判定した結果は、以下の通りである。(1)偽、(2)偽、(3)偽、(4)偽、(5)偽、(6)偽
この結果、注目画素は、縦線上に位置する線画素でないと判定される。
図19(C)の判定信号2720は、白地に斜め線がある部分の画像を示す。判定信号2720に上記条件(1)〜(6)を適用して、真偽を判定した結果は、以下の通りである。
(1)偽、(2)偽、(3)真、(4)偽、(5)偽、(6)真
この結果、注目画素は、縦線上に位置する線画素でないと判定される。
図20は、図18(B)〜(D)の線パターン2610〜2630を用いた判定の例を示す図である。図20(A)の判定信号2810は、白地に横線がある部分の画像を示す。図20(B)、(C)の判定信号2820、2830は、白地に斜め線がある部分の画像を示す。図20(A)〜(C)の例では、詳細は省略するが、注目画素は、いずれも線画素であると判定される。
線の太さによっては、本手法では判定できない場合もある。ある程度の太さを有する線分上の注目画素は、図18(A)〜(D)に示すいずれのパターンによっても線画素であると判定されない。しかしながら、この場合には、適応的スムージング処理部2401以降の処理で、該太い線分が、検出されるため問題とはならない。このような太い線分は、平滑化処理された画像信号がエッジ強調部2402で強調され、その後、閾値判定部2403で閾値処理されたときに検出される。線判定部2503による判定は、高周波の極細い線が、平滑化処理部2502によって平滑化されることを避けることを目的としている。
図21は、適応的スムージング処理部2401による平滑化の周波数特性2900の一例を示す図である。横軸は空間周波数特性を示し、縦軸はそれに対応する周波数応答を示す。高周波の帯域になればなるほど周波数応答が小さくなり、ある空間周波数以上(2902)では応答はない。このような平滑化の周波数特定を有する適応的スムージング処理部2401による処理を含む、網点内文字判定を行ったときの例を、図22を用いて説明する。
図22は、網点内文字判定部1005による網点内文字判定の例を示す図である。図22(A)の画像3000は、網点画像の一部を抽出したものである。この網点の出力線数は高く、図21に示すフィルタの周波数特性で言えば、空間周波数が2903の位置にあるような特性を持つ網点である。よって、網点画像3000に図21の空間周波数特性を持つフィルタにてフィルタ処理を施すと、網点の周期構造は消滅し、平滑化画像3010を得る。
同じ線数の網点内に文字がある場合を図22(B)で説明する。網点画像3020内には文字が印字されていて、この画像に対して適応的スムージング処理部2401による処理を実施すると、平滑化画像3030が得られる。網点部は平滑化されて網点の周期構造が消滅し、文字部は適応処理により平滑化が除外され、文字領域3031が明瞭に残る。この画像をエッジ強調部2402にてエッジ強調すると図22(C)の画像3040が得られる。画像3040では、文字のエッジが強調される。エッジ強調された画像を閾値判定部2403にて閾値判定処理すると、網点内文字判定信号2404(図16)によって示される画像3050を得る。黒い部分が網点内文字として判定された領域である。実施例では細い文字を例に示したため、文字全体を網点内文字として抽出している。図示しないが、文字サイズが大きくなると、文字全体ではなく、文字のエッジ部(輪郭)を抽出するようになる。
A−3−4.属性フラグ生成部1006の説明
属性フラグ生成部1006は、文字判定部1003から入力される文字判定信号と、網点判定部1004から入力される網点判定信号と、網点内文字判定部1005から入力される網点内文字判定信号と、に基づいて、画素ごとに属性フラグを生成する。生成される属性フラグは、次のようにして決定される。
(1)網点判定信号が「1」であり、かつ、文字判定信号が「0」であり、かつ、網点内文字判定信号が「0」である場合に、属性フラグは「網点」を示す値に決定され、網点フラグ1008が「1」となり、文字フラグ1007と網点内文字フラグ1009は「0」となる。
(2)網点判定信号が「0」であり、かつ、文字判定信号が「1」である場合には、属性フラグは、「文字」を示す値に決定され、文字フラグ1007が「1」となり、網点フラグ1008と網点内文字フラグ1009は「0」となる。
(3)網点判定信号が「1」であり、かつ、網点内文字判定信号が「1」である場合には、属性フラグは、「網点内文字」を示す値に決定され、網点内文字フラグ1009が「1」となり、文字フラグ1007と網点フラグ1008は「0」となる。
(4)上記以外の場合には、属性フラグは、「自然画、写真画、階調画像」を示す値に決定され、文字フラグ1007と網点フラグ1008と網点内文字フラグ1009は全て「0」となる。
このように画素ごとの属性フラグを示すフラグデータが生成されるので、該フラグデータを用いることで、画素ごとの属性に応じて、エッジ強調量、色再現方法、画像形成方法などの種々の画像処理方法を制御することができる。
A−3−5.印刷処理の説明
以上を踏まえて、具体的な印刷処理について説明する。上述したように、第2入力処理部104によってスキャンデータから生成される処理済データと、領域分離処理部103によって生成されるフラグデータとは、圧縮されてメインメモリ113に格納される。ここで説明するのは、圧縮済みの処理済画像データおよび圧縮済みのフラグデータ用いて実行される印刷処理である。
データ復号部109は、印刷実行部140の印刷可能になったタイミングに合わせて、メインメモリ113に格納された圧縮済みの処理済画像データおよび圧縮済みのフラグデータを読出し、復号処理を行なう。復号された処理済画像データは、第2画像メモリ116に格納され、復号されたフラグデータについては、第2フラグメモリ115に格納される。
出力処理部110は、第2画像メモリ116に格納された処理済画像データと、第2フラグメモリ115に格納されたフラグデータと、を用いて、印刷データを生成し、印刷実行部140に出力する。
図23は、出力処理部110の構成を示すブロック図である。第2画像メモリ116および第2フラグメモリ115に、印刷可能となる予め設定されたデータ量の処理済画像データおよびフラグデータが格納されると、該処理済画像データおよびフラグデータは、出力処理部110に転送される。
第2画像メモリ116から転送された処理済画像データ(RGB画像データ)は、RGB→CMYK変換部601、602にて、CMYK画像データに変換される。CMYK画像データは、印刷に用いられる色材に対応する色成分を含む表色系、本実施例では、C(シアン)、M(マゼンタ)、Y(イエロ)、およびK(ブラック)の成分を含むCMYK表色系の色値(CMYK値とも呼ぶ)で、各画素の色を示す画像データである。RGB→CMYK変換部601と602の違いは、前者が文字画像用の変換を行い、後者が写真画、網点用の変換を行なう点である。
通常、原稿中に印刷された文字の色は、黒単色か、せいぜい数色の程度である。そこで実施例では、このRGB→YMCK変換部601は、予め定義された色(C、M、Y、K)のパターンのうち、最も近似する色に変換する。例えば、R≒G≒B≒0の場合には、着目画素が黒であると判定してよいので、C=M=Y=0、K=255というパターンに変換する。RGB→YMCK変換部601は、入力したR、G、Bが8ビットで表現されている場合、それぞれの上位数ビット(2ビット程度で良いであろう)を入力し、CMYK(各8ビット)のデータを出力するルックアップテーブル(LUT)を用いて行われる。
RGB→YMCK変換部602は、高い精度でRGB→YMCKへの変換を行なう。この変換は、例えば、マトリクス演算で行われる。あるいは、RGBの計24ビットアドレス入力、YMCKの32ビット出力のLUTを用いて行われる。
合成部603は、第2フラグメモリ115からの転送されるフラグデータに基づき、上記2つの変換部601、602から出力されるCMYK画像データを合成する。具体的には、フラグデータに含まれる注目画素の属性フラグが「文字」を示す場合には、RGB→CMYK変換部601から出力された注目画素のCMYK値を選択し、出力する。また、注目画素の属性フラグが、「自然画」、または、「網点」を示す場合には、RGB→CMYK変換部602から出力された注目画素のCMYK値を選択し、出力する。そして、注目画素の属性フラグが、「網点内文字」を示す場合には、2つの変換部601、602から出力される2個のCMYK値を、所定の重みに従って合成して得られる値(例えば、平均値)を生成し、出力する。
合成部603から出力された各画素のCMYK値を示す信号は、フィルタ処理部604〜606に供給される。これらフィルタ処理部604〜606は、内部に数ライン分のバッファを有し、2次元フィルタ処理を行なう。フィルタ処理部604〜606の違いは、フィルタ処理のエッジ強調の度合を決定する係数が異なる点である。
フィルタ処理部604は、「文字」に適したフィルタ処理を行なう。フィルタ処理部605は、「網点内文字」に適したフィルタ処理を行なう。フィルタ処理部606は、「写真画」又は「網点」に適したフィルタ処理を行なう。各フィルタ処理部のエッジ強調の度合は、フィルタ処理部604>フィルタ処理部605>フィルタ処理部606の順である。ただし、上記エッジ強調の度合は一例に過ぎず、必ずしもこれに限るものではない。
上記は、平滑化処理の強度が、フィルタ処理部604<フィルタ処理部605<フィルタ処理部606の順であると言い換えることもできる。
セレクタ607は、注目画素の属性フラグが「文字」を示す場合に、フィルタ処理部604から出力された処理済みのCMYK値を選択し、出力する。セレクタ607は、注目画素の属性フラグが「網点内文字」を示す場合に、フィルタ処理部605からから出力された処理済みのCMYK値を選択し、出力する。セレクタ607は、注目画素の属性フラグが「写真」又は「網点」を示す場合に、フィルタ処理部606からから出力された処理済みのCMYK値を選択し、出力する。
セレクタ607から出力された処理済みのCMYK値は、ガンマ補正部608、610に入力される。ガンマ補正部608は、「文字」、「網点内文字」に適した補正を行ない、ガンマ補正部610は「網点」、「写真画」に適した補正を行なう。
ガンマ補正部608から出力される補正済みのCMYK値は、誤差拡散処理部609に入力される。誤差拡散処理部609は、入力されるCMYK値を、誤差拡散法に従うハーフトーン処理によって、ドットの形成状態を示すドット値に変換し、出力する。文字の場合には、印刷時に生成されるドットが分散されにくいことが望ましいので、ハーフトーン処理には、誤差拡散法が用いられることが好ましい。
ガンマ補正部610から出力される補正済みのCMYK値は、ディザ処理部611に入力される。ディザ処理部611は、入力されるCMYK値を、ディザマトリクスを用いるディザ法に従うハーフトーン処理によって、ドットの形成状態を示すドット値に変換し、出力する。写真画、網点の場合には、階調性が重視されるので、ハーフトーン処理には、ディザ法が用いられることが好ましい。
セレクタ612は、注目画素の属性フラグが「文字」または「網点内文字」を示す場合には、誤差拡散処理部609から出力されるドット値を選択し、印刷実行部140に出力する。また、セレクタ612は、注目画素の属性フラグが「写真」または「網点」を示す場合には、ディザ処理部611から出力されるドット値を選択し、印刷実行部140に出力する。
以上のように、文字、網点、および、網点内文字の領域を適切に抽出することで、その属性に応じた画像処理を実施可能となる。従って、文字は鮮明に、写真は滑らかな再現をすることが可能となる。特に、網点を含む原稿内で、網点と文字とを識別し、文字に平滑化処理を施すことなく、網点を平滑化することが可能なため、好適なモアレ除去が可能となる。その結果、網点を含む原稿内の写真にはスムージング処理を施し、モアレ除去した上でディザ処理を実施することで階調性の高い画像を印刷できる。また、網点を含む原稿内の文字には、エッジ強調処理を施した上で誤差拡散系の処理を実施することで、くっきりとした読みやすい文字を印刷できる。
以上説明した第1実施例によれば、最小成分データ生成部1002(図1)は、スキャンデータに含まれる複数個の画素のRGB値に対応する複数個の最小成分値Vminを画素ごとに生成する。すなわち、最小成分データ生成部1002は、複数個の最小成分値Vminを含む最小成分データを生成する。図3のエッジ強調部1102と閾値判定部1103とは、最小成分値Vminを示す判定信号を用いて、内エッジ信号を画素ごとに生成する。すなわち、図3のエッジ強調部1102と閾値判定部1103とは、最小成分データを用いて、複数個の内エッジ画素を示す内エッジデータを生成する。図3のエッジ強調部1102と閾値判定部1104とは、最小成分値Vminを示す判定信号を用いて、外エッジ信号を画素ごとに生成する。すなわち、図3のエッジ強調部1102と閾値判定部1104とは、最小成分データを用いて、複数個の外エッジ画素を示す外エッジデータを生成する。そして、図3のエリア積算部1105、1106、閾値判定部1107との全体は、内エッジ信号と外エッジ信号とに基づいて、各画素が文字画素であるか否かを画素ごとに判定する。すなわち、エリア積算部1105、1106、閾値判定部1107、1108、総合判定部1109との全体は、内エッジデータと外エッジデータとを用いて、スキャンデータによって示されるスキャン画像内の文字を示す領域に位置する複数個の文字画素を特定する。
この結果、例えば、最小成分データをもCMYKを用いることによって、輝度データを用いる場合には特定できない文字画素を特定し得る。この結果、スキャン画像内の文字を示す領域に位置する複数個の文字画素を適切に特定できる。
より詳しく説明する。図24は、スキャンデータの最小成分値と最大成分値の説明図である。図24(A)〜図24(E)には、RGB値の一例として、シアン(C)、マゼンタ(M)、イエロ(Y)、黒(K)、白(W)のRGB値が、棒グラフで図示されている。図5に示すように、C、M、Y、K、WのRGB値(R、G、B)は、それぞれ、(0、255、255)、(255、0、255)、(255、255、0)、(0、0、0)、(255、255、255)である。
これらのRGB値に対応する輝度値Yは、例えば、Y=0.299×R+0.587×G+0.114×Bの式を用いて算出できる。C、M、Y、K、Wの輝度値(0〜255の値で表す)は、約186、113、226、0、255であり、それぞれに異なる値となる(図24)。これに対して、C、M、Y、K、Wの最小成分値Vminは、図5に示すように、0、0、0、0、255となり、白(W)を除いて同じ値となる。
印刷物である原稿では、文字の色と背景の色とは、一方が濃い色を有し、他方が薄い色を有する場合が多い。このために、文字と背景のうち、一方は、用紙の地色(白)を示す部分を比較的多く含み、他方は、C、M、Y、Kのドットを示す部分を比較的多く含む場合が多い。図24に示すように、最小成分データでは、C、M、Y、Kの画素の値と、白を示す部分の画素の値と、の間で、大きな差がある。このために、最小成分データを用いて、文字のエッジを特定すると、文字のエッジを構成する内エッジ画素や外エッジ画素を、適切に特定できる可能性が高い。特に、イエロ(Y)は、C、M、Kと比較して濃度が低い(輝度が高い)。このために、用紙の地色(白)の背景に、イエロの文字がある場合には、仮に輝度データを二値化すると、該イエロの文字のエッジを構成する内エッジ画素や外エッジ画素を、適切に特定できない場合がある。本実施例では、このような場合でも該イエロの文字のエッジを構成する内エッジ画素や外エッジ画素を、適切に特定できる。したがって、本実施例によれば、複数個の文字画素を適切に特定できる。
さらに、第1実施例では、網点判定部1004は、最小成分データ生成部1002から入力される最小成分値Vminを示す判定信号を用いて、注目画素が網点であるか否かを示す網点判定信号1215を出力する(図7)。すなわち、網点判定部1004は、最小成分データを用いて、スキャン画像内の文字を示す領域とは異なる領域である網点領域に位置する複数個の網点画素を特定する。この結果、本実施例によれば、文字画素に加えて、複数個の網点画素を適切に特定することができる。
より具体的には、図7の網点判定部1004のエッジ強調部1202と閾値判定部1203とは、複数個の内エッジ画素を示す内エッジデータを生成する。図7の網点判定部1004のエッジ強調部1202と閾値判定部1204とは、複数個の外エッジ画素を示す外エッジデータを生成する。そして、孤立量判定部1205、1206、OR処理部1207、積算処理部1209、閾値判定部1211、総合判定部1213は、内エッジデータと外エッジデータとを用いて、網点領域に位置する複数個の網点画素を特定する。上述したように、最小成分データでは、C、M、Y、Kの画素の値と、白を示す部分の画素の値と、の間で、大きな差がある。この結果、網点が白い下地上に、形成されている場合には、上述したように、C、M、Y、Kのいずれかの色を有する網点1602と白の下地1603(図8)とエッジを構成する内エッジ画素や外エッジ画素を適切に特定できる。この結果、スキャン画像内の複数個の文字画素に加えて、複数個の網点画素を適切に特定できる。
また、上記第1実施例によれば、第2入力処理部104(図1)は、スキャンデータのうち、特定済みの複数個の文字画素の値に対して第1の画像処理(具体的には、文字の鮮鋭度を強調する処理)を実行し、複数個の網点画素の値に対して第1の画像処理とは異なる第2の画像処理(例えば、ローパスフィルタ処理)を実行して、処理済み画像データを生成する。このように、文字画素の値と、網点画素の値と、に対して、互いに異なる画像処理が実行されるので、スキャンデータに対する適切な画像処理を実現できる。
さらに、図23に示すように、出力処理部110は、処理済み画像データを用いて、印刷実行部140に印刷を実行させるための印刷データを生成する。この結果、適切な印刷データを生成することができる。例えば、印刷データの生成過程において、上述したように、文字画素と網点画素とで異なるハーフトーン処理を適用でき、また、異なる補正処理を適用できるので、適切な印刷データを生成できる。
B.第2実施例
図25は、第2実施例の領域分離処理部103Bの構成を示すブロック図である。領域分離処理部103Bは、図2の第1実施例の領域分離処理部103が備える最小成分データ生成部1002と、3個の判定部1003〜1005と、属性フラグ生成部1006と、に加えて、反転最小成分データ生成部1002Bと、文字判定部1003Bと、網点判定部1004Bと、網点内文字判定部1005Bと、3個のOR処理部1011B〜1013Bと、を備える。これらの判定部1003B〜1005Bは、同名の判定部1003〜1005と同一である。3個のOR処理部1011B〜1013Bは、それぞれ、入力される2個の信号の論理和を生成して、出力する回路である。
反転最小成分データ生成部1002Bには、最小成分データ生成部1002と同様に、第1入力処理部102から出力されるスキャンデータの各画素の値(RGB値)を示す画素単位の入力信号1001が、画素ごとに入力される。反転最小成分データ生成部1002Bは、入力信号1001によって示されるRGB値に基づいて、反転最小成分値VRminを示す信号を、属性判定用の画素単位の判定信号として生成する。
反転最小成分値VRminは、以下のように生成される。先ず、反転最小成分データ生成部1002Bは、入力信号1001によって示されるRGB値に含まれる複数個の成分値(R値、G値、B値)が反転された反転済みの色値(反転済みのRGB値)を生成する。反転前のRGB値を(Rin、Gin、Bin)とすると、反転済みのRGB値(Rout、Gout、Bout)は、以下の式(1)〜(3)で表される。
Rout=Rmax−Rin …(1)
Gout=Gmax−Gin …(2)
Bout=Bmax−Bin …(3)
ここで、Rmax、Gmax、Bmaxは、それぞれ、R値、G値、B値が取り得る値の最大値であり、本実施例では、Rmax=Gmax=Bmax=255である。反転最小成分データ生成部1002Bは、反転済みのRGB値から、反転最小成分値VRminを取得する。反転最小成分値VRminは、該反転済みのRGB値に含まれる複数個の成分値(R値、G値、B値)のうちの最小値である。
ここで、入力信号1001によって示されるRGB値に含まれる複数個の成分値(R値、G値、B値)のうちの最大値を最大成分値Vmaxとする。反転最小成分値VRminは、最大成分値Vmaxの反転値である(VRmin=(255−Vmax))。このために、反転最小成分値VRminは、スキャンデータの画素の値に含まれる複数個の成分値のうちの最大値に基づく値である、とも言うことができる。
反転最小成分データ生成部1002Bにて生成された反転最小成分値VRminを示す判定信号は、文字判定部1003Bと、網点判定部1004Bと、網点内文字判定部1005Bと、にそれぞれ出力される。したがって、文字判定部1003Bと、網点判定部1004Bと、網点内文字判定部1005Bとは、入力される判定信号(反転最小成分値VRmin)を用いて、第1実施例にて説明した文字判定、網点判定、網点内文字判定を、それぞれ、実行し、判定結果を示す結果信号(文字判定信号、網点判定信号、網点内文字判定信号)を出力する。
OR処理部1011Bには、最小成分値Vminを用いて判定を行う文字判定部1003から出力される第1文字判定信号と、反転最小成分値VRminを用いて判定を行う文字判定部1003Bから出力される第2文字判定信号と、が入力される。OR処理部1011Bは、第1文字判定信号と、第2文字判定信号と、の論理和を生成して、合成文字判定信号として出力する。
OR処理部1012Bには、最小成分値Vminを用いて判定を行う網点判定部1004から出力される第1網点判定信号と、反転最小成分値VRminを用いて判定を行う網点判定部1004Bから出力される第2網点判定信号と、が入力される。OR処理部1012Bは、第1網点判定信号と、第2網点判定信号と、の論理和を生成して、合成網点判定信号として出力する。
OR処理部1013Bには、最小成分値Vminを用いて判定を行う網点内文字判定部1005から出力される第1網点内文字判定信号と、反転最小成分値VRminを用いて判定を行う網点内文字判定部1005Bから出力される第2網点内文字判定信号と、が入力される。OR処理部1013Bは、第1網点内文字判定信号と、第2網点内文字判定信号と、の論理和を生成して、合成網点内文字判定信号として出力する。
属性フラグ生成部1006は、入力される合成文字判定信号と、合成網点判定信号と、合成網点内文字判定信号と、に基づいて、第1実施例と同様に、画素ごとに属性フラグを生成する。
以上説明した第2実施例では、反転最小成分データ生成部1002Bは、スキャンデータに含まれる複数個の画素のRGB値に対応する複数個の反転最小成分値VRminを画素ごとに生成する。すなわち、反転最小成分データ生成部1002Bは、複数個の反転最小成分値VRminを含む反転最小成分データを生成する。反転最小成分データは、最小成分データ生成部1002によって生成される最小成分データとは異なる処理を用いて生成されるデータである。
図25の文字判定部1003Bは、図2、図3の文字判定部1003と同一であるので、文字判定部1003Bは、反転最小成分データを用いて、複数個の内エッジ画素を示す内エッジデータを生成し、反転最小成分データを用いて、複数個の外エッジ画素を示す外エッジデータを生成する。そして、文字判定部1003Bは、該内エッジデータと該外エッジデータとを用いて、第2文字判定信号を生成する。以上のことから、文字判定部1003と、文字判定部1003Bと、OR処理部1011Bと、の全体は、最小成分データ(最小成分値Vmin)に基づく内エッジデータおよび外エッジデータと、反転最小成分データ(反転最小成分値VRmin)に基づく内エッジデータおよび外エッジデータと、からなる4個のエッジデータを用いて、複数個の文字画素を特定していることが解る。この結果、これらの4個のエッジデータを用いて、スキャン画像内の文字画素を、さらに、適切に特定することができる。
例えば、反転最小成分データを用いることによって、最小成分データのみを用いる場合には特定できない文字画素を特定し得る。この結果、スキャン画像内の複数個の文字画素を適切に特定できる。例えば、図24に示すように、C、M、Y、K、Wの最大成分値Vmaxは、255、255、255、0、255となり、黒(K)を除いて同じ値となる。上述したように、反転最小成分値VRminは、最大成分値Vmaxの反転値である(VRmin=(255−Vmax))ので、C、M、Y、K、Wの反転最小成分値VRminも、同様に、黒(K)を除いて同じ値となる。一方で、C、M、Y、K、Wの最小成分値Vminは、白(W)を除いて同じ値となる。このために、例えば、文字の背景が黒であり、文字がC、M、Yのいずれかである場合には、当該文字を構成する文字画素は、最小成分データ(最小成分値Vmin)を用いる場合には、特定することが困難である。このような文字を構成する文字画素は、反転最小成分データ(反転最小成分値VRmin)を用いる場合には、容易に特定することができる。
また、反転最小成分データ(反転最小成分値VRmin)のみを用いる場合には、地色(白)の背景に、C、M、Yの文字がある場合には、該文字を特定することが困難である。最小成分データを用いる場合には、該文字を容易に特定することができる。
以上のことから解るように、第2実施例では、最小成分データと、反転最小成分データと、を併用することで、様々な色の背景上にある様々な色の文字を構成する文字画素を適切に特定することができる。
文字と同様に、網点や網点内文字についても、最小成分データのみでは、特定できない網点を、最小成分データを用いることによって、特定し得る。第2実施例では、網点判定部1004と、網点判定部1004Bと、OR処理部1012Bと、の全体は、最小成分データ(最小成分値Vmin)と、反転最小成分データ(反転最小成分値VRmin)と、を用いて、スキャン画像内の網点画素を、さらに、適切に特定することができる。また、網点内文字判定部1005と、網点内文字判定部1005Bと、OR処理部1013Bと、の全体は、最小成分データ(最小成分値Vmin)と、反転最小成分データ(反転最小成分値VRmin)と、を用いて、スキャン画像内の網点内文字画素を、さらに、適切に特定することができる。
C.第3実施例
図26は、第3実施例の領域分離処理部103Cの構成を示すブロック図である。領域分離処理部103は、最小成分データ生成部1002と、輝度データ生成部1002Cと、を備えている。最小成分データ生成部1002は、第1実施例の図2の最小成分データ生成部1002と同一である。領域分離処理部103Cは、2個の文字判定部1003、1003Cと、1個の網点判定部1004Cと、1個の網点内文字判定部1005Cと、を備えている。これらの判定部1003、1003C、1004C、1005Cは、第1実施例の同名の判定部1003〜1005と同一である。また、領域分離処理部103Cは、図25のOR処理部1011Bと同一のOR処理部1011Cと、属性フラグ生成部1006と、を備える。
輝度データ生成部1002Cには、最小成分データ生成部1002と同様に、第1入力処理部102から出力されるスキャンデータの各画素の値(RGB値)を示す画素単位の入力信号1001が、画素ごとに入力される。輝度データ生成部1002Cは、入力信号1001によって示されるRGB値に基づいて、対応する画素の輝度を示す輝度値Yを示す信号を、属性判定用の画素単位の判定信号として生成する。輝度値Yは、上述したように、例えば、Y=0.299×R+0.587×G+0.114×Bの式を用いて算出できる。
最小成分データ生成部1002によって生成される判定信号(最小成分値Vmin)は、文字判定部1003にのみ出力される。文字判定部1003は、第1実施例にて説明した文字判定を実行し、判定結果を示す文字判定信号を、属性フラグ生成部1006Cに出力する。
輝度データ生成部1002Cにて生成された輝度値Yを示す判定信号は、文字判定部1003Cと、網点判定部1004Cと、網点内文字判定部1005Cと、にそれぞれ出力される。したがって、文字判定部1003Cと、網点判定部1004Cと、網点内文字判定部1005Cとは、入力される判定信号(輝度Y)を用いて、第1実施例にて説明した文字判定、網点判定、網点内文字判定を、それぞれ、実行し、判定結果を示す結果信号(文字判定信号、網点判定信号、網点内文字判定信号)を出力する。
OR処理部1011Cには、最小成分値Vminを用いて判定を行う文字判定部1003から出力される第1文字判定信号と、輝度値Yを用いて判定を行う文字判定部1003Cから出力される第3文字判定信号と、が入力される。OR処理部1011Cは、第1文字判定信号と、第3文字判定信号と、の論理和を生成して、合成文字判定信号として出力する。
輝度値Yを用いて判定を行う網点判定部1004Cから出力される第3網点判定信号と、輝度値Yを用いて判定を行う網点内文字判定部1005Cから出力される第3網点内文字判定信号と、は、属性フラグ生成部1006に入力される。
属性フラグ生成部1006は、入力される合成文字判定信号と、第3網点判定信号と、第3網点内文字判定信号と、に基づいて、第1実施例と同様に、画素ごとに属性フラグを生成する。
以上説明した第3実施例では、輝度データ生成部1002Cは、領域分離処理部103Cは、スキャンデータに含まれる複数個の画素のRGB値に対応する複数個の輝度値Yを画素ごとに生成する。すなわち、輝度データ生成部1002Cは、複数個の輝度値Yを含む輝度データを生成する。輝度データは、最小成分データ生成部1002によって生成される最小成分データとは異なる処理を用いて生成されるデータである。
図26の文字判定部1003Cは、図2、図3の文字判定部1003と同一であるので、文字判定部1003Cは、輝度データを用いて、複数個の内エッジ画素を示す内エッジデータを生成し、輝度データを用いて、複数個の外エッジ画素を示す外エッジデータを生成する。そして、文字判定部1003Cは、該内エッジデータと該外エッジデータとを用いて、第3文字判定信号を生成する。以上のことから、文字判定部1003と、文字判定部1003Cと、OR処理部1011Cと、の全体は、最小成分データ(最小成分値Vmin)に基づく内エッジデータおよび外エッジデータと、輝度データ(輝度値Y)に基づく内エッジデータおよび外エッジデータと、からなる4個のエッジデータを用いて、複数個の文字画素を特定していることが解る。この結果、これらの4個のエッジデータを用いて、スキャン画像内の文字画素を、さらに、適切に特定することができる。
例えば、輝度データを用いることによって、最小成分データのみを用いる場合には特定できない文字画素を特定し得る。この結果、スキャン画像内の複数個の文字画素を適切に特定できる。例えば、図24に示すように、C、M、Y、K、Wの最小成分値Vminは、白(W)を除いて同じ値となる。このために、例えば、文字の背景がシアン(C)であり、文字がマゼンタ(M)やイエロ(Y)である場合には、当該文字を構成する文字画素は、最小成分データ(最小成分値Vmin)を用いる場合には、特定することが困難である。C、M、Yでは、輝度が異なるために、このような文字は、輝度データ(輝度値Y)を用いる場合には、特定し得る。
また、輝度データのみを用いる場合には、上述したように、地色(白)の背景に、イエロの文字がある場合には、該文字を特定することが困難である。最小成分データを用いる場合には、該文字を容易に特定することができる。
以上のことから解るように、第3実施例では、最小成分データと、輝度データと、を併用することで、様々な色の背景上にある様々な色の文字を構成する文字画素を適切に特定することができる。
また、第3実施例では、網点や網点内文字については、輝度データのみを用いて特定するので、第2実施例と比較して、領域分離処理部103Cの構成を簡素化することができる。例えば、領域分離処理部103Cを構成する部品点数を削減することができる。
D.変形例
(1)第2実施例の反転最小成分データ生成部1002Bに代えて、最大成分データ生成部を備えても良い。最大成分データ生成部は、スキャンデータに含まれる複数個の画素のRGB値に対応する最大成分値Vmaxを画素ごとに生成する。最大成分値Vmaxは、上述したように、RGB値に含まれる複数個の成分値(R値、G値、B値)のうちの最大値である。すなわち、最大成分データ生成部は、複数個の最大成分値Vmaxを含む最大成分データを生成する。反転最小成分データと、最大成分データと、は、両方とも、スキャンデータの各画素の値に含まれる複数個の成分値のうちの最大値に基づく値(最大値の反転値、あるいは、最大値そのもの)を、画素の値とする画像データである。
(2)第1実施例の最小成分データ生成部1002に代えて、例えば、第2実施例の反転最小成分データ生成部1002Bを備えても良い。この場合には、例えば、黒色の背景上に位置する白やC、M、Yの文字を構成する文字画素を適切に特定することができる。また、最小成分データ生成部1002に代えて、変形例(1)の最大成分データ生成部を備えても良い。
(3)第2実施例では、最小成分データと、反転最小成分データと、を用いているが、さらに、輝度データを用いても良い。例えば、図25の領域分離処理部103Bは、図26の輝度データ生成部1002Cと、文字判定部1003Cと、網点判定部1004Cと、網点内文字判定部1005Cと、を、さらに、備えても良い。この場合には、OR処理部1011Bは、第1文字判定信号と、第2文字判定信号と、文字判定部1003Cから出力される第3文字判定信号と、の論理和を生成して、合成文字判定信号として出力する。また、OR処理部1012Bは、第1網点判定信号と、第2網点判定信号と、網点判定部1004Cから出力される第3網点判定信号と、の論理和を生成して、合成網点判定信号として出力する。OR処理部1013Bは、第1網点内文字判定信号と、第2網点内文字判定信号と、網点内文字判定部1005Cから出力される第3網点内文字判定信号と、の論理和を生成して、合成網点内文字判定信号として出力する。
同様に、第2実施例では、最小成分データと、輝度データと、に加えて、さらに、反転最小成分データと、を用いてもよい。例えば、図26の領域分離処理部103Cは、図25の反転最小成分データ生成部1002Bと、文字判定部1003Bと、を、さらに備えてもよい。この場合には、OR処理部1011Cは、第1文字判定信号と、第3文字判定信号と、文字判定部1003Bから出力される第2文字判定信号と、の論理和を生成して、合成文字判定信号として出力する。
(4)上記第1実施例において、領域分離処理部103は、網点内文字判定部1005を備えなくても良い。この場合には、属性フラグ生成部1006は、文字判定部1003から出力される文字判定信号と、網点判定部1004から出力される網点判定信号と、に基づいて、属性フラグを生成する。例えば、属性フラグ生成部1006は、文字判定信号が「1」である画素の属性フラグを、「文字」を示す値に決定し、文字判定信号が「0」であり、かつ、網点判定信号が「1」である画素の属性フラグを、「網点」を示す値に決定し、それ以外の画素の属性フラグを「その他」を示す値に決定しても良い。
また、第1実施例において、領域分離処理部103は、網点内文字判定部1005と網点内文字判定部1005と属性フラグ生成部1006とを備えなくてもよい。この場合には、領域分離処理部103は、文字判定部1003から出力される文字判定信号をそのまま属性フラグとして出力する。この場合には属性フラグは、「文字」を示す値と、「その他」を示す値と、の2種類である。
第2実施例や第3実施例においても領域分離処理部103B、103Cにおいて、網点内文字判定部や網点判定部は、適宜に省略されても良い。
(5)上記第1実施例において、文字判定部1003が、内エッジデータと、外エッジデータと、を用いて、文字画素を特定する方法は、一例であり、これに限られない。例えば、文字判定部1003は、内エッジデータと、外エッジデータと、の論理和を算出することによって、複数個のエッジ画素を示す合成エッジデータを生成する。文字判定部1003は、合成エッジデータに対して、エッジを膨張させる膨張処理と、エッジを収縮させる収縮処理と、を所定回数繰り返す、いわゆるモフォロジー処理する。モフォロジー処理後の合成エッジデータによって特定される画素が、文字画素として特定される。モフォロジー処理によって、これによって、文字や細線などの連続性のあるエッジが、途切れて特定されることを防止することができる。また、どのエッジによって囲まれた文字の内部の画素も特定できる。さらに、外エッジデータと内エッジデータとの論理和を取る場合には、文字や細線が本来より太く特定される。このために、文字判定部1003は、例えば、合成エッジデータに対して、最後に収縮処理を行うことで、文字や細線が本来より太く特定されることを低減しても良い。
あるいは、文字判定部1003は、合成エッジデータによって特定される複数個のエッジ画素のうち、所定個数以上、上下左右に連続している画素群を特定し、該画素群を文字画素として特定し、所定個数以上連続していない画素、すなわち、孤立している画素は、文字画素として特定しなくても良い。第2実施例、第3実施例の文字判定部1003B、1003Cについても同様である。
(6)上記第1実施例において、網点判定部1004が、内エッジデータと、外エッジデータと、を用いて、網点画素を特定する方法は、一例であり、これに限られない。網点判定部1004は、内エッジデータと、外エッジデータと、の論理和を算出することによって、複数個のエッジ画素を示す合成エッジデータを生成する。そして、網点判定部1004は、合成エッジデータによって特定される複数個のエッジ画素のうち、所定個数以上、上下左右に連続していない画素、すなわち、孤立している画素を特定する。そして、網点判定部1004は、孤立している画素を、単位面積当たりに所定の割合以上含む領域を特定し、該領域内の複数個の画素を網点画素として特定しても良い。第2実施例、第3実施例の網点判定部1004B、1004Cについても同様である。
(7)上記各実施例では、処理済画像データは、印刷実行部140によって、処理済画像を印刷するために用いられている(図23)。これに限らず、処理済画像データは、処理済画像を液晶ディスプレイなどの表示部に表示するために用いられても良い。
(8)上記各実施例では、入力信号1001(図1)は、RGB値である。これに代えて、他の表色系の色値が用いられても良い。例えば、スキャンデータの各画素の値は、CMY表色系の色値に変換された後に、入力信号1001として、領域分離処理部103に入力されても良い。
(9)上記各実施例の領域分離処理部103に含まれる各部、例えば、文字判定部1003、網点判定部1004、網点内文字判定部1005が実行する具体的な処理は、一例であり、適宜に変更される。例えば、図3のエリア積算部1105、1106が用いる縦3画素×横3画素の周辺範囲は、他のサイズの範囲、例えば、縦3画素×横5画素あるいは縦5画素×横5画素の範囲であっても良い。また、図12の積算処理部1209は、3種類の積算範囲を用いているが、これらの積算範囲のサイズや種類数は、適宜に変更され得る。また、閾値判定部1211が、積算結果を判定するための閾値は、用いる積算範囲のサイズ等によって適宜に調整される。図12の総合判定部1213が、これらの閾値判定部1211によって積算範囲ごとに出力される複数個の判定結果を用いて、網点判定信号を生成する際には、例えば、論理和、論理積の論理演算を、どのように組み合わせるかは、適宜に変更され得る。
(10)出力処理部110が、印刷データを生成する処理(図23)は、一例であり適宜に変更され得る。例えば、出力処理部110は、ハーフトーン処理として、誤差拡散法、ディザ法を採用する例を示したがこれに限られない。例えば、誤差拡散法のみを用いる場合、文字(網点内文字を含む)と写真(網点を含む)とでは、前者の誤差拡散マトリクスサイズを小さくし、後者の誤差拡散マトリクスサイズを大きくすることが好ましい。また、ディザ処理のみを用いる場合には、文字と写真とで異なるディザマトリクスパターンを採用しても良い。また、ハーフトーン処理の方法として、これ以外の方法を採用しても構わない。
(11)上記実施例では、対象画像データは、スキャンデータであるが、これに限られない。対象画像データは、印刷物などの原稿を、2次元イメージセンサを備えるデジタルカメラによって光学的に撮影して生成される撮像画像データであっても良い。また、対象画像データは、文書やイラストなどを作成するためのワードプロセッサなどのアプリケーションプログラムを用いて生成された画像データであってもよい。
(12)図2の複合機100が実行する処理、例えば、領域分離処理部103や第2入力処理部104や出力処理部110が実行する処理の全部または一部は、複合機100に限らず、種々の装置によって実行されても良い。例えば、スキャナやデジタルカメラが、自身で生成された対象画像データを用いて、領域分離処理部103や第2入力処理部104が実行する処理を実行しても良い。また、例えば、スキャナやプリンタと通信可能な接続される端末装置(図示省略)やサーバ(図示省略)が、スキャナから取得したスキャンデータを用いて、領域分離処理部103や第2入力処理部104および出力処理部110が実行する処理を実行しても良い。そして、その結果生成される印刷データがプリンタに供給されても良い。また、ネットワークを介して互いに通信可能な複数個のコンピュータ(例えば、クラウドサーバ)が、領域分離処理部103や第2入力処理部104および出力処理部110が実行する処理を一部ずつ分担して、全体として、画像処理を実行してもよい。この場合、複数個のコンピュータの全体が、画像処理装置の例である。
なお、上記各実施例では、領域分離処理部103や第2入力処理部104および出力処理部110が実行する処理の全部または一部は、これらのハードウエア回路によって実行されるが、CPUであるメインプロセッサ101によって実行されても良い。この場合には、領域分離処理部103や第2入力処理部104や出力処理部110が実行する処理のうち、メインプロセッサ101が実行する処理のためのプログラムは、コンピュータプログラムPGに含まれる。例えば、第1実施例では、メインプロセッサ101は、領域分離処理部103によって実行される最小成分画像データを生成する処理と、最小成分画像データを用いて内エッジデータを生成する処理と、最小成分画像データを用いて外エッジデータを生成する処理と、内エッジデータと外エッジデータとを用いて、スキャン画像内の複数個の文字画素を特定する処理と、を、コンピュータプログラムPGを実行することによって、実現しても良い。
このように、上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。