SLIC算法理解(仅为我的笔记)

MATLAB中有超像素分割算法superpixels函数,https://ww2.mathworks.cn/help/images/ref/superpixels.html?s_tid=doc_ta#bu1_lce-4,原理就是SLIC超像素分割。html

1.SLIC超像素分割论文(翻译版)c++

https://blog.csdn.net/Fighting_Dreamer/article/details/77170859算法

2.原理详解函数

http://www.javashuo.com/article/p-xoswvjxo-no.htmlspa

3.c++代码解读.net

https://blog.csdn.net/electech6/article/details/45535203翻译

SLIC是基于K-means算法的生成超像素新方法,主要不一样:htm

每次迭代K-means是所有数据在作聚类,其中每一个像素必须与全部聚类中心比较。SLIC是超像素中心周围的区域2S×2S中进行相似像素的搜索blog

算法原理图get

初始化聚类中心-------->每一个聚类中心:2S*2S区域内对每一个像素点进行聚类中心判断(即肯定Label)------------->迭代:更新每一个聚类中心

距离度量D是重点,由颜色距离和像素距离两部分决定

疑惑好久的部分:每一个聚类中心:2S*2S区域内对每一个像素点进行聚类中心判断(即肯定Label)

对于某个聚类中心Ck:遍历种子(聚类中心)2S*2S内的每一个像素点i,计算这个像素点与聚类中心的距离D,若是D<d(i)就把这个像素点的标签打为k。而且更新d(i)=D;下次遍历另外一个聚类中心时,可能还会碰见这个点i,要是算出D比上次的D(就是d(i))小,就把这个点i的标签换成如今这个聚类中心的。