OpenCV(iOS)图像金字塔(13)

图像金字塔

图像金字塔是图像中多尺寸表达的一种,最主要的是用于图像的分割。是一种以多分辨率来解释图像的有效但概念简单的结构。

一幅图像的金字塔式一系列以金字塔形状排列的,分辨率逐步降低且来源于统一张原始图的图像集合,其通过梯次向下采样获得,直到达到某个终止条件才停止采样。

金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。

我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。如图

OpenCV(iOS)图像金字塔(13)_第1张图片

一般有两种类型的图像金字塔,分别为

(1)高斯金字塔——用来向下采样,主要的图像金字塔

(2)拉普拉斯金字塔——用来从金字塔底层图像重建上层未采样的图像,在数字图像处理中即是预测残差,可以对图像进行最大程度的还原,配合高斯金字塔一起使用。

两者的主要区别是高斯金字塔是用向下降采样图像,而拉普拉斯金字塔式用金字塔底层图像中采样,重建一个图像。

当图像金字塔的上层移动时,尺寸和分辨率会降低。

OpenCV 中

对图像向上采样——pyrUp()

对图像向下采样 ——pyrDown()

这两个函数操作是不可逆的,pryUp()不是降低采样的你操作,这种情况,图像首先在每个维度上扩大为原来的两倍,新增加的行(偶数行)以0填充,然后给指定的滤波器进行卷积(实际上是一个在每一个维度都扩大为原来两倍的过滤器)去估计“丢失”像素的近似值。

pyrDown()是一个会丢失信息的函数,为了恢复原来更高的分辨率的图像,我们要获得由降低操作丢失的信息,这些数据和拉普拉斯金字塔就有关了。

高斯金字塔

高斯金字塔是通过高斯平滑和亚采样获得一些列下采样图像,也就是说第K层高斯金字塔通过平滑,亚采样就可以获得K+1层高斯图像

OpenCV(iOS)图像金字塔(13)_第2张图片

另外,每一层都按从下到上的次序编号,层级i+1尺寸小于i层

1.对图像的向下取样

为了获取层级i+1的金字塔图像,我们采用如下方法

(1)对图像进行高斯内核卷积

(2)将所有的偶数行和列去掉

得到的图像为i+1的图像,图像为原来图像的四分之一,缩小了图像

2.对图像的向上取样

如果想放大图像,我们需要向上取样,具体的操作

(1)将图像在每个方向扩大为原来的两倍,新增的行和列以0填充

(2)使用先前同样的内核(乘以4)与放大后的图像卷积,获得‘新增像素‘的近似值

得到的图像即为放大后的图像,与原来相比会比较模糊

拉普拉斯金字塔

下式是拉普拉斯金字塔第i层的数学定义

式中的Gi表示第i层的图像。而UP()操作是将源图像中位置(x,y)的像素映射到目标图像的(2x+1,2y+1)位置

因此可以直接用OpenCV进行拉普拉斯运算

整个拉普拉斯金字塔是通过源图像减去先缩小后再放大的图像的一系列构成。整个拉普拉斯金字塔运算如图

OpenCV(iOS)图像金字塔(13)_第3张图片

另一个,图像金字塔非常重要的一个应用是图像分割

你可能感兴趣的:(OpenCV(iOS)图像金字塔(13))