美文网首页
SLIC超像素分割

SLIC超像素分割

作者: zerowl | 来源:发表于2019-04-20 14:25 被阅读0次

    SLIC(simple linear iterativeclustering) ,即简单线性迭代聚类。将彩色图像转化为CIELab颜色空间和XY坐标下的5维特征向量,然后对5维特征向量构造距离度量标准,对图像像素进行局部聚类的过程。SLIC算法能生成紧凑、近似均匀的超像素。其实质是将K-means算法用于超像素聚类。复杂度是O(NKI), 其中,N是图像的像素数,K是聚类数,I是迭代次数。

    SLIC的具体实现的步骤:

    (1)将图像转换为CIELab颜色空间;
    (2)初始化K个种子点(聚类中心),在图像上平均洒落K个点,K个点均匀的占满整幅图像;
    (3)对种子点在内的nXn(一般为3X3)区域计算每个像素点梯度值,选择值最小(最平滑)的点作为新的种子点,这一步主要是为了防止种子点落在了轮廓边界上;
    (4)对种子点周围2S*2S的方行区域内的所有像素点计算距离度量,S=sqrt(N/K), N是图像的像素个数;
    (5)每个像素点都可能被几个种子点计算距离度量,选择其中最小的距离度量对应的种子点为其聚类中心。

    from skimage.segmentation import slic, mark_boundaries
    from skimage import io
    
    img = io.imread('./data/coffee.png')
    segments = slic(img, n_segments=400, compactness=30)
    out = mark_boundaries(img,segments)
    io.imsave('./data/coffee_result.png', out)
    
    coffee.png coffee_result.png

    相关文章

      网友评论

          本文标题:SLIC超像素分割

          本文链接:https://www.haomeiwen.com/subject/nezkgqtx.html