2020.11.03 使用OpenCV进行图像上采样、降采样以及高斯不同操作【OpenCV C++】

图像上采样,降采样以及高斯不同操作

源代码:

// testOpencv12.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;

const char* inWin = "input window";
const char* outWin = "output window";


int main()
{
    //std::cout << "Hello World!\n";
    Mat src, dst;
    src = imread("E:/imageSources/7.jpg");
    if (!src.data) {
        printf("cannot load image");
        return -1;
    }

    namedWindow(inWin,WINDOW_AUTOSIZE);
    imshow(inWin,src);

    //上采样
    pyrUp(src, dst, Size(src.cols*2,src.rows*2));
    namedWindow(outWin, WINDOW_AUTOSIZE);
    imshow(outWin, dst);

    //降采样
    Mat tempDown;
    pyrDown(src,tempDown,Size(src.cols / 2, src.rows /2));
    imshow("pyrdown image",tempDown);

    //高斯不同
    //Mat grayImage, g1, g2,DOGImage;
    //转换为灰度图像
    //cvtColor(src,grayImage,COLOR_BGR2GRAY);
    //高斯模糊1
    //GaussianBlur(grayImage,g1,Size(5,5),0,0);
    //imshow("g1 image", g1);
    //高斯模糊2
    //GaussianBlur(g1,g2,Size(5,5),0,0);
    //imshow("g2 image", g2);
    //subtract(g1,g2,DOGImage,Mat());
    //进行归一化操作显示
    //normalize(DOGImage,DOGImage,255,0,NORM_MINMAX);
    //imshow("DOG image",DOGImage);

    waitKey(0);
    return 0;
}

上采样结果:

2020.11.03 使用OpenCV进行图像上采样、降采样以及高斯不同操作【OpenCV C++】

降采样结果:

2020.11.03 使用OpenCV进行图像上采样、降采样以及高斯不同操作【OpenCV C++】

综合对比图

2020.11.03 使用OpenCV进行图像上采样、降采样以及高斯不同操作【OpenCV C++】

高斯不同结果(调节不同高斯模糊的结果进行做差计算)

2020.11.03 使用OpenCV进行图像上采样、降采样以及高斯不同操作【OpenCV C++】