説明

画像処理装置、画像処理方法及びプログラム

【課題】簡易な構成により細線化処理の高速化を図る。
【解決手段】画像処理装置の制御部は、2値の画像データの各画素のうち、最大値を持つ注目画素がエッジであるか否かを判定し、エッジと判定された注目画素が細線化の対象か否かを判定し、細線化の対象と判定された注目画素の画素値を変換する。判定時、制御部は最大値を持つ注目画素とその周辺画素の領域を、ラプラシアンフィルタを用いてフィルタ処理し、フィルタ処理の結果から領域内の最大値を持つ画素の数が3以上8以下であることが検出された場合、注目画素をエッジと判定する。制御部はエッジと判定された注目画素とその周辺画素の領域を、孤立点判定フィルタを用いてフィルタ処理し、フィルタ処理の結果から注目画素の細線化によって領域内の最大値を持つ画素の連結が維持されることが検出された場合、注目画素を細線化の対象と判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【0002】
一般によく行われる画像処理の1つとして細線化処理が知られている。細線化処理は文字や線の鮮鋭性を向上させることができ、スキャンされた原稿の文字画像が太るようなスキャナ特性や、ドットゲインが生じやすいプリンタ特性に対応して行われることが多い。
【0003】
広く知られた細線化処理方法によれば、画像を1画素毎にパターンマッチング処理し、細線化対象のエッジ形状を判定することが行われる。しかし、ソフトウェア処理によってこれを実現しようとすれば、1画素毎に処理していたのでは処理が遅い。また、様々なエッジ形状に対応するため、多くのパターンデータを保持する必要があり、メモリを占有する。
【0004】
このような問題を解決するため、簡易な構成による精度の高い細線化手法が検討されている。例えば、画像を5×5画素のブロック単位で抽出し、ブロック内の行単位の平均画素値が行を追う毎に増加するか又は減少するパターンを細線化対象と判定し、画素値から一定値を減算する方法が開示されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2004−280721号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記特許文献1に記載の方法は、単純な横線の検出に特化した細線化方法であり、縦線や複雑な文字の曲線の検出を行うことはできない。
また、一定値を減じることにより細線化しているため、周辺画素でのドットの出力状況に応じた細線化の強度調整を行うことができず、滑らかな細線化が実現できない。
【0007】
本発明の課題は、簡易な構成により細線化処理の高速化を図ることである。
【課題を解決するための手段】
【0008】
請求項1に記載の発明によれば、
2値の画像データの各画素のうち、最大値を持つ注目画素がエッジであるか否かを判定するエッジ判定手段と、
エッジと判定された注目画素が細線化の対象か否かを判定する細線化判定手段と、
細線化の対象と判定された注目画素の画素値を変換する細線化手段と、を備え、
前記エッジ判定手段は、最大値を持つ注目画素とその周辺画素の領域を、ラプラシアンフィルタを用いてフィルタ処理し、フィルタ処理の結果から領域内の最大値を持つ画素の数が3以上8以下であることが検出された場合、前記注目画素をエッジと判定し、
前記細線化判定手段は、エッジと判定された注目画素とその周辺画素の領域を、孤立点判定フィルタを用いてフィルタ処理し、フィルタ処理の結果から注目画素の細線化によって領域内の最大値を持つ画素の連結が維持されることが検出された場合、前記注目画素を細線化の対象と判定する画像処理装置が提供される。
【0009】
請求項2に記載の発明によれば、
2値の画像データの各画素のうち、最大値を持つ注目画素がエッジであるか否かを判定するエッジ判定手段と、
エッジと判定された注目画素が細線化の対象か否かを判定する細線化判定手段と、
細線化の対象と判定された注目画素の画素値を変換する細線化手段と、を備え、
前記エッジ判定手段は、最大値を持つ注目画素とその周辺画素において、最大値を持つ画素の総数をカウントし、カウントした総数が3以上8以下内にある場合、前記注目画素をエッジと判定し、
前記細線化判定手段は、エッジと判定された注目画素とその周辺画素において最大値を持つ画素の数を行毎及び列毎にカウントし、各行及び各列のカウントされた画素数の組み合わせが、細線化対象として予め定められた組み合わせに一致する場合、前記注目画素を細線化対象と判定する画像処理装置が提供される。
【0010】
請求項3に記載の発明によれば、
前記細線化手段は、最大値を持つ画素の数に対して減少する多値の出力値が定められたLUTを用いて、細線化の対象と判定された注目画素とその周辺画素のうち最大値を持つ画素の数に対応する多値の出力値を求め、注目画素の画素値を当該出力値に変換する請求項1又は2に記載の画像処理装置が提供される。
【0011】
請求項4に記載の発明によれば、
前記細線化手段は、2値の画像データとともに入力される属性データを参照し、前記注目画素の属性が文字である場合のみ、前記注目画素の画素値の変換を行う請求項1〜3の何れか一項に記載の画像処理装置が提供される。
【0012】
請求項5に記載の発明によれば、
2値の画像データの各画素のうち、最大値を持つ注目画素がエッジの画素であるか否かを判定するエッジ判定工程と、
エッジと判定された注目画素が細線化の対象か否かを判定する細線化判定工程と、
細線化の対象と判定された注目画素の画素値を変換する細線化工程と、を含み、
前記エッジ判定工程は、最大値を持つ注目画素とその周辺画素の領域を、ラプラシアンフィルタを用いてフィルタ処理し、フィルタ処理の結果から領域内の最大値を持つ画素の数が3以上8以下であることが検出された場合、前記注目画素をエッジと判定し、
前記細線化判定工程は、エッジと判定された注目画素とその周辺画素の領域を、孤立点判定フィルタを用いてフィルタ処理し、フィルタ処理の結果から注目画素の細線化によって領域内の最大値を持つ画素の連結が維持されることが検出された場合、前記注目画素を細線化の対象と判定する画像処理方法が提供される。
【0013】
請求項6に記載の発明によれば、
2値の画像データの各画素のうち、最大値を持つ注目画素がエッジの画素であるか否かを判定するエッジ判定工程と、
エッジと判定された注目画素が細線化の対象か否かを判定する細線化判定工程と、
細線化の対象と判定された注目画素の画素値を変換する細線化工程と、を含み、
前記エッジ判定工程は、最大値を持つ注目画素とその周辺画素において、最大値を持つ画素の総数をカウントし、カウントした総数が3以上8以下内にある場合、前記注目画素をエッジと判定し、
前記細線化判定工程は、エッジと判定された注目画素とその周辺画素において最大値を持つ画素の数を行毎及び列毎にカウントし、各行及び各列のカウントされた画素数の組み合わせが、細線化対象として予め定められた組み合わせに一致する場合、前記注目画素を細線化対象と判定する画像処理方法が提供される。
【0014】
請求項7に記載の発明によれば、
前記細線化工程は、最大値を持つ画素の数に対して減少する多値の出力値が定められたLUTを用いて、細線化の対象と判定された注目画素とその周辺画素のうち最大値を持つ画素の数に対応する多値の出力値を求め、注目画素の画素値を当該出力値に変換する請求項5又は6に記載の画像処理方法が提供される。
【0015】
請求項8に記載の発明によれば、
前記細線化工程は、2値の画像データとともに入力される属性データを参照し、前記注目画素の属性が文字である場合のみ、前記注目画素の画素値の変換を行う請求項5〜7の何れか一項に記載の画像処理方法が提供される。
【0016】
請求項9に記載の発明によれば、
コンピュータを、
請求項1〜4の何れか一項に記載の画像処理装置として機能させるためのプログラムが提供される。
【発明の効果】
【0017】
本発明の一の側面によれば、最大値を持つ注目画素のみエッジ判定の対象とすることができ、細線化処理を高速化することができる。また、ラプラシアンフィルタや孤立点判定フィルタは、フィルタ演算が簡易である。フィルタ処理の対象は注目画素とその周辺画素の9画素であるので、フィルタ処理に要する時間を短縮化することができる。細線化処理のために予め保持すべきデータも無く、メモリを確保する必要もないので、簡易な構成で細線化処理を高速化することが可能となる。
【0018】
本発明の他の側面によれば、最大値を持つ注目画素のみエッジ判定の対象とすることができ、細線化処理を高速化することができる。また、注目画素とその周辺画素において最大値を持つ画素数をカウントする簡易な演算によってエッジ判定、細線化対象の判定を行うことができる。細線化処理のために予め保持するデータは最大値を持つ画素の数の各行、各列の組み合わせのデータだけであるので、メモリを占有することなく、簡易な構成で細線化処理を高速化することが可能となる。
【図面の簡単な説明】
【0019】
【図1】本発明の実施の形態に係る画像処理装置を示す図である。
【図2】第1実施形態に係る細線化処理のフローチャートである。
【図3】ラプラシアンフィルタの一例を示す図である。
【図4】孤立点判定フィルタの一例を示す図である。
【図5】注目画素とその周辺画素の2値画像と、細線化後の処理画像とを示す。
【図6】注目画素とその周辺画素の2値画像と、細線化後の処理画像とを示す。
【図7】最大値を持つ画素数に対応してLUTに定められている注目画素の出力値を示す図である。
【図8】第2実施形態に係る細線化処理のフローチャートである。
【図9】注目画素とその周辺画素においてカウントされた最大値を持つ画素の数の行毎、列毎の組み合わせと、細線化対象として予め定められた組み合わせとを照合するイメージ図である。
【図10】細線化対象として、行毎及び列毎の最大値を持つ画素の数の組み合わせが定められたテーブル例を示す。
【発明を実施するための形態】
【0020】
以下、図面を参照して本発明の実施の形態について説明する。
本実施形態では、本発明を画像データの印刷を行う画像処理装置に適用した例を説明するが、画像データを細線化処理するのであれば他の画像処理装置に本発明を適用することが可能である。
【0021】
〈第1実施形態〉
図1は、第1実施形態に係る画像処理装置1を示す。
画像処理装置1は、原稿をスキャンして生成した画像データを画像処理し、画像処理された画像データの印刷を行う。また、画像処理装置1はコントローラ2に接続され、コントローラ2から送信される画像データの画像処理、印刷を行う。
【0022】
画像処理装置1は、図1に示すように、制御部11、記憶部12、操作部13、表示部14、画像読取部15、読取処理部16、圧縮IC17、メモリ制御IC18、画像メモリ19、伸張IC20、書込処理部21、印刷部22を備える。
【0023】
制御部11は、CPU(Central Processing Unit)、RAM(Random Access Memory)等から構成されている。制御部11は、記憶部12に記憶されている各種処理プログラムとの協働によって各種演算を行い、画像処理装置1の各部を集中制御する。
【0024】
制御部11は、記憶部12に記憶された細線化処理プログラムとの協働により、画像データを細線化処理する。細線化処理の詳細は後述する。
【0025】
記憶部12は、制御部11により用いられる各種処理プログラムの他、処理に必要なパラメータや設定データ等を記憶している。記憶部12としてはハードディスクを用いることができる。
【0026】
操作部13は、タッチパネルや操作キーを備える。操作部13は、ユーザによる入力操作に応じた操作信号を生成して制御部11に出力する。
表示部14は、制御部11の制御に従ってタッチパネルに操作画面や処理結果を表示する。
【0027】
画像読取部15は、ADF(Auto Document Feeder)によって搬送された原稿をスキャナにより光走査し、画像信号(アナログ信号)として読み取る。
読取処理部16は、画像読取部15によって読み取られた画像信号をA/D変換し、得られた画像データ(デジタルデータ)にシェーディング処理等の画像処理を施す。
圧縮IC17は、読取処理部16から出力された画像データを圧縮処理する。
【0028】
メモリ制御IC18は、圧縮IC17によって圧縮処理された画像データ、コントローラ2から転送される画像データを画像メモリ19に書き込む。また、メモリ制御IC18は画像メモリ19から印刷対象の画像データを読み出して伸張IC20に出力する。
画像メモリ19は画像データを記憶する。画像メモリ19としてはDRAM(Dynamic RAM)を用いることができる。
【0029】
伸張IC20は、圧縮処理された画像データに伸張処理を施す。
書込処理部21は、伸張処理された画像データに画像処理を施す。画像処理は、例えば拡大縮小処理、階調補正処理、スクリーン処理である。書込処理部21は、画像処理後、画像データをPWM(Pulse Width Modulation)変換し、印刷部22に出力する。
【0030】
印刷部22は、電子写真方式による印刷を行い、例えば給紙部、露光部、現像部、転写部、定着部等からなる。印刷時には、画像データがPWM変換されたPWM信号に従って、露光部が感光ドラム上にレーザ光を照射し静電潜像を形成する。これを現像部がトナーを用いて現像処理し、感光ドラム上にトナー像を形成する。転写部は、感光ドラムから給紙部から給紙された用紙上にトナー像を転写させ、定着部がトナー像の定着処理を行う。
【0031】
コントローラ2は、パーソナルコンピュータ等の外部装置から印刷対象のPDL(Page Description Language)データを受信してラスタライズ処理し、画像データを生成する。生成された画像データは、画像処理装置1のメモリ制御IC18に転送される。ラスタライズ処理時、コントローラ2は画像の属性が文字(Text)、線画(Graphics)、写真(Image)の何れであるかを判定し、画素毎に画像の属性を示す属性データを生成する。属性データは画像データとともに画像処理装置1に転送される。
【0032】
上記画像処理装置1は、制御部11が記憶部12に記憶された細線化処理プログラムを読み込み、実行することで、2値の画像データの細線化処理をソフトウェア処理によって実現することができる。
図2は、制御部11により実行される細線化処理のフローチャートである。
【0033】
図2に示すように、制御部11は細線化処理の対象である2値の画像データを、N×N画素の領域単位で入力する(ステップS1)。細線化処理の対象としたい画像データが多値である場合は先に誤差拡散処理等によって多値の画像データを2値化する前処理を行った後に、細線化処理してもよい。制御部11は入力したN×N画素の領域の中心を注目画素とし、当該注目画素は最大値を持つ画素であるか否かを判定する(ステップS2)。以下、最大値を持つ画素を黒画素、最小値を持つ画素を白画素という。
【0034】
注目画素が黒画素ではない場合(ステップS2;N)、入力したN×N画素の処理を終了する。全画像領域に対し細線化処理が終了していない場合は、主走査方向に1画素位置をシフトして(主走査方向の走査が終了すれば副走査方向に1画素位置をシフトして)、ステップS1の処理が開始される。つまり、黒画素である注目画素が発見されるまで、1画素ずつ位置をシフトしながらN×N画素の画像データが入力される。
【0035】
注目画素が黒画素である場合(ステップS2;Y)、制御部11は注目画素とその周辺画素からなる3×3画素の領域をラプラシアンフィルタ処理する(ステップS3)。制御部11は、フィルタ処理結果によって注目画素がエッジであるか否かを判定する。
【0036】
3×3画素の全てが黒画素である場合、3×3画素の領域はベタ画像であり、エッジは含まれない。一方、3×3画素に白画素が少なくとも1つ存在すれば、黒画素である注目画素は本来、エッジである。しかし、細線化対象となるエッジを抽出することが目的であるので、注目画素の画素値を変換し細線化した後にも、注目画素周辺の黒画素間の連結が保障されなければならない。黒画素の数が1の場合、つまり注目画素のみ黒画素である場合、3×3画素の領域に含まれるのは孤立点の画像であり、注目画素の細線化によって孤立点が失われる場合があるので細線化の対象とすべきではない。また、黒画素の数が2である場合、注目画素の細線化によって注目画素周辺の黒画素が孤立点化する場合があり、細線化対象とするのは適切ではない。よって、制御部11は黒画素の数が3以上8以下となる場合をラプラシアンフィルタのフィルタ処理の結果によって検出し、注目画素をエッジと判定する。
【0037】
図3は、一例としてのラプラシアンフィルタF1を示す。図3に示すように、ラプラシアンフィルタF1には3×3画素の各画素の位置に応じてそれぞれ係数が設定されている。制御部11は3×3画素の各画素値のうち、黒画素の画素値を1、白画素の画素値を0に変換してフィルタ演算を行う。制御部11は、各画素の1又は0の画素値に画素位置に応じたラプラシアンフィルタF1の係数を乗算し、各画素について得られた乗算値の和をフィルタ演算値として求める。
【0038】
3×3画素のうち黒画素の数が3以上8以下となるのは、フィルタ演算値が1以上6以下となる場合である。よって、フィルタ演算値が1以上6以下である場合(ステップS4;Y)、制御部11は注目画素がエッジであると判定する。フィルタ演算値が1以上6以下ではない場合(ステップS4;N)、制御部11は注目画素がエッジではないと判定し、入力したN×N画素の処理を終了する。未処理の画像領域がある場合は前述のように1画素分位置をシフトして次のN×N画素の画像データを入力し、ステップS1から同様の処理を繰り返す。
【0039】
なお、図3に示したラプラシアンフィルタは一例であり、注目画素を含む周辺領域内で黒画素の数が3以上8以下となる場合を検出できるのであれば、係数が異なるフィルタを用いることができる。その場合、フィルタに設定された係数に応じて、黒画素の数が3以上8以下となるか否かの判断の基準とするフィルタ演算値も変更すればよい。
【0040】
次に、制御部11はエッジと判定した注目画素とその周辺画素からなる3×3画素の領域を、孤立点判定フィルタ処理する(ステップS5)。制御部11は、フィルタ処理結果によって、注目画素が細線化対象か否かを判定する。
【0041】
上述のように、注目画素の画素値を変換し細線化した後にも、注目画素周辺の黒画素間の連結が保障されなければならない。よって、制御部11は孤立点判定フィルタ処理の結果によって、注目画素の細線化後、注目画素周辺で孤立する黒画素の有無を検出し、注目画素周辺で黒画素が孤立する場合には注目画素を細線化対象から除外する。一方、フィルタ処理の結果から注目画素を含む周辺領域で黒画素の連結が維持されることが検出された場合、制御部11は注目画素を細線化の対象と判定する。
【0042】
図4は、一例としての孤立点判定フィルタF21〜F28を示す。孤立点判定フィルタF21〜F28によれば、3×3画素内に含まれる3以上8以下の数の黒画素のうち注目画素の細線化によって孤立する黒画素の有無を検出することができる。孤立点判定フィルタF21〜F28には、図4に示すように、3×3画素の各画素位置に応じた係数が設定されている。制御部11は3×3画素のうち黒画素の画素値を1、白画素の画素値を0に変換して、変換した画素値に各画素の位置に応じた係数を乗算し、フィルタ演算値を得る。
【0043】
注目画素の細線化によって孤立する黒画素が生じる場合、フィルタ演算値は−2以下又は2以上となる。よって、孤立点判定フィルタF21〜F28の何れか1つのフィルタ演算値が−2以下又は2以上となる場合(ステップS6;N)、制御部11は注目画素を細線化対象外と判定し、入力したN×N画素の処理を終了する。未処理の画像領域がある場合は前述のように1画素分位置をシフトして次のN×N画素の画像データを入力して同様の処理を繰り返す。
【0044】
例えば、図5に示すように注目画素の上と左に隣接する周辺画素が黒画素である場合、注目画素が細線化され、ドットの出力が無くなると、周辺画素のドットが孤立点化する。このとき、孤立点判定フィルタF22、F23のフィルタ演算値は2であり、孤立点判定フィルタF25のフィルタ演算値は−2である。よって、この例では注目画素は細線化対象外と判定される。
【0045】
一方、注目画素の細線化後にも周辺の黒画素の連結が維持される場合、フィルタ演算値は−2より大きく2より小さい値となる。よって、全ての孤立点判定フィルタF21〜F28のフィルタ演算値が−2より大きく2より小さい場合(ステップS6;Y)、制御部11は注目画素を細線化対象であると判定する。
【0046】
例えば、図6に示すように注目画素の上と左上の周辺画素が黒画素である場合、注目画素が細線化されることによってドットの出力が無くなった場合でも、周辺の黒画素のドットは連結したままである。このとき、孤立点判定フィルタF22のフィルタ演算値は1であり、孤立点判定フィルタF23、F25、F26のフィルタ演算値は−1、他の孤立点判定フィルタF21、F24、F27、F28のフィルタ演算値は0である。よって、この例では注目画素は細線化対象と判定される。
【0047】
なお、図4に示した孤立点判定フィルタは一例であり、注目画素の細線化によって注目画素を含む周辺領域で孤立する黒画素を検出できるのであれば、係数が異なるフィルタを用いることができる。その場合、フィルタに設定された係数に応じて、黒画素が孤立するか、黒画素の連結が維持されるかの判断の基準とするフィルタ演算値も変更すればよい。
【0048】
次に、制御部11はエッジであり、細線化対象であると判定された注目画素の画素値を、注目画素を中心とする3×3画素の領域内に含まれる黒画素数に応じて変換し、細線化する(ステップS7)。細線化後、入力したN×N画素の処理を終了する。未処理の画像領域がある場合は前述のように1画素分位置をシフトして次のN×N画素の画像を入力して同様の処理を繰り返す。
【0049】
細線化には、3×3画素のうちの黒画素数に対して多値の出力値が予め定められたLUTが用いられる。制御部11はLUTから3×3画素のうちの黒画素数に対応する多値の出力値を得て、注目画素の画素値をこの出力値に変換する。例えば、図7に示すように3以上8以下の黒画素数に応じて、指数的に減少する多値の出力値(値域0〜255)を定めることができる。この例によれば、注目画素の周辺に黒画素数が多ければ多いほど注目画素の出力値は小さく変換され、注目画素は細線化される。
なお、図7は一例であり、黒画素数の増加によって注目画素の出力値が減少するように黒画素数と出力値の関係が定められているのであれば、これに限定されない。
【0050】
好ましくは、細線化の実行前に、制御部11が画像データとともに入力される属性データを参照し、注目画素の属性が文字である場合のみ、細線化を行う。注目画素が文字以外の線画、写真の属性である場合、細線化の必要が無いからである。属性による細線化対象か否かの判断は、ステップS2の処理段階で行ってもよい。細線化対象外であれば、その後の注目画素に対する処理は不要であるので、早い段階で細線化の必要性を判断することにより、より処理の高速化が望める。
【0051】
以上のように、第1実施形態によれば、画像処理装置1の制御部11が、2値の画像データの各画素のうち、最大値を持つ注目画素がエッジであるか否かを判定し、エッジと判定された注目画素が細線化の対象か否かを判定し、細線化の対象と判定された注目画素の画素値を変換する。エッジの判定時、制御部11は最大値を持つ注目画素とその周辺画素の領域を、ラプラシアンフィルタを用いてフィルタ処理し、フィルタ処理の結果が1以上6以下となる場合、注目画素をエッジと判定する。細線化対象の判定時、制御部11はエッジと判定された注目画素とその周辺画素の領域を、孤立点判定フィルタを用いてフィルタ処理し、フィルタ処理の結果が−2より大きく2より小さい場合、注目画素を細線化の対象と判定する。
【0052】
これにより、黒画素のみエッジ判定、細線化の判定の対象とすることができ、細線化処理を高速化することができる。また、ラプラシアンフィルタや孤立点判定フィルタは、フィルタ演算が簡易である。フィルタ処理の対象は注目画素とその周辺画素を含む9画素であるので、フィルタ処理に要する時間を短縮化することができる。細線化処理のために保持すべきデータも無く、メモリを確保する必要もないので、簡易な構成で細線化処理を高速にソフトウェア処理することができる。
【0053】
また、細線化時、制御部11は、最大値を持つ黒画素の数に対して減少する多値の出力値が定められたLUTを用いて、細線化の対象と判定された注目画素とその周辺画素のうち黒画素の数に対応する多値の出力値を求め、注目画素の画素値を当該出力値に変換する。
これにより、周辺画素で出力されるドットの数に応じて注目画素の細線化の強度を調整することができ、画像の階調に応じた滑らかな細線化を実現することができる。
【0054】
また、細線化時、制御部11は2値の画像データとともに入力される属性データを参照し、注目画素の属性が文字である場合のみ、注目画素の画素値の変換を行う。
これにより、細線化の必要がある属性の場合のみ細線化処理を実行すればよく、効率的で高速な細線化処理が可能となる。
【0055】
〈第2実施形態〉
第2実施形態に係る画像処理装置の構成は、第1実施形態に係る画像処理装置1と同じであり、制御部11により実行される細線化処理の内容が異なる。よって、同じ構成部には同じ符号を用いて構成の説明は省略し、処理内容が異なる細線化処理について説明する。
【0056】
第1実施形態に係る細線化処理において、制御部11はフィルタ処理によってエッジ判定及び細線化対象の判定を行ったが、第2実施形態に係る細線化処理において、制御部11は注目画素とその周辺画素において最大値を持つ画素の数によってエッジ判定及び細線化対象の判定を行う。また、第2実施形態において記憶部12は細線化処理に用いられるテーブルのデータを記憶する。テーブルの詳細は後述する。
【0057】
図8は、第2実施形態に係る細線化処理のフローチャートである。この細線化処理は、制御部11が記憶部12に記憶された細線化処理プログラムを読み込み、実行することで実現される。
図8に示すように、制御部11は細線化処理の対象である2値の画像データを、N×N画素の領域単位で入力する(ステップT1)。細線化処理の対象としたい画像が多値である場合は先に誤差拡散処理等によって多値の画像データを2値化して、細線化処理してもよい。制御部11は入力したN×N画素の領域の中心を注目画素とし、当該注目画素は最大値を持つ画素であるか否かを判定する(ステップT2)。以下、最大値を持つ画素を黒画素、最小値を持つ画素を白画素という。
【0058】
注目画素が黒画素ではない場合(ステップT2;N)、入力したN×N画素についての処理を終了する。全画像領域について細線化処理が終了していない場合は、主走査方向に1画素位置をシフトして(主走査方向の走査が終了すれば副走査方向に1画素位置をシフトして)、ステップT1からの処理が繰り返される。つまり、黒画素である注目画素が発見されるまで、1画素ずつ位置をシフトしながらN×N画素の画像データが入力される。
【0059】
注目画素が黒画素である場合(ステップT2;Y)、制御部11は注目画素とのその周辺画素からなる3×3画素における黒画素数を行毎及び列毎にカウントする(ステップT3)。制御部11は、カウントした行毎及び列毎の黒画素数の総数、つまり3×3画素における黒画素の総数を求め、この総数によって注目画素がエッジであるか否かを判定する。
【0060】
3×3画素における黒画素の総数が9の場合、3×3画素の領域はベタ画像であり、エッジは含まれない。一方、3×3画素の領域に白画素が少なくとも1つ存在すれば、黒画素である注目画素は本来、エッジである。しかし、細線化対象となるエッジを抽出することが目的であるので、注目画素の画素値を変換し細線化した後にも、注目画素周辺の黒画素間の連結が保障されなければならない。黒画素の総数が1の場合、つまり注目画素のみ黒画素である場合、3×3画素の領域に含まれるのは孤立点の画像であり、注目画素の細線化によって孤立点が失われる場合があるので細線化の対象とすべきではない。また、黒画素の総数が2である場合、注目画素の細線化によって注目画素周辺の黒画素が孤立点化する場合があり、細線化対象とするのは適切ではない。よって、制御部11は黒画素の総数が3以上8以下となる場合、注目画素をエッジと判定する。
【0061】
制御部11は、カウントした黒画素の総数が3以上8以下の範囲内にあるか否かを判定する(ステップT4)。黒画素の総数が3以上8以下の範囲内になければ(ステップT4;N)、入力したN×N画素の処理を終了する。未処理の画像領域がある場合は前述のように1画素位置をシフトして次のN×N画素の画像を入力して同様の処理を繰り返す。
【0062】
黒画素の総数が3以上8以下の範囲内にある場合(ステップT4;Y)、制御部11は注目画素がエッジであると判定する。次に、制御部11は3×3画素の各行、各列の黒画素数の組み合わせと、予め細線化対象の組み合わせとして記憶部12に記憶されている各行、各列の黒画素数の組み合わせとを照合する(ステップT5)。
【0063】
図9は照合のイメージ図である。
図9に示すように、3×3画素の各行を上から第1行〜第3行といい、各列を左から第1列〜第3列という。記憶部12には、細線化の対象とするエッジの形状に応じて3×3画素内の黒画素の数が第1行〜第3行毎、第1列〜第3列毎に定められた組み合わせのテーブルCが記憶されている。
【0064】
例えば、3×3画素の領域a1の黒画素数は、第1行;1、第2行;2、第3行;3、第1列;1、第2列;2、第3列;3である。テーブルCにはこの黒画素数の組み合わせに一致する組み合わせがあるので、領域a1は細線化対象と判定される。同様に、領域a2についても黒画素数の組み合わせがテーブルCの組み合わせと一致するので、細線化対象と判定される。
【0065】
一方、領域a3の黒画素数は、第1行;2、第2行;1、第3行;2、第1列;1、第2列;2、第3列;2である。このような黒画素数の組み合わせに一致する組み合わせはテーブルCにはないので、領域a3は細線化の対象外と判定される。領域a4についても同様である。
【0066】
図10は、細線化対象となる黒画素数の各行、各列の組み合わせが定められたテーブルCの一例を示す。
テーブルCには、細線化の対象となるエッジ形状を特定する第1行〜第3行、第1列〜第3列の黒画素数の組み合わせが記憶されている。この組み合わせは、図9に示した領域a1や領域a2のように、細線化を経ても注目画素周辺の黒画素間の連結が保障されるエッジ形状を細線化の対象として、そのエッジ形状を特定する組み合わせである。一方、図9に示した領域a3、a4のように注目画素を細線化することで、注目画素周辺の黒画素間の連結が失われるようなエッジ形状や、孤立点を作り出すようなエッジ形状は細線化の対象外とするため、そのようなエッジ形状を特定する黒画素数の組み合わせはテーブルCから削除される。
【0067】
制御部11は、3×3画素の各行、各列の黒画素数の組み合わせと、テーブルCの組み合わせとを照合し、不一致の場合(ステップT5;N)、注目画素は細線化対象外であると判定し、入力したN×N画素の処理を終了する。未処理の画像領域がある場合は前述のように1画素分位置をシフトして次のN×N画素の画像を入力して同様の処理を繰り返す。
【0068】
各行、各列の黒画素数の組み合わせがテーブルCの組み合わせに一致した場合(ステップT5;Y)、制御部11は注目画素が細線化対象であると判定する。制御部11は、エッジであり、細線化対象であると判定された注目画素の画素値を、注目画素を中心とする3×3画素における黒画素数に応じて変換し、細線化する(ステップT6)。細線化後、入力したN×N画素の処理を終了する。未処理の画像領域がある場合は前述のように1画素分位置をシフトして次のN×N画素の画像を入力して同様の処理を繰り返す。
【0069】
細線化には、3×3画素のうちの黒画素数に対して多値の出力値が予め定められたLUTが用いられる。制御部11はLUTから3×3画素のうちの黒画素数に対応する多値の出力値を得て、注目画素の画素値を当該出力値に変換する。例えば、図7に示すように3以上8以下の黒画素数に応じて、指数的に減少する多値の出力値(値域0〜255)を定めることができる。この例によれば、注目画素の周辺に黒画素数が多ければ多いほど注目画素の出力値は小さく変換され、注目画素は細線化される。
なお、図7は一例であり、黒画素数の増加によって注目画素の出力値が減少するように黒画素数と出力値の関係が定められているのであれば、これに限定されない。
【0070】
好ましくは、細線化の実行前に、制御部11が画像データとともに入力される属性データを参照し、注目画素の属性が文字である場合のみ、細線化を行う。注目画素が文字以外の線画、写真の属性である場合、細線化の必要が無いからである。属性による細線化対象か否かの判断は、ステップT2の処理段階で行ってもよい。細線化対象外であれば、その後の注目画素に対する処理は不要であるので、早い段階で細線化の必要性を判断することにより、より処理の高速化が望める。
【0071】
以上のように、第2実施形態によれば、画像処理装置1の制御部11は2値の画像データの各画素のうち、最大値を持つ注目画素がエッジであるか否かを判定し、エッジと判定された注目画素が細線化の対象か否かを判定し、細線化の対象と判定された注目画素の画素値を変換する。エッジの判定時、制御部11は最大値を持つ注目画素とその周辺画素において、最大値を持つ画素の総数をカウントし、カウントした総数が3以上8以下内にある場合、注目画素をエッジと判定する。細線化対象の判定時、制御部11はエッジと判定された注目画素とその周辺画素において最大値を持つ黒画素の数を行毎及び列毎にカウントし、各行及び各列のカウントされた黒画素数の組み合わせが、細線化対象として予め定められた組み合わせに一致する場合、注目画素を細線化対象と判定する。
【0072】
これにより、黒画素のみエッジ判定、細線化の判定の対象とすることができ、細線化処理を高速化することができる。また、注目画素とその周辺画素の黒画素数をカウントする簡易な演算によってエッジ判定、細線化対象の判定を行うことができる。細線化処理のために予め保持するデータは最大値を持つ画素の数の各行、各列の組み合わせのテーブルCのデータだけであるので、メモリを占有することなく、簡易な構成で細線化処理を高速にソフトウェア処理することができる。
【0073】
また、細線化処理時、制御部11は、黒画素の数に対して減少する多値の出力値が定められたLUTを用いて、細線化の対象と判定された注目画素とその周辺画素のうち黒画素の数に対応する多値の出力値を求め、注目画素の画素値を当該出力値に変換する。
これにより、周辺画素で出力されるドットの数に応じて注目画素の細線化の強度を調整することができ、画像の階調に応じた滑らかな細線化を実現することができる。
【0074】
また、細線化処理時、制御部11は2値の画像データとともに入力される属性データを参照し、注目画素の属性が文字である場合のみ、注目画素の画素値の変換を行う。
これにより、細線化の必要がある属性の場合のみ細線化処理を実行すればよく、効率的で高速な細線化処理が可能となる。
【0075】
上述した第1又は第2実施形態は本発明の一例であり、これに限定されない。
例えば、読取処理部16によって画像データを解析し、画像データの各画素について画像の属性を判定し、属性データを作成してもよい。
【0076】
また、本発明に係るプログラムのコンピュータ読み取り可能な媒体としては、ROM、フラッシュメモリ等の不揮発性メモリ、CD-ROM等の可搬型記録媒体を適用することが可能である。
また、本発明に係るプログラムのデータを通信回線を介して提供する媒体として、キャリアウエーブ(搬送波)も本発明に適用される。
【符号の説明】
【0077】
1 画像処理装置
11 制御部
12 記憶部
13 操作部
14 表示部
15 画像読取部
16 読取処理部
21 書込処理部
22 印刷部

【特許請求の範囲】
【請求項1】
2値の画像データの各画素のうち、最大値を持つ注目画素がエッジであるか否かを判定するエッジ判定手段と、
エッジと判定された注目画素が細線化の対象か否かを判定する細線化判定手段と、
細線化の対象と判定された注目画素の画素値を変換する細線化手段と、を備え、
前記エッジ判定手段は、最大値を持つ注目画素とその周辺画素の領域を、ラプラシアンフィルタを用いてフィルタ処理し、フィルタ処理の結果から領域内の最大値を持つ画素の数が3以上8以下であることが検出された場合、前記注目画素をエッジと判定し、
前記細線化判定手段は、エッジと判定された注目画素とその周辺画素の領域を、孤立点判定フィルタを用いてフィルタ処理し、フィルタ処理の結果から注目画素の細線化によって領域内の最大値を持つ画素の連結が維持されることが検出された場合、前記注目画素を細線化の対象と判定する画像処理装置。
【請求項2】
2値の画像データの各画素のうち、最大値を持つ注目画素がエッジであるか否かを判定するエッジ判定手段と、
エッジと判定された注目画素が細線化の対象か否かを判定する細線化判定手段と、
細線化の対象と判定された注目画素の画素値を変換する細線化手段と、を備え、
前記エッジ判定手段は、最大値を持つ注目画素とその周辺画素において、最大値を持つ画素の総数をカウントし、カウントした総数が3以上8以下内にある場合、前記注目画素をエッジと判定し、
前記細線化判定手段は、エッジと判定された注目画素とその周辺画素において最大値を持つ画素の数を行毎及び列毎にカウントし、各行及び各列のカウントされた画素数の組み合わせが、細線化対象として予め定められた組み合わせに一致する場合、前記注目画素を細線化対象と判定する画像処理装置。
【請求項3】
前記細線化手段は、最大値を持つ画素の数に対して減少する多値の出力値が定められたLUTを用いて、細線化の対象と判定された注目画素とその周辺画素のうち最大値を持つ画素の数に対応する多値の出力値を求め、注目画素の画素値を当該出力値に変換する請求項1又は2に記載の画像処理装置。
【請求項4】
前記細線化手段は、2値の画像データとともに入力される属性データを参照し、前記注目画素の属性が文字である場合のみ、前記注目画素の画素値の変換を行う請求項1〜3の何れか一項に記載の画像処理装置。
【請求項5】
2値の画像データの各画素のうち、最大値を持つ注目画素がエッジの画素であるか否かを判定するエッジ判定工程と、
エッジと判定された注目画素が細線化の対象か否かを判定する細線化判定工程と、
細線化の対象と判定された注目画素の画素値を変換する細線化工程と、を含み、
前記エッジ判定工程は、最大値を持つ注目画素とその周辺画素の領域を、ラプラシアンフィルタを用いてフィルタ処理し、フィルタ処理の結果から領域内の最大値を持つ画素の数が3以上8以下であることが検出された場合、前記注目画素をエッジと判定し、
前記細線化判定工程は、エッジと判定された注目画素とその周辺画素の領域を、孤立点判定フィルタを用いてフィルタ処理し、フィルタ処理の結果から注目画素の細線化によって領域内の最大値を持つ画素の連結が維持されることが検出された場合、前記注目画素を細線化の対象と判定する画像処理方法。
【請求項6】
2値の画像データの各画素のうち、最大値を持つ注目画素がエッジの画素であるか否かを判定するエッジ判定工程と、
エッジと判定された注目画素が細線化の対象か否かを判定する細線化判定工程と、
細線化の対象と判定された注目画素の画素値を変換する細線化工程と、を含み、
前記エッジ判定工程は、最大値を持つ注目画素とその周辺画素において、最大値を持つ画素の総数をカウントし、カウントした総数が3以上8以下内にある場合、前記注目画素をエッジと判定し、
前記細線化判定工程は、エッジと判定された注目画素とその周辺画素において最大値を持つ画素の数を行毎及び列毎にカウントし、各行及び各列のカウントされた画素数の組み合わせが、細線化対象として予め定められた組み合わせに一致する場合、前記注目画素を細線化対象と判定する画像処理方法。
【請求項7】
前記細線化工程は、最大値を持つ画素の数に対して減少する多値の出力値が定められたLUTを用いて、細線化の対象と判定された注目画素とその周辺画素のうち最大値を持つ画素の数に対応する多値の出力値を求め、注目画素の画素値を当該出力値に変換する請求項5又は6に記載の画像処理方法。
【請求項8】
前記細線化工程は、2値の画像データとともに入力される属性データを参照し、前記注目画素の属性が文字である場合のみ、前記注目画素の画素値の変換を行う請求項5〜7の何れか一項に記載の画像処理方法。
【請求項9】
コンピュータを、
請求項1〜4の何れか一項に記載の画像処理装置として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−238051(P2012−238051A)
【公開日】平成24年12月6日(2012.12.6)
【国際特許分類】
【出願番号】特願2011−104875(P2011−104875)
【出願日】平成23年5月10日(2011.5.10)
【出願人】(303000372)コニカミノルタビジネステクノロジーズ株式会社 (12,802)
【Fターム(参考)】