原理

高斯图像金字塔分为上采样和下采样两种
上采样:就是放大图片,先将图像在每个方向放大为原来的两倍,新增的行和列用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);
参考文献

本文介绍了高斯图像金字塔的上采样和下采样的原理,上采样通过放大图像并用0填充新增区域,然后进行卷积;下采样则是先进行高斯滤波后再去除偶数行和列。同时,展示了使用OpenCV库在C++中实现这两个操作的代码示例,并提到了差分高斯(DOG)的计算方法。最后,给出了归一化显示图像的步骤。
最低0.47元/天 解锁文章
1701

被折叠的 条评论
为什么被折叠?



