精华内容
下载资源
问答
  • 对比了多种超像素算法的边缘召回率、欠分割错误率和紧凑度等评价指标,分析了各自的优势和不足。当前的超像素方法在精度和效率上都有较大的提高,应用领域不断增加,但仍难以满足特殊应用领域的超像素性能要求,需要...
  • SNIC超像素分割算法

    2019-10-11 21:50:52
    超像素分割为图像分割,图像处理的基础,文件为MATLAB和C混编的代码,demo为主程序,运行demo主程序进行超像素分割
  • 针对暗通道先验去雾算法中透射率估值不准确以及天空区域或大面积白色区域去雾后存在颜色失真等问题,提出了一种基于超像素分割和暗亮通道结合的单幅图像去雾方法。首先采用超像素方法对有雾图像进行分割,将得到的超...
  • 针对目前立体匹配中存在的匹配精度和匹配速度很难兼顾的问题,提出了一种基于稳定特征点和SLIC超像素分割算法的快速立体匹配。利用SURF算法高速有效地提取出特征点进行匹配,并且利用三角剖分的方法对稳定特征点作...
  • 超像素分割综述

    2019-01-25 10:40:21
    超像素分割文献综述。。
  • matlab 超像素分割代码

    2017-09-24 21:20:18
    超像素分割代码 超像素概念是2003年Xiaofeng Ren提出和发展起来的图像分割技术,是指具有相似纹理、颜色、亮度等特征的相邻像素构成的有一定视觉意义的不规则像素块。它利用像素之间特征的相似性将像素分组,用少量的...
  • 基于分水岭的超像素分割方法,效率给常高,分割效果也非常不错,适合超像素分割算法的朋友们学习。
  • SLIC的matlab代码,可以更改自己的图片位置,生成结果,可以直接运行使用
  • 超像素分割matlab代码

    2019-02-27 16:38:59
    文件中包括代码,测试图片,以及代码使用的详细方法。
  • 超像素图像分割分割结果绘制程序; 分割程序可以改变; 输入为标记好的label map
  • 线性光谱聚类(LSC)的超像素分割算法,该算法可以生成具有低计算成本的紧凑且均匀的超像素。基本上,基于测量图像像素之间的颜色相似性和空间接近度的相似性度量,采用超像素分割的归一化切割公式。然而,代替使用...
  • 亲测可用的SRM分割算法,可用于图像分割(超像素分割
  • 本代码是论文: Liu M Y, Tuzel O, Ramalingam S, et al. Entropy rate superpixel segmentation[C]// Computer Vision and Pattern Recognition. IEEE, 2011:2097-2104. 的实现代码,网络上的原始链接均已失效,分享...
  • 没有考虑纹理特征,当分割具有繁杂纹理的自然图像时,其分割的超像素无法精准地符合区域或目标的边界或外轮廓,因此提出基于SLIC0融合纹理信息的超像素分割算法——SLIC0-t。首先利用光谱分析描述图像中区域的纹理特性,...
  • slic超像素分割,用于实现slic的算法研究
  • CVPR2013发表的一篇论文超像素分割[亲测],学习图像分割的可以参看一下
  • SLIC超像素分割算法的C++代码,代码来源于该算法创始人Radhakrishna Achanta网站,这里我们给出了对应的OpenCV Mat接口,代码在VS2012和OpenCV2.4.9版本下测试验证可行,其中附上SLIC的相关说明。
  • 基于熵率的超像素分割代码
  • SLIC超像素分割代码

    2018-05-12 14:45:36
    源代码为C代码、需编译成MATLAB可执行文件后使用。经本人使用验证有效。。有问题的可以私信。。该代码确定可以实现相应的功能。。
  • SLIC: simple linear ... 这是一个基于聚类算法的超像素分割,由LAB空间以及x、y像素坐标共5维空间来计算。不仅可以分割彩色图,也可以兼容分割灰度图,它还有一个优点就是可以人为的设置需要分割的超像素的数量。
  • 将SLIC作者的源码中主要算法部分的代码提取出来,并用opencv输出处理图像,方便后续的程序的处理。
  • slic超像素分割,用于实现slic的算法研究
  • 超像素分割算法,亲测可用,内含数据图片,不用mex,直接matlab运行
  • 对图像进行区域分割,把图像分割成一个个区域,并进行区域合并
  • SLIC超像素分割

    2017-02-10 11:01:17
    SLIC是常用的影像分割算法,利用该算法可以将高分辨率遥感影像进行分割,形成特征类似的同质性区域,提高了后续处理的效率,是影像预处理的重要步骤
  • SLIC(简单线性迭代聚类)超像素分割算法
  • 超像素经典的算法SLIC就属于上述1%的一员,他有论文的介绍原理性的东西,有数学公式的推导,有和其他算法的比较数据,更重要的是他还有和论文完全对应的参考代码,而且有C++、matlab以及GPU版本,可以说是非常有良心...
  • 使用简单线性迭代聚类(SLIC)算法对遥感影像进行超像素分割时,存在运行时间长与边缘贴合度差的问题,因此,提出了一种基于改进SLIC的遥感图像超像素分割算法。首先,改进了初始种子点的初始化方式,消除了随机分配造成的...
  • 最小势垒超像素分割

    2021-03-06 00:35:39
    超像素已成为许多计算机视觉系统中必不可少的处理单元,图像的超像素分割是最重要的步骤之一。 本文提出了一种有效的超像素分割算法。 我们为超像素分割(MBS)引入了一种新的紧凑型感知最小障碍距离,并为层次结构...
  • 写完这篇,图像分割的传统方法就快全了,传统图像分割大体有基于阈值的,这类就没啥算法可以写,所以直接略过了;...最后就是超像素分割了,超像素分割有k-means算法的影子,所以可以先看看k-means算法的代码实现过程.

    在这里插入图片描述

    写完这篇,图像分割的传统方法就快全了,传统图像分割大体有基于阈值的,这类就没啥算法可以写,所以直接略过了;然后就是K-means这种聚类/分裂的,从几个点开始进行聚类分割,或者一张图不断分裂达到分割目的;

    【手撕算法】K-means算法实现主题色提取

    再有就是区域生长这类的;

    【手撕算法】基于队列实现的区域增长分割算法

    以及分水岭算法,分水岭算法代码写好有一段时间了,但实在不知道文章咋写…就再放放吧;最后就是超像素分割了,超像素分割有k-means算法的影子,所以可以先看看k-means算法的代码实现过程。

    1,算法原理

    1. 初始化种子点(聚类中心):按照设定的超像素个数,在图像内均匀的分配种子点。假设图片总共有 N 个像素点,预分割为 K 个相同尺寸的超像素,那么每个超像素的大小为N/ K ,则相邻种子点的距离(步长)近似为S=sqrt(N/K)。

    2. 在种子点的n*n邻域内重新选择种子点(一般取n=3)。具体方法为:计算该邻域内所有像素点的梯度值,将种子点移到该邻域内梯度最小的地方。这样做的目的是为了避免种子点落在梯度较大的轮廓边界上,以免影响后续聚类效果。

    3. 在每个种子点周围的邻域内为每个像素点分配类标签(即属于哪个聚类中心)。和标准的k-means在整张图中搜索不同,SLIC的搜索范围限制为2S2S,可以加速算法收敛,如下图。在此注意一点:期望的超像素尺寸为SS,但是搜索的范围是2S*2S。

      图片

    4. 距离度量。包括颜色距离和空间距离。对于每个搜索到的像素点,分别计算它和该种子点的距离。距离计算方法如下:

      图片

      其中,dc代表颜色距离,ds代表空间距离,Ns是类内最大空间距离,定义为Ns=S=sqrt(N/K),适用于每个聚类。最大的颜色距离Nc既随图片不同而不同,也随聚类不同而不同,所以我们取一个固定常数m(取值范围[1,40],一般取10)代替。最终的距离度量D’如下:

      图片

      由于每个像素点都会被多个种子点搜索到,所以每个像素点都会有一个与周围种子点的距离,取最小值对应的种子点作为该像素点的聚类中心。

    5. 迭代优化。理论上上述步骤不断迭代直到误差收敛(可以理解为每个像素点聚类中心不再发生变化为止),实践发现10次迭代对绝大部分图片都可以得到较理想效果,所以一般迭代次数取10。

    6. 增强连通性。经过上述迭代优化可能出现以下瑕疵:出现多连通情况、超像素尺寸过小,单个超像素被切割成多个不连续超像素等,这些情况可以通过增强连通性解决。主要思路是:新建一张标记表,表内元素均为-1,按照“Z”型走向(从左到右,从上到下顺序)将不连续的超像素、尺寸过小超像素重新分配给邻近的超像素,遍历过的像素点分配给相应的标签,直到所有点遍历完毕为止。

    2,伪算法描述

    图片

    图片

    3,程序介绍

    程序声明了一个SLIC算法类,类的具体程序太长了,就不贴了,大家可以去qq群【222954293】下载程序自己看,都注释好了。

    就看一下主程序吧:

    int main()
    {
      【1】读取原图并显示
      Mat image = imread("千矢.png",33);
      if (image.empty())
      {
        printf_s("图片读取失败");
        return -1;
      }
      imshow("原图", image);
      【2】转换为LAB颜色空间  方便计算距离
      Mat lab_image = image.clone();
      cvtColor(image, lab_image, COLOR_BGR2Lab);
    
      //定义超像素数以及权重
      int w = image.cols, h = image.rows;
      int nr_superpixels = 300;//超像素数
      int nc = 40;//权重m
      double step = sqrt((w * h) / (double)nr_superpixels);
      【3】执行SLIC超像素算法
      SLIC slic;
      slic.generate_superpixels(&lab_image, step, nc);
      slic.create_connectivity(&lab_image);
    
      【4】显示分割轮廓和分割结果图
      //该三个函数可以分别注释单独显示查看
      slic.colour_with_cluster_means(&image);//颜色均值填充
      slic.display_contours(&image, Scalar(0, 0, 255));//显示轮廓
      //slic.display_center_grid(&image, Scalar(255, 0, 0));//显示中心点
      imshow("result", image);
      waitKey(0);
    }
    

    一共是四个步骤。其中步骤【2】中需要自己定义两个变量nr_superpixels和nc。

    • nr_superpixels为超像素个数,你可以根据图像大小自己定义,如果图像x方向10个超像素块,y方向30个超像素块,那就是300。
    • 权重变量nc,即上文【算法原理】第4步中的固定常数m,一般取1-40范围内的整数。

    3,效果展示

    在这里插入图片描述
    在这里插入图片描述

    4,THE END

    本文原创内容有限,就是整合了一下自己看的超像素分割的博客,两篇不错的链接放这儿了:

    https://blog.csdn.net/zhj_matlab/article/details/52986700
    https://blog.csdn.net/qq_26129959/article/details/90760028
    

    代码放qq群【222954293】了,今天就到这里啦。

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,017
精华内容 6,806
关键字:

超像素分割