刚开始用这个函数很困惑,为什么生成的不是superpixel

% im contains the input RGB image as a SINGLE array
regionSize = 10 ;
regularizer = 10 ;
segments = vl_slic(im, regionSize, regularizer) ;

按照教程使用后得到的是一个uint32的矩阵,相同的一个数的为一个superpixel

所以需要自己编程实现这个显示过程,参照  http://davidstutz.de/running-vlfeats-slic-superpixels-using-cmake-c/  这里提供的C 代码

我写了一个Matlab 版本的函数

方法一:

function [ o ] = segment_slic( IMG )
%UNTITLED3 Summary of this function goes here
%   Detailed explanation goes here
%IMG 为图片路径
%o 为输出图像
I =  vl_rgb2xyz(imread(IMG));
I_single = single(I);
segments = vl_slic(I_single, 30, 0.1) ;
[m n] = size(segments);
for i=1:mfor j = 1:nlabel = segments(i,j);labelTop = label;if i>1labelTop = segments(i-1,j);endlabelBottom = label;if i<m-1labelBottom = segments(i+1,j);endlabelLeft = label;if j > 1 labelLeft = segments(i,j - 1);endlabelRight = label;if j < n-1 labelRight = segments(i,j + 1);endif label ~= labelTop || label ~= labelBottom || label ~= labelLeft || label ~= labelRightI(i,j,1)=0;I(i,j,2)=0;I(i,j,3)=0;endendo = I;
endend

实现效果:

方法二:

参看例子发现有更简便的方法:

求的是梯度。。。确实是好想法

function [ o ] = segment_slic( IMG ,SIZE,RATE)
%UNTITLED3 Summary of this function goes here
%   Detailed explanation goes here
%IMG 为图片路径
%o 为输出图像I =  vl_rgb2xyz(imread(IMG));
II =  (imread(IMG));
im=II;I_single = single(I);
segments = vl_slic(I_single, SIZE, RATE) ;
[sx,sy]=vl_grad(double(segments), 'type', 'forward') ;s = find(sx | sy) ;imp = II ;imp([s s+numel(im(:,:,1)) s+2*numel(im(:,:,1))]) = 0 ;o = imp;end

vl_Feat---vl_slic的使用相关推荐

  1. matlab错误:vl_feat工具箱问题

    1.重新下载一份vl_feat 2.在命令窗中输入:run('you_own_path\vlfeat-0.9.20\toolbox\vl_setup.m'); 3.测试vl_feat工具箱是否配置成功 ...

  2. SIFT介绍与matlab+VL_feat实现

    目录 sift特征提取步骤 1.   建立高斯差分金字塔 2.关键点(keypoint)位置的确定 3. 去除不好的特征点(非极大值抑制) 一.下载VLFeat的binary包: 二.解压vlfeat ...

  3. SIFT算法用VL_feat库实现(matlab)

    sift算法是非常经典的特征提取算法,之后可以用于 对应特征匹配,从而进行图像拼接,求图像之间的转换矩阵,三维重建等工作.最近上课学习了这个算法,本打算能手敲源码,后来还是选择了调包,真香~ 毕竟前人 ...

  4. 为什么SLIC算法得到的超像素个数和预期的不一致

    为什么SLIC代码得到的超像素个数和预期的不一致 VL_Feat库中的SLIC代码由Andrea Vedaldi给出,Xu于2017年提出的带有部分改进的针对高光谱图像的SLIC算法,将欧氏距离改为S ...

  5. 运行iDT算法代码及后续特征编码

    DT&IDT算法应该算是行为识别领域中经典中的经典了,自从13年提出以来,在HMDB-51和UCF-101等若干个数据库上得到了非常好的效果,虽然DT&IDT算法做不过深度学习,但是由 ...

  6. 使用vl_sift提取图像特征

    1. 载入图像 >> I=imread('28.jpg'); >> image(I); 2. vl_sift函数的输入是一个单精度的灰度图像,灰度值区间归一化到[0, 255] ...

  7. matlab怎么提取特征,matlab – 了解提取特征的编码

    我关注的编码是fisher编码,因为我已经证明我的工作效果最好.所以我想在我提取的(SIFT)功能上测试Fisher编码,并测试系统的性能,无论是否编码. 而不是重新开始我发现vl_feat有一个用于 ...

  8. 用词袋(bag of word)实现场景识别

    前段时间在standford university的计算机视觉:算法与应用这门课上做了一个小作业--利用词袋实现场景识别(Scene recognition with bag of words),下面 ...

  9. Invalid MEX-file 'C:\Users\zs\Desktop\CSR-DCF\mex\mex_extractforeground.mexw64': 找不到指定模块

    在Windows平台下 在使用MATLAB编译c++源程序,生成相应的格式后,在调用的时候,有的时候会出现这样的错误:Invalid MEX-file 'C:\Users\zs\Desktop\CSR ...

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

    首先介绍vlfeat库函数:vl_slic,vl_quickshift,vl_quckseg vl_slic  SLIC superpixels segments = vl_slic(im,regio ...

最新文章

  1. server的自增主键返回函数 sql_mybatis+sqlserver中返回非自增主键
  2. Python 日常练习1
  3. 3.2 亿人都在刷抖音,而优秀的人在看这些公众号
  4. CSS3:FlexBox的详解
  5. Visual Studio 2017全面上市
  6. LeetCode 1348. 推文计数(哈希map+set)
  7. Python开发——安装requests第三方库
  8. concurrenthashmap是什么锁_JDK1.8 util-concurrent-ConcurrentHashMap源码分析
  9. 职高计算机应用项目教程教案,高职院校计算机应用基础教学设计
  10. OpenCV图像直方图案例
  11. Python卸载报错:No Python 3.8 installation was detected
  12. mysql字符集修改(ubuntu)
  13. python2线程池_python 线程池
  14. 使用ESP32 + HaaS Python打造运动心率检测系统 云上实时守护运动健康
  15. 最近整理的一些常见的面试题,面试大全,黑马程序员面试宝典题库---框架--篇
  16. max_allowed_packet Mysql 5.1遇到的信息包过大问题
  17. ESP8266 下载模式 GPIO 研究
  18. 123456123456#5#----com.zzj.DinosourKnown235---前拼show后广--恐龙百科-333333
  19. Kafka是如何实现高性能的?
  20. C语言实现QQ聊天室小项目 [完整源码]

热门文章

  1. 打印机驱动中如何生成证书及签名
  2. C#结合OpenGL绘图之Tao库
  3. python代码运行助手是什么业务_python代码运行助手怎么使用()
  4. 【收藏】计算机专业常用学习网站
  5. PSP课程(一): PSP简介
  6. 对Apple Watch的取证分析(续)
  7. 一个超级无聊的小程序也能赚钱?
  8. Linux基本操作命令(未完待续)
  9. 技术成长进阶、指数级提升方法 2021年计划表
  10. [原创]移植imx8QXP MEK开发板运行QNX700的方法