精华内容
下载资源
问答
  • 高斯金字塔

    2016-04-19 09:21:12
    高斯金字塔

    高斯金字塔可以作为 图像特征提取 的预处理步骤

    —————————————————————————————————————————————————————————————————————————————
    这里写图片描述
    过程: 假设输入图像为 Input_Img;大小为 256*256

    ① 先对 Input_Img 进行高斯滤波,然后下采样,得到 Gauss_Img1;这时 Gauss_Img1 大小为 128*128;
    
            ② 对 Gauss_Img1 进行高斯滤波, 然后下采样, 得到 Gauss_Img2;这时 Gauss_Img2 大小为 64*64;
    
            ③ 对 Gauss_Img2 进行高斯滤波, 然后下采样, 得到 Gauss_Img3;这时 Gauss_Img3 大小为 32*32;
    
            依次进行下去…………
    

    最简单的matlab代码:

    img1=imread(‘test.jpg’);
    [m,n]=size(img1);
    w=fspecial(‘gaussian’,[3 3]);
    img2=imresize(imfilter(img1,w),[m/2 n/2]);
    img3=imresize(imfilter(img2,w),[m/4 n/4]);
    img4=imresize(imfilter(img3,w),[m/8 n/8]);
    img5=imresize(imfilter(img4,w),[m/16 n/16]);
    imshow(img1);
    figure,imshow(img2);
    figure,imshow(img3);
    figure,imshow(img4);
    figure,imshow(img5);
    注意:这里高斯滤波器用的是3*3大小,而sigma默认为0.5;可以相应调整滤波器大小和sigma的值,获得的效果也不尽相同;

    —————————————————————————————————————————————————————————————————————————————

    这里面有关于高斯滤波器的生成函数,如下:

    function r=GuassionMatrix(delta,radius)
    radius=ceil(radius);
    n=2*radius+1;
    r=zeros(n,n);
    %tempMatrix=zeros(radius,radius);
    for i=-radius:radius
    for j=-radius:radius
    r(i+radius+1,j+radius+1)=exp(-(i^2+j^2)/2*delta^2);
    end
    end;
    r=round(100*r);
    r=r/sum(sum(r));
    当然,用matlab自带的函数也可以

    w=fspecial(‘gaussian’,[n n], sigma );


    还有另外的说法(转自http://blog.sina.com.cn/s/blog_68f909c30100r0g1.html

    高斯金字塔(Gaussian Pyramid):高斯金字塔 里有两个概念:组(Octave)和层(Level或Interval),每组里有若干层。

    高斯金字塔的构造是这样的:
    (1)第一组的第一层为原图像,然后将图像做一次高斯平滑(高斯卷积、高斯模糊)高斯平滑里有一个参数 σ ,在SIFT里作者取1.6 ;
    (2)将σ乘一个比例系数k作为新的平滑因子来平滑第一组第二层得到第三层。
    (3)重复若干次,得到L层他们分别对应的平滑参数为:0,σ,kσ,k2σ….。
    (4)将最后一幅图像做比例因子为 2 的降采样得到第二组的第一层,然后对第二组的第一层做参数是 σ 的高斯平滑,对第二层做 kσ 的平滑得到第三层…..这里一定注意:每组对应的平滑因子是一样的。而不是像有的资料上说的持续递增。
    这样反复形成了O组L层。一般模糊的高斯模板长宽都约为6σ(这里σ为当次的平滑因子,就是可能是kσ,k2σ..)

    具体代码这里不贴了

    —————————————————————————————————————————————————————————————————————————————
    如何在 图片 固定位置生成 高斯函数场?

    function ImgOutput=CreatGauss(ImgInput,m,n,sigma)
    [x,y]=size(ImgInput);
    a=1:x;
    b=1:y;
    [A,B]=meshgrid(a,b);
    arg= -((A-n).(A-n) + (B-m).(B-m))/(2*sigma*sigma);
    h=exp(arg);
    ImgOutput((i-1)*m+1:i*m,(j-1)*n+1:j*n)=h;
    上面所示函数为在[m,n]处生成 标准差为 sigma 的高斯场,图片如下:

    ImgInput=zeros(200,200);

    ImgOutput=CreatGauss(ImgInput, 100,100,50)

    展开全文
  • 实现高斯金字塔和高斯差分金字塔,采用opencv实现的对图像建立高斯金字塔与高斯差分金字塔。
  • matlab高斯金字塔代码高斯金字塔_拉普拉斯金字塔_FFT 用于生成5个级别的高斯金字塔和拉普拉斯金字塔的Python代码,并将这些图像连接起来以显示金字塔。 当前,在OpenCV中没有可用的功能以这种方式显示金字塔图像...
  • Python OpenCV 高斯金字塔 cv2.pyrDown 与 cv2.pyrUp 函数

    Python OpenCV 365 天学习计划,与橡皮擦一起进入图像领域吧。

    基础知识铺垫

    学习图像金字塔,发现网上的资料比较多,检索起来比较轻松。

    图像金字塔是一张图像多尺度的表达,或者可以理解成一张图像不同分辨率展示。

    金字塔越底层的图片,像素越高,越向上,像素逐步降低,分辨率逐步降低。

    高斯金字塔

    我们依旧不对概念做过多解释,第一遍学习应用,应用,毕竟 365 天的周期,时间长,后面补充理论知识。

    高斯金字塔用于向下采样,同时它也是最基本的图像塔。

    在互联网检索原理,得到最简单的说明如下:

    将图像的最底层(高斯金字塔的第 0 层),例如高斯核(5x5)对其进行卷积操作,这里的卷积主要处理掉的是偶数行与列,然后得到金字塔上一层图像(即高斯金字塔第 1 层),在针对该图像重复卷积操作,得到第 2 层,反复执行下去,即可得到高斯金字塔。

    每次操作之后,都会将 M×N 图像变成 M/2 × N/2 图像,即减少一半。

    还有实测中发现,需要用图像的宽和高一致的图片,并且宽高要是 2 的次幂数,例如,8 像素,16 像素,32 像素等等,一会你也可以实际测试一下。

    图像金字塔应用到的函数有 cv2.pyrDown()cv2.pyrUp()

    cv2.pyrDown 与 cv2.pyrUp 函数原型

    通过 help 函数得到函数原型如下:

    pyrDown(src[, dst[, dstsize[, borderType]]]) -> dst
    pyrUp(src[, dst[, dstsize[, borderType]]]) -> dst
    

    两个函数原型参数一致,参数说明如下:

    • src:输入图像;
    • dst: 输出图像;
    • dstsize: 输出图像尺寸,默认值按照 ((src.cols+1)/2, (src.rows+1)/2) 计算。

    关于两个函数的补充说明:

    • cv2.pyrDown 从一个相对高分辨率的大尺寸的图像上构建一个金字塔,运行之后的结果是,图像变小,分辨率降低(下采样);
    • cv2.pyrUp 是一个上采样的过程,尽管相对尺寸变大,但是分辨率不会增加,图像会变得更模糊。

    测试代码如下:

    import cv2 as cv
    
    src = cv.imread("./testimg.jpeg")
    print(src.shape[:2])
    cv.imshow("src", src)
    # 向下采样
    dst = cv.pyrDown(src)
    print(dst.shape[:2])
    cv.imshow("dst", dst)
    
    # 再次向下采样
    dst1 = cv.pyrDown(dst)
    print(dst1.shape[:2])
    cv.imshow("dst1", dst1)
    
    cv.waitKey()
    

    运行代码之后,得到三张图片,大小依次减小,分辨率降低。

    Python OpenCV 之图像金字塔,高斯金字塔与拉普拉斯金字塔
    通过上面运行得到的最小图,在执行向上采样之后,图片会变的模糊,这也说明上采样和下采样是非线性处理,它们是不可逆的有损处理,因此下采样后的图像是无法还原的,即使放大图片也会变模糊(后面学习到拉普拉斯金字塔可以解决该问题)。

    # 向上采样
    dst2 = cv.pyrUp(dst1)
    print(dst2.shape[:2])
    cv.imshow("dst2", dst2)
    

    Python OpenCV 之图像金字塔,高斯金字塔与拉普拉斯金字塔
    在总结一下上采样和下采样的步骤:

    1. 上采样:使用 cv2.pyrUp 函数, 先将图像在每个方向放大为原来的两倍,新增的行和列用 0 填充,再使用先前同样的内核与放大后的图像卷积,获得新增像素的近似值;
    2. 下采样:使用 cv2.pyrDown 函数,先对图像进行高斯内核卷积 ,再将所有偶数行和列去除。

    拉普拉斯金字塔(Laplacian Pyramid, LP)

    拉普拉斯金字塔主要用于重建图像,由上文我们已经知道在使用高斯金字塔的的时候,上采样和下采样会导致图像细节丢失。

    拉普拉斯就是为了在放大图像的时候,可以预测残差,何为残差,即小图像放大的时候,需要插入一些像素值,在上文直接插入的是 0,拉普拉斯金字塔算法可以根据周围像素进行预测,从而实现对图像最大程度的还原。

    学习到原理如下:用高斯金字塔的每一层图像,减去其上一层图像上采样并高斯卷积之后的预测图像,得到一系列的差值图像即为 LP 分解图像(其中 LP 即为拉普拉斯金字塔图像)。

    关于拉普拉斯还存在一个公式(这是本系列课程第一次书写公式),其中 L 为拉普拉斯金字塔图像,G 为高斯金字塔图像

    Ln=GnPyrUp(PyrDown(Gn)) L_n = G_n-PyrUp(PyrDown(G_n))

    使用下面的代码进行测试。

    import cv2 as cv
    
    src = cv.imread("./testimg.jpeg")
    print(src.shape[:2])
    cv.imshow("src", src)
    # 向下采样一次
    dst = cv.pyrDown(src)
    print(dst.shape[:2])
    cv.imshow("dst", dst)
    
    # 向上采样一次
    dst1 = cv.pyrUp(dst)
    print(dst1.shape[:2])
    cv.imshow("dst1", dst1)
    
    # 计算拉普拉斯金字塔图像
    # 原图 - 向上采样一次的图
    laplace = cv.subtract(src, dst1)
    cv.imshow("laplace", laplace)
    cv.waitKey()
    

    运行结果如下,相关的图像已经呈现出来,重点注意最右侧的图片。

    Python OpenCV 之图像金字塔,高斯金字塔与拉普拉斯金字塔
    这个地方需要注意下,如果你使用 cv.subtract(src, dst1) 函数,得到的是上图效果,但是在使用还原的时候会发现问题,建议直接使用 -完成,匹配公式,修改代码如下:

    # cv.subtract(src, dst1)
    laplace = src - dst1
    

    代码运行效果如下。
    Python OpenCV 之图像金字塔,高斯金字塔与拉普拉斯金字塔

    学习过程中发现这样一段话:图像尺寸最好是 2 的整次幂,如 256,512 等,否则在金字塔向上的过程中图像的尺寸会不等,这会导致在拉普拉斯金字塔处理时由于不同尺寸矩阵相减而出错。

    这个我在实测的时候发现确实如此,例如案例中使用的图像,在向下采样 2 次的时候,图像的尺寸就会发生变化,测试代码如下:

    import cv2 as cv
    
    src = cv.imread("./testimg.jpeg")
    print(src.shape[:2])
    cv.imshow("src", src)
    # 向下采样1次
    dst1 = cv.pyrDown(src)
    print(dst1.shape[:2])
    cv.imshow("dst", dst1)
    # 向下采样2次
    dst2 = cv.pyrDown(dst1)
    print(dst1.shape[:2])
    cv.imshow("dst2", dst2)
    
    # 向上采样1次
    up_dst1 = cv.pyrUp(dst2)
    print(up_dst1.shape[:2])
    cv.imshow("up_dst1", up_dst1)
    
    # 计算拉普拉斯金字塔图像
    # 采样1次 - 向上采样1次的图
    laplace = dst1 - up_dst1
    cv.imshow("laplace", laplace)
    cv.waitKey()
    

    注意 print(up_dst1.shape[:2]) 部分的输出如下:

    (710, 400)
    (355, 200)
    (355, 200)
    (356, 200)
    

    如果在该基础上使用拉普拉斯图像金字塔,就会出现如下错误

    Sizes of input arguments do not match
    

    在总结一下拉普拉斯图像金字塔的执行过程:

    • 向下采样:用高斯金字塔的第 i 层减去 i+1 层做上采样的图像,得到拉普拉斯第 i 层的图像;
    • 向上采样:用高斯金字塔的 i+1 层向上采样加上拉普拉斯的第 i 层,得到第 i 层的原始图像。

    向下采样上面的代码已经实现了,但是拉普拉斯向上采样还未实现,完善一下代码如下,为了代码清晰,我们将变量命名进行修改。

    import cv2 as cv
    
    src = cv.imread("./testimg_rect.jpeg")
    print(src.shape[:2])
    cv.imshow("src", src)
    # 高斯金字塔第 0 层
    gus0 = src  # 原图
    # 高斯金字塔第 1 层
    gus1 = cv.pyrDown(gus0)
    # 高斯第 2 层
    gus2 = cv.pyrDown(gus1)
    
    # 拉普拉斯金字塔第 0 层
    lap0 = gus0 - cv.pyrUp(gus1)
    # 拉普拉斯金字塔第 1 层
    lap1 = gus1 - cv.pyrUp(gus2)
    
    # 显示拉普拉斯第一层代码
    cv.imshow("laplace", lap1)
    cv.waitKey()
    

    下面用修改好的代码完成还原图片的操作。

    import cv2 as cv
    
    src = cv.imread("./testimg_rect.jpeg")
    print(src.shape[:2])
    cv.imshow("src", src)
    # 高斯金字塔第 0 层
    gus0 = src  # 原图
    # 高斯金字塔第 1 层
    gus1 = cv.pyrDown(gus0)
    # 高斯第 2 层
    gus2 = cv.pyrDown(gus1)
    
    
    # 拉普拉斯金字塔第 0 层
    lap0 = gus0 - cv.pyrUp(gus1)
    # 拉普拉斯金字塔第 1 层
    lap1 = gus1 - cv.pyrUp(gus2)
    
    rep = lap0 + cv.pyrUp(lap1 + cv.pyrUp(gus2))
    gus_rep = cv.pyrUp(cv.pyrUp(gus2))
    
    cv.imshow("rep", rep)
    cv.imshow("gus_rep", gus_rep)
    cv.waitKey()
    

    以上代码最重要的部分为下面两句:

    rep = lap0 + cv.pyrUp(lap1 + cv.pyrUp(gus2))
    gus_rep = cv.pyrUp(cv.pyrUp(gus2))
    

    第一行代码中 lap1 + cv.pyrUp(gus2) 即文字公式 【用高斯金字塔的 i+1 层向上采样加上拉普拉斯的第 i 层,得到第 i 层的原始图像】的翻译。

    第二行代码是使用直接向上采样,最终得到的是损失细节的图像。

    上述代码运行的结果如下,通过拉普拉斯可以完美还原图像。

    学习本案例之后,你可以在复盘本文开始部分的代码,将其进行修改。
    Python OpenCV 之图像金字塔,高斯金字塔与拉普拉斯金字塔

    最后在学习一种技巧,可以直接将两幅图片呈现,代码如下:

    import cv2 as cv
    import numpy as np
    src = cv.imread("./testimg_rect.jpeg")
    print(src.shape[:2])
    cv.imshow("src", src)
    # 向下采样1次
    down_dst1 = cv.pyrDown(src)
    print(down_dst1.shape[:2])
    cv.imshow("dst", down_dst1)
    
    
    # 向上采样1次
    up_dst1 = cv.pyrUp(down_dst1)
    print(up_dst1.shape[:2])
    cv.imshow("up_dst1", up_dst1)
    
    res = np.hstack((up_dst1, src))
    cv.imshow('res', res)
    
    cv.waitKey()
    

    运行之后,通过 np.hstack((up_dst1, src))函数,将两个图像矩阵合并,实现效果如下:
    Python OpenCV 之图像金字塔,高斯金字塔与拉普拉斯金字塔

    橡皮擦的小节

    希望今天的 1 个小时,你有所收获,我们下篇博客见~

    相关阅读


    技术专栏

    1. Python 爬虫 100 例教程,超棒的爬虫教程,立即订阅吧
    2. Python 爬虫小课,精彩 9 讲

    逗趣程序员

    1. 曝光,程序员的 10 个摸鱼神器
    2. 5 个无聊 Python 程序,用 Python 整蛊你的朋友们吧
    3. 10 年老程序员教你甩锅必杀技,论【如何优雅的甩锅】
    4. 你想被开除吗?来看看程序员【离职小技巧】吧

    今天是持续写作的第 71 / 100 天。
    如果你有想要交流的想法、技术,欢迎在评论区留言。


    如果你想跟博主建立亲密关系,可以关注同名公众号 梦想橡皮擦,近距离接触一个逗趣的互联网高级网虫。
    博主 ID:梦想橡皮擦,希望大家点赞评论收藏

    展开全文
  • matlab开发-高斯金字塔和拉普拉斯金字塔。视为原始图像
  • 最终高斯金字塔.py

    2020-05-03 18:11:04
    这是用Python语言实现的高斯金字塔图像,编程思想很简单,很适合新手学习python,图片是彩色图像,注意代码的路径,把图片放到自己的路径即可
  • 高斯金字塔和拉普拉斯金字塔

    千次阅读 2019-05-21 21:23:57
    高斯金字塔和拉普拉斯金字塔 高斯金字塔算法流程: (1)对图像进行高斯卷积(高斯滤波) (2)删除偶数行和偶数列(下采样) 拉普拉斯金字塔算法流程:(用于低分辨率恢复高分辨率图像时计算残差) 对于高斯金字塔...

    高斯金字塔和拉普拉斯金字塔

    高斯金字塔算法流程:
    (1)对图像进行高斯卷积(高斯滤波)
    (2)删除偶数行和偶数列(下采样)

    拉普拉斯金字塔算法流程:(用于低分辨率恢复高分辨率图像时计算残差)
    对于高斯金字塔中的低分辨率图像,
    (1)先将图像每个方向放大至原来的两倍(上采样),新增的行和列以0填充
    (2)对图像进行高斯卷积(高斯滤波)
    (3)用下一层的高分辨率图像减去高斯卷积后的图像

    在这里插入图片描述

    参考文献:
    [1] 图像处理中的高斯金字塔和拉普拉斯金字塔
    [2] 图像金字塔

    展开全文
  • 3D图像高斯金字塔

    2015-07-29 15:51:06
    3D图像高斯金字塔处理方法,imGaussPyramid_3D.m。
  • 图像高斯金字塔

    2020-12-22 15:41:43
    拉普拉斯金字塔:用来从金字塔底层图像重建上层未采样的图像,在数字图像处理中也即是预测残差,可以对图像进行最大程度的还原,配合高斯金字塔一起使用。 两者的主要区别在于:高斯金字塔用来向下采样

    图像金字塔

    图像金字塔是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效单概念简单的结构。

    金字塔的底部是待处理图像的高分辨率表示,而顶部是以低分辨率的近似。将一层一层的图像比喻成金字塔,层级越高,图像越小,分辨率越低。

    常见的图像金字塔主要有两种,分别是:

    • 高斯金字塔:用来向下采样,是主要的图像金字塔。
    • 拉普拉斯金字塔:用来从金字塔底层图像重建上层未采样的图像,在数字图像处理中也即是预测残差,可以对图像进行最大程度的还原,配合高斯金字塔一起使用。

    两者的主要区别在于:高斯金字塔用来向下采样图像,拉普拉斯金字塔用来从金字塔底层图像向上采样,重建一个图像

    要从金字塔的第i层生成第i+1层,先要用高斯核对第i层进行卷积,然后删除所有的偶数行和偶数列,新得到的图像的面积就是源图像的四分之一,按照上述过程就可以得到整个金字塔。

    高斯金字塔

    高斯金字塔是通过高斯平滑和亚采样获得一系列下采样图像,也就是说第K层高斯金字塔通过平滑与亚采样可以获得第K+1层高斯图像。高斯金字塔包含了一系列低通滤波器,其截止频率从上一层以因子2逐渐增加,所以高斯金字塔可以跨越很大的频率范围。

    对图像进行下采样

    为获得层级位i+1的金字塔图像,我们采用如下方法:

    • 对第i层图像进行高斯内核卷积。
    • 将所有的偶数行和列去除。

    得到的即为第i+1层的图像。显而易见,得到的图像只有原图的四分之一。通过不停的迭代就可以得到整个金字塔,同时也会丢失图像的信息。

    对图像进行上采样

    如果想放大图像,则需要通过向上取样操作得到,具体为:

    • 将图像的每个方向扩大为原来的两倍,新增的行和列以0填充。
    • 使用先前同样的内核与放大后的图像卷积,得到新增像素的近似值。

    得到的图像即为放大后的图像,但是与原图相比会比较模糊,因为在缩放的过层中丢失了图像信息。如果想在缩小和放大整个过程中减少信息的丢失,这些数据就形成了拉普拉斯金字塔。

     

    展开全文
  • 文章目录一、图像金字塔的定义二、高斯金字塔的计算三、拉普拉斯金字塔的计算 一、图像金字塔的定义 图像金字塔是图像中多尺度表达的一种,用多分辨率来解释图像。 金字塔的底部是待处理图像的高分辨率表示,而顶部...
  • 2D图像高斯金字塔

    2015-07-29 15:49:44
    2D图像高斯金字塔处理方法, imGaussPyramid_2D.m。
  • 高斯金字塔 ( Gaussianpyramid):向下采样,层级越高,则图像越小,分辨率越低。要从金字塔第i层生成第i+1层,我们先要用高斯核对第i层进行卷积,然后进行下采样,即删除所有偶数行和列。 拉普拉斯金字塔:...
  • 高斯金字塔 拉普拉斯金字塔 当我看到开发团队时,我期望看到的程序员比需求人员(BA,产品经理等)更多,并且期望看到更少的管理类型。 可以认为它就像一个人员配置金字塔结构: 程序员(通常是测试人员)应该...
  • 原理:首先将原图像作为最底层图像G0(高斯金字塔的第0层),利用高斯核(5*5)对其进行卷积,然后对卷积后的图像进行下采样(去除偶数行和列)得到上一层图像G1,将此图像作为输入,重复卷积和下采样操作得到更上一...
  • matlab高斯金字塔代码拉普拉斯金字塔 过滤器的GPU实现 该库包括过滤器和拉普拉斯金字塔的GPU实现。 还在openCV中实现了本地拉普拉斯金字塔和混合示例。 与此处给出的原始MATLAB代码相比,GPU代码可以非常快速地运行...
  • 高斯金字塔的原理解析

    热门讨论 2011-05-08 10:49:34
    高斯金字塔的原理解析 SIFT算法分析 第一步 构建高斯金字塔以及高斯差分金字塔 第二步 寻找差分金字塔上的极值点
  • 1.介绍 图像金字塔是图像中多尺度的一种表现,主要用于分割,...今天的猪脚是介绍传统图像金字塔:高斯金字塔和拉普拉斯金字塔,至于深度学习的,我就不展开讲了。 2.高斯金字塔 高斯金字塔的生成,主要用到...
  • 高斯滤波的核就是一个求平均值的卷积核 ...拉普拉斯金字塔作用后的效果就是不同层次下提取边缘,原理就是基于高斯金字塔下,从高斯金字塔塔尖开始,每层图片扩大二倍,与下一层做差,得到的新图 使用函...
  • 使用高斯金字塔和拉普拉斯金字塔重构的主要思想就是:高斯金字塔中的内容在高斯模糊并且下采样的过程中会丢失信息,而为了重构出和原图像相差不大的图像,我们则希望能够用某种方式将建立高斯金字塔过程中丢失的信息...
  • 高斯金字塔分解

    2011-11-09 11:20:41
    高斯金字塔用matlab软件编写的,简单明了
  • 二、高斯金字塔 三、拉普拉斯金字塔 一句话总结: 上采样: 图像放大(长宽放大2倍)【pyrUp】 下采样:图像缩小(长宽缩小一半) 【pyrDown】 高斯金字塔:下采样(先高斯平滑,然后去除偶数行和偶数列) ...
  • sift-高斯金字塔

    2018-12-10 16:50:00
    一、高斯金字塔 金字塔的层是由降采样得到的,而每一层又有多张图像,其他的图像是由初始的一张经过高斯模糊的得到的。 注意的是:高斯金字塔有层,而金字塔的每一层有一组图像,这一组图像也形成了层。注意两个层...
  • 未获得 4 级/n 级高斯金字塔的结果,请尝试改进,但已确定连续级别的灰度级,并且代码运行良好无法观看中级图像
  • 高斯金字塔 高斯金字塔其实原理很简单,就是通过高斯模糊(高斯滤波)后进行上采样和下采样,其中Down表示下采样函数,下采样可以通过抛去图像中的偶数行和偶数列来实现,这样图像长宽各减少二分之一,面积减少四分...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,667
精华内容 3,466
关键字:

高斯金字塔