k 的图像分割意味着在 python 中聚类

image segmentation by k means clustering in python

我一直在尝试弄清楚如何在 Python 模块(如 skimage 或 scipy 中通过 K 均值聚类来分割图像。我找到了一个代码 here

当我尝试 运行 我的图像代码时,我的 python 解释器停止响应。

此外,我不理解上面给出的 link 中代码的下采样部分。 请告诉我该怎么做?

代码正确,(对我来说工作正常)。完成它只需要时间(在我的笔记本电脑上是 80 秒)。也许你需要像 lena image 这样的灰度图像。

用于下采样;

lena = sp.misc.lena()
print np.shape(lena)
print np.shape(lena[::2, ::2])   # lena[0,0], lena[0,2], lena[0,4], lena[0,6]
print np.shape(lena[1::2, ::2])  # lena[1,0], lena[1,2], lena[1,4], lena[1,6]
print np.shape(lena[::2, 1::2])  # lena[0,1], lena[0,3], lena[0,5], lena[0,7]
print np.shape(lena[1::2, 1::2]) # lena[1,1], lena[1,3], lena[1,5], lena[1,7]

# lena[0,0], lena[0,2], lena[0,4], lena[0,6], ...
#   +      ,   +      ,   +      ,   +      ,  +
# lena[1,0], lena[1,2], lena[1,4], lena[1,6], ...
#   +      ,   +      ,   +      ,   +      ,  +
# lena[0,1], lena[0,3], lena[0,5], lena[0,7], ...
#   +      ,   +      ,   +      ,   +      ,  +
# lena[1,1], lena[1,3], lena[1,5], lena[1,7], ...
#   =      ,   =      ,   =      ,   =      ,  =
# lena[0,0], lena[0,1], lena[0,2], lena[0,3], ...


lena = lena[::2, ::2] + lena[1::2, ::2] + lena[::2, 1::2] + lena[1::2, 1::2]
print 'Shape :', np.shape(lena)
lena = lena[::2, ::2] + lena[1::2, ::2] + lena[::2, 1::2] + lena[1::2, 1::2]
print 'Shape :', np.shape(lena)