上采样:将图像放大
下采样:将图像缩小
高斯金字塔就是从下向上进行下采样,具体分为以下两个步骤
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的感觉,用两个连续的小卷积核代替一个大卷积核
将滤波器尺寸变大得到的效果