SLIC Superpixels 算法学习笔记
算法流程梳理如下:
原文下载:http://www.kev-smith.com/papers/SLIC_Superpixels.pdf
1、初始化:
- 通过对图像像素进行抽样,初始化k个聚类中心C_k ,步长为初始化聚类大小S,即将图像分为k个网格,取每个网格中心为初始聚类中心;
- 初始化每个像素点的标签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 算法学习笔记相关推荐
- 大顶堆删除最大值_算法学习笔记(47): 二叉堆
堆(Heap)是一类数据结构,它们拥有树状结构,且能够保证父节点比子节点大(或小).当根节点保存堆中最大值时,称为大根堆:反之,则称为小根堆. 二叉堆(Binary Heap)是最简单.常用的堆,是一 ...
- Manacher算法学习笔记 | LeetCode#5
Manacher算法学习笔记 DECLARATION 引用来源:https://www.cnblogs.com/grandyang/p/4475985.html CONTENT 用途:寻找一个字符串的 ...
- 数据结构与算法学习笔记之 从0编号的数组
数据结构与算法学习笔记之 从0编号的数组 前言 数组看似简单,但掌握精髓的却没有多少:他既是编程语言中的数据类型,又是最基础的数据结构: 一个小问题: 为什么数据要从0开始编号,而不是 从1开始呢? ...
- 输出dag的所有拓扑排序序列_算法学习笔记(53): 拓扑排序
拓扑排序是对DAG(有向无环图)上的节点进行排序,使得对于每一条有向边 , 都在 之前出现.简单地说,是在不破坏节点 先后顺序的前提下,把DAG拉成一条链.如果以游戏中的科技树(虽然名字带树,其实常常 ...
- 算法学习笔记:对指定金额计算最少钞票数
算法学习笔记:对指定金额计算最少钞票数 一.引出问题 财务人员给员工发工资时经常遇到这样一个问题,即根据每个人的工资额(以元作为单位)计算出各种面值的钞票的张数,且要求总张数最少.例如,某职工工资为3 ...
- matlab中x从0到5不含0,关于MATLAB的数学建模算法学习笔记
关于MATLAB的数学建模算法学习笔记 目录 线性规划中应用: (3) 非线性规划: (3) 指派问题;投资问题:(0-1问题) (3) 1)应用fmincon命令语句 (3) 2)应用指令函数:bi ...
- 机器学习篇01:在线学习的支持向量机算法学习笔记
在线学习的支持向量机算法学习笔记 oisvm算法实现说明 oisvm算法实现说明 % 本程序是用于实现基于在线学习的调制信号识别的程序 % % % 第一步:调制信号的生成 % 首先是7个信号:2ASK ...
- 数据结构与算法学习笔记之 提高读取性能的链表(上)
数据结构与算法学习笔记之 提高读取性能的链表(上) 前言 链表(Linked list)比数组稍微复杂一点,在我们生活中用到最常见的应该是缓存,它是一种提高数据读取性能的技术,常见的如cpu缓存,浏览 ...
- l2-004 这是二叉搜索树吗?_算法学习笔记(45): 二叉搜索树
二叉搜索树(Binary Search Tree, BST)是一种常用的数据结构,在理想情况下,它可以以 的复杂度完成一系列修改和查询,包括: 插入一个数 删除一个数 查询某数的排名(排名定义为比该数 ...
最新文章
- 【加】德鲁·卡宾森 - 质量效应3:天罚(2013年6月26日)
- 几句话总结21种设计模式。
- 《DSP using MATLAB》示例Example7.20
- 使用 Ajax 实现本地化后的客户端消息验证
- java导出jar带第三方库_在.jar文件中导出java库
- 前端学习(2388):封装请求模块
- visual studio2019的安装以及使用
- 黄章爆料魅族16s/16s Plus更多信息 无线充电已做到24W
- 1、C语言从入门到精通一一概述
- 统计学考研笔记:正态分布置信区间计算题
- 高质量的博客该如何来进行打造?
- YYDS《剑指Offer》再续新篇,百万程序员人手一册
- OmniGraffle 7 Mac 注册码 账号:Appked 密码:MFWG-GHEB-HYTW-CGHT-CSXU-QCNC-SXU
- Ubuntu16.04 安装 ROS Kinetic
- DuerOS智能设备激活数破亿!百度补贴上亿造节再添一把火
- Codeforces 1198F
- 基于asp.net320班级同学录网站
- RGB、YUY2、YUYV、YVYU、UYVY与AYUV
- 软考中级 信息系统管理工程师考试真题(2019上半年下午)
- leecode100题(自用)
热门文章
- [Flutter]微信分享并从分享链接跳回APP指定页面
- [MATLAB App Designer] 多窗口 App 中的交互(含数据传递)
- 线性回归预时间序列预测
- 错误: -source 1.6 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)
- Java开发面试(持续更新)
- 备份恢复Lesson 08. Using RMAN-Encrypted Backups
- linux调度不执行,linux crond.d定时调度执行一段时间后不执行
- scipy库 signal 导入_Python scipy.signal方法代码示例
- 电流模架构Bandgap设计与仿真
- 【python+selenium】点触文字验证码的识别