我一直在试图弄清楚如何通过像Kaymage或scipy这样的Python模块中的K-means聚类来分割图像。我找到了代码here
当我尝试运行我的图像代码时,我的python解释器停止响应。
另外,我不理解上面给出的链接中代码的下采样部分。 请告诉我怎么做?
答案 0 :(得分:1)
代码是正确的,(它对我来说很好)。它需要时间,完成(我的笔记本电脑上80秒)。也许你需要像莱娜图像一样的灰度图像。
用于下采样;
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)