誤差拡散法
digraphの作品で面白かったで、再度調べる
実行結果はモアレが目立つので実用的ではないが、誤差の伝播を説明するにはわかりやすいと思うのでまずはこの条件で説明を行う。例えば明るさが 200 の場合 255 に変換されるが、誤差は -55 となる。これは 白(255) に変換されたが本来の値はこれよりも -55 の値なので、その誤差情報 -55 を右のピクセルに渡して加味させる。黒に変換する場合も同様で、例えば明るさが 100 の場合、誤差は 100 となる。黒(0) に変換されたが本来の値はこれよりも 100 大きい値なので、その誤差情報 +100 を右のピクセルに渡して加味させる。
たぶん以下のような式になる。
code: hoge.js
if(( 誤差+今のピクセルの値 ) > 閾値){
return 255;
}else{
return 0;
}
分配のやり方は右と下に適当な重みをつけて分配していく
通常は左上から順に計算されていく、誤差が影響を与える
セルオートマトンっぽさもあるかもしれない、要比較
パラメータは閾値など多数