算法流程梳理如下:

原文下载:http://www.kev-smith.com/papers/SLIC_Superpixels.pdf

1、初始化:

  1. 通过对图像像素进行抽样,初始化k个聚类中心C_k ,步长为初始化聚类大小S,即将图像分为k个网格,取每个网格中心为初始聚类中心;
  2. 初始化每个像素点的标签lable为-1,每个像素点与聚类中心的距离distance为无穷大。

2、对初始化的聚类中心进行移动:

在该聚类中心相邻的8个像素点中,找到最小梯度方向,并将该点设为新的聚类中心,直至聚类中心不再变化。

3、Assignment Step

对每个聚类中心点C_k ,考虑以该点为中心的2S*2S的邻域范围中的所有像素点,计算每个点与C_k的距离D

(其中,m为设置的色彩与空间成分的比重参数)
如果D’<’distance(i),则赋值distance(i)= D,赋值该点标签lable为k值。

4、更新聚类中心

对k个聚类中心点进行更新,找到所有标签lable值为k的点,求其平均值,得到新的聚类中心。

5、计算剩余误差

计算剩余误差E,通过迭代3、4两步,直至E满足条件为止。

6、后处理步骤

用连通性将独立点归至超像素。

理解

在计算某点属于哪一超像素时,第一次考虑时,在C1的域中,会得到它属于超像素C1,但是当在C2的域中考虑时,会得到该点更可能归属于C2,那么该点就应该属于超像素C2。这样,计算完之后,大多数点都归属于最可能的超像素中。

SLIC Superpixels 算法学习笔记相关推荐

  1. 大顶堆删除最大值_算法学习笔记(47): 二叉堆

    堆(Heap)是一类数据结构,它们拥有树状结构,且能够保证父节点比子节点大(或小).当根节点保存堆中最大值时,称为大根堆:反之,则称为小根堆. 二叉堆(Binary Heap)是最简单.常用的堆,是一 ...

  2. Manacher算法学习笔记 | LeetCode#5

    Manacher算法学习笔记 DECLARATION 引用来源:https://www.cnblogs.com/grandyang/p/4475985.html CONTENT 用途:寻找一个字符串的 ...

  3. 数据结构与算法学习笔记之 从0编号的数组

    数据结构与算法学习笔记之 从0编号的数组 前言 数组看似简单,但掌握精髓的却没有多少:他既是编程语言中的数据类型,又是最基础的数据结构: 一个小问题: 为什么数据要从0开始编号,而不是 从1开始呢? ...

  4. 输出dag的所有拓扑排序序列_算法学习笔记(53): 拓扑排序

    拓扑排序是对DAG(有向无环图)上的节点进行排序,使得对于每一条有向边 , 都在 之前出现.简单地说,是在不破坏节点 先后顺序的前提下,把DAG拉成一条链.如果以游戏中的科技树(虽然名字带树,其实常常 ...

  5. 算法学习笔记:对指定金额计算最少钞票数

    算法学习笔记:对指定金额计算最少钞票数 一.引出问题 财务人员给员工发工资时经常遇到这样一个问题,即根据每个人的工资额(以元作为单位)计算出各种面值的钞票的张数,且要求总张数最少.例如,某职工工资为3 ...

  6. matlab中x从0到5不含0,关于MATLAB的数学建模算法学习笔记

    关于MATLAB的数学建模算法学习笔记 目录 线性规划中应用: (3) 非线性规划: (3) 指派问题;投资问题:(0-1问题) (3) 1)应用fmincon命令语句 (3) 2)应用指令函数:bi ...

  7. 机器学习篇01:在线学习的支持向量机算法学习笔记

    在线学习的支持向量机算法学习笔记 oisvm算法实现说明 oisvm算法实现说明 % 本程序是用于实现基于在线学习的调制信号识别的程序 % % % 第一步:调制信号的生成 % 首先是7个信号:2ASK ...

  8. 数据结构与算法学习笔记之 提高读取性能的链表(上)

    数据结构与算法学习笔记之 提高读取性能的链表(上) 前言 链表(Linked list)比数组稍微复杂一点,在我们生活中用到最常见的应该是缓存,它是一种提高数据读取性能的技术,常见的如cpu缓存,浏览 ...

  9. l2-004 这是二叉搜索树吗?_算法学习笔记(45): 二叉搜索树

    二叉搜索树(Binary Search Tree, BST)是一种常用的数据结构,在理想情况下,它可以以 的复杂度完成一系列修改和查询,包括: 插入一个数 删除一个数 查询某数的排名(排名定义为比该数 ...

最新文章

  1. 【加】德鲁·卡宾森 - 质量效应3:天罚(2013年6月26日)
  2. 几句话总结21种设计模式。
  3. 《DSP using MATLAB》示例Example7.20
  4. 使用 Ajax 实现本地化后的客户端消息验证
  5. java导出jar带第三方库_在.jar文件中导出java库
  6. 前端学习(2388):封装请求模块
  7. visual studio2019的安装以及使用
  8. 黄章爆料魅族16s/16s Plus更多信息 无线充电已做到24W
  9. 1、C语言从入门到精通一一概述
  10. 统计学考研笔记:正态分布置信区间计算题
  11. 高质量的博客该如何来进行打造?
  12. YYDS《剑指Offer》再续新篇,百万程序员人手一册
  13. OmniGraffle 7 Mac 注册码 账号:Appked 密码:MFWG-GHEB-HYTW-CGHT-CSXU-QCNC-SXU
  14. Ubuntu16.04 安装 ROS Kinetic
  15. DuerOS智能设备激活数破亿!百度补贴上亿造节再添一把火
  16. Codeforces 1198F
  17. 基于asp.net320班级同学录网站
  18. RGB、YUY2、YUYV、YVYU、UYVY与AYUV
  19. 软考中级 信息系统管理工程师考试真题(2019上半年下午)
  20. leecode100题(自用)

热门文章

  1. [Flutter]微信分享并从分享链接跳回APP指定页面
  2. [MATLAB App Designer] 多窗口 App 中的交互(含数据传递)
  3. 线性回归预时间序列预测
  4. 错误: -source 1.6 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)
  5. Java开发面试(持续更新)
  6. 备份恢复Lesson 08. Using RMAN-Encrypted Backups
  7. linux调度不执行,linux crond.d定时调度执行一段时间后不执行
  8. scipy库 signal 导入_Python scipy.signal方法代码示例
  9. 电流模架构Bandgap设计与仿真
  10. 【python+selenium】点触文字验证码的识别