当前位置:   article > 正文

OpenCV图像金字塔_基于 opencv api 实现一个 laplacian pyramid

基于 opencv api 实现一个 laplacian pyramid

图像金字塔是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构。一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。如下图所示。

常用的图像金字塔有高斯金字塔(Gaussian pyramid)和拉普拉斯金字塔(Laplacian pyramid)。高斯金字塔用来向下采样,而拉普拉斯金字塔用来从金字塔低层图像重建上层未采样图像。

高斯金字塔

下采样pyrDown

下采样,也叫做降采样,这个过程中是隔行隔列删去图像中的对应行和列,这样原图中那些精细的细节边缘等地方会变得锯齿状,产生失真,因此为了缩小之后的图像看起来自然,必须进行平滑。因此pyrDown函数在降采样之前要先对图像进行高斯模糊。此时采用的高斯核如下:

 代码:

  1. #include "stdafx.h"
  2. #include <opencv2/opencv.hpp>
  3. int main()
  4. {
  5. // 声明两个图像矩阵
  6. cv::Mat img1, img2;
  7. // 创建两个窗口
  8. cv::namedWindow("image1", cv::WINDOW_AUTOSIZE);
  9. cv::namedWindow("image2", cv::WINDOW_AUTOSIZE);
  10. // 读取文件,并将原始图像显示在image1窗口
  11. img1 = cv::imread("test.jpg");
  12. cv::imshow("image1", img1);
  13. // 对原始图像进行下采样和高斯滤波处理,长宽各缩小一半,并显示在imge2窗口
  14. cv::pyrDown(img1, img2);
  15. cv::imshow("image2", img2);
  16. // 等待键盘事件
  17. cv::waitKey(0);
  18. // 关闭所有窗口,并释放关联内存
  19. cv::destroyAllWindows();
  20. return 0;
  21. }

运行结果:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/545401
推荐阅读
相关标签
  

闽ICP备14008679号