B08 - 图像处理 - 图像金字塔
图像金字塔的原理及应用
什么是图像金字塔?
- 图像金字塔是图像的集合,所有图像都来自单个原始图像,这些图像被连续下采样,直到达到某个所需的停止点
- 有两种常见的图像金字塔,高斯金字塔:用于对图像进行缩减采样;拉普拉斯金字塔:用于从金字塔中较低的图像(分辨率较低)重建上采样图像
1
2
3
4
5
6
7
8
9
10
11
12
13img = cv2.imread("../images/imgLena.tif", flags=1)
# 图像向下取样
pyrD0 = img.copy()
pyrD1 = cv2.pyrDown(pyrD0)
pyrD2 = cv2.pyrDown(pyrD1)
pyrD3 = cv2.pyrDown(pyrD2)
show_images([pyrD0,pyrD1,pyrD2,pyrD3])
# 图像向上取样
pyrU3 = pyrD3.copy()
pyrU2 = cv2.pyrUp(pyrU3)
pyrU1 = cv2.pyrUp(pyrU2)
pyrU0 = cv2.pyrUp(pyrU1)
show_images([pyrU0,pyrU1,pyrU2,pyrU3])
什么是高斯金字塔?
- 高斯金字塔用于下采样,即类似卷积的过程,采用高斯核对图像进行处理,如上图将原图往右逐渐减小 4 层
- 注意:应用高斯金字塔后,无法 100% 还原真实图片,即 higher_reso 2!=img
1
2
3img = cv.imread('messi5.jpg')
lower_reso = cv.pyrDown(higher_reso)
higher_reso2 = cv.pyrUp(lower_reso)
什么是拉普拉斯金字塔?
- 拉普拉斯金子塔是由高斯金子塔生成,没有特有的拉普拉斯金字塔的函数。拉普拉斯金字塔图像更像是边界图像,它的大部分元素为零。常用于图像压缩,生成公式如下,其中 Li 表示第 i 层拉普拉斯图像,Gi 表示第 i 层的高斯金字塔图像,Up(Gi+1)表示对 Gi 的上采
图像金字塔的作用?
- 特征点提取(SIFT、HOG、ORB 等):赋予特征点尺度不变性特点。相同的物体在不同距离下拍摄,在图像上呈现不同尺度的大小。那么在原图中构建图像金字塔,模拟这种不同距离拍摄的现象,由此提取的特征点也具有尺度不变性
- 模板匹配:减少匹配时间,提高效率。对模板和待匹配图像分别做图像金字塔,先从金字塔尖的图像开始匹配,由于分辨率较小,所以匹配时间较短,接着在此位置基础上,在下一层该位置周围局部区域继续进行匹配,直到最后一层完成匹配
- 光流跟踪:直接法跟踪,解决前后两帧相对运动距离过大的问题
图像金字塔应用于图像合成?
- 由于图像噪声、光照、曝光度、模型匹配误差等因素,图像直接拼接合成会在图像重叠区域的拼接处出现明显的痕迹。图像融合的目的就是使两幅图像的重叠区域过渡自然且平滑
- 拉普拉斯金字塔将源图像分解到不同的频带,越高频的图像信息越到上层。在相同显示尺寸下比较不同分辨率的拉普拉斯图像,可以发现不同尺度下关注的细节是不同的,低分辨率下关注的是较大尺度的基本纹理,而高分辨率下关注的是更精细的纹理
- 因此,可以针对不同分解层的频带特征与细节,采用不同的融合算子以突出特定频带上特征与细节,也就可以将不同图像的特征与细节融合在一起
什么是差分金字塔?
- 差分金字塔是在高斯金字塔的基础上构建起来的,其实生成高斯金字塔的目的就是为了构建 DOG 金字塔
- DOG 金字塔的第 1 组第 1 层是由高斯金字塔的第 1 组第 2 层减第 1 组第 1 层得到的。以此类推
参考:
- 【youcans 的 OpenCV 例程 200 篇】185. 图像金字塔之高斯金字塔_opencv 如何建立 gaussian pyramid_youcans_的博客 - CSDN 博客
- 【youcans 的 OpenCV 例程 200 篇】186. 图像金字塔之拉普拉斯金字塔_youcans_的博客 - CSDN 博客
- 【youcans 的 OpenCV 例程 200 篇】187. 由拉普拉斯金字塔还原图像_拉普拉斯金字塔如何恢复到原来的图像_youcans_的博客 - CSDN 博客
- 【youcans 的 OpenCV 例程 200 篇】188. 基于拉普拉斯金字塔的图像融合_opencv 拉普拉斯金字塔融合_youcans_的博客 - CSDN 博客
- 【youcans 的 OpenCV 例程 200 篇】189. 基于掩模的拉普拉斯金字塔图像融合_youcans_的博客 - CSDN 博客
- 【youcans 的 OpenCV 例程 200 篇】190. 基于图像分割的图像融合_opencv 图像融合_youcans_的博客 - CSDN 博客
- 【youcans 的 OpenCV 例程 200 篇】191. 基于图像分割的金字塔图像融合_youcans_的博客 - CSDN 博客