この式は、 http://www.cs.berkeley.edu/~malik/papers/SM-ncut.pdf (式 11)の 4 ページの文脈で見ることができます。その論文では、強度に F を使用していますが、強度はスカラーであるため、それらの差の 2 乗を取りたいだけです。
A のエントリと A の他のエントリとの親和性を計算する重み行列を計算するとします。A には 25 個のエントリがあるため、重み行列は 25x25 になります。
あなたは明るさだけを気にしているので、これは簡単です:
len = length(A(:));
W = zeros(len);
for i = 1:len
for j = 1:len
W(i,j) = (A(i) - A(j))^2;
end
end
A(1,1) と A(1,2) の間の重みを調べたい場合は、次のように実行できます。
i = sub2ind(size(A), 1, 1)
j = sub2ind(size(A), 1, 2)
W(i, j)
しかし、(NCuts 式に従って) r=1 を設定すると、次のようなものが必要になる場合があります。
sigma= 10;
r = 1;
A = magic(3);
siz = size(A);
len = length(A(:));
W = zeros(len);
for i = 1:len
for j = 1:len
[xi,yi] = ind2sub(siz,i);
[xj,yj] = ind2sub(siz,j);
if((xi-xj)^2 + (yi-yj)^2) > r^2
W(i,j) = 0;
else
W(i,j) = exp(-(A(i) - A(j))^2 / sigma^2);
end
end
end
A11 = sub2ind(siz, 1, 1)
A12 = sub2ind(siz, 1, 2)
W(A11, A12)