画像処理装置及び画像処理方法
【課題】細線化された画素の孤立による画質劣化を防ぐ。
【解決手段】画像処理装置1は、注目画素における細線化の有無、スムージングの有無の組み合わせに応じて、スムージング処理と細線化処理が同時に実現されたときの注目画素の画素値Gを決定するブレンド処理部5と、注目画素及びその周辺画素の細線化処理による画素値の変化量dSTにより、細線化された画素が孤立するか否かを判定し、孤立すると判定された場合、注目画素又は注目画素のエッジ方向又は逆エッジ方向に隣接する周辺画素のうち、細線化された画素の細線化処理による画素値の変化量dSTを0の値にリセットする細線化調整部6とを備える。ブレンド処理部5は、リセットされた細線化処理による画素値の変化量dSTを用いて注目画素の画素値Gを決定する。
【解決手段】画像処理装置1は、注目画素における細線化の有無、スムージングの有無の組み合わせに応じて、スムージング処理と細線化処理が同時に実現されたときの注目画素の画素値Gを決定するブレンド処理部5と、注目画素及びその周辺画素の細線化処理による画素値の変化量dSTにより、細線化された画素が孤立するか否かを判定し、孤立すると判定された場合、注目画素又は注目画素のエッジ方向又は逆エッジ方向に隣接する周辺画素のうち、細線化された画素の細線化処理による画素値の変化量dSTを0の値にリセットする細線化調整部6とを備える。ブレンド処理部5は、リセットされた細線化処理による画素値の変化量dSTを用いて注目画素の画素値Gを決定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置及び画像処理方法に関する。
【背景技術】
【0002】
画像処理の1つとして細線化処理が知られている。細線化処理は文字等のエッジを対象として画素値を減じることにより、文字等の鮮鋭性を向上させる。
エッジを対象とする画像処理にはスムージング処理もある。スムージング処理は文字等の斜線部分のエッジの画素値を増減して中間調とすることにより、斜線部分のエッジを視覚的に滑らかにすることができる。
【0003】
細線化処理とスムージング処理は同じエッジを対象とするが、処理の目的が異なるため、2つの処理を同時に行うことは困難であった。例えば、文字の直線部分で細線化、斜線部分でスムージングが行われると、シャープで滑らかな文字が得られるが、直線部分と斜線部分の構造を検出し、検出された構造によって細線化処理とスムージング処理を切り替えるような方法(例えば、特許文献1参照)ではそのような文字の実現は難しい。これは、直線部分と斜線部分の双方に属する画素があるためであり、本来スムージングではなく細線化が適当であったのにスムージングによって画素値が増加される等、予期しない結果が生じる。
【0004】
これに対し、出願人は細線化処理とスムージング処理を同時に実現する画像処理装置を開発している(例えば、特許文献2参照)。この画像処理装置によれば、スムージング処理と細線化処理の結果が、元の画素値からの変化量として保持される。保持された変化量が元の画素値に加算されたときの画素値が最大値を超えたり、負の値になったりする場合、その超えた分や不足する分が注目画素と所定の位置関係にある隣接画素の画素値によって調整される。細線化処理とスムージング処理の処理結果を、注目画素だけではなくその隣接画素との2画素分で調整することにより、2つの処理結果を無理なく消化できる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平7−334672号公報
【特許文献2】特許第4225337号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
もともと線幅の小さい細線が細線化処理された場合、細線の両側とも細線化されるため、細線がかすれたり消えたりする場合がある。例えば、2画素幅の細線の場合、細線化によって両側から画素値が減じられると、細線自体が消失してしまう。このような細線構造の消失を防ぐため、従来、細線化処理時には細線構造を判定し、細線化の対象から除外することが行われている。
【0007】
しかしながら、このような細線構造の除外が意図しない結果を招くことがある。例えば、画像データが非可逆圧縮された場合、伸張によって完全に元の画像データが復元されるとは限らず、文字等は部分的に画質が劣化する場合がある。例えば、輪郭が滑らかに復元されず、細く尖ることがある。尖った部分は細線化処理時に細線構造と判定され、その部分だけが細線化が無効化される。同じ文字の中で細線化されない部分と細線化される部分があるため、文字の線幅がアンバランスになる。
【0008】
また、水平に近い斜線は長い水平線が階段状に並ぶ構造を有するが、段差部分では一時的に線幅が大きくなるため、水平線は細線化の対象外であるのに段差部分のみ細線化されるという現象が生じる。細線化されない水平線の画素が多数あるのに対し細線化された段差部分はせいぜい1、2画素であるため、細線化された部分が孤立した状態となる。このような孤立した細線化部分を持つ画像に対し、細線化処理とスムージング処理が同時に行われると、当該細線化部分のみ過剰に画素値が減じられ、細線化もスムージングも実現できず、画質が劣化する。
【0009】
本発明の課題は、細線化された画素の孤立による画質劣化を防ぐことである。
【課題を解決するための手段】
【0010】
請求項1に記載の発明によれば、
画像データに細線化処理を施す細線化処理部と、
画像データにスムージング処理を施すスムージング処理部と、
画像データの各画素についてエッジ方向を判定するエッジ方向判定部と、
注目画素、注目画素の周辺画素の各画素値、前記スムージング処理による画素値の変化量、前記細線化処理による画素値の変化量、注目画素について判定された前記エッジ方向を用い、前記注目画素における細線化の有無、スムージングの有無の組み合わせに応じて、前記スムージング処理と前記細線化処理が同時に実現されたときの前記注目画素の画素値を決定するブレンド処理部と、
前記注目画素及びその周辺画素の前記細線化処理による画素値の変化量により、細線化された画素が孤立するか否かを判定し、孤立すると判定された場合、注目画素又は注目画素のエッジ方向又は逆エッジ方向に隣接する周辺画素のうち、細線化された画素の前記細線化処理による画素値の変化量を0の値にリセットする細線化調整部と、を備え、
前記ブレンド処理部は、前記注目画素の画素値の決定に、リセットされた前記細線化処理による画素値の変化量を用いる画像処理装置が提供される。
【0011】
請求項2に記載の発明によれば、
前記細線化調整部は、細線化された画素が注目画素のエッジ方向又は逆エッジ方向に隣接する周辺画素である場合、注目画素が細線化されていることを条件に当該周辺画素の細線化処理による画素値の変化量を0の値にリセットする請求項1に記載の画像処理装置が提供される。
【0012】
請求項3に記載の発明によれば、
前記細線化調整部は、前記ブレンド処理部が前記注目画素の前記細線化処理による画素値の変化量及び前記スムージング処理による画素値の変化量によって、前記注目画素における細線化の有無、スムージングの有無の組み合わせを分類した後、前記リセットを行う請求項1又は2に記載の画像処理装置が提供される。
【0013】
請求項4に記載の発明によれば、
前記細線化調整部による前記リセットを実行するか否かを切り替える制御部を備える請求項1〜3の何れか一項に記載の画像処理装置が提供される。
【0014】
請求項5に記載の発明によれば、
画像データに細線化処理を施す工程と、
画像データにスムージング処理を施す工程と、
画像データの各画素についてエッジ方向を判定する工程と、
注目画素、注目画素の周辺画素の各画素値、前記スムージング処理による画素値の変化量、前記細線化処理による画素値の変化量、注目画素について判定された前記エッジ方向を用い、前記注目画素における細線化の有無、スムージングの有無の組み合わせに応じて、前記スムージング処理と前記細線化処理が同時に実現されたときの前記注目画素の画素値を決定する工程と、
前記注目画素及びその周辺画素の前記細線化処理による画素値の変化量により、細線化された画素が孤立するか否かを判定し、孤立すると判定された場合、注目画素又は注目画素のエッジ方向又は逆エッジ方向に隣接する周辺画素のうち、細線化された画素の前記細線化処理による画素値の変化量を0の値にリセットする工程と、を含み、
前記注目画素の画素値を決定する工程は、リセットされた前記細線化処理による画素値の変化量を用いて前記注目画素の画素値を決定する画像処理方法が提供される。
【発明の効果】
【0015】
本発明によれば、細線化処理とスムージング処理が同時に実現されたときの画素値の決定時、孤立する細線化された画素の細線化を無効化することができる。細線化の無効化により、当該細線化によって生じる画質の劣化を防ぐことができる。
【図面の簡単な説明】
【0016】
【図1】本実施の形態に係る画像処理装置の構成図である。
【図2】7×7画素の領域を示す図である。
【図3】スムージング処理部の構成図である。
【図4】スムージングすべきエッジのパターン検出に用いられるテンプレートの一例である。
【図5】細線化処理部の構成図である。
【図6】エッジ方向の判定例である。
【図7】エッジ方向の判定例である。
【図8】エッジ方向の判定例である。
【図9】ブレンド処理部の構成図である。
【図10】分類部が行う処理のフローチャートである。
【図11】ケース1の場合に画素値決定部が行う処理のフローチャートである。
【図12】(a)、(b)はケース1の場合に想定される注目画素と周辺画素の位置関係を示す図である。
【図13】ケース2の場合に画素値決定部が行う処理のフローチャートである。
【図14】(a)、(b)はケース2の場合に想定される注目画素と周辺画素の位置関係を示す図である。
【図15】ケース3の場合に画素値決定部が行う処理のフローチャートである。
【図16】(a)、(b)はケース3の場合に想定される注目画素と周辺画素の位置関係を示す図である。
【図17】ケース4の場合に画素値決定部が行う処理のフローチャートである。
【図18】(a)、(b)はケース4の場合に想定される注目画素と周辺画素の位置関係を示す図である。
【図19】(a)ブレンド処理部が行う処理のイメージ図である。(b)ブレンド処理部の処理結果を示す図である。
【図20】(a)元の画像を示す図である。(b)細線化処理とスムージング処理を同時に行ったときの目標画像を示す図である。(c)元の画像にスムージング処理のみ行った処理結果を示す図である。(d)元の画像に細線化処理のみ行った処理結果を示す図である。(e)画像の構造によってスムージング処理と細線化処理を切り替えた場合の処理結果を示す図である。(f)スムージング処理において画素値を小さく調整した場合の処理結果を示す図である。
【図21】細線化調整部が行う処理のフローチャートである。
【図22】(a)元の画像である。(b)元の画像のスムージング処理後の画像である。(c)元の画像の細線化処理後の画像である。(d)元の画像に対し細線化処理とスムージング処理が同時に実現された画像である。(e)孤立する細線化された画素の細線化を無効化した場合の細線化処理後の画像である。(f)細線化を無効化したうえで、元の画像に対し細線化処理とスムージング処理が同時に実現された画像である。
【発明を実施するための形態】
【0017】
以下、図面を参照して本発明の実施の形態について説明する。
【0018】
図1は、本実施の形態に係る画像処理装置1の構成を示す。
画像処理装置1は、図1に示すようにスムージング処理部2、細線化処理部3、エッジ方向判定部4、ブレンド処理部5を備える。
画像処理装置1は副走査方向に0〜8ライン目までの合計9画素分のラインメモリーを備え、画像データは1クロック毎に主走査方向に1画素ずつシフトしながらこのラインメモリーに入力され保持される。画像データは8bitであり、画素値の値域が0〜255である。カラー画像の場合、Y(イエロー)、M(マジェンタ)、C(シアン)、K(黒)の4色からなる画像データが入力される。
【0019】
スムージング処理部2は、画像データの各画素にスムージング処理を施す。スムージング処理はアンチエイリアス処理とも呼ばれる。
スムージング処理は7×7画素単位で行われる。スムージング処理部2は、ラインメモリーから7ライン分の画像データを7クロック分、つまり主走査方向に7画素分保持して7×7画素を得る。
【0020】
スムージング処理部2は3つ設けられ、上段のスムージング処理部2には0〜6ライン目、中段のスムージング処理部2には1〜7ライン目、下段のスムージング処理部2には2〜8ライン目の画像データがそれぞれ入力される。
図2は中段のスムージング処理部2に入力された7×7画素の領域を示す。図2において各画素には画素位置を示す識別番号01〜49が付されている。
【0021】
各スムージング処理部2は7×7画素の中心に位置する画素にスムージング処理を施し、スムージング処理による画素値の変化量dSMTを算出して出力する。つまり、1クロック毎に1×7画素の画素値が各スムージング処理部2に入力され、1×3画素(識別番号18、25、32の画素)の画素値の変化量dSMTが出力される。
【0022】
各スムージング処理部2は、図3に示すように、エッジ判定部21、テンプレート判定部22、テンプレート選択部23、画素値算出部24を備える。
各スムージング処理部2は処理する画素の位置が異なるが、処理内容は同じであるので、識別番号25の注目画素をスムージング処理する中段のスムージング処理部2を代表としてスムージング処理を説明する。
【0023】
エッジ判定部21は、7×7画素に含まれるエッジの有無を判定する。スムージング処理によってスムージングされる対象、つまり画素値が変更される画素は、文字や線画のエッジだからである。
エッジ判定部21は隣接する2つの画素間で画素値の差分を算出し、差分が閾値th1以上であれば、2つの画素間にエッジが有ると判定する。差分が閾値th1未満であれば、エッジ判定部21は2つの画素間にエッジが無いと判定する。th1はエッジ判定用に予め定められた閾値である。差分は絶対値で算出され、差分が算出される2つの画素は所定の位置関係で隣接する画素である。
【0024】
下記は差分が算出される2つの画素A、Bの組み合わせであり、組み合わせは画素Aの識別番号−画素Bの識別番号で示される。
03−10、04−11、05−12、10−17、10−18、11−17、11−18、11−19、12−18、12−19、15−16、16−17、16−24、17−18、17−23、17−24、18−19、18−24、18−25、18−26、19−20、19−26、19−27、20−21、20−26、22−23、23−24、23−31、24−25、24−30、24−31、24−32、25−26、25−32、26−27、26−32、26−33、26−34、27−28、27−33、29−30、30−31、31−32、31−38、31−39、32−33、32−38、32−39、32−40、33−34、33−39、33−40、34−35、38−45、39−46、40−47
【0025】
エッジ判定部21はエッジが有ると判定した場合はV[AB]=1を出力し、エッジが無いと判定した場合はV[AB]=0を出力する。V[AB]において、A、Bは差分の算出に用いられた2つの画素を示し、各画素A、Bの識別番号01〜49の値が入力される。例えば、識別番号03の画素Aと識別番号10の画素Bの差分より、画素Aと画素B間にエッジが有ると判定された場合、V[0310]=1が出力される。
【0026】
なお、画素A、Bの組み合わせは全部で56であり、演算回路としては1クロックで計56の減算結果が得られなければならないが、演算回路の最適化によって減算の数を減らすことができる。演算回路は1クロック毎に注目画素の演算結果を出力するが、1クロック毎に注目画素は1画素右へ移動していく。そのため、現クロックで減算された画素A、Bは次クロックで画素A−1、B−1になる。このとき、現クロックにおいて用いられた減算結果V[AB]は次クロックにおいてはV[(A−1)(B−1)]の値と同じになる。さらに1クロックが経過すると、この減算結果V[(A−1)(B−1)]はV[(A−2)(B−2)]と同じ値となる。このような特性を利用すれば、減算結果を6クロック分保持することによって同じラインの減算結果として保持された減算結果を流用することが可能である。
【0027】
以下は、ある減算結果が次のクロック又はそれ以降のクロックで1つ左に記された減算結果として流用できることを示す。これによれば、1つの減算結果が6クロック分保持されることで最大6つの減算結果として流用することができる。このような流用を行う回路構成にすることにより、56回必要だった減算は実質17回にまで削減することが可能である。
V[0310]←V[0411]←V[0512]
V[1017]←V[1118]←V[1219]
V[1018]←V[1119]
V[1117]←V[1218]
V[1516]←V[1617]←V[1718]←V[1819]←V[1920]←V[2021]
V[1624]←V[1826]←V[1927]
V[1723]←V[1824]←V[2026]
V[1724]←V[1825]←V[1926]
V[2223]←V[2324]←V[2425]←V[2526]←V[2627]←V[2728]
V[2331]←V[2432]←V[2634]
V[2430]←V[2632]←V[2733]
V[2431]←V[2532]←V[2633]
V[2930]←V[3031]←V[3132] ←V[3233]←V[3334]←V[3435]
V[3138]←V[3239]←V[3340]
V[3139]←V[3240]
V[3238]←V[3339] V[3845]←V[3946]←V[4047]
【0028】
テンプレート判定部22は、エッジ判定部21から出力されたV[AB]とテンプレートを照合し、一致するテンプレートを判定する。テンプレートは、スムージングすべきエッジのパターンを検出できるように設計されている。
図4は一例としてのテンプレートである。図4において()内の数字は、各テンプレートに付された識別番号である。
【0029】
図4に示すように、テンプレート上の画素はa、b、cの3つに分類される。テンプレート判定部22は、テンプレート上で分類aに該当する画素間のV[AB]=0、分類bに該当する画素間のV[AB]=0、分類aに該当する画素と分類bに該当する画素間のV[AB]=1を満たすとき、当該テンプレートと一致したと判定する。分類cの画素はエッジの有無が問われない。テンプレートは1つだけでなく、複数一致する場合があり、テンプレート判定部22は全テンプレートと照合し、一致するテンプレートを全て検出する。
【0030】
例えば、V[1824]=0、V[2632]=0、V[1826]=1、V[1819]=0、V[3132]=0の全てが満たされる場合、テンプレート判定部22は識別番号21のテンプレートに一致したと判定する。さらに、V [2324]=0、V[3031]=0、V[1920]=0、V [2627]=0の全てが満たされる場合、テンプレート判定部22は識別番号21だけでなく、識別番号213のテンプレートにも一致したと判定する。
【0031】
テンプレート選択部23は、テンプレート判定部22のテンプレートの照合により、1又は複数一致したテンプレートの中から1つのテンプレートを選択する。図4に示すテンプレートには優先順位が定められている。この優先順位に従い、テンプレート選択部23は、一致したテンプレートのうち、最も優先順位の高いテンプレートを選択する。テンプレートの優先順位は、識別番号24、23、22、21、233、213、243、223、252、251、254、253、262、261、264、263の順に高い。
【0032】
画素値算出部24は、テンプレート選択部23により選択されたテンプレートに定められた分類a、bに該当する画素の画素値を用いて、スムージング処理による注目画素の画素値の変化量dSMTを算出し、出力する。
【0033】
dSMTの算出式は以下の通りである。算出式において、Cは[]内の識別番号で示される各画素の画素値である。注目画素の画素値はC[25]で示される。
選択されたテンプレートの識別番号が21、22、23、24のとき、
dSMT=(C[18]+C[25]+C[32])/3−C[25]
選択されたテンプレートの識別番号が213、233のとき、
dSMT=(C[18]×2+C[25]+C[32]×2)/5−C[25]
選択されたテンプレートの識別番号が223、243のとき、
dSMT=(C[24]×2+C[25]+C[26]×2)/5−C[25]
【0034】
選択されたテンプレートの識別番号が251、252のとき、
dSMT=(C[25]×4+C[32])/5−C[25]
選択されたテンプレートの識別番号が253、254のとき、
dSMT=(C[25]×4+C[18])/5−C[25]
選択されたテンプレートの識別番号が261、262のとき、
dSMT=(C[25]×4+C[26])/5−C[25]
選択されたテンプレートの識別番号が263、264のとき、
dSMT=(C[25]×4+C[24])/5−C[25]
【0035】
得られた変化量dSMTを注目画素の画素値に加えることにより、スムージング処理後の注目画素の画素値が得られる。このようなスムージング処理によれば、隣接する2画素間の画素値の差分が略同じ値か異なる値かによって、スムージングすべきエッジに該当する注目画素を検出できる。検出された注目画素の画素値は、注目画素とその周辺画素の画素値を重み付けした平均値に変換されるので、前景や背景の画素値が中間調を含むどのような値であってもスムージング処理することが可能である。
【0036】
細線化処理部3は、画像データの各画素に細線化処理を施す。
細線化処理は3×3画素単位で行われる。細線化処理部3は、ラインメモリーから3ライン分の画像データを3クロック分入力し、3×3画素を得る。細線化処理部3は3つ設けられ、上段の細線化処理部3には2〜4ライン目、中段の細線化処理部3には3〜5ライン目、下段の細線化処理部3には4〜6ライン目の画像データが入力される。各細線化処理部3は3×3画素の中心に位置する画素に細線化処理を施し、細線化処理による画素値の変化量dSTを算出して出力する。つまり、1クロック毎に1×3画素の画素値が各細線化処理部3に入力され、1×3画素(識別番号18、25、32の画素)の画素値の変化量dSTが出力される。
【0037】
各細線化処理部3は、図5に示すように、エッジ強度算出部31、エッジ判定部32、細線化判定部33、画素値算出部34を備える。
各細線化処理部3は処理する画素の位置が異なるが、処理内容は同じであるので、識別番号25の注目画素を処理する中段の細線化処理部3を代表として細線化処理を説明する。
【0038】
エッジ強度算出部31は、注目画素におけるエッジ強度を求める。エッジ強度算出部31は、注目画素とその周辺画素との差E0〜E7を算出し、そのうちの最大値PEDを求める。E0〜E7の算出式は以下の通りである。Cは[]内の識別番号で示される各画素の画素値である。
E0=C[25]−C[17]
E1=C[25]−C[18]
E2=C[25]−C[19]
E3=C[25]−C[24]
E4=C[25]−C[26]
E5=C[25]−C[31]
E6=C[25]−C[32]
E7=C[25]−C[33]
【0039】
エッジ強度算出部31は、E0〜E7の符号を反転させ、そのうちの最大値REDを求める。細線化処理部3は、PED<REDであれば、PED=0、RED<PEDであれば、RED=0に修正する。
以上のようにして求めたE0〜E7、PED、REDがエッジ強度である。
【0040】
エッジ判定部32は、カラー画像の場合、各色の画像データから求められたPED、REDによって、下記式によりTPED、TREDを求める。[]内のyはイエロー、mはマジェンタ、cはシアン、kは黒の色の画像データから求められたエッジ強度であることを示す。
TPED=
(PED[y]×Wy+PED[m] ×Wm+PED[c] ×Wc+ PED[k] ×Wk)
TRED=
(RED[y]×Wy+RED[m] ×Wm+RED[c] ×Wc+ RED[k] ×Wk)
上記式において、Wy、Wm、Wc、Wkは予め定められた係数であり、Wy+Wm+Wc+Wk≦255である。
モノクロ画像であれば、TPED=PED[k] ×Wk、TRED=RED[k] ×Wkである。
【0041】
TPED、TREDは、各色のエッジ強度PED、REDを、比視感度に相当する係数Wy、Wm、Wc、Wkで重み付けし足し合わせた値であり、各色を重ね合わせたときの視覚的な濃度の指標となり得る。細線化の対象は前景のエッジであるので、エッジ判定部32は、TPED、TREDの大小関係を判定することによって注目画素とその周辺画素のどちらが前景でどちらが背景かを判定する。エッジ判定部32は、TPED>TREDであれば、注目画素が背景より濃度が高い前景のエッジであると判定し、ED=1を出力する。一方、TPED≦TREDであれば、エッジ判定部32は注目画素は前景のエッジではないと判定し、ED=0を出力する。
【0042】
細線化判定部33は、前景のエッジと判定された注目画素が細線化の対象となり得るか否かを判定する。エッジではあるが、細線化つまり画素値を減じるのに十分な画素値を注目画素が持たない場合、画素値を減じることによって画素値が非常に小さくなるか、或いは無くなって画像に途切れが生じるため、細線化の対象外とする必要がある。細線化判定部33は、注目画素の各色の画素値C[25]をそれぞれ閾値Th2と比較し、何れかの色において画素値C[25]が閾値Th2以上であれば、細線化に十分な画素値を持つと判定し、SS=1を出力する。一方、全ての色において注目画素の画素値C[25]が閾値Th2未満であれば、細線化判定部33は注目画素が細線化に十分な画素値を持たないので細線化の対象外であると判定し、SS=0を出力する。
【0043】
画素値算出部34は、細線化処理による注目画素の画素値の変化量dSTを算出して出力する。ED=1かつSS=1である場合、注目画素はエッジであり、細線化に十分な画素値を持つので、画素値算出部34は注目画素を細線化し、下記式によって画素値の変化量dSTを算出する。変化量dSTは色毎に求められたPED、REDを用いて、色毎に求められる。
dST=(PED−RED)×STVL
上記STVLは細線化の強度を調整する係数であり、色毎に予め定められている。STVLは0〜1の値域をとり得る。
【0044】
得られた変化量dSTを元の画素値に加えることによって細線化処理後の画素値が得られる。dSTの算出式から分かるように、細線化処理には、dSTが負の値となって注目画素の画素値が減じられ、文字通り細線化される場合だけでなく、dSTが正の値となって画素値が増加され、太線化される場合もある。
【0045】
ED=1かつSS=1ではない場合、注目画素がエッジではない、或いはエッジであるが細線化に十分な画素値を持たないので、画素値算出部34は注目画素の細線化は行わず、画素値の変化量dST=0を出力する。
【0046】
エッジ方向判定部4は、画像データの各画素におけるエッジ方向を判定する。
エッジ方向の判定は5×5画素単位で行われる。エッジ方向判定部4は、ラインメモリーから2〜6ライン目の画像データを5クロック分入力し、ブレンド処理部5における注目画素を中心とする5×5画素を得る。エッジ方向判定部4は、入力された5×5画素の中心に位置する注目画素を対象としてエッジ方向posを判定し、出力する。つまり、1クロック毎に1×5画素の画素値がエッジ方向判定部4に入力され、1画素分のエッジ方向posが出力される。エッジ方向とは画素値が小さい画素から大きい画素へ向かう方向である。注目画素が前景又は背景のエッジであれば、背景から前景への方向がエッジ方向として判定される。
【0047】
エッジ方向判定部4は、注目画素(識別番号25の画素)と注目画素に隣接する8つの周辺画素(識別番号17、18、19、24、26、31、32、33の画素)との差分SP、注目画素(識別番号25の画素)と注目画素の上下左右において注目画素から2画素離れた周辺画素(識別番号11、23、27、39の画素)との差分SFをそれぞれ算出する。
【0048】
算出式は以下の通りである。Cは[]内の識別番号で示される各画素の画素値である。
SP[u]=C[25]−C[18]
SP[l]=C[25]−C[24]
SP[r]=C[25]−C[26]
SP[d]=C[25]−C[32]
SF[u]=C[25]−C[11]
SF[l]=C[25]−C[23]
SF[r]=C[25]−C[27]
SF[d]=C[25]−C[39]
【0049】
エッジ方向判定部4は、注目画素の主走査方向におけるエッジ方向x、副走査方向におけるエッジ方向yをそれぞれ判定する。x、yは0又は±1の値をとり得る。0はエッジが無いことを示し、1はエッジがあることを示す。正負の符号は方向に対応する。
【0050】
例えば、SP[l]<SP[r]であれば、図6に示すように注目画素の左右のうち右側の周辺画素の画素値が小さい。よって、エッジ方向判定部4は主走査方向におけるエッジ方向を左と判定し、x=−1を出力する。一方、SP[l]>SP[r]であれば、図7に示すように注目画素の左右のうち左側の画素値が小さい。よって、エッジ方向判定部4は主走査方向におけるエッジ方向を右と判定し、x=+1を出力する。
同様に、SP[u]とSP[d]の比較によって副走査方向のエッジ方向が判定される。SP[u]>SP[d]であれば、エッジ方向判定部4は副走査方向におけるエッジ方向を下と判定し、y=−1を出力する。SP[u]<SP[d]であれば、エッジ方向判定部4は副走査方向におけるエッジ方向を上と判定し、y=+1を出力する。
【0051】
SP[l]=SP[r]の場合、注目画素の左右で画素値の差が無い。SP[u]=SP[d]の場合も同様に、注目画素の上下で画素値の差が無い。この場合、エッジ方向判定部4は注目画素の左右又は上下でエッジは無いと判定し、x=0、y=0をそれぞれ出力する。
【0052】
エッジ方向判定部4は、注目画素がエッジではないが、エッジから1画素内側の内エッジである場合にも、そのエッジ方向を判定する。
注目画素が内エッジである場合、エッジ方向はx=y=0である。よって、エッジ方向判定部4は、エッジ方向がx=y=0である場合、注目画素から2画素離れた周辺画素から求められたSF[l]、SF[r]、SF[u]、SF[d]により、エッジ方向x、yを修正する。
【0053】
エッジ方向判定部4は、SF[l]<SF[r]であれば、x=0をx=−1に修正し、SF[l]>SF[r]であれば、x=+1に修正する。同様に、エッジ方向判定部4は、SF[u]>SF[d]であれば、y=0をy=−1に修正し、SF[u]<SF[d]であれば、y=+1に修正する。SF[l]=SF[r]であれば修正は行わず、エッジ方向判定部4はx=0をそのまま出力する。SF[u]=SF[d]の場合も修正は行わず、エッジ方向判定部4はy=0をそのまま出力する。
【0054】
例えば、図8に示すように注目画素から2画素離れた右側の周辺画素がエッジであり、注目画素が内エッジである場合、SP[l]=SP[r]であるから、x=0と判定される。しかし、SF[l]<SF[r]であるから、x=0はx=−1に修正される。
【0055】
エッジ方向判定部4は、主走査方向のエッジ方向x及び副走査方向のエッジ方向yの組み合わせによって、総合的なエッジ方向posを判定し、出力する。posは0〜4の値をとり得る。0は中央(エッジ無し)、1は左方向、2は右方向、3は上方向、4は下方向を示す。x、yの組み合わせに対するエッジ方向posは、以下の通りである。
【0056】
x=1かつy=−1のとき、pos=4
x=1かつy=0のとき、pos=2
x=1かつy=+1のとき、pos=2
x=0かつy=−1のとき、pos=4
x=0かつy=0のとき、pos=0
x=0かつy=+1のとき、pos=3
x=−1かつy=−1のとき、pos=1
x=−1かつy=0のとき、pos=1
x=−1かつy=+1のとき、pos=3
【0057】
ブレンド処理部5は、細線化処理とスムージング処理が同時に実現されたときの各画素の画素値を決定する。
ブレンド処理部5は、ラインメモリーの2〜6ライン目の画像データを5クロック分入力し、識別番号25の注目画素を中心とする5×5画素を得る。また、ブレンド処理部5は、スムージング処理部2及び細線化処理部3から出力される1×3画素の処理結果(変化量dSMT、dST)を主走査方向に3画素シフトして、識別番号25の注目画素を中心とする3×3画素分の処理結果を入力する。また、ブレンド処理部5はエッジ方向判定部4から注目画素のエッジ方向posを入力する。ブレンド処理部5は、注目画素における細線化の有無、スムージングの有無の組み合わせに応じて、注目画素において細線化とスムージングの双方が同時に実現されたときの画素値Gを決定する。画素値Gの決定には、注目画素、注目画素の上下左右に隣接する周辺画素、注目画素の上下左右において注目画素から2画素離れた周辺画素の各画素値C、注目画素と注目画素の上下左右に隣接する周辺画素の画素値の変化量dST、dSMT、注目画素におけるエッジ方向posが用いられる。
【0058】
ブレンド処理部5は、図9に示すように、分類部50、画素値決定部51〜54を備える。
分類部50は、注目画素における細線化の有無、スムージングの有無の組み合わせによって、注目画素における細線化とスムージングの状態をケース1〜ケース4に分類する。細線化の有無、スムージングの有無は変化量dST、dSMTの値が0か否かによって判定することができる。分類部50は、注目画素について細線化処理部3から入力される変化量dST[25]がdST[25]≠0であれば、細線化処理の結果、注目画素において細線化が行われ、dST[25]=0であれば細線化が行われなかったと判定する。同様に、分類部50は注目画素についてスムージング処理部2から入力される変化量dSMT[25]がdSMT[25]≠0であればスムージングが行われ、dSMT[25]=0であればスムージングが行われなかったと判定する。
【0059】
図10は、分類部50による処理の流れを示すフローチャートである。
図10に示すように、分類部50は注目画素の変化量dST[25]≠0、dSMT[25]≠0のとき(ステップS11;Y)、ケース1に分類する(ステップS12)。注目画素の変化量dST[25]≠0、dSMT[25]=0のとき(ステップS11;N、S13;Y)、分類部50はケース2に分類する(ステップS14)。注目画素の変化量dST[25]=0、dSMT[25]≠0のとき(ステップS13;N、S15;Y)、分類部50はケース3に分類する(ステップS16)。注目画素の変化量dST[25]=0、dSMT[25]=0のとき(ステップS15;N、S17;Y)、分類部50はケース4に分類する(ステップS18)。
【0060】
分類部50は、ケース1に分類された場合は画素値決定部51に、ケース2に分類された場合は画素値決定部52に、ケース3に分類された場合は画素値決定部53に、ケース4に分類された場合は画素値決定部54に、変化量dST、dSMT、画素値C、エッジ方向posを出力する。
【0061】
画素値決定部51〜54は、それぞれのケース1〜4に応じて細線化処理及びスムージング処理の双方を同時に実現したときの注目画素の画素値G[25]を決定する。
【0062】
〈ケース1〉
図11は、ケース1に対し、画素値決定部51が実行する処理のフローチャートである。
ケース1において注目画素は細線化もスムージングも行われているので、図12(a)に示すような前景のエッジであるか、或いは図12(b)に示すような背景のエッジであることが想定される。前景のエッジである場合、図12(a)に示すように注目画素Mの変化量dST、dSMTは何れも負の値であり、細線化処理、スムージング処理のそれぞれによって画素値が減じられる。背景のエッジである場合、図12(b)に示すように注目画素Mの変化量dST、dSMTは何れも正の値であり、細線化処理、スムージング処理のそれぞれによって画素値が増加される。
【0063】
何れの場合も、注目画素Mは細線化及びスムージングされ、注目画素Mのエッジ方向pos又はエッジ方向の逆方向である逆エッジ方向aposに隣接する周辺画素Nは細線化もスムージングもされていない。よって、画素値決定部51は、図11に示すように注目画素の元の画素値C[25]に、変化量dST[25]、dSMT[25]を加えた値を、細線化処理とスムージング処理を同時に実現させたときの注目画素の画素値G[25]として決定し、出力する(ステップS21)。
【0064】
決定された注目画素の画素値G[25]は、前景の画素値と背景の画素値の間になければ、前景と背景の境界で注目画素の濃度が突出し、不自然である。よって、注目画素の画素値G[25]が、前景つまり注目画素のエッジ方向に隣接する周辺画素の画素値C[pos]より大きいとき(ステップS22;Y)、画素値決定部51は決定された注目画素の画素値G[25]を前景の画素値C[pos]に修正する(ステップS23)。また、注目画素の画素値G[25]が、背景つまり注目画素の逆エッジ方向に隣接する周辺画素の画素値C[apos]より小さいとき(ステップS22;Y)、画素値決定部51は決定された注目画素の画素値G[25]を背景の画素値C[apos]に修正する(ステップS23)。aposはエッジ方向posと逆方向の値が設定される。つまり、pos=1であればapos=2、pos=3であればapos=4である。エッジ方向が無い場合、pos=apos=0である。
【0065】
〈ケース2〉
図13は、ケース2に対し、画素値決定部52が実行する処理のフローチャートである。
ケース2において注目画素は細線化のみ行われているので、図14(a)に示すような前景のエッジであるか、図14(b)に示すような背景のエッジであると想定される。前景のエッジである場合、図14(a)に示すように注目画素Mの変化量dSTは負の値であり、細線化処理によって画素値が減じられる。注目画素Mに逆エッジ方向aposに隣接する周辺画素Nの変化量dSMTは正の値であり、スムージング処理によって画素値が増加される。背景のエッジである場合、図14(b)に示すように注目画素Mの変化量dSTは正の値であり、細線化処理によって画素値が増加される。注目画素Mにエッジ方向posに隣接する周辺画素Nの変化量dSMTは負の値であり、スムージング処理によって画素値が減じられる。
【0066】
このように、細線化された注目画素のエッジ方向pos又は逆エッジ方向aposに、細線化されず、スムージングされた周辺画素が隣接する場合、画素値決定部52は注目画素とともに当該周辺画素の細線化処理とスムージング処理が同時に実現されたときの画素値を決定する。
【0067】
注目画素は細線化のみされているので、画素値決定部52は、図13に示すように、注目画素の元の画素値C[25]に細線化処理による注目画素の画素値の変化量dST[25]を加えた値を、細線化処理とスムージング処理が同時に実現されたときの注目画素の画素値G[25]として一時的に決定する(ステップS31)。次に、画素値決定部52は、スムージングされた周辺画素がエッジ方向posと逆エッジ方向aposの何れに隣接するかを判定する。
【0068】
画素値決定部52は、エッジ方向pos、エッジ方向posにおいて注目画素に隣接する周辺画素について入力された変化量dST[pos]、dSMT[pos]が、pos≠0、dST[pos]=0、dSMT[pos]≠0を満たす場合(ステップS32;Y)、スムージングされた周辺画素が注目画素のエッジ方向posに隣接すると判定する(ステップS33)。
【0069】
画素値決定部52は、逆エッジ方向apos、逆エッジ方向aposにおいて注目画素に隣接する周辺画素について入力された変化量dST[apos]、dSMT[apos]が、apos≠0、dST[apos]=0、dSMT[apos]≠0を満たす場合(ステップS32;N、S34;Y)、スムージングされた周辺画素が背景、つまり注目画素の逆エッジ方向aposに隣接すると判定する(ステップS35)。
何れの条件も満たさない場合(ステップS34;N)、画素値決定部52は、スムージングされた周辺画素がエッジ方向posにも逆エッジ方向aposにも隣接しないと判定し、ステップS31で決定された注目画素の画素値G[25]を出力する。
【0070】
スムージングされた周辺画素が隣接する方向が特定されると、画素値決定部52は注目画素の元の画素値C[25]に、細線化処理による注目画素の画素値の変化量dST[25]、スムージング処理による当該周辺画素の画素値の変化量dSMT[P]を加えた値を、注目画素の画素値G[25]として決定する(ステップS36)。Pはpos又はaposが入力される。dSMT[P]は、スムージングされた周辺画素がエッジ方向posに隣接するのであれば、dSMT[pos]が用いられ、逆エッジ方向aposに隣接するのであれば、dSMT[apos]が用いられる。
【0071】
その後、注目画素の画素値G[25]を前景と背景の画素値によって修正する点は、ケース1と同じである。よって、図11と同じ処理のステップには図13においても同じステップ番号を付して説明を省略する。
【0072】
〈ケース3〉
図15は、ケース3に対し、画素値決定部53が実行する処理のフローチャートである。
ケース3において注目画素はスムージングのみ行われているので、注目画素は図16(a)に示すような背景のエッジであるか、或いは図16(b)に示すような前景のエッジであることが想定される。背景のエッジである場合、図16(a)に示すように注目画素Mの変化量dSMTは正の値であり、スムージング処理によって画素値が増加される。注目画素Mにエッジ方向posに隣接する周辺画素Nの変化量dSTは負の値であり、細線化処理によって画素値が減じられる。前景のエッジである場合、図16(b)に示すように注目画素Mの変化量dSMTは負の値であり、スムージング処理によって画素値が減じられる。注目画素Mに逆エッジ方向aposに隣接する周辺画素Nの変化量dSTは正の値であり、細線化処理によって画素値が増加される。
【0073】
このように、スムージングされた注目画素のエッジ方向pos又は逆エッジ方向aposに、細線化された周辺画素が隣接する場合、画素値決定部53は、注目画素とともに当該周辺画素の細線化処理とスムージング処理が同時に実現されたときの画素値G[P]を決定する。
【0074】
注目画素はスムージングのみされているので、画素値決定部53は、図15に示すように注目画素の元の画素値C[25]にスムージング処理による注目画素の変化量dSMT[25]を加えた値を、細線化処理とスムージング処理が同時に実現されたときの注目画素の画素値G[25]として一時的に決定する(ステップS41)。次に、画素値決定部53は、細線化された周辺画素がエッジ方向posと逆エッジ方向aposの何れの方向に隣接するかを判定する。
【0075】
画素値決定部53は、エッジ方向pos、エッジ方向posにおいて注目画素に隣接する周辺画素について入力された変化量dST[pos]、dSMT[pos]が、pos≠0、dST[pos]≠0、dSMT[pos]=0を満たす場合(ステップS42;Y)、細線化された周辺画素が注目画素のエッジ方向posに隣接すると判定する(ステップS43)。
【0076】
画素値決定部53は、逆エッジ方向apos、逆エッジ方向aposにおいて注目画素に隣接する周辺画素について入力された変化量dST[apos]、dSMT[apos]が、apos≠0、dST[apos]≠0、dSMT[apos]=0を満たす場合(ステップS42;N、S44;Y)、細線化された周辺画素が注目画素の逆エッジ方向aposに隣接すると判定する(ステップS45)。
何れの条件も満たさない場合(ステップS44;N)、画素値決定部53は、細線化された周辺画素がエッジ方向posにも逆エッジ方向aposにも隣接しないと判定し、ステップS41で決定された注目画素の画素値G[25]を出力する。
【0077】
細線化された周辺画素が隣接する方向が特定されると、画素値決定部53は注目画素の画素値C[25]と、細線化された周辺画素の画素値C[P]のうち、大きい方をL、小さい方をSに入力し(ステップS46)、下記式によりtempを算出する(ステップS47)。
temp=L+S+dST[P]+dSMT[25]
Pはpos又はaposが入力される。C[P]、 dST[P]は、細線化された周辺画素がエッジ方向posに隣接するのであればC[pos]、dST[pos]であり、逆エッジ方向に隣接するのであればC[apos]、dST[apos]である。
【0078】
tempは、スムージングされた注目画素の画素値と細線化された周辺画素の画素値を足し合わせた総和である。画素値決定部53は、このtempを注目画素と周辺画素に配分する。
【0079】
スムージング処理による注目画素の画素値の変化量dSMT[25]と、細線化処理による周辺画素の画素値の変化量dST[P]の合計が正の値である場合、注目画素のスムージングと周辺画素の細線化によって、この2つの画素の画素値の総和tempが元の画素値の合計L+Sより大きくなる。この場合、画素値決定部53は、元の画素値が大きい方の画素に画素値Lを割り当て、他方の画素値に残りの画素値temp−Lを割り当てる。なお、総和tempがLの2倍より大きければ、注目画素も周辺画素も画素値はL以上となり、前景にも背景にもなじまない。この場合、画素値決定部53は何れに対しても最大限許容されるLの値を割り当てる。
【0080】
図15に示すように、temp>L+Sを満たし(ステップS48;Y)、temp<L×2を満たす場合(ステップS49;Y)、画素値決定部53は注目画素の元の画素値C[25]が周辺画素の元の画素値C[P]より大きければ、注目画素の画素値G[25]=L、周辺画素の画素値G[P]=temp−Lに決定する。注目画素の元の画素値C[25]が周辺画素の元の画素値C[P]より小さければ、画素値決定部53は注目画素の画素値G[25]=temp−L、周辺画素の画素値G[P]=Lに決定する(ステップS50)。
temp>L+Sを満たすが(ステップS48;Y)、temp<L×2を満たさない場合(ステップS49;N)、注目画素の画素値G[25]=L、周辺画素の画素値G[P]=Lに決定する(ステップS51)。
【0081】
一方、スムージング処理による注目画素の画素値の変化量dSMT[25]と、細線化処理による周辺画素の画素値の変化量dST[P]の合計が負の値である場合、注目画素のスムージングと周辺画素の細線化によって、この2つの画素の画素値の総和tempが元の画素値の合計L+Sより小さくなる。この場合、画素値決定部53は、元の画素値が小さい方の画素に画素値Sを割り当て、他方の画素に残りの画素値temp−Sを割り当てる。なお、総和tempがSの2倍より小さければ、注目画素も周辺画素も画素値はS以下となり、前景にも背景にもなじまない。この場合、画素値決定部53は何れに対しても最大限許容されるSの値を割り当てる。
【0082】
図15に示すように、temp>L+Sを満たさず(ステップS48;N)、temp>S×2を満たす場合(ステップS52;Y)、注目画素の元の画素値C[25]が周辺画素の元の画素値C[P]より大きければ、画素値決定部53は注目画素の画素値G[25]=temp−S、周辺画素の画素値G[P]=Sに決定する。注目画素の元の画素値C[25]が周辺画素の元の画素値C[P]より小さければ、画素値決定部53は注目画素の画素値G[25]=S、周辺画素の画素値G[P]=temp−Sに決定する(ステップS53)。
temp>L+Sを満たさず(ステップS48;N)、temp>S×2も満たさない場合(ステップS52;N)、画素値決定部53は注目画素の画素値G[25]=S、周辺画素の画素値G[P]=Sに決定する(ステップS54)。
【0083】
〈ケース4〉
図17は、ケース4に対し、画素値決定部54が実行する処理のフローチャートである。
ケース4において注目画素は細線化もスムージングも行われていないので、注目画素は図18(a)に示すような前景の内エッジであるか、図18(b)に示すような背景の内エッジであることが想定される。前景の内エッジである場合、図18(a)に示すように注目画素Mは細線化もスムージングもされないが、注目画素Mに逆エッジ方向aposに隣接する周辺画素Nの変化量dST、dSMTはそれぞれ負の値であるので、細線化処理及びスムージング処理によって画素値が減じられる。背景の内エッジである場合、図18(b)に示すように注目画素Mは細線化もスムージングもされないが、注目画素Mにエッジ方向に隣接する周辺画素Nの変化量dST、dSMTはそれぞれ正の値であるので、細線化処理及びスムージング処理によって画素値が増加される。
【0084】
このように、エッジ方向pos又は逆エッジ方向aposにおいて細線化もスムージングもされた周辺画素が注目画素に隣接する場合、画素値決定部54は、注目画素とともに当該周辺画素の細線化処理とスムージング処理が同時に実現されたときの画素値G[P]を決定する。
【0085】
注目画素は細線化もスムージングもされていないので、画素値決定部54は、図17に示すように注目画素の元の画素値C[25]を、細線化処理とスムージング処理が同時に実現されたときの注目画素の画素値G[25]として一時的に決定する(ステップS61)。
【0086】
次に、画素値決定部54は、注目画素、注目画素のエッジ方向posに隣接する周辺画素、逆エッジ方向aposに隣接する周辺画素の3つの画素が略同一の画素値であるかを判定する(ステップS62)。注目画素が内エッジである場合、注目画素と、エッジ方向pos及び逆エッジ方向aposに隣接する周辺画素の3つの画素の画素値は略同一となるからである。画素値決定部54は、エッジ方向posに隣接する周辺画素の画素値C[pos]から逆エッジ方向aposに隣接する周辺画素の画素値C[apos]を差し引いた値と、エッジ方向posに隣接する周辺画素の画素値C[pos]から注目画素の画素値C[25]を差し引いた値の何れもが閾値Th3未満である場合、3つの画素の画素値は略同一であると判定する。何れか一方でも閾値Th3を越える場合、画素値決定部54は3つの画素の画素値は略同一ではないと判定する。
【0087】
3つの画素の画素値が略同一ではない場合(ステップS62;N)、注目画素は内エッジではなく、内エッジより内側に位置するので、画素値決定部54はステップS61で決定された画素値G[25]を出力する。注目画素が内エッジより内側に位置する場合、注目画素に隣接する周辺画素も内エッジか内エッジより内側に位置するので、当該周辺画素に対する細線化やスムージングは適当でない。よって、画素値決定部54は強制的に周辺画素の変化量をdST[pos]=dST[apos]=0に修正し(ステップS63)、細線化やスムージングを無効化する。
【0088】
3つの画素の画素値が略同一である場合(ステップS62;Y)、注目画素は内エッジである。画素値決定部54は、細線化され、スムージングされた周辺画素が注目画素のエッジ方向posと逆エッジ方向aposの何れの方向に隣接するかを判定する(ステップS64)。
【0089】
画素値決定部54は、エッジ方向pos、エッジ方向posにおいて注目画素に隣接する周辺画素について入力された変化量dST[pos]、dSMT[pos]が、pos≠0、dST[pos]≠0、dSMT[pos]≠0を満たす場合(ステップS64;Y)、細線化され、スムージングされた周辺画素が注目画素のエッジ方向posに隣接すると判定する(ステップS65)。
【0090】
画素値決定部52は、逆エッジ方向apos、逆エッジ方向aposにおいて注目画素に隣接する周辺画素について入力された変化量dST[apos]、dSMT[apos]が、apos≠0、dST[apos]≠0、dSMT[apos]≠0を満たす場合(ステップS64;N、S66;Y)、細線化され、スムージングされた周辺画素が注目画素の逆エッジ方向aposに隣接すると判定する(ステップS67)。
何れの条件も満たさない場合(ステップS66;N)、画素値決定部54は、細線化され、スムージングされた周辺画素は注目画素のエッジ方向及び逆エッジ方向の何れにも隣接しないと判定し、ステップS61で決定された注目画素の画素値G[25]を出力する。
【0091】
細線化され、スムージングされた周辺画素がエッジ方向posに隣接すると特定された場合、画素値決定部54は当該周辺画素の画素値C[pos]に、細線化の変化量dST[pos]、スムージングによる変化量dSMT[pos]を加えた値を、細線化処理とスムージング処理が同時に実現されたときの周辺画素の画素値G[pos]として決定する(ステップS68)。
【0092】
細線化及びスムージングによって周辺画素の画素値G[pos]が前景の画素値より大きくなると、不自然である。よって、画素値決定部54は、決定された画素値G[pos]が、注目画素からエッジ方向posに2画素離れた周辺画素の画素値C[2pos]より大きい場合(ステップS69;Y)、周辺画素の画素値G[pos]を2画素離れた周辺画素の画素値C[2pos]に修正する。また、画素値決定部54は周辺画素で処理しきれなかった残りの画素値G[pos]−C[2pos]を、注目画素の画素値C[25]に加えた値を、細線化処理とスムージング処理が同時に実現されたときの注目画素の画素値G[25]として決定する(ステップS70)。
【0093】
決定された注目画素の画素値G[25]も前景の画素値以下に収めるため、決定された注目画素の画素値G[25]がエッジ方向に2画素離れた周辺画素の画素値C[2pos]より大きければ(ステップS71;Y)、画素値決定部54は注目画素の画素値G[25]を2画素離れた周辺画素の画素値C[2pos]にさらに修正する(ステップS72)。
【0094】
一方、細線化され、スムージングされた周辺画素が逆エッジ方向aposに隣接すると特定された場合、画素値決定部54は当該周辺画素の画素値C[apos]に、細線化処理による変化量dST[apos]、スムージング処理による変化量dSMT[apos]を加えた値を、細線化処理とスムージング処理が同時に実現されたときの周辺画素の画素値G[apos]として決定する(ステップS73)。
【0095】
細線化及びスムージングによって周辺画素の画素値G[apos]が背景の画素値より小さくなると、不自然である。よって、画素値決定部54は、決定された画素値G[apos]が、注目画素から逆エッジ方向に2画素離れた周辺画素の画素値C[2apos]より小さい場合(ステップS74;Y)、周辺画素の画素値G[apos]を2画素離れた周辺画素の画素値C[2apos]に修正する。また、画素値決定部54は周辺画素で処理しきれなかった残りの画素値G[apos]−C[2apos]を、注目画素の画素値C[25]に加えて、注目画素の画素値G[25]として決定する(ステップS75)。
【0096】
決定された注目画素の画素値G[25]も背景の画素値以下に収めるため、決定された注目画素の画素値G[25]が逆エッジ方向に2画素離れた周辺画素の画素値C[2apos]より小さければ(ステップS76;Y)、画素値決定部54は注目画素の画素値G[25]を2画素離れた周辺画素の画素値C[2apos]にさらに修正する(ステップS77)。
【0097】
図19(a)は、上記ブレンド処理部5が行う処理のイメージ図である。
図19(a)に示す画像を細線化処理及びスムージング処理する場合、注目画素M1は細線化のみされるためケース2に分類される。このとき、エッジ方向及び逆エッジ方向に隣接する周辺画素は細線化もスムージングもされないため、細線化のみされた注目画素M1の画素値が出力される。
【0098】
一方、注目画素M2はスムージングされ、注目画素M2のエッジ方向に隣接する周辺画素N2が細線化される。よって、ケース3に分類され、スムージングされた注目画素M2の画素値と細線化された周辺画素N2の画素値を足し合わせた画素値が、元の画素値が大きい周辺画素N2に寄せるように注目画素M2と周辺画素N2に配分される。
【0099】
注目画素M3はスムージングと細線化の双方が行われ、エッジ方向又は逆エッジ方向に隣接する周辺画素は細線化もスムージングもされない。この場合はケース1に分類され、細線化され、スムージングされた注目画素M3の画素値が出力される。
【0100】
その結果、図19(b)に示すように、直線部分は細線化され、斜線部分はスムージングによって滑らかに階段化されて、細線化とスムージングがバランスよく実現されている。
このようなブレンド処理部5の良好な処理結果に対し、直線部分は細線化処理、斜線部分はスムージング処理と、画像の構造によって処理を切り替える方法や、細線化処理も同時に行われることを考慮してスムージング処理時に変更された画素値を小さな値に設定するような方法では、細線化とスムージングを同時に実現することは難しい。
【0101】
図20(a)は元の画像を示す。図20(b)は元の画像に対し、細線化処理とスムージング処理を同時に行った場合に実現したい目標画像である。
元の画像にスムージング処理のみ実行すると、図20(c)に示すように、斜線部分のエッジに位置する画素の画素値が増加され、滑らかな斜線となる。元の画像に細線化処理のみ実行すると、図20(d)に示すように、直線部分の画素値が減じられ、視覚的に細線化される。
【0102】
スムージング処理と細線化処理の双方を同時に施す場合、図20(b)に示す目標画像のように、斜線部分は滑らかとなり、直線部分はエッジの画素値が減じられることが期待される。しかし、単に斜線部分をスムージング処理、直線部分を細線化処理するように切り替えると、図20(e)に示すように、矢印で示す箇所に予期しない段差が生じ、滑らかな斜線が実現できない。
また、細線化処理も同時に行われることを考慮してスムージング処理時に変更された画素値を小さな値に設定した場合、図20(f)に示すような処理結果となる。図20(e)に示される処理結果よりは改善が見られるものの、矢印で示す箇所に段差が生じ、目標画像や本実施の形態に係るブレンド処理部5の処理結果(図19(b)参照)に比べれば画質が劣る。
【0103】
上述の細線化処理とスムージング処理を同時に実現するブレンド処理において、細線化された画素が孤立すると、細線化もスムージングも実現せず、画質劣化を引き起こす。そこで、図1に示すように、画像処理装置1は細線化調整部6を備え、細線化調整部6は細線化された画素が孤立する場合に細線化処理部3による細線化を無効化する。
【0104】
細線化調整部6は、ブレンド処理部5における注目画素とその周辺画素の変化量dSTを細線化処理部3から入力し、入力された変化量dSTにより注目画素とその周辺画素で細線化された画素が孤立するか否かを判定する。孤立すると判定された場合、細線化調整部6は注目画素と周辺画素のうち、細線化された画素の変化量dSTを0の値にリセットし、細線化を無効化する。細線化調整部6は、制御部7から制御信号SWに応じて細線化の無効化を実行する。
【0105】
制御部7は、細線化調整部6に制御信号SWを出力し、細線化調整部6による細線化の無効化を実行するか否かを切り替える。制御部7は、細線化の無効化を実行する設定の場合はSW=1、無効化を実行しない設定の場合はSW=0を出力する。
【0106】
図21は、細線化調整部6が実行する処理のフローチャートである。
図21に示すように、細線化調整部6は、3つの細線化処理部3から出力される1×3画素の変化量dSTを主走査方向に3画素分保持し、識別番号25の注目画素とその周辺画素からなる3×3画素の変化量dSTを入力する。細線化調整部6は、3×3画素のうち、細線化処理によって細線化された画素、つまりdST≠0の画素の数をカウントし、そのカウント数を孤立度CNとして出力する(ステップS81)。
【0107】
孤立度CN、つまり細線化された画素の数が1又は2であれば、3×3画素において細線化された画素が孤立すると考えられる。以下、孤立度CNが0より大きく2以下であれば、細線化調整部6は細線化された画素が孤立すると判定する例を示すが、細線化された画素が孤立する判定基準として孤立度CNが0より大きく1以下の条件を用いてもよい。孤立度CNが1以下の判定基準であっても2以下の判定基準の場合と同様の効果が得られる。
【0108】
細線化調整部6は、CN≦2かつSW=1の場合(ステップS82;Y)、注目画素と注目画素にエッジ方向又は逆エッジ方向に隣接する周辺画素のうち、細線化された画素の細線化処理による画素値の変化量dST[25]、dST[pos]、dST[apos]を強制的に0の値にリセットする(ステップSS83)。細線化された画素がエッジ方向pos又は逆エッジ方向aposに隣接する周辺画素である場合、細線化調整部6は注目画素が細線化されていることを条件に当該周辺画素の変化量dST[pos]、dST[apos]をリセットすることが好ましい。リセット後、細線化調整部6は3×3画素(注目画素と周辺画素)の細線化処理による画素値の変化量dSTをブレンド処理部5に出力する。
【0109】
CN≦2かつSW=1を満たさない場合(ステップS82;N)、細線化された画素が孤立しないか、孤立するが細線化のリセットを実行しない設定がされているかの何れかである。何れの場合も、細線化調整部6は変化量dSTのリセットは実行せず、入力された3×3画素の細線化処理による変化量dSTをそのままブレンド処理部5に出力する。
【0110】
ブレンド処理部5の分類部50は、細線化調整部6から出力された変化量dSTを用いて前述のケース1〜4への分類を行う。注目画素の細線化が無効化された場合、ケース3又はケース4に分類される。また、画素値決定部51〜54も細線化調整部6から出力された変化量dSTを用いて前述の注目画素のG[25]、注目画素のエッジ方向pos又は逆エッジ方向aposに隣接する周辺画素の画素値G[pos]、G[apos]の決定を行う。
【0111】
上記細線化の無効化によって細線の再現性が向上する。
例えば、図22(a)に示すように3画素幅の細線が階段状に並ぶ斜線構造を持つ元画像に対し、スムージング処理のみを施すと、処理結果として図22(b)に示すような画像が得られる。スムージング処理によって段差部分の各画素の画素値が増減され、滑らかな斜線が形成されている。
【0112】
一方、元画像に細線化処理のみを施した場合は処理結果として図22(c)に示すような画像が得られる。図22(c)に示すように細線化された画素(図22(c)中、丸で囲まれた画素)が1画素のみであり孤立する場合、ブレンド処理部5により細線化処理とスムージング処理が同時に実現されると、図22(d)において丸で囲まれた、孤立する細線化された画素において過剰に画素値が減じられ、スムージングが実現できない。
【0113】
そこで、孤立する細線化された画素の細線化が無効化されると、図22(c)に示す画像に替えて図22(e)に示す画像が細線化処理の処理結果として得られる。図22(e)において丸で囲まれた画素が、細線化が無効化された画素である。その後、ブレンド処理部5により細線化処理とスムージング処理が同時に実現されると、図22(f)に示すように細線化もスムージングも実現された細線の画像が得られる。
【0114】
以上のように、本実施の形態によれば、画像データに細線化処理を施す細線化処理部3と、画像データにスムージング処理を施すスムージング処理部2と、画像データの各画素についてエッジ方向posを判定するエッジ方向判定部4と、注目画素、注目画素の周辺画素の各画素値、スムージング処理による画素値の変化量dSMT、細線化処理による画素値の変化量dST、注目画素について判定されたエッジ方向posを用い、注目画素における細線化の有無、スムージングの有無の組み合わせに応じて、スムージング処理と細線化処理が同時に実現されたときの注目画素の画素値G[25]を決定するブレンド処理部5と、注目画素及びその周辺画素の細線化処理による画素値の変化量dSTにより、細線化された画素が孤立するか否かを判定し、孤立すると判定された場合、注目画素又は注目画素のエッジ方向pos又は逆エッジ方向aposに隣接する周辺画素のうち、細線化された画素の細線化処理による画素値の変化量dST[25]、dST[pos]、dST[apos]を0の値にリセットする細線化調整部6と、を備える。ブレンド処理部5は、注目画素の画素値G[25]の決定に、リセットされた細線化処理による画素値の変化量dST[25]、dST[pos]、dST[apos]を用いる。
【0115】
これにより、細線化処理とスムージング処理を同時に実現するうえで、細線化された画素の孤立によって生じる画質の劣化を防ぐことができる。
【0116】
細線化調整部6は、細線化された画素が注目画素のエッジ方向pos又は逆エッジ方向aposに隣接する周辺画素である場合、注目画素が細線化されていることを条件に当該周辺画素の細線化処理による画素値の変化量dST[pos]、dST[apos]を0の値にリセットすることが好ましい。
【0117】
細線化調整部6によるリセットを実行するか否かを切り替える制御部7を備えるので、変化量dSTのリセットを実行するか否かは適宜切り替えることができる。
【0118】
なお、上述した実施の形態は本発明の好適な一例であり、これに限定されない。
例えば、ブレンド処理部5が注目画素における細線化の有無、スムージングの有無の組み合わせをケース1〜4に分類した後に、細線化調整部6が変化量dSTのリセットを行ってもよい。この場合、画素値決定部51〜54がそれぞれ細線化調整部6を備え、図11、13、15、17に示した処理の前に、図21に示した細線化調整部6による処理を実行する。これにより、ケース1、2の場合、注目画素の変化量dST[25]がdST[25]=0にリセットされる。ケース3、4の場合、エッジ方向posに隣接する周辺画素の変化量dST[pos] 又は逆エッジ方向aposに隣接する周辺画素の変化量dST[apos]が0にリセットされる。
【0119】
上述した実施の形態ではケース1〜4の分類前に変化量dSTの値が0にリセットされるため、リセットがケース1〜4の分類に関わってくる。これに対し、ケース1〜4の分類後にリセットを行うことにより、ケース1〜4の分類は元々の変化量dSTの値を用いて行い、ブレンド処理部5が画素値の演算をするときだけリセットした変化量dSTの値を用いることができる。
【0120】
また、細線化処理、スムージング処理の処理方法は、上述した処理方法に限定されない。細線化処理による画素値の変化量、スムージング処理による画素値の変化量を出力するのであれば、何れの処理方法であってもよい。
【0121】
また、ブレンド処理部5が用いる変化量dST、dSMTを、スムージング処理部2、細線化処理部3がそれぞれ算出していたが、スムージング処理部2、細線化処理部3からは処理後の画素値を出力し、ブレンド処理部5が処理後の画素値から元の画素値を差し引いて変化量dST、dSMTを算出してもよい。
【0122】
また、ブレンド処理部5や細線化調整部6等の各部の処理内容をプログラム化し、このプログラムとCPU等との協働によってソフトウェア処理してもよい。このとき、プログラムのコンピューター読み取り可能な媒体としては、ROM、フラッシュメモリー等の不揮発性メモリー、CD-ROM等の可搬型記録媒体を適用することが可能である。また、プログラムのデータを通信回線を介して提供する媒体として、キャリアウエーブ(搬送波)も本発明に適用される。
【符号の説明】
【0123】
1 画像処理装置
2 スムージング処理部
3 細線化処理部
4 エッジ方向判定部
5 ブレンド処理部
6 細線化調整部
7 制御部
【技術分野】
【0001】
本発明は、画像処理装置及び画像処理方法に関する。
【背景技術】
【0002】
画像処理の1つとして細線化処理が知られている。細線化処理は文字等のエッジを対象として画素値を減じることにより、文字等の鮮鋭性を向上させる。
エッジを対象とする画像処理にはスムージング処理もある。スムージング処理は文字等の斜線部分のエッジの画素値を増減して中間調とすることにより、斜線部分のエッジを視覚的に滑らかにすることができる。
【0003】
細線化処理とスムージング処理は同じエッジを対象とするが、処理の目的が異なるため、2つの処理を同時に行うことは困難であった。例えば、文字の直線部分で細線化、斜線部分でスムージングが行われると、シャープで滑らかな文字が得られるが、直線部分と斜線部分の構造を検出し、検出された構造によって細線化処理とスムージング処理を切り替えるような方法(例えば、特許文献1参照)ではそのような文字の実現は難しい。これは、直線部分と斜線部分の双方に属する画素があるためであり、本来スムージングではなく細線化が適当であったのにスムージングによって画素値が増加される等、予期しない結果が生じる。
【0004】
これに対し、出願人は細線化処理とスムージング処理を同時に実現する画像処理装置を開発している(例えば、特許文献2参照)。この画像処理装置によれば、スムージング処理と細線化処理の結果が、元の画素値からの変化量として保持される。保持された変化量が元の画素値に加算されたときの画素値が最大値を超えたり、負の値になったりする場合、その超えた分や不足する分が注目画素と所定の位置関係にある隣接画素の画素値によって調整される。細線化処理とスムージング処理の処理結果を、注目画素だけではなくその隣接画素との2画素分で調整することにより、2つの処理結果を無理なく消化できる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平7−334672号公報
【特許文献2】特許第4225337号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
もともと線幅の小さい細線が細線化処理された場合、細線の両側とも細線化されるため、細線がかすれたり消えたりする場合がある。例えば、2画素幅の細線の場合、細線化によって両側から画素値が減じられると、細線自体が消失してしまう。このような細線構造の消失を防ぐため、従来、細線化処理時には細線構造を判定し、細線化の対象から除外することが行われている。
【0007】
しかしながら、このような細線構造の除外が意図しない結果を招くことがある。例えば、画像データが非可逆圧縮された場合、伸張によって完全に元の画像データが復元されるとは限らず、文字等は部分的に画質が劣化する場合がある。例えば、輪郭が滑らかに復元されず、細く尖ることがある。尖った部分は細線化処理時に細線構造と判定され、その部分だけが細線化が無効化される。同じ文字の中で細線化されない部分と細線化される部分があるため、文字の線幅がアンバランスになる。
【0008】
また、水平に近い斜線は長い水平線が階段状に並ぶ構造を有するが、段差部分では一時的に線幅が大きくなるため、水平線は細線化の対象外であるのに段差部分のみ細線化されるという現象が生じる。細線化されない水平線の画素が多数あるのに対し細線化された段差部分はせいぜい1、2画素であるため、細線化された部分が孤立した状態となる。このような孤立した細線化部分を持つ画像に対し、細線化処理とスムージング処理が同時に行われると、当該細線化部分のみ過剰に画素値が減じられ、細線化もスムージングも実現できず、画質が劣化する。
【0009】
本発明の課題は、細線化された画素の孤立による画質劣化を防ぐことである。
【課題を解決するための手段】
【0010】
請求項1に記載の発明によれば、
画像データに細線化処理を施す細線化処理部と、
画像データにスムージング処理を施すスムージング処理部と、
画像データの各画素についてエッジ方向を判定するエッジ方向判定部と、
注目画素、注目画素の周辺画素の各画素値、前記スムージング処理による画素値の変化量、前記細線化処理による画素値の変化量、注目画素について判定された前記エッジ方向を用い、前記注目画素における細線化の有無、スムージングの有無の組み合わせに応じて、前記スムージング処理と前記細線化処理が同時に実現されたときの前記注目画素の画素値を決定するブレンド処理部と、
前記注目画素及びその周辺画素の前記細線化処理による画素値の変化量により、細線化された画素が孤立するか否かを判定し、孤立すると判定された場合、注目画素又は注目画素のエッジ方向又は逆エッジ方向に隣接する周辺画素のうち、細線化された画素の前記細線化処理による画素値の変化量を0の値にリセットする細線化調整部と、を備え、
前記ブレンド処理部は、前記注目画素の画素値の決定に、リセットされた前記細線化処理による画素値の変化量を用いる画像処理装置が提供される。
【0011】
請求項2に記載の発明によれば、
前記細線化調整部は、細線化された画素が注目画素のエッジ方向又は逆エッジ方向に隣接する周辺画素である場合、注目画素が細線化されていることを条件に当該周辺画素の細線化処理による画素値の変化量を0の値にリセットする請求項1に記載の画像処理装置が提供される。
【0012】
請求項3に記載の発明によれば、
前記細線化調整部は、前記ブレンド処理部が前記注目画素の前記細線化処理による画素値の変化量及び前記スムージング処理による画素値の変化量によって、前記注目画素における細線化の有無、スムージングの有無の組み合わせを分類した後、前記リセットを行う請求項1又は2に記載の画像処理装置が提供される。
【0013】
請求項4に記載の発明によれば、
前記細線化調整部による前記リセットを実行するか否かを切り替える制御部を備える請求項1〜3の何れか一項に記載の画像処理装置が提供される。
【0014】
請求項5に記載の発明によれば、
画像データに細線化処理を施す工程と、
画像データにスムージング処理を施す工程と、
画像データの各画素についてエッジ方向を判定する工程と、
注目画素、注目画素の周辺画素の各画素値、前記スムージング処理による画素値の変化量、前記細線化処理による画素値の変化量、注目画素について判定された前記エッジ方向を用い、前記注目画素における細線化の有無、スムージングの有無の組み合わせに応じて、前記スムージング処理と前記細線化処理が同時に実現されたときの前記注目画素の画素値を決定する工程と、
前記注目画素及びその周辺画素の前記細線化処理による画素値の変化量により、細線化された画素が孤立するか否かを判定し、孤立すると判定された場合、注目画素又は注目画素のエッジ方向又は逆エッジ方向に隣接する周辺画素のうち、細線化された画素の前記細線化処理による画素値の変化量を0の値にリセットする工程と、を含み、
前記注目画素の画素値を決定する工程は、リセットされた前記細線化処理による画素値の変化量を用いて前記注目画素の画素値を決定する画像処理方法が提供される。
【発明の効果】
【0015】
本発明によれば、細線化処理とスムージング処理が同時に実現されたときの画素値の決定時、孤立する細線化された画素の細線化を無効化することができる。細線化の無効化により、当該細線化によって生じる画質の劣化を防ぐことができる。
【図面の簡単な説明】
【0016】
【図1】本実施の形態に係る画像処理装置の構成図である。
【図2】7×7画素の領域を示す図である。
【図3】スムージング処理部の構成図である。
【図4】スムージングすべきエッジのパターン検出に用いられるテンプレートの一例である。
【図5】細線化処理部の構成図である。
【図6】エッジ方向の判定例である。
【図7】エッジ方向の判定例である。
【図8】エッジ方向の判定例である。
【図9】ブレンド処理部の構成図である。
【図10】分類部が行う処理のフローチャートである。
【図11】ケース1の場合に画素値決定部が行う処理のフローチャートである。
【図12】(a)、(b)はケース1の場合に想定される注目画素と周辺画素の位置関係を示す図である。
【図13】ケース2の場合に画素値決定部が行う処理のフローチャートである。
【図14】(a)、(b)はケース2の場合に想定される注目画素と周辺画素の位置関係を示す図である。
【図15】ケース3の場合に画素値決定部が行う処理のフローチャートである。
【図16】(a)、(b)はケース3の場合に想定される注目画素と周辺画素の位置関係を示す図である。
【図17】ケース4の場合に画素値決定部が行う処理のフローチャートである。
【図18】(a)、(b)はケース4の場合に想定される注目画素と周辺画素の位置関係を示す図である。
【図19】(a)ブレンド処理部が行う処理のイメージ図である。(b)ブレンド処理部の処理結果を示す図である。
【図20】(a)元の画像を示す図である。(b)細線化処理とスムージング処理を同時に行ったときの目標画像を示す図である。(c)元の画像にスムージング処理のみ行った処理結果を示す図である。(d)元の画像に細線化処理のみ行った処理結果を示す図である。(e)画像の構造によってスムージング処理と細線化処理を切り替えた場合の処理結果を示す図である。(f)スムージング処理において画素値を小さく調整した場合の処理結果を示す図である。
【図21】細線化調整部が行う処理のフローチャートである。
【図22】(a)元の画像である。(b)元の画像のスムージング処理後の画像である。(c)元の画像の細線化処理後の画像である。(d)元の画像に対し細線化処理とスムージング処理が同時に実現された画像である。(e)孤立する細線化された画素の細線化を無効化した場合の細線化処理後の画像である。(f)細線化を無効化したうえで、元の画像に対し細線化処理とスムージング処理が同時に実現された画像である。
【発明を実施するための形態】
【0017】
以下、図面を参照して本発明の実施の形態について説明する。
【0018】
図1は、本実施の形態に係る画像処理装置1の構成を示す。
画像処理装置1は、図1に示すようにスムージング処理部2、細線化処理部3、エッジ方向判定部4、ブレンド処理部5を備える。
画像処理装置1は副走査方向に0〜8ライン目までの合計9画素分のラインメモリーを備え、画像データは1クロック毎に主走査方向に1画素ずつシフトしながらこのラインメモリーに入力され保持される。画像データは8bitであり、画素値の値域が0〜255である。カラー画像の場合、Y(イエロー)、M(マジェンタ)、C(シアン)、K(黒)の4色からなる画像データが入力される。
【0019】
スムージング処理部2は、画像データの各画素にスムージング処理を施す。スムージング処理はアンチエイリアス処理とも呼ばれる。
スムージング処理は7×7画素単位で行われる。スムージング処理部2は、ラインメモリーから7ライン分の画像データを7クロック分、つまり主走査方向に7画素分保持して7×7画素を得る。
【0020】
スムージング処理部2は3つ設けられ、上段のスムージング処理部2には0〜6ライン目、中段のスムージング処理部2には1〜7ライン目、下段のスムージング処理部2には2〜8ライン目の画像データがそれぞれ入力される。
図2は中段のスムージング処理部2に入力された7×7画素の領域を示す。図2において各画素には画素位置を示す識別番号01〜49が付されている。
【0021】
各スムージング処理部2は7×7画素の中心に位置する画素にスムージング処理を施し、スムージング処理による画素値の変化量dSMTを算出して出力する。つまり、1クロック毎に1×7画素の画素値が各スムージング処理部2に入力され、1×3画素(識別番号18、25、32の画素)の画素値の変化量dSMTが出力される。
【0022】
各スムージング処理部2は、図3に示すように、エッジ判定部21、テンプレート判定部22、テンプレート選択部23、画素値算出部24を備える。
各スムージング処理部2は処理する画素の位置が異なるが、処理内容は同じであるので、識別番号25の注目画素をスムージング処理する中段のスムージング処理部2を代表としてスムージング処理を説明する。
【0023】
エッジ判定部21は、7×7画素に含まれるエッジの有無を判定する。スムージング処理によってスムージングされる対象、つまり画素値が変更される画素は、文字や線画のエッジだからである。
エッジ判定部21は隣接する2つの画素間で画素値の差分を算出し、差分が閾値th1以上であれば、2つの画素間にエッジが有ると判定する。差分が閾値th1未満であれば、エッジ判定部21は2つの画素間にエッジが無いと判定する。th1はエッジ判定用に予め定められた閾値である。差分は絶対値で算出され、差分が算出される2つの画素は所定の位置関係で隣接する画素である。
【0024】
下記は差分が算出される2つの画素A、Bの組み合わせであり、組み合わせは画素Aの識別番号−画素Bの識別番号で示される。
03−10、04−11、05−12、10−17、10−18、11−17、11−18、11−19、12−18、12−19、15−16、16−17、16−24、17−18、17−23、17−24、18−19、18−24、18−25、18−26、19−20、19−26、19−27、20−21、20−26、22−23、23−24、23−31、24−25、24−30、24−31、24−32、25−26、25−32、26−27、26−32、26−33、26−34、27−28、27−33、29−30、30−31、31−32、31−38、31−39、32−33、32−38、32−39、32−40、33−34、33−39、33−40、34−35、38−45、39−46、40−47
【0025】
エッジ判定部21はエッジが有ると判定した場合はV[AB]=1を出力し、エッジが無いと判定した場合はV[AB]=0を出力する。V[AB]において、A、Bは差分の算出に用いられた2つの画素を示し、各画素A、Bの識別番号01〜49の値が入力される。例えば、識別番号03の画素Aと識別番号10の画素Bの差分より、画素Aと画素B間にエッジが有ると判定された場合、V[0310]=1が出力される。
【0026】
なお、画素A、Bの組み合わせは全部で56であり、演算回路としては1クロックで計56の減算結果が得られなければならないが、演算回路の最適化によって減算の数を減らすことができる。演算回路は1クロック毎に注目画素の演算結果を出力するが、1クロック毎に注目画素は1画素右へ移動していく。そのため、現クロックで減算された画素A、Bは次クロックで画素A−1、B−1になる。このとき、現クロックにおいて用いられた減算結果V[AB]は次クロックにおいてはV[(A−1)(B−1)]の値と同じになる。さらに1クロックが経過すると、この減算結果V[(A−1)(B−1)]はV[(A−2)(B−2)]と同じ値となる。このような特性を利用すれば、減算結果を6クロック分保持することによって同じラインの減算結果として保持された減算結果を流用することが可能である。
【0027】
以下は、ある減算結果が次のクロック又はそれ以降のクロックで1つ左に記された減算結果として流用できることを示す。これによれば、1つの減算結果が6クロック分保持されることで最大6つの減算結果として流用することができる。このような流用を行う回路構成にすることにより、56回必要だった減算は実質17回にまで削減することが可能である。
V[0310]←V[0411]←V[0512]
V[1017]←V[1118]←V[1219]
V[1018]←V[1119]
V[1117]←V[1218]
V[1516]←V[1617]←V[1718]←V[1819]←V[1920]←V[2021]
V[1624]←V[1826]←V[1927]
V[1723]←V[1824]←V[2026]
V[1724]←V[1825]←V[1926]
V[2223]←V[2324]←V[2425]←V[2526]←V[2627]←V[2728]
V[2331]←V[2432]←V[2634]
V[2430]←V[2632]←V[2733]
V[2431]←V[2532]←V[2633]
V[2930]←V[3031]←V[3132] ←V[3233]←V[3334]←V[3435]
V[3138]←V[3239]←V[3340]
V[3139]←V[3240]
V[3238]←V[3339] V[3845]←V[3946]←V[4047]
【0028】
テンプレート判定部22は、エッジ判定部21から出力されたV[AB]とテンプレートを照合し、一致するテンプレートを判定する。テンプレートは、スムージングすべきエッジのパターンを検出できるように設計されている。
図4は一例としてのテンプレートである。図4において()内の数字は、各テンプレートに付された識別番号である。
【0029】
図4に示すように、テンプレート上の画素はa、b、cの3つに分類される。テンプレート判定部22は、テンプレート上で分類aに該当する画素間のV[AB]=0、分類bに該当する画素間のV[AB]=0、分類aに該当する画素と分類bに該当する画素間のV[AB]=1を満たすとき、当該テンプレートと一致したと判定する。分類cの画素はエッジの有無が問われない。テンプレートは1つだけでなく、複数一致する場合があり、テンプレート判定部22は全テンプレートと照合し、一致するテンプレートを全て検出する。
【0030】
例えば、V[1824]=0、V[2632]=0、V[1826]=1、V[1819]=0、V[3132]=0の全てが満たされる場合、テンプレート判定部22は識別番号21のテンプレートに一致したと判定する。さらに、V [2324]=0、V[3031]=0、V[1920]=0、V [2627]=0の全てが満たされる場合、テンプレート判定部22は識別番号21だけでなく、識別番号213のテンプレートにも一致したと判定する。
【0031】
テンプレート選択部23は、テンプレート判定部22のテンプレートの照合により、1又は複数一致したテンプレートの中から1つのテンプレートを選択する。図4に示すテンプレートには優先順位が定められている。この優先順位に従い、テンプレート選択部23は、一致したテンプレートのうち、最も優先順位の高いテンプレートを選択する。テンプレートの優先順位は、識別番号24、23、22、21、233、213、243、223、252、251、254、253、262、261、264、263の順に高い。
【0032】
画素値算出部24は、テンプレート選択部23により選択されたテンプレートに定められた分類a、bに該当する画素の画素値を用いて、スムージング処理による注目画素の画素値の変化量dSMTを算出し、出力する。
【0033】
dSMTの算出式は以下の通りである。算出式において、Cは[]内の識別番号で示される各画素の画素値である。注目画素の画素値はC[25]で示される。
選択されたテンプレートの識別番号が21、22、23、24のとき、
dSMT=(C[18]+C[25]+C[32])/3−C[25]
選択されたテンプレートの識別番号が213、233のとき、
dSMT=(C[18]×2+C[25]+C[32]×2)/5−C[25]
選択されたテンプレートの識別番号が223、243のとき、
dSMT=(C[24]×2+C[25]+C[26]×2)/5−C[25]
【0034】
選択されたテンプレートの識別番号が251、252のとき、
dSMT=(C[25]×4+C[32])/5−C[25]
選択されたテンプレートの識別番号が253、254のとき、
dSMT=(C[25]×4+C[18])/5−C[25]
選択されたテンプレートの識別番号が261、262のとき、
dSMT=(C[25]×4+C[26])/5−C[25]
選択されたテンプレートの識別番号が263、264のとき、
dSMT=(C[25]×4+C[24])/5−C[25]
【0035】
得られた変化量dSMTを注目画素の画素値に加えることにより、スムージング処理後の注目画素の画素値が得られる。このようなスムージング処理によれば、隣接する2画素間の画素値の差分が略同じ値か異なる値かによって、スムージングすべきエッジに該当する注目画素を検出できる。検出された注目画素の画素値は、注目画素とその周辺画素の画素値を重み付けした平均値に変換されるので、前景や背景の画素値が中間調を含むどのような値であってもスムージング処理することが可能である。
【0036】
細線化処理部3は、画像データの各画素に細線化処理を施す。
細線化処理は3×3画素単位で行われる。細線化処理部3は、ラインメモリーから3ライン分の画像データを3クロック分入力し、3×3画素を得る。細線化処理部3は3つ設けられ、上段の細線化処理部3には2〜4ライン目、中段の細線化処理部3には3〜5ライン目、下段の細線化処理部3には4〜6ライン目の画像データが入力される。各細線化処理部3は3×3画素の中心に位置する画素に細線化処理を施し、細線化処理による画素値の変化量dSTを算出して出力する。つまり、1クロック毎に1×3画素の画素値が各細線化処理部3に入力され、1×3画素(識別番号18、25、32の画素)の画素値の変化量dSTが出力される。
【0037】
各細線化処理部3は、図5に示すように、エッジ強度算出部31、エッジ判定部32、細線化判定部33、画素値算出部34を備える。
各細線化処理部3は処理する画素の位置が異なるが、処理内容は同じであるので、識別番号25の注目画素を処理する中段の細線化処理部3を代表として細線化処理を説明する。
【0038】
エッジ強度算出部31は、注目画素におけるエッジ強度を求める。エッジ強度算出部31は、注目画素とその周辺画素との差E0〜E7を算出し、そのうちの最大値PEDを求める。E0〜E7の算出式は以下の通りである。Cは[]内の識別番号で示される各画素の画素値である。
E0=C[25]−C[17]
E1=C[25]−C[18]
E2=C[25]−C[19]
E3=C[25]−C[24]
E4=C[25]−C[26]
E5=C[25]−C[31]
E6=C[25]−C[32]
E7=C[25]−C[33]
【0039】
エッジ強度算出部31は、E0〜E7の符号を反転させ、そのうちの最大値REDを求める。細線化処理部3は、PED<REDであれば、PED=0、RED<PEDであれば、RED=0に修正する。
以上のようにして求めたE0〜E7、PED、REDがエッジ強度である。
【0040】
エッジ判定部32は、カラー画像の場合、各色の画像データから求められたPED、REDによって、下記式によりTPED、TREDを求める。[]内のyはイエロー、mはマジェンタ、cはシアン、kは黒の色の画像データから求められたエッジ強度であることを示す。
TPED=
(PED[y]×Wy+PED[m] ×Wm+PED[c] ×Wc+ PED[k] ×Wk)
TRED=
(RED[y]×Wy+RED[m] ×Wm+RED[c] ×Wc+ RED[k] ×Wk)
上記式において、Wy、Wm、Wc、Wkは予め定められた係数であり、Wy+Wm+Wc+Wk≦255である。
モノクロ画像であれば、TPED=PED[k] ×Wk、TRED=RED[k] ×Wkである。
【0041】
TPED、TREDは、各色のエッジ強度PED、REDを、比視感度に相当する係数Wy、Wm、Wc、Wkで重み付けし足し合わせた値であり、各色を重ね合わせたときの視覚的な濃度の指標となり得る。細線化の対象は前景のエッジであるので、エッジ判定部32は、TPED、TREDの大小関係を判定することによって注目画素とその周辺画素のどちらが前景でどちらが背景かを判定する。エッジ判定部32は、TPED>TREDであれば、注目画素が背景より濃度が高い前景のエッジであると判定し、ED=1を出力する。一方、TPED≦TREDであれば、エッジ判定部32は注目画素は前景のエッジではないと判定し、ED=0を出力する。
【0042】
細線化判定部33は、前景のエッジと判定された注目画素が細線化の対象となり得るか否かを判定する。エッジではあるが、細線化つまり画素値を減じるのに十分な画素値を注目画素が持たない場合、画素値を減じることによって画素値が非常に小さくなるか、或いは無くなって画像に途切れが生じるため、細線化の対象外とする必要がある。細線化判定部33は、注目画素の各色の画素値C[25]をそれぞれ閾値Th2と比較し、何れかの色において画素値C[25]が閾値Th2以上であれば、細線化に十分な画素値を持つと判定し、SS=1を出力する。一方、全ての色において注目画素の画素値C[25]が閾値Th2未満であれば、細線化判定部33は注目画素が細線化に十分な画素値を持たないので細線化の対象外であると判定し、SS=0を出力する。
【0043】
画素値算出部34は、細線化処理による注目画素の画素値の変化量dSTを算出して出力する。ED=1かつSS=1である場合、注目画素はエッジであり、細線化に十分な画素値を持つので、画素値算出部34は注目画素を細線化し、下記式によって画素値の変化量dSTを算出する。変化量dSTは色毎に求められたPED、REDを用いて、色毎に求められる。
dST=(PED−RED)×STVL
上記STVLは細線化の強度を調整する係数であり、色毎に予め定められている。STVLは0〜1の値域をとり得る。
【0044】
得られた変化量dSTを元の画素値に加えることによって細線化処理後の画素値が得られる。dSTの算出式から分かるように、細線化処理には、dSTが負の値となって注目画素の画素値が減じられ、文字通り細線化される場合だけでなく、dSTが正の値となって画素値が増加され、太線化される場合もある。
【0045】
ED=1かつSS=1ではない場合、注目画素がエッジではない、或いはエッジであるが細線化に十分な画素値を持たないので、画素値算出部34は注目画素の細線化は行わず、画素値の変化量dST=0を出力する。
【0046】
エッジ方向判定部4は、画像データの各画素におけるエッジ方向を判定する。
エッジ方向の判定は5×5画素単位で行われる。エッジ方向判定部4は、ラインメモリーから2〜6ライン目の画像データを5クロック分入力し、ブレンド処理部5における注目画素を中心とする5×5画素を得る。エッジ方向判定部4は、入力された5×5画素の中心に位置する注目画素を対象としてエッジ方向posを判定し、出力する。つまり、1クロック毎に1×5画素の画素値がエッジ方向判定部4に入力され、1画素分のエッジ方向posが出力される。エッジ方向とは画素値が小さい画素から大きい画素へ向かう方向である。注目画素が前景又は背景のエッジであれば、背景から前景への方向がエッジ方向として判定される。
【0047】
エッジ方向判定部4は、注目画素(識別番号25の画素)と注目画素に隣接する8つの周辺画素(識別番号17、18、19、24、26、31、32、33の画素)との差分SP、注目画素(識別番号25の画素)と注目画素の上下左右において注目画素から2画素離れた周辺画素(識別番号11、23、27、39の画素)との差分SFをそれぞれ算出する。
【0048】
算出式は以下の通りである。Cは[]内の識別番号で示される各画素の画素値である。
SP[u]=C[25]−C[18]
SP[l]=C[25]−C[24]
SP[r]=C[25]−C[26]
SP[d]=C[25]−C[32]
SF[u]=C[25]−C[11]
SF[l]=C[25]−C[23]
SF[r]=C[25]−C[27]
SF[d]=C[25]−C[39]
【0049】
エッジ方向判定部4は、注目画素の主走査方向におけるエッジ方向x、副走査方向におけるエッジ方向yをそれぞれ判定する。x、yは0又は±1の値をとり得る。0はエッジが無いことを示し、1はエッジがあることを示す。正負の符号は方向に対応する。
【0050】
例えば、SP[l]<SP[r]であれば、図6に示すように注目画素の左右のうち右側の周辺画素の画素値が小さい。よって、エッジ方向判定部4は主走査方向におけるエッジ方向を左と判定し、x=−1を出力する。一方、SP[l]>SP[r]であれば、図7に示すように注目画素の左右のうち左側の画素値が小さい。よって、エッジ方向判定部4は主走査方向におけるエッジ方向を右と判定し、x=+1を出力する。
同様に、SP[u]とSP[d]の比較によって副走査方向のエッジ方向が判定される。SP[u]>SP[d]であれば、エッジ方向判定部4は副走査方向におけるエッジ方向を下と判定し、y=−1を出力する。SP[u]<SP[d]であれば、エッジ方向判定部4は副走査方向におけるエッジ方向を上と判定し、y=+1を出力する。
【0051】
SP[l]=SP[r]の場合、注目画素の左右で画素値の差が無い。SP[u]=SP[d]の場合も同様に、注目画素の上下で画素値の差が無い。この場合、エッジ方向判定部4は注目画素の左右又は上下でエッジは無いと判定し、x=0、y=0をそれぞれ出力する。
【0052】
エッジ方向判定部4は、注目画素がエッジではないが、エッジから1画素内側の内エッジである場合にも、そのエッジ方向を判定する。
注目画素が内エッジである場合、エッジ方向はx=y=0である。よって、エッジ方向判定部4は、エッジ方向がx=y=0である場合、注目画素から2画素離れた周辺画素から求められたSF[l]、SF[r]、SF[u]、SF[d]により、エッジ方向x、yを修正する。
【0053】
エッジ方向判定部4は、SF[l]<SF[r]であれば、x=0をx=−1に修正し、SF[l]>SF[r]であれば、x=+1に修正する。同様に、エッジ方向判定部4は、SF[u]>SF[d]であれば、y=0をy=−1に修正し、SF[u]<SF[d]であれば、y=+1に修正する。SF[l]=SF[r]であれば修正は行わず、エッジ方向判定部4はx=0をそのまま出力する。SF[u]=SF[d]の場合も修正は行わず、エッジ方向判定部4はy=0をそのまま出力する。
【0054】
例えば、図8に示すように注目画素から2画素離れた右側の周辺画素がエッジであり、注目画素が内エッジである場合、SP[l]=SP[r]であるから、x=0と判定される。しかし、SF[l]<SF[r]であるから、x=0はx=−1に修正される。
【0055】
エッジ方向判定部4は、主走査方向のエッジ方向x及び副走査方向のエッジ方向yの組み合わせによって、総合的なエッジ方向posを判定し、出力する。posは0〜4の値をとり得る。0は中央(エッジ無し)、1は左方向、2は右方向、3は上方向、4は下方向を示す。x、yの組み合わせに対するエッジ方向posは、以下の通りである。
【0056】
x=1かつy=−1のとき、pos=4
x=1かつy=0のとき、pos=2
x=1かつy=+1のとき、pos=2
x=0かつy=−1のとき、pos=4
x=0かつy=0のとき、pos=0
x=0かつy=+1のとき、pos=3
x=−1かつy=−1のとき、pos=1
x=−1かつy=0のとき、pos=1
x=−1かつy=+1のとき、pos=3
【0057】
ブレンド処理部5は、細線化処理とスムージング処理が同時に実現されたときの各画素の画素値を決定する。
ブレンド処理部5は、ラインメモリーの2〜6ライン目の画像データを5クロック分入力し、識別番号25の注目画素を中心とする5×5画素を得る。また、ブレンド処理部5は、スムージング処理部2及び細線化処理部3から出力される1×3画素の処理結果(変化量dSMT、dST)を主走査方向に3画素シフトして、識別番号25の注目画素を中心とする3×3画素分の処理結果を入力する。また、ブレンド処理部5はエッジ方向判定部4から注目画素のエッジ方向posを入力する。ブレンド処理部5は、注目画素における細線化の有無、スムージングの有無の組み合わせに応じて、注目画素において細線化とスムージングの双方が同時に実現されたときの画素値Gを決定する。画素値Gの決定には、注目画素、注目画素の上下左右に隣接する周辺画素、注目画素の上下左右において注目画素から2画素離れた周辺画素の各画素値C、注目画素と注目画素の上下左右に隣接する周辺画素の画素値の変化量dST、dSMT、注目画素におけるエッジ方向posが用いられる。
【0058】
ブレンド処理部5は、図9に示すように、分類部50、画素値決定部51〜54を備える。
分類部50は、注目画素における細線化の有無、スムージングの有無の組み合わせによって、注目画素における細線化とスムージングの状態をケース1〜ケース4に分類する。細線化の有無、スムージングの有無は変化量dST、dSMTの値が0か否かによって判定することができる。分類部50は、注目画素について細線化処理部3から入力される変化量dST[25]がdST[25]≠0であれば、細線化処理の結果、注目画素において細線化が行われ、dST[25]=0であれば細線化が行われなかったと判定する。同様に、分類部50は注目画素についてスムージング処理部2から入力される変化量dSMT[25]がdSMT[25]≠0であればスムージングが行われ、dSMT[25]=0であればスムージングが行われなかったと判定する。
【0059】
図10は、分類部50による処理の流れを示すフローチャートである。
図10に示すように、分類部50は注目画素の変化量dST[25]≠0、dSMT[25]≠0のとき(ステップS11;Y)、ケース1に分類する(ステップS12)。注目画素の変化量dST[25]≠0、dSMT[25]=0のとき(ステップS11;N、S13;Y)、分類部50はケース2に分類する(ステップS14)。注目画素の変化量dST[25]=0、dSMT[25]≠0のとき(ステップS13;N、S15;Y)、分類部50はケース3に分類する(ステップS16)。注目画素の変化量dST[25]=0、dSMT[25]=0のとき(ステップS15;N、S17;Y)、分類部50はケース4に分類する(ステップS18)。
【0060】
分類部50は、ケース1に分類された場合は画素値決定部51に、ケース2に分類された場合は画素値決定部52に、ケース3に分類された場合は画素値決定部53に、ケース4に分類された場合は画素値決定部54に、変化量dST、dSMT、画素値C、エッジ方向posを出力する。
【0061】
画素値決定部51〜54は、それぞれのケース1〜4に応じて細線化処理及びスムージング処理の双方を同時に実現したときの注目画素の画素値G[25]を決定する。
【0062】
〈ケース1〉
図11は、ケース1に対し、画素値決定部51が実行する処理のフローチャートである。
ケース1において注目画素は細線化もスムージングも行われているので、図12(a)に示すような前景のエッジであるか、或いは図12(b)に示すような背景のエッジであることが想定される。前景のエッジである場合、図12(a)に示すように注目画素Mの変化量dST、dSMTは何れも負の値であり、細線化処理、スムージング処理のそれぞれによって画素値が減じられる。背景のエッジである場合、図12(b)に示すように注目画素Mの変化量dST、dSMTは何れも正の値であり、細線化処理、スムージング処理のそれぞれによって画素値が増加される。
【0063】
何れの場合も、注目画素Mは細線化及びスムージングされ、注目画素Mのエッジ方向pos又はエッジ方向の逆方向である逆エッジ方向aposに隣接する周辺画素Nは細線化もスムージングもされていない。よって、画素値決定部51は、図11に示すように注目画素の元の画素値C[25]に、変化量dST[25]、dSMT[25]を加えた値を、細線化処理とスムージング処理を同時に実現させたときの注目画素の画素値G[25]として決定し、出力する(ステップS21)。
【0064】
決定された注目画素の画素値G[25]は、前景の画素値と背景の画素値の間になければ、前景と背景の境界で注目画素の濃度が突出し、不自然である。よって、注目画素の画素値G[25]が、前景つまり注目画素のエッジ方向に隣接する周辺画素の画素値C[pos]より大きいとき(ステップS22;Y)、画素値決定部51は決定された注目画素の画素値G[25]を前景の画素値C[pos]に修正する(ステップS23)。また、注目画素の画素値G[25]が、背景つまり注目画素の逆エッジ方向に隣接する周辺画素の画素値C[apos]より小さいとき(ステップS22;Y)、画素値決定部51は決定された注目画素の画素値G[25]を背景の画素値C[apos]に修正する(ステップS23)。aposはエッジ方向posと逆方向の値が設定される。つまり、pos=1であればapos=2、pos=3であればapos=4である。エッジ方向が無い場合、pos=apos=0である。
【0065】
〈ケース2〉
図13は、ケース2に対し、画素値決定部52が実行する処理のフローチャートである。
ケース2において注目画素は細線化のみ行われているので、図14(a)に示すような前景のエッジであるか、図14(b)に示すような背景のエッジであると想定される。前景のエッジである場合、図14(a)に示すように注目画素Mの変化量dSTは負の値であり、細線化処理によって画素値が減じられる。注目画素Mに逆エッジ方向aposに隣接する周辺画素Nの変化量dSMTは正の値であり、スムージング処理によって画素値が増加される。背景のエッジである場合、図14(b)に示すように注目画素Mの変化量dSTは正の値であり、細線化処理によって画素値が増加される。注目画素Mにエッジ方向posに隣接する周辺画素Nの変化量dSMTは負の値であり、スムージング処理によって画素値が減じられる。
【0066】
このように、細線化された注目画素のエッジ方向pos又は逆エッジ方向aposに、細線化されず、スムージングされた周辺画素が隣接する場合、画素値決定部52は注目画素とともに当該周辺画素の細線化処理とスムージング処理が同時に実現されたときの画素値を決定する。
【0067】
注目画素は細線化のみされているので、画素値決定部52は、図13に示すように、注目画素の元の画素値C[25]に細線化処理による注目画素の画素値の変化量dST[25]を加えた値を、細線化処理とスムージング処理が同時に実現されたときの注目画素の画素値G[25]として一時的に決定する(ステップS31)。次に、画素値決定部52は、スムージングされた周辺画素がエッジ方向posと逆エッジ方向aposの何れに隣接するかを判定する。
【0068】
画素値決定部52は、エッジ方向pos、エッジ方向posにおいて注目画素に隣接する周辺画素について入力された変化量dST[pos]、dSMT[pos]が、pos≠0、dST[pos]=0、dSMT[pos]≠0を満たす場合(ステップS32;Y)、スムージングされた周辺画素が注目画素のエッジ方向posに隣接すると判定する(ステップS33)。
【0069】
画素値決定部52は、逆エッジ方向apos、逆エッジ方向aposにおいて注目画素に隣接する周辺画素について入力された変化量dST[apos]、dSMT[apos]が、apos≠0、dST[apos]=0、dSMT[apos]≠0を満たす場合(ステップS32;N、S34;Y)、スムージングされた周辺画素が背景、つまり注目画素の逆エッジ方向aposに隣接すると判定する(ステップS35)。
何れの条件も満たさない場合(ステップS34;N)、画素値決定部52は、スムージングされた周辺画素がエッジ方向posにも逆エッジ方向aposにも隣接しないと判定し、ステップS31で決定された注目画素の画素値G[25]を出力する。
【0070】
スムージングされた周辺画素が隣接する方向が特定されると、画素値決定部52は注目画素の元の画素値C[25]に、細線化処理による注目画素の画素値の変化量dST[25]、スムージング処理による当該周辺画素の画素値の変化量dSMT[P]を加えた値を、注目画素の画素値G[25]として決定する(ステップS36)。Pはpos又はaposが入力される。dSMT[P]は、スムージングされた周辺画素がエッジ方向posに隣接するのであれば、dSMT[pos]が用いられ、逆エッジ方向aposに隣接するのであれば、dSMT[apos]が用いられる。
【0071】
その後、注目画素の画素値G[25]を前景と背景の画素値によって修正する点は、ケース1と同じである。よって、図11と同じ処理のステップには図13においても同じステップ番号を付して説明を省略する。
【0072】
〈ケース3〉
図15は、ケース3に対し、画素値決定部53が実行する処理のフローチャートである。
ケース3において注目画素はスムージングのみ行われているので、注目画素は図16(a)に示すような背景のエッジであるか、或いは図16(b)に示すような前景のエッジであることが想定される。背景のエッジである場合、図16(a)に示すように注目画素Mの変化量dSMTは正の値であり、スムージング処理によって画素値が増加される。注目画素Mにエッジ方向posに隣接する周辺画素Nの変化量dSTは負の値であり、細線化処理によって画素値が減じられる。前景のエッジである場合、図16(b)に示すように注目画素Mの変化量dSMTは負の値であり、スムージング処理によって画素値が減じられる。注目画素Mに逆エッジ方向aposに隣接する周辺画素Nの変化量dSTは正の値であり、細線化処理によって画素値が増加される。
【0073】
このように、スムージングされた注目画素のエッジ方向pos又は逆エッジ方向aposに、細線化された周辺画素が隣接する場合、画素値決定部53は、注目画素とともに当該周辺画素の細線化処理とスムージング処理が同時に実現されたときの画素値G[P]を決定する。
【0074】
注目画素はスムージングのみされているので、画素値決定部53は、図15に示すように注目画素の元の画素値C[25]にスムージング処理による注目画素の変化量dSMT[25]を加えた値を、細線化処理とスムージング処理が同時に実現されたときの注目画素の画素値G[25]として一時的に決定する(ステップS41)。次に、画素値決定部53は、細線化された周辺画素がエッジ方向posと逆エッジ方向aposの何れの方向に隣接するかを判定する。
【0075】
画素値決定部53は、エッジ方向pos、エッジ方向posにおいて注目画素に隣接する周辺画素について入力された変化量dST[pos]、dSMT[pos]が、pos≠0、dST[pos]≠0、dSMT[pos]=0を満たす場合(ステップS42;Y)、細線化された周辺画素が注目画素のエッジ方向posに隣接すると判定する(ステップS43)。
【0076】
画素値決定部53は、逆エッジ方向apos、逆エッジ方向aposにおいて注目画素に隣接する周辺画素について入力された変化量dST[apos]、dSMT[apos]が、apos≠0、dST[apos]≠0、dSMT[apos]=0を満たす場合(ステップS42;N、S44;Y)、細線化された周辺画素が注目画素の逆エッジ方向aposに隣接すると判定する(ステップS45)。
何れの条件も満たさない場合(ステップS44;N)、画素値決定部53は、細線化された周辺画素がエッジ方向posにも逆エッジ方向aposにも隣接しないと判定し、ステップS41で決定された注目画素の画素値G[25]を出力する。
【0077】
細線化された周辺画素が隣接する方向が特定されると、画素値決定部53は注目画素の画素値C[25]と、細線化された周辺画素の画素値C[P]のうち、大きい方をL、小さい方をSに入力し(ステップS46)、下記式によりtempを算出する(ステップS47)。
temp=L+S+dST[P]+dSMT[25]
Pはpos又はaposが入力される。C[P]、 dST[P]は、細線化された周辺画素がエッジ方向posに隣接するのであればC[pos]、dST[pos]であり、逆エッジ方向に隣接するのであればC[apos]、dST[apos]である。
【0078】
tempは、スムージングされた注目画素の画素値と細線化された周辺画素の画素値を足し合わせた総和である。画素値決定部53は、このtempを注目画素と周辺画素に配分する。
【0079】
スムージング処理による注目画素の画素値の変化量dSMT[25]と、細線化処理による周辺画素の画素値の変化量dST[P]の合計が正の値である場合、注目画素のスムージングと周辺画素の細線化によって、この2つの画素の画素値の総和tempが元の画素値の合計L+Sより大きくなる。この場合、画素値決定部53は、元の画素値が大きい方の画素に画素値Lを割り当て、他方の画素値に残りの画素値temp−Lを割り当てる。なお、総和tempがLの2倍より大きければ、注目画素も周辺画素も画素値はL以上となり、前景にも背景にもなじまない。この場合、画素値決定部53は何れに対しても最大限許容されるLの値を割り当てる。
【0080】
図15に示すように、temp>L+Sを満たし(ステップS48;Y)、temp<L×2を満たす場合(ステップS49;Y)、画素値決定部53は注目画素の元の画素値C[25]が周辺画素の元の画素値C[P]より大きければ、注目画素の画素値G[25]=L、周辺画素の画素値G[P]=temp−Lに決定する。注目画素の元の画素値C[25]が周辺画素の元の画素値C[P]より小さければ、画素値決定部53は注目画素の画素値G[25]=temp−L、周辺画素の画素値G[P]=Lに決定する(ステップS50)。
temp>L+Sを満たすが(ステップS48;Y)、temp<L×2を満たさない場合(ステップS49;N)、注目画素の画素値G[25]=L、周辺画素の画素値G[P]=Lに決定する(ステップS51)。
【0081】
一方、スムージング処理による注目画素の画素値の変化量dSMT[25]と、細線化処理による周辺画素の画素値の変化量dST[P]の合計が負の値である場合、注目画素のスムージングと周辺画素の細線化によって、この2つの画素の画素値の総和tempが元の画素値の合計L+Sより小さくなる。この場合、画素値決定部53は、元の画素値が小さい方の画素に画素値Sを割り当て、他方の画素に残りの画素値temp−Sを割り当てる。なお、総和tempがSの2倍より小さければ、注目画素も周辺画素も画素値はS以下となり、前景にも背景にもなじまない。この場合、画素値決定部53は何れに対しても最大限許容されるSの値を割り当てる。
【0082】
図15に示すように、temp>L+Sを満たさず(ステップS48;N)、temp>S×2を満たす場合(ステップS52;Y)、注目画素の元の画素値C[25]が周辺画素の元の画素値C[P]より大きければ、画素値決定部53は注目画素の画素値G[25]=temp−S、周辺画素の画素値G[P]=Sに決定する。注目画素の元の画素値C[25]が周辺画素の元の画素値C[P]より小さければ、画素値決定部53は注目画素の画素値G[25]=S、周辺画素の画素値G[P]=temp−Sに決定する(ステップS53)。
temp>L+Sを満たさず(ステップS48;N)、temp>S×2も満たさない場合(ステップS52;N)、画素値決定部53は注目画素の画素値G[25]=S、周辺画素の画素値G[P]=Sに決定する(ステップS54)。
【0083】
〈ケース4〉
図17は、ケース4に対し、画素値決定部54が実行する処理のフローチャートである。
ケース4において注目画素は細線化もスムージングも行われていないので、注目画素は図18(a)に示すような前景の内エッジであるか、図18(b)に示すような背景の内エッジであることが想定される。前景の内エッジである場合、図18(a)に示すように注目画素Mは細線化もスムージングもされないが、注目画素Mに逆エッジ方向aposに隣接する周辺画素Nの変化量dST、dSMTはそれぞれ負の値であるので、細線化処理及びスムージング処理によって画素値が減じられる。背景の内エッジである場合、図18(b)に示すように注目画素Mは細線化もスムージングもされないが、注目画素Mにエッジ方向に隣接する周辺画素Nの変化量dST、dSMTはそれぞれ正の値であるので、細線化処理及びスムージング処理によって画素値が増加される。
【0084】
このように、エッジ方向pos又は逆エッジ方向aposにおいて細線化もスムージングもされた周辺画素が注目画素に隣接する場合、画素値決定部54は、注目画素とともに当該周辺画素の細線化処理とスムージング処理が同時に実現されたときの画素値G[P]を決定する。
【0085】
注目画素は細線化もスムージングもされていないので、画素値決定部54は、図17に示すように注目画素の元の画素値C[25]を、細線化処理とスムージング処理が同時に実現されたときの注目画素の画素値G[25]として一時的に決定する(ステップS61)。
【0086】
次に、画素値決定部54は、注目画素、注目画素のエッジ方向posに隣接する周辺画素、逆エッジ方向aposに隣接する周辺画素の3つの画素が略同一の画素値であるかを判定する(ステップS62)。注目画素が内エッジである場合、注目画素と、エッジ方向pos及び逆エッジ方向aposに隣接する周辺画素の3つの画素の画素値は略同一となるからである。画素値決定部54は、エッジ方向posに隣接する周辺画素の画素値C[pos]から逆エッジ方向aposに隣接する周辺画素の画素値C[apos]を差し引いた値と、エッジ方向posに隣接する周辺画素の画素値C[pos]から注目画素の画素値C[25]を差し引いた値の何れもが閾値Th3未満である場合、3つの画素の画素値は略同一であると判定する。何れか一方でも閾値Th3を越える場合、画素値決定部54は3つの画素の画素値は略同一ではないと判定する。
【0087】
3つの画素の画素値が略同一ではない場合(ステップS62;N)、注目画素は内エッジではなく、内エッジより内側に位置するので、画素値決定部54はステップS61で決定された画素値G[25]を出力する。注目画素が内エッジより内側に位置する場合、注目画素に隣接する周辺画素も内エッジか内エッジより内側に位置するので、当該周辺画素に対する細線化やスムージングは適当でない。よって、画素値決定部54は強制的に周辺画素の変化量をdST[pos]=dST[apos]=0に修正し(ステップS63)、細線化やスムージングを無効化する。
【0088】
3つの画素の画素値が略同一である場合(ステップS62;Y)、注目画素は内エッジである。画素値決定部54は、細線化され、スムージングされた周辺画素が注目画素のエッジ方向posと逆エッジ方向aposの何れの方向に隣接するかを判定する(ステップS64)。
【0089】
画素値決定部54は、エッジ方向pos、エッジ方向posにおいて注目画素に隣接する周辺画素について入力された変化量dST[pos]、dSMT[pos]が、pos≠0、dST[pos]≠0、dSMT[pos]≠0を満たす場合(ステップS64;Y)、細線化され、スムージングされた周辺画素が注目画素のエッジ方向posに隣接すると判定する(ステップS65)。
【0090】
画素値決定部52は、逆エッジ方向apos、逆エッジ方向aposにおいて注目画素に隣接する周辺画素について入力された変化量dST[apos]、dSMT[apos]が、apos≠0、dST[apos]≠0、dSMT[apos]≠0を満たす場合(ステップS64;N、S66;Y)、細線化され、スムージングされた周辺画素が注目画素の逆エッジ方向aposに隣接すると判定する(ステップS67)。
何れの条件も満たさない場合(ステップS66;N)、画素値決定部54は、細線化され、スムージングされた周辺画素は注目画素のエッジ方向及び逆エッジ方向の何れにも隣接しないと判定し、ステップS61で決定された注目画素の画素値G[25]を出力する。
【0091】
細線化され、スムージングされた周辺画素がエッジ方向posに隣接すると特定された場合、画素値決定部54は当該周辺画素の画素値C[pos]に、細線化の変化量dST[pos]、スムージングによる変化量dSMT[pos]を加えた値を、細線化処理とスムージング処理が同時に実現されたときの周辺画素の画素値G[pos]として決定する(ステップS68)。
【0092】
細線化及びスムージングによって周辺画素の画素値G[pos]が前景の画素値より大きくなると、不自然である。よって、画素値決定部54は、決定された画素値G[pos]が、注目画素からエッジ方向posに2画素離れた周辺画素の画素値C[2pos]より大きい場合(ステップS69;Y)、周辺画素の画素値G[pos]を2画素離れた周辺画素の画素値C[2pos]に修正する。また、画素値決定部54は周辺画素で処理しきれなかった残りの画素値G[pos]−C[2pos]を、注目画素の画素値C[25]に加えた値を、細線化処理とスムージング処理が同時に実現されたときの注目画素の画素値G[25]として決定する(ステップS70)。
【0093】
決定された注目画素の画素値G[25]も前景の画素値以下に収めるため、決定された注目画素の画素値G[25]がエッジ方向に2画素離れた周辺画素の画素値C[2pos]より大きければ(ステップS71;Y)、画素値決定部54は注目画素の画素値G[25]を2画素離れた周辺画素の画素値C[2pos]にさらに修正する(ステップS72)。
【0094】
一方、細線化され、スムージングされた周辺画素が逆エッジ方向aposに隣接すると特定された場合、画素値決定部54は当該周辺画素の画素値C[apos]に、細線化処理による変化量dST[apos]、スムージング処理による変化量dSMT[apos]を加えた値を、細線化処理とスムージング処理が同時に実現されたときの周辺画素の画素値G[apos]として決定する(ステップS73)。
【0095】
細線化及びスムージングによって周辺画素の画素値G[apos]が背景の画素値より小さくなると、不自然である。よって、画素値決定部54は、決定された画素値G[apos]が、注目画素から逆エッジ方向に2画素離れた周辺画素の画素値C[2apos]より小さい場合(ステップS74;Y)、周辺画素の画素値G[apos]を2画素離れた周辺画素の画素値C[2apos]に修正する。また、画素値決定部54は周辺画素で処理しきれなかった残りの画素値G[apos]−C[2apos]を、注目画素の画素値C[25]に加えて、注目画素の画素値G[25]として決定する(ステップS75)。
【0096】
決定された注目画素の画素値G[25]も背景の画素値以下に収めるため、決定された注目画素の画素値G[25]が逆エッジ方向に2画素離れた周辺画素の画素値C[2apos]より小さければ(ステップS76;Y)、画素値決定部54は注目画素の画素値G[25]を2画素離れた周辺画素の画素値C[2apos]にさらに修正する(ステップS77)。
【0097】
図19(a)は、上記ブレンド処理部5が行う処理のイメージ図である。
図19(a)に示す画像を細線化処理及びスムージング処理する場合、注目画素M1は細線化のみされるためケース2に分類される。このとき、エッジ方向及び逆エッジ方向に隣接する周辺画素は細線化もスムージングもされないため、細線化のみされた注目画素M1の画素値が出力される。
【0098】
一方、注目画素M2はスムージングされ、注目画素M2のエッジ方向に隣接する周辺画素N2が細線化される。よって、ケース3に分類され、スムージングされた注目画素M2の画素値と細線化された周辺画素N2の画素値を足し合わせた画素値が、元の画素値が大きい周辺画素N2に寄せるように注目画素M2と周辺画素N2に配分される。
【0099】
注目画素M3はスムージングと細線化の双方が行われ、エッジ方向又は逆エッジ方向に隣接する周辺画素は細線化もスムージングもされない。この場合はケース1に分類され、細線化され、スムージングされた注目画素M3の画素値が出力される。
【0100】
その結果、図19(b)に示すように、直線部分は細線化され、斜線部分はスムージングによって滑らかに階段化されて、細線化とスムージングがバランスよく実現されている。
このようなブレンド処理部5の良好な処理結果に対し、直線部分は細線化処理、斜線部分はスムージング処理と、画像の構造によって処理を切り替える方法や、細線化処理も同時に行われることを考慮してスムージング処理時に変更された画素値を小さな値に設定するような方法では、細線化とスムージングを同時に実現することは難しい。
【0101】
図20(a)は元の画像を示す。図20(b)は元の画像に対し、細線化処理とスムージング処理を同時に行った場合に実現したい目標画像である。
元の画像にスムージング処理のみ実行すると、図20(c)に示すように、斜線部分のエッジに位置する画素の画素値が増加され、滑らかな斜線となる。元の画像に細線化処理のみ実行すると、図20(d)に示すように、直線部分の画素値が減じられ、視覚的に細線化される。
【0102】
スムージング処理と細線化処理の双方を同時に施す場合、図20(b)に示す目標画像のように、斜線部分は滑らかとなり、直線部分はエッジの画素値が減じられることが期待される。しかし、単に斜線部分をスムージング処理、直線部分を細線化処理するように切り替えると、図20(e)に示すように、矢印で示す箇所に予期しない段差が生じ、滑らかな斜線が実現できない。
また、細線化処理も同時に行われることを考慮してスムージング処理時に変更された画素値を小さな値に設定した場合、図20(f)に示すような処理結果となる。図20(e)に示される処理結果よりは改善が見られるものの、矢印で示す箇所に段差が生じ、目標画像や本実施の形態に係るブレンド処理部5の処理結果(図19(b)参照)に比べれば画質が劣る。
【0103】
上述の細線化処理とスムージング処理を同時に実現するブレンド処理において、細線化された画素が孤立すると、細線化もスムージングも実現せず、画質劣化を引き起こす。そこで、図1に示すように、画像処理装置1は細線化調整部6を備え、細線化調整部6は細線化された画素が孤立する場合に細線化処理部3による細線化を無効化する。
【0104】
細線化調整部6は、ブレンド処理部5における注目画素とその周辺画素の変化量dSTを細線化処理部3から入力し、入力された変化量dSTにより注目画素とその周辺画素で細線化された画素が孤立するか否かを判定する。孤立すると判定された場合、細線化調整部6は注目画素と周辺画素のうち、細線化された画素の変化量dSTを0の値にリセットし、細線化を無効化する。細線化調整部6は、制御部7から制御信号SWに応じて細線化の無効化を実行する。
【0105】
制御部7は、細線化調整部6に制御信号SWを出力し、細線化調整部6による細線化の無効化を実行するか否かを切り替える。制御部7は、細線化の無効化を実行する設定の場合はSW=1、無効化を実行しない設定の場合はSW=0を出力する。
【0106】
図21は、細線化調整部6が実行する処理のフローチャートである。
図21に示すように、細線化調整部6は、3つの細線化処理部3から出力される1×3画素の変化量dSTを主走査方向に3画素分保持し、識別番号25の注目画素とその周辺画素からなる3×3画素の変化量dSTを入力する。細線化調整部6は、3×3画素のうち、細線化処理によって細線化された画素、つまりdST≠0の画素の数をカウントし、そのカウント数を孤立度CNとして出力する(ステップS81)。
【0107】
孤立度CN、つまり細線化された画素の数が1又は2であれば、3×3画素において細線化された画素が孤立すると考えられる。以下、孤立度CNが0より大きく2以下であれば、細線化調整部6は細線化された画素が孤立すると判定する例を示すが、細線化された画素が孤立する判定基準として孤立度CNが0より大きく1以下の条件を用いてもよい。孤立度CNが1以下の判定基準であっても2以下の判定基準の場合と同様の効果が得られる。
【0108】
細線化調整部6は、CN≦2かつSW=1の場合(ステップS82;Y)、注目画素と注目画素にエッジ方向又は逆エッジ方向に隣接する周辺画素のうち、細線化された画素の細線化処理による画素値の変化量dST[25]、dST[pos]、dST[apos]を強制的に0の値にリセットする(ステップSS83)。細線化された画素がエッジ方向pos又は逆エッジ方向aposに隣接する周辺画素である場合、細線化調整部6は注目画素が細線化されていることを条件に当該周辺画素の変化量dST[pos]、dST[apos]をリセットすることが好ましい。リセット後、細線化調整部6は3×3画素(注目画素と周辺画素)の細線化処理による画素値の変化量dSTをブレンド処理部5に出力する。
【0109】
CN≦2かつSW=1を満たさない場合(ステップS82;N)、細線化された画素が孤立しないか、孤立するが細線化のリセットを実行しない設定がされているかの何れかである。何れの場合も、細線化調整部6は変化量dSTのリセットは実行せず、入力された3×3画素の細線化処理による変化量dSTをそのままブレンド処理部5に出力する。
【0110】
ブレンド処理部5の分類部50は、細線化調整部6から出力された変化量dSTを用いて前述のケース1〜4への分類を行う。注目画素の細線化が無効化された場合、ケース3又はケース4に分類される。また、画素値決定部51〜54も細線化調整部6から出力された変化量dSTを用いて前述の注目画素のG[25]、注目画素のエッジ方向pos又は逆エッジ方向aposに隣接する周辺画素の画素値G[pos]、G[apos]の決定を行う。
【0111】
上記細線化の無効化によって細線の再現性が向上する。
例えば、図22(a)に示すように3画素幅の細線が階段状に並ぶ斜線構造を持つ元画像に対し、スムージング処理のみを施すと、処理結果として図22(b)に示すような画像が得られる。スムージング処理によって段差部分の各画素の画素値が増減され、滑らかな斜線が形成されている。
【0112】
一方、元画像に細線化処理のみを施した場合は処理結果として図22(c)に示すような画像が得られる。図22(c)に示すように細線化された画素(図22(c)中、丸で囲まれた画素)が1画素のみであり孤立する場合、ブレンド処理部5により細線化処理とスムージング処理が同時に実現されると、図22(d)において丸で囲まれた、孤立する細線化された画素において過剰に画素値が減じられ、スムージングが実現できない。
【0113】
そこで、孤立する細線化された画素の細線化が無効化されると、図22(c)に示す画像に替えて図22(e)に示す画像が細線化処理の処理結果として得られる。図22(e)において丸で囲まれた画素が、細線化が無効化された画素である。その後、ブレンド処理部5により細線化処理とスムージング処理が同時に実現されると、図22(f)に示すように細線化もスムージングも実現された細線の画像が得られる。
【0114】
以上のように、本実施の形態によれば、画像データに細線化処理を施す細線化処理部3と、画像データにスムージング処理を施すスムージング処理部2と、画像データの各画素についてエッジ方向posを判定するエッジ方向判定部4と、注目画素、注目画素の周辺画素の各画素値、スムージング処理による画素値の変化量dSMT、細線化処理による画素値の変化量dST、注目画素について判定されたエッジ方向posを用い、注目画素における細線化の有無、スムージングの有無の組み合わせに応じて、スムージング処理と細線化処理が同時に実現されたときの注目画素の画素値G[25]を決定するブレンド処理部5と、注目画素及びその周辺画素の細線化処理による画素値の変化量dSTにより、細線化された画素が孤立するか否かを判定し、孤立すると判定された場合、注目画素又は注目画素のエッジ方向pos又は逆エッジ方向aposに隣接する周辺画素のうち、細線化された画素の細線化処理による画素値の変化量dST[25]、dST[pos]、dST[apos]を0の値にリセットする細線化調整部6と、を備える。ブレンド処理部5は、注目画素の画素値G[25]の決定に、リセットされた細線化処理による画素値の変化量dST[25]、dST[pos]、dST[apos]を用いる。
【0115】
これにより、細線化処理とスムージング処理を同時に実現するうえで、細線化された画素の孤立によって生じる画質の劣化を防ぐことができる。
【0116】
細線化調整部6は、細線化された画素が注目画素のエッジ方向pos又は逆エッジ方向aposに隣接する周辺画素である場合、注目画素が細線化されていることを条件に当該周辺画素の細線化処理による画素値の変化量dST[pos]、dST[apos]を0の値にリセットすることが好ましい。
【0117】
細線化調整部6によるリセットを実行するか否かを切り替える制御部7を備えるので、変化量dSTのリセットを実行するか否かは適宜切り替えることができる。
【0118】
なお、上述した実施の形態は本発明の好適な一例であり、これに限定されない。
例えば、ブレンド処理部5が注目画素における細線化の有無、スムージングの有無の組み合わせをケース1〜4に分類した後に、細線化調整部6が変化量dSTのリセットを行ってもよい。この場合、画素値決定部51〜54がそれぞれ細線化調整部6を備え、図11、13、15、17に示した処理の前に、図21に示した細線化調整部6による処理を実行する。これにより、ケース1、2の場合、注目画素の変化量dST[25]がdST[25]=0にリセットされる。ケース3、4の場合、エッジ方向posに隣接する周辺画素の変化量dST[pos] 又は逆エッジ方向aposに隣接する周辺画素の変化量dST[apos]が0にリセットされる。
【0119】
上述した実施の形態ではケース1〜4の分類前に変化量dSTの値が0にリセットされるため、リセットがケース1〜4の分類に関わってくる。これに対し、ケース1〜4の分類後にリセットを行うことにより、ケース1〜4の分類は元々の変化量dSTの値を用いて行い、ブレンド処理部5が画素値の演算をするときだけリセットした変化量dSTの値を用いることができる。
【0120】
また、細線化処理、スムージング処理の処理方法は、上述した処理方法に限定されない。細線化処理による画素値の変化量、スムージング処理による画素値の変化量を出力するのであれば、何れの処理方法であってもよい。
【0121】
また、ブレンド処理部5が用いる変化量dST、dSMTを、スムージング処理部2、細線化処理部3がそれぞれ算出していたが、スムージング処理部2、細線化処理部3からは処理後の画素値を出力し、ブレンド処理部5が処理後の画素値から元の画素値を差し引いて変化量dST、dSMTを算出してもよい。
【0122】
また、ブレンド処理部5や細線化調整部6等の各部の処理内容をプログラム化し、このプログラムとCPU等との協働によってソフトウェア処理してもよい。このとき、プログラムのコンピューター読み取り可能な媒体としては、ROM、フラッシュメモリー等の不揮発性メモリー、CD-ROM等の可搬型記録媒体を適用することが可能である。また、プログラムのデータを通信回線を介して提供する媒体として、キャリアウエーブ(搬送波)も本発明に適用される。
【符号の説明】
【0123】
1 画像処理装置
2 スムージング処理部
3 細線化処理部
4 エッジ方向判定部
5 ブレンド処理部
6 細線化調整部
7 制御部
【特許請求の範囲】
【請求項1】
画像データに細線化処理を施す細線化処理部と、
画像データにスムージング処理を施すスムージング処理部と、
画像データの各画素についてエッジ方向を判定するエッジ方向判定部と、
注目画素、注目画素の周辺画素の各画素値、前記スムージング処理による画素値の変化量、前記細線化処理による画素値の変化量、注目画素について判定された前記エッジ方向を用い、前記注目画素における細線化の有無、スムージングの有無の組み合わせに応じて、前記スムージング処理と前記細線化処理が同時に実現されたときの前記注目画素の画素値を決定するブレンド処理部と、
前記注目画素及びその周辺画素の前記細線化処理による画素値の変化量により、細線化された画素が孤立するか否かを判定し、孤立すると判定された場合、注目画素又は注目画素のエッジ方向又は逆エッジ方向に隣接する周辺画素のうち、細線化された画素の前記細線化処理による画素値の変化量を0の値にリセットする細線化調整部と、を備え、
前記ブレンド処理部は、前記注目画素の画素値の決定に、リセットされた前記細線化処理による画素値の変化量を用いる画像処理装置。
【請求項2】
前記細線化調整部は、細線化された画素が注目画素のエッジ方向又は逆エッジ方向に隣接する周辺画素である場合、注目画素が細線化されていることを条件に当該周辺画素の細線化処理による画素値の変化量を0の値にリセットする請求項1に記載の画像処理装置。
【請求項3】
前記細線化調整部は、前記ブレンド処理部が前記注目画素の前記細線化処理による画素値の変化量及び前記スムージング処理による画素値の変化量によって、前記注目画素における細線化の有無、スムージングの有無の組み合わせを分類した後、前記リセットを行う請求項1又は2に記載の画像処理装置。
【請求項4】
前記細線化調整部による前記リセットを実行するか否かを切り替える制御部を備える請求項1〜3の何れか一項に記載の画像処理装置。
【請求項5】
画像データに細線化処理を施す工程と、
画像データにスムージング処理を施す工程と、
画像データの各画素についてエッジ方向を判定する工程と、
注目画素、注目画素の周辺画素の各画素値、前記スムージング処理による画素値の変化量、前記細線化処理による画素値の変化量、注目画素について判定された前記エッジ方向を用い、前記注目画素における細線化の有無、スムージングの有無の組み合わせに応じて、前記スムージング処理と前記細線化処理が同時に実現されたときの前記注目画素の画素値を決定する工程と、
前記注目画素及びその周辺画素の前記細線化処理による画素値の変化量により、細線化された画素が孤立するか否かを判定し、孤立すると判定された場合、注目画素又は注目画素のエッジ方向又は逆エッジ方向に隣接する周辺画素のうち、細線化された画素の前記細線化処理による画素値の変化量を0の値にリセットする工程と、を含み、
前記注目画素の画素値を決定する工程は、リセットされた前記細線化処理による画素値の変化量を用いて前記注目画素の画素値を決定する画像処理方法。
【請求項1】
画像データに細線化処理を施す細線化処理部と、
画像データにスムージング処理を施すスムージング処理部と、
画像データの各画素についてエッジ方向を判定するエッジ方向判定部と、
注目画素、注目画素の周辺画素の各画素値、前記スムージング処理による画素値の変化量、前記細線化処理による画素値の変化量、注目画素について判定された前記エッジ方向を用い、前記注目画素における細線化の有無、スムージングの有無の組み合わせに応じて、前記スムージング処理と前記細線化処理が同時に実現されたときの前記注目画素の画素値を決定するブレンド処理部と、
前記注目画素及びその周辺画素の前記細線化処理による画素値の変化量により、細線化された画素が孤立するか否かを判定し、孤立すると判定された場合、注目画素又は注目画素のエッジ方向又は逆エッジ方向に隣接する周辺画素のうち、細線化された画素の前記細線化処理による画素値の変化量を0の値にリセットする細線化調整部と、を備え、
前記ブレンド処理部は、前記注目画素の画素値の決定に、リセットされた前記細線化処理による画素値の変化量を用いる画像処理装置。
【請求項2】
前記細線化調整部は、細線化された画素が注目画素のエッジ方向又は逆エッジ方向に隣接する周辺画素である場合、注目画素が細線化されていることを条件に当該周辺画素の細線化処理による画素値の変化量を0の値にリセットする請求項1に記載の画像処理装置。
【請求項3】
前記細線化調整部は、前記ブレンド処理部が前記注目画素の前記細線化処理による画素値の変化量及び前記スムージング処理による画素値の変化量によって、前記注目画素における細線化の有無、スムージングの有無の組み合わせを分類した後、前記リセットを行う請求項1又は2に記載の画像処理装置。
【請求項4】
前記細線化調整部による前記リセットを実行するか否かを切り替える制御部を備える請求項1〜3の何れか一項に記載の画像処理装置。
【請求項5】
画像データに細線化処理を施す工程と、
画像データにスムージング処理を施す工程と、
画像データの各画素についてエッジ方向を判定する工程と、
注目画素、注目画素の周辺画素の各画素値、前記スムージング処理による画素値の変化量、前記細線化処理による画素値の変化量、注目画素について判定された前記エッジ方向を用い、前記注目画素における細線化の有無、スムージングの有無の組み合わせに応じて、前記スムージング処理と前記細線化処理が同時に実現されたときの前記注目画素の画素値を決定する工程と、
前記注目画素及びその周辺画素の前記細線化処理による画素値の変化量により、細線化された画素が孤立するか否かを判定し、孤立すると判定された場合、注目画素又は注目画素のエッジ方向又は逆エッジ方向に隣接する周辺画素のうち、細線化された画素の前記細線化処理による画素値の変化量を0の値にリセットする工程と、を含み、
前記注目画素の画素値を決定する工程は、リセットされた前記細線化処理による画素値の変化量を用いて前記注目画素の画素値を決定する画像処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【公開番号】特開2013−34181(P2013−34181A)
【公開日】平成25年2月14日(2013.2.14)
【国際特許分類】
【出願番号】特願2012−132699(P2012−132699)
【出願日】平成24年6月12日(2012.6.12)
【出願人】(303000372)コニカミノルタビジネステクノロジーズ株式会社 (12,802)
【Fターム(参考)】
【公開日】平成25年2月14日(2013.2.14)
【国際特許分類】
【出願日】平成24年6月12日(2012.6.12)
【出願人】(303000372)コニカミノルタビジネステクノロジーズ株式会社 (12,802)
【Fターム(参考)】
[ Back to top ]