画像処理装置、画像形成装置及び画像処理装置の細線化方法
【課題】高解像度においても再現性の良い細線化が可能な画像処理装置及び画像形成装置を提供する。
【解決手段】細線化後に変形しやすい形状である特異点を検出してフィルタ選択の基礎となるフラグを強制的に変更する特異点検出部211を備える。また、あらかじめ格納されているテーブルに従って黒画素の連結性のパターンに応じた修正パターンを出力するライン調整処理選択テーブル208を備える。これらの出力により、よりきめの細かい細線化制御を行う。
【解決手段】細線化後に変形しやすい形状である特異点を検出してフィルタ選択の基礎となるフラグを強制的に変更する特異点検出部211を備える。また、あらかじめ格納されているテーブルに従って黒画素の連結性のパターンに応じた修正パターンを出力するライン調整処理選択テーブル208を備える。これらの出力により、よりきめの細かい細線化制御を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プリンタ、多機能画像形成装置(以下、MFPと呼ぶ。)などの画像形成装置に用いられる画像処理装置及び画像形成処理方法並びにこれらを用いたプリンタ、MFPに関する。
【背景技術】
【0002】
従来の画像処理装置は、形成する画像の輪郭部を整形し、印刷領域を小さくする細線化を行う。細線化を行うと、トナーなどの現像剤の消費量を削減することができるという効果がある。この点に関し、細線化の方法が開発されてきた。
【0003】
例えば、細線化前の状態と細線化後の状態の画素のパターンを記憶しておき、パターンマッチングによって細線化前の状態に対応する細線化後の状態に画素パターンを変換することにより細線化を行う技術が提案されている(例えば、特許文献1)。
【0004】
この技術によっては、比較的単純な直線や斜線は再現性がよいが、形状が複雑になると再現性が悪くなるという問題点があった。
【0005】
この点に関し、輪郭と黒画素の連結性を判定し、この判定結果に応じて細線化の度合いを切り替える技術が提案されている(例えば、特許文献2)。
【特許文献1】特開2008−153742号公報
【特許文献2】米国特許出願公開第2005/0073723号明細書
【発明の開示】
【発明が解決しようとする課題】
【0006】
この技術は、主として600dpi程度の解像度において、印刷品質の劣化を低減させるのに効果的な方法であった。
【0007】
しかし、近時において画像形成装置の高解像度化が進んできている。このような高解像度の画像形成装置に従来の方法を単純に適用すると、様々な不具合が生じる。
【0008】
図16Aは600dpiの細線化前の画像の例を示す図である。この線を左右1画素分削除する細線化を行うと図16Bのようになる。ここで、斜線部分は削除した部分を表す。
【0009】
図16Cは1200dpiの細線化前の画像の例を示す図である。これに600dpiに適用した細線化を施すと、図16Dのようになる。このように、単純に従来の細線化方法を適用した場合、細線化量が半減するため細線化の効果が十分に得られない。
【0010】
そこで、削除する画素数を2倍にすると、図16Eのようになる。図16Eのように、ある程度の幅を持った線を細線化する場合には、問題はない。しかし、例えば5画素の線から4画素分削除すると細線化後の線は1画素の線となり、細くなりすぎてしまう。
【0011】
そこで、細線化を開始するための画素数の閾値を設けることが考えられる。すなわち、6画素以上の線に対して細線化を施すという制御を行う。この場合、6画素の線から4画素分削除すると2画素となり、細線化を施さない5画素の線より細くなるという問題点が起きる。
【0012】
従って、このような問題が起きないように、例えば図16Fのように細線化量をより細かく制御する必要がある。
【0013】
本発明は上記のような問題点に鑑みてなされたものであり、高解像度においても再現性の良い細線化が可能な画像処理装置及び画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【0014】
この目的を達成するために本発明は、注目画素が輪郭であるかを判定する輪郭画素抽出部と、輪郭画素抽出部が、注目画素が輪郭であると判定した場合に注目画素に施す細線化の量を算出する細線化量計算部と、注目画素を含む画素領域が所定の画素パターンであるかを判定する矩形領域連結性判定部と、矩形領域連結性判定部が注目画素を含む画素領域を所定の画素パターンであると判定しない場合に細線化の量で注目画素に細線化を施し、矩形領域連結性判定部が注目画素を含む画素領域を所定の画素パターンであると判定する場合に細線化の量とは異なる代替の細線化の量で注目画素に細線化を施す選択的補正出力部と、を備えることを特徴とする画像処理装置を提供する。
【発明の効果】
【0015】
本発明によれば、細線化後に変形しやすい形状である特異点を有する図形であってもその図形の特徴を維持しながら細線化することが可能となるという効果がある。また、本発明によれば、よりきめ細やかに制御された細線化をすることが可能となり、再現性が向上するという効果がある。
【発明を実施するための最良の形態】
【0016】
以下、画像処理装置の一実施の形態について、図面を用いて詳細に説明する。
【0017】
(第1の実施形態)
図17は、本実施形態の画像処理装置のハードウエア構成を示す図である。図17に示すように、画像処理装置は、演算装置であるCPU311と、CPU311に接続するノースブリッジ312と、ノースブリッジ312に接続するシステムメモリ313と、を備える。
【0018】
ノースブリッジ312にはさらに、ネットワークインターフェース314、入出力部315、ページメモリ316、データ記憶部317、システムASIC318、画像処理を行うASICである画像処理ASIC319が接続する。
【0019】
図18は、本実施形態の画像処理装置の処理の概要を示すフローチャートである。図18に示すように、画像処理装置は、ステップ1においてパソコンなどの上位機器から印字するためのデータを受信する。
【0020】
画像処理装置は、ステップS2においてイメージ属性分析を行い、印字するためのデータをText,Graphics,photoに分類する。画像処理装置は、ステップS3においてラスター演算を行い、ステップS4においてガンマ変換を行い、ステップS5においてハーフトーン処理を行う。
【0021】
ステップS2からステップS5までの処理はCPU311がソフトウエアを用いて行う。
【0022】
画像処理装置は、ステップS6においてデータを符号化し、データ記憶部317に順次格納する。画像処理装置は、ステップS7において格納したデータを順次読みだして復号化する。ステップS6からステップS7までの処理はシステムASIC318が行う。
【0023】
画像処理装置は、ステップS8において細線化を行い、ステップS9において細線化後のデータをPWMエンジンに出力する。ステップS8の処理は画像処理ASIC319が行う。
【0024】
図19は、画像処理装置の細線化に係る部分のブロック図である。図19に示すように、画像処理装置は画像処理窓Waと、輪郭画素抽出部11と、矩形領域連結性判定部15と、細線化量計算部13と、選択的補正出力部14と、を備える。
【0025】
画像処理窓Waは信号を輪郭画素抽出部11と矩形領域連結性判定部15とに出力する。輪郭画素抽出部11は信号を細線化量計算部13に出力する。細線化量計算部13と矩形領域連結性判定部15は信号を選択的補正出力部14に出力する。以下順に説明する。
【0026】
(画像処理窓)
画像処理窓Waは対象画素を含む2次元の画像信号の記憶領域である。画像処理窓Waには、通常2次元の画像信号が外部から入力する。但し、1次元の信号が入力する場合には、画像の主走査幅以上の記憶容量を持つ複数本のラインメモリがこの1次元信号を一時的に記憶し、この信号を2次元信号として画像処理窓Waが参照する。なお、本実施形態においては、2値画像信号の黒画像を表す信号レベルを“1”、白画像を表す信号レベルを“0”とする。
【0027】
図20は画像処理窓Waの概念図である。図20に示すように、画像処理窓Waは1辺が奇数個の画素の正方形によって表わすことができる。図20には1辺が13画素の画像処理窓Waが示されているが、1辺の大きさはこれに限られるものではない。
【0028】
主走査方向をja、副走査方向をiaとし、左上をWa(0,0)とすると、注目画素33はWa(6,6)となる。
【0029】
図21は、印字すべき画像の細線化前の画像の例である原画像41を示す図である。図22は、この原画像41に注目画素33に合わせて画像処理窓Waを設定した例を示した図である。図22に示すように、画像処理装置は原画像41を、画像処理窓Waを用いて順次走査してゆく。
【0030】
(輪郭画素抽出部)
輪郭画素抽出部11は注目画素33が輪郭であるかを判定する。輪郭画素抽出部11は例えばパターンマッチングによって注目画素33が輪郭であるかを判定する。
【0031】
画像処理窓Waは輪郭画素抽出部11に輪郭画素抽出窓32を出力する。輪郭画素抽出窓32は、画像処理窓Waの注目画素33を中心に含む1辺が奇数個の画素の正方形の領域である。例えば1辺は3画素とすることができる。図20及び図22に輪郭画素抽出窓32の例を示す。この場合、輪郭画素抽出窓32は画像処理窓WaのWa(5,5)からWa(7,7)となる。
【0032】
輪郭画素抽出部11は輪郭パターンを記憶しており、この輪郭パターンと輪郭画素抽出窓32との論理積をとる。
【0033】
図23は、輪郭パターンの例である。図23に示すように輪郭画素抽出部11は注目画素32が輪郭となる場合の例である輪郭パターンを複数記憶している。図22の例において、輪郭画素抽出窓32は33番の輪郭パターンと一致する。このように一致する輪郭パターンが存在する場合、輪郭画素抽出部11は“1”を出力する。一致する輪郭パターンがない場合には、輪郭画素抽出部11は“0”を判定結果Roとして出力する。
【0034】
図24は、輪郭画素抽出部11の処理を示すフローチャートである。図24に示すように、輪郭画素抽出部11は、ステップS101において、輪郭抽出窓を生成し、ステップS102において、カウンタkと判定結果Roを0で初期化する。
【0035】
輪郭画素抽出部11は、ステップS103においてkが輪郭パターンの数nを超えているか判定する。k>nの場合はステップS107に進み、k>nではない場合にはステップS104に進む。
【0036】
輪郭画素抽出部11は、ステップS104において、k番目の輪郭パターンと輪郭画素抽出窓32との論理積を算出し判定結果Roに代入する。輪郭画素抽出部11は、ステップS105において、Roが1かを判定する。輪郭画素抽出部11は、Ro=1の場合はステップS107に進み、Ro=1でない場合にはステップS106に進む。
【0037】
輪郭画素抽出部11は、ステップS106においてkに1を加算し、ステップS103に戻る。輪郭画素抽出部11は、ステップS107においてRoを出力する。
【0038】
(矩形領域連結性判定部)
矩形領域連結性判定部15は矩形領域判定窓wcにおける連結性を判定し、結果を出力する。矩形領域判定窓wcは、画像処理窓Waのうち注目画素33を中心に含む1辺が奇数画素の正方形として表すことができる。矩形領域判定窓wcの1辺は、例えば7画素と13画素のように大きさの異なる領域を用いることができる。
【0039】
本実施形態においては、第1の矩形領域連結性判定部151においては1辺が13画素の矩形領域判定窓wc1を、第2の矩形領域連結性判定部152においては1辺が7画素の矩形領域判定窓wc2を用いている。
【0040】
図1は、矩形領域連結性判定部15の概要を示すブロック図である。第1の矩形領域連結性判定部151と第2の矩形領域連結性判定部152の構成は矩形領域判定窓wc1と矩形領域判定窓wc2の大きさ以外は同じである。以下、第1の矩形領域判定部151を例に説明する。
【0041】
図1に示すように、矩形領域連結性判定部151は、行単位連結性カウント202と、列単位連結性カウント203と、上辺連結性判定部204と、下辺連結性判定部205と、左辺連結性判定部206と、右辺連結性判定部207と、ライン調整決定部210と、特異点検出部211とを備える。以下、各部について説明する。
【0042】
(行単位連結性カウント及び列単位連結性カウント)
行単位連結性カウント202は画像処理窓Waから信号を入力する。行単位連結性カウント202はこの入力した信号から行の連結性を判定して出力する。
【0043】
図2Aは、連結性判定の処理方法を示した図である。図2において、判定bitは予め設定されたビット値であり、細線化を行う場合は1が設定されている。p0からp8は矩形領域判定窓wc1の1列を表す。ここでは、矩形領域判定窓wc1の1辺は9画素であるとする。
【0044】
行単位連結性カウント202は、まず判定bitとp0とのxorを算出する。
【0045】
ここで、xorは排他的論理和を意味する。すなわち、A xor Bの値は、A=Bのとき0であり、A≠Bのとき1である。
【0046】
判定bitは1であり、p0は0であるため、判定bitとp0とのxorであるSxor0は1となる。
【0047】
次に、行単位連結性カウント202はp0とp1とのxorであるSxor1を算出する。p0は0であり、p1も0であるためSxor1は0となる。
【0048】
行単位連結性カウント202はこれを順次繰り返して9個のSxorを算出する。
【0049】
次に算出した9個のSxorの和であるcnt_bを算出する。図2Aの例ではcnt_bは1である。
【0050】
図2Bは判定対象となった列の全ての画素が1である場合の例を示す図である。図2Bに示すように、判定対象となった列の全ての画素が1である場合、すべてのSxorが0となるため、cnt_bは0となる。
【0051】
図2Cは判定の対象となった列に一部白い画素がある場合の例を示す図である。図2Cに示すように、p2 xor p3と、p5 xor p6がそれぞれ1となるため、cnt_bは2となる。
【0052】
図3は矩形領域判定窓wc1の1辺が13画素である場合の例を示す図である。図3に示すように、行単位連結性カウント202は、上辺から下辺に向かって13個のcnt_b[0]を計算し、次いで下辺から上辺に向かって13個のcnt_b[2]を計算する。
【0053】
図3の例では、6画素の幅の横線が示されている。この場合、cnt_b[0]とcnt_b[2]はすべて3となる。また、cnt_b[1]とcnt_b[3]は線部が0であり、線部以外の部分が1となる。
【0054】
行単位連結性カウント202は、算出したcnt_b[0]を上辺連結性判定部204に、cnt_b[2]を下辺連結性判定部205に、それぞれ出力する。
【0055】
列単位連結性カウント203は行単位連結性カウント202と同様の動作によって、左辺から右辺に向かって13個のcnt_b[1]を計算し、次いで右辺から左辺に向かって13個のcnt_b[3]を計算する。
【0056】
列単位連結性カウント203は、算出したcnt_b[1]を左辺連結性判定部206に、cnt_b[3]を右辺連結性判定部207に、それぞれ出力する。
【0057】
図4は、行単位連結性カウント202のcnt_b算出のフローチャートである。図4に示すように、ステップS201において、行単位連結性カウント202はカウンタiとcnt_bとを0で初期化する。ステップS202において、行単位連結性カウント202は判定bitとp0とのxorであるSxor0を算出する。
【0058】
ステップS203において、行単位連結性カウント202はiに1を加算する。ステップS204において、行単位連結性カウント202はiが8より大きいか判定する。この8という値は、矩形領域判定窓wc1の1辺が9画素である場合の値である。例えば矩形領域判定窓wc1の1辺が13画素である場合は12となる。i>8のとき、行単位連結性カウント202はステップS206に進み、i>8ではないとき、ステップS205に進む。
【0059】
ステップS205において、行単位連結性カウント202は(i−1)番目の画素であるpi−1とi番目の画素であるpiとのxorを算出してi番目のSxorであるSxoriに代入し、ステップS203に戻る。
【0060】
ステップS206において、行単位連結性カウント202は0番目から8番目のSxorを合計してcnt_bに代入する。ステップS207において、行単位連結性カウント202はcnt_bを出力する。
【0061】
行単位連結性カウント202はこのステップS201からS207までの工程を矩形領域判定窓wc1の1辺画素数分だけ繰り返すことにより、4bitのcnt_bを矩形領域判定窓wc1の1辺画素数分だけ算出し、上辺連結性判定部204に出力する。
【0062】
さらに、行単位連結性カウント202はステップS201からS207までの工程を矩形領域判定窓wc1の下辺から上辺に向かって矩形領域判定窓wc1の1辺画素数分だけ繰り返すことにより、4bitのcnt_bを矩形領域判定窓wc1の1辺画素数分だけ算出し、下辺連結性判定部205に出力する。
【0063】
列単位連結性カウント203は、上記の行単位連結性カウント202のcnt_b算出動作を、矩形領域判定窓wc1の左辺から右辺に向かって行って左辺連結性判定部206に出力し、矩形領域判定窓wc1の右辺から左辺に向かって行って右辺連結性判定部207に出力する。
【0064】
(連結性判定部)
上辺連結性判定部204と、下辺連結性判定部205と、左辺連結性判定部206と、右辺連結性判定部207とは、それぞれcnt_bを入力して連結性を判定し、判定結果としてcnnct_bを出力する。
【0065】
図5は、上辺連結性判定部204の判定方法を示す図である。ここで、連結性判定窓wdは画像処理窓Waのうち注目画素33を中心に含む正方形の領域であり、図5においては1辺が7画素の例を示している。また、図5においては判定bitをbwとして記載してある。
【0066】
上辺連結性判定部204は、cnt_bが全て1以下であるとき、連結性判定値であるcnnct_b[0]=1を判定結果連結部209のb4に出力する。上辺連結性判定部204は、cnt_bに一つでも2以上の値がある場合には、cnnct_b[0]=0を判定結果連結部209のb4に出力する。
【0067】
図5の例においては、cnt_bに3があるため、cnnct_b[0]は0となる。
【0068】
図6は、下辺連結性判定部205の判定方法を示す図である。ここで、連結性判定窓wdは画像処理窓Waのうち注目画素33を中心に含む正方形の領域であり、図6においては1辺が7画素の例を示している。
【0069】
下辺連結性判定部205は、cnt_bが全て1以下であるとき、連結性判定値であるcnnct_b[2]=1を判定結果連結部209のb6に出力する。下辺連結性判定部205は、cnt_bに一つでも2以上の値がある場合には、cnnct_b[2]=0を判定結果連結部209のb6に出力する。
【0070】
図6の例においては、cnt_bに3があるため、cnnct_b[2]は0となる。
【0071】
図7は、左辺連結性判定部206の判定方法を示す図である。ここで、連結性判定窓wdは画像処理窓Waのうち注目画素33を中心に含む正方形の領域であり、図7においては1辺が7画素の例を示している。
【0072】
左辺連結性判定部206は、cnt_bが全て1以下であるとき、連結性判定値であるcnnct_b[1]=1を判定結果連結部209のb5に出力する。左辺連結性判定部206は、cnt_bに一つでも2以上の値がある場合には、cnnct_b[1]=0を判定結果連結部209のb5に出力する。
【0073】
図7の例においては、cnt_bが全て1以下であるため、cnnct_b[0]は1となる。
【0074】
図8は、右辺連結性判定部207の判定方法を示す図である。ここで、連結性判定窓wdは画像処理窓Waのうち注目画素33を中心に含む正方形の領域であり、図8においては1辺が7画素の例を示している。
【0075】
右辺連結性判定部207は、cnt_bが全て1以下であるとき、連結性判定値であるcnnct_b[3]=1を判定結果連結部209のb7に出力する。右辺連結性判定部207は、cnt_bに一つでも2以上の値がある場合には、cnnct_b[3]=0を判定結果連結部209のb7に出力する。
【0076】
図8の例においては、cnt_bに2があるため、cnnct_b[3]は0となる。
【0077】
判定結果連結部209はb4乃至b7の4bitであるflagcをライン調整決定部210に出力する。
【0078】
(特異点検出部)
図9は、丸いドットを画像処理窓Waにて表示した図である。図10は、図9に示す図を従来の方法によって細線化した結果を示す図である。図10に示すように、従来の方法によっては細線化後の図形が丸くならず上下左右に突出した形状となる。
【0079】
本実施形態においては、このような現象が起きる図形である特異点を検出し、より滑らかに細線化するようにflagcを強制的に切り替える。
【0080】
行単位連結性カウント202は特異点検出部211にcnt_b[0]とcnt_b[2]を出力する。列単位連結性カウント203は特異点検出部211にcnt_b[1]とcnt_b[3]を出力する。
【0081】
一方、特異点検出部211は、特異点のcnt_bのパターンである特異点パターンを記憶している。図11Aは特異点とcnt_bのパターンの例である。
【0082】
特異点検出部211は、cnt_bの入力を受け入れると、特異点パターンを順次読みだし、cnt_bとの比較を行う。比較の方法は論理積をとることによっておこなってもよい。
【0083】
図9の例において、wc1は10番目の特異点パターンと同一である。このため、特異点検出部211は画像処理窓Waに特異点が存在すると判定する。
【0084】
特異点検出部211は特異点が存在すると判定したとき、あらかじめ定められたflagcを出力する。例えば、特異点が検出された場合のflagcとして1101を出力する。
【0085】
ライン調整決定部210は特異点検出部211から入力があると、判定結果連結部209からの入力に代えて特異点検出部211からの出力をflagcとして出力する。
【0086】
例えば、判定結果連結部209からの入力が0010のとき、特異点検出部211が1101を出力するとする。0010より1101の方が連結性は高い、このため、後続の細線化量計算部13はより多くの画素を削除する。これにより、特異点の突出部が削除され、より滑らかに細線化される。
【0087】
図11Bは、特異点検出部211の出力に応じて細線化された結果を示した図である。図11Bに示すように、図11Aの10番は図11Bの10番のように、図11Aの11番は図11Bの11番のように、図11Aの12番は図11Bの12番のように、図11Aの13番は図11Bの13番のように、それぞれ滑らかに細線化される。
【0088】
図12は、フラグ連結部16の連結動作を表した図である。図12に示すようにフラグ連結部16は、輪郭画素抽出部11からの出力であるRoをb8に、第1の矩形領域連結性判定部151からのflagcの出力であるflagc[0]をb7乃至b4に、第2の矩形領域連結性判定部152からのflagcの出力であるflagc[1]をb3乃至b0に設定して出力する。
【0089】
(細線化量計算部)
細線化量計算部13は第1の細線化量計算部131乃至第8の細線化量計算部138を備える。細線化量計算部13は輪郭画素抽出窓32を構成する画素の2値化量を入力し、輪郭画素抽出窓32のパターンに従ってフィルタ係数を生成する。
【0090】
このフィルタ係数は、第1の細線化量計算部131乃至第8の細線化量計算部138ではそれぞれ異なっている。例えば、第1の細線化量計算部131から第8の細線化量計算部138まで順により多く細線化するように、第1の細線化量計算部131乃至第8の細線化量計算部138はそれぞれのフィルタ係数を生成し、このフィルタ係数をSFILOUT1乃至SFILOUT8として、選択的補正出力部14のセレクタ141に出力する。
【0091】
セレクタ141は、フラグ連結部16からの入力に従って、0及びSFILOUT1乃至SFILOUT8を切り替えてSELOUTとして加算部142に出力する。
【0092】
図13は、セレクタ141のフィルタ選択の例を示す図である。図13においては説明のためflagc[0]の部分だけを示している。また、フィルタ係数の数を5個にしてある。
【0093】
図13に示すように、セレクタ141は、例えばflagc[0]が0000のときは細線化を行わず、1011のときは削減フィルタの強度を大きくしてより多く削除するように、フィルタ係数を選択する。
【0094】
すなわち、セレクタ141は太線部、太線内部は大きく削り、普通線は中程度に削り、細線部は小さく削るというようにフィルタ係数を選択する。
【0095】
加算部142はSELOUTに注目画素33を加算して、積算部143に出力する、積算部143は加算部142からの入力値にデューティーDTYを積算して細線化処理後画像信号SHW1として出力する。
【0096】
(第1の実施形態の効果)
以上述べたように、本実施形態の画像処理装置は、特異点を検出してフィルタ選択の基礎となるフラグを強制的に変更する特異点検出部を備える。このため、本実施形態の画像処理装置は、特異点を有する図形であってもその図形の特徴を維持しながら細線化することが可能となるという効果がある。
【0097】
(第2の実施形態)
次に、第2の実施形態について述べる。なお、前述した第1の実施形態と同一部分には同一の符号を付し、詳細な説明は省略する。本実施形態において、第1の実施形態と異なる点は矩形領域連結性判定部15の構成と動作である。
【0098】
(矩形領域連結性判定部)
矩形領域連結性判定部15は矩形領域判定窓wcにおける連結性を判定し、結果を出力する。矩形領域判定窓wcは、画像処理窓Waのうち注目画素33を中心に含む1辺が奇数画素の正方形として表すことができる。矩形領域判定窓wcの1辺は、例えば7画素と13画素のように大きさの異なる領域を用いることができる。
【0099】
本実施形態においては、第1の矩形領域連結性判定部151においては1辺が13画素の矩形領域判定窓wc1を、第2の矩形領域連結性判定部152においては1辺が7画素の矩形領域判定窓wc2を用いている。
【0100】
図14は、矩形領域連結性判定部15の概要を示すブロック図である。第1の矩形領域連結性判定部151と第2の矩形領域連結性判定部152の構成は矩形領域判定窓wc1と矩形領域判定窓wc2の大きさ以外は同じである。以下、第1の矩形領域判定部151を例に説明する。
【0101】
図14に示すように、矩形領域連結性判定部151は、行単位連結性カウント202と、列単位連結性カウント203と、上辺連結性判定部204と、下辺連結性判定部205と、左辺連結性判定部206と、右辺連結性判定部207と、ライン調整決定部210と、ライン調整処理選択テーブル208とを備える。以下、各部について説明する。
【0102】
(行単位連結性カウント及び列単位連結性カウント)
行単位連結性カウント202は画像処理窓Waから信号を入力する。行単位連結性カウント202はこの入力した信号から行の連結性を判定して出力する。
【0103】
図2Aは、連結性判定の処理方法を示した図である。図2A乃至図2Cにおいて、判定bitは予め設定されたビット値であり、細線化を行う場合は1が設定されている。p0からp8は矩形領域判定窓wc1の1列を表す。ここでは、矩形領域判定窓wc1の1辺は9画素であるとする。
【0104】
行単位連結性カウント202は、まず判定bitとp0とのxorを算出する。
【0105】
ここで、xorは排他的論理和を意味する。すなわち、A xor Bの値は、A=Bのとき0であり、A≠Bのとき1である。
【0106】
判定bitは1であり、p0は0であるため、判定bitとp0とのxorであるSxor0は1となる。
【0107】
次に、行単位連結性カウント202はp0とp1とのxorであるSxor1を算出する。p0は0であり、p1も0であるためSxor1は0となる。
【0108】
行単位連結性カウント202はこれを順次繰り返して9個のSxorを算出する。
【0109】
次に算出した9個のSxorの和であるcnt_bを算出する。図2Aの例ではcnt_bは1である。
【0110】
なお、ここで、Sxor0乃至Sxor8をまとめてlcountと呼ぶ。
【0111】
図2Bは判定対象となった列の全ての画素が1である場合の例を示す図である。図2Bに示すように、判定対象となった列の全ての画素が1である場合、すべてのSxorが0となるため、cnt_bは0となる。
【0112】
図2Cは判定の対象となった列に一部白い画素がある場合の例を示す図である。図2Cに示すように、p2 xor p3と、p5 xor p6がそれぞれ1となるため、cnt_bは2となる。
【0113】
図3は矩形領域判定窓wc1の1辺が13画素である場合の例を示す図である。図3に示すように、行単位連結性カウント202は、上辺から下辺に向かって13個のcnt_b[0]を計算し、次いで下辺から上辺に向かって13個のcnt_b[2]を計算する。
【0114】
図3の例では、6画素の幅の横線が示されている。この場合、cnt_b[0]とcnt_b[2]はすべて3となる。また、cnt_b[1]とcnt_b[3]は線部が0であり、線部以外の部分が1となる。
【0115】
行単位連結性カウント202は、算出したcnt_b[0]を上辺連結性判定部204に、cnt_b[2]を下辺連結性判定部205に、それぞれ出力する。
【0116】
列単位連結性カウント203は行単位連結性カウント202と同様の動作によって、左辺から右辺に向かって13個のcnt_b[1]を計算し、次いで右辺から左辺に向かって13個のcnt_b[3]を計算する。
【0117】
列単位連結性カウント203は、算出したcnt_b[1]を左辺連結性判定部206に、cnt_b[3]を右辺連結性判定部207に、それぞれ出力する。
【0118】
図4は、行単位連結性カウント202のcnt_b算出のフローチャートである。図4に示すように、ステップS201において、行単位連結性カウント202はカウンタiとcnt_bとを0で初期化する。ステップS202において、行単位連結性カウント202は判定bitとp0とのxorであるSxor0を算出する。
【0119】
ステップS203において、行単位連結性カウント202はiに1を加算する。ステップS204において、行単位連結性カウント202はiが8より大きいか判定する。この8という値は、矩形領域判定窓wc1の1辺が9画素である場合の値である。例えば矩形領域判定窓wc1の1辺が13画素である場合は12となる。i>8のとき、行単位連結性カウント202はステップS206に進み、i>8ではないとき、ステップS205に進む。
【0120】
ステップS205において、行単位連結性カウント202は(i−1)番目の画素であるpi−1とi番目の画素であるpiとのxorを算出してi番目のSxorであるSxoriに代入し、ステップS203に戻る。
【0121】
ステップS206において、行単位連結性カウント202は0番目から8番目のSxorを合計してcnt_bに代入する。ステップS207において、行単位連結性カウント202はcnt_bを出力する。
【0122】
行単位連結性カウント202はこのステップS201からS207までの工程を矩形領域判定窓wc1の1辺画素数分だけ繰り返すことにより、4bitのcnt_bを矩形領域判定窓wc1の1辺画素数分だけ算出し、上辺連結性判定部204に出力する。
【0123】
さらに、行単位連結性カウント202はステップS201からS207までの工程を矩形領域判定窓wc1の下辺から上辺に向かって矩形領域判定窓wc1の1辺画素数分だけ繰り返すことにより、4bitのcnt_bを矩形領域判定窓wc1の1辺画素数分だけ算出し、下辺連結性判定部205に出力する。
【0124】
列単位連結性カウント203は、上記の行単位連結性カウント202のcnt_b算出動作を、矩形領域判定窓wc1の左辺から右辺に向かって行って左辺連結性判定部206に出力し、矩形領域判定窓wc1の右辺から左辺に向かって行って右辺連結性判定部207に出力する。
【0125】
(連結性判定部)
上辺連結性判定部204と、下辺連結性判定部205と、左辺連結性判定部206と、右辺連結性判定部207とは、それぞれcnt_bを入力して連結性を判定し、判定結果としてcnnct_bを出力する。
【0126】
図5は、上辺連結性判定部204の判定方法を示す図である。ここで、連結性判定窓wdは画像処理窓Waのうち注目画素33を中心に含む正方形の領域であり、図5においては1辺が7画素の例を示している。
【0127】
上辺連結性判定部204は、cnt_bが全て1以下であるとき、連結性判定値であるcnnct_b[0]=1を判定結果連結部209のb4に出力する。上辺連結性判定部204は、cnt_bに一つでも2以上の値がある場合には、cnnct_b[0]=0を判定結果連結部209のb4に出力する。
【0128】
図5の例においては、cnt_bに3があるため、cnnct_b[0]は0となる。
【0129】
図6は、下辺連結性判定部205の判定方法を示す図である。ここで、連結性判定窓wdは画像処理窓Waのうち注目画素33を中心に含む正方形の領域であり、図6においては1辺が7画素の例を示している。
【0130】
下辺連結性判定部205は、cnt_bが全て1以下であるとき、連結性判定値であるcnnct_b[2]=1を判定結果連結部209のb6に出力する。下辺連結性判定部205は、cnt_bに一つでも2以上の値がある場合には、cnnct_b[2]=0を判定結果連結部209のb6に出力する。
【0131】
図6の例においては、cnt_bに3があるため、cnnct_b[2]は0となる。
【0132】
図7は、左辺連結性判定部206の判定方法を示す図である。ここで、連結性判定窓wdは画像処理窓Waのうち注目画素33を中心に含む正方形の領域であり、図7においては1辺が7画素の例を示している。
【0133】
左辺連結性判定部206は、cnt_bが全て1以下であるとき、連結性判定値であるcnnct_b[1]=1を判定結果連結部209のb5に出力する。左辺連結性判定部206は、cnt_bに一つでも2以上の値がある場合には、cnnct_b[1]=0を判定結果連結部209のb5に出力する。
【0134】
図7の例においては、cnt_bが全て1以下であるため、cnnct_b[0]は1となる。
【0135】
図8は、右辺連結性判定部207の判定方法を示す図である。ここで、連結性判定窓wdは画像処理窓Waのうち注目画素33を中心に含む正方形の領域であり、図8においては1辺が7画素の例を示している。
【0136】
右辺連結性判定部207は、cnt_bが全て1以下であるとき、連結性判定値であるcnnct_b[3]=1を判定結果連結部209のb7に出力する。右辺連結性判定部207は、cnt_bに一つでも2以上の値がある場合には、cnnct_b[3]=0を判定結果連結部209のb7に出力する。
【0137】
図8の例においては、cnt_bに2があるため、cnnct_b[3]は0となる。
【0138】
判定結果連結部209はb4乃至b7の4bitであるflagcをライン調整決定部210に出力する。
【0139】
(ライン調整処理選択テーブル)
上辺連結性判定部204はlcount1を、下辺連結性判定部205はlcout3を、左辺連結性判定部206はlcount0を、右辺連結性判定部207はlcount2を、それぞれライン調整処理選択テーブル208に出力する。
【0140】
ライン調整処理選択テーブル208は、lcount0乃至lcount3のパターンに応じたcnt_bを出力する。
【0141】
例えば、図3に示すように、lcount0乃至lcount3が3333333333333111100000011133333333333331110000001111のときは、6画素の太線であるため、flagcが0101であるところを0111に読み替えて、ライン調整決定部210に出力するとともに、スイッチビットをライン調整決定部210に出力する。
【0142】
また、lcount0乃至lcount3が3333333333333111100000111133333333333331111000001111のときは、5画素の普通線であるため、flagcが0101であるところを0110に読み替えて、ライン調整決定部210に出力するとともに、スイッチビットをライン調整決定部210に出力する。
【0143】
ライン調整決定部210は、スイッチビットを入力した場合、判定結果連結部209の出力に代えてライン調整処理選択テーブル208からのflagcを出力する。
【0144】
このように、同一のflagcとなる場合であっても、ライン調整処理選択テーブル208は、あらかじめ格納されているテーブルに従ってlcount0乃至lcount3のパターンに応じたcnt_bを出力する。
【0145】
図12は、フラグ連結部16の連結動作を表した図である。図12に示すようにフラグ連結部16は、輪郭画素抽出部11からの出力であるRoをb8に、第1の矩形領域連結性判定部151からのflagcの出力であるflagc[0]をb7乃至b4に、第2の矩形領域連結性判定部152からのflagcの出力であるflagc[1]をb3乃至b0に設定して出力する。
【0146】
(細線化量計算部)
細線化量計算部13は第1の細線化量計算部131乃至第8の細線化量計算部138を備える。細線化量計算部13は輪郭画素抽出窓32を構成する画素の2値化量を入力し、輪郭画素抽出窓32のパターンに従ってフィルタ係数を生成する。
【0147】
このフィルタ係数は、第1の細線化量計算部131乃至第8の細線化量計算部138ではそれぞれ異なっている。例えば、第1の細線化量計算部131から第8の細線化量計算部138まで順により多く細線化するように、第1の細線化量計算部131乃至第8の細線化量計算部138はそれぞれのフィルタ係数を生成し、このフィルタ係数をSFILOUT1乃至SFILOUT8として、選択的補正出力部14のセレクタ141に出力する。
【0148】
セレクタ141は、フラグ連結部16からの入力に従って、0及びSFILOUT1乃至SFILOUT8を切り替えてSELOUTとして加算部142に出力する。
【0149】
図13は、セレクタ141のフィルタ選択の例を示す図である。図13においては説明のためflagc[0]の部分だけを示している。また、フィルタ係数の数を5個にしてある。
【0150】
図13に示すように、セレクタ141は、例えばflagc[0]が0000のときは細線化を行わず、1011のときは削減フィルタの強度を大きくしてより多く削除するように、フィルタ係数を選択する。
【0151】
すなわち、セレクタ141は太線部、太線内部は大きく削り、普通線は中程度に削り、細線部は小さく削るというようにフィルタを選択する。
【0152】
加算部142はSELOUTに注目画素33を加算して、積算部143に出力する、積算部143は加算部142からの入力値にデューティーDTYを積算して細線化処理後画像信号SHW1として出力する。
【0153】
(第2の実施形態の効果)
以上述べたように、本実施形態の画像処理装置は、あらかじめ格納されているテーブルに従ってlcount0乃至lcount3のパターンに応じたcnt_bを出力するライン調整処理選択テーブル208を備える。このため、本実施形態の画像処理装置は、よりきめ細やかに制御された細線化をすることが可能となるという効果がある。
【0154】
(第3の実施形態)
次に、第3の実施形態について述べる。なお、前述した第1の実施形態と同一部分には同一の符号を付し、詳細な説明は省略する。本実施形態において、第1の実施形態と異なる点は矩形領域連結性判定部15の構成と動作である。
【0155】
(矩形領域連結性判定部)
矩形領域連結性判定部15は矩形領域判定窓wcにおける連結性を判定し、結果を出力する。矩形領域判定窓wcは、画像処理窓Waのうち注目画素33を中心に含む1辺が奇数画素の正方形として表すことができる。矩形領域判定窓wcの1辺は、例えば7画素と13画素のように大きさの異なる領域を用いることができる。
【0156】
本実施形態においては、第1の矩形領域連結性判定部151においては1辺が13画素の矩形領域判定窓wc1を、第2の矩形領域連結性判定部152においては1辺が7画素の矩形領域判定窓wc2を用いている。
【0157】
図15は、矩形領域連結性判定部15の概要を示すブロック図である。第1の矩形領域連結性判定部151と第2の矩形領域連結性判定部152の構成は矩形領域判定窓wc1と矩形領域判定窓wc2の大きさ以外は同じである。以下、第1の矩形領域判定部151を例に説明する。
【0158】
図15に示すように、矩形領域連結性判定部151は、行単位連結性カウント202と、列単位連結性カウント203と、上辺連結性判定部204と、下辺連結性判定部205と、左辺連結性判定部206と、右辺連結性判定部207と、ライン調整決定部210と、ライン調整処理選択テーブル208と、特異点検出部211と、を備える。以下、各部について説明する。
【0159】
(行単位連結性カウント及び列単位連結性カウント)
行単位連結性カウント202は画像処理窓Waから信号を入力する。行単位連結性カウント202はこの入力した信号から行の連結性を判定して出力する。
【0160】
図2Aは、連結性判定の処理方法を示した図である。図2A乃至図2Cにおいて、判定bitは予め設定されたビット値であり、細線化を行う場合は1が設定されている。p0からp8は矩形領域判定窓wc1の1列を表す。ここでは、矩形領域判定窓wc1の1辺は9画素であるとする。
【0161】
行単位連結性カウント202は、まず判定bitとp0とのxorを算出する。
【0162】
ここで、xorは排他的論理和を意味する。すなわち、A xor Bの値は、A=Bのとき0であり、A≠Bのとき1である。
【0163】
判定bitは1であり、p0は0であるため、判定bitとp0とのxorであるSxor0は1となる。
【0164】
次に、行単位連結性カウント202はp0とp1とのxorであるSxor1を算出する。p0は0であり、p1も0であるためSxor1は0となる。
【0165】
行単位連結性カウント202はこれを順次繰り返して9個のSxorを算出する。
【0166】
次に算出した9個のSxorの和であるcnt_bを算出する。図2Aの例ではcnt_bは1である。
【0167】
なお、ここで、Sxor0乃至Sxor8をまとめてlcountと呼ぶ。
【0168】
図2Bは判定対象となった列の全ての画素が1である場合の例を示す図である。図2Bに示すように、判定対象となった列の全ての画素が1である場合、すべてのSxorが0となるため、cnt_bは0となる。
【0169】
図2Cは判定の対象となった列に一部白い画素がある場合の例を示す図である。図2Cに示すように、p2 xor p3と、p5 xor p6がそれぞれ1となるため、cnt_bは2となる。
【0170】
図3は矩形領域判定窓wc1の1辺が13画素である場合の例を示す図である。図3に示すように、行単位連結性カウント202は、上辺から下辺に向かって13個のcnt_b[0]を計算し、次いで下辺から上辺に向かって13個のcnt_b[2]を計算する。
【0171】
図3の例では、6画素の幅の横線が示されている。この場合、cnt_b[0]とcnt_b[2]はすべて3となる。また、cnt_b[1]とcnt_b[3]は線部が0であり、線部以外の部分が1となる。
【0172】
行単位連結性カウント202は、算出したcnt_b[0]を上辺連結性判定部204に、cnt_b[2]を下辺連結性判定部205に、それぞれ出力する。
【0173】
列単位連結性カウント203は行単位連結性カウント202と同様の動作によって、左辺から右辺に向かって13個のcnt_b[1]を計算し、次いで右辺から左辺に向かって13個のcnt_b[3]を計算する。
【0174】
列単位連結性カウント203は、算出したcnt_b[1]を左辺連結性判定部206に、cnt_b[3]を右辺連結性判定部207に、それぞれ出力する。
【0175】
図4は、行単位連結性カウント202のcnt_b算出のフローチャートである。図4に示すように、ステップS201において、行単位連結性カウント202はカウンタiとcnt_bとを0で初期化する。ステップS202において、行単位連結性カウント202は判定bitとp0とのxorであるSxor0を算出する。
【0176】
ステップS203において、行単位連結性カウント202はiに1を加算する。ステップS204において、行単位連結性カウント202はiが8より大きいか判定する。この8という値は、矩形領域判定窓wc1の1辺が9画素である場合の値である。例えば矩形領域判定窓wc1の1辺が13画素である場合は12となる。i>8のとき、行単位連結性カウント202はステップS206に進み、i>8ではないとき、ステップS205に進む。
【0177】
ステップS205において、行単位連結性カウント202は(i−1)番目の画素であるpi−1とi番目の画素であるpiとのxorを算出してi番目のSxorであるSxoriに代入し、ステップS203に戻る。
【0178】
ステップS206において、行単位連結性カウント202は0番目から8番目のSxorを合計してcnt_bに代入する。ステップS207において、行単位連結性カウント202はcnt_bを出力する。
【0179】
行単位連結性カウント202はこのステップS201からS207までの工程を矩形領域判定窓wc1の1辺画素数分だけ繰り返すことにより、4bitのcnt_bを矩形領域判定窓wc1の1辺画素数分だけ算出し、上辺連結性判定部204に出力する。
【0180】
さらに、行単位連結性カウント202はステップS201からS207までの工程を矩形領域判定窓wc1の下辺から上辺に向かって矩形領域判定窓wc1の1辺画素数分だけ繰り返すことにより、4bitのcnt_bを矩形領域判定窓wc1の1辺画素数分だけ算出し、下辺連結性判定部205に出力する。
【0181】
列単位連結性カウント203は、上記の行単位連結性カウント202のcnt_b算出動作を、矩形領域判定窓wc1の左辺から右辺に向かって行って左辺連結性判定部206に出力し、矩形領域判定窓wc1の右辺から左辺に向かって行って右辺連結性判定部207に出力する。
【0182】
(連結性判定部)
上辺連結性判定部204と、下辺連結性判定部205と、左辺連結性判定部206と、右辺連結性判定部207とは、それぞれcnt_bを入力して連結性を判定し、判定結果としてcnnct_bを出力する。
【0183】
図5は、上辺連結性判定部204の判定方法を示す図である。ここで、連結性判定窓wdは画像処理窓Waのうち注目画素33を中心に含む正方形の領域であり、図5においては1辺が7画素の例を示している。
【0184】
上辺連結性判定部204は、cnt_bが全て1以下であるとき、連結性判定値であるcnnct_b[0]=1を判定結果連結部209のb4に出力する。上辺連結性判定部204は、cnt_bに一つでも2以上の値がある場合には、cnnct_b[0]=0を判定結果連結部209のb4に出力する。
【0185】
図5の例においては、cnt_bに3があるため、cnnct_b[0]は0となる。
【0186】
図6は、下辺連結性判定部205の判定方法を示す図である。ここで、連結性判定窓wdは画像処理窓Waのうち注目画素33を中心に含む正方形の領域であり、図6においては1辺が7画素の例を示している。
【0187】
下辺連結性判定部205は、cnt_bが全て1以下であるとき、連結性判定値であるcnnct_b[2]=1を判定結果連結部209のb6に出力する。下辺連結性判定部205は、cnt_bに一つでも2以上の値がある場合には、cnnct_b[2]=0を判定結果連結部209のb6に出力する。
【0188】
図6の例においては、cnt_bに3があるため、cnnct_b[2]は0となる。
【0189】
図7は、左辺連結性判定部206の判定方法を示す図である。ここで、連結性判定窓wdは画像処理窓Waのうち注目画素33を中心に含む正方形の領域であり、図7においては1辺が7画素の例を示している。
【0190】
左辺連結性判定部206は、cnt_bが全て1以下であるとき、連結性判定値であるcnnct_b[1]=1を判定結果連結部209のb5に出力する。左辺連結性判定部206は、cnt_bに一つでも2以上の値がある場合には、cnnct_b[1]=0を判定結果連結部209のb5に出力する。
【0191】
図7の例においては、cnt_bが全て1以下であるため、cnnct_b[0]は1となる。
【0192】
図8は、右辺連結性判定部207の判定方法を示す図である。ここで、連結性判定窓wdは画像処理窓Waのうち注目画素33を中心に含む正方形の領域であり、図8においては1辺が7画素の例を示している。
【0193】
右辺連結性判定部207は、cnt_bが全て1以下であるとき、連結性判定値であるcnnct_b[3]=1を判定結果連結部209のb7に出力する。右辺連結性判定部207は、cnt_bに一つでも2以上の値がある場合には、cnnct_b[3]=0を判定結果連結部209のb7に出力する。
【0194】
図8の例においては、cnt_bに2があるため、cnnct_b[3]は0となる。
【0195】
判定結果連結部209はb4乃至b7の4bitであるflagcをライン調整決定部210に出力する。
【0196】
(ライン調整処理選択テーブル)
上辺連結性判定部204はlcount1を、下辺連結性判定部205はlcout3を、左辺連結性判定部206はlcount0を、右辺連結性判定部207はlcount2を、それぞれライン調整処理選択テーブル208に出力する。
【0197】
ライン調整処理選択テーブル208は、lcount0乃至lcount3のパターンに応じたcnt_bを出力する。
【0198】
例えば、図3に示すように、lcount0乃至lcount3が6画素の太線を表す場合は、flagcが0101であるところを0111に読み替えて、ライン調整決定部210に出力するとともに、スイッチビットをライン調整決定部210に出力する。
【0199】
また、lcount0乃至lcount3が5画素の普通線を表す場合は、flagcが0101であるところを0110に読み替えて、ライン調整決定部210に出力するとともに、スイッチビットをライン調整決定部210に出力する。
【0200】
ライン調整決定部210は、スイッチビットを入力した場合、判定結果連結部209の出力に代えてライン調整処理選択テーブル208からのflagcを出力する。
【0201】
このように、同一のflagcとなる場合であっても、ライン調整処理選択テーブル208は、あらかじめ格納されているテーブルに従ってlcount0乃至lcount3のパターンに応じたcnt_bを出力する。
【0202】
(特異点検出部)
図9は、丸いドットを画像処理窓Waにて表示した図である。図10は、図9に示す図を従来の方法によって細線化した結果を示す図である。図10に示すように、従来の方法によっては細線化後の図形が丸くならず上下左右に突出した形状となる。
【0203】
本実施形態においては、このような現象が起きる図形である特異点を検出し、より滑らかに細線化するようにflagcを強制的に切り替える。
【0204】
行単位連結性カウント202は特異点検出部211にcnt_b[0]とcnt_b[2]を出力する。列単位連結性カウント203は特異点検出部211にcnt_b[1]とcnt_b[3]を出力する。
【0205】
一方、特異点検出部211は、特異点のcnt_bのパターンである特異点パターンを記憶している。図11Aは特異点とcnt_bのパターンの例である。
【0206】
特異点検出部211は、cnt_bの入力を受け入れると、特異点パターンを順次読みだし、cnt_bとの比較を行う。比較の方法は論理積をとることによっておこなってもよい。
【0207】
図9の例において、wc1は10番目の特異点パターンと同一である。このため、特異点検出部211は画像処理窓Waに特異点が存在すると判定する。
【0208】
特異点検出部211は特異点が存在すると判定したとき、あらかじめ定められたflagcを出力する。例えば、特異点が検出された場合のflagcとして1101を出力する。
【0209】
ライン調整決定部210は特異点検出部211から入力があると、ライン調整処理選択テーブル208からのスイッチビットの入力の有無にかかわらず、判定結果連結部209からの入力に代えて特異点検出部211からの出力をflagcとして出力する。
【0210】
例えば、判定結果連結部209からの入力が0010のとき、特異点検出部211が1101を出力するとする。0010より1101の方が連結性は高い、このため、後続の細線化量計算部13はより多くの画素を削除する。これにより、特異点の突出部が削除され、より滑らかに細線化される。
【0211】
図11Bは、特異点検出部211の出力に応じて細線化された結果を示した図である。図11Bに示すように、図11Aの10番は図11Bの10番のように、図11Aの11番は図11Bの11番のように、図11Aの12番は図11Bの12番のように、図11Aの13番は図11Bの13番のように、それぞれ滑らかに細線化される。
【0212】
図12は、フラグ連結部16の連結動作を表した図である。図12に示すようにフラグ連結部16は、輪郭画素抽出部11からの出力であるRoをb8に、第1の矩形領域連結性判定部151からのflagcの出力であるflagc[0]をb7乃至b4に、第2の矩形領域連結性判定部152からのflagcの出力であるflagc[1]をb3乃至b0に設定して出力する。
【0213】
(細線化量計算部)
細線化量計算部13は第1の細線化量計算部131乃至第8の細線化量計算部138を備える。細線化量計算部13は輪郭画素抽出窓32を構成する画素の2値化量を入力し、輪郭画素抽出窓32のパターンに従ってフィルタ係数を生成する。
【0214】
このフィルタ係数は、第1の細線化量計算部131乃至第8の細線化量計算部138ではそれぞれ異なっている。例えば、第1の細線化量計算部131から第8の細線化量計算部138まで順により多く細線化するように、第1の細線化量計算部131乃至第8の細線化量計算部138はそれぞれのフィルタ係数を生成し、このフィルタ係数をSFILOUT1乃至SFILOUT8として、選択的補正出力部14のセレクタ141に出力する。
【0215】
セレクタ141は、フラグ連結部16からの入力に従って、0及びSFILOUT1乃至SFILOUTを切り替えてSELOUTとして加算部142に出力する。
【0216】
図13は、セレクタ141のフィルタ選択の例を示す図である。図13においては説明のためflagc[0]の部分だけを示している。また、フィルタ係数の数を5個にしてある。
【0217】
図13に示すように、セレクタ141は、例えばflagc[0]が0000のときは細線化を行わず、1011のときは削減フィルタの強度を大きくしてより多く削除するように、フィルタ係数を選択する。
【0218】
すなわち、セレクタ141は太線部、太線内部は大きく削り、普通線は中程度に削り、細線部は小さく削るというようにフィルタを選択する。
【0219】
加算部142はSELOUTに注目画素33を加算して、積算部143に出力する、積算部143は加算部142からの入力値にデューティーDTYを積算して細線化処理後画像信号SHW1として出力する。
【0220】
(第3の実施形態の効果)
以上述べたように、本実施形態の画像処理装置は、特異点を検出してフィルタ選択の基礎となるフラグを強制的に変更する特異点検出部を備える。また、本実施形態の画像処理装置は、あらかじめ格納されているテーブルに従ってlcount0乃至lcount3のパターンに応じたcnt_bを出力するライン調整処理選択テーブル208を備える。このため、本実施形態の画像処理装置は、特異点を有する図形であってもその図形の特徴を維持しながら細線化することが可能となるという効果がある。また、本実施形態の画像処理装置は、よりきめ細やかに制御された細線化をすることが可能となるという効果がある。
【図面の簡単な説明】
【0221】
【図1】矩形領域連結性判定部15の概要を示すブロック図である。
【図2A】連結性判定の処理方法を示した図である。
【図2B】判定対象となった列の全ての画素が1である場合の例を示す図である。
【図2C】判定の対象となった列に一部白い画素がある場合の例を示す図である。
【図3】矩形領域判定窓wc1の1辺が13画素である場合の例を示す図である。
【図4】行単位連結性カウント202のcnt_b算出のフローチャートである。
【図5】上辺連結性判定部204の判定方法を示す図である。
【図6】下辺連結性判定部205の判定方法を示す図である。
【図7】左辺連結性判定部206の判定方法を示す図である。
【図8】右辺連結性判定部207の判定方法を示す図である。
【図9】丸いドットを画像処理窓Waにて表示した図である。
【図10】図9に示す図を従来の方法によって細線化した結果を示す図である。
【図11A】特異点とcnt_bのパターンの例である。
【図11B】特異点検出部211の出力に応じて細線化された結果を示した図である。
【図12】フラグ連結部16の連結動作を表した図である。
【図13】セレクタ141のフィルタ選択の例を示す図である。
【図14】矩形領域連結性判定部15の概要を示すブロック図である。
【図15】矩形領域連結性判定部15の概要を示すブロック図である。
【図16A】600dpiの細線化前の画像の例を示す図である。
【図16B】図16Aの線を左右1画素分削除する細線化を行った場合の図である。
【図16C】1200dpiの細線化前の画像の例を示す図である。
【図16D】図16Cの線に600dpiに適用した細線化を施した場合の図である。
【図16E】削除する画素数を2倍にした場合の図である。
【図16F】細線化量をより細かく制御した場合の図である。
【図17】本実施形態の画像処理装置のハードウエア構成を示す図である。
【図18】本実施形態の画像処理装置の処理の概要を示すフローチャートである。
【図19】画像処理装置の細線化に係る部分のブロック図である。
【図20】画像処理窓Waの概念図である。
【図21】印字すべき画像の細線化前の画像の例である原画像41を示す図である。
【図22】原画像41に注目画素33に合わせて画像処理窓Waを設定した例を示した図である。
【図23】輪郭パターンの例である。
【図24】輪郭画素抽出部11の処理を示すフローチャートである。
【符号の説明】
【0222】
11:輪郭画素抽出部、
13:細線化量計算部、
14:選択的補正出力部、
15:矩形領域連結性判定部、
202:行単位連結性カウント、
203:列単位連結性カウント、
204:上辺連結性判定部、
205:下辺連結性判定部、
206:左辺連結性判定部、
207:右辺連結性判定部、
208:ライン調整処理選択テーブル、
210:ライン調整決定部、
211:特異点検出部。
【技術分野】
【0001】
本発明は、プリンタ、多機能画像形成装置(以下、MFPと呼ぶ。)などの画像形成装置に用いられる画像処理装置及び画像形成処理方法並びにこれらを用いたプリンタ、MFPに関する。
【背景技術】
【0002】
従来の画像処理装置は、形成する画像の輪郭部を整形し、印刷領域を小さくする細線化を行う。細線化を行うと、トナーなどの現像剤の消費量を削減することができるという効果がある。この点に関し、細線化の方法が開発されてきた。
【0003】
例えば、細線化前の状態と細線化後の状態の画素のパターンを記憶しておき、パターンマッチングによって細線化前の状態に対応する細線化後の状態に画素パターンを変換することにより細線化を行う技術が提案されている(例えば、特許文献1)。
【0004】
この技術によっては、比較的単純な直線や斜線は再現性がよいが、形状が複雑になると再現性が悪くなるという問題点があった。
【0005】
この点に関し、輪郭と黒画素の連結性を判定し、この判定結果に応じて細線化の度合いを切り替える技術が提案されている(例えば、特許文献2)。
【特許文献1】特開2008−153742号公報
【特許文献2】米国特許出願公開第2005/0073723号明細書
【発明の開示】
【発明が解決しようとする課題】
【0006】
この技術は、主として600dpi程度の解像度において、印刷品質の劣化を低減させるのに効果的な方法であった。
【0007】
しかし、近時において画像形成装置の高解像度化が進んできている。このような高解像度の画像形成装置に従来の方法を単純に適用すると、様々な不具合が生じる。
【0008】
図16Aは600dpiの細線化前の画像の例を示す図である。この線を左右1画素分削除する細線化を行うと図16Bのようになる。ここで、斜線部分は削除した部分を表す。
【0009】
図16Cは1200dpiの細線化前の画像の例を示す図である。これに600dpiに適用した細線化を施すと、図16Dのようになる。このように、単純に従来の細線化方法を適用した場合、細線化量が半減するため細線化の効果が十分に得られない。
【0010】
そこで、削除する画素数を2倍にすると、図16Eのようになる。図16Eのように、ある程度の幅を持った線を細線化する場合には、問題はない。しかし、例えば5画素の線から4画素分削除すると細線化後の線は1画素の線となり、細くなりすぎてしまう。
【0011】
そこで、細線化を開始するための画素数の閾値を設けることが考えられる。すなわち、6画素以上の線に対して細線化を施すという制御を行う。この場合、6画素の線から4画素分削除すると2画素となり、細線化を施さない5画素の線より細くなるという問題点が起きる。
【0012】
従って、このような問題が起きないように、例えば図16Fのように細線化量をより細かく制御する必要がある。
【0013】
本発明は上記のような問題点に鑑みてなされたものであり、高解像度においても再現性の良い細線化が可能な画像処理装置及び画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【0014】
この目的を達成するために本発明は、注目画素が輪郭であるかを判定する輪郭画素抽出部と、輪郭画素抽出部が、注目画素が輪郭であると判定した場合に注目画素に施す細線化の量を算出する細線化量計算部と、注目画素を含む画素領域が所定の画素パターンであるかを判定する矩形領域連結性判定部と、矩形領域連結性判定部が注目画素を含む画素領域を所定の画素パターンであると判定しない場合に細線化の量で注目画素に細線化を施し、矩形領域連結性判定部が注目画素を含む画素領域を所定の画素パターンであると判定する場合に細線化の量とは異なる代替の細線化の量で注目画素に細線化を施す選択的補正出力部と、を備えることを特徴とする画像処理装置を提供する。
【発明の効果】
【0015】
本発明によれば、細線化後に変形しやすい形状である特異点を有する図形であってもその図形の特徴を維持しながら細線化することが可能となるという効果がある。また、本発明によれば、よりきめ細やかに制御された細線化をすることが可能となり、再現性が向上するという効果がある。
【発明を実施するための最良の形態】
【0016】
以下、画像処理装置の一実施の形態について、図面を用いて詳細に説明する。
【0017】
(第1の実施形態)
図17は、本実施形態の画像処理装置のハードウエア構成を示す図である。図17に示すように、画像処理装置は、演算装置であるCPU311と、CPU311に接続するノースブリッジ312と、ノースブリッジ312に接続するシステムメモリ313と、を備える。
【0018】
ノースブリッジ312にはさらに、ネットワークインターフェース314、入出力部315、ページメモリ316、データ記憶部317、システムASIC318、画像処理を行うASICである画像処理ASIC319が接続する。
【0019】
図18は、本実施形態の画像処理装置の処理の概要を示すフローチャートである。図18に示すように、画像処理装置は、ステップ1においてパソコンなどの上位機器から印字するためのデータを受信する。
【0020】
画像処理装置は、ステップS2においてイメージ属性分析を行い、印字するためのデータをText,Graphics,photoに分類する。画像処理装置は、ステップS3においてラスター演算を行い、ステップS4においてガンマ変換を行い、ステップS5においてハーフトーン処理を行う。
【0021】
ステップS2からステップS5までの処理はCPU311がソフトウエアを用いて行う。
【0022】
画像処理装置は、ステップS6においてデータを符号化し、データ記憶部317に順次格納する。画像処理装置は、ステップS7において格納したデータを順次読みだして復号化する。ステップS6からステップS7までの処理はシステムASIC318が行う。
【0023】
画像処理装置は、ステップS8において細線化を行い、ステップS9において細線化後のデータをPWMエンジンに出力する。ステップS8の処理は画像処理ASIC319が行う。
【0024】
図19は、画像処理装置の細線化に係る部分のブロック図である。図19に示すように、画像処理装置は画像処理窓Waと、輪郭画素抽出部11と、矩形領域連結性判定部15と、細線化量計算部13と、選択的補正出力部14と、を備える。
【0025】
画像処理窓Waは信号を輪郭画素抽出部11と矩形領域連結性判定部15とに出力する。輪郭画素抽出部11は信号を細線化量計算部13に出力する。細線化量計算部13と矩形領域連結性判定部15は信号を選択的補正出力部14に出力する。以下順に説明する。
【0026】
(画像処理窓)
画像処理窓Waは対象画素を含む2次元の画像信号の記憶領域である。画像処理窓Waには、通常2次元の画像信号が外部から入力する。但し、1次元の信号が入力する場合には、画像の主走査幅以上の記憶容量を持つ複数本のラインメモリがこの1次元信号を一時的に記憶し、この信号を2次元信号として画像処理窓Waが参照する。なお、本実施形態においては、2値画像信号の黒画像を表す信号レベルを“1”、白画像を表す信号レベルを“0”とする。
【0027】
図20は画像処理窓Waの概念図である。図20に示すように、画像処理窓Waは1辺が奇数個の画素の正方形によって表わすことができる。図20には1辺が13画素の画像処理窓Waが示されているが、1辺の大きさはこれに限られるものではない。
【0028】
主走査方向をja、副走査方向をiaとし、左上をWa(0,0)とすると、注目画素33はWa(6,6)となる。
【0029】
図21は、印字すべき画像の細線化前の画像の例である原画像41を示す図である。図22は、この原画像41に注目画素33に合わせて画像処理窓Waを設定した例を示した図である。図22に示すように、画像処理装置は原画像41を、画像処理窓Waを用いて順次走査してゆく。
【0030】
(輪郭画素抽出部)
輪郭画素抽出部11は注目画素33が輪郭であるかを判定する。輪郭画素抽出部11は例えばパターンマッチングによって注目画素33が輪郭であるかを判定する。
【0031】
画像処理窓Waは輪郭画素抽出部11に輪郭画素抽出窓32を出力する。輪郭画素抽出窓32は、画像処理窓Waの注目画素33を中心に含む1辺が奇数個の画素の正方形の領域である。例えば1辺は3画素とすることができる。図20及び図22に輪郭画素抽出窓32の例を示す。この場合、輪郭画素抽出窓32は画像処理窓WaのWa(5,5)からWa(7,7)となる。
【0032】
輪郭画素抽出部11は輪郭パターンを記憶しており、この輪郭パターンと輪郭画素抽出窓32との論理積をとる。
【0033】
図23は、輪郭パターンの例である。図23に示すように輪郭画素抽出部11は注目画素32が輪郭となる場合の例である輪郭パターンを複数記憶している。図22の例において、輪郭画素抽出窓32は33番の輪郭パターンと一致する。このように一致する輪郭パターンが存在する場合、輪郭画素抽出部11は“1”を出力する。一致する輪郭パターンがない場合には、輪郭画素抽出部11は“0”を判定結果Roとして出力する。
【0034】
図24は、輪郭画素抽出部11の処理を示すフローチャートである。図24に示すように、輪郭画素抽出部11は、ステップS101において、輪郭抽出窓を生成し、ステップS102において、カウンタkと判定結果Roを0で初期化する。
【0035】
輪郭画素抽出部11は、ステップS103においてkが輪郭パターンの数nを超えているか判定する。k>nの場合はステップS107に進み、k>nではない場合にはステップS104に進む。
【0036】
輪郭画素抽出部11は、ステップS104において、k番目の輪郭パターンと輪郭画素抽出窓32との論理積を算出し判定結果Roに代入する。輪郭画素抽出部11は、ステップS105において、Roが1かを判定する。輪郭画素抽出部11は、Ro=1の場合はステップS107に進み、Ro=1でない場合にはステップS106に進む。
【0037】
輪郭画素抽出部11は、ステップS106においてkに1を加算し、ステップS103に戻る。輪郭画素抽出部11は、ステップS107においてRoを出力する。
【0038】
(矩形領域連結性判定部)
矩形領域連結性判定部15は矩形領域判定窓wcにおける連結性を判定し、結果を出力する。矩形領域判定窓wcは、画像処理窓Waのうち注目画素33を中心に含む1辺が奇数画素の正方形として表すことができる。矩形領域判定窓wcの1辺は、例えば7画素と13画素のように大きさの異なる領域を用いることができる。
【0039】
本実施形態においては、第1の矩形領域連結性判定部151においては1辺が13画素の矩形領域判定窓wc1を、第2の矩形領域連結性判定部152においては1辺が7画素の矩形領域判定窓wc2を用いている。
【0040】
図1は、矩形領域連結性判定部15の概要を示すブロック図である。第1の矩形領域連結性判定部151と第2の矩形領域連結性判定部152の構成は矩形領域判定窓wc1と矩形領域判定窓wc2の大きさ以外は同じである。以下、第1の矩形領域判定部151を例に説明する。
【0041】
図1に示すように、矩形領域連結性判定部151は、行単位連結性カウント202と、列単位連結性カウント203と、上辺連結性判定部204と、下辺連結性判定部205と、左辺連結性判定部206と、右辺連結性判定部207と、ライン調整決定部210と、特異点検出部211とを備える。以下、各部について説明する。
【0042】
(行単位連結性カウント及び列単位連結性カウント)
行単位連結性カウント202は画像処理窓Waから信号を入力する。行単位連結性カウント202はこの入力した信号から行の連結性を判定して出力する。
【0043】
図2Aは、連結性判定の処理方法を示した図である。図2において、判定bitは予め設定されたビット値であり、細線化を行う場合は1が設定されている。p0からp8は矩形領域判定窓wc1の1列を表す。ここでは、矩形領域判定窓wc1の1辺は9画素であるとする。
【0044】
行単位連結性カウント202は、まず判定bitとp0とのxorを算出する。
【0045】
ここで、xorは排他的論理和を意味する。すなわち、A xor Bの値は、A=Bのとき0であり、A≠Bのとき1である。
【0046】
判定bitは1であり、p0は0であるため、判定bitとp0とのxorであるSxor0は1となる。
【0047】
次に、行単位連結性カウント202はp0とp1とのxorであるSxor1を算出する。p0は0であり、p1も0であるためSxor1は0となる。
【0048】
行単位連結性カウント202はこれを順次繰り返して9個のSxorを算出する。
【0049】
次に算出した9個のSxorの和であるcnt_bを算出する。図2Aの例ではcnt_bは1である。
【0050】
図2Bは判定対象となった列の全ての画素が1である場合の例を示す図である。図2Bに示すように、判定対象となった列の全ての画素が1である場合、すべてのSxorが0となるため、cnt_bは0となる。
【0051】
図2Cは判定の対象となった列に一部白い画素がある場合の例を示す図である。図2Cに示すように、p2 xor p3と、p5 xor p6がそれぞれ1となるため、cnt_bは2となる。
【0052】
図3は矩形領域判定窓wc1の1辺が13画素である場合の例を示す図である。図3に示すように、行単位連結性カウント202は、上辺から下辺に向かって13個のcnt_b[0]を計算し、次いで下辺から上辺に向かって13個のcnt_b[2]を計算する。
【0053】
図3の例では、6画素の幅の横線が示されている。この場合、cnt_b[0]とcnt_b[2]はすべて3となる。また、cnt_b[1]とcnt_b[3]は線部が0であり、線部以外の部分が1となる。
【0054】
行単位連結性カウント202は、算出したcnt_b[0]を上辺連結性判定部204に、cnt_b[2]を下辺連結性判定部205に、それぞれ出力する。
【0055】
列単位連結性カウント203は行単位連結性カウント202と同様の動作によって、左辺から右辺に向かって13個のcnt_b[1]を計算し、次いで右辺から左辺に向かって13個のcnt_b[3]を計算する。
【0056】
列単位連結性カウント203は、算出したcnt_b[1]を左辺連結性判定部206に、cnt_b[3]を右辺連結性判定部207に、それぞれ出力する。
【0057】
図4は、行単位連結性カウント202のcnt_b算出のフローチャートである。図4に示すように、ステップS201において、行単位連結性カウント202はカウンタiとcnt_bとを0で初期化する。ステップS202において、行単位連結性カウント202は判定bitとp0とのxorであるSxor0を算出する。
【0058】
ステップS203において、行単位連結性カウント202はiに1を加算する。ステップS204において、行単位連結性カウント202はiが8より大きいか判定する。この8という値は、矩形領域判定窓wc1の1辺が9画素である場合の値である。例えば矩形領域判定窓wc1の1辺が13画素である場合は12となる。i>8のとき、行単位連結性カウント202はステップS206に進み、i>8ではないとき、ステップS205に進む。
【0059】
ステップS205において、行単位連結性カウント202は(i−1)番目の画素であるpi−1とi番目の画素であるpiとのxorを算出してi番目のSxorであるSxoriに代入し、ステップS203に戻る。
【0060】
ステップS206において、行単位連結性カウント202は0番目から8番目のSxorを合計してcnt_bに代入する。ステップS207において、行単位連結性カウント202はcnt_bを出力する。
【0061】
行単位連結性カウント202はこのステップS201からS207までの工程を矩形領域判定窓wc1の1辺画素数分だけ繰り返すことにより、4bitのcnt_bを矩形領域判定窓wc1の1辺画素数分だけ算出し、上辺連結性判定部204に出力する。
【0062】
さらに、行単位連結性カウント202はステップS201からS207までの工程を矩形領域判定窓wc1の下辺から上辺に向かって矩形領域判定窓wc1の1辺画素数分だけ繰り返すことにより、4bitのcnt_bを矩形領域判定窓wc1の1辺画素数分だけ算出し、下辺連結性判定部205に出力する。
【0063】
列単位連結性カウント203は、上記の行単位連結性カウント202のcnt_b算出動作を、矩形領域判定窓wc1の左辺から右辺に向かって行って左辺連結性判定部206に出力し、矩形領域判定窓wc1の右辺から左辺に向かって行って右辺連結性判定部207に出力する。
【0064】
(連結性判定部)
上辺連結性判定部204と、下辺連結性判定部205と、左辺連結性判定部206と、右辺連結性判定部207とは、それぞれcnt_bを入力して連結性を判定し、判定結果としてcnnct_bを出力する。
【0065】
図5は、上辺連結性判定部204の判定方法を示す図である。ここで、連結性判定窓wdは画像処理窓Waのうち注目画素33を中心に含む正方形の領域であり、図5においては1辺が7画素の例を示している。また、図5においては判定bitをbwとして記載してある。
【0066】
上辺連結性判定部204は、cnt_bが全て1以下であるとき、連結性判定値であるcnnct_b[0]=1を判定結果連結部209のb4に出力する。上辺連結性判定部204は、cnt_bに一つでも2以上の値がある場合には、cnnct_b[0]=0を判定結果連結部209のb4に出力する。
【0067】
図5の例においては、cnt_bに3があるため、cnnct_b[0]は0となる。
【0068】
図6は、下辺連結性判定部205の判定方法を示す図である。ここで、連結性判定窓wdは画像処理窓Waのうち注目画素33を中心に含む正方形の領域であり、図6においては1辺が7画素の例を示している。
【0069】
下辺連結性判定部205は、cnt_bが全て1以下であるとき、連結性判定値であるcnnct_b[2]=1を判定結果連結部209のb6に出力する。下辺連結性判定部205は、cnt_bに一つでも2以上の値がある場合には、cnnct_b[2]=0を判定結果連結部209のb6に出力する。
【0070】
図6の例においては、cnt_bに3があるため、cnnct_b[2]は0となる。
【0071】
図7は、左辺連結性判定部206の判定方法を示す図である。ここで、連結性判定窓wdは画像処理窓Waのうち注目画素33を中心に含む正方形の領域であり、図7においては1辺が7画素の例を示している。
【0072】
左辺連結性判定部206は、cnt_bが全て1以下であるとき、連結性判定値であるcnnct_b[1]=1を判定結果連結部209のb5に出力する。左辺連結性判定部206は、cnt_bに一つでも2以上の値がある場合には、cnnct_b[1]=0を判定結果連結部209のb5に出力する。
【0073】
図7の例においては、cnt_bが全て1以下であるため、cnnct_b[0]は1となる。
【0074】
図8は、右辺連結性判定部207の判定方法を示す図である。ここで、連結性判定窓wdは画像処理窓Waのうち注目画素33を中心に含む正方形の領域であり、図8においては1辺が7画素の例を示している。
【0075】
右辺連結性判定部207は、cnt_bが全て1以下であるとき、連結性判定値であるcnnct_b[3]=1を判定結果連結部209のb7に出力する。右辺連結性判定部207は、cnt_bに一つでも2以上の値がある場合には、cnnct_b[3]=0を判定結果連結部209のb7に出力する。
【0076】
図8の例においては、cnt_bに2があるため、cnnct_b[3]は0となる。
【0077】
判定結果連結部209はb4乃至b7の4bitであるflagcをライン調整決定部210に出力する。
【0078】
(特異点検出部)
図9は、丸いドットを画像処理窓Waにて表示した図である。図10は、図9に示す図を従来の方法によって細線化した結果を示す図である。図10に示すように、従来の方法によっては細線化後の図形が丸くならず上下左右に突出した形状となる。
【0079】
本実施形態においては、このような現象が起きる図形である特異点を検出し、より滑らかに細線化するようにflagcを強制的に切り替える。
【0080】
行単位連結性カウント202は特異点検出部211にcnt_b[0]とcnt_b[2]を出力する。列単位連結性カウント203は特異点検出部211にcnt_b[1]とcnt_b[3]を出力する。
【0081】
一方、特異点検出部211は、特異点のcnt_bのパターンである特異点パターンを記憶している。図11Aは特異点とcnt_bのパターンの例である。
【0082】
特異点検出部211は、cnt_bの入力を受け入れると、特異点パターンを順次読みだし、cnt_bとの比較を行う。比較の方法は論理積をとることによっておこなってもよい。
【0083】
図9の例において、wc1は10番目の特異点パターンと同一である。このため、特異点検出部211は画像処理窓Waに特異点が存在すると判定する。
【0084】
特異点検出部211は特異点が存在すると判定したとき、あらかじめ定められたflagcを出力する。例えば、特異点が検出された場合のflagcとして1101を出力する。
【0085】
ライン調整決定部210は特異点検出部211から入力があると、判定結果連結部209からの入力に代えて特異点検出部211からの出力をflagcとして出力する。
【0086】
例えば、判定結果連結部209からの入力が0010のとき、特異点検出部211が1101を出力するとする。0010より1101の方が連結性は高い、このため、後続の細線化量計算部13はより多くの画素を削除する。これにより、特異点の突出部が削除され、より滑らかに細線化される。
【0087】
図11Bは、特異点検出部211の出力に応じて細線化された結果を示した図である。図11Bに示すように、図11Aの10番は図11Bの10番のように、図11Aの11番は図11Bの11番のように、図11Aの12番は図11Bの12番のように、図11Aの13番は図11Bの13番のように、それぞれ滑らかに細線化される。
【0088】
図12は、フラグ連結部16の連結動作を表した図である。図12に示すようにフラグ連結部16は、輪郭画素抽出部11からの出力であるRoをb8に、第1の矩形領域連結性判定部151からのflagcの出力であるflagc[0]をb7乃至b4に、第2の矩形領域連結性判定部152からのflagcの出力であるflagc[1]をb3乃至b0に設定して出力する。
【0089】
(細線化量計算部)
細線化量計算部13は第1の細線化量計算部131乃至第8の細線化量計算部138を備える。細線化量計算部13は輪郭画素抽出窓32を構成する画素の2値化量を入力し、輪郭画素抽出窓32のパターンに従ってフィルタ係数を生成する。
【0090】
このフィルタ係数は、第1の細線化量計算部131乃至第8の細線化量計算部138ではそれぞれ異なっている。例えば、第1の細線化量計算部131から第8の細線化量計算部138まで順により多く細線化するように、第1の細線化量計算部131乃至第8の細線化量計算部138はそれぞれのフィルタ係数を生成し、このフィルタ係数をSFILOUT1乃至SFILOUT8として、選択的補正出力部14のセレクタ141に出力する。
【0091】
セレクタ141は、フラグ連結部16からの入力に従って、0及びSFILOUT1乃至SFILOUT8を切り替えてSELOUTとして加算部142に出力する。
【0092】
図13は、セレクタ141のフィルタ選択の例を示す図である。図13においては説明のためflagc[0]の部分だけを示している。また、フィルタ係数の数を5個にしてある。
【0093】
図13に示すように、セレクタ141は、例えばflagc[0]が0000のときは細線化を行わず、1011のときは削減フィルタの強度を大きくしてより多く削除するように、フィルタ係数を選択する。
【0094】
すなわち、セレクタ141は太線部、太線内部は大きく削り、普通線は中程度に削り、細線部は小さく削るというようにフィルタ係数を選択する。
【0095】
加算部142はSELOUTに注目画素33を加算して、積算部143に出力する、積算部143は加算部142からの入力値にデューティーDTYを積算して細線化処理後画像信号SHW1として出力する。
【0096】
(第1の実施形態の効果)
以上述べたように、本実施形態の画像処理装置は、特異点を検出してフィルタ選択の基礎となるフラグを強制的に変更する特異点検出部を備える。このため、本実施形態の画像処理装置は、特異点を有する図形であってもその図形の特徴を維持しながら細線化することが可能となるという効果がある。
【0097】
(第2の実施形態)
次に、第2の実施形態について述べる。なお、前述した第1の実施形態と同一部分には同一の符号を付し、詳細な説明は省略する。本実施形態において、第1の実施形態と異なる点は矩形領域連結性判定部15の構成と動作である。
【0098】
(矩形領域連結性判定部)
矩形領域連結性判定部15は矩形領域判定窓wcにおける連結性を判定し、結果を出力する。矩形領域判定窓wcは、画像処理窓Waのうち注目画素33を中心に含む1辺が奇数画素の正方形として表すことができる。矩形領域判定窓wcの1辺は、例えば7画素と13画素のように大きさの異なる領域を用いることができる。
【0099】
本実施形態においては、第1の矩形領域連結性判定部151においては1辺が13画素の矩形領域判定窓wc1を、第2の矩形領域連結性判定部152においては1辺が7画素の矩形領域判定窓wc2を用いている。
【0100】
図14は、矩形領域連結性判定部15の概要を示すブロック図である。第1の矩形領域連結性判定部151と第2の矩形領域連結性判定部152の構成は矩形領域判定窓wc1と矩形領域判定窓wc2の大きさ以外は同じである。以下、第1の矩形領域判定部151を例に説明する。
【0101】
図14に示すように、矩形領域連結性判定部151は、行単位連結性カウント202と、列単位連結性カウント203と、上辺連結性判定部204と、下辺連結性判定部205と、左辺連結性判定部206と、右辺連結性判定部207と、ライン調整決定部210と、ライン調整処理選択テーブル208とを備える。以下、各部について説明する。
【0102】
(行単位連結性カウント及び列単位連結性カウント)
行単位連結性カウント202は画像処理窓Waから信号を入力する。行単位連結性カウント202はこの入力した信号から行の連結性を判定して出力する。
【0103】
図2Aは、連結性判定の処理方法を示した図である。図2A乃至図2Cにおいて、判定bitは予め設定されたビット値であり、細線化を行う場合は1が設定されている。p0からp8は矩形領域判定窓wc1の1列を表す。ここでは、矩形領域判定窓wc1の1辺は9画素であるとする。
【0104】
行単位連結性カウント202は、まず判定bitとp0とのxorを算出する。
【0105】
ここで、xorは排他的論理和を意味する。すなわち、A xor Bの値は、A=Bのとき0であり、A≠Bのとき1である。
【0106】
判定bitは1であり、p0は0であるため、判定bitとp0とのxorであるSxor0は1となる。
【0107】
次に、行単位連結性カウント202はp0とp1とのxorであるSxor1を算出する。p0は0であり、p1も0であるためSxor1は0となる。
【0108】
行単位連結性カウント202はこれを順次繰り返して9個のSxorを算出する。
【0109】
次に算出した9個のSxorの和であるcnt_bを算出する。図2Aの例ではcnt_bは1である。
【0110】
なお、ここで、Sxor0乃至Sxor8をまとめてlcountと呼ぶ。
【0111】
図2Bは判定対象となった列の全ての画素が1である場合の例を示す図である。図2Bに示すように、判定対象となった列の全ての画素が1である場合、すべてのSxorが0となるため、cnt_bは0となる。
【0112】
図2Cは判定の対象となった列に一部白い画素がある場合の例を示す図である。図2Cに示すように、p2 xor p3と、p5 xor p6がそれぞれ1となるため、cnt_bは2となる。
【0113】
図3は矩形領域判定窓wc1の1辺が13画素である場合の例を示す図である。図3に示すように、行単位連結性カウント202は、上辺から下辺に向かって13個のcnt_b[0]を計算し、次いで下辺から上辺に向かって13個のcnt_b[2]を計算する。
【0114】
図3の例では、6画素の幅の横線が示されている。この場合、cnt_b[0]とcnt_b[2]はすべて3となる。また、cnt_b[1]とcnt_b[3]は線部が0であり、線部以外の部分が1となる。
【0115】
行単位連結性カウント202は、算出したcnt_b[0]を上辺連結性判定部204に、cnt_b[2]を下辺連結性判定部205に、それぞれ出力する。
【0116】
列単位連結性カウント203は行単位連結性カウント202と同様の動作によって、左辺から右辺に向かって13個のcnt_b[1]を計算し、次いで右辺から左辺に向かって13個のcnt_b[3]を計算する。
【0117】
列単位連結性カウント203は、算出したcnt_b[1]を左辺連結性判定部206に、cnt_b[3]を右辺連結性判定部207に、それぞれ出力する。
【0118】
図4は、行単位連結性カウント202のcnt_b算出のフローチャートである。図4に示すように、ステップS201において、行単位連結性カウント202はカウンタiとcnt_bとを0で初期化する。ステップS202において、行単位連結性カウント202は判定bitとp0とのxorであるSxor0を算出する。
【0119】
ステップS203において、行単位連結性カウント202はiに1を加算する。ステップS204において、行単位連結性カウント202はiが8より大きいか判定する。この8という値は、矩形領域判定窓wc1の1辺が9画素である場合の値である。例えば矩形領域判定窓wc1の1辺が13画素である場合は12となる。i>8のとき、行単位連結性カウント202はステップS206に進み、i>8ではないとき、ステップS205に進む。
【0120】
ステップS205において、行単位連結性カウント202は(i−1)番目の画素であるpi−1とi番目の画素であるpiとのxorを算出してi番目のSxorであるSxoriに代入し、ステップS203に戻る。
【0121】
ステップS206において、行単位連結性カウント202は0番目から8番目のSxorを合計してcnt_bに代入する。ステップS207において、行単位連結性カウント202はcnt_bを出力する。
【0122】
行単位連結性カウント202はこのステップS201からS207までの工程を矩形領域判定窓wc1の1辺画素数分だけ繰り返すことにより、4bitのcnt_bを矩形領域判定窓wc1の1辺画素数分だけ算出し、上辺連結性判定部204に出力する。
【0123】
さらに、行単位連結性カウント202はステップS201からS207までの工程を矩形領域判定窓wc1の下辺から上辺に向かって矩形領域判定窓wc1の1辺画素数分だけ繰り返すことにより、4bitのcnt_bを矩形領域判定窓wc1の1辺画素数分だけ算出し、下辺連結性判定部205に出力する。
【0124】
列単位連結性カウント203は、上記の行単位連結性カウント202のcnt_b算出動作を、矩形領域判定窓wc1の左辺から右辺に向かって行って左辺連結性判定部206に出力し、矩形領域判定窓wc1の右辺から左辺に向かって行って右辺連結性判定部207に出力する。
【0125】
(連結性判定部)
上辺連結性判定部204と、下辺連結性判定部205と、左辺連結性判定部206と、右辺連結性判定部207とは、それぞれcnt_bを入力して連結性を判定し、判定結果としてcnnct_bを出力する。
【0126】
図5は、上辺連結性判定部204の判定方法を示す図である。ここで、連結性判定窓wdは画像処理窓Waのうち注目画素33を中心に含む正方形の領域であり、図5においては1辺が7画素の例を示している。
【0127】
上辺連結性判定部204は、cnt_bが全て1以下であるとき、連結性判定値であるcnnct_b[0]=1を判定結果連結部209のb4に出力する。上辺連結性判定部204は、cnt_bに一つでも2以上の値がある場合には、cnnct_b[0]=0を判定結果連結部209のb4に出力する。
【0128】
図5の例においては、cnt_bに3があるため、cnnct_b[0]は0となる。
【0129】
図6は、下辺連結性判定部205の判定方法を示す図である。ここで、連結性判定窓wdは画像処理窓Waのうち注目画素33を中心に含む正方形の領域であり、図6においては1辺が7画素の例を示している。
【0130】
下辺連結性判定部205は、cnt_bが全て1以下であるとき、連結性判定値であるcnnct_b[2]=1を判定結果連結部209のb6に出力する。下辺連結性判定部205は、cnt_bに一つでも2以上の値がある場合には、cnnct_b[2]=0を判定結果連結部209のb6に出力する。
【0131】
図6の例においては、cnt_bに3があるため、cnnct_b[2]は0となる。
【0132】
図7は、左辺連結性判定部206の判定方法を示す図である。ここで、連結性判定窓wdは画像処理窓Waのうち注目画素33を中心に含む正方形の領域であり、図7においては1辺が7画素の例を示している。
【0133】
左辺連結性判定部206は、cnt_bが全て1以下であるとき、連結性判定値であるcnnct_b[1]=1を判定結果連結部209のb5に出力する。左辺連結性判定部206は、cnt_bに一つでも2以上の値がある場合には、cnnct_b[1]=0を判定結果連結部209のb5に出力する。
【0134】
図7の例においては、cnt_bが全て1以下であるため、cnnct_b[0]は1となる。
【0135】
図8は、右辺連結性判定部207の判定方法を示す図である。ここで、連結性判定窓wdは画像処理窓Waのうち注目画素33を中心に含む正方形の領域であり、図8においては1辺が7画素の例を示している。
【0136】
右辺連結性判定部207は、cnt_bが全て1以下であるとき、連結性判定値であるcnnct_b[3]=1を判定結果連結部209のb7に出力する。右辺連結性判定部207は、cnt_bに一つでも2以上の値がある場合には、cnnct_b[3]=0を判定結果連結部209のb7に出力する。
【0137】
図8の例においては、cnt_bに2があるため、cnnct_b[3]は0となる。
【0138】
判定結果連結部209はb4乃至b7の4bitであるflagcをライン調整決定部210に出力する。
【0139】
(ライン調整処理選択テーブル)
上辺連結性判定部204はlcount1を、下辺連結性判定部205はlcout3を、左辺連結性判定部206はlcount0を、右辺連結性判定部207はlcount2を、それぞれライン調整処理選択テーブル208に出力する。
【0140】
ライン調整処理選択テーブル208は、lcount0乃至lcount3のパターンに応じたcnt_bを出力する。
【0141】
例えば、図3に示すように、lcount0乃至lcount3が3333333333333111100000011133333333333331110000001111のときは、6画素の太線であるため、flagcが0101であるところを0111に読み替えて、ライン調整決定部210に出力するとともに、スイッチビットをライン調整決定部210に出力する。
【0142】
また、lcount0乃至lcount3が3333333333333111100000111133333333333331111000001111のときは、5画素の普通線であるため、flagcが0101であるところを0110に読み替えて、ライン調整決定部210に出力するとともに、スイッチビットをライン調整決定部210に出力する。
【0143】
ライン調整決定部210は、スイッチビットを入力した場合、判定結果連結部209の出力に代えてライン調整処理選択テーブル208からのflagcを出力する。
【0144】
このように、同一のflagcとなる場合であっても、ライン調整処理選択テーブル208は、あらかじめ格納されているテーブルに従ってlcount0乃至lcount3のパターンに応じたcnt_bを出力する。
【0145】
図12は、フラグ連結部16の連結動作を表した図である。図12に示すようにフラグ連結部16は、輪郭画素抽出部11からの出力であるRoをb8に、第1の矩形領域連結性判定部151からのflagcの出力であるflagc[0]をb7乃至b4に、第2の矩形領域連結性判定部152からのflagcの出力であるflagc[1]をb3乃至b0に設定して出力する。
【0146】
(細線化量計算部)
細線化量計算部13は第1の細線化量計算部131乃至第8の細線化量計算部138を備える。細線化量計算部13は輪郭画素抽出窓32を構成する画素の2値化量を入力し、輪郭画素抽出窓32のパターンに従ってフィルタ係数を生成する。
【0147】
このフィルタ係数は、第1の細線化量計算部131乃至第8の細線化量計算部138ではそれぞれ異なっている。例えば、第1の細線化量計算部131から第8の細線化量計算部138まで順により多く細線化するように、第1の細線化量計算部131乃至第8の細線化量計算部138はそれぞれのフィルタ係数を生成し、このフィルタ係数をSFILOUT1乃至SFILOUT8として、選択的補正出力部14のセレクタ141に出力する。
【0148】
セレクタ141は、フラグ連結部16からの入力に従って、0及びSFILOUT1乃至SFILOUT8を切り替えてSELOUTとして加算部142に出力する。
【0149】
図13は、セレクタ141のフィルタ選択の例を示す図である。図13においては説明のためflagc[0]の部分だけを示している。また、フィルタ係数の数を5個にしてある。
【0150】
図13に示すように、セレクタ141は、例えばflagc[0]が0000のときは細線化を行わず、1011のときは削減フィルタの強度を大きくしてより多く削除するように、フィルタ係数を選択する。
【0151】
すなわち、セレクタ141は太線部、太線内部は大きく削り、普通線は中程度に削り、細線部は小さく削るというようにフィルタを選択する。
【0152】
加算部142はSELOUTに注目画素33を加算して、積算部143に出力する、積算部143は加算部142からの入力値にデューティーDTYを積算して細線化処理後画像信号SHW1として出力する。
【0153】
(第2の実施形態の効果)
以上述べたように、本実施形態の画像処理装置は、あらかじめ格納されているテーブルに従ってlcount0乃至lcount3のパターンに応じたcnt_bを出力するライン調整処理選択テーブル208を備える。このため、本実施形態の画像処理装置は、よりきめ細やかに制御された細線化をすることが可能となるという効果がある。
【0154】
(第3の実施形態)
次に、第3の実施形態について述べる。なお、前述した第1の実施形態と同一部分には同一の符号を付し、詳細な説明は省略する。本実施形態において、第1の実施形態と異なる点は矩形領域連結性判定部15の構成と動作である。
【0155】
(矩形領域連結性判定部)
矩形領域連結性判定部15は矩形領域判定窓wcにおける連結性を判定し、結果を出力する。矩形領域判定窓wcは、画像処理窓Waのうち注目画素33を中心に含む1辺が奇数画素の正方形として表すことができる。矩形領域判定窓wcの1辺は、例えば7画素と13画素のように大きさの異なる領域を用いることができる。
【0156】
本実施形態においては、第1の矩形領域連結性判定部151においては1辺が13画素の矩形領域判定窓wc1を、第2の矩形領域連結性判定部152においては1辺が7画素の矩形領域判定窓wc2を用いている。
【0157】
図15は、矩形領域連結性判定部15の概要を示すブロック図である。第1の矩形領域連結性判定部151と第2の矩形領域連結性判定部152の構成は矩形領域判定窓wc1と矩形領域判定窓wc2の大きさ以外は同じである。以下、第1の矩形領域判定部151を例に説明する。
【0158】
図15に示すように、矩形領域連結性判定部151は、行単位連結性カウント202と、列単位連結性カウント203と、上辺連結性判定部204と、下辺連結性判定部205と、左辺連結性判定部206と、右辺連結性判定部207と、ライン調整決定部210と、ライン調整処理選択テーブル208と、特異点検出部211と、を備える。以下、各部について説明する。
【0159】
(行単位連結性カウント及び列単位連結性カウント)
行単位連結性カウント202は画像処理窓Waから信号を入力する。行単位連結性カウント202はこの入力した信号から行の連結性を判定して出力する。
【0160】
図2Aは、連結性判定の処理方法を示した図である。図2A乃至図2Cにおいて、判定bitは予め設定されたビット値であり、細線化を行う場合は1が設定されている。p0からp8は矩形領域判定窓wc1の1列を表す。ここでは、矩形領域判定窓wc1の1辺は9画素であるとする。
【0161】
行単位連結性カウント202は、まず判定bitとp0とのxorを算出する。
【0162】
ここで、xorは排他的論理和を意味する。すなわち、A xor Bの値は、A=Bのとき0であり、A≠Bのとき1である。
【0163】
判定bitは1であり、p0は0であるため、判定bitとp0とのxorであるSxor0は1となる。
【0164】
次に、行単位連結性カウント202はp0とp1とのxorであるSxor1を算出する。p0は0であり、p1も0であるためSxor1は0となる。
【0165】
行単位連結性カウント202はこれを順次繰り返して9個のSxorを算出する。
【0166】
次に算出した9個のSxorの和であるcnt_bを算出する。図2Aの例ではcnt_bは1である。
【0167】
なお、ここで、Sxor0乃至Sxor8をまとめてlcountと呼ぶ。
【0168】
図2Bは判定対象となった列の全ての画素が1である場合の例を示す図である。図2Bに示すように、判定対象となった列の全ての画素が1である場合、すべてのSxorが0となるため、cnt_bは0となる。
【0169】
図2Cは判定の対象となった列に一部白い画素がある場合の例を示す図である。図2Cに示すように、p2 xor p3と、p5 xor p6がそれぞれ1となるため、cnt_bは2となる。
【0170】
図3は矩形領域判定窓wc1の1辺が13画素である場合の例を示す図である。図3に示すように、行単位連結性カウント202は、上辺から下辺に向かって13個のcnt_b[0]を計算し、次いで下辺から上辺に向かって13個のcnt_b[2]を計算する。
【0171】
図3の例では、6画素の幅の横線が示されている。この場合、cnt_b[0]とcnt_b[2]はすべて3となる。また、cnt_b[1]とcnt_b[3]は線部が0であり、線部以外の部分が1となる。
【0172】
行単位連結性カウント202は、算出したcnt_b[0]を上辺連結性判定部204に、cnt_b[2]を下辺連結性判定部205に、それぞれ出力する。
【0173】
列単位連結性カウント203は行単位連結性カウント202と同様の動作によって、左辺から右辺に向かって13個のcnt_b[1]を計算し、次いで右辺から左辺に向かって13個のcnt_b[3]を計算する。
【0174】
列単位連結性カウント203は、算出したcnt_b[1]を左辺連結性判定部206に、cnt_b[3]を右辺連結性判定部207に、それぞれ出力する。
【0175】
図4は、行単位連結性カウント202のcnt_b算出のフローチャートである。図4に示すように、ステップS201において、行単位連結性カウント202はカウンタiとcnt_bとを0で初期化する。ステップS202において、行単位連結性カウント202は判定bitとp0とのxorであるSxor0を算出する。
【0176】
ステップS203において、行単位連結性カウント202はiに1を加算する。ステップS204において、行単位連結性カウント202はiが8より大きいか判定する。この8という値は、矩形領域判定窓wc1の1辺が9画素である場合の値である。例えば矩形領域判定窓wc1の1辺が13画素である場合は12となる。i>8のとき、行単位連結性カウント202はステップS206に進み、i>8ではないとき、ステップS205に進む。
【0177】
ステップS205において、行単位連結性カウント202は(i−1)番目の画素であるpi−1とi番目の画素であるpiとのxorを算出してi番目のSxorであるSxoriに代入し、ステップS203に戻る。
【0178】
ステップS206において、行単位連結性カウント202は0番目から8番目のSxorを合計してcnt_bに代入する。ステップS207において、行単位連結性カウント202はcnt_bを出力する。
【0179】
行単位連結性カウント202はこのステップS201からS207までの工程を矩形領域判定窓wc1の1辺画素数分だけ繰り返すことにより、4bitのcnt_bを矩形領域判定窓wc1の1辺画素数分だけ算出し、上辺連結性判定部204に出力する。
【0180】
さらに、行単位連結性カウント202はステップS201からS207までの工程を矩形領域判定窓wc1の下辺から上辺に向かって矩形領域判定窓wc1の1辺画素数分だけ繰り返すことにより、4bitのcnt_bを矩形領域判定窓wc1の1辺画素数分だけ算出し、下辺連結性判定部205に出力する。
【0181】
列単位連結性カウント203は、上記の行単位連結性カウント202のcnt_b算出動作を、矩形領域判定窓wc1の左辺から右辺に向かって行って左辺連結性判定部206に出力し、矩形領域判定窓wc1の右辺から左辺に向かって行って右辺連結性判定部207に出力する。
【0182】
(連結性判定部)
上辺連結性判定部204と、下辺連結性判定部205と、左辺連結性判定部206と、右辺連結性判定部207とは、それぞれcnt_bを入力して連結性を判定し、判定結果としてcnnct_bを出力する。
【0183】
図5は、上辺連結性判定部204の判定方法を示す図である。ここで、連結性判定窓wdは画像処理窓Waのうち注目画素33を中心に含む正方形の領域であり、図5においては1辺が7画素の例を示している。
【0184】
上辺連結性判定部204は、cnt_bが全て1以下であるとき、連結性判定値であるcnnct_b[0]=1を判定結果連結部209のb4に出力する。上辺連結性判定部204は、cnt_bに一つでも2以上の値がある場合には、cnnct_b[0]=0を判定結果連結部209のb4に出力する。
【0185】
図5の例においては、cnt_bに3があるため、cnnct_b[0]は0となる。
【0186】
図6は、下辺連結性判定部205の判定方法を示す図である。ここで、連結性判定窓wdは画像処理窓Waのうち注目画素33を中心に含む正方形の領域であり、図6においては1辺が7画素の例を示している。
【0187】
下辺連結性判定部205は、cnt_bが全て1以下であるとき、連結性判定値であるcnnct_b[2]=1を判定結果連結部209のb6に出力する。下辺連結性判定部205は、cnt_bに一つでも2以上の値がある場合には、cnnct_b[2]=0を判定結果連結部209のb6に出力する。
【0188】
図6の例においては、cnt_bに3があるため、cnnct_b[2]は0となる。
【0189】
図7は、左辺連結性判定部206の判定方法を示す図である。ここで、連結性判定窓wdは画像処理窓Waのうち注目画素33を中心に含む正方形の領域であり、図7においては1辺が7画素の例を示している。
【0190】
左辺連結性判定部206は、cnt_bが全て1以下であるとき、連結性判定値であるcnnct_b[1]=1を判定結果連結部209のb5に出力する。左辺連結性判定部206は、cnt_bに一つでも2以上の値がある場合には、cnnct_b[1]=0を判定結果連結部209のb5に出力する。
【0191】
図7の例においては、cnt_bが全て1以下であるため、cnnct_b[0]は1となる。
【0192】
図8は、右辺連結性判定部207の判定方法を示す図である。ここで、連結性判定窓wdは画像処理窓Waのうち注目画素33を中心に含む正方形の領域であり、図8においては1辺が7画素の例を示している。
【0193】
右辺連結性判定部207は、cnt_bが全て1以下であるとき、連結性判定値であるcnnct_b[3]=1を判定結果連結部209のb7に出力する。右辺連結性判定部207は、cnt_bに一つでも2以上の値がある場合には、cnnct_b[3]=0を判定結果連結部209のb7に出力する。
【0194】
図8の例においては、cnt_bに2があるため、cnnct_b[3]は0となる。
【0195】
判定結果連結部209はb4乃至b7の4bitであるflagcをライン調整決定部210に出力する。
【0196】
(ライン調整処理選択テーブル)
上辺連結性判定部204はlcount1を、下辺連結性判定部205はlcout3を、左辺連結性判定部206はlcount0を、右辺連結性判定部207はlcount2を、それぞれライン調整処理選択テーブル208に出力する。
【0197】
ライン調整処理選択テーブル208は、lcount0乃至lcount3のパターンに応じたcnt_bを出力する。
【0198】
例えば、図3に示すように、lcount0乃至lcount3が6画素の太線を表す場合は、flagcが0101であるところを0111に読み替えて、ライン調整決定部210に出力するとともに、スイッチビットをライン調整決定部210に出力する。
【0199】
また、lcount0乃至lcount3が5画素の普通線を表す場合は、flagcが0101であるところを0110に読み替えて、ライン調整決定部210に出力するとともに、スイッチビットをライン調整決定部210に出力する。
【0200】
ライン調整決定部210は、スイッチビットを入力した場合、判定結果連結部209の出力に代えてライン調整処理選択テーブル208からのflagcを出力する。
【0201】
このように、同一のflagcとなる場合であっても、ライン調整処理選択テーブル208は、あらかじめ格納されているテーブルに従ってlcount0乃至lcount3のパターンに応じたcnt_bを出力する。
【0202】
(特異点検出部)
図9は、丸いドットを画像処理窓Waにて表示した図である。図10は、図9に示す図を従来の方法によって細線化した結果を示す図である。図10に示すように、従来の方法によっては細線化後の図形が丸くならず上下左右に突出した形状となる。
【0203】
本実施形態においては、このような現象が起きる図形である特異点を検出し、より滑らかに細線化するようにflagcを強制的に切り替える。
【0204】
行単位連結性カウント202は特異点検出部211にcnt_b[0]とcnt_b[2]を出力する。列単位連結性カウント203は特異点検出部211にcnt_b[1]とcnt_b[3]を出力する。
【0205】
一方、特異点検出部211は、特異点のcnt_bのパターンである特異点パターンを記憶している。図11Aは特異点とcnt_bのパターンの例である。
【0206】
特異点検出部211は、cnt_bの入力を受け入れると、特異点パターンを順次読みだし、cnt_bとの比較を行う。比較の方法は論理積をとることによっておこなってもよい。
【0207】
図9の例において、wc1は10番目の特異点パターンと同一である。このため、特異点検出部211は画像処理窓Waに特異点が存在すると判定する。
【0208】
特異点検出部211は特異点が存在すると判定したとき、あらかじめ定められたflagcを出力する。例えば、特異点が検出された場合のflagcとして1101を出力する。
【0209】
ライン調整決定部210は特異点検出部211から入力があると、ライン調整処理選択テーブル208からのスイッチビットの入力の有無にかかわらず、判定結果連結部209からの入力に代えて特異点検出部211からの出力をflagcとして出力する。
【0210】
例えば、判定結果連結部209からの入力が0010のとき、特異点検出部211が1101を出力するとする。0010より1101の方が連結性は高い、このため、後続の細線化量計算部13はより多くの画素を削除する。これにより、特異点の突出部が削除され、より滑らかに細線化される。
【0211】
図11Bは、特異点検出部211の出力に応じて細線化された結果を示した図である。図11Bに示すように、図11Aの10番は図11Bの10番のように、図11Aの11番は図11Bの11番のように、図11Aの12番は図11Bの12番のように、図11Aの13番は図11Bの13番のように、それぞれ滑らかに細線化される。
【0212】
図12は、フラグ連結部16の連結動作を表した図である。図12に示すようにフラグ連結部16は、輪郭画素抽出部11からの出力であるRoをb8に、第1の矩形領域連結性判定部151からのflagcの出力であるflagc[0]をb7乃至b4に、第2の矩形領域連結性判定部152からのflagcの出力であるflagc[1]をb3乃至b0に設定して出力する。
【0213】
(細線化量計算部)
細線化量計算部13は第1の細線化量計算部131乃至第8の細線化量計算部138を備える。細線化量計算部13は輪郭画素抽出窓32を構成する画素の2値化量を入力し、輪郭画素抽出窓32のパターンに従ってフィルタ係数を生成する。
【0214】
このフィルタ係数は、第1の細線化量計算部131乃至第8の細線化量計算部138ではそれぞれ異なっている。例えば、第1の細線化量計算部131から第8の細線化量計算部138まで順により多く細線化するように、第1の細線化量計算部131乃至第8の細線化量計算部138はそれぞれのフィルタ係数を生成し、このフィルタ係数をSFILOUT1乃至SFILOUT8として、選択的補正出力部14のセレクタ141に出力する。
【0215】
セレクタ141は、フラグ連結部16からの入力に従って、0及びSFILOUT1乃至SFILOUTを切り替えてSELOUTとして加算部142に出力する。
【0216】
図13は、セレクタ141のフィルタ選択の例を示す図である。図13においては説明のためflagc[0]の部分だけを示している。また、フィルタ係数の数を5個にしてある。
【0217】
図13に示すように、セレクタ141は、例えばflagc[0]が0000のときは細線化を行わず、1011のときは削減フィルタの強度を大きくしてより多く削除するように、フィルタ係数を選択する。
【0218】
すなわち、セレクタ141は太線部、太線内部は大きく削り、普通線は中程度に削り、細線部は小さく削るというようにフィルタを選択する。
【0219】
加算部142はSELOUTに注目画素33を加算して、積算部143に出力する、積算部143は加算部142からの入力値にデューティーDTYを積算して細線化処理後画像信号SHW1として出力する。
【0220】
(第3の実施形態の効果)
以上述べたように、本実施形態の画像処理装置は、特異点を検出してフィルタ選択の基礎となるフラグを強制的に変更する特異点検出部を備える。また、本実施形態の画像処理装置は、あらかじめ格納されているテーブルに従ってlcount0乃至lcount3のパターンに応じたcnt_bを出力するライン調整処理選択テーブル208を備える。このため、本実施形態の画像処理装置は、特異点を有する図形であってもその図形の特徴を維持しながら細線化することが可能となるという効果がある。また、本実施形態の画像処理装置は、よりきめ細やかに制御された細線化をすることが可能となるという効果がある。
【図面の簡単な説明】
【0221】
【図1】矩形領域連結性判定部15の概要を示すブロック図である。
【図2A】連結性判定の処理方法を示した図である。
【図2B】判定対象となった列の全ての画素が1である場合の例を示す図である。
【図2C】判定の対象となった列に一部白い画素がある場合の例を示す図である。
【図3】矩形領域判定窓wc1の1辺が13画素である場合の例を示す図である。
【図4】行単位連結性カウント202のcnt_b算出のフローチャートである。
【図5】上辺連結性判定部204の判定方法を示す図である。
【図6】下辺連結性判定部205の判定方法を示す図である。
【図7】左辺連結性判定部206の判定方法を示す図である。
【図8】右辺連結性判定部207の判定方法を示す図である。
【図9】丸いドットを画像処理窓Waにて表示した図である。
【図10】図9に示す図を従来の方法によって細線化した結果を示す図である。
【図11A】特異点とcnt_bのパターンの例である。
【図11B】特異点検出部211の出力に応じて細線化された結果を示した図である。
【図12】フラグ連結部16の連結動作を表した図である。
【図13】セレクタ141のフィルタ選択の例を示す図である。
【図14】矩形領域連結性判定部15の概要を示すブロック図である。
【図15】矩形領域連結性判定部15の概要を示すブロック図である。
【図16A】600dpiの細線化前の画像の例を示す図である。
【図16B】図16Aの線を左右1画素分削除する細線化を行った場合の図である。
【図16C】1200dpiの細線化前の画像の例を示す図である。
【図16D】図16Cの線に600dpiに適用した細線化を施した場合の図である。
【図16E】削除する画素数を2倍にした場合の図である。
【図16F】細線化量をより細かく制御した場合の図である。
【図17】本実施形態の画像処理装置のハードウエア構成を示す図である。
【図18】本実施形態の画像処理装置の処理の概要を示すフローチャートである。
【図19】画像処理装置の細線化に係る部分のブロック図である。
【図20】画像処理窓Waの概念図である。
【図21】印字すべき画像の細線化前の画像の例である原画像41を示す図である。
【図22】原画像41に注目画素33に合わせて画像処理窓Waを設定した例を示した図である。
【図23】輪郭パターンの例である。
【図24】輪郭画素抽出部11の処理を示すフローチャートである。
【符号の説明】
【0222】
11:輪郭画素抽出部、
13:細線化量計算部、
14:選択的補正出力部、
15:矩形領域連結性判定部、
202:行単位連結性カウント、
203:列単位連結性カウント、
204:上辺連結性判定部、
205:下辺連結性判定部、
206:左辺連結性判定部、
207:右辺連結性判定部、
208:ライン調整処理選択テーブル、
210:ライン調整決定部、
211:特異点検出部。
【特許請求の範囲】
【請求項1】
注目画素が輪郭であるかを判定する輪郭画素抽出部と、
前記輪郭画素抽出部が、前記注目画素が輪郭であると判定した場合に前記注目画素に施す細線化の量を算出する細線化量計算部と、
前記注目画素を含む画素領域が所定の画素パターンであるかを判定する矩形領域連結性判定部と、
前記矩形領域連結性判定部が前記注目画素を含む画素領域を前記所定の画素パターンであると判定しない場合に前記細線化の量で前記注目画素に細線化を施し、前記矩形領域連結性判定部が前記注目画素を含む画素領域を前記所定の画素パターンであると判定する場合に前記細線化の量とは異なる代替の細線化の量で前記注目画素に細線化を施す選択的補正出力部と、
を備えることを特徴とする画像処理装置。
【請求項2】
前記矩形領域連結性判定部が、
所定の領域における行単位の画素の連続の程度を判定する行単位連結性カウントと、
所定の領域における列単位の画素の連続の程度を判定する列単位連結性カウントと、
所定の領域における上辺から下辺に向けての画素の連結性を判定する上辺連結性判定部と、
所定の領域における下辺から上辺に向けての画素の連結性を判定する下辺連結性判定部と、
所定の領域における左辺から右辺に向けての画素の連結性を判定する左辺連結性判定部と、
所定の領域における右辺から左辺に向けての画素の連結性を判定する右辺連結性判定部と、
前記行単位連結性カウント及び列単位連結性カウントからの入力に基づいて、前記所定領域に特異な細線化が必要な図形パターンである特異点が存在するかを判定し、特異点に応じた信号を出力する特異点検出部と、
前記特異点検出部から入力した信号に前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの出力を置き換えるライン調整決定部と、
を備えることを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記特異点検出部が、あらかじめ格納されている特異点の特徴を順次読みだし、この読み出した特異点の特徴と前記行単位連結性カウント及び前記列単位連結性カウントからの入力とをパターンマッチングすることによって特異点を検出する、
ことを特徴とする請求項2記載の画像処理装置。
【請求項4】
前記矩形領域連結性判定部が、
所定の領域における行単位の画素の連続の程度を判定する行単位連結性カウントと、
所定の領域における列単位の画素の連続の程度を判定する列単位連結性カウントと、
所定の領域における上辺から下辺に向けての画素の連結性を判定する上辺連結性判定部と、
所定の領域における下辺から上辺に向けての画素の連結性を判定する下辺連結性判定部と、
所定の領域における左辺から右辺に向けての画素の連結性を判定する左辺連結性判定部と、
所定の領域における右辺から左辺に向けての画素の連結性を判定する右辺連結性判定部と、
前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの入力に基づいて前記所定領域の線幅を判定し、この線幅に応じた信号を出力するライン調整処理選択テーブルと、
前記ライン調整処理選択テーブルから入力した信号に前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの出力を置き換えるライン調整決定部と、
を備えることを特徴とする請求項1記載の画像処理装置。
【請求項5】
前記ライン調整処理選択テーブルが、
前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの入力と出力値の対応テーブルに従って信号を出力する、
ことを特徴とする請求項4記載の画像処理装置。
【請求項6】
前記矩形領域連結性判定部が、
所定の領域における行単位の画素の連続の程度を判定する行単位連結性カウントと、
所定の領域における列単位の画素の連続の程度を判定する列単位連結性カウントと、
所定の領域における上辺から下辺に向けての画素の連結性を判定する上辺連結性判定部と、
所定の領域における下辺から上辺に向けての画素の連結性を判定する下辺連結性判定部と、
所定の領域における左辺から右辺に向けての画素の連結性を判定する左辺連結性判定部と、
所定の領域における右辺から左辺に向けての画素の連結性を判定する右辺連結性判定部と、
前記行単位連結性カウント及び列単位連結性カウントからの入力に基づいて、前記所定領域に特異な細線化が必要な図形パターンである特異点が存在するかを判定し、特異点に応じた信号を出力する特異点検出部と、
前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの入力に基づいて前記所定領域の線幅を判定し、この線幅に応じた信号を出力するライン調整処理選択テーブルと、
前記ライン調整処理選択テーブルから入力した信号に前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの出力を置き換え、前記特異点検出部から入力した信号に前記ライン調整処理選択テーブルから入力した信号並びに前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの出力を置き換えるライン調整決定部と、
を備えることを特徴とする請求項1記載の画像処理装置。
【請求項7】
前記特異点検出部が、あらかじめ格納されている特異点の特徴を順次読みだし、この読み出した特異点の特徴と前記行単位連結性カウント及び前記列単位連結性カウントからの入力とをパターンマッチングすることによって特異点を検出し、
前記ライン調整処理選択テーブルが、
前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの入力と出力値の対応テーブルに従って信号を出力する、
ことを特徴とする請求項6記載の画像処理装置。
【請求項8】
前記矩形領域連結性判定部を複数有することを特徴とする請求項1記載の画像処理装置。
【請求項9】
前記細線化量計算部を複数有することを特徴とする請求項1記載の画像処理装置。
【請求項10】
注目画素が輪郭であるかを判定して出力する輪郭画素抽出部と、
前記輪郭画素抽出部が、前記注目画素が輪郭であると判定した場合に前記注目画素に施す細線化の量を算出する細線化量計算部と、
前記注目画素を含む画素領域が所定の画素パターンであるかを判定する矩形領域連結性判定部と、
前記矩形領域連結性判定部が前記注目画素を含む画素領域を前記所定の画素パターンであると判定しない場合に前記細線化の量で前記注目画素に細線化を施し、前記矩形領域連結性判定部が前記注目画素を含む画素領域を前記所定の画素パターンであると判定する場合に前記細線化の量とは異なる代替の細線化の量で前記注目画素に細線化を施す選択的補正出力部と、を備える画像処理装置
を備える画像形成装置。
【請求項11】
前記矩形領域連結性判定部が、
所定の領域における行単位の画素の連続の程度を判定する行単位連結性カウントと、
所定の領域における列単位の画素の連続の程度を判定する列単位連結性カウントと、
所定の領域における上辺から下辺に向けての画素の連結性を判定する上辺連結性判定部と、
所定の領域における下辺から上辺に向けての画素の連結性を判定する下辺連結性判定部と、
所定の領域における左辺から右辺に向けての画素の連結性を判定する左辺連結性判定部と、
所定の領域における右辺から左辺に向けての画素の連結性を判定する右辺連結性判定部と、
前記行単位連結性カウント及び列単位連結性カウントからの入力に基づいて、前記所定領域に特異な細線化が必要な図形パターンである特異点が存在するかを判定し、特異点に応じた信号を出力する特異点検出部と、
前記特異点検出部から入力した信号に前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの出力を置き換えるライン調整決定部と、
を備えることを特徴とする請求項10記載の画像形成装置。
【請求項12】
前記特異点検出部が、あらかじめ格納されている特異点の特徴を順次読みだし、この読み出した特異点の特徴と前記行単位連結性カウント及び前記列単位連結性カウントからの入力とをパターンマッチングすることによって特異点を検出する、
ことを特徴とする請求項11記載の画像形成装置。
【請求項13】
前記矩形領域連結性判定部が、
所定の領域における行単位の画素の連続の程度を判定する行単位連結性カウントと、
所定の領域における列単位の画素の連続の程度を判定する列単位連結性カウントと、
所定の領域における上辺から下辺に向けての画素の連結性を判定する上辺連結性判定部と、
所定の領域における下辺から上辺に向けての画素の連結性を判定する下辺連結性判定部と、
所定の領域における左辺から右辺に向けての画素の連結性を判定する左辺連結性判定部と、
所定の領域における右辺から左辺に向けての画素の連結性を判定する右辺連結性判定部と、
前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの入力に基づいて前記所定領域の線幅を判定し、この線幅に応じた信号を出力するライン調整処理選択テーブルと、
前記ライン調整処理選択テーブルから入力した信号に前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの出力を置き換えるライン調整決定部と、
を備えることを特徴とする請求項10記載の画像形成装置。
【請求項14】
前記ライン調整処理選択テーブルが、
前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの入力と出力値の対応テーブルに従って信号を出力する、
ことを特徴とする請求項13記載の画像形成装置。
【請求項15】
前記矩形領域連結性判定部が、
所定の領域における行単位の画素の連続の程度を判定する行単位連結性カウントと、
所定の領域における列単位の画素の連続の程度を判定する列単位連結性カウントと、
所定の領域における上辺から下辺に向けての画素の連結性を判定する上辺連結性判定部と、
所定の領域における下辺から上辺に向けての画素の連結性を判定する下辺連結性判定部と、
所定の領域における左辺から右辺に向けての画素の連結性を判定する左辺連結性判定部と、
所定の領域における右辺から左辺に向けての画素の連結性を判定する右辺連結性判定部と、
前記行単位連結性カウント及び列単位連結性カウントからの入力に基づいて、前記所定領域に特異な細線化が必要な図形パターンである特異点が存在するかを判定し、特異点に応じた信号を出力する特異点検出部と、
前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの入力に基づいて前記所定領域の線幅を判定し、この線幅に応じた信号を出力するライン調整処理選択テーブルと、
前記ライン調整処理選択テーブルから入力した信号に前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの出力を置き換え、前記特異点検出部から入力した信号に前記ライン調整処理選択テーブルから入力した信号並びに前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの出力を置き換えるライン調整決定部と、
を備えることを特徴とする請求項10記載の画像形成装置。
【請求項16】
前記特異点検出部が、あらかじめ格納されている特異点の特徴を順次読みだし、この読み出した特異点の特徴と前記行単位連結性カウント及び前記列単位連結性カウントからの入力とをパターンマッチングすることによって特異点を検出し、
前記ライン調整処理選択テーブルが、
前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの入力と出力値の対応テーブルに従って信号を出力する、
ことを特徴とする請求項15記載の画像形成装置。
【請求項17】
前記矩形領域連結性判定部を複数有することを特徴とする請求項10記載の画像形成装置。
【請求項18】
前記細線化量計算部を複数有することを特徴とする請求項10記載の画像形成装置。
【請求項19】
画像処理装置の細線化方法であって、
輪郭画素抽出部が判定した輪郭に応じて細線化量計算部が算出した細線化量を矩形領域連結性判定部が注目画素を含む画素領域を所定の画素パターンであると判定したときに出力した代替の画素パターンに対応した細線化量に選択的補正出力部が切り替えて細線化する、
ことを特徴とする画像処理装置の細線化方法。
【請求項20】
前記輪郭画素抽出部の特異点検出部が、あらかじめ格納されている特異点の特徴を順次読みだし、この読み出した特異点の特徴と行単位連結性カウント及び列単位連結性カウントからの入力とをパターンマッチングすることによって特異点を検出し、この特異点に応じた信号を出力し
前記輪郭画素抽出部のライン調整処理選択テーブルが、
前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの入力と出力値の対応テーブルに従って信号を出力する、
ことを特徴とする請求項19記載の画像処理装置の細線化方法。
【請求項1】
注目画素が輪郭であるかを判定する輪郭画素抽出部と、
前記輪郭画素抽出部が、前記注目画素が輪郭であると判定した場合に前記注目画素に施す細線化の量を算出する細線化量計算部と、
前記注目画素を含む画素領域が所定の画素パターンであるかを判定する矩形領域連結性判定部と、
前記矩形領域連結性判定部が前記注目画素を含む画素領域を前記所定の画素パターンであると判定しない場合に前記細線化の量で前記注目画素に細線化を施し、前記矩形領域連結性判定部が前記注目画素を含む画素領域を前記所定の画素パターンであると判定する場合に前記細線化の量とは異なる代替の細線化の量で前記注目画素に細線化を施す選択的補正出力部と、
を備えることを特徴とする画像処理装置。
【請求項2】
前記矩形領域連結性判定部が、
所定の領域における行単位の画素の連続の程度を判定する行単位連結性カウントと、
所定の領域における列単位の画素の連続の程度を判定する列単位連結性カウントと、
所定の領域における上辺から下辺に向けての画素の連結性を判定する上辺連結性判定部と、
所定の領域における下辺から上辺に向けての画素の連結性を判定する下辺連結性判定部と、
所定の領域における左辺から右辺に向けての画素の連結性を判定する左辺連結性判定部と、
所定の領域における右辺から左辺に向けての画素の連結性を判定する右辺連結性判定部と、
前記行単位連結性カウント及び列単位連結性カウントからの入力に基づいて、前記所定領域に特異な細線化が必要な図形パターンである特異点が存在するかを判定し、特異点に応じた信号を出力する特異点検出部と、
前記特異点検出部から入力した信号に前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの出力を置き換えるライン調整決定部と、
を備えることを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記特異点検出部が、あらかじめ格納されている特異点の特徴を順次読みだし、この読み出した特異点の特徴と前記行単位連結性カウント及び前記列単位連結性カウントからの入力とをパターンマッチングすることによって特異点を検出する、
ことを特徴とする請求項2記載の画像処理装置。
【請求項4】
前記矩形領域連結性判定部が、
所定の領域における行単位の画素の連続の程度を判定する行単位連結性カウントと、
所定の領域における列単位の画素の連続の程度を判定する列単位連結性カウントと、
所定の領域における上辺から下辺に向けての画素の連結性を判定する上辺連結性判定部と、
所定の領域における下辺から上辺に向けての画素の連結性を判定する下辺連結性判定部と、
所定の領域における左辺から右辺に向けての画素の連結性を判定する左辺連結性判定部と、
所定の領域における右辺から左辺に向けての画素の連結性を判定する右辺連結性判定部と、
前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの入力に基づいて前記所定領域の線幅を判定し、この線幅に応じた信号を出力するライン調整処理選択テーブルと、
前記ライン調整処理選択テーブルから入力した信号に前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの出力を置き換えるライン調整決定部と、
を備えることを特徴とする請求項1記載の画像処理装置。
【請求項5】
前記ライン調整処理選択テーブルが、
前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの入力と出力値の対応テーブルに従って信号を出力する、
ことを特徴とする請求項4記載の画像処理装置。
【請求項6】
前記矩形領域連結性判定部が、
所定の領域における行単位の画素の連続の程度を判定する行単位連結性カウントと、
所定の領域における列単位の画素の連続の程度を判定する列単位連結性カウントと、
所定の領域における上辺から下辺に向けての画素の連結性を判定する上辺連結性判定部と、
所定の領域における下辺から上辺に向けての画素の連結性を判定する下辺連結性判定部と、
所定の領域における左辺から右辺に向けての画素の連結性を判定する左辺連結性判定部と、
所定の領域における右辺から左辺に向けての画素の連結性を判定する右辺連結性判定部と、
前記行単位連結性カウント及び列単位連結性カウントからの入力に基づいて、前記所定領域に特異な細線化が必要な図形パターンである特異点が存在するかを判定し、特異点に応じた信号を出力する特異点検出部と、
前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの入力に基づいて前記所定領域の線幅を判定し、この線幅に応じた信号を出力するライン調整処理選択テーブルと、
前記ライン調整処理選択テーブルから入力した信号に前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの出力を置き換え、前記特異点検出部から入力した信号に前記ライン調整処理選択テーブルから入力した信号並びに前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの出力を置き換えるライン調整決定部と、
を備えることを特徴とする請求項1記載の画像処理装置。
【請求項7】
前記特異点検出部が、あらかじめ格納されている特異点の特徴を順次読みだし、この読み出した特異点の特徴と前記行単位連結性カウント及び前記列単位連結性カウントからの入力とをパターンマッチングすることによって特異点を検出し、
前記ライン調整処理選択テーブルが、
前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの入力と出力値の対応テーブルに従って信号を出力する、
ことを特徴とする請求項6記載の画像処理装置。
【請求項8】
前記矩形領域連結性判定部を複数有することを特徴とする請求項1記載の画像処理装置。
【請求項9】
前記細線化量計算部を複数有することを特徴とする請求項1記載の画像処理装置。
【請求項10】
注目画素が輪郭であるかを判定して出力する輪郭画素抽出部と、
前記輪郭画素抽出部が、前記注目画素が輪郭であると判定した場合に前記注目画素に施す細線化の量を算出する細線化量計算部と、
前記注目画素を含む画素領域が所定の画素パターンであるかを判定する矩形領域連結性判定部と、
前記矩形領域連結性判定部が前記注目画素を含む画素領域を前記所定の画素パターンであると判定しない場合に前記細線化の量で前記注目画素に細線化を施し、前記矩形領域連結性判定部が前記注目画素を含む画素領域を前記所定の画素パターンであると判定する場合に前記細線化の量とは異なる代替の細線化の量で前記注目画素に細線化を施す選択的補正出力部と、を備える画像処理装置
を備える画像形成装置。
【請求項11】
前記矩形領域連結性判定部が、
所定の領域における行単位の画素の連続の程度を判定する行単位連結性カウントと、
所定の領域における列単位の画素の連続の程度を判定する列単位連結性カウントと、
所定の領域における上辺から下辺に向けての画素の連結性を判定する上辺連結性判定部と、
所定の領域における下辺から上辺に向けての画素の連結性を判定する下辺連結性判定部と、
所定の領域における左辺から右辺に向けての画素の連結性を判定する左辺連結性判定部と、
所定の領域における右辺から左辺に向けての画素の連結性を判定する右辺連結性判定部と、
前記行単位連結性カウント及び列単位連結性カウントからの入力に基づいて、前記所定領域に特異な細線化が必要な図形パターンである特異点が存在するかを判定し、特異点に応じた信号を出力する特異点検出部と、
前記特異点検出部から入力した信号に前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの出力を置き換えるライン調整決定部と、
を備えることを特徴とする請求項10記載の画像形成装置。
【請求項12】
前記特異点検出部が、あらかじめ格納されている特異点の特徴を順次読みだし、この読み出した特異点の特徴と前記行単位連結性カウント及び前記列単位連結性カウントからの入力とをパターンマッチングすることによって特異点を検出する、
ことを特徴とする請求項11記載の画像形成装置。
【請求項13】
前記矩形領域連結性判定部が、
所定の領域における行単位の画素の連続の程度を判定する行単位連結性カウントと、
所定の領域における列単位の画素の連続の程度を判定する列単位連結性カウントと、
所定の領域における上辺から下辺に向けての画素の連結性を判定する上辺連結性判定部と、
所定の領域における下辺から上辺に向けての画素の連結性を判定する下辺連結性判定部と、
所定の領域における左辺から右辺に向けての画素の連結性を判定する左辺連結性判定部と、
所定の領域における右辺から左辺に向けての画素の連結性を判定する右辺連結性判定部と、
前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの入力に基づいて前記所定領域の線幅を判定し、この線幅に応じた信号を出力するライン調整処理選択テーブルと、
前記ライン調整処理選択テーブルから入力した信号に前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの出力を置き換えるライン調整決定部と、
を備えることを特徴とする請求項10記載の画像形成装置。
【請求項14】
前記ライン調整処理選択テーブルが、
前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの入力と出力値の対応テーブルに従って信号を出力する、
ことを特徴とする請求項13記載の画像形成装置。
【請求項15】
前記矩形領域連結性判定部が、
所定の領域における行単位の画素の連続の程度を判定する行単位連結性カウントと、
所定の領域における列単位の画素の連続の程度を判定する列単位連結性カウントと、
所定の領域における上辺から下辺に向けての画素の連結性を判定する上辺連結性判定部と、
所定の領域における下辺から上辺に向けての画素の連結性を判定する下辺連結性判定部と、
所定の領域における左辺から右辺に向けての画素の連結性を判定する左辺連結性判定部と、
所定の領域における右辺から左辺に向けての画素の連結性を判定する右辺連結性判定部と、
前記行単位連結性カウント及び列単位連結性カウントからの入力に基づいて、前記所定領域に特異な細線化が必要な図形パターンである特異点が存在するかを判定し、特異点に応じた信号を出力する特異点検出部と、
前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの入力に基づいて前記所定領域の線幅を判定し、この線幅に応じた信号を出力するライン調整処理選択テーブルと、
前記ライン調整処理選択テーブルから入力した信号に前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの出力を置き換え、前記特異点検出部から入力した信号に前記ライン調整処理選択テーブルから入力した信号並びに前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの出力を置き換えるライン調整決定部と、
を備えることを特徴とする請求項10記載の画像形成装置。
【請求項16】
前記特異点検出部が、あらかじめ格納されている特異点の特徴を順次読みだし、この読み出した特異点の特徴と前記行単位連結性カウント及び前記列単位連結性カウントからの入力とをパターンマッチングすることによって特異点を検出し、
前記ライン調整処理選択テーブルが、
前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの入力と出力値の対応テーブルに従って信号を出力する、
ことを特徴とする請求項15記載の画像形成装置。
【請求項17】
前記矩形領域連結性判定部を複数有することを特徴とする請求項10記載の画像形成装置。
【請求項18】
前記細線化量計算部を複数有することを特徴とする請求項10記載の画像形成装置。
【請求項19】
画像処理装置の細線化方法であって、
輪郭画素抽出部が判定した輪郭に応じて細線化量計算部が算出した細線化量を矩形領域連結性判定部が注目画素を含む画素領域を所定の画素パターンであると判定したときに出力した代替の画素パターンに対応した細線化量に選択的補正出力部が切り替えて細線化する、
ことを特徴とする画像処理装置の細線化方法。
【請求項20】
前記輪郭画素抽出部の特異点検出部が、あらかじめ格納されている特異点の特徴を順次読みだし、この読み出した特異点の特徴と行単位連結性カウント及び列単位連結性カウントからの入力とをパターンマッチングすることによって特異点を検出し、この特異点に応じた信号を出力し
前記輪郭画素抽出部のライン調整処理選択テーブルが、
前記上辺連結性判定部及び前記下辺連結性判定部及び前記左辺連結性判定部及び前記右辺連結性判定部からの入力と出力値の対応テーブルに従って信号を出力する、
ことを特徴とする請求項19記載の画像処理装置の細線化方法。
【図1】
【図2A】
【図2B】
【図2C】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11A】
【図11B】
【図12】
【図13】
【図14】
【図15】
【図16A】
【図16B】
【図16C】
【図16D】
【図16E】
【図16F】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図2A】
【図2B】
【図2C】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11A】
【図11B】
【図12】
【図13】
【図14】
【図15】
【図16A】
【図16B】
【図16C】
【図16D】
【図16E】
【図16F】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【公開番号】特開2009−71829(P2009−71829A)
【公開日】平成21年4月2日(2009.4.2)
【国際特許分類】
【出願番号】特願2008−234808(P2008−234808)
【出願日】平成20年9月12日(2008.9.12)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(000003562)東芝テック株式会社 (5,631)
【Fターム(参考)】
【公開日】平成21年4月2日(2009.4.2)
【国際特許分類】
【出願日】平成20年9月12日(2008.9.12)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(000003562)東芝テック株式会社 (5,631)
【Fターム(参考)】
[ Back to top ]