OpenCV-图像的上采样降采样以及高斯不同

图像金字塔概念

OpenCV-图像的上采样降采样以及高斯不同
每一层为一个图像:从小到大是上采样,从大到小是降采样

上采样(放大)

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

降采样(缩小)

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

高斯不同

OpenCV-图像的上采样降采样以及高斯不同

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

using namespace cv;
using namespace std;

int main(int argc, char ** argv)
{
	Mat src = imread("E://VS-pro//images//3.jpg");
	imshow("原图-彩色图像", src);

	Mat gray_src;
	cvtColor(src, gray_src, COLOR_BGR2GRAY);
	imshow("灰度图像", gray_src);

	Mat dst1;
	//上采样
	pyrUp(src, dst1, Size(src.cols * 2, src.rows * 2));
	imshow("上采样图像", dst1);

	Mat dst2;
	//降采样
	pyrDown(src, dst2, Size(src.cols / 2, src.rows / 2));
	imshow("下采样图像", dst2);

	//高斯不同(DOG)
	Mat g1, g2, dog_src;
	GaussianBlur(gray_src, g1, Size(7, 7),0, 0);
	GaussianBlur(g1, g2, Size(7, 7), 0, 0);

	subtract(g1, g2, dog_src, Mat());
	imshow("高斯不同", dog_src);

	// 归一化显示
	normalize(dog_src, dog_src, 255, 0, NORM_MINMAX);
	imshow("DOG Image", dog_src);

	waitKey(0);
	return 0;
}

OpenCV-图像的上采样降采样以及高斯不同

OpenCV-图像的上采样降采样以及高斯不同