(57)【特許請求の範囲】
【請求項１】
多値階調値で表現される画像データのピクセルを所定の閾値を基準として２値化或いは所定の複数値化するに際し、複数値化の対象ピクセルの変換後の値と元の値との誤差を求め、この誤差をバッファメモリに格納するとともに他の未処理ピクセルに配分する誤差拡散処理を行うようにした画像処理方法において、予め適宜な低濃度値を設定し、スキャンラインの注目ピクセルの濃度値が０％の場合にその注目ピクセルの濃度値を前記設定濃度値に変更し、該変更した濃度値に基づいて誤差拡散処理を行い、該処理において、該変更した濃度値の注目ピクセルの濃度値に誤差バッファメモリから読み出した誤差値を加算し、この加算値と閾値とを比較して、ドットオンとドットオフのいずれかを出力するようにし、その出力結果がドットオンのとき、この出力結果をドットオフに変更するようにしたことを特徴とする画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、多値画像データの各画素の階調値を２値などの所定の複数値で出力し、複数値化対象画素の誤差を他の画素に拡散する誤差拡散法を採る画像処理方法に関する。
【０００２】
【従来の技術】
従来、多くの階調をもつ画像データを２値化するための方法としてディザ法と誤差拡散方式が知られている。誤差拡散方式は、最も基本的には多階調のピクセル（画素）データを２値化する方法である。例えば、１ピクセルを２５６段階で表現するイメージを、１ピクセルを２段階（インクジェットプリンタ的に言えばドットを打つか打たないか）で表現するイメージに変換する方法である。
【０００３】
ピクセルの値が０〜１２７の場合、基本的には「０」ドットオフにし、ピクセルの値が１２８〜２５５の場合、基本的には「２５５」にする。この「２５５」は一般的には「１」ドットオンと表現する。このように、単純に１，０に変換だけすると、その変換したときの元になった数値と、変換された後の値との間には誤差が生じる。この誤差をそれぞれ２値化処理の対象となっているピクセルの周りのピクセルに振る即ち分配して、対象ピクセルの誤差を周りのピクセルに拡散している。
【０００４】
従来の誤差拡散法には、走査方向を右に向けて一方向に移動するときに、誤差の１０分の３を次（右）のピクセルに、１０分の７を真下のピクセルに分配する方法や、誤差の１６分の７を次（右）のピクセルに、１６分の５を真下のピクセルに、１６分の３を左下のピクセルに、１６分の１を右下のピクセルに分配する方式が知られている。
【０００５】
また、特開昭６３−１５５９５２号公報のように、注目画素の周辺画素に対する２値化による誤差の配分比率を一定とせず、画素処理とともに複数組の配分係数セットの中から選択して用いる方法や、更に複雑な方法をとる特開平８−２２８２８４号公報に記載されたものなど、多数の誤差拡散方式が提案されている。
【０００６】
【発明が解決しようとする課題】
通常、誤差拡散処理を行う場合、濃度の高い部分ではあまり不具合が目立たないが、濃度の低い部分では比較的よく目立ってしまうという傾向がある。また、濃度が低い部分が続いている場合などでは、誤差の蓄積がなかなかできてこないため、たまにポツンポツンと、誤差が累積されたときだけ、ドットオン即ち「１」に変換されてしまうことがあり、これが濃度が低い部分であるため非常に目立ってしまい、悪い結果が起きやすい状況となってしまう。
【０００７】
従来、特開平９−３１２７６７号公報などのように、処理済みの直前ピクセルの出力値を保持し、その出力値が「１」であれば第1の閾値、「０」であれば第1の閾値よりも高い第２の閾値を割り当てる方法で孤立ドットの発生を抑制しているものもあるが、それでは直前のピクセルの情報により閾値の変更を行うことになるので、処理のプロセスが複雑となり、処理速度が遅くなってしまうという問題点があった。
本発明は、上記問題点を解決することを目的とするものである。
【０００８】
【課題を解決するための手段】
上記目的を達成するため、本発明は、多値階調値で表現される画像データのピクセルを所定の閾値を基準として２値化或いは所定の複数値化するに際し、複数値化の対象ピクセルの変換後の値と元の値との誤差を求め、この誤差を他の未処理ピクセルに配分する誤差拡散処理を行うようにした画像処理方法において、予め適宜な低濃度値を設定し、スキャンラインの注目ピクセルの濃度値が０％の場合にその注目ピクセルの濃度値を前記設定濃度値に変更し、該変更した濃度値に基づいて誤差拡散処理を行い、その出力結果がドットオンのとき、この出力結果をドットオフに変更するようにしたものである。
【０００９】
【発明の実施の形態】
以下に本発明の実施の形態を添付したコンピュータの画像処理フローチャートを参照して詳細に説明する。
図１において、画像処理装置として機能するコンピュータのＣＰＵ（中央演算処理装置）とコンピュータに格納された画像処理プログラムとで構成される誤差拡散処理部（１０）は、画像処理動作を開始すると、多値画像メモリ（１２）から１ライン分の画像データ（２）を読み出し、画像データ（２）の次ラインの処理を開始し（ステップ１）、次ピクセルの処理を開始する（ステップ２）。
【００１０】
本実施形態では、雪（４）や雲（６）など白で表現される部分を含む画像データが処理の対象となる。今、画像データ（２）のうち、図２（Ｂ）に示すような濃度値の場所があったと仮定する。図２（Ｂ）は多値画像データの一部分であり、注目画素とその周辺画素を示している。図２（Ｂ）中、（８）を処理対象ピクセル即ち次ピクセルとすると、誤差拡散処理部（１０）は、次ピクセル（８）の濃度値が０％か否か判断する（ステップ３）。
【００１１】
ステップ３で肯定を判断すると、誤差拡散処理部（１０）は、次ピクセル（８）を設定濃度値に変更する（ステップ４）。設定濃度値を例えば１％とすると誤差拡散処理部（１０）は、次ピクセル（８）の濃度値を図２（Ｃ）に示すように、「１」とする。次に誤差拡散処理部（１０）は、次ピクセル（８）即ち注目ピクセル（８）について後述する誤差拡散処理を行い（ステップ５）、２値化出力「１」「０」即ちドットオン、ドットオフの信号を図２（Ｄ）に示すように、２値画像メモリ（１６）に出力する。
【００１２】
今、誤差拡散処理部（１０）が注目ピクセル（８）について「１」を出力したと仮定する（図２Ｄ参照）。次に誤差拡散処理部（１０）は注目ピクセル（８）のドットがオンか否か判断し（ステップ）６、肯定を判断すると、次に、注目ピクセル（８）の元の濃度値が０％か否か判断する（ステップ７）。ステップ７で肯定を判断すると、誤差拡散処理部（１０）は、注目ピクセル（８）の２値変換値を、図２（Ｅ）に示すように、ドットオフに変換し直す（ステップ８）。
【００１３】
一方、注目ピクセルの濃度値が図２（Ｂ）の（９）に示すように、濃度１であった場合には、誤差拡散処理部（１０）は、ステップ３で否定を判断し、この注目ピクセル（９）に誤差拡散処理を行う（ステップ５）。ステップ５で、処理された注目ピクセル（９）の２値化変換値が図２（Ｄ）に示すように、「１」であっても、ピクセル（９）の元の濃度値が０％ではないので、誤差拡散処理部（１０）は、ステップ（７）で否定を判断する。
【００１４】
これにより、注目ピクセル（１０）の２値化変換値は、図２（Ｅ）に示すように、「１」のままとなる。誤差拡散処理部（１０）は、次に、上記ピクセル処理が１ライン終了したか否か判断し（ステップ９）、肯定を判断すると、次に、画像データ（２）の全ラインに対して処理が終了したか否か判断し（ステップ１０）、肯定を判断すると、画像処理動作を終了する（ステップ１１）。ステップ１０で否定を判断した場合には、ステップ１に戻り、ステップ９で否定を判断した場合は、ステップ２に戻る。
【００１５】
上記ステップ（５）における誤差拡散処理は種々の方式が存するが、本実施形態では、次のような方式を採用している。尚、本発明は次に述べる誤差拡散法に特に限定されるものではない。
誤差拡散処理ステップ（５）において、誤差拡散処理部（１０）は、多値画像メモリ（１２）に格納されている画像データ（２）から１ライン分のピクセルを読み出し、注目するピクセルの階調値を、順番に、左端から右端に向けて走査し、走査位置がラインの右端に達すると、今度は走査方向を反転させ、次ラインを、右端から左端に向けて左方向に走査する。
【００１６】
誤差拡散処理部（１０）はこの走査を繰り返し、画像データ（２）の終端に達するまで行う。まず、右方向に画素即ちピクセルを走査する場合について説明する。
図３（Ａ）は多値画像データの一部分であり、注目画素とその周辺画素を示している。（Ｘ）は注目画素（ピクセル）である。注目画素（Ｘ）の後方即ち左隣の画素（Ｄ）は、既に２値化処理済みであり、階調値も既に決定済みである。注目画素（Ｘ）の真下の画素（Ｅ）とその前方即ち右隣の画素（Ｆ）に対しては、注目画素（Ｘ）の誤差の分配が行われない。
【００１７】
そのため、画素（Ｅ）（Ｆ）の階調値には変更がない。誤差拡散処理部(10)は、多値画像メモリ(12)から注目画素(Ｘ)の階調値を読み出し、誤差バッファメモリ(36)からその注目画素(Ｘ)に与える誤差値を読み出す。そしてその2つの値を加算し、それと閾値とを比較して、大きければ階調値「1」、そうでなければ階調値「0」とする。このように2値化した階調値は、2値画像メモリ(16)に記録する。この２値化は、注目画素（Ｘ）の変更済み階調値が閾値を超えていれば「１」、超えていなければ「０」を判断する。２値化結果は２値画像メモリ（１６）に出力される。
【００１８】
この2値化処理のとき、誤差拡散処理部(10)は注目画素(X)の誤差を演算し、その2分の1を前方(右)の画素(G)に、残りの2分の1を後方(左)下の画素(H)に分配する。この各画素に分配する誤差値は、誤差バッファメモリ(14)に格納する。左方向に画素を走査する場合には、図３（Ｂ）において、誤差拡散処理部(10)は、多値画像メモリ(12)から注目画素(X)の階調値を読み出し、誤差バッファメモリ(14)からその注目画素(X)に与える誤差値を読み出す。そしてその2つの値を加算し、それと閾値とを比較して、大きければ階調値「1」、そうでなければ階調値「0」とする。
【００１９】
この2値化処理のとき、誤差拡散処理部(10)は注目画素(X)の誤差を演算し、その2分の1を前方(左)の画素(G)に、残りの2分の1を後方(右)下の画素(H)に分配する。この各画素に分配する誤差値は、誤差バッファメモリ(14)に格納する。
誤差拡散処理部（１０）は、ステップ（５）で上記誤差拡散処理を実行し、処理したピクセルの２値化の結果を２値画像メモリ（１２）に出力する。
尚、本発明は２値化に特に限定されるものではなく、４値化その他の処理にも本発明を適用することができる。
【００２０】
【発明の効果】
本発明は上述の如く構成したので、簡単な方法により高画質の２値化等の画像データを得ることができる。
【図面の簡単な説明】
【図１】本発明の処理を示すフローチャートである。
【図２】本発明の説明図である。
【図３】本発明の説明図である。
【図４】本発明の機能ブロック説明図である。
【符号の説明】
２      画像データ
４      雪
６      雲
８      ピクセル
９      ピクセル
１０    誤差拡散処理部
１２    多値画像メモリ
１４    誤差バッファ
１６    ２値画像メモリ
【図１】
0004469511.tif 000002
【図２】
0004469511.tif 000003
【図３】
0004469511.tif 000004
【図４】
0004469511.tif 000005