标准化剪切:此代码的作用是什么?

时间:2014-11-23 17:33:29

标签: matlab image-processing computer-vision image-segmentation

我正在浏览一些MATLAB code for Normalized Cut for image segmentation,我无法弄清楚以下代码的作用:

% degrees and regularization
d = sum(abs(W),2);
dr = 0.5 * (d - sum(W,2));
d = d + offset * 2;
dr = dr + offset;
W = W + spdiags(dr,0,n,n);

offset定义为0.5。

W是一个方形,稀疏的对称矩阵(w_ij由像素ij之间的相似度定义。 然后使用W来解决特征值问题d^(-1/2)(D-W)d^(-1/2) x = \lambda x

由于权重的定义方式,w_ij都是正数,因此dr是0的向量。

有什么补偿?他们是如何选择的? offset*2背后的原因是什么?我觉得这是为了避免在某些情况下出现一些潜在的陷阱。这些可能是什么?

非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

我相信您遇到了Prof Stella X Yu撰写的一段代码 实际上,当W为正数时,此代码无效,这是NCuts的常见情况 然而,在CVPR 2001 paper Yu和Shi扩展NCuts来处理否定交互以及正面交互。在这些情况下,dr(r代表“排斥”)起着重要作用。

说到负面权重,我必须说,我个人不同意于和施的方法 我坚信,当存在排斥信息时,Correlation Clustering是一个比扩展的NCuts目标更好的目标函数。我用负权重进行的一些图像分割实验结果表明,相关聚类目标优于扩展NCut。