3

我一直在阅读有关如何计算图像的亲和矩阵的公式,我有点困惑。理想情况下,我想使用颜色强度作为距离度量。

我找到了这个参考:http ://spectralclustered.wordpress.com/2010/06/05/sprint-1-k-means-spectral-clustering/

这似乎很好地解释了一般过程。我的问题是关于亲和力矩阵。

在构建亲和矩阵(我称之为 A)时,他们提到亲和矩阵应该是 KxK 大小的 Kxn 图像。其他参考实现说 MxN 图像的亲和矩阵应该是 (M*N) x (M*N):

http://www.mathworks.com/matlabcentral/fileexchange/26354-spectral-clustering-algorithms

哪一种是传统的方法?

在计算亲和力矩阵时,我想知道每个条目 A(i,j) 是否是邻域计算(例如 3x3 邻域的亲和力或整个图像中的像素)?

或者我是否将图像线性化为一维数组。

构造一个 (m*n) x (m*n) 矩阵(亲和矩阵),并在遍历一维图像阵列时,将亲和函数应用于像素 i 和每隔一个像素 j。并将结果存储到亲和矩阵中。

(基本上是一个双重嵌套的for循环)

我不在基地吗?还是关于它的外观?

提前致谢,

ct

4

1 回答 1

4

我认为您正在尝试将两个距离度量与仅支持一个度量的方法一起使用。图像在像素之间具有隐式空间度量,但光谱聚类方法无法处理此问题。它将图像视为一袋像素。

关于M,NK; M * N = K. 这两个表达式都描述了将被聚类的对象的数量,在您的情况下是像素的数量。

亲和度矩阵A是相似度矩阵的抽取版本S。例如,如果两个对象/像素不够相似,则它们不相邻。

构造邻接矩阵的一种方法如下:

S(i, j) = color_intensity_distance( pixel(i), pixel(j) )

A(i, j) = exp( - S(i,j) ), if S(i,j) <= epsilon
A(i, j) = 0, otherwise

为了提高性能,您应该搜索稀疏矩阵库。它们在处理具有许多零的矩阵方面非常有效。

关于光谱聚类的链接。

于 2011-08-29T18:06:33.247 回答