图像金字塔原理与C++实现

原理

图像金字塔原理与C++实现_第1张图片

高斯图像金字塔分为上采样和下采样两种

上采样:就是放大图片,先将图像在每个方向放大为原来的两倍,新增的行和列用0填充,再使用先前同样的内核与放大后的图像卷积,获得新增像素的近似值。

下采样:先对图像进行高斯内核卷积 ,再将所有偶数行和列去除。

代码

c++调用opencv模块进行实现

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

	// 降采样
	Mat s_down;
	pyrDown(src, s_down, Size(src.cols / 2, src.rows / 2));
	imshow("sample down", s_down);

	// DOG
	Mat gray_src, g1, g2, dogImg;
	cvtColor(src, gray_src, CV_BGR2GRAY);
	GaussianBlur(gray_src, g1, Size(5, 5), 0, 0);
	GaussianBlur(g1, g2, Size(5, 5), 0, 0);
	subtract(g1, g2, dogImg, Mat());

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

参考文献

原理 拉普拉斯金字塔_十三 高斯金字塔和拉普拉斯金字塔

你可能感兴趣的