简单线性迭代聚类(Simple Linear Iterative Clustering, SLIC)算法是典型的超像素分割算法之一,它是利用像素的颜色和空间位 置来对像素点进行聚类,从而获得很多紧凑整齐、大小相近、同质性较强的超像素。 利用SLIC算法生成的超像素边缘贴合性强,空间结构信息得到了充分利用,并且 SLIC算法适应性较好,结合了不同区域之间的边界信息,分割结果的同质性较高。
代码实现:
from skimage.segmentation import slic,mark_boundaries
from skimage import io
import matplotlib.pyplot as plt
img = io.imread("Lena.jpg")
plt.subplot(121)
plt.title("lena")
plt.imshow(img)
#n_segments参数用于指定分割后的超像素块数量,compactness参数用于控制紧凑度。
segments = slic(img, n_segments=60, compactness=10)
out = mark_boundaries(img, segments)
# print(segments)输出超像素分割结果
plt.subplot(122)
plt.title("n_segments=60")
plt.imshow(out)
plt.show()
输出结果: