(57)【要約】【課題】簡易な構成により細線化処理の高速化を図る。【解決手段】画像処理装置の制御部は、２値の画像データの各画素のうち、最大値を持つ注目画素がエッジであるか否かを判定し、エッジと判定された注目画素が細線化の対象か否かを判定し、細線化の対象と判定された注目画素の画素値を変換する。判定時、制御部は最大値を持つ注目画素とその周辺画素の領域を、ラプラシアンフィルタを用いてフィルタ処理し、フィルタ処理の結果から領域内の最大値を持つ画素の数が３以上８以下であることが検出された場合、注目画素をエッジと判定する。制御部はエッジと判定された注目画素とその周辺画素の領域を、孤立点判定フィルタを用いてフィルタ処理し、フィルタ処理の結果から注目画素の細線化によって領域内の最大値を持つ画素の連結が維持されることが検出された場合、注目画素を細線化の対象と判定する。【選択図】図２
2012238051.tif 000002
【特許請求の範囲】
【請求項１】
２値の画像データの各画素のうち、最大値を持つ注目画素がエッジであるか否かを判定するエッジ判定手段と、
エッジと判定された注目画素が細線化の対象か否かを判定する細線化判定手段と、
細線化の対象と判定された注目画素の画素値を変換する細線化手段と、を備え、
前記エッジ判定手段は、最大値を持つ注目画素とその周辺画素の領域を、ラプラシアンフィルタを用いてフィルタ処理し、フィルタ処理の結果から領域内の最大値を持つ画素の数が３以上８以下であることが検出された場合、前記注目画素をエッジと判定し、
前記細線化判定手段は、エッジと判定された注目画素とその周辺画素の領域を、孤立点判定フィルタを用いてフィルタ処理し、フィルタ処理の結果から注目画素の細線化によって領域内の最大値を持つ画素の連結が維持されることが検出された場合、前記注目画素を細線化の対象と判定する画像処理装置。
【請求項２】
２値の画像データの各画素のうち、最大値を持つ注目画素がエッジであるか否かを判定するエッジ判定手段と、
エッジと判定された注目画素が細線化の対象か否かを判定する細線化判定手段と、
細線化の対象と判定された注目画素の画素値を変換する細線化手段と、を備え、
前記エッジ判定手段は、最大値を持つ注目画素とその周辺画素において、最大値を持つ画素の総数をカウントし、カウントした総数が３以上８以下内にある場合、前記注目画素をエッジと判定し、
前記細線化判定手段は、エッジと判定された注目画素とその周辺画素において最大値を持つ画素の数を行毎及び列毎にカウントし、各行及び各列のカウントされた画素数の組み合わせが、細線化対象として予め定められた組み合わせに一致する場合、前記注目画素を細線化対象と判定する画像処理装置。
【請求項３】
前記細線化手段は、最大値を持つ画素の数に対して減少する多値の出力値が定められたＬＵＴを用いて、細線化の対象と判定された注目画素とその周辺画素のうち最大値を持つ画素の数に対応する多値の出力値を求め、注目画素の画素値を当該出力値に変換する請求項１又は２に記載の画像処理装置。
【請求項４】
前記細線化手段は、２値の画像データとともに入力される属性データを参照し、前記注目画素の属性が文字である場合のみ、前記注目画素の画素値の変換を行う請求項１〜３の何れか一項に記載の画像処理装置。
【請求項５】
２値の画像データの各画素のうち、最大値を持つ注目画素がエッジの画素であるか否かを判定するエッジ判定工程と、
エッジと判定された注目画素が細線化の対象か否かを判定する細線化判定工程と、
細線化の対象と判定された注目画素の画素値を変換する細線化工程と、を含み、
前記エッジ判定工程は、最大値を持つ注目画素とその周辺画素の領域を、ラプラシアンフィルタを用いてフィルタ処理し、フィルタ処理の結果から領域内の最大値を持つ画素の数が３以上８以下であることが検出された場合、前記注目画素をエッジと判定し、
前記細線化判定工程は、エッジと判定された注目画素とその周辺画素の領域を、孤立点判定フィルタを用いてフィルタ処理し、フィルタ処理の結果から注目画素の細線化によって領域内の最大値を持つ画素の連結が維持されることが検出された場合、前記注目画素を細線化の対象と判定する画像処理方法。
【請求項６】
２値の画像データの各画素のうち、最大値を持つ注目画素がエッジの画素であるか否かを判定するエッジ判定工程と、
エッジと判定された注目画素が細線化の対象か否かを判定する細線化判定工程と、
細線化の対象と判定された注目画素の画素値を変換する細線化工程と、を含み、
前記エッジ判定工程は、最大値を持つ注目画素とその周辺画素において、最大値を持つ画素の総数をカウントし、カウントした総数が３以上８以下内にある場合、前記注目画素をエッジと判定し、
前記細線化判定工程は、エッジと判定された注目画素とその周辺画素において最大値を持つ画素の数を行毎及び列毎にカウントし、各行及び各列のカウントされた画素数の組み合わせが、細線化対象として予め定められた組み合わせに一致する場合、前記注目画素を細線化対象と判定する画像処理方法。
【請求項７】
前記細線化工程は、最大値を持つ画素の数に対して減少する多値の出力値が定められたＬＵＴを用いて、細線化の対象と判定された注目画素とその周辺画素のうち最大値を持つ画素の数に対応する多値の出力値を求め、注目画素の画素値を当該出力値に変換する請求項５又は６に記載の画像処理方法。
【請求項８】
前記細線化工程は、２値の画像データとともに入力される属性データを参照し、前記注目画素の属性が文字である場合のみ、前記注目画素の画素値の変換を行う請求項５〜７の何れか一項に記載の画像処理方法。
【請求項９】
コンピュータを、
請求項１〜４の何れか一項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
一般によく行われる画像処理の１つとして細線化処理が知られている。細線化処理は文字や線の鮮鋭性を向上させることができ、スキャンされた原稿の文字画像が太るようなスキャナ特性や、ドットゲインが生じやすいプリンタ特性に対応して行われることが多い。
【０００３】
広く知られた細線化処理方法によれば、画像を１画素毎にパターンマッチング処理し、細線化対象のエッジ形状を判定することが行われる。しかし、ソフトウェア処理によってこれを実現しようとすれば、１画素毎に処理していたのでは処理が遅い。また、様々なエッジ形状に対応するため、多くのパターンデータを保持する必要があり、メモリを占有する。
【０００４】
このような問題を解決するため、簡易な構成による精度の高い細線化手法が検討されている。例えば、画像を５×５画素のブロック単位で抽出し、ブロック内の行単位の平均画素値が行を追う毎に増加するか又は減少するパターンを細線化対象と判定し、画素値から一定値を減算する方法が開示されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２８０７２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に記載の方法は、単純な横線の検出に特化した細線化方法であり、縦線や複雑な文字の曲線の検出を行うことはできない。
また、一定値を減じることにより細線化しているため、周辺画素でのドットの出力状況に応じた細線化の強度調整を行うことができず、滑らかな細線化が実現できない。
【０００７】
本発明の課題は、簡易な構成により細線化処理の高速化を図ることである。
【課題を解決するための手段】
【０００８】
請求項１に記載の発明によれば、
２値の画像データの各画素のうち、最大値を持つ注目画素がエッジであるか否かを判定するエッジ判定手段と、
エッジと判定された注目画素が細線化の対象か否かを判定する細線化判定手段と、
細線化の対象と判定された注目画素の画素値を変換する細線化手段と、を備え、
前記エッジ判定手段は、最大値を持つ注目画素とその周辺画素の領域を、ラプラシアンフィルタを用いてフィルタ処理し、フィルタ処理の結果から領域内の最大値を持つ画素の数が３以上８以下であることが検出された場合、前記注目画素をエッジと判定し、
前記細線化判定手段は、エッジと判定された注目画素とその周辺画素の領域を、孤立点判定フィルタを用いてフィルタ処理し、フィルタ処理の結果から注目画素の細線化によって領域内の最大値を持つ画素の連結が維持されることが検出された場合、前記注目画素を細線化の対象と判定する画像処理装置が提供される。
【０００９】
請求項２に記載の発明によれば、
２値の画像データの各画素のうち、最大値を持つ注目画素がエッジであるか否かを判定するエッジ判定手段と、
エッジと判定された注目画素が細線化の対象か否かを判定する細線化判定手段と、
細線化の対象と判定された注目画素の画素値を変換する細線化手段と、を備え、
前記エッジ判定手段は、最大値を持つ注目画素とその周辺画素において、最大値を持つ画素の総数をカウントし、カウントした総数が３以上８以下内にある場合、前記注目画素をエッジと判定し、
前記細線化判定手段は、エッジと判定された注目画素とその周辺画素において最大値を持つ画素の数を行毎及び列毎にカウントし、各行及び各列のカウントされた画素数の組み合わせが、細線化対象として予め定められた組み合わせに一致する場合、前記注目画素を細線化対象と判定する画像処理装置が提供される。
【００１０】
請求項３に記載の発明によれば、
前記細線化手段は、最大値を持つ画素の数に対して減少する多値の出力値が定められたＬＵＴを用いて、細線化の対象と判定された注目画素とその周辺画素のうち最大値を持つ画素の数に対応する多値の出力値を求め、注目画素の画素値を当該出力値に変換する請求項１又は２に記載の画像処理装置が提供される。
【００１１】
請求項４に記載の発明によれば、
前記細線化手段は、２値の画像データとともに入力される属性データを参照し、前記注目画素の属性が文字である場合のみ、前記注目画素の画素値の変換を行う請求項１〜３の何れか一項に記載の画像処理装置が提供される。
【００１２】
請求項５に記載の発明によれば、
２値の画像データの各画素のうち、最大値を持つ注目画素がエッジの画素であるか否かを判定するエッジ判定工程と、
エッジと判定された注目画素が細線化の対象か否かを判定する細線化判定工程と、
細線化の対象と判定された注目画素の画素値を変換する細線化工程と、を含み、
前記エッジ判定工程は、最大値を持つ注目画素とその周辺画素の領域を、ラプラシアンフィルタを用いてフィルタ処理し、フィルタ処理の結果から領域内の最大値を持つ画素の数が３以上８以下であることが検出された場合、前記注目画素をエッジと判定し、
前記細線化判定工程は、エッジと判定された注目画素とその周辺画素の領域を、孤立点判定フィルタを用いてフィルタ処理し、フィルタ処理の結果から注目画素の細線化によって領域内の最大値を持つ画素の連結が維持されることが検出された場合、前記注目画素を細線化の対象と判定する画像処理方法が提供される。
【００１３】
請求項６に記載の発明によれば、
２値の画像データの各画素のうち、最大値を持つ注目画素がエッジの画素であるか否かを判定するエッジ判定工程と、
エッジと判定された注目画素が細線化の対象か否かを判定する細線化判定工程と、
細線化の対象と判定された注目画素の画素値を変換する細線化工程と、を含み、
前記エッジ判定工程は、最大値を持つ注目画素とその周辺画素において、最大値を持つ画素の総数をカウントし、カウントした総数が３以上８以下内にある場合、前記注目画素をエッジと判定し、
前記細線化判定工程は、エッジと判定された注目画素とその周辺画素において最大値を持つ画素の数を行毎及び列毎にカウントし、各行及び各列のカウントされた画素数の組み合わせが、細線化対象として予め定められた組み合わせに一致する場合、前記注目画素を細線化対象と判定する画像処理方法が提供される。
【００１４】
請求項７に記載の発明によれば、
前記細線化工程は、最大値を持つ画素の数に対して減少する多値の出力値が定められたＬＵＴを用いて、細線化の対象と判定された注目画素とその周辺画素のうち最大値を持つ画素の数に対応する多値の出力値を求め、注目画素の画素値を当該出力値に変換する請求項５又は６に記載の画像処理方法が提供される。
【００１５】
請求項８に記載の発明によれば、
前記細線化工程は、２値の画像データとともに入力される属性データを参照し、前記注目画素の属性が文字である場合のみ、前記注目画素の画素値の変換を行う請求項５〜７の何れか一項に記載の画像処理方法が提供される。
【００１６】
請求項９に記載の発明によれば、
コンピュータを、
請求項１〜４の何れか一項に記載の画像処理装置として機能させるためのプログラムが提供される。
【発明の効果】
【００１７】
本発明の一の側面によれば、最大値を持つ注目画素のみエッジ判定の対象とすることができ、細線化処理を高速化することができる。また、ラプラシアンフィルタや孤立点判定フィルタは、フィルタ演算が簡易である。フィルタ処理の対象は注目画素とその周辺画素の９画素であるので、フィルタ処理に要する時間を短縮化することができる。細線化処理のために予め保持すべきデータも無く、メモリを確保する必要もないので、簡易な構成で細線化処理を高速化することが可能となる。
【００１８】
本発明の他の側面によれば、最大値を持つ注目画素のみエッジ判定の対象とすることができ、細線化処理を高速化することができる。また、注目画素とその周辺画素において最大値を持つ画素数をカウントする簡易な演算によってエッジ判定、細線化対象の判定を行うことができる。細線化処理のために予め保持するデータは最大値を持つ画素の数の各行、各列の組み合わせのデータだけであるので、メモリを占有することなく、簡易な構成で細線化処理を高速化することが可能となる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施の形態に係る画像処理装置を示す図である。
【図２】第１実施形態に係る細線化処理のフローチャートである。
【図３】ラプラシアンフィルタの一例を示す図である。
【図４】孤立点判定フィルタの一例を示す図である。
【図５】注目画素とその周辺画素の２値画像と、細線化後の処理画像とを示す。
【図６】注目画素とその周辺画素の２値画像と、細線化後の処理画像とを示す。
【図７】最大値を持つ画素数に対応してＬＵＴに定められている注目画素の出力値を示す図である。
【図８】第２実施形態に係る細線化処理のフローチャートである。
【図９】注目画素とその周辺画素においてカウントされた最大値を持つ画素の数の行毎、列毎の組み合わせと、細線化対象として予め定められた組み合わせとを照合するイメージ図である。
【図１０】細線化対象として、行毎及び列毎の最大値を持つ画素の数の組み合わせが定められたテーブル例を示す。
【発明を実施するための形態】
【００２０】
以下、図面を参照して本発明の実施の形態について説明する。
本実施形態では、本発明を画像データの印刷を行う画像処理装置に適用した例を説明するが、画像データを細線化処理するのであれば他の画像処理装置に本発明を適用することが可能である。
【００２１】
〈第１実施形態〉
図１は、第１実施形態に係る画像処理装置１を示す。
画像処理装置１は、原稿をスキャンして生成した画像データを画像処理し、画像処理された画像データの印刷を行う。また、画像処理装置１はコントローラ２に接続され、コントローラ２から送信される画像データの画像処理、印刷を行う。
【００２２】
画像処理装置１は、図１に示すように、制御部１１、記憶部１２、操作部１３、表示部１４、画像読取部１５、読取処理部１６、圧縮ＩＣ１７、メモリ制御ＩＣ１８、画像メモリ１９、伸張ＩＣ２０、書込処理部２１、印刷部２２を備える。
【００２３】
制御部１１は、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）等から構成されている。制御部１１は、記憶部１２に記憶されている各種処理プログラムとの協働によって各種演算を行い、画像処理装置１の各部を集中制御する。
【００２４】
制御部１１は、記憶部１２に記憶された細線化処理プログラムとの協働により、画像データを細線化処理する。細線化処理の詳細は後述する。
【００２５】
記憶部１２は、制御部１１により用いられる各種処理プログラムの他、処理に必要なパラメータや設定データ等を記憶している。記憶部１２としてはハードディスクを用いることができる。
【００２６】
操作部１３は、タッチパネルや操作キーを備える。操作部１３は、ユーザによる入力操作に応じた操作信号を生成して制御部１１に出力する。
表示部１４は、制御部１１の制御に従ってタッチパネルに操作画面や処理結果を表示する。
【００２７】
画像読取部１５は、ＡＤＦ（Auto Document Feeder）によって搬送された原稿をスキャナにより光走査し、画像信号（アナログ信号）として読み取る。
読取処理部１６は、画像読取部１５によって読み取られた画像信号をＡ／Ｄ変換し、得られた画像データ（デジタルデータ）にシェーディング処理等の画像処理を施す。
圧縮ＩＣ１７は、読取処理部１６から出力された画像データを圧縮処理する。
【００２８】
メモリ制御ＩＣ１８は、圧縮ＩＣ１７によって圧縮処理された画像データ、コントローラ２から転送される画像データを画像メモリ１９に書き込む。また、メモリ制御ＩＣ１８は画像メモリ１９から印刷対象の画像データを読み出して伸張ＩＣ２０に出力する。
画像メモリ１９は画像データを記憶する。画像メモリ１９としてはＤＲＡＭ（Dynamic RAM）を用いることができる。
【００２９】
伸張ＩＣ２０は、圧縮処理された画像データに伸張処理を施す。
書込処理部２１は、伸張処理された画像データに画像処理を施す。画像処理は、例えば拡大縮小処理、階調補正処理、スクリーン処理である。書込処理部２１は、画像処理後、画像データをＰＷＭ（Pulse Width Modulation）変換し、印刷部２２に出力する。
【００３０】
印刷部２２は、電子写真方式による印刷を行い、例えば給紙部、露光部、現像部、転写部、定着部等からなる。印刷時には、画像データがＰＷＭ変換されたＰＷＭ信号に従って、露光部が感光ドラム上にレーザ光を照射し静電潜像を形成する。これを現像部がトナーを用いて現像処理し、感光ドラム上にトナー像を形成する。転写部は、感光ドラムから給紙部から給紙された用紙上にトナー像を転写させ、定着部がトナー像の定着処理を行う。
【００３１】
コントローラ２は、パーソナルコンピュータ等の外部装置から印刷対象のＰＤＬ（Page Description Language）データを受信してラスタライズ処理し、画像データを生成する。生成された画像データは、画像処理装置１のメモリ制御ＩＣ１８に転送される。ラスタライズ処理時、コントローラ２は画像の属性が文字（Text）、線画（Graphics）、写真（Image）の何れであるかを判定し、画素毎に画像の属性を示す属性データを生成する。属性データは画像データとともに画像処理装置１に転送される。
【００３２】
上記画像処理装置１は、制御部１１が記憶部１２に記憶された細線化処理プログラムを読み込み、実行することで、２値の画像データの細線化処理をソフトウェア処理によって実現することができる。
図２は、制御部１１により実行される細線化処理のフローチャートである。
【００３３】
図２に示すように、制御部１１は細線化処理の対象である２値の画像データを、Ｎ×Ｎ画素の領域単位で入力する（ステップＳ１）。細線化処理の対象としたい画像データが多値である場合は先に誤差拡散処理等によって多値の画像データを２値化する前処理を行った後に、細線化処理してもよい。制御部１１は入力したＮ×Ｎ画素の領域の中心を注目画素とし、当該注目画素は最大値を持つ画素であるか否かを判定する（ステップＳ２）。以下、最大値を持つ画素を黒画素、最小値を持つ画素を白画素という。
【００３４】
注目画素が黒画素ではない場合（ステップＳ２；Ｎ）、入力したＮ×Ｎ画素の処理を終了する。全画像領域に対し細線化処理が終了していない場合は、主走査方向に１画素位置をシフトして（主走査方向の走査が終了すれば副走査方向に１画素位置をシフトして）、ステップＳ１の処理が開始される。つまり、黒画素である注目画素が発見されるまで、１画素ずつ位置をシフトしながらＮ×Ｎ画素の画像データが入力される。
【００３５】
注目画素が黒画素である場合（ステップＳ２；Ｙ）、制御部１１は注目画素とその周辺画素からなる３×３画素の領域をラプラシアンフィルタ処理する（ステップＳ３）。制御部１１は、フィルタ処理結果によって注目画素がエッジであるか否かを判定する。
【００３６】
３×３画素の全てが黒画素である場合、３×３画素の領域はベタ画像であり、エッジは含まれない。一方、３×３画素に白画素が少なくとも１つ存在すれば、黒画素である注目画素は本来、エッジである。しかし、細線化対象となるエッジを抽出することが目的であるので、注目画素の画素値を変換し細線化した後にも、注目画素周辺の黒画素間の連結が保障されなければならない。黒画素の数が１の場合、つまり注目画素のみ黒画素である場合、３×３画素の領域に含まれるのは孤立点の画像であり、注目画素の細線化によって孤立点が失われる場合があるので細線化の対象とすべきではない。また、黒画素の数が２である場合、注目画素の細線化によって注目画素周辺の黒画素が孤立点化する場合があり、細線化対象とするのは適切ではない。よって、制御部１１は黒画素の数が３以上８以下となる場合をラプラシアンフィルタのフィルタ処理の結果によって検出し、注目画素をエッジと判定する。
【００３７】
図３は、一例としてのラプラシアンフィルタＦ１を示す。図３に示すように、ラプラシアンフィルタＦ1には３×３画素の各画素の位置に応じてそれぞれ係数が設定されている。制御部１１は３×３画素の各画素値のうち、黒画素の画素値を１、白画素の画素値を０に変換してフィルタ演算を行う。制御部１１は、各画素の１又は０の画素値に画素位置に応じたラプラシアンフィルタＦ１の係数を乗算し、各画素について得られた乗算値の和をフィルタ演算値として求める。
【００３８】
３×３画素のうち黒画素の数が３以上８以下となるのは、フィルタ演算値が１以上６以下となる場合である。よって、フィルタ演算値が１以上６以下である場合（ステップＳ４；Ｙ）、制御部１１は注目画素がエッジであると判定する。フィルタ演算値が１以上６以下ではない場合（ステップＳ４；Ｎ）、制御部１１は注目画素がエッジではないと判定し、入力したＮ×Ｎ画素の処理を終了する。未処理の画像領域がある場合は前述のように１画素分位置をシフトして次のＮ×Ｎ画素の画像データを入力し、ステップＳ１から同様の処理を繰り返す。
【００３９】
なお、図３に示したラプラシアンフィルタは一例であり、注目画素を含む周辺領域内で黒画素の数が３以上８以下となる場合を検出できるのであれば、係数が異なるフィルタを用いることができる。その場合、フィルタに設定された係数に応じて、黒画素の数が３以上８以下となるか否かの判断の基準とするフィルタ演算値も変更すればよい。
【００４０】
次に、制御部１１はエッジと判定した注目画素とその周辺画素からなる３×３画素の領域を、孤立点判定フィルタ処理する（ステップＳ５）。制御部１１は、フィルタ処理結果によって、注目画素が細線化対象か否かを判定する。
【００４１】
上述のように、注目画素の画素値を変換し細線化した後にも、注目画素周辺の黒画素間の連結が保障されなければならない。よって、制御部１１は孤立点判定フィルタ処理の結果によって、注目画素の細線化後、注目画素周辺で孤立する黒画素の有無を検出し、注目画素周辺で黒画素が孤立する場合には注目画素を細線化対象から除外する。一方、フィルタ処理の結果から注目画素を含む周辺領域で黒画素の連結が維持されることが検出された場合、制御部１１は注目画素を細線化の対象と判定する。
【００４２】
図４は、一例としての孤立点判定フィルタＦ２１〜Ｆ２８を示す。孤立点判定フィルタＦ２１〜Ｆ２８によれば、３×３画素内に含まれる３以上８以下の数の黒画素のうち注目画素の細線化によって孤立する黒画素の有無を検出することができる。孤立点判定フィルタＦ２１〜Ｆ２８には、図４に示すように、３×３画素の各画素位置に応じた係数が設定されている。制御部１１は３×３画素のうち黒画素の画素値を１、白画素の画素値を０に変換して、変換した画素値に各画素の位置に応じた係数を乗算し、フィルタ演算値を得る。
【００４３】
注目画素の細線化によって孤立する黒画素が生じる場合、フィルタ演算値は−２以下又は２以上となる。よって、孤立点判定フィルタＦ２１〜Ｆ２８の何れか１つのフィルタ演算値が−２以下又は２以上となる場合（ステップＳ６；Ｎ）、制御部１１は注目画素を細線化対象外と判定し、入力したＮ×Ｎ画素の処理を終了する。未処理の画像領域がある場合は前述のように１画素分位置をシフトして次のＮ×Ｎ画素の画像データを入力して同様の処理を繰り返す。
【００４４】
例えば、図５に示すように注目画素の上と左に隣接する周辺画素が黒画素である場合、注目画素が細線化され、ドットの出力が無くなると、周辺画素のドットが孤立点化する。このとき、孤立点判定フィルタＦ２２、Ｆ２３のフィルタ演算値は２であり、孤立点判定フィルタＦ２５のフィルタ演算値は−２である。よって、この例では注目画素は細線化対象外と判定される。
【００４５】
一方、注目画素の細線化後にも周辺の黒画素の連結が維持される場合、フィルタ演算値は−２より大きく２より小さい値となる。よって、全ての孤立点判定フィルタＦ２１〜Ｆ２８のフィルタ演算値が−２より大きく２より小さい場合（ステップＳ６；Ｙ）、制御部１１は注目画素を細線化対象であると判定する。
【００４６】
例えば、図６に示すように注目画素の上と左上の周辺画素が黒画素である場合、注目画素が細線化されることによってドットの出力が無くなった場合でも、周辺の黒画素のドットは連結したままである。このとき、孤立点判定フィルタＦ２２のフィルタ演算値は１であり、孤立点判定フィルタＦ２３、Ｆ２５、Ｆ２６のフィルタ演算値は−１、他の孤立点判定フィルタＦ２１、Ｆ２４、Ｆ２７、Ｆ２８のフィルタ演算値は０である。よって、この例では注目画素は細線化対象と判定される。
【００４７】
なお、図４に示した孤立点判定フィルタは一例であり、注目画素の細線化によって注目画素を含む周辺領域で孤立する黒画素を検出できるのであれば、係数が異なるフィルタを用いることができる。その場合、フィルタに設定された係数に応じて、黒画素が孤立するか、黒画素の連結が維持されるかの判断の基準とするフィルタ演算値も変更すればよい。
【００４８】
次に、制御部１１はエッジであり、細線化対象であると判定された注目画素の画素値を、注目画素を中心とする３×３画素の領域内に含まれる黒画素数に応じて変換し、細線化する（ステップＳ７）。細線化後、入力したＮ×Ｎ画素の処理を終了する。未処理の画像領域がある場合は前述のように１画素分位置をシフトして次のＮ×Ｎ画素の画像を入力して同様の処理を繰り返す。
【００４９】
細線化には、３×３画素のうちの黒画素数に対して多値の出力値が予め定められたＬＵＴが用いられる。制御部１１はＬＵＴから３×３画素のうちの黒画素数に対応する多値の出力値を得て、注目画素の画素値をこの出力値に変換する。例えば、図７に示すように３以上８以下の黒画素数に応じて、指数的に減少する多値の出力値（値域０〜２５５）を定めることができる。この例によれば、注目画素の周辺に黒画素数が多ければ多いほど注目画素の出力値は小さく変換され、注目画素は細線化される。
なお、図７は一例であり、黒画素数の増加によって注目画素の出力値が減少するように黒画素数と出力値の関係が定められているのであれば、これに限定されない。
【００５０】
好ましくは、細線化の実行前に、制御部１１が画像データとともに入力される属性データを参照し、注目画素の属性が文字である場合のみ、細線化を行う。注目画素が文字以外の線画、写真の属性である場合、細線化の必要が無いからである。属性による細線化対象か否かの判断は、ステップＳ２の処理段階で行ってもよい。細線化対象外であれば、その後の注目画素に対する処理は不要であるので、早い段階で細線化の必要性を判断することにより、より処理の高速化が望める。
【００５１】
以上のように、第１実施形態によれば、画像処理装置１の制御部１１が、２値の画像データの各画素のうち、最大値を持つ注目画素がエッジであるか否かを判定し、エッジと判定された注目画素が細線化の対象か否かを判定し、細線化の対象と判定された注目画素の画素値を変換する。エッジの判定時、制御部１１は最大値を持つ注目画素とその周辺画素の領域を、ラプラシアンフィルタを用いてフィルタ処理し、フィルタ処理の結果が１以上６以下となる場合、注目画素をエッジと判定する。細線化対象の判定時、制御部１１はエッジと判定された注目画素とその周辺画素の領域を、孤立点判定フィルタを用いてフィルタ処理し、フィルタ処理の結果が−２より大きく２より小さい場合、注目画素を細線化の対象と判定する。
【００５２】
これにより、黒画素のみエッジ判定、細線化の判定の対象とすることができ、細線化処理を高速化することができる。また、ラプラシアンフィルタや孤立点判定フィルタは、フィルタ演算が簡易である。フィルタ処理の対象は注目画素とその周辺画素を含む９画素であるので、フィルタ処理に要する時間を短縮化することができる。細線化処理のために保持すべきデータも無く、メモリを確保する必要もないので、簡易な構成で細線化処理を高速にソフトウェア処理することができる。
【００５３】
また、細線化時、制御部１１は、最大値を持つ黒画素の数に対して減少する多値の出力値が定められたＬＵＴを用いて、細線化の対象と判定された注目画素とその周辺画素のうち黒画素の数に対応する多値の出力値を求め、注目画素の画素値を当該出力値に変換する。
これにより、周辺画素で出力されるドットの数に応じて注目画素の細線化の強度を調整することができ、画像の階調に応じた滑らかな細線化を実現することができる。
【００５４】
また、細線化時、制御部１１は２値の画像データとともに入力される属性データを参照し、注目画素の属性が文字である場合のみ、注目画素の画素値の変換を行う。
これにより、細線化の必要がある属性の場合のみ細線化処理を実行すればよく、効率的で高速な細線化処理が可能となる。
【００５５】
〈第２実施形態〉
第２実施形態に係る画像処理装置の構成は、第１実施形態に係る画像処理装置１と同じであり、制御部１１により実行される細線化処理の内容が異なる。よって、同じ構成部には同じ符号を用いて構成の説明は省略し、処理内容が異なる細線化処理について説明する。
【００５６】
第１実施形態に係る細線化処理において、制御部１１はフィルタ処理によってエッジ判定及び細線化対象の判定を行ったが、第２実施形態に係る細線化処理において、制御部１１は注目画素とその周辺画素において最大値を持つ画素の数によってエッジ判定及び細線化対象の判定を行う。また、第２実施形態において記憶部１２は細線化処理に用いられるテーブルのデータを記憶する。テーブルの詳細は後述する。
【００５７】
図８は、第２実施形態に係る細線化処理のフローチャートである。この細線化処理は、制御部１１が記憶部１２に記憶された細線化処理プログラムを読み込み、実行することで実現される。
図８に示すように、制御部１１は細線化処理の対象である２値の画像データを、Ｎ×Ｎ画素の領域単位で入力する（ステップＴ１）。細線化処理の対象としたい画像が多値である場合は先に誤差拡散処理等によって多値の画像データを２値化して、細線化処理してもよい。制御部１１は入力したＮ×Ｎ画素の領域の中心を注目画素とし、当該注目画素は最大値を持つ画素であるか否かを判定する（ステップＴ２）。以下、最大値を持つ画素を黒画素、最小値を持つ画素を白画素という。
【００５８】
注目画素が黒画素ではない場合（ステップＴ２；Ｎ）、入力したＮ×Ｎ画素についての処理を終了する。全画像領域について細線化処理が終了していない場合は、主走査方向に１画素位置をシフトして（主走査方向の走査が終了すれば副走査方向に１画素位置をシフトして）、ステップＴ１からの処理が繰り返される。つまり、黒画素である注目画素が発見されるまで、１画素ずつ位置をシフトしながらＮ×Ｎ画素の画像データが入力される。
【００５９】
注目画素が黒画素である場合（ステップＴ２；Ｙ）、制御部１１は注目画素とのその周辺画素からなる３×３画素における黒画素数を行毎及び列毎にカウントする（ステップＴ３）。制御部１１は、カウントした行毎及び列毎の黒画素数の総数、つまり３×３画素における黒画素の総数を求め、この総数によって注目画素がエッジであるか否かを判定する。
【００６０】
３×３画素における黒画素の総数が９の場合、３×３画素の領域はベタ画像であり、エッジは含まれない。一方、３×３画素の領域に白画素が少なくとも１つ存在すれば、黒画素である注目画素は本来、エッジである。しかし、細線化対象となるエッジを抽出することが目的であるので、注目画素の画素値を変換し細線化した後にも、注目画素周辺の黒画素間の連結が保障されなければならない。黒画素の総数が１の場合、つまり注目画素のみ黒画素である場合、３×３画素の領域に含まれるのは孤立点の画像であり、注目画素の細線化によって孤立点が失われる場合があるので細線化の対象とすべきではない。また、黒画素の総数が２である場合、注目画素の細線化によって注目画素周辺の黒画素が孤立点化する場合があり、細線化対象とするのは適切ではない。よって、制御部１１は黒画素の総数が３以上８以下となる場合、注目画素をエッジと判定する。
【００６１】
制御部１１は、カウントした黒画素の総数が３以上８以下の範囲内にあるか否かを判定する（ステップＴ４）。黒画素の総数が３以上８以下の範囲内になければ（ステップＴ４；Ｎ）、入力したＮ×Ｎ画素の処理を終了する。未処理の画像領域がある場合は前述のように１画素位置をシフトして次のＮ×Ｎ画素の画像を入力して同様の処理を繰り返す。
【００６２】
黒画素の総数が３以上８以下の範囲内にある場合（ステップＴ４；Ｙ）、制御部１１は注目画素がエッジであると判定する。次に、制御部１１は３×３画素の各行、各列の黒画素数の組み合わせと、予め細線化対象の組み合わせとして記憶部１２に記憶されている各行、各列の黒画素数の組み合わせとを照合する（ステップＴ５）。
【００６３】
図９は照合のイメージ図である。
図９に示すように、３×３画素の各行を上から第１行〜第３行といい、各列を左から第１列〜第３列という。記憶部１２には、細線化の対象とするエッジの形状に応じて３×３画素内の黒画素の数が第１行〜第３行毎、第１列〜第３列毎に定められた組み合わせのテーブルＣが記憶されている。
【００６４】
例えば、３×３画素の領域ａ１の黒画素数は、第１行；１、第２行；２、第３行；３、第１列；１、第２列；２、第３列；３である。テーブルＣにはこの黒画素数の組み合わせに一致する組み合わせがあるので、領域ａ１は細線化対象と判定される。同様に、領域ａ２についても黒画素数の組み合わせがテーブルＣの組み合わせと一致するので、細線化対象と判定される。
【００６５】
一方、領域ａ３の黒画素数は、第１行；２、第２行；１、第３行；２、第１列；１、第２列；２、第３列；２である。このような黒画素数の組み合わせに一致する組み合わせはテーブルＣにはないので、領域ａ３は細線化の対象外と判定される。領域ａ４についても同様である。
【００６６】
図１０は、細線化対象となる黒画素数の各行、各列の組み合わせが定められたテーブルＣの一例を示す。
テーブルＣには、細線化の対象となるエッジ形状を特定する第１行〜第３行、第１列〜第３列の黒画素数の組み合わせが記憶されている。この組み合わせは、図９に示した領域ａ１や領域ａ２のように、細線化を経ても注目画素周辺の黒画素間の連結が保障されるエッジ形状を細線化の対象として、そのエッジ形状を特定する組み合わせである。一方、図９に示した領域ａ３、ａ４のように注目画素を細線化することで、注目画素周辺の黒画素間の連結が失われるようなエッジ形状や、孤立点を作り出すようなエッジ形状は細線化の対象外とするため、そのようなエッジ形状を特定する黒画素数の組み合わせはテーブルＣから削除される。
【００６７】
制御部１１は、３×３画素の各行、各列の黒画素数の組み合わせと、テーブルＣの組み合わせとを照合し、不一致の場合（ステップＴ５；Ｎ）、注目画素は細線化対象外であると判定し、入力したＮ×Ｎ画素の処理を終了する。未処理の画像領域がある場合は前述のように１画素分位置をシフトして次のＮ×Ｎ画素の画像を入力して同様の処理を繰り返す。
【００６８】
各行、各列の黒画素数の組み合わせがテーブルＣの組み合わせに一致した場合（ステップＴ５；Ｙ）、制御部１１は注目画素が細線化対象であると判定する。制御部１１は、エッジであり、細線化対象であると判定された注目画素の画素値を、注目画素を中心とする３×３画素における黒画素数に応じて変換し、細線化する（ステップＴ６）。細線化後、入力したＮ×Ｎ画素の処理を終了する。未処理の画像領域がある場合は前述のように１画素分位置をシフトして次のＮ×Ｎ画素の画像を入力して同様の処理を繰り返す。
【００６９】
細線化には、３×３画素のうちの黒画素数に対して多値の出力値が予め定められたＬＵＴが用いられる。制御部１１はＬＵＴから３×３画素のうちの黒画素数に対応する多値の出力値を得て、注目画素の画素値を当該出力値に変換する。例えば、図７に示すように３以上８以下の黒画素数に応じて、指数的に減少する多値の出力値（値域０〜２５５）を定めることができる。この例によれば、注目画素の周辺に黒画素数が多ければ多いほど注目画素の出力値は小さく変換され、注目画素は細線化される。
なお、図７は一例であり、黒画素数の増加によって注目画素の出力値が減少するように黒画素数と出力値の関係が定められているのであれば、これに限定されない。
【００７０】
好ましくは、細線化の実行前に、制御部１１が画像データとともに入力される属性データを参照し、注目画素の属性が文字である場合のみ、細線化を行う。注目画素が文字以外の線画、写真の属性である場合、細線化の必要が無いからである。属性による細線化対象か否かの判断は、ステップＴ２の処理段階で行ってもよい。細線化対象外であれば、その後の注目画素に対する処理は不要であるので、早い段階で細線化の必要性を判断することにより、より処理の高速化が望める。
【００７１】
以上のように、第２実施形態によれば、画像処理装置１の制御部１１は２値の画像データの各画素のうち、最大値を持つ注目画素がエッジであるか否かを判定し、エッジと判定された注目画素が細線化の対象か否かを判定し、細線化の対象と判定された注目画素の画素値を変換する。エッジの判定時、制御部１１は最大値を持つ注目画素とその周辺画素において、最大値を持つ画素の総数をカウントし、カウントした総数が３以上８以下内にある場合、注目画素をエッジと判定する。細線化対象の判定時、制御部１１はエッジと判定された注目画素とその周辺画素において最大値を持つ黒画素の数を行毎及び列毎にカウントし、各行及び各列のカウントされた黒画素数の組み合わせが、細線化対象として予め定められた組み合わせに一致する場合、注目画素を細線化対象と判定する。
【００７２】
これにより、黒画素のみエッジ判定、細線化の判定の対象とすることができ、細線化処理を高速化することができる。また、注目画素とその周辺画素の黒画素数をカウントする簡易な演算によってエッジ判定、細線化対象の判定を行うことができる。細線化処理のために予め保持するデータは最大値を持つ画素の数の各行、各列の組み合わせのテーブルＣのデータだけであるので、メモリを占有することなく、簡易な構成で細線化処理を高速にソフトウェア処理することができる。
【００７３】
また、細線化処理時、制御部１１は、黒画素の数に対して減少する多値の出力値が定められたＬＵＴを用いて、細線化の対象と判定された注目画素とその周辺画素のうち黒画素の数に対応する多値の出力値を求め、注目画素の画素値を当該出力値に変換する。
これにより、周辺画素で出力されるドットの数に応じて注目画素の細線化の強度を調整することができ、画像の階調に応じた滑らかな細線化を実現することができる。
【００７４】
また、細線化処理時、制御部１１は２値の画像データとともに入力される属性データを参照し、注目画素の属性が文字である場合のみ、注目画素の画素値の変換を行う。
これにより、細線化の必要がある属性の場合のみ細線化処理を実行すればよく、効率的で高速な細線化処理が可能となる。
【００７５】
上述した第１又は第２実施形態は本発明の一例であり、これに限定されない。
例えば、読取処理部１６によって画像データを解析し、画像データの各画素について画像の属性を判定し、属性データを作成してもよい。
【００７６】
また、本発明に係るプログラムのコンピュータ読み取り可能な媒体としては、ＲＯＭ、フラッシュメモリ等の不揮発性メモリ、ＣＤ-ＲＯＭ等の可搬型記録媒体を適用することが可能である。
また、本発明に係るプログラムのデータを通信回線を介して提供する媒体として、キャリアウエーブ(搬送波)も本発明に適用される。
【符号の説明】
【００７７】
１  画像処理装置
１１  制御部
１２  記憶部
１３  操作部
１４  表示部
１５  画像読取部
１６  読取処理部
２１  書込処理部
２２  印刷部
【図１】
2012238051.tif 000003
【図２】
2012238051.tif 000004
【図３】
2012238051.tif 000005
【図４】
2012238051.tif 000006
【図５】
2012238051.tif 000007
【図６】
2012238051.tif 000008
【図７】
2012238051.tif 000009
【図８】
2012238051.tif 000010
【図９】
2012238051.tif 000011
【図１０】
2012238051.tif 000012