(57)【要約】【課題】  遺伝的アルゴリズムやニューラルネットワークなどの最適化手法に比べ計算量が少なく、出力画像の周波数特性を制御できる画像処理装置を提供することを目的とする。【解決手段】  所望の出力周波数特性を実現するような評価値を設け、それに従い２値化を行う。【選択図】  図１
2007128327.tif 000002
【特許請求の範囲】
【請求項１】
評価値を記憶する評価値記憶手段と、入力画像に応じて評価値の初期状態を算出する初期値算出手段と、評価値を参照して2値化を行う2値化手段と、評価値を更新する評価値更新手段を有する画像処理装置。
【請求項２】
請求項1に記載の画像処理装置であって、初期ドットパターンを形成するパターン形成手段を有し、それに応じて評価値の初期状態を修正する手段を有する画像処理装置。
【請求項３】
前記初期評価値算出手段は、フィルタと呼ばれる周波数空間上の関数と入力画像の周波数特性を参照して算出されることを特徴とする請求項2に記載の画像処理装置。
【請求項４】
前記評価値更新手段は、前期フィルタを参照して逆フーリエ変換によって求められた配列を加算する請求項2に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多値画像を2値プリンタで出力するための画像処理装置に関する。
【背景技術】
【０００２】
見た目に良好な画像を得るためには、出力画像の周波数特性を制御する必要がある。従来、ブルーノイズ特性を実現する手法としては誤差拡散法やブルーノイズマスク法が用いられてきた。
【０００３】
また所望の周波数特性に対し、出力画像を最適化する手法としては、ニューラルネットワークや遺伝的アルゴリズムなどの最適化手法が用いられてきた。これは周波数特性に対して最適化を行う場合、出力画像の周波数特性が、所望の周波数特性にどれだけ近いかを表す評価関数を設定し、様々なドット配置の中で評価関数を小さくするようなドット配置を探索する手法である。
【特許文献１】特開2004-15780号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記従来例では、誤差拡散法やブルーノイズマスク法では計算量が比較的少なくてすむが、所望の出力画像の周波数特性に対応する出力画像を得ることが困難である。また遺伝的アルゴリズムやニューラルネットワークは所望の周波数特性を出力画像がもつように最適化できる代わりに、計算量が多くなってしまう。そこで、本発明は遺伝的アルゴリズムやニューラルネットワークなどの最適化手法に比べ計算量が少なく、出力画像の周波数特性を制御できる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明の請求項1に依る画像処理装置は、ドット配置の組合せの中で所望の周波数特性を実現する配置を探索するのではなく、評価値を参照して順次2値化を行い、その評価値を更新することで所望の出力ドット配置に近づくように2値化を行う。
【発明の効果】
【０００６】
本発明によれば、遺伝的アルゴリズムやニューラルネットワークなどの最適化手法に比べ計算量が少なく、出力画像の周波数特性を制御できる。
【発明を実施するための最良の形態】
【０００７】
以下、添付の図面を参照して、本発明の好的な実施形態を説明する。
【実施例１】
【０００８】
図1は、第一の実施形態における画像処理装置のブロック図である。
【０００９】
以下の実施例では2値化は[0,1]で行うものとし、入力は8bitであるとする。
【００１０】
図1において、1はドットの初期配置を生成するドット初期配置生成モジュール、2は出力画像の画素値の総和を入力画像データIN(x,y)の総和と等しくするために、ドットの総数を決定する総ドット数決定モジュール、3はフィルタデータFL(u,v)と入力画像データIN(x,y)から入力フィールドφin(x,y)を算出する入力フィールド算出モジュール、4はフィルタデータを格納するフィルタバッファ、5はフィルタデータFL(x,y)からドットによって生成されるドットフィールドφdot(x,y)を算出するドットフィールド算出モジュール、6はドットフィールドを格納するドットフィールドバッファである。
【００１１】
7は初期ドット配置、入力フィールドφin(x,y)、ドットフィールドφdot(x,y)からフィールドの初期値を算出する初期フィールド算出モジュール、8はフィールドの値を格納するフィールドバッファ、9は2値化された画素の座標と、ドットフィールドφdot(x,y)からフィールドφ(x,y)を更新するフィールド更新モジュール、10はドットが打たれていない画素からフィールドφ(x,y)の最小値を与える座標を探索し、候補が複数ある場合はそのうちの1つをランダムに返すフィールド最小値探索モジュール、11はフィールドの最小値を与える座標(xmin,ymin)の出力画像データOUT(xmin,ymin)を1にする2値化モジュールである。12は出力画像データを格納しておく出力画像バッファである。
【００１２】
図2は、図1の画像処理装置の動作順を示すフローチャートである。本画像処理装置の処理フローを説明する。
【００１３】
まず、入力画像データをフィールドバッファ8に、フィルタデータをフィルタバッファ4に格納する(S1)。
【００１４】
次に初期ドット配置生成モジュール1が、入力画像データを参照して初期ドット配置を生成し出力画像データの対応する座標の画素値を1にし、出力画像バッファに格納する(S2)。
【００１５】
この時1に2値化した画素数を総ドット数決定モジュール2に渡す。ドットを初期配置するのはテクスチャを回避するためである。例として平均的に1/255の確率で出力画像データの画素値を1に、それ以外は0にする方法が考えられる。但しこの時フィールドバッファ8に格納されている入力画像データを参照し、入力画像データの画素値が1/255未満であれば出力画像データの値を0にするものとする。
【００１６】
総ドット数決定モジュール2が初期ドット配置のドット数を受け取り、入力画像データから2値化すべき画素数を算出して2値化モジュール11に渡す(S3)。
【００１７】
この時2値化が終了した画素数を表すcountを0にする。
【００１８】
ドットフィールド算出モジュール5が、フィルタバッファ4を参照し、フーリエ逆変換を行う。得られた配列を適当なサイズの配列に取り直し、これをドットフィールドφdot(x,y)とする。ドットフィールドをドットフィールドバッファ6に格納する(S4)。
【００１９】
入力フィールド算出モジュール3がフィールドバッファ8から入力画像データを読み込み、これをフーリエ変換する。さらにフィルタデータFL(u,v)及びマイナス1をかけてフーリエ逆変換し、これを入力フィールドφin(x,y)とし、フィールドバッファ8に格納し更新する(S5)。尚、入力フィールドの計算手法としては、ドットフィールドに−1を掛けたものと入力画像IN(x,y)の畳み込みを直接求める方法でも良い。
【００２０】
初期フィールド算出モジュール7がドットフィールドバッファ6からドットフィールドφdot(x,y)を読み込み、出力画像データと畳み込みを行う。これにフィールドバッファ8に格納してある入力フィールドφin(x,y)を加算して初期フィールドとする。初期フィールドをフィールドバッファ8に格納して更新する(S6)。
【００２１】
フィールド最小値探索モジュール10が、フィールドバッファ8及び、出力画像バッファ12のデータを順次参照し、画素値が0の画素の中でフィールドの値が最小になる画素を探索する。このような画素が複数存在する場合はその中の1つをランダムに選びその画素の座標を(xmin,ymin)とする(S7)。
【００２２】
2値化モジュール11がS7で得られた(xmin,ymin)の出力画像データの画素値を1にし出力画像バッファ12を更新する。またcountに1を足してcountを更新する(S8)。
【００２３】
更に2値化モジュール11がcountとS2で算出した総ドット数との大小関係を調べ(S9)、総ドット数の方が大きい場合はフィールド更新モジュール9が(xmin,ymin)を中心としてドットフィールドを畳み込んでフィールドデータに加算し、フィールドバッファ8を更新する(S10)。
【００２４】
この時ドットフィールドの加算範囲が画像の範囲を超えてしまう場合は、周期的境界条件により、加算を行う(図3)。図3の例ではドットが画像の端に近い位置に打たれた時のドットフィールドの範囲を示している。黒い点がドットを表し、実線は周期的境界条件によるドットフィールドの範囲、破線は画像が無限に広がっている時のドットフィールドの形状をあらわしている。図3のようにドットフィールドが画像の範囲を超える場合は周期的境界条件により、ドットフィールドの範囲を変形する。
【００２５】
countと総ドット数が等しくなるまで、(S10→S7→S8→S9→S10)を繰り返す。
【００２６】
countと総ドット数が等しくなったら、本ルーチンを終了する。
【００２７】
本画像処理装置の原理を説明する。
【００２８】
本画像処理装置は次の量を小さくする2値化手法である。
【００２９】
【数１】
2007128327.tif 000003
引数を(u,v)で書いた時は周波数特性を表し、(x,y)で書いた時は実空間表示を表すものとする。
【００３０】
Vを小さくするように2値化することで、差分画像のパワースペクトルとフィルタの積和が小さくなり、出力画像はフィルタの特性を反映した周波数特性にすることができる。
【００３１】
図4はフィルタと差分画像のパワースペクトルの関係を示したものである。フィルタの値が大きい所は差分画像のパワースペクトル値が小さくなると考えられる。しかし、フィルタとの積和を小さくするだけでは特定の周波数領域にパワースペクトルが集中し、テクスチャが発生する場合があるため、初期ドット配置生成モジュール1で均一な最低階調のドット配置を生成し、テクスチャが発生することを防止している。
【００３２】
(1)を展開すると、
【００３３】
【数２】
2007128327.tif 000004
定数項は出力画像に依存しない項である。定数項を無視すると、ウィーナーヒンチンの定理より、上の式は
【００３４】
【数３】
2007128327.tif 000005
＊は循環畳み込みを表す。以下和を取る際に、添え字が画像範囲を超えてしまう場合は周期的境界条件によって画像範囲に取り直すと約束する。
【００３５】
OUT(x,y)＝0,1なので、ドットを打つ画素の座標の列を{(xn,yn)}とすると、
【００３６】
【数４】
2007128327.tif 000006
const.＝N・FL(0,0) (Nは総ドット数)
よってｎ番目のドットを打つ時はOUT(xn,yn)＝0かつ
【００３７】
【数５】
2007128327.tif 000007
が最小となる画素値に打てばVの値も小さくなると考えられる。この値がフィールドφ(x,y)であり、最小となる画素を探索するのが、フィールド最小値探索モジュール10である。
【００３８】
(5)においてFL(x,y)はドットフィールドφdot(x,y)であり、これを算出するのがドットフィールド算出モジュール5である。
【００３９】
(5)の第2項
【００４０】
【数６】
2007128327.tif 000008
は入力フィールドφin(x,y)であり、これを計算するのが入力フィールド算出モジュール3である。
【００４１】
またドットを1つ打つごとに第一項
【００４２】
【数７】
2007128327.tif 000009
の値を更新する必要がある。
【００４３】
これはｎ番目のドットを打ったらフィールドφ(x,y)にドットフィールドFL(x-xn,y-yn)を足して値を更新すればよい。この処理を行うのが、フィールド更新モジュール9である。
【００４４】
以上が本画像処理装置の原理である。図５に本画像処理装置を用いて2値化した画像を示す。フィルタとして視覚特性を用いたものである。
【実施例２】
【００４５】
次に実施例2について説明する。図2において、S4,S5をS2より先に行うことで、フィルタデータを出力画像バッファに格納する手法が考えられる。このように出力画像バッファをフィルタバッファ4の代用とすることで、フィルタバッファは必要なくなる。
【００４６】
入力フィールドとドットフィールドを算出した後で、初期ドット配置生成モジュールによって出力画像バッファを更新し、初期ドット配置に置き換える。
【実施例３】
【００４７】
実施例3について説明する。これは入力画像を分割して処理する場合である。
【００４８】
図1において入力画像データとして、入力画像を適当な領域に分割したものを与える。これに対し実施例1又は2の手順に基づき2値化を行う。以上の処理をそれぞれの分割領域に対して行い、入力画像の2値化を行う。
【図面の簡単な説明】
【００４９】
【図１】第1実施例の画像処理装置の構成を示すブロック図である。
【図２】第1実施例の2値化処理を示すフローチャートである。
【図３】フィルタと差分画像のパワースペクトルの関係を示した図である。
【図４】評価値を更新する際の境界条件について示した図である。
【図５】本画像処理装置によって2値化を行った例である。
【図１】
2007128327.tif 000010
【図２】
2007128327.tif 000011
【図３】
2007128327.tif 000012
【図４】
2007128327.tif 000013
【図５】
2007128327.tif 000014