转载自http://blog.chinaunix.net/uid-29431466-id-4831314.html

1 概述

SLIC 即simple linear iterative clustering。分簇的依据是像素之间的颜色相似性与邻近性。其中颜色相
似性的度量因子是lab 颜色空间的L1 范数,颜色邻近性的度量因子是图像二维坐标空间xy。因而综合的度量因子
是[labxy]五维空间。下面所述的距离度量因子由下式计算得到:

对输入的长宽分别为Width 和Height 的二维图像,分别以X 方向xstep 个像素和Y
方向ystep 个像素初始化簇块,得到BlockWidth*BlockHeight 个尺寸为xstep*ystep 的簇,其中BlockWidth =
Width/xstep,BlockHeight=Height/ystep。定义每个xstep*ystep 块内的中心坐标点为簇心,即种子坐标。各个
物理量的描述如下图所示:


320*160 分辨率的图像分割初始化为20*10 个大小为16*16 的簇

算法思路是对种子坐标为中心的2S*2S(或者3S*3S,S 表示簇尺寸)范围内所有像素,求这些像
素到种子坐标像素的距离度量因子dist,相邻簇之间的重叠区域像素按照距离最小的种子编号(BlockIndex)标记。
整幅图像扫描一遍之后,每个像素点都对应一个BlockIndex,相同BlockIndex 的像素属于同一个簇。接下来进入
迭代,对上一次划分的每一个簇,求出每一个簇的labxy 均值,作为新的簇心(种子),按照上述规则重新标记,
当迭代一定次数之后,分簇结果基本不发生改变即划分完成,迭代结束。
迭代部分算法描述如下:
for Iter = 0:iter
    初始化Width*Height 大小的距离度量因子矩阵。
        for BlockIndex=0:num //num = BlockWidth * BlockHeight
            对每个簇心周围2S*2S 范围内的像素分别与当前簇心五维向量求距离度量因子,并将此度量因子与初
            始值比较,若比初始值小,则更新当前的度量因子,并将当前处理像素标记更新为当前簇号 Label[i*Width+j] = BlockIndex; 
       end //根据上述更新的簇心标记Label矩阵计算新的簇心(种子坐标) 
       for Block = 0 :num 
           for i=0:Height-1 
               for j=0:Width-1 
                   对图像从头到尾扫描一遍,重新计算簇心坐标。根据上一步已经更新的标记。将同样标记的像素的labxy五维向量分别累加起来,                       然后根据各个标记的数量求出均值,便可以计算出新的总共num个簇心的五维向量。
               end 
           end 
       end
 end
    这便是原始算法的实现方法。上述实现方法精度高,问题在于每一轮迭代必须对整幅图像进行操作,遍历整幅图像对于实时视频处理来说,带宽太高,因此考虑将上述实现方法改为每次处理3*BlockWidth行的方式,可将带宽降低BlockHeight/3倍。

SLIC图像超像素分割算法解析相关推荐

  1. 论文解读:《自适应非局部随机游动用于图像超像素分割》

    论文解读:<Adaptive Nonlocal Random Walks for Image Superpixel Segmentation> 1.文章概述 2.背景 2.1 现有的超像素 ...

  2. python-opencv实现图像超像素分割(SLIC、SEEDS、LSC)

    转载自:苏格拉- PYTHON - OPENCV实现图像超像素分割(SLIC.SEEDS.LSC) 超像素 超像素是把一张图片中具有相似特征的像素进行聚类,形成一个更具有代表性的大"像素&q ...

  3. 超像素分割算法————综述

    参考:超像素-学习笔记 什么是超像素?评价标准?SLIC.SEED.ETPS算法 比较的指标:图像边界的粘附性.算法速度.存储效率.分割性能 超像素算法:将像素组合成感知有意义的原子区域( atomi ...

  4. 超像素分割算法matlab_像素不够,算法来凑。这个图像超分辨率项目帮你「拍」出高清照片...

    ​图像超分辨率是指由一幅低分辨率图像或图像序列恢复出高分辨率图像.图像超分辨率技术分为超分辨率复原和超分辨率重建.一位 Reddit 网友贴出了自己基于 Keras 的图像超分辨率项目,可以让照片放大 ...

  5. julia 调用python库_Julia调用Python实现超像素分割SLIC算法

    最近想要在julia中实现 Simple Linear Iterative Clustering (SLIC) 算法对图像进行超像素分割,关于SLIC超像素分割算法,请参考SLIC Superpixe ...

  6. 超像素分割(Slic算法)——个人梳理

    一.使用背景 我在进行乳腺癌图像识别的学校项目中,参考了山东大学的硕士论文,并希望加以简化复现,此论文会在文末附上.项目要求我们需要对乳腺癌图片进行分类(无肿瘤,良性肿瘤,恶性肿瘤),参照论文所说,我 ...

  7. SLIC超像素分割的算法介绍和源码分析

    前述 最近在看显著性检测,发现很多算法的基础是超像素分割,而正在看的Saliency Optimization from Robust Background Detection算法的预处理是SLIC算 ...

  8. 图像分割:Python的SLIC超像素分割

    图像分割:Python的SLIC超像素分割 1. 什么是超像素? 2. 为什么超像素在计算机视觉方面有重要的作用? 3. 简单线性迭代聚类(SLIC) 4. 效果图 5. 源码 参考 1. 什么是超像 ...

  9. 超像素经典算法SLIC的代码的深度优化和分析。

    现在这个社会发展的太快,到处都充斥着各种各样的资源,各种开源的平台,如github,codeproject,pudn等等,加上一些大型的官方的开源软件,基本上能找到各个类型的代码.很多初创业的老板可能 ...

最新文章

  1. HTTP缓存——304与200 from cache
  2. Linux下配置SSL (转)
  3. Kanzi常用操作3
  4. BigData之Spark:Spark计算引擎的简介、下载、经典案例之详细攻略
  5. python常用指令速查
  6. 【应急响应】没有痕迹该如何进行最优解
  7. java怎么学好 用好接口_Java公开课|Java的实现接口怎么用,这才是学习好Java必备的实用函数,你会吗...
  8. 【论文阅读】Deep Adversarial Subspace Clustering
  9. Mysql8.0安装+navicat for Mysql安装+navicat for Mysql。
  10. GDUFE ACM-1030
  11. 双线性插值算法实现和opencv、matlab结果不一致问题
  12. jprofiler_监控远程linux服务器的JVM进程(转 非常棒)
  13. is exists可以传数组查询吗_C++中数组类型的操作
  14. 原创 | 职场二十年(一)电话风波
  15. 单片机ADC分压电阻测量直流电压
  16. 服务器宕机是什么意思怎处理解决?
  17. Ubuntu Women:女娃玩电脑不输纯爷们!
  18. 大学生实习就业调研报告之二 - 共性问题与企业技术管理者探讨
  19. tensorflow实现卷积神经网络——经典网络(LeNet5、AlexNet、VGG-16、ResNet)
  20. Linux下常用压缩 解压命令和压缩比率对比

热门文章

  1. Slave I/O for channel ‘‘: error connecting to master ‘rep@master1:3306‘ - retry-time: 60 retries: 6
  2. VMWARE安装苹果虚拟机,能联网能加AppleID
  3. 初学者如何学好编程?
  4. 0x01-medium_socnet
  5. 是不是太胖了(C语言)
  6. etcdctl-管理操作etcd集群
  7. 个人开发者一分钟接入微信支付宝支付
  8. mac 不用虚拟机 租用云服务器,mac 不用虚拟机 租用云服务器
  9. FPGA Verilog HDL 系列实例--------顺序脉冲发生器
  10. Matplotlib绘制三维数据点与线