首先介绍vlfeat库函数:vl_slic,vl_quickshift,vl_quckseg

vl_slic  SLIC superpixels

  • segments = vl_slic(im,regionsize,regularizer)
  • segments:每个像素值是超像素标号
  • regionsize:超像素的起始大小
  • regularizer:用于聚类时控制超像素呈现的空间规则性,值越大超像素块越规则
  • im:需要转为single类型

vl_quickshift  Quick shift image segmentation

  • [map,gaps] = vl_quickshift(im, kernelsize, maxdist)
  • [map, gaps] = vl_quickshift(I, kernelsize)
  • [map, gaps,e] = vl_quickshift(I, kernelsize, maxdist)
  • kernelsize:估计density的Parzen window的bandwidth
  • maxdist:控制所连接邻域的最大L2距离
  • map和gaps代表结果forest的trees:map每个像素表示forest的parent元素,gaps包含对应的分支长度

vl_quickseg  Produce a quickshift segmentation of a grayscale or color image

  • vl_quickseg要调用vl_quickshift
  • [iseg, labels, maps, gaps, e] = vl_quickseg (im, ratio, kernelsize, maxdist)
  • iseg:color image。每个像素被其区域平均color标记
  • labels:labeled image。标号为类别号
  • maps:pointer。指向最近的增大其density估计值的像素
  • gaps:distance。距最近的增大其density估计值的像素的距离
  • e:density的估计值
  • im:需要转换为double类型
  • kernelsize:标准差
  • maxdist:tree nodes之间的最大距离。用于cut links in the tree to 构成分割结果
  • ratio:空间一致性和颜色一致性之间的比率。ratio越小空间比重越大,空间距离在归一化之前计算。类似vl_slic参数regularizer,不过ratio越小超像素块越规则

对于vl_slic得到的segments或者labels,可以有以下两种方式显示超像素分割结果

1、以颜色标记形式显示:imagesc();

imagesc(SEGMENTS);  %Scale data and display image object
axis equal off tight; %关闭坐标
colormap gray;  %以灰度图形式显示

2、显示超像素边界:vl_grad()求梯度,“|”逻辑或——找边界

[sx,sy]=vl_grad(double(SEGMENTS), 'type', 'forward') ; %求梯度
s = find(sx | sy) ;  % or - Find logical OR
imp = im ;
imp([s s+numel(im(:,:,1)) s+2*numel(im(:,:,1))]) = 255 ;  %边界置为白色
imshow(imp);

颜色形式。边界形式。

%完整代码
im=imread('CASE1.bmp');
REGIONSIZE=25;
REGULARIZER=0.05;
[m,n,c]=size(im);
if(c==1)im=cat(3,im,im,im);
end
I =  vl_rgb2xyz(im);
I_single = single(I);
SEGMENTS = vl_slic(I_single, REGIONSIZE, REGULARIZER);
imagesc(SEGMENTS);
axis equal off tight;
colormap gray;
[sx,sy]=vl_grad(double(SEGMENTS), 'type', 'forward') ;
s = find(sx | sy) ;
imp = im ;
imp([s s+numel(im(:,:,1)) s+2*numel(im(:,:,1))]) = 255 ;
figure;imshow(imp);

MATLAB显示slic,quickshift超像素分割结果图相关推荐

  1. SLIC图像超像素分割算法解析

    转载自http://blog.chinaunix.net/uid-29431466-id-4831314.html 1 概述 SLIC 即simple linear iterative cluster ...

  2. VLFeat SLIC超像素分割(Cpp版)

    这段时间对VLFeat的C接口非常的感兴趣,以前用的都是其Matlab接口,虽然很方便,而且提供的Matlab接口要比C接口功能更强大,但Matlab终归只能用来做一下快速的方法验证,所以想比较完整的 ...

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

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

  4. SLIC超像素分割详解

    SLIC超像素分割详解(一) 超像素概念是2003年Xiaofeng Ren提出和发展起来的图像分割技术,是指具有相似纹理.颜色.亮度等特征的相邻像素构成的有一定视觉意义的不规则像素块.它利用像素之间 ...

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

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

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

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

  7. SLIC超像素分割方法

    为了方便查找,记录SLIC超像素分割方法的介绍 简介 关键代码分析 应用

  8. SLIC 超像素分割详解(三):应用

    看过上面的介绍后,我们应该思考一下:分割好的超像素有什么用?怎么用?用到哪里? 首先,超像素可以用来做跟踪,可以参考卢湖川课题组发表在IEEE TIP上的<Robust superpixeltr ...

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

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

最新文章

  1. ETSI MEC — 参考架构模型
  2. Docker容器安装配置
  3. 关于火狐中ashx中输出javascript一闪而过的问题
  4. 广义相对论与量子力学的矛盾
  5. libsvm使用方法总结
  6. 逆向工程核心原理学习笔记(二):字符串检索法查找main函数
  7. 使用Css截取字符串
  8. mysql 左连接b表的一条数据_阿里java架构师教你怎么用mysql怒怼面试官
  9. php mvc urlencode,PHP – LIUGUOFENG
  10. nginx访问页面 中文乱码 解决方案
  11. 知道端口号如何查看应用位置
  12. SAS 146GB*8 RAID5数据恢复过程(HP 双循环)
  13. 第一节:分布式文件系统(DFS,Distributed File System)
  14. 华尔街为何热捧优酷网?
  15. git整理——廖雪峰教程笔记
  16. 万恶淫为首,你想知道的真相!
  17. java fop_java – 未找到类FOP
  18. ANSYS WORKBENCH基础学习之应力奇异及位移结果对比
  19. bilibili源代码泄露,go-common
  20. python文件写入后,但文件还是空白

热门文章

  1. Walle多渠道打包
  2. 常用工具网址(去重,排序,转换)
  3. 解决CUDA out of memory. Tried to allocate 2.10 GiB (GPU 0; 14.76 GiB total capac
  4. 怎么用xmind做读书笔记
  5. 项目07城市餐饮店铺选址分析
  6. 京东商品及评论 数据采集
  7. 2022年中国航天发射列表(全年64发)
  8. 从安格视,安维到安尼
  9. 伴随我们长大的经典—写给从80后的一批人
  10. android 导航安全密码,您导航的v5.3.8 Android版本