尺度调整
顾名思义,即对源图像的尺寸进行**放大**或者**缩小**变换。在opencv里面可以用**resize**函数,将源图像精准地转化为指定尺寸的目标图像。<br />要**缩小图像**,一般使用**CV_INETR_AREA(区域插值**)来插值;<br />要**放大图像**,推荐使用**CV_INTER_LINEAR(线性插值**)。这个函数可以用来做简单的图像尺度变换。
void resize(src,dst,size,int interpolation)
//src:源图像;dst:目标图像,
//size目标图像大小,可以是指定的尺寸或者放大缩小的比例
//指定插值方式,一般有四种插值方式可供选择,默认为线性插值法
图像金字塔(Image Pyramid)
**图像金字塔**是图像中多尺度表达的一种,最主要用于**图像的分割**,是一种以多分辨率来解释图像的有效但概念简单的结构。图像金字塔最初用于机器视觉和图像压缩,一幅图像的金字塔是一系列以金字塔形状排列的**分辨率逐步降低**,且来源于同一张原始图的图像集合。其通过**梯次向下采样**获得,直到达到某个终止条件才停止采样。<br />金字塔的**底部**是待处理图像的**高分辨率**表示,而**顶部**是**低分辨率**的近似。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。<br />[<br />](https://blog.csdn.net/zhu_hongji/article/details/81536820)
- 高斯金字塔 ( Gaussian pyramid): 用来向下/降采样,主要的图像金字塔
- 拉普拉斯金字塔(Laplacian pyramid): 用来从金字塔低层图像重建上层未采样图像,在数字图像处理中也即是预测残差,可以对图像进行最大程度的还原,配合高斯金字塔一起使用。
高斯金字塔用来向下采样图像,注意降采样其实是由金字塔底部向上采样,分辨率降低,它和我们理解的金字塔概念相反(注意);而拉普拉斯金字塔则用来从金字塔底层图像中向上采样重建一个图像。
要从金字塔第i层生成第i+1层(我们表示第i+1层为G_i+1),我们先要用高斯核对G_1进行卷积,然后删除所有偶数行和偶数列。新得到图像面积会变为源图像的四分之一。按上述过程对输入图像G_0执行操作就可产生出整个金字塔。
当图像向金字塔的上层移动时,尺寸和分辨率就降低。
OpenCV中,从金字塔中上一级图像生成下一级图像的可以用PryDown。而通过PryUp将现有的图像在每个维度都放大两遍。
对图像向上采样:pyrUp函数
对图像向下采样:pyrDown函数
这里的向下与向上采样,是对图像的尺寸而言的(和金字塔的方向相反),向上就是图像尺寸加倍,向下就是图像尺寸减半。而如果我们按上图中演示的金字塔方向来理解,金字塔向上图像其实在缩小,这样刚好是反过来了。
但需要注意的是,PryUp和PryDown**不是互逆**的,即PryUp不是降采样的逆操作。这种情况下,图像首先在每个维度上扩大为原来的两倍,**新增的行(偶数行)以0填充**。然后给指定的**滤波器进行卷积**(实际上是一个在每个维度都扩大为原来两倍的过滤器) 去**估计**“丢失”像素的近似值。PryDown( )是一个会丢失信息的函数。为了恢复原来更高的分辨率的图像,我们要获得由降采样操作丢失的信息,这些数据就和拉普拉斯金字塔有关系了。<br />[<br />](https://blog.csdn.net/zhu_hongji/article/details/81536820)
高斯金字塔(Gaussian pyramid)
高斯金字塔是通过**高斯平滑和亚采样**获得一系列下采样图像,也就是说第K层高斯金字塔通过平滑、亚采样就可以获得**K+1层**高斯图像,高斯金字塔包含了一系列**低通滤波器**,其截至频率从上一层到下一层是以**因子2逐渐增加**,所以高斯金字塔可以跨越很大的频率范围。金字塔的图像如下<br />![20180809153353469.png](https://cdn.nlark.com/yuque/0/2022/png/12931169/1656666109512-f5a6201c-08b3-4c3d-9e3e-5fc71bd082fd.png#clientId=u0da4c69d-bc2b-4&crop=0&crop=0&crop=1&crop=1&from=drop&id=ub4895aff&margin=%5Bobject%20Object%5D&name=20180809153353469.png&originHeight=343&originWidth=551&originalType=binary&ratio=1&rotation=0&showTitle=false&size=12901&status=done&style=none&taskId=uc647e857-6f0b-485c-8e29-efaac2c8195&title=)<br />对图像的向**下取样**操作,即**缩小图像**。<br />为了获取层级为 G_i+1 的金字塔图像,方法步骤如下:<br /><1> 对图像G_i进行**高斯内核卷积**,进行**高斯模糊;**<br /><2> 将所有**偶数行和列去除**。<br /> 得到的图像即为G_i+1的图像,显而易见,结果图像只有**原图的四分之一**。通过对输入图像G_i(原始图像)**不停迭代**以上步骤就会得到整个金字塔。同时我们也可以看到,向下取样会**逐渐丢失图像的信息**。以上就是对图像的向下取样操作,即缩小图像。<br />[<br />](https://blog.csdn.net/zhu_hongji/article/details/81536820)<br />对图像的向**上取样**,即**放大图像**<br />方法步骤如下:<br /><1> 将图像在每**个方向扩大为原来的两倍**,**新增的行和列以0填充**<br /><2> 使用先前同样的内核**(乘以4)**与**放大后的图像卷积**,获得 “**新增像素”的近似值**<br /> 得到的图像即为放大后的图像,但是与原来的图像相比会发觉比较**模糊**,因为在缩放的过程中已经**丢失了一些信息**,如果想在缩小和放大整个过程中减少信息的丢失,这些数据形成了拉普拉斯金字塔。<br />[<br />](https://blog.csdn.net/zhu_hongji/article/details/81536820)
拉普拉斯金字塔(Laplacian pyramid)
将降采样之后的图像再进行上采样操作,然后与之前还没降采样的原图进行做差得到残差图!为还原图像做信息的准备!
也就是说,拉普拉斯金字塔是通过源图像减去先缩小后再放大的图像的一系列图像构成的。保留的是残差!为图像还原做准备!