MATLAB显示slic,quickshift超像素分割结果图

Matlab 同时被 2 个专栏收录
18 篇文章 0 订阅
13 篇文章 0 订阅

首先介绍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);

 

  • 4
    点赞
  • 6
    评论
  • 23
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页

打赏

EVEcho

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值