#include
#include
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
Mat src;
src = imread("../path.jpg");
if (src.empty())
{
cout << "could not load image1..." << endl;
return -1;
}
namedWindow("src", WINDOW_AUTOSIZE);
imshow("src", src);
Mat dst;
//上采样//生成的图像是原图在宽与高各放大两倍
//pyrUp(src, dst, Size(src.cols * 2, src.rows * 2));
//降采样//生成的图像是原图在宽与高各缩小1/2
//pyrDown(src, dst, Size(src.cols / 2, src.rows / 2));
//高斯不同
Mat gray_src, g1, g2;
cvtColor(src, gray_src, COLOR_BGR2GRAY);//转为灰度图
GaussianBlur(gray_src, g1, Size(5, 5), 0, 0);
GaussianBlur(g1, g2, Size(5, 5), 0, 0);
subtract(g1, g2, dst, Mat());//把同一张图像在不同的参数下做高斯模糊之后的结果相减,得到的输出图像就称为高斯不同(DOG)
// 矩阵元素映射到特定区间范围内
normalize(dst, dst, 255, 0, NORM_MINMAX);//将矩阵的值进行重新缩放核转换,使其线性映射到[0,255]区间内
namedWindow("dst", WINDOW_AUTOSIZE);
imshow("dst", dst);
waitKey(0);
return 0;
}
输出结果: