简单线性迭代聚类SLIC的原理及opencv实现

简单线性迭代聚类(SLIC)是在 K-Means 聚类算法的基础上扩展而来的,是一种简单而高效的构建超像素的方法。SLIC 算法有两个参数K和m,K为超像素个数,m为超像素紧凑程度。将颜色向量和位置向量结合到一起,构成5维空间向量[l,a,b,x,y]。对于 N 个像素的图像,每个超像素约有 N/J 个像素点,那么每个超像素的网格宽度为 S = √N/J,再由S来选定K个初始聚类中心,然后计算每个聚类中心和它2S2S范围内的像素之间的距离,并把每个像素对应的最小距离的聚类中心作为该像素的标签,也就是标签表明该像素属于哪个聚类中心。其中,距离的测量公式为:
这里写图片描述
其中,dlab表示第k个聚类中心与第i个像素点的颜色距离,dxy表示第k个聚类中心与第i个像素点的空间距离,而Ds是颜色距离和归一化的空间距离的和。公式中的变量m用来权衡颜色相似度和空间临近性的影响。m越大,空间影响越大,超像素更紧凑;m越小,颜色影响越大,超像素更贴合图像边缘。
这里写图片描述

SLIC作者的源码:SLIC作者源码
前期看代码时,总想把作者源码中算法重要部分提取出来,直接用opencv实现,从而方便用opencv下一步处理,所以实现了以下代码:opencv实现分割的输出
这样就可以用opencv直接处理SLIC分割超像素,并在代码中加入了一个时间类。

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值