
第十节 图像处理涉及图像金字塔构建。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
图像金字塔是一种多尺度图像表达方法,主要用于图像分割,它是一种简单有效且概念清晰的结构,本质上是图像的缩放过程。 图像金字塔可以利用图像金字塔进行缩放,也可以通过resize函数实现。 本次分析主要对图像金字塔的基本原理进行了解。 图像金字塔主要包含两种类型:高斯金字塔和拉普拉斯金字塔。
1. **高斯金字塔**:用于下采样,是最基础的图像金字塔类型。其原理是首先将原始图像作为最底层图像G0(高斯金字塔的第0层),然后利用高斯核(5x5)对其进行卷积操作,再对卷积后的图像进行下采样(去除偶数行和列),从而得到上一层图像G1。 随后,将此上一层图像作为输入,重复卷积和下采样操作,不断迭代生成更上一层图像,最终形成一个金字塔形的图像数据结构,即高斯金字塔。
2. **拉普拉斯金字塔**:用于重建图像,也称为预测残差。其目标是最大程度地还原原始图像。例如,将一幅小尺寸的图片重建为一幅大尺寸的图片时,其原理是利用高斯金字塔每一层的图像减去其上一层的高斯金字塔上采样并高斯卷积之后的预测残差图来获得一系列差值图即为LP分解图。
两种类型的采用方式:
1. **上采样**:也称为放大图片的操作, 使用pyrUp函数实现。 具体步骤包括:首先将图片在每个方向上放大两倍大小, 并用0填充新增的行和列, 然后使用先前相同的内核与放大后的图片卷积, 获得新增像素的近似值。
2. **下采样**:也称为缩小图片的操作, 使用pyrDown函数实现。 下采样步骤包括:首先对图片进行高斯核卷积操作, 然后去除所有偶数行和列。 需要注意的是, 上下采样都会导致信息丢失, 因此通常需要使用拉普拉斯金字塔来解决这个问题.
源码分析:
1. **高斯金字塔 (pyramid_demo)**:
该函数定义了高斯金字塔构建过程。 首先设置了构建的金字塔层数为3 (level = 3)。 然后循环遍历每一层 (range(level)) ,使用pyrDown函数进行下采样并将结果添加到pyramid列表中 。 最后返回生成的pyramid列表(pyramid)。 高斯金字塔实质上就是由大变小,对源图像进行PyrDown(即先高斯模糊,后降采样)得到dst1,然后将dst1作为输入图像再进行PyrDown(即先高斯模糊,后降采样)得到dst2,这个过程循环n次就会得到n曾的金字塔了 。 源码中n=3.
2. **拉普拉斯金字塔 (lapalace_demo)**:
该函数实现了拉普拉斯金字的构建过程 。 首先调用pyramid_demo函数生成一个包含多层的高斯特征图的金字塔(pyramid),获取pyramid列表长度levels ,然后循环从level-1开始到-1结束(但不包含-1),步长为-1 ,共循环三次 。 在循环中判断i是否小于等于1 , 如果小于等于则使用pyrUp指令向上采样(扩大尺寸),输入为pyramid[i],输出大小为pyramid[i-1] 的大小;否则使用pyrUp指令向上采样(扩大尺寸),输入为pyramid[i],输出大小为image 的大小;最后用cv.subtract将expand与pyramid[i-1]做差以得到残差图并显示出来 。
全部评论 (0)


