アトキンソンのディザリング - 再挑戦 でもだめ 2007/08/19




一番上がjava版で作成したもの。
その次が、Tinrocket, LLC | HyperDitherで作成したもの。

なんとなく近いかなぁと思ったんだけど。
HyperDitherの設定はcontrastをonにしている。

1. Start with a standard stochastic dithering algorithm.
2. Propagate only 3/4 of the total error term.
3. Propagate the error to the neighbors as follows:
Tinrocket, LLC | Programming:Computer Graphics


の説明がすべてのような気もするのだけど、画像処理についてよくわかっていないので、どうも理解できていないです。

コードは、javaでベースのGUIを組んで、毎回、コンパイルするのがいやなので、画像フィルターの部分をgroovyにしたら、めちゃくちゃ遅くなってしまった。もちろん、groovyだけのせいではないです。

コードを掲載したいのだけども、自分でも理解してないので、
一部だけ、

if (x < width - 1)
d[p + 1] += (err * 1) / 8;
if (x < width - 2)
d[p + 2] += (err * 1) / 8;
if (x > 0 && y < height - 1)
d[(p - 1) + width] += (err * 1) / 8;
if (y < height - 1)
d[p + width] += (err * 1) / 8;
if (x < width - 1 && y < height - 1)
d[p + width + 1] += (err * 1) / 8;
if (y < height - 2)
d[p + width + width] += (err * 1) / 8;


画像処理知ってる人なら、ぱっぱっぱっとやってしまえるんだろうけど。

参考

関連

: