マルコフ確率場でテクスチャ生成

難しくていまいち理論は理解していないけど、画像認識の基礎II(森俊二著)の
テクスチャ部を参考に作ってみました。ちなみに、この本はもう絶版ですが
Cannyの最適フィルタの導出などあって、マニアックでなかなかよいです。
2値・2次モデル。5つのパラメタ(a,b)でこんなテクスチャが作れます。


↑初期値


↑縦線:a=-0.26, b(1,1)=-2, b(1,2)=2.1, b(2,1)=0.13, b(2,2)=0.015

↑等方:a=-6.0, b(1,1)=3.0, b(1,2)=3.0, b(2,1)=0, b(2,2)=0

P(x_i)=\exp(x_i * T) / (1 + \exp(T))
T = \left(a + \sum_j b_{i,j} x_j \right)
を最大にするようにMetropolisサンプリングで更新していくようです。

プログラム。
http://g0307.hp.infoseek.co.jp/gen_texture.cpp

今回は2値だけど、多値(ガウスマルコフ確率場)にするのは大変そうです。