精华内容
下载资源
问答
  • MATLAB中在对图像超像素分割后如何提取超像素块,从而以超像素块为单位进行后继的操作?譬如超像素分割后以像素块为单位进行像素块的分类等等?超像素分割后以以像素块为单位进行分类等,如何提取出分类的像素块?
  • 超像素图像分割分割结果绘制程序; 分割程序可以改变; 输入为标记好的label map
  • matlab 超像素分割代码

    2017-09-24 21:20:18
    超像素分割代码 超像素概念是2003年Xiaofeng Ren提出和发展起来的图像分割技术,是指具有相似纹理、颜色、亮度等特征的相邻像素构成的有一定视觉意义的不规则像素块。它利用像素之间特征的相似性将像素分组,用少量的...
  • Python实现超像素分割 图像分割:Python的SLIC超像素分割 二、SLIC库的介绍 python 自带slic代码分析 一句代码 高层API python 使用SLIC 超像素分割 三、SLIC库的使用 SLIC超像素分割并保存分割得到的超像素块...
    展开全文
  • 在使用SLIC方法对图片进行超像素提取之后,如何将单一的超像素进行提取呢?我看了网上的一种方法,只是将目标像素之外的像素全部改为255进行了遮罩,提取到的单一超像素图片的像素值和yuan...
  • from skimage.segmentation import slic from skimage.segmentation import mark_boundaries from skimage.util import img_as_float import matplotlib.pyplot as plt import numpy as np import cv2 ...

     

    from skimage.segmentation import slic
    from skimage.segmentation import mark_boundaries
    from skimage.util import img_as_float
    import matplotlib.pyplot as plt
    import numpy as np
    import cv2
    
    # args
    args = {"image": './IMG_0944.jpg'}
    
    # load the image and apply SLIC and extract (approximately)
    # the supplied number of segments
    image = cv2.imread(args["image"])
    segments = slic(img_as_float(image), n_segments=25, sigma=5)
    
    # show the output of SLIC
    fig = plt.figure('Superpixels')
    ax = fig.add_subplot(1, 1, 1)
    ax.imshow(mark_boundaries(img_as_float(cv2.cvtColor(image, cv2.COLOR_BGR2RGB)), segments))
    plt.axis("off")
    plt.show()
    print("segments:\n", segments)
    print("np.unique(segments):", np.unique(segments))
    # loop over the unique segment values
    for (i, segVal) in enumerate(np.unique(segments)):
        # construct a mask for the segment
        print("[x] inspecting segment {}, for {}".format(i, segVal))
        mask = np.zeros(image.shape[:2], dtype="uint8")
        mask[segments == segVal] = 255
    
        # show the masked region
        cv2.imshow("Mask", mask)
        cv2.imshow("Applied", np.multiply(image, cv2.cvtColor(mask, cv2.COLOR_GRAY2BGR) > 0))
        cv2.waitKey(0)

        

    展开全文
  • 今天我们想实现的功能是对单个目标图片的提取如图所示: 图片读取 ###############头文件 import matplotlib.pyplot as plt import os import cv2 import numpy as np from PIL import Image #from skimage ...
  • 利用SURF算法高速有效地提取出特征点进行匹配,并且利用三角剖分的方法对稳定特征点作进一步处理,以此匹配作为先验知识来减少其余各点的匹配误差和搜索空间,同时又加入了SLIC超像素分割算法的限制因素进一步提高...
  • 首先利用SLIC对图像进行超像素分割处理,把原图像分割成大小相似、形状规则的超像素,以超像素中心点的五维特征值作为原始数据点进行聚类,确定多体素数目和分割边界。SLIC具有以下优势:1)生成的超像素如同细胞...
  • Make3DFeature将图像分割超像素,并提取每个超像素块的Make3D特征-----------------------------Function 1: CLMake3DFeature.m-----------------------------一. 功能描述将图像分割超像素,并提取每个超像素块...

    Make3DFeature

    将图像分割成超像素,并提取每个超像素块的Make3D特征

    -----------------------------Function 1: CLMake3DFeature.m-----------------------------

    一. 功能描述

    将图像分割成超像素,并提取每个超像素块的Make3D特征

    二. 文件位置

    1.CLMake3DFeature.m

    ..\make3d\LearningCode\Debug\CLMake3DFeature.m

    输入图片(.jpg)及其标注信息(.txt)的位置

    ..\make3d\LightImages

    三. 使用说明

    step1. 将文件夹修改为:..\make3d\LearningCode

    step2. 初始化路径

    在命令行窗口中输入:InitialPath(true)

    step3. 输入:CLMake3DFeature('../outputTest/test.jpg','../OutputTest/')

    四. 输出特征文件

    位置

    ..\make3d\OutputTest

    文件说明

    (1)每张图片对应一个.txt文件,文件名与图片名相同

    (2)第1列:超像素的索引序号

    第2列:0或1,0表示该超像素不是光源,1表示是光源

    第3-4列:超像素的中心坐标(y,x)

    第5-end列:

    分成5个部分(超像素+四邻域):该超像素,左边的超像素,上,右,下

    每部分有68列,1722=68,其中,17是滤波器输出;第一个2是k取2和4的情况;第二个2是两种尺度(100%,50%)

    五. 操作系统

    win10 64bit,MATLAB2015b

    展开全文
  • Python实现超像素分割

    千次阅读 多人点赞 2019-06-06 15:25:19
    目录一、什么是超像素?二、超像素具有哪些特点?三、Simple Linear Iterative Clustering (SLIC)算法实现步骤四、SLIC算法...  超像素概念是2003年Xiaofeng Ren提出和发展起来的图像分割技术,它是指具有相似纹理...

    一、什么是超像素?

      超像素概念是2003年Xiaofeng Ren提出和发展起来的图像分割技术,它是指具有相似纹理、颜色、亮度等特征的相邻像素构成的有一定视觉意义的不规则像素块。它利用像素之间特征的相似性将像素分组,用少量的超像素代替大量的像素来表达图片特征,很大程度上降低了图像后处理的复杂度,所以通常作为分割算法的预处理步骤。该技术已经被广泛的应用到图像分割、姿势估计、目标跟踪、目标识别等多个计算机视觉任务等。下图展示了几种不同的超像素分割算法的分割结果。
    在这里插入图片描述

    二、超像素具有哪些特点?

    • 计算效率比较高。 虽然计算实际的超像素组可能很昂贵,但它允许我们将图像本身的复杂性从几十万像素降低到几百像素。这些超级像素中的每一个都将包含某种感知的、理想的语义值。
    • 含有更多的感知信息。 单个的像素网格其实并没有太大的感知意义,而超像素组中的像素具有共性,例如相似的颜色或纹理分布。下图展示了这种情况,单单将图中箭头所指的图像像素网格进行放大后并不能得到什么感知信息。
      在这里插入图片描述
    • 过度分割可以减少像素损失。 大多数的超像素算法都会使图像失真。这意味着图像中的大部分重要边界都被找到了;但是它的代价是生成许多无关紧要的边界。虽然这听起来像是使用超级像素的问题,但实际上它会带来优点,这种过度扩张的最终结果是-从像素网格到超级像素映射的像素损失非常小。
    • **超像素上表示图形更加高效。**在50000 x 50000像素的网格上构建一个图形,其中每个像素表示图形中的一个节点,这将会导致非常大的表示量。但是,假设我们将超像素应用到像素网格空间,留下(任意)200个超像素块。在这种表示中,在200个超级像素上构建一个图实际上更加有效。

    三、Simple Linear Iterative Clustering (SLIC)算法实现步骤

    • 步骤1-初始化种子点(聚类中心):按照设定的超像素组个数,在图像内均匀的分配一些种子点。假设图片总共有含有N 个像素点,预分割为 K 个相同尺寸的超像素,那么每个超像素的大小为N/ K ,则相邻种子点的距离或者步长近似可以表示为S=sqrt(N/K)。
    • 步骤2-在种子点的n*n邻域内重新选择种子点(一般取n=3)。首先计算该邻域内所有像素点的梯度值;然后将种子点移到该邻域内梯度最小的地方。这样做的目的是为了避免种子点落在梯度较大的轮廓边界上,以免影响后续聚类效果。
    • 步骤3-在每个种子点周围的邻域内为每个像素点分配类标签(即属于哪个聚类中心)。和标准的k-means在整张图中搜索不同,SLIC的搜索范围限制为2S2S,可以加速算法收敛,具体的区别如下图所示。需要注意的是,期望的超像素尺寸为SS,但是搜索的范围是2S*2S。
      在这里插入图片描述
    • 步骤4-距离度量。具体包括颜色和空间距离。对于每个搜索到的像素点,分别计算它到该种子点之间的距离。具体的距离公式如下所示:
      在这里插入图片描述

    四、SLIC算法代码实现

    # coding=utf-8
    # 导入相应的python包
    import argparse
    from skimage import io
    import matplotlib.pyplot as plt
    from skimage.segmentation import slic
    from skimage.util import img_as_float
    from skimage.segmentation import mark_boundaries
    
    # 设置并解析参数
    ap = argparse.ArgumentParser()
    ap.add_argument("-i", "--image", required = True, help = "Path to the image")
    args = vars(ap.parse_args())
    
    # 读取图片并将其转化为浮点型
    image = img_as_float(io.imread(args["image"]))
    
    # 循环设置不同的超像素组
    for numSegments in (100, 200, 300):
    	# 应用slic算法并获取分割结果
    	segments = slic(image, n_segments = numSegments, sigma = 5)
    
    	# 绘制结果
    	fig = plt.figure("Superpixels -- %d segments" % (numSegments))
    	ax = fig.add_subplot(1, 1, 1)
    	ax.imshow(mark_boundaries(image, segments))
    	plt.axis("off")
    
    # 显示结果
    plt.show()
    

    五、效果展示和分析

    在这里插入图片描述
      上图展示了SLIC超像素分割算法的分割结果。上图展示了两个测试图片的效果,第1行表示的是原始的输入图片;第2行表示的是设置了100个超像素组的分割结果;第2行表示的是设置了200个超像素组的分割结果;第3行表示的是设置了300个像素的分割结果。通过上面的结果我们可以获得一些信息,即通过超像素分割我们可以将整个图像划分为含有固定个超像素组的感知块,具体如图中的黄色块所示。

    六、基于超像素的边缘检测代码

    %% Clean up
    clear all
    close all
    clc
    
    %Generate image
    img = imread('test.jpg');
    img = double(rgb2gray(img));
    
    %Invert circle brightness
    img = abs(img-1);
    
    %Blur original image with Gaussian kernel with a blur width (standard
    %deviaion) of 0.9 pixels
    BlurGaussian = 0.9;
    G = fspecial('Gaussian',5,BlurGaussian);
    img = imfilter(img,G,'replicate');
    
    %Blurring occurs from quantization and from Gaussian
    BlurQuantization = 1/sqrt(12);
    BlurWidth = sqrt( BlurQuantization^2 + BlurGaussian^2);
    
    %% Create mask
    %Only consider edges on columns 35-50
    M = true(size(img));
    
    %% Perform edge localization
    %Get pixel-level edges with Sobel operator
    [E] = edge(img,'sobel');
    
    %Refine to subpixel accuracy
    edges = SubpixelEdge(img,E,BlurWidth,M);
    
    
    %% Plot results
    %Show image
    figure(1);
    imshow(uint8(img)),hold on, axis on;
    plot(edges.u,edges.v,'co')
    
    figure(2);
    imshow(uint8(M)),hold on, axis on;
    plot(edges.u,edges.v,'co')
    
    % p1 = [edges.u(1), edges.v(1), 0]; 
    % p2 = [edges.u(100), edges.v(100), 0];
    % p3 = [edges.u(500), edges.v(500), 0]; 
    % p = CircleCenter(p1, p2, p3);
    % 
    % disp('当前圆的半径为%d', p);
    
    x=edges.u;
    y=edges.v;
    [R,x0,y0]=circ(x,y,edges.NumPts-1);
    disp(['第一个圆的半径是: ' num2str(R),' mm' ]);
    disp(['第一个圆的圆心坐标:( ' num2str(x0) ,',',num2str(y0),')']);
    plot(x0, y0, 'gx');
    

    七、基于超像素的边缘检测效果展示与分析

    在这里插入图片描述
      上图展示了超像素边缘检测的结果。第1行表示的是原始的输入图像;第2行表示的是超像素检测的结果,蓝色表示超像素块,整个结果是叠加在原始图像上面的,我们可以发现超像素可以准确的检测出齿轮的边缘信息,包括它的内环和外环信息;第3行含表示的是单纯的超像素检测结果,整个结果叠加在一个全黑的图像中,中心的绿色的x表示整个圆环的中心点,上述的代码可以计算出圆环的中心和半径值,这在机器视觉领域中具有较多的应用。

    八、思维扩展

      对于图中的齿轮而言,我们一般会对该齿轮的外半径、内半径、模数和齿数目比较感兴趣。那么如何通过算法来获取到这些参数,聪明的你肯定能想出一些比较好的方案。

    参考资料

    [1] 参考资料

    注意事项

    [1] 该博客是本人原创博客,如果您对该博客感兴趣,想要转载该博客,请与我联系(qq邮箱:1575262785@qq.com),我会在第一时间回复大家,谢谢大家的关注.
    [2] 由于个人能力有限,该博客可能存在很多的问题,希望大家能够提出改进意见。
    [3] 如果您在阅读本博客时遇到不理解的地方,希望您可以联系我,我会及时的回复您,和您交流想法和意见,谢谢。
    [4] 本文测试的图片可以通过该链接进行下载。网盘链接- 提取码:hd2x。
    [5] 本人业余时间承接各种本科毕设设计和各种小项目,包括图像处理(数据挖掘、机器学习、深度学习等)、matlab仿真、python算法及仿真等,有需要的请加QQ:1575262785详聊!!!

    展开全文
  • 将SLIC作者的源码中主要算法部分的代码提取出来,并用opencv输出处理图像,方便后续的程序的处理。
  • 之前做SLIC分割的过程中在网上找到的代码都只能得到标注分割线的图但不能得到分割后超像素块,所以写了一个能够保存分割后超像素块的python程序。 进行SLIC分割部分: import skimage from skimage....
  • 写完这篇,图像分割的传统方法就快全了,传统图像分割大体有基于阈值的,这类就没啥算法可以写,所以直接略过了;...最后就是超像素分割了,超像素分割有k-means算法的影子,所以可以先看看k-means算法的代码实现过程.
  • 图像分割——超像素(Superpixels)分割(Matlab)

    千次阅读 多人点赞 2019-10-23 15:57:23
    原图与分割结果 主程序: clc; clear all;...%用Superpixels算法对图像进行分割 I=imread('D:\Gray Files...%提取各颜色分量 B = double(I(:,:,3)); G = double(I(:,:,2)); R = double(I(:,:,1)); %种子点数量 nu...
  • 这是一个基于超像素分割的服饰提取算法研究与实现
  • 本文介绍了一种基于图论的超像素分割及其合并算法,主要在检测图像的边界,图的分割准则,超像素区域特征的提取,度量超像素区域间的相似性这几个方面进行了研究. 首先,针对图像的边界检测这一问题,本文对最...
  • 内含训练样本,分类数据和一整套matlab代码,可直接运行,作者是参考 Spectral-Spatial Hyperspectral Image Classification Using Superpixel and Extreme Learning Machines文章自行编写的,效果良好。
  • SLIC 超像素分割详解(三):应用

    万次阅读 2015-05-13 10:46:36
    看过上面的介绍,我们应该思考一下:分割好的超像素有什么用?怎么用?用到哪里? 首先,超像素可以用来做跟踪,可以参考卢湖川课题组发表在IEEE TIP上的《Robust superpixeltracking》;其次,可以做标签分类,...
  • SILC算法详解一、原理介绍SLIC算法是simple linear iterative cluster的简称,该算法用来生成超像素(superpixel)算法步骤:已知一副图像大小M*N,可以从RGB空间转换为LAB空间,LAB颜色空间表现的颜色更全面假如预定义...
  • 在这项工作中,我们评估了超像素池化层在深层网络结构中用于语义分割的应用。超像素池化是一种灵活有效的方法,可以替代其他包含空z间先验信息的池策略。我们提出了一个简单而高效的gpu层实现,并探讨了几种将该层...
  • 可促进人员定位、跟踪、安全帽佩戴检测等相关技术的研究,为此,提出一种基于超像素特征提取与支持向量机(Support Vector Machines,SVM)分类的矿井人员安全帽分割方法。首先,采用简单线性迭代聚类(Simple Linear ...
  • 超像素分割有什么用处?超像素可以用来做跟踪;可以做标签分类;视频前景分割,因为相比像素,超像素处理速度会快几十倍、几百倍甚至更高;超像素还可以用于骨架提取、人体姿态估计、医学图像分割等方面。 Python...
  • 针对现有活体皮肤检测方法精度不高、实时性较差的问题,提出一种基于超像素分割的成像式光电容积描记(IPPG)活体皮肤检测(SPASD)算法。利用零参数简单线性迭代聚类算法将图像分割为多个超像素子块;然后通过IPPG技术...
  • 关于超像素分割和密度聚类(CFSFDP)的学习
  • 超像素分割与超像素合并/区域合并/多尺度分割

    万次阅读 多人点赞 2014-05-14 11:19:40
    最近两年,超像素分割
  • Mean-shift超像素分割

    千次阅读 2017-08-16 21:17:43
    Mean-shift超像素分割 超像素概念:超像素是指具有相似纹理、颜色、亮度等特征的相邻像素构成的图像块。是通过图像分割获取的小区域,但是超像素中往往存在过分割。 现有的超像素分割方法: l 基于图论的超像素分割...
  • 简单,可运行,代码只有几行,直接调用函数,图片都有。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,235
精华内容 3,694
关键字:

超像素分割后的提取