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));**
高斯不同
#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;
}