画像処理装置及び画像処理方法
【課題】画質を劣化させることなく、細線化とスムージングを同時に実現する。
【解決手段】画像処理装置10では、テンプレートマッチング部3において対象画像とテンプレートとのマッチングを行い、注目画素とそのパートナー画素を決定する。その後、スムージング係数算出部6ではスムージング処理を施すことにより注目画素及び前記パートナー画素において変化する画素値の変化量dSMTを求め、細線化係数算出部8において細線化処理を施すことにより注目画素及び前記パートナー画素において変化する画素値の変化量dSTを求める。画素値算出部9では、前記変化量dSMT、dSTに基づいて、前記対象画像に対しスムージング処理又は細線化処理を施した後の前記注目画素及び前記パートナー画素の画素値Cm、Pmを算出し、この画素値Cm、Pmの合算値に基づいて、前記スムージング処理又は細線化処理の後の注目画素値Coutを決定する。
【解決手段】画像処理装置10では、テンプレートマッチング部3において対象画像とテンプレートとのマッチングを行い、注目画素とそのパートナー画素を決定する。その後、スムージング係数算出部6ではスムージング処理を施すことにより注目画素及び前記パートナー画素において変化する画素値の変化量dSMTを求め、細線化係数算出部8において細線化処理を施すことにより注目画素及び前記パートナー画素において変化する画素値の変化量dSTを求める。画素値算出部9では、前記変化量dSMT、dSTに基づいて、前記対象画像に対しスムージング処理又は細線化処理を施した後の前記注目画素及び前記パートナー画素の画素値Cm、Pmを算出し、この画素値Cm、Pmの合算値に基づいて、前記スムージング処理又は細線化処理の後の注目画素値Coutを決定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、処理すべき対象画像にスムージング処理又は細線化処理を施す画像処理装置及び画像処理方法に関する。
【背景技術】
【0002】
電子写真方式のプリンタ等においては、インキを用いたプリンタ等に比べてドットゲインが大きいため、同じフォント文字を印刷しても文字が太くなる場合がある。そのため予め画像処理によって文字幅を細くする技術が利用されている。これは細線化処理といい、いわゆるベタ文字(文字の内部が高濃度の色により塗りつぶされている文字や線画。以下、ソリッド文字という)の画像のエッジを捉え、このエッジ部分の濃度レベルを中間調レベルに変換することでソリッド文字の輪郭における画素値を一様に下げ、見た目に細くなるように処理するものである。
【0003】
前述のように、細線化処理は濃度レベル(画素値)がほぼ最大値付近となるソリッド文字を対象にしている。
ソリッド文字については細線化処理とは別にスムージングという処理が施される場合がある。スムージング処理は、テンプレートマッチングによって輪郭における白(最小濃度レベル)又は黒(最大濃度レベル)の画素を中間調レベルの画素に置き換えるものである。これにより、文字のジャギー(輪郭部分が滑らかでなくギザギザに見える現象)を抑えることができる。
【0004】
スムージング処理は一般的に2値画像を多値画像に変換する処理であり、従来は中間調レベルを含む文字についてはそのような処理は行われていなかった。中間調レベルを含む文字としては、例えばアンチエイリアシングされた文字やグレーフォントによって出力された文字画像等が挙げられる。
【0005】
一方、細線化処理を行いながら同時にスムージング処理を行う方法が開示されている(例えば、特許文献1、2参照)。これは、テンプレートマッチングを用いて斜線部分にはスムージング処理を施し、縦線、横線等の水平部分については細線化処理を施して線幅調整を行うというものである。具体的には、細線化処理用のテンプレートとスムージングのテンプレートを用意しておき、テンプレートマッチングによってマッチしたテンプレートが細線化処理用のものであれば細線化処理を行い、スムージング処理用のものであればスムージング処理を行う。つまり、画像の構造に応じて処理の切り替えを行うものである。
このとき、斜線部分についてはスムージング用のテンプレートがマッチするようテンプレートが設計されるので、斜線部分ではスムージング処理のみで細線化処理は行われないこととなる。
【0006】
また、上記特許文献1には、スムージング処理の際に変換した画素値を、細線化処理を考慮して小さな値に設定することにより、スムージング処理と細線化処理とを同時に行う方法も開示されている。しかし、実際に実施してみると、細線化の程度を強くするほど、スムージングの効果が低下するといった不具合が生じる場合がある。そうでない場合であっても、テンプレートがマッチングしなかった輪郭部分だけ細線化が行われないこととなり、当該輪郭部分だけ線幅が大きいという画質劣化を生じる可能性がある。
【特許文献1】特開平7−334672号公報
【特許文献2】特開2004−236033号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
図11を参照し、具体的に説明する。
図11(a)はソリッド文字の元画像を示す図であり、ソリッド文字のエッジ部分を示している。エッジ部分は水平に近い斜線構造となっている。この場合、図11(b)に示す目標画像となるようにスムージング処理又は細線化処理を施すことが最善策である。すなわち、段差部分にはスムージング処理を施して滑らかとすると同時に線幅は全体的に細くすることが好ましい。
【0008】
しかし、図11(a)に示す元画像についてスムージング処理のみを施した場合、段差付近のみ中間調レベルに変換され、図11(c)に示す結果となる。また、細線化処理のみを施した場合、図11(d)に示すようにエッジ部分が一様に中間調レベルに変換されることとなる。よって、これらの処理が同時に施された場合には目標画像のように段差が滑らかとなり、全体的にエッジ部分の画素値が小さくなることが期待されるが、上記の方法のように単に画像構造に応じてスムージング処理と細線化処理を切り替えただけでは、図11(e)に示すように段差部分が残ったり、段差の方向が逆転したり(矢印で示す部分)して画質劣化が生じる場合がある。また、改良方法として挙げられた、スムージング処理時に変換する画素値を小さく設定する方法では、図11(f)に示すように図11(e)の結果と比べてある程度の改善が見られるものの、段差を小さくできない部分(矢印で示す部分)が現れ、図11(b)の目標画像とは画質的にやはり劣るものとなる。
【0009】
本発明の課題は、画質を劣化させることなく、細線化とスムージングを同時に実現することである。
【課題を解決するための手段】
【0010】
請求項1に記載の発明は、画像処理装置において、
処理すべき対象画像において注目画素とそのパートナー画素を決定する決定手段と、
スムージング処理を施すことにより前記注目画素及び前記パートナー画素において変化する画素値の変化量を求めるスムージング算出手段と、
細線化処理を施すことにより前記注目画素及び前記パートナー画素において変化する画素値の変化量を求める細線化算出手段と、
前記スムージング処理による画素値の変化量と前記細線化処理による画素値の変化量に基づいて、前記対象画像に対しスムージング処理又は細線化処理を施した後の前記注目画素及び前記パートナー画素の画素値を算出し、この算出された注目画素及びパートナー画素の画素値を合算した合算値に基づいて、前記スムージング処理又は細線化処理の後の注目画素値を決定する画素値算出手段と、
を備えることを特徴とする。
【0011】
請求項2に記載の発明は、請求項1に記載の画像処理装置において、
前記パートナー画素は前記注目画素に隣接する画素であり、
前記決定手段は、注目画素とパートナー画素の位置関係が予め定められたテンプレートを用いて前記対象画像における注目画素とそのパートナー画素を決定する。
【0012】
請求項3に記載の発明は、請求項2に記載の画像処理装置において、
前記テンプレートは、細線化処理を施すべき構造又はスムージング処理を施すべき構造を検出するものであって、その構造に応じて前記注目画素及び前記パートナー画素の位置関係が予め定められているものであり、
前記決定手段は、前記テンプレートと前記対象画像とを照合することにより、前記注目画素及びパートナー画素を決定する。
【0013】
請求項4に記載の発明は、請求項3に記載の画像処理装置において、
前記テンプレートは、スムージング処理を施すべき構造に応じて、スムージング処理による注目画素及びパートナー画素の画素値の変化量が予め定められているものであり、
前記スムージング算出手段は、前記テンプレートと前記対象画像とを照合し、一致すると当該テンプレートに定められている前記画素値の変化量を、前記スムージング処理による注目画素又はパートナー画素の画素値の変化量として求めることを特徴とする。
【0014】
請求項5に記載の発明は、請求項1〜4の何れか一項に記載の画像処理装置において、
前記対象画像の全画素についてその属性を示す属性データを生成する属性判別手段を備え、
前記画素値算出手段は、前記生成された属性データに基づいて、前記注目画素が文字又は線画を構成する画素であるか否かを判別し、当該文字又は線画を構成する場合のみ前記スムージング処理又は前記細線化処理後の画素値を算出することを特徴とする。
【0015】
請求項6に記載の発明は、請求項1〜5の何れか一項に記載の画像処理装置において、
前記対象画像における細線構造を検出する細線構造検出手段を備え、
前記画素値算出手段は、前記注目画素が前記検出された細線構造を構成する画素である場合には前記細線化処理の程度を基準値より小さくする、或いは前記細線化処理の対象から除外することを特徴とする。
【0016】
請求項7に記載の発明は、画像処理方法において、
処理すべき対象画像において注目画素とそのパートナー画素を決定する決定工程と、
スムージング処理を施すことにより前記注目画素及び前記パートナー画素において変化する画素値の変化量を求めるスムージング算出工程と、
細線化処理を施すことにより前記注目画素及び前記パートナー画素において変化する画素値の変化量を求める細線化算出工程と、
前記スムージング処理による画素値の変化量と前記細線化処理による画素値の変化量に基づいて、前記対象画像に対しスムージング処理又は細線化処理を施した後の前記注目画素及び前記パートナー画素の画素値を算出し、この算出された注目画素及びパートナー画素の画素値を合算した合算値に基づいて、前記スムージング処理又は細線化処理の後の注目画素値を決定する画素値算出工程と、
を含むことを特徴とする。
【0017】
請求項8に記載の発明は、請求項7に記載の画像処理方法において、
前記パートナー画素は前記注目画素に隣接する画素であり、
前記決定工程では、注目画素とパートナー画素の位置関係が予め定められたテンプレートを用いて前記対象画像における注目画素とそのパートナー画素を決定する。
【0018】
請求項9に記載の発明は、請求項8に記載の画像処理方法において、
前記テンプレートは、細線化処理を施すべき構造又はスムージング処理を施すべき構造を検出するものであって、その構造に応じて前記注目画素及び前記パートナー画素の位置関係が予め定められているものであり、
前記決定工程では、前記テンプレートと前記対象画像とを照合することにより、前記注目画素及びパートナー画素を決定する。
【0019】
請求項10に記載の発明は、請求項9に記載の画像処理方法において、
前記テンプレートは、スムージング処理を施すべき構造に応じて、スムージング処理による注目画素及びパートナー画素の画素値の変化量が予め定められているものであり、
前記スムージング算出手段は、前記テンプレートと前記対象画像とを照合し、一致すると当該テンプレートに定められている前記画素値の変化量を、前記スムージング処理による注目画素又はパートナー画素の画素値の変化量として求めることを特徴とする。
【0020】
請求項11に記載の発明は、請求項7〜10の何れか一項に記載の画像処理方法において、
前記対象画像の全画素についてその属性を示す属性データを生成する属性判別工程を含み、
前記画素値算出工程では、前記生成された属性データに基づいて、前記注目画素が文字又は線画を構成する画素であるか否かを判別し、当該文字又は線画を構成する場合のみ前記スムージング処理又は前記細線化処理後の画素値を算出することを特徴とする。
【0021】
請求項12に記載の発明は、請求項7〜11の何れか一項に記載の画像処理方法において、
前記対象画像における細線構造を検出する細線構造検出工程を含み、
前記画素値算出工程では、前記注目画素が前記検出された細線構造を構成する画素である場合には前記細線化処理の程度を基準値より小さくする、或いは前記細線化処理の対象から除外することを特徴とする。
【発明の効果】
【0022】
請求項1〜4、7〜10に記載の発明によれば、注目画素及びパートナー画素のスムージング処理又は細線化処理後の画素値の合算値から注目画素の画素値を決定することができる。すなわち、スムージング処理と細線化処理の双方の処理結果に基づいて注目画素の画素値を決定しているので、スムージング処理と細線化処理とを連携させた処理結果を得ることができる。また、注目画素とパートナー画素の2画素分の画素値を操作することができるので、処理の結果、何れか一方の画素で画素値が過剰に増減した場合でも他方の画素の画素値で補うことができる。従って、画質劣化させることなく、スムージングと細線化をバランス良く実現することが可能となる。
【0023】
請求項5、11に記載の発明によれば、スムージング処理又は細線化処理の対象とすべき文字又は線画を構成する画素のみをそれら処理の対象とすることができ、写真画等のスムージング処理や細線化処理に不向きな画像については処理対象から除外することができる。これにより、画質劣化を回避することができる。
【0024】
請求項6、12に記載の発明によれば、細線構造については細線化処理の程度を小さくするか、或いは処理対象外とすることができる。これにより、細線部分が過剰に細線化されてかすれる等の画質劣化を防止することができる。
【発明を実施するための最良の形態】
【0025】
まず、構成を説明する。
図1に、本実施形態における画像処理装置10の機能的構成を示す。
ここでは、プリンタ内に画像処理装置10が組み込まれ、画像処理装置10においてプリンタに入力されたPDL(Page Description Language)形式のデータから画像データを生成し、画像処理を施す例を説明する。
【0026】
図1に示すように、画像処理装置10はコントローラ1、ソリッドデコード部2、テンプレートマッチング部3、ソリッドチェック部4、TAGチェック部5、スムージング係数算出部6、細線化構造チェック部7、細線化係数算出部8、画素値算出部9を備えて構成されている。なお、各部1〜9での処理に用いるパラメータやデータは図示しないメモリに記憶されており、必要に応じて当該メモリから各部1〜9がデータを読み出して処理に用いるものとする。
【0027】
コントローラ1は、PDLデータが入力されると、これに含まれるPDLコマンドを解析し、描画すべき画像単位(これをオブジェクトという)毎に分類してディスプレイリストを作成する。ディスプレイリストは描画すべきオブジェクトの位置座標、領域データ若しくは色データのアドレス情報等が記述された中間データである。
【0028】
コントローラ1は、作成したディスプレイリストに基づき、プリンタで使用可能な色材C(シアン)、M(マジェンタ)、Y(イエロー)、K(黒)毎の画像データを生成する。画像データはディスプレイリストに基づいて描画するオブジェクトについて画素を割り当て、この割り当てた画素毎に画素値を設定したものである。本実施形態では8ビット、つまり0〜255の画素値を設定可能な画像データを生成するものとする。また、コントローラ1は生成した画像データについて、ディスプレイリストに基づき個々の画素についてその画像属性を判別し、その判別結果として属性データTAGを生成する。属性データTAGは画素単位で生成し、画素が文字であることを示すTEXT(TAG=0)、線画であることを示すGRAPHICS(TAG=1)、写真画であることを示すIMAGE(TAG=2)に分類される。
コントローラ1は、生成した色毎の画像データを属性データTAGとともにソリッドデコード部2に出力する。
【0029】
ソリッドデコード部2は、コントローラ1から入力された画像データに基づいて画素毎にソリッドデータSを生成する。ソリッドデータSは各画素がソリッド文字を構成する画素であるか否かを大まかに判断した結果である。ソリッドデコード部2は、2つの閾値SOA、SOBを用いてソリッドデータSを生成する。すなわち、画素値が0〜SOAの範囲内であればソリッド文字の可能性が低いとしてS=1とし、画素値がSOB〜255の範囲内であればソリッド文字の可能性が高いとしてS=2に設定する。画素値が(SOA+1)〜(SOB-1)の範囲内の場合はそのどちらでもないとしてS=0に設定する。
ソリッドデコード部2は生成したソリッドデータSをテンプレートマッチング部3、ソリッドチェック部4に出力する。
【0030】
テンプレートマッチング部3は、128個のテンプレートと入力画像のある画像領域におけるソリッドデータSとをマッチング(照合)させ、スムージング処理を施すべき構造又は細線化処理を施すべき構造を検出する。スムージング処理を施すべき構造とは、文字や線画のオブジェクトのエッジ部分であって段差部分を含む構造をいう。また、細線化処理を施すべき構造とはソリッド文字のエッジ部分をいう。マッチングは、入力画像について注目画素を設定し、この注目画素の位置とテンプレートにおいて予め定められている注目画素の位置とが合致するようにマッチングさせる。入力画像の全画素について注目画素を順次設定することにより、入力画像の全領域についてテンプレートマッチングを行う。
【0031】
図2に、テンプレートの一部を示す。
テンプレートは、図2に示すように5×9=45画素についてテンプレートデータT(図2の各画素に示されている数字)が設定されたものである。テンプレートデータTは0〜6の値を取り得る。また、テンプレートの中心画素(図2中、色を付した画素)は注目画素の位置として予め定められている。太線で囲む画素はそのテンプレートにおいて当該注目画素のパートナー画素となるべき画素を示している。パートナー画素とは注目画素に隣接する画素であり、注目画素と一体的にスムージング処理又は細線化処理が施される画素である。パートナー画素の位置は、テンプレートで検出するスムージング処理を施すべき構造、細線化処理を施すべき構造に応じて予めテンプレートにおいてその位置が定められている。
【0032】
テンプレートには上記パートナー画素の位置の他、スムージング処理による画素値の変化量、変動する方向性(増減の符号)が予め定められているとともに、注目画素又はパートナー画素のうちスムージング処理又は細線化処理を施す画素、シフト画素(後述する)の指定がされている。これらはテンプレートで検出対象とするスムージング処理を施すべき構造、細線化処理を施すべき構造に加え、テンプレートで定められた注目画素とパートナー画素の位置関係に応じて決定されているものである。
上記の設定はヘッダ情報として各テンプレートに付加されている。ヘッダ情報は0〜5のアドレスに対応付けて上記の設定事項を示す6個の数字を格納するものである。なお、図2中、ヘッダ情報の左側に表示されている「HS1C」等の記号は、各テンプレートを個々に識別するためのIDである。
【0033】
各アドレスにおける数字が示す意味は図3に示す通りである。すなわち、0のアドレスにはスムージング処理による画素値の変化量powerを示す数字が格納される。0の数字はpower=0、2の数字はpower=20、4の数字はpower=40であることを示す。なお、powerは最大画素値に対して変動する比率を示すものである。最大画素値は255であるので、例えばpower=20(%)のときその変化量(変動する画素値)は255×0.2で表される。また、1のアドレスには変化量power分だけ画素値を増やすのか減らすのかその方向性を示す数字が格納される。0の数字はプラス、つまり増加させることを示し、1の数字はマイナス、つまり減少させることを示している。2のアドレスには注目画素の位置を元にパートナー画素の位置を示す数字が格納される。数字0、1、2、3の順に左、上、右、下の方向を示している。図2ではこの数字により示される位置をパートナー画素の位置として太枠で示している。
【0034】
3のアドレス、4のアドレスはそれぞれスムージング処理、細線化処理を施す画素は注目画素であるかパートナー画素であるかを示す数字が格納される。数字0は注目画素を示し、数字1はパートナー画素を示している。また、5のアドレスはシフト画素の位置を示す数字を格納するものである。シフト画素とは注目画素又はパートナー画素においてスムージング処理又は細線化処理により0〜255の範囲を超えた分の画素値を、そのパートナー画素又は注目画素にシフトさせる、つまり超過分の画素値を補わせる場合のその被シフト側の画素をいう。数字0はシフト画素が注目画素であることを示し、数字1はシフト画素がパートナー画素であることを示す。
【0035】
テンプレートがマッチ(一致)したかどうかの判定は、図4に示すような判定基準に従って行う。図4に示す判定基準では、テンプレートデータT値0〜6を2つずつ組み合わせて4つのグループA〜Eに分類し、グループ毎に判定条件を定めている。グループAはテンプレートデータT値0、1についての判定条件を定めている。判定条件はテンプレートデータT値0、1の位置にある画素のソリッドデータSが1、0、2の何れであってもマッチしたと判別するものである。グループBはテンプレートデータT値2、3に関する判定条件であり、テンプレートデータT値が2の位置にある画素が全て1のソリッドデータS値を有し、テンプレートデータT値が3の位置にある画素が全て2のソリッドデータS値を有している場合のみ、マッチしたと判定する。
【0036】
グループCはテンプレートデータT値4、5のグループであり、テンプレートデータT値が4の位置にある画素のソリッドデータS値が全て1であり、かつテンプレートデータTと5の位置にある画素のソリッドデータ値が全て2である場合のみマッチしたと判定する。
以上の判定条件と図2のテンプレート例から分かるように、テンプレートはスムージング処理又は細線化処理を施すべき構造(画素値がSOB以上のソリッド文字のエッジ部分であって、そのエッジが段差を構成するところ)を有する画像領域とマッチするように、テンプレートデータTが設定されている。例えば、図2のID「HS1C」のテンプレートではT=3となる画素はソリッドデータS=2、T=2となる画素はソリッドデータS=1となるときマッチする。すなわち、ソリッド文字のエッジ部分であって段差を構成しているT=3の画素群と、低濃度の背景を構成するT=2の画素群を検出することができるのである。
【0037】
グループD、Eは後述するソリッドチェック部4で用いられる判定条件である。
グループDはテンプレートデータT値2、3について当該テンプレートデータT値に該当する画素全てが1又は2である場合のみマッチしたと判定する。グループEはテンプレートデータT値6のグループであり、当該テンプレートデータT値の画素が1又は2のソリッドデータS値である場合のみマッチしたと判定する。
【0038】
なお、テンプレートは図2に示したような、検出すべきいくつかの基本構造を想定した基本テンプレートを32個準備しておき、これを上下対称、左右対称、斜め対称とした派生テンプレートを作成することにより、合計128個のテンプレートとするものである。
【0039】
以下、図4に示す判定条件によるテンプレートマッチングの手順について説明する。
まず、テンプレートマッチング部3では、処理対象の入力画像から注目画素の位置を元にテンプレートに対応する画像領域(45画素分の画像領域)を抽出し、当該テンプレートのテンプレートデータTと、抽出した画像領域のソリッドデータSとを照合し、上記判定条件に従ってグループ毎にマッチしたかどうかを判定する。例えば、グループAについてはテンプレートデータT値0、1に該当する画素のソリッドデータS値を参照し、判定条件を満たすかどうかを判断する。これを各グループA〜Dについて行う。
【0040】
各グループA〜Dにおける判定結果が全てマッチしたという結果である場合、照合したテンプレートと抽出した画像領域はマッチしたと最終判定する。
上記の判定を128個全てのテンプレートについて行う。そして、何れか1つでもマッチしたと判定されたテンプレートがある場合にはマッチング結果を示すマッチングデータTMをTM=1に設定する。マッチングデータTMはスムージング係数算出部6に出力される。また、マッチしたテンプレートが複数ある場合には所定の優先順位に基づいて何れか1つのテンプレートを代表テンプレートとして特定しておく。ここではテンプレートの照合順を優先順位とする。後段の処理でパートナー画素はこの代表テンプレートでパートナー画素として定められた位置にある画素となる。
一方、何れのテンプレートともマッチしなかった場合にはTM=0に設定し、これをスムージング係数算出部6に出力する。
【0041】
次に、ソリッドチェック部4の処理について説明する。
ソリッドチェック部4は、テンプレートマッチング部3での処理に平行して、テンプレートマッチングを行った画像領域がソリッド文字を構成するか否かを確認的にチェックするものである。上記テンプレートは予めいくつかの検出すべき構造を想定して設計したものであるため、テンプレートにマッチしない場合でもソリッド文字を構成する場合が考えられる。ここではそのような画像領域を検出する。
具体的には、上記のテンプレートマッチングにおいて図4に示すグループDの判定条件に従い、テンプレートデータT値2、3に該当する画素のソリッドデータS値が1又は2であるかどうかを判定する。1又は2である場合にはソリッド文字を構成すると判定し、それ以外の場合にはソリッド文字を構成していないと判定する。
【0042】
或いは、図5に示すようなテンプレートを用いて、図4に示すグループEの判定条件に従い、チェックを行う。図5に示すsolid1、solid2のテンプレートは中間レベルの画素がテンプレートマッチングを行った画像領域に含まれていないことをチェックするためのものである。ソリッドチェック部4はテンプレートマッチング部3においてテンプレートマッチングを行った領域に対し、solid1、solid2のテンプレートを照合し、テンプレートデータT値6に該当する画素のソリッドデータS値が1又は2の場合にsolid1、solid2のテンプレートにマッチングしたと判定する。すなわち、テンプレートマッチングを行った画像領域はソリッド文字を構成すると判定する。
【0043】
なお、solid1、solid2のテンプレートはマッチするか否かを判定する領域範囲が異なる(solid1<solid2)ように設計されている。これによりソリッド文字か否かの判定は段階的に行うことが可能である。これはSOLIDTREATと呼ばれるパラメータ値を設定することにより、ソリッド文字か否かを判定する段階を選択するものである。SOLIDTREATの設定値と判定の段階の対応関係を図6に示す。図6に示すように、SOLIDTREAT=0のとき、無条件でテンプレートマッチングした画像領域がソリッド文字を構成するものであると判定する。一方、SOLIDTERAT=1のときはsolid1のテンプレートがマッチングしたときのみソリッド文字を構成するものと判定し、SOLIDTERAT=2のときはsolid2のテンプレートがマッチングしたときのみソリッド文字を構成するものと判定する。
ソリッドチェック部4は、ソリッド文字を構成すると判定した場合、そのチェック結果を示すチェックデータASをAS=1と設定し、ソリッド文字を構成しないと判定した場合にはAS=0と設定して当該チェックデータASをスムージング係数算出部6に出力する。
【0044】
TAGチェック部5は、注目画素及びパートナー画素についての画像の属性を検出する。すなわち、注目画素、パートナー画素の属性データTAGを参照し、TAG=0又は1のとき(つまり文字又は線画を構成する画素であるとき)、チェック結果を示すチェックデータTCKをTCK=1とする。また、TAG=2のとき(つまり写真画を構成する画素であるとき)、TCK=0とし、このチェックデータTCKをスムージング係数算出部6に出力する。なお、ここでのパートナー画素は代表テンプレートにおいてパートナー画素と定められている位置の画素である。
【0045】
スムージング係数算出部6は、マッチングデータTM、チェックデータAS、TCKに基づいて、注目画素についてスムージング処理を施すか否かを決定するとともに、スムージング処理を施す場合には当該スムージング処理によって注目画素の画素値を変動させる変化量を決定する。変化量はスムージング係数dSMTで表される。スムージング係数dSMTには注目画素の係数dSMTcとパートナー画素の係数dSMTpとがある。係数dSMTc、dSMTpは何れか一方を0以外の値とするならば他方は0となるものである。
【0046】
スムージング係数算出部6は、図7に示す決定条件に従ってスムージング処理の有無、スムージング係数dSMTc、dSMTpを決定する。図7に示す決定条件は、TM、AS、TCKが全て1のとき、注目画素にスムージング処理を施すことを決定し、その決定を示す結果データMSをMS=1に設定する。またこのときのスムージング係数dSMTc、dSMTpはテンプレートに従って決定する。スムージング係数dSMTc、dSMTpの決定は、テンプレートマッチングを行った際に代表テンプレートとして特定したテンプレートのヘッダ情報を参照し、パラメータpower、Sign、dSMTposの情報を取得してこれら情報を元に決定する。まず、アドレス0のpowerを参照し、変化量を決定する。power=0であれば0%、power=2であれば20%、power=4であれば40%の変化量である。次にアドレス1のSignを参照して増減の方向を決定する。Sign=0であれば増加方向を示す符号「+」、Sign=1であれば減少方向を示す符号「−」である。最後にアドレス3のdSMTposを参照し、注目画素とパートナー画素の何れについてのスムージング係数とするかを決定する。dSMTpos=0であれば注目画素、dSMTpos=1であればパートナー画素である。
【0047】
例えば、power=2、Sign=0、dSMTpos=0の場合、注目画素のスムージング係数dSMTc=+20と決定し、パートナー画素のスムージング係数dSMTp=0と決定する。つまり、パートナー画素についてはスムージング処理は実行されないこととなる。
一方、TM、AS、TCKのうち何れか1つでも0であれば、注目画素又はパートナー画素にスムージング処理は実行しないと決定して結果データMS=0とし、スムージング係数dSMTc、dSMTpをともに0に設定する。
結果データMS及びスムージング係数dSMT(dSMTc、dSMTp)は細線化構造チェック部7に出力される。
【0048】
細線化構造チェック部7は、細線化処理の対象外とすべき画素を検出する。具体的には、注目画素又はパートナー画素を中心に「白」「黒」「白」と画素が並ぶ細線構造の有無を判定し、細線構造を有する場合には細線化処理の程度を小さくするか、或いは細線化処理の対象から除外する。
細線化構造チェック部7は、注目画素が「黒」の画素(画素値>SOBとなる画素。以下、黒画素という。)である場合、注目画素の上下左右に位置する画素が「白」の画素(画素値<SOAとなる画素。以下、白画素という。)のとき、細線構造であると判定し、その判定結果を示す結果データTLをTL=1に設定する。また、注目画素が白画素でかつテンプレートがマッチングしている場合(TM=1のとき)、パートナー画素が黒画素でかつその隣接画素(注目画素とパートナー画素を挟んで対抗する位置にある画素)が白画素である場合にもTL=1に設定する。上記以外の場合は細線構造ではないと判定し、TL=0に設定する。
【0049】
細線化構造チェック部7は、さらに細線化処理時の強度STVLを設定する。STVLは下記のように通常の場合(TL=0)、基準値(例えば100)に設定されるが、細線構造である場合(TL=1)はこれよりも小さな値が設定される。
TL=0の場合:STVL=100
TL=1の場合:STVL=20
すなわち、細線構造である場合には通常より値を小さく設定することによって細線化の程度を小さくするように調整する。これは細線構造部分における細線化処理の程度を通常通りとすると、細線構造がかすれて画質劣化を引き起こす可能性があるからである。なお、TL=1の場合、細線化処理を実行しないように0に設定することとしてもよい。
設定された結果データTL及びSTVLは、細線化係数算出部8に出力される。
【0050】
細線化係数算出部8は、注目画素又はパートナー画素において細線化処理を施すか否かを判定し、さらに施すと判定した場合には細線化係数dSTを算出する。細線化係数dSTは細線化処理による注目画素又はパートナー画素の画素値の変化量を示すものであり、細線化係数dSTには注目画素についての係数dSTcとパートナー画素についての係数dSTpとがある。
まず、細線化係数算出部8は、注目画素が黒エッジ(黒画素であって黒画素と白画素との境界部分(エッジ)にあたる画素をいう)であるか否かを判断し、黒エッジである場合には細線化処理を施すと判定して細線化係数dSTを設定する。
黒エッジであるか否かの判断は以下の手順で判断する。まず注目画素とその上下左右の画素との画素値の差分を求め、各差分のうち最大のものをMAXDLとする。そして、このMAXDLを黒エッジ判定用に予め準備された閾値EDGETHと比較し、MAXDL>EDGETHである場合、注目画素は黒エッジであると判断する。
【0051】
細線化係数dSTは、結果データTMに基づいて以下のように設定する。
まず、TM=0のとき、すなわちテンプレートがマッチしていない場合であって、注目画素が黒エッジであればdSTc=-STVL、dSTp=0に設定する。注目画素が黒エッジであるため細線化処理は必要であるが、テンプレートにマッチしていないため、パートナー画素は無関係に注目画素についてのみ細線化処理を施す。注目画素が黒エッジでない場合には、細線化処理は不要であるので、dSTc=0、dSTp=0に設定する。
一方、TM=1のとき、テンプレートがマッチングしていることから細線化処理を施すべき構造が含まれているはずである。よって、代表テンプレートのヘッダ情報を参照して細線化係数dSTを決定する。ヘッダ情報ではアドレス4のdSTposを参照し、dSTpos=0であれば注目画素に細線化処理を行うため、dSTc=-STVL、dSTp=0に設定する。また、dSTpos=1であればパートナー画素に細線化処理を行うため、dSTc=0、dSTp=-STVLに設定する。
設定された細線化係数dSTは、スムージング係数dSMTとともに画素値算出部9に出力される。
【0052】
画素値算出部9は、注目画素の元の画素値Cin、スムージング係数dSMT、細線化係数dSTに基づき、注目画素にスムージング処理又は細線化処理を施した後の画素値Coutを算出する。
まず、画素値算出部9はシフト画素が注目画素又はパートナー画素の何れであるかを判断する。これは代表テンプレートのヘッダ情報を参照し、アドレス5のshiftposがshiftpos=0であればシフト画素は注目画素であり、shiftpos=1であればシフト画素はパートナー画素であると判断する。また、シフト画素について黒画素であるか否かを判定し、その判定結果を示す結果データSPNFを設定する。シフト画素が黒画素である場合にはSPNF=0とし、黒画素でない場合にはSPNF=1とする。SPNF=1は1ドット幅の細線構造を持つ場合であり、シフト画素が黒画素ではないのでシフト画素側に画素値をシフトさせることができない。そのため、シフト画素についての細線化処理は中止し、強制的にdST=0に設定して細線化係数の修正を行う。
【0053】
シフト画素が判定されると、下記式1、2によりスムージング処理又は細線化処理後の注目画素の画素値Cm、パートナー画素の画素値Pmの算出を行う。
Cm=Cin+dSTc+dSMTc×255・・・(1)
Pm=Pin+dSTp+dSMTp×255・・・(2)
式1、2においては細線化処理による画素値の変化量dST、スムージング処理による画素値の変化量dSMT×255を算出し、これらと元の画素値との和を求めている。
【0054】
次に、画素値算出部9は算出したCm、Pmについて、オーバーフロー又はアンダーフローのチェックを行い、そのチェック結果に応じて注目画素又はパートナー画素の画素値Cm、Pmをシフト画素側にシフトさせる等して最終的な画素値Cout、Poutを算出する。なお、この処理は、TM=1、つまりテンプレートがマッチした場合のみ行う。TM=0であり、テンプレートがマッチしていない場合には、Cout=Cmとする。
【0055】
以下、画素値Cout、Poutの算出について図8を参照して説明する。
図8に示すように、画素値算出部9は最終的に画素値をシフトさせる画素が注目画素になるか、パートナー画素になるかを判別する。判別は代表テンプレートのヘッダ情報のshiftposとSPNFに基づいて行う。すなわち、shiftpos=0かつSPNF=0である場合(ステップS1;Y)、シフト画素は注目画素でありかつ黒画素である。また、shiftpos=1かつSPNF=1である場合(ステップS1;Y)、シフト画素はパートナー画素でありかつ白画素である。この2つの条件を満たす場合には最終的に画素値がシフトされるのは注目画素であると判別でき、この条件以外の場合にはパートナー画素に画素値がシフトされると判別できる。
【0056】
まず、最終的に画素値がシフトされる画素が注目画素であると判別された場合について説明する。
この場合、注目画素とパートナー画素の画素値Cm、Pmを足し合わせた合算値を評価する。Cm+Pm<0となる場合には(ステップS2;Y)、Cout=Pout=0とする(ステップS3)。0≦Cm+Pm≦255である場合(ステップS2;N、S4;Y)、Cout=Cm+Pm、Pm=0とする(ステップS5)。255<Cm+Pmである場合には(ステップS2;N、S4;N)、Cm=255、Pm=Cm+Pm-255とする(ステップS6)。
【0057】
次に、最終的に画素値がシフトされる画素がパートナー画素であると判別された場合について説明する。
この場合も上記と同様に注目画素とパートナー画素の画素値Cm、Pmを足し合わせた合算値を評価する。Cm+Pm<0となる場合には(ステップS7;Y)、Cout=Pout=0とする(ステップS8)。0≦Cm+Pm≦255である場合(ステップS7;N、S9;Y)、Cout=0、Pout= Cm+Pmとする(ステップS10)。255<Cm+Pmである場合には(ステップS7;N、S9;N)、Cout= Cm+Pm-255、Pout=255とする(ステップS11)。
このように画素値の算出が行われると、最終的に得られたCoutを細線化処理及びスムージング処理後の注目画素値として出力する。
【0058】
図9を参照して、上記画像処理装置10による処理結果について説明する。
図9(a)はソリッド文字を含む元画像を示す図である。図9(a)に示すようなソリッド文字を処理対象とした場合、テンプレートマッチングの結果、図9(b)に示すようにソリッド文字のエッジ付近においてC1〜C4で示す画素が注目画素となったとき、テンプレートがマッチし、P1〜P4で示す画素がそれぞれパートナー画素と決定された。また、Tで示す画素はこれらが注目画素となったとき、テンプレートがマッチしなかった画素である。
【0059】
Tで示す画素についてはテンプレートがマッチしないため、スムージング係数dSMT=0と算出される。また、細線構造は呈しておらず、黒エッジであるので、細線化係数dST=-STVLと算出される。よって、細線化処理のみ実行され、最終的に画素値Cout=Cin+dSTc×255が設定される。
一方、C1、C2で示す画素は黒エッジでありテンプレートがマッチするため、C1、C2についてスムージング処理と細線化処理がともに実行され、そのパートナー画素であるP1、P2については何れも無処理となる。これに対し、段差の境界に近いC3、C4の画素については白画素でありテンプレートがマッチするため、スムージング処理のみが実行され、そのパートナー画素であるP3、P4は黒エッジであるため細線化処理のみが施される。その後、注目画素C3、C4の画素値がパートナー画素P3、P4にシフトされることとなる。その結果、図9(c)に示すようにソリッド文字のエッジにおいて全体的に細線化が実現されるとともに、滑らかな階段状とされてスムージングが実現されることとなる。
【0060】
以上のように、本実施形態によれば、テンプレートを用いてスムージング処理又は細線化処理を施すべき画像構造を検出する。テンプレートがマッチした場合、注目画素の属性が文字又は線画であれば注目画素についてスムージング処理を施すと決定する。また、マッチしたテンプレートにおいて指定された画素(注目画素又はパートナー画素の何れか)に細線化処理を施すと決定する。一方、テンプレートがマッチしない場合、注目画素についてスムージング処理は実行しないと決定する。また、注目画素が黒エッジである場合には細線化処理を行い、白画素である場合には細線化処理は行わないと決定する。
【0061】
スムージング処理、細線化処理についての実行/非実行が決定されると、その係数dSMT、dSTを決定する。スムージング係数dSMTはテンプレートで予め定められた値を用い、細線化係数dSTについては細線構造の有無に応じて決定する。これら係数によってスムージング処理又は細線化処理後の注目画素及びパートナー画素における画素値の変化量を算出する。テンプレートがマッチしていない場合には、その変化量分だけ注目画素の画素値を変動させた値を注目画素値として出力する。一方、テンプレートがマッチしている場合にはその変化量分だけ注目画素、パートナー画素の画素値を変動させ、その変動させた画素値の合算値を求める。そして、合算値が0〜255の範囲外となる場合は注目画素又はパートナー画素の画素値を、注目画素又はパートナー画素のうち、テンプレートにおいてシフト画素と指定されている方へシフトさせ、そのシフト後の注目画素値を出力する。
【0062】
すなわち、スムージング処理と細線化処理のどちらも実行しなければならない画像部分については注目画素とパートナー画素の2画素について一体的に処理が行われることとなる。これにより、細線化とスムージングをバランス良く実現することができる。その結果、ソリッド文字のエッジにおいて全体的に細線化することが可能となるとともに、斜線部において滑らかな斜線を形成することができる。
【0063】
また、細線構造を構成する画素については細線化処理の程度を小さくするので、細線化処理により細線部分が失われるといった画質劣化を防止することができる。なお、細線構造を有する画素については細線化処理の対象から除外することとしてもよい。
【0064】
また、属性データTAGにより文字又は線画の画素にのみスムージング処理又は細線化処理を施すので、写真画をスムージング処理又は細線化処理の対象から除外することができ、画質劣化を回避することができる。
【0065】
図10を参照して、本発明の効果について説明する。
図10(a)に示すソリッド文字の画像の場合、そのまま出力するとジャギーが発生するとともにドットゲインが生じ、文字が太くなってしまう。これに対し、単に細線化処理を施しただけでは図10(b)に示すように、細線化は実現できるが、ジャギーは解消できない。逆に、スムージング処理を施したのみでは、図10(c)に示すように文字の肥大化は防げない。一方、従来技術のようにスムージング処理において出力値を小さくする方法を採用した場合、図10(d)に示すように多少細線化は実現できるが、少なからずジャギーが生じてしまう。
しかしながら、本実施形態によれば、図10(e)に示すようにスムージングと細線化がバランスよく実現されていることが分かる。
【図面の簡単な説明】
【0066】
【図1】本実施形態における画像処理装置の機能的構成を示す図である。
【図2】テンプレートの一例を示す図である。
【図3】テンプレートのヘッダ情報の内容を示す図である。
【図4】テンプレートマッチングの判定条件を示す図である。
【図5】solid1、solid2のテンプレートを示す図である。
【図6】ソリッド文字か否かの判定段階を示す図である。
【図7】スムージング処理を実行するか否かの判定条件を示す図である。
【図8】画素値の算出方法を説明するフローチャートである。
【図9】(a)処理対象のソリッド文字の一部を示す図である。(b)画像処理装置による細線化処理又はスムージング処理の処理過程を示す図である。(c)処理結果を示す図である。
【図10】(a)処理対象のソリッド文字の画像の一部を示す図である。(b)(a)の画像に対し、細線化処理のみ施した場合の処理画像を示す図である。(c)(a)の画像に対し、スムージング処理のみ施した場合の処理画像を示す図である。(d)(a)の画像にスムージング処理を施すにあたって、出力値を小さく設定した場合の処理画像を示す図である。(e)本発明に係る細線化処理又はスムージング処理を適用した場合の処理画像を示す図である。
【図11】(a)処理対象のソリッド文字の画像の一部を示す図である。(b)目標とする処理画像を示す図である。(c)(a)の画像にスムージング処理のみを施した場合の処理画像を示す図である。(d)(a)の画像に細線化処理のみ施した場合の処理画像を示す図である。(e)スムージング処理と細線化処理を部分的に切り替える方法による処理画像を示す図である。(f)スムージング処理において出力値を小さく設定する方法による処理画像を示す図である。
【符号の説明】
【0067】
10 画像処理装置
1 コントローラ
2 ソリッドデコード部
3 テンプレートマッチング部
4 ソリッドチェック部
5 TAGチェック部
6 スムージング係数算出部
7 細線化構造チェック部
8 細線化係数算出部
9 画素値算出部
【技術分野】
【0001】
本発明は、処理すべき対象画像にスムージング処理又は細線化処理を施す画像処理装置及び画像処理方法に関する。
【背景技術】
【0002】
電子写真方式のプリンタ等においては、インキを用いたプリンタ等に比べてドットゲインが大きいため、同じフォント文字を印刷しても文字が太くなる場合がある。そのため予め画像処理によって文字幅を細くする技術が利用されている。これは細線化処理といい、いわゆるベタ文字(文字の内部が高濃度の色により塗りつぶされている文字や線画。以下、ソリッド文字という)の画像のエッジを捉え、このエッジ部分の濃度レベルを中間調レベルに変換することでソリッド文字の輪郭における画素値を一様に下げ、見た目に細くなるように処理するものである。
【0003】
前述のように、細線化処理は濃度レベル(画素値)がほぼ最大値付近となるソリッド文字を対象にしている。
ソリッド文字については細線化処理とは別にスムージングという処理が施される場合がある。スムージング処理は、テンプレートマッチングによって輪郭における白(最小濃度レベル)又は黒(最大濃度レベル)の画素を中間調レベルの画素に置き換えるものである。これにより、文字のジャギー(輪郭部分が滑らかでなくギザギザに見える現象)を抑えることができる。
【0004】
スムージング処理は一般的に2値画像を多値画像に変換する処理であり、従来は中間調レベルを含む文字についてはそのような処理は行われていなかった。中間調レベルを含む文字としては、例えばアンチエイリアシングされた文字やグレーフォントによって出力された文字画像等が挙げられる。
【0005】
一方、細線化処理を行いながら同時にスムージング処理を行う方法が開示されている(例えば、特許文献1、2参照)。これは、テンプレートマッチングを用いて斜線部分にはスムージング処理を施し、縦線、横線等の水平部分については細線化処理を施して線幅調整を行うというものである。具体的には、細線化処理用のテンプレートとスムージングのテンプレートを用意しておき、テンプレートマッチングによってマッチしたテンプレートが細線化処理用のものであれば細線化処理を行い、スムージング処理用のものであればスムージング処理を行う。つまり、画像の構造に応じて処理の切り替えを行うものである。
このとき、斜線部分についてはスムージング用のテンプレートがマッチするようテンプレートが設計されるので、斜線部分ではスムージング処理のみで細線化処理は行われないこととなる。
【0006】
また、上記特許文献1には、スムージング処理の際に変換した画素値を、細線化処理を考慮して小さな値に設定することにより、スムージング処理と細線化処理とを同時に行う方法も開示されている。しかし、実際に実施してみると、細線化の程度を強くするほど、スムージングの効果が低下するといった不具合が生じる場合がある。そうでない場合であっても、テンプレートがマッチングしなかった輪郭部分だけ細線化が行われないこととなり、当該輪郭部分だけ線幅が大きいという画質劣化を生じる可能性がある。
【特許文献1】特開平7−334672号公報
【特許文献2】特開2004−236033号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
図11を参照し、具体的に説明する。
図11(a)はソリッド文字の元画像を示す図であり、ソリッド文字のエッジ部分を示している。エッジ部分は水平に近い斜線構造となっている。この場合、図11(b)に示す目標画像となるようにスムージング処理又は細線化処理を施すことが最善策である。すなわち、段差部分にはスムージング処理を施して滑らかとすると同時に線幅は全体的に細くすることが好ましい。
【0008】
しかし、図11(a)に示す元画像についてスムージング処理のみを施した場合、段差付近のみ中間調レベルに変換され、図11(c)に示す結果となる。また、細線化処理のみを施した場合、図11(d)に示すようにエッジ部分が一様に中間調レベルに変換されることとなる。よって、これらの処理が同時に施された場合には目標画像のように段差が滑らかとなり、全体的にエッジ部分の画素値が小さくなることが期待されるが、上記の方法のように単に画像構造に応じてスムージング処理と細線化処理を切り替えただけでは、図11(e)に示すように段差部分が残ったり、段差の方向が逆転したり(矢印で示す部分)して画質劣化が生じる場合がある。また、改良方法として挙げられた、スムージング処理時に変換する画素値を小さく設定する方法では、図11(f)に示すように図11(e)の結果と比べてある程度の改善が見られるものの、段差を小さくできない部分(矢印で示す部分)が現れ、図11(b)の目標画像とは画質的にやはり劣るものとなる。
【0009】
本発明の課題は、画質を劣化させることなく、細線化とスムージングを同時に実現することである。
【課題を解決するための手段】
【0010】
請求項1に記載の発明は、画像処理装置において、
処理すべき対象画像において注目画素とそのパートナー画素を決定する決定手段と、
スムージング処理を施すことにより前記注目画素及び前記パートナー画素において変化する画素値の変化量を求めるスムージング算出手段と、
細線化処理を施すことにより前記注目画素及び前記パートナー画素において変化する画素値の変化量を求める細線化算出手段と、
前記スムージング処理による画素値の変化量と前記細線化処理による画素値の変化量に基づいて、前記対象画像に対しスムージング処理又は細線化処理を施した後の前記注目画素及び前記パートナー画素の画素値を算出し、この算出された注目画素及びパートナー画素の画素値を合算した合算値に基づいて、前記スムージング処理又は細線化処理の後の注目画素値を決定する画素値算出手段と、
を備えることを特徴とする。
【0011】
請求項2に記載の発明は、請求項1に記載の画像処理装置において、
前記パートナー画素は前記注目画素に隣接する画素であり、
前記決定手段は、注目画素とパートナー画素の位置関係が予め定められたテンプレートを用いて前記対象画像における注目画素とそのパートナー画素を決定する。
【0012】
請求項3に記載の発明は、請求項2に記載の画像処理装置において、
前記テンプレートは、細線化処理を施すべき構造又はスムージング処理を施すべき構造を検出するものであって、その構造に応じて前記注目画素及び前記パートナー画素の位置関係が予め定められているものであり、
前記決定手段は、前記テンプレートと前記対象画像とを照合することにより、前記注目画素及びパートナー画素を決定する。
【0013】
請求項4に記載の発明は、請求項3に記載の画像処理装置において、
前記テンプレートは、スムージング処理を施すべき構造に応じて、スムージング処理による注目画素及びパートナー画素の画素値の変化量が予め定められているものであり、
前記スムージング算出手段は、前記テンプレートと前記対象画像とを照合し、一致すると当該テンプレートに定められている前記画素値の変化量を、前記スムージング処理による注目画素又はパートナー画素の画素値の変化量として求めることを特徴とする。
【0014】
請求項5に記載の発明は、請求項1〜4の何れか一項に記載の画像処理装置において、
前記対象画像の全画素についてその属性を示す属性データを生成する属性判別手段を備え、
前記画素値算出手段は、前記生成された属性データに基づいて、前記注目画素が文字又は線画を構成する画素であるか否かを判別し、当該文字又は線画を構成する場合のみ前記スムージング処理又は前記細線化処理後の画素値を算出することを特徴とする。
【0015】
請求項6に記載の発明は、請求項1〜5の何れか一項に記載の画像処理装置において、
前記対象画像における細線構造を検出する細線構造検出手段を備え、
前記画素値算出手段は、前記注目画素が前記検出された細線構造を構成する画素である場合には前記細線化処理の程度を基準値より小さくする、或いは前記細線化処理の対象から除外することを特徴とする。
【0016】
請求項7に記載の発明は、画像処理方法において、
処理すべき対象画像において注目画素とそのパートナー画素を決定する決定工程と、
スムージング処理を施すことにより前記注目画素及び前記パートナー画素において変化する画素値の変化量を求めるスムージング算出工程と、
細線化処理を施すことにより前記注目画素及び前記パートナー画素において変化する画素値の変化量を求める細線化算出工程と、
前記スムージング処理による画素値の変化量と前記細線化処理による画素値の変化量に基づいて、前記対象画像に対しスムージング処理又は細線化処理を施した後の前記注目画素及び前記パートナー画素の画素値を算出し、この算出された注目画素及びパートナー画素の画素値を合算した合算値に基づいて、前記スムージング処理又は細線化処理の後の注目画素値を決定する画素値算出工程と、
を含むことを特徴とする。
【0017】
請求項8に記載の発明は、請求項7に記載の画像処理方法において、
前記パートナー画素は前記注目画素に隣接する画素であり、
前記決定工程では、注目画素とパートナー画素の位置関係が予め定められたテンプレートを用いて前記対象画像における注目画素とそのパートナー画素を決定する。
【0018】
請求項9に記載の発明は、請求項8に記載の画像処理方法において、
前記テンプレートは、細線化処理を施すべき構造又はスムージング処理を施すべき構造を検出するものであって、その構造に応じて前記注目画素及び前記パートナー画素の位置関係が予め定められているものであり、
前記決定工程では、前記テンプレートと前記対象画像とを照合することにより、前記注目画素及びパートナー画素を決定する。
【0019】
請求項10に記載の発明は、請求項9に記載の画像処理方法において、
前記テンプレートは、スムージング処理を施すべき構造に応じて、スムージング処理による注目画素及びパートナー画素の画素値の変化量が予め定められているものであり、
前記スムージング算出手段は、前記テンプレートと前記対象画像とを照合し、一致すると当該テンプレートに定められている前記画素値の変化量を、前記スムージング処理による注目画素又はパートナー画素の画素値の変化量として求めることを特徴とする。
【0020】
請求項11に記載の発明は、請求項7〜10の何れか一項に記載の画像処理方法において、
前記対象画像の全画素についてその属性を示す属性データを生成する属性判別工程を含み、
前記画素値算出工程では、前記生成された属性データに基づいて、前記注目画素が文字又は線画を構成する画素であるか否かを判別し、当該文字又は線画を構成する場合のみ前記スムージング処理又は前記細線化処理後の画素値を算出することを特徴とする。
【0021】
請求項12に記載の発明は、請求項7〜11の何れか一項に記載の画像処理方法において、
前記対象画像における細線構造を検出する細線構造検出工程を含み、
前記画素値算出工程では、前記注目画素が前記検出された細線構造を構成する画素である場合には前記細線化処理の程度を基準値より小さくする、或いは前記細線化処理の対象から除外することを特徴とする。
【発明の効果】
【0022】
請求項1〜4、7〜10に記載の発明によれば、注目画素及びパートナー画素のスムージング処理又は細線化処理後の画素値の合算値から注目画素の画素値を決定することができる。すなわち、スムージング処理と細線化処理の双方の処理結果に基づいて注目画素の画素値を決定しているので、スムージング処理と細線化処理とを連携させた処理結果を得ることができる。また、注目画素とパートナー画素の2画素分の画素値を操作することができるので、処理の結果、何れか一方の画素で画素値が過剰に増減した場合でも他方の画素の画素値で補うことができる。従って、画質劣化させることなく、スムージングと細線化をバランス良く実現することが可能となる。
【0023】
請求項5、11に記載の発明によれば、スムージング処理又は細線化処理の対象とすべき文字又は線画を構成する画素のみをそれら処理の対象とすることができ、写真画等のスムージング処理や細線化処理に不向きな画像については処理対象から除外することができる。これにより、画質劣化を回避することができる。
【0024】
請求項6、12に記載の発明によれば、細線構造については細線化処理の程度を小さくするか、或いは処理対象外とすることができる。これにより、細線部分が過剰に細線化されてかすれる等の画質劣化を防止することができる。
【発明を実施するための最良の形態】
【0025】
まず、構成を説明する。
図1に、本実施形態における画像処理装置10の機能的構成を示す。
ここでは、プリンタ内に画像処理装置10が組み込まれ、画像処理装置10においてプリンタに入力されたPDL(Page Description Language)形式のデータから画像データを生成し、画像処理を施す例を説明する。
【0026】
図1に示すように、画像処理装置10はコントローラ1、ソリッドデコード部2、テンプレートマッチング部3、ソリッドチェック部4、TAGチェック部5、スムージング係数算出部6、細線化構造チェック部7、細線化係数算出部8、画素値算出部9を備えて構成されている。なお、各部1〜9での処理に用いるパラメータやデータは図示しないメモリに記憶されており、必要に応じて当該メモリから各部1〜9がデータを読み出して処理に用いるものとする。
【0027】
コントローラ1は、PDLデータが入力されると、これに含まれるPDLコマンドを解析し、描画すべき画像単位(これをオブジェクトという)毎に分類してディスプレイリストを作成する。ディスプレイリストは描画すべきオブジェクトの位置座標、領域データ若しくは色データのアドレス情報等が記述された中間データである。
【0028】
コントローラ1は、作成したディスプレイリストに基づき、プリンタで使用可能な色材C(シアン)、M(マジェンタ)、Y(イエロー)、K(黒)毎の画像データを生成する。画像データはディスプレイリストに基づいて描画するオブジェクトについて画素を割り当て、この割り当てた画素毎に画素値を設定したものである。本実施形態では8ビット、つまり0〜255の画素値を設定可能な画像データを生成するものとする。また、コントローラ1は生成した画像データについて、ディスプレイリストに基づき個々の画素についてその画像属性を判別し、その判別結果として属性データTAGを生成する。属性データTAGは画素単位で生成し、画素が文字であることを示すTEXT(TAG=0)、線画であることを示すGRAPHICS(TAG=1)、写真画であることを示すIMAGE(TAG=2)に分類される。
コントローラ1は、生成した色毎の画像データを属性データTAGとともにソリッドデコード部2に出力する。
【0029】
ソリッドデコード部2は、コントローラ1から入力された画像データに基づいて画素毎にソリッドデータSを生成する。ソリッドデータSは各画素がソリッド文字を構成する画素であるか否かを大まかに判断した結果である。ソリッドデコード部2は、2つの閾値SOA、SOBを用いてソリッドデータSを生成する。すなわち、画素値が0〜SOAの範囲内であればソリッド文字の可能性が低いとしてS=1とし、画素値がSOB〜255の範囲内であればソリッド文字の可能性が高いとしてS=2に設定する。画素値が(SOA+1)〜(SOB-1)の範囲内の場合はそのどちらでもないとしてS=0に設定する。
ソリッドデコード部2は生成したソリッドデータSをテンプレートマッチング部3、ソリッドチェック部4に出力する。
【0030】
テンプレートマッチング部3は、128個のテンプレートと入力画像のある画像領域におけるソリッドデータSとをマッチング(照合)させ、スムージング処理を施すべき構造又は細線化処理を施すべき構造を検出する。スムージング処理を施すべき構造とは、文字や線画のオブジェクトのエッジ部分であって段差部分を含む構造をいう。また、細線化処理を施すべき構造とはソリッド文字のエッジ部分をいう。マッチングは、入力画像について注目画素を設定し、この注目画素の位置とテンプレートにおいて予め定められている注目画素の位置とが合致するようにマッチングさせる。入力画像の全画素について注目画素を順次設定することにより、入力画像の全領域についてテンプレートマッチングを行う。
【0031】
図2に、テンプレートの一部を示す。
テンプレートは、図2に示すように5×9=45画素についてテンプレートデータT(図2の各画素に示されている数字)が設定されたものである。テンプレートデータTは0〜6の値を取り得る。また、テンプレートの中心画素(図2中、色を付した画素)は注目画素の位置として予め定められている。太線で囲む画素はそのテンプレートにおいて当該注目画素のパートナー画素となるべき画素を示している。パートナー画素とは注目画素に隣接する画素であり、注目画素と一体的にスムージング処理又は細線化処理が施される画素である。パートナー画素の位置は、テンプレートで検出するスムージング処理を施すべき構造、細線化処理を施すべき構造に応じて予めテンプレートにおいてその位置が定められている。
【0032】
テンプレートには上記パートナー画素の位置の他、スムージング処理による画素値の変化量、変動する方向性(増減の符号)が予め定められているとともに、注目画素又はパートナー画素のうちスムージング処理又は細線化処理を施す画素、シフト画素(後述する)の指定がされている。これらはテンプレートで検出対象とするスムージング処理を施すべき構造、細線化処理を施すべき構造に加え、テンプレートで定められた注目画素とパートナー画素の位置関係に応じて決定されているものである。
上記の設定はヘッダ情報として各テンプレートに付加されている。ヘッダ情報は0〜5のアドレスに対応付けて上記の設定事項を示す6個の数字を格納するものである。なお、図2中、ヘッダ情報の左側に表示されている「HS1C」等の記号は、各テンプレートを個々に識別するためのIDである。
【0033】
各アドレスにおける数字が示す意味は図3に示す通りである。すなわち、0のアドレスにはスムージング処理による画素値の変化量powerを示す数字が格納される。0の数字はpower=0、2の数字はpower=20、4の数字はpower=40であることを示す。なお、powerは最大画素値に対して変動する比率を示すものである。最大画素値は255であるので、例えばpower=20(%)のときその変化量(変動する画素値)は255×0.2で表される。また、1のアドレスには変化量power分だけ画素値を増やすのか減らすのかその方向性を示す数字が格納される。0の数字はプラス、つまり増加させることを示し、1の数字はマイナス、つまり減少させることを示している。2のアドレスには注目画素の位置を元にパートナー画素の位置を示す数字が格納される。数字0、1、2、3の順に左、上、右、下の方向を示している。図2ではこの数字により示される位置をパートナー画素の位置として太枠で示している。
【0034】
3のアドレス、4のアドレスはそれぞれスムージング処理、細線化処理を施す画素は注目画素であるかパートナー画素であるかを示す数字が格納される。数字0は注目画素を示し、数字1はパートナー画素を示している。また、5のアドレスはシフト画素の位置を示す数字を格納するものである。シフト画素とは注目画素又はパートナー画素においてスムージング処理又は細線化処理により0〜255の範囲を超えた分の画素値を、そのパートナー画素又は注目画素にシフトさせる、つまり超過分の画素値を補わせる場合のその被シフト側の画素をいう。数字0はシフト画素が注目画素であることを示し、数字1はシフト画素がパートナー画素であることを示す。
【0035】
テンプレートがマッチ(一致)したかどうかの判定は、図4に示すような判定基準に従って行う。図4に示す判定基準では、テンプレートデータT値0〜6を2つずつ組み合わせて4つのグループA〜Eに分類し、グループ毎に判定条件を定めている。グループAはテンプレートデータT値0、1についての判定条件を定めている。判定条件はテンプレートデータT値0、1の位置にある画素のソリッドデータSが1、0、2の何れであってもマッチしたと判別するものである。グループBはテンプレートデータT値2、3に関する判定条件であり、テンプレートデータT値が2の位置にある画素が全て1のソリッドデータS値を有し、テンプレートデータT値が3の位置にある画素が全て2のソリッドデータS値を有している場合のみ、マッチしたと判定する。
【0036】
グループCはテンプレートデータT値4、5のグループであり、テンプレートデータT値が4の位置にある画素のソリッドデータS値が全て1であり、かつテンプレートデータTと5の位置にある画素のソリッドデータ値が全て2である場合のみマッチしたと判定する。
以上の判定条件と図2のテンプレート例から分かるように、テンプレートはスムージング処理又は細線化処理を施すべき構造(画素値がSOB以上のソリッド文字のエッジ部分であって、そのエッジが段差を構成するところ)を有する画像領域とマッチするように、テンプレートデータTが設定されている。例えば、図2のID「HS1C」のテンプレートではT=3となる画素はソリッドデータS=2、T=2となる画素はソリッドデータS=1となるときマッチする。すなわち、ソリッド文字のエッジ部分であって段差を構成しているT=3の画素群と、低濃度の背景を構成するT=2の画素群を検出することができるのである。
【0037】
グループD、Eは後述するソリッドチェック部4で用いられる判定条件である。
グループDはテンプレートデータT値2、3について当該テンプレートデータT値に該当する画素全てが1又は2である場合のみマッチしたと判定する。グループEはテンプレートデータT値6のグループであり、当該テンプレートデータT値の画素が1又は2のソリッドデータS値である場合のみマッチしたと判定する。
【0038】
なお、テンプレートは図2に示したような、検出すべきいくつかの基本構造を想定した基本テンプレートを32個準備しておき、これを上下対称、左右対称、斜め対称とした派生テンプレートを作成することにより、合計128個のテンプレートとするものである。
【0039】
以下、図4に示す判定条件によるテンプレートマッチングの手順について説明する。
まず、テンプレートマッチング部3では、処理対象の入力画像から注目画素の位置を元にテンプレートに対応する画像領域(45画素分の画像領域)を抽出し、当該テンプレートのテンプレートデータTと、抽出した画像領域のソリッドデータSとを照合し、上記判定条件に従ってグループ毎にマッチしたかどうかを判定する。例えば、グループAについてはテンプレートデータT値0、1に該当する画素のソリッドデータS値を参照し、判定条件を満たすかどうかを判断する。これを各グループA〜Dについて行う。
【0040】
各グループA〜Dにおける判定結果が全てマッチしたという結果である場合、照合したテンプレートと抽出した画像領域はマッチしたと最終判定する。
上記の判定を128個全てのテンプレートについて行う。そして、何れか1つでもマッチしたと判定されたテンプレートがある場合にはマッチング結果を示すマッチングデータTMをTM=1に設定する。マッチングデータTMはスムージング係数算出部6に出力される。また、マッチしたテンプレートが複数ある場合には所定の優先順位に基づいて何れか1つのテンプレートを代表テンプレートとして特定しておく。ここではテンプレートの照合順を優先順位とする。後段の処理でパートナー画素はこの代表テンプレートでパートナー画素として定められた位置にある画素となる。
一方、何れのテンプレートともマッチしなかった場合にはTM=0に設定し、これをスムージング係数算出部6に出力する。
【0041】
次に、ソリッドチェック部4の処理について説明する。
ソリッドチェック部4は、テンプレートマッチング部3での処理に平行して、テンプレートマッチングを行った画像領域がソリッド文字を構成するか否かを確認的にチェックするものである。上記テンプレートは予めいくつかの検出すべき構造を想定して設計したものであるため、テンプレートにマッチしない場合でもソリッド文字を構成する場合が考えられる。ここではそのような画像領域を検出する。
具体的には、上記のテンプレートマッチングにおいて図4に示すグループDの判定条件に従い、テンプレートデータT値2、3に該当する画素のソリッドデータS値が1又は2であるかどうかを判定する。1又は2である場合にはソリッド文字を構成すると判定し、それ以外の場合にはソリッド文字を構成していないと判定する。
【0042】
或いは、図5に示すようなテンプレートを用いて、図4に示すグループEの判定条件に従い、チェックを行う。図5に示すsolid1、solid2のテンプレートは中間レベルの画素がテンプレートマッチングを行った画像領域に含まれていないことをチェックするためのものである。ソリッドチェック部4はテンプレートマッチング部3においてテンプレートマッチングを行った領域に対し、solid1、solid2のテンプレートを照合し、テンプレートデータT値6に該当する画素のソリッドデータS値が1又は2の場合にsolid1、solid2のテンプレートにマッチングしたと判定する。すなわち、テンプレートマッチングを行った画像領域はソリッド文字を構成すると判定する。
【0043】
なお、solid1、solid2のテンプレートはマッチするか否かを判定する領域範囲が異なる(solid1<solid2)ように設計されている。これによりソリッド文字か否かの判定は段階的に行うことが可能である。これはSOLIDTREATと呼ばれるパラメータ値を設定することにより、ソリッド文字か否かを判定する段階を選択するものである。SOLIDTREATの設定値と判定の段階の対応関係を図6に示す。図6に示すように、SOLIDTREAT=0のとき、無条件でテンプレートマッチングした画像領域がソリッド文字を構成するものであると判定する。一方、SOLIDTERAT=1のときはsolid1のテンプレートがマッチングしたときのみソリッド文字を構成するものと判定し、SOLIDTERAT=2のときはsolid2のテンプレートがマッチングしたときのみソリッド文字を構成するものと判定する。
ソリッドチェック部4は、ソリッド文字を構成すると判定した場合、そのチェック結果を示すチェックデータASをAS=1と設定し、ソリッド文字を構成しないと判定した場合にはAS=0と設定して当該チェックデータASをスムージング係数算出部6に出力する。
【0044】
TAGチェック部5は、注目画素及びパートナー画素についての画像の属性を検出する。すなわち、注目画素、パートナー画素の属性データTAGを参照し、TAG=0又は1のとき(つまり文字又は線画を構成する画素であるとき)、チェック結果を示すチェックデータTCKをTCK=1とする。また、TAG=2のとき(つまり写真画を構成する画素であるとき)、TCK=0とし、このチェックデータTCKをスムージング係数算出部6に出力する。なお、ここでのパートナー画素は代表テンプレートにおいてパートナー画素と定められている位置の画素である。
【0045】
スムージング係数算出部6は、マッチングデータTM、チェックデータAS、TCKに基づいて、注目画素についてスムージング処理を施すか否かを決定するとともに、スムージング処理を施す場合には当該スムージング処理によって注目画素の画素値を変動させる変化量を決定する。変化量はスムージング係数dSMTで表される。スムージング係数dSMTには注目画素の係数dSMTcとパートナー画素の係数dSMTpとがある。係数dSMTc、dSMTpは何れか一方を0以外の値とするならば他方は0となるものである。
【0046】
スムージング係数算出部6は、図7に示す決定条件に従ってスムージング処理の有無、スムージング係数dSMTc、dSMTpを決定する。図7に示す決定条件は、TM、AS、TCKが全て1のとき、注目画素にスムージング処理を施すことを決定し、その決定を示す結果データMSをMS=1に設定する。またこのときのスムージング係数dSMTc、dSMTpはテンプレートに従って決定する。スムージング係数dSMTc、dSMTpの決定は、テンプレートマッチングを行った際に代表テンプレートとして特定したテンプレートのヘッダ情報を参照し、パラメータpower、Sign、dSMTposの情報を取得してこれら情報を元に決定する。まず、アドレス0のpowerを参照し、変化量を決定する。power=0であれば0%、power=2であれば20%、power=4であれば40%の変化量である。次にアドレス1のSignを参照して増減の方向を決定する。Sign=0であれば増加方向を示す符号「+」、Sign=1であれば減少方向を示す符号「−」である。最後にアドレス3のdSMTposを参照し、注目画素とパートナー画素の何れについてのスムージング係数とするかを決定する。dSMTpos=0であれば注目画素、dSMTpos=1であればパートナー画素である。
【0047】
例えば、power=2、Sign=0、dSMTpos=0の場合、注目画素のスムージング係数dSMTc=+20と決定し、パートナー画素のスムージング係数dSMTp=0と決定する。つまり、パートナー画素についてはスムージング処理は実行されないこととなる。
一方、TM、AS、TCKのうち何れか1つでも0であれば、注目画素又はパートナー画素にスムージング処理は実行しないと決定して結果データMS=0とし、スムージング係数dSMTc、dSMTpをともに0に設定する。
結果データMS及びスムージング係数dSMT(dSMTc、dSMTp)は細線化構造チェック部7に出力される。
【0048】
細線化構造チェック部7は、細線化処理の対象外とすべき画素を検出する。具体的には、注目画素又はパートナー画素を中心に「白」「黒」「白」と画素が並ぶ細線構造の有無を判定し、細線構造を有する場合には細線化処理の程度を小さくするか、或いは細線化処理の対象から除外する。
細線化構造チェック部7は、注目画素が「黒」の画素(画素値>SOBとなる画素。以下、黒画素という。)である場合、注目画素の上下左右に位置する画素が「白」の画素(画素値<SOAとなる画素。以下、白画素という。)のとき、細線構造であると判定し、その判定結果を示す結果データTLをTL=1に設定する。また、注目画素が白画素でかつテンプレートがマッチングしている場合(TM=1のとき)、パートナー画素が黒画素でかつその隣接画素(注目画素とパートナー画素を挟んで対抗する位置にある画素)が白画素である場合にもTL=1に設定する。上記以外の場合は細線構造ではないと判定し、TL=0に設定する。
【0049】
細線化構造チェック部7は、さらに細線化処理時の強度STVLを設定する。STVLは下記のように通常の場合(TL=0)、基準値(例えば100)に設定されるが、細線構造である場合(TL=1)はこれよりも小さな値が設定される。
TL=0の場合:STVL=100
TL=1の場合:STVL=20
すなわち、細線構造である場合には通常より値を小さく設定することによって細線化の程度を小さくするように調整する。これは細線構造部分における細線化処理の程度を通常通りとすると、細線構造がかすれて画質劣化を引き起こす可能性があるからである。なお、TL=1の場合、細線化処理を実行しないように0に設定することとしてもよい。
設定された結果データTL及びSTVLは、細線化係数算出部8に出力される。
【0050】
細線化係数算出部8は、注目画素又はパートナー画素において細線化処理を施すか否かを判定し、さらに施すと判定した場合には細線化係数dSTを算出する。細線化係数dSTは細線化処理による注目画素又はパートナー画素の画素値の変化量を示すものであり、細線化係数dSTには注目画素についての係数dSTcとパートナー画素についての係数dSTpとがある。
まず、細線化係数算出部8は、注目画素が黒エッジ(黒画素であって黒画素と白画素との境界部分(エッジ)にあたる画素をいう)であるか否かを判断し、黒エッジである場合には細線化処理を施すと判定して細線化係数dSTを設定する。
黒エッジであるか否かの判断は以下の手順で判断する。まず注目画素とその上下左右の画素との画素値の差分を求め、各差分のうち最大のものをMAXDLとする。そして、このMAXDLを黒エッジ判定用に予め準備された閾値EDGETHと比較し、MAXDL>EDGETHである場合、注目画素は黒エッジであると判断する。
【0051】
細線化係数dSTは、結果データTMに基づいて以下のように設定する。
まず、TM=0のとき、すなわちテンプレートがマッチしていない場合であって、注目画素が黒エッジであればdSTc=-STVL、dSTp=0に設定する。注目画素が黒エッジであるため細線化処理は必要であるが、テンプレートにマッチしていないため、パートナー画素は無関係に注目画素についてのみ細線化処理を施す。注目画素が黒エッジでない場合には、細線化処理は不要であるので、dSTc=0、dSTp=0に設定する。
一方、TM=1のとき、テンプレートがマッチングしていることから細線化処理を施すべき構造が含まれているはずである。よって、代表テンプレートのヘッダ情報を参照して細線化係数dSTを決定する。ヘッダ情報ではアドレス4のdSTposを参照し、dSTpos=0であれば注目画素に細線化処理を行うため、dSTc=-STVL、dSTp=0に設定する。また、dSTpos=1であればパートナー画素に細線化処理を行うため、dSTc=0、dSTp=-STVLに設定する。
設定された細線化係数dSTは、スムージング係数dSMTとともに画素値算出部9に出力される。
【0052】
画素値算出部9は、注目画素の元の画素値Cin、スムージング係数dSMT、細線化係数dSTに基づき、注目画素にスムージング処理又は細線化処理を施した後の画素値Coutを算出する。
まず、画素値算出部9はシフト画素が注目画素又はパートナー画素の何れであるかを判断する。これは代表テンプレートのヘッダ情報を参照し、アドレス5のshiftposがshiftpos=0であればシフト画素は注目画素であり、shiftpos=1であればシフト画素はパートナー画素であると判断する。また、シフト画素について黒画素であるか否かを判定し、その判定結果を示す結果データSPNFを設定する。シフト画素が黒画素である場合にはSPNF=0とし、黒画素でない場合にはSPNF=1とする。SPNF=1は1ドット幅の細線構造を持つ場合であり、シフト画素が黒画素ではないのでシフト画素側に画素値をシフトさせることができない。そのため、シフト画素についての細線化処理は中止し、強制的にdST=0に設定して細線化係数の修正を行う。
【0053】
シフト画素が判定されると、下記式1、2によりスムージング処理又は細線化処理後の注目画素の画素値Cm、パートナー画素の画素値Pmの算出を行う。
Cm=Cin+dSTc+dSMTc×255・・・(1)
Pm=Pin+dSTp+dSMTp×255・・・(2)
式1、2においては細線化処理による画素値の変化量dST、スムージング処理による画素値の変化量dSMT×255を算出し、これらと元の画素値との和を求めている。
【0054】
次に、画素値算出部9は算出したCm、Pmについて、オーバーフロー又はアンダーフローのチェックを行い、そのチェック結果に応じて注目画素又はパートナー画素の画素値Cm、Pmをシフト画素側にシフトさせる等して最終的な画素値Cout、Poutを算出する。なお、この処理は、TM=1、つまりテンプレートがマッチした場合のみ行う。TM=0であり、テンプレートがマッチしていない場合には、Cout=Cmとする。
【0055】
以下、画素値Cout、Poutの算出について図8を参照して説明する。
図8に示すように、画素値算出部9は最終的に画素値をシフトさせる画素が注目画素になるか、パートナー画素になるかを判別する。判別は代表テンプレートのヘッダ情報のshiftposとSPNFに基づいて行う。すなわち、shiftpos=0かつSPNF=0である場合(ステップS1;Y)、シフト画素は注目画素でありかつ黒画素である。また、shiftpos=1かつSPNF=1である場合(ステップS1;Y)、シフト画素はパートナー画素でありかつ白画素である。この2つの条件を満たす場合には最終的に画素値がシフトされるのは注目画素であると判別でき、この条件以外の場合にはパートナー画素に画素値がシフトされると判別できる。
【0056】
まず、最終的に画素値がシフトされる画素が注目画素であると判別された場合について説明する。
この場合、注目画素とパートナー画素の画素値Cm、Pmを足し合わせた合算値を評価する。Cm+Pm<0となる場合には(ステップS2;Y)、Cout=Pout=0とする(ステップS3)。0≦Cm+Pm≦255である場合(ステップS2;N、S4;Y)、Cout=Cm+Pm、Pm=0とする(ステップS5)。255<Cm+Pmである場合には(ステップS2;N、S4;N)、Cm=255、Pm=Cm+Pm-255とする(ステップS6)。
【0057】
次に、最終的に画素値がシフトされる画素がパートナー画素であると判別された場合について説明する。
この場合も上記と同様に注目画素とパートナー画素の画素値Cm、Pmを足し合わせた合算値を評価する。Cm+Pm<0となる場合には(ステップS7;Y)、Cout=Pout=0とする(ステップS8)。0≦Cm+Pm≦255である場合(ステップS7;N、S9;Y)、Cout=0、Pout= Cm+Pmとする(ステップS10)。255<Cm+Pmである場合には(ステップS7;N、S9;N)、Cout= Cm+Pm-255、Pout=255とする(ステップS11)。
このように画素値の算出が行われると、最終的に得られたCoutを細線化処理及びスムージング処理後の注目画素値として出力する。
【0058】
図9を参照して、上記画像処理装置10による処理結果について説明する。
図9(a)はソリッド文字を含む元画像を示す図である。図9(a)に示すようなソリッド文字を処理対象とした場合、テンプレートマッチングの結果、図9(b)に示すようにソリッド文字のエッジ付近においてC1〜C4で示す画素が注目画素となったとき、テンプレートがマッチし、P1〜P4で示す画素がそれぞれパートナー画素と決定された。また、Tで示す画素はこれらが注目画素となったとき、テンプレートがマッチしなかった画素である。
【0059】
Tで示す画素についてはテンプレートがマッチしないため、スムージング係数dSMT=0と算出される。また、細線構造は呈しておらず、黒エッジであるので、細線化係数dST=-STVLと算出される。よって、細線化処理のみ実行され、最終的に画素値Cout=Cin+dSTc×255が設定される。
一方、C1、C2で示す画素は黒エッジでありテンプレートがマッチするため、C1、C2についてスムージング処理と細線化処理がともに実行され、そのパートナー画素であるP1、P2については何れも無処理となる。これに対し、段差の境界に近いC3、C4の画素については白画素でありテンプレートがマッチするため、スムージング処理のみが実行され、そのパートナー画素であるP3、P4は黒エッジであるため細線化処理のみが施される。その後、注目画素C3、C4の画素値がパートナー画素P3、P4にシフトされることとなる。その結果、図9(c)に示すようにソリッド文字のエッジにおいて全体的に細線化が実現されるとともに、滑らかな階段状とされてスムージングが実現されることとなる。
【0060】
以上のように、本実施形態によれば、テンプレートを用いてスムージング処理又は細線化処理を施すべき画像構造を検出する。テンプレートがマッチした場合、注目画素の属性が文字又は線画であれば注目画素についてスムージング処理を施すと決定する。また、マッチしたテンプレートにおいて指定された画素(注目画素又はパートナー画素の何れか)に細線化処理を施すと決定する。一方、テンプレートがマッチしない場合、注目画素についてスムージング処理は実行しないと決定する。また、注目画素が黒エッジである場合には細線化処理を行い、白画素である場合には細線化処理は行わないと決定する。
【0061】
スムージング処理、細線化処理についての実行/非実行が決定されると、その係数dSMT、dSTを決定する。スムージング係数dSMTはテンプレートで予め定められた値を用い、細線化係数dSTについては細線構造の有無に応じて決定する。これら係数によってスムージング処理又は細線化処理後の注目画素及びパートナー画素における画素値の変化量を算出する。テンプレートがマッチしていない場合には、その変化量分だけ注目画素の画素値を変動させた値を注目画素値として出力する。一方、テンプレートがマッチしている場合にはその変化量分だけ注目画素、パートナー画素の画素値を変動させ、その変動させた画素値の合算値を求める。そして、合算値が0〜255の範囲外となる場合は注目画素又はパートナー画素の画素値を、注目画素又はパートナー画素のうち、テンプレートにおいてシフト画素と指定されている方へシフトさせ、そのシフト後の注目画素値を出力する。
【0062】
すなわち、スムージング処理と細線化処理のどちらも実行しなければならない画像部分については注目画素とパートナー画素の2画素について一体的に処理が行われることとなる。これにより、細線化とスムージングをバランス良く実現することができる。その結果、ソリッド文字のエッジにおいて全体的に細線化することが可能となるとともに、斜線部において滑らかな斜線を形成することができる。
【0063】
また、細線構造を構成する画素については細線化処理の程度を小さくするので、細線化処理により細線部分が失われるといった画質劣化を防止することができる。なお、細線構造を有する画素については細線化処理の対象から除外することとしてもよい。
【0064】
また、属性データTAGにより文字又は線画の画素にのみスムージング処理又は細線化処理を施すので、写真画をスムージング処理又は細線化処理の対象から除外することができ、画質劣化を回避することができる。
【0065】
図10を参照して、本発明の効果について説明する。
図10(a)に示すソリッド文字の画像の場合、そのまま出力するとジャギーが発生するとともにドットゲインが生じ、文字が太くなってしまう。これに対し、単に細線化処理を施しただけでは図10(b)に示すように、細線化は実現できるが、ジャギーは解消できない。逆に、スムージング処理を施したのみでは、図10(c)に示すように文字の肥大化は防げない。一方、従来技術のようにスムージング処理において出力値を小さくする方法を採用した場合、図10(d)に示すように多少細線化は実現できるが、少なからずジャギーが生じてしまう。
しかしながら、本実施形態によれば、図10(e)に示すようにスムージングと細線化がバランスよく実現されていることが分かる。
【図面の簡単な説明】
【0066】
【図1】本実施形態における画像処理装置の機能的構成を示す図である。
【図2】テンプレートの一例を示す図である。
【図3】テンプレートのヘッダ情報の内容を示す図である。
【図4】テンプレートマッチングの判定条件を示す図である。
【図5】solid1、solid2のテンプレートを示す図である。
【図6】ソリッド文字か否かの判定段階を示す図である。
【図7】スムージング処理を実行するか否かの判定条件を示す図である。
【図8】画素値の算出方法を説明するフローチャートである。
【図9】(a)処理対象のソリッド文字の一部を示す図である。(b)画像処理装置による細線化処理又はスムージング処理の処理過程を示す図である。(c)処理結果を示す図である。
【図10】(a)処理対象のソリッド文字の画像の一部を示す図である。(b)(a)の画像に対し、細線化処理のみ施した場合の処理画像を示す図である。(c)(a)の画像に対し、スムージング処理のみ施した場合の処理画像を示す図である。(d)(a)の画像にスムージング処理を施すにあたって、出力値を小さく設定した場合の処理画像を示す図である。(e)本発明に係る細線化処理又はスムージング処理を適用した場合の処理画像を示す図である。
【図11】(a)処理対象のソリッド文字の画像の一部を示す図である。(b)目標とする処理画像を示す図である。(c)(a)の画像にスムージング処理のみを施した場合の処理画像を示す図である。(d)(a)の画像に細線化処理のみ施した場合の処理画像を示す図である。(e)スムージング処理と細線化処理を部分的に切り替える方法による処理画像を示す図である。(f)スムージング処理において出力値を小さく設定する方法による処理画像を示す図である。
【符号の説明】
【0067】
10 画像処理装置
1 コントローラ
2 ソリッドデコード部
3 テンプレートマッチング部
4 ソリッドチェック部
5 TAGチェック部
6 スムージング係数算出部
7 細線化構造チェック部
8 細線化係数算出部
9 画素値算出部
【特許請求の範囲】
【請求項1】
処理すべき対象画像において注目画素とそのパートナー画素を決定する決定手段と、
スムージング処理を施すことにより前記注目画素及び前記パートナー画素において変化する画素値の変化量を求めるスムージング算出手段と、
細線化処理を施すことにより前記注目画素及び前記パートナー画素において変化する画素値の変化量を求める細線化算出手段と、
前記スムージング処理による画素値の変化量と前記細線化処理による画素値の変化量に基づいて、前記対象画像に対しスムージング処理又は細線化処理を施した後の前記注目画素及び前記パートナー画素の画素値を算出し、この算出された注目画素及びパートナー画素の画素値を合算した合算値に基づいて、前記スムージング処理又は細線化処理の後の注目画素値を決定する画素値算出手段と、
を備えることを特徴とする画像処理装置。
【請求項2】
前記パートナー画素は前記注目画素に隣接する画素であり、
前記決定手段は、注目画素とパートナー画素の位置関係が予め定められたテンプレートを用いて前記対象画像における注目画素とそのパートナー画素を決定することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記テンプレートは、細線化処理を施すべき構造又はスムージング処理を施すべき構造を検出するものであって、その構造に応じて前記注目画素及び前記パートナー画素の位置関係が予め定められているものであり、
前記決定手段は、前記テンプレートと前記対象画像とを照合することにより、前記注目画素及びパートナー画素を決定することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記テンプレートは、スムージング処理を施すべき構造に応じて、スムージング処理による注目画素及びパートナー画素の画素値の変化量が予め定められているものであり、
前記スムージング算出手段は、前記テンプレートと前記対象画像とを照合し、一致すると当該テンプレートに定められている前記画素値の変化量を、前記スムージング処理による注目画素又はパートナー画素の画素値の変化量として求めることを特徴とする請求項3に記載の画像処理装置。
【請求項5】
前記対象画像の全画素についてその属性を示す属性データを生成する属性判別手段を備え、
前記画素値算出手段は、前記生成された属性データに基づいて、前記注目画素が文字又は線画を構成する画素であるか否かを判別し、当該文字又は線画を構成する場合のみ前記スムージング処理又は前記細線化処理後の画素値を算出することを特徴とする請求項1〜4の何れか一項に記載の画像処理装置。
【請求項6】
前記対象画像における細線構造を検出する細線構造検出手段を備え、
前記画素値算出手段は、前記注目画素が前記検出された細線構造を構成する画素である場合には前記細線化処理の程度を基準値より小さくする、或いは前記細線化処理の対象から除外することを特徴とする請求項1〜5の何れか一項に記載の画像処理装置。
【請求項7】
処理すべき対象画像において注目画素とそのパートナー画素を決定する決定工程と、
スムージング処理を施すことにより前記注目画素及び前記パートナー画素において変化する画素値の変化量を求めるスムージング算出工程と、
細線化処理を施すことにより前記注目画素及び前記パートナー画素において変化する画素値の変化量を求める細線化算出工程と、
前記スムージング処理による画素値の変化量と前記細線化処理による画素値の変化量に基づいて、前記対象画像に対しスムージング処理又は細線化処理を施した後の前記注目画素及び前記パートナー画素の画素値を算出し、この算出された注目画素及びパートナー画素の画素値を合算した合算値に基づいて、前記スムージング処理又は細線化処理の後の注目画素値を決定する画素値算出工程と、
を含むことを特徴とする画像処理方法。
【請求項8】
前記パートナー画素は前記注目画素に隣接する画素であり、
前記決定工程では、注目画素とパートナー画素の位置関係が予め定められたテンプレートを用いて前記対象画像における注目画素とそのパートナー画素を決定することを特徴とする請求項7に記載の画像処理方法。
【請求項9】
前記テンプレートは、細線化処理を施すべき構造又はスムージング処理を施すべき構造を検出するものであって、その構造に応じて前記注目画素及び前記パートナー画素の位置関係が予め定められているものであり、
前記決定工程では、前記テンプレートと前記対象画像とを照合することにより、前記注目画素及びパートナー画素を決定することを特徴とする請求項8に記載の画像処理方法。
【請求項10】
前記テンプレートは、スムージング処理を施すべき構造に応じて、スムージング処理による注目画素及びパートナー画素の画素値の変化量が予め定められているものであり、
前記スムージング算出手段は、前記テンプレートと前記対象画像とを照合し、一致すると当該テンプレートに定められている前記画素値の変化量を、前記スムージング処理による注目画素又はパートナー画素の画素値の変化量として求めることを特徴とする請求項9に記載の画像処理方法。
【請求項11】
前記対象画像の全画素についてその属性を示す属性データを生成する属性判別工程を含み、
前記画素値算出工程では、前記生成された属性データに基づいて、前記注目画素が文字又は線画を構成する画素であるか否かを判別し、当該文字又は線画を構成する場合のみ前記スムージング処理又は前記細線化処理後の画素値を算出することを特徴とする請求項7〜10の何れか一項に記載の画像処理方法。
【請求項12】
前記対象画像における細線構造を検出する細線構造検出工程を含み、
前記画素値算出工程では、前記注目画素が前記検出された細線構造を構成する画素である場合には前記細線化処理の程度を基準値より小さくする、或いは前記細線化処理の対象から除外することを特徴とする請求項7〜11の何れか一項に記載の画像処理方法。
【請求項1】
処理すべき対象画像において注目画素とそのパートナー画素を決定する決定手段と、
スムージング処理を施すことにより前記注目画素及び前記パートナー画素において変化する画素値の変化量を求めるスムージング算出手段と、
細線化処理を施すことにより前記注目画素及び前記パートナー画素において変化する画素値の変化量を求める細線化算出手段と、
前記スムージング処理による画素値の変化量と前記細線化処理による画素値の変化量に基づいて、前記対象画像に対しスムージング処理又は細線化処理を施した後の前記注目画素及び前記パートナー画素の画素値を算出し、この算出された注目画素及びパートナー画素の画素値を合算した合算値に基づいて、前記スムージング処理又は細線化処理の後の注目画素値を決定する画素値算出手段と、
を備えることを特徴とする画像処理装置。
【請求項2】
前記パートナー画素は前記注目画素に隣接する画素であり、
前記決定手段は、注目画素とパートナー画素の位置関係が予め定められたテンプレートを用いて前記対象画像における注目画素とそのパートナー画素を決定することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記テンプレートは、細線化処理を施すべき構造又はスムージング処理を施すべき構造を検出するものであって、その構造に応じて前記注目画素及び前記パートナー画素の位置関係が予め定められているものであり、
前記決定手段は、前記テンプレートと前記対象画像とを照合することにより、前記注目画素及びパートナー画素を決定することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記テンプレートは、スムージング処理を施すべき構造に応じて、スムージング処理による注目画素及びパートナー画素の画素値の変化量が予め定められているものであり、
前記スムージング算出手段は、前記テンプレートと前記対象画像とを照合し、一致すると当該テンプレートに定められている前記画素値の変化量を、前記スムージング処理による注目画素又はパートナー画素の画素値の変化量として求めることを特徴とする請求項3に記載の画像処理装置。
【請求項5】
前記対象画像の全画素についてその属性を示す属性データを生成する属性判別手段を備え、
前記画素値算出手段は、前記生成された属性データに基づいて、前記注目画素が文字又は線画を構成する画素であるか否かを判別し、当該文字又は線画を構成する場合のみ前記スムージング処理又は前記細線化処理後の画素値を算出することを特徴とする請求項1〜4の何れか一項に記載の画像処理装置。
【請求項6】
前記対象画像における細線構造を検出する細線構造検出手段を備え、
前記画素値算出手段は、前記注目画素が前記検出された細線構造を構成する画素である場合には前記細線化処理の程度を基準値より小さくする、或いは前記細線化処理の対象から除外することを特徴とする請求項1〜5の何れか一項に記載の画像処理装置。
【請求項7】
処理すべき対象画像において注目画素とそのパートナー画素を決定する決定工程と、
スムージング処理を施すことにより前記注目画素及び前記パートナー画素において変化する画素値の変化量を求めるスムージング算出工程と、
細線化処理を施すことにより前記注目画素及び前記パートナー画素において変化する画素値の変化量を求める細線化算出工程と、
前記スムージング処理による画素値の変化量と前記細線化処理による画素値の変化量に基づいて、前記対象画像に対しスムージング処理又は細線化処理を施した後の前記注目画素及び前記パートナー画素の画素値を算出し、この算出された注目画素及びパートナー画素の画素値を合算した合算値に基づいて、前記スムージング処理又は細線化処理の後の注目画素値を決定する画素値算出工程と、
を含むことを特徴とする画像処理方法。
【請求項8】
前記パートナー画素は前記注目画素に隣接する画素であり、
前記決定工程では、注目画素とパートナー画素の位置関係が予め定められたテンプレートを用いて前記対象画像における注目画素とそのパートナー画素を決定することを特徴とする請求項7に記載の画像処理方法。
【請求項9】
前記テンプレートは、細線化処理を施すべき構造又はスムージング処理を施すべき構造を検出するものであって、その構造に応じて前記注目画素及び前記パートナー画素の位置関係が予め定められているものであり、
前記決定工程では、前記テンプレートと前記対象画像とを照合することにより、前記注目画素及びパートナー画素を決定することを特徴とする請求項8に記載の画像処理方法。
【請求項10】
前記テンプレートは、スムージング処理を施すべき構造に応じて、スムージング処理による注目画素及びパートナー画素の画素値の変化量が予め定められているものであり、
前記スムージング算出手段は、前記テンプレートと前記対象画像とを照合し、一致すると当該テンプレートに定められている前記画素値の変化量を、前記スムージング処理による注目画素又はパートナー画素の画素値の変化量として求めることを特徴とする請求項9に記載の画像処理方法。
【請求項11】
前記対象画像の全画素についてその属性を示す属性データを生成する属性判別工程を含み、
前記画素値算出工程では、前記生成された属性データに基づいて、前記注目画素が文字又は線画を構成する画素であるか否かを判別し、当該文字又は線画を構成する場合のみ前記スムージング処理又は前記細線化処理後の画素値を算出することを特徴とする請求項7〜10の何れか一項に記載の画像処理方法。
【請求項12】
前記対象画像における細線構造を検出する細線構造検出工程を含み、
前記画素値算出工程では、前記注目画素が前記検出された細線構造を構成する画素である場合には前記細線化処理の程度を基準値より小さくする、或いは前記細線化処理の対象から除外することを特徴とする請求項7〜11の何れか一項に記載の画像処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2008−85487(P2008−85487A)
【公開日】平成20年4月10日(2008.4.10)
【国際特許分類】
【出願番号】特願2006−261181(P2006−261181)
【出願日】平成18年9月26日(2006.9.26)
【出願人】(303000372)コニカミノルタビジネステクノロジーズ株式会社 (12,802)
【Fターム(参考)】
【公開日】平成20年4月10日(2008.4.10)
【国際特許分類】
【出願日】平成18年9月26日(2006.9.26)
【出願人】(303000372)コニカミノルタビジネステクノロジーズ株式会社 (12,802)
【Fターム(参考)】
[ Back to top ]