你可以看到,公式中的上下文http://www.cs.berkeley.edu/~malik/papers/SM-ncut.pdf(方程4页11)。 在那篇论文中,他们用F表示强度,我假设你有我。 由于你的强度是标量,你只是想要取其差异的平方。
您想要计算权重矩阵,该矩阵可计算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
现在,如果你想查找一个之间(1,1)的重量和A(1,2),你可以做到这一点像这样:
i = sub2ind(size(A), 1, 1)
j = sub2ind(size(A), 1, 2)
W(i, j)
但是,如果你设置R = 1(根据NCuts公式),那么你可能想是这样的:
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)
你为什么期待四个元素的矢量?那是因为A(1,1)有4个邻居,你想要距离到每个? – Bull 2013-05-14 13:39:34
是A(1,1)有3个邻居和它自己,所以我期待4个距离当然我假设从A(1,1)和A(1,1)的距离是0 – blueSurfer 2013-05-14 19:18:19