高斯图像金字塔

上采样:将图像放大

下采样:将图像缩小

高斯金字塔就是从下向上进行下采样,具体分为以下两个步骤

1.对图像进行高斯模糊

2.删除偶数行列

高斯不同:同一张图片在不同参数(σ)下做的高斯模糊之后相减的结果

高斯不同是图像的内在特征,在灰度图像增强和角点检测中经常用到。

上采样

pyrUp(src,dst,Size(src.cols*2,src.rows*2));

下采样

pyrDown(src,dst,Size(src.cols/2,src.rows/2));

代码

#include<iostream>
#include<opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main(int argc,char **argv)
{
    Mat src, dst1,dst2;
    src = imread("b.jpg");
    if (src.empty())
    {
        cout << "load img failed" << endl;
        return -1;
    }

    imshow("input img", src);

    pyrUp(src, dst1, Size(src.cols * 2, src.rows * 2));
    pyrDown(src, dst2, Size(src.cols / 2, src.rows / 2));

    Mat gray_src,g1, g2,DOG;

    cvtColor(src, gray_src, CV_BGR2GRAY);
    GaussianBlur(gray_src, g1, Size(3, 3), 0, 0);
    GaussianBlur(gray_src, g2, Size(5,5), 0,0);
    subtract(g1, g2, DOG, Mat());

    normalize(DOG, DOG, 255, 0, NORM_MINMAX);//归一化,将数据拉到0~255范围
    imshow("DOG", DOG);
    imshow("upsample", dst1);
    imshow("downsample", dst2);
    waitKey(0);
    return 0;
}

屏幕太小了下采样放不下了

 

高斯不同

 用不同大小的滤波器也会得到不同的效果,注意一点,以下两种方法得到的高斯不同一样

有点类似于GoogleNet那个inception block的感觉,用两个连续的小卷积核代替一个大卷积核

将滤波器尺寸变大得到的效果

猜你喜欢

转载自www.cnblogs.com/wangtianning1223/p/12066532.html