1. 图像金字塔特点
图像金字塔是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构。一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。
2. 向下采样
2.1. 特点
从第i层获取第i+1层 Gi→Gi+1
- 对图像Gi进行高斯核卷积。
- 删除所有的偶数行和列。
原始图像 M×N→处理结果 M/2×N/2,每次处理后,结果图像是原来的1/4。重复执行该过程,构造图像金字塔。
注意:向下会丢失信息。
2.2. 相关函数与程序实现
函数:dst=cv2.pyrDown(src)
dst
—向下取样结果
src
—原始图像
python代码
#%%向下采样 import cv2 img1 = cv2.imread(r"C:\Users\lihuanyu\Desktop\opencv\image\man.bmp") r1=cv2.pyrDown(img1) r2=cv2.pyrDown(r1) r3=cv2.pyrDown(r2) cv2.imshow("original",img1) cv2.imshow("PyrDown1",r1) cv2.imshow("PyrDown2",r2) cv2.imshow("PyrDown3",r3) cv2.waitKey() cv2.destroyAllWindows()
结果
3. 向上采样
3.1. 特点
- 在每个方向上扩大为原来的2倍,新增的行和列以0填充。
- 使用与“向下采用”同样的卷积核乘以4,获取“新增像素”的新值。
注意:
3. 放大后的图像比原始图像要模糊。
4. 向上采样、向下采样不是互逆操作。经过两种操作后,无法恢复原有图像。
3.2. 相关函数与程序实现
函数:dst=cv2.pyrUp(src)
dst
—向上取样结果
src
—原始图像
python代码
#%%向上采样 import cv2 img1 = cv2.imread(r"C:\Users\lihuanyu\Desktop\opencv\image\p.bmp") r1=cv2.pyrUp(img1) r2=cv2.pyrUp(r1) r3=cv2.pyrUp(r2) cv2.imshow("original",img1) cv2.imshow("PyrDown1",r1) cv2.imshow("PyrDown2",r2) cv2.imshow("PyrDown3",r3) cv2.waitKey() cv2.destroyAllWindows()
结果
4. 拉普拉斯金子塔
4.1. 特点
拉普拉斯金字塔(Laplacianpyramid): 用来从金字塔低层图像重建上层未采样图像,在数字图像处理中也即是预测残差,可以对图像进行最大程度的还原,配合高斯金字塔一起使用。
4.2. 相关函数与程序实现
函数:Li = Gi - PyrUp(PyrDown(Gi))
Gi
,原始图像
Li
,拉普拉斯金字塔图像
python代码
#%% import cv2 o=cv2.imread(r"C:\Users\lihuanyu\Desktop\opencv\image\lena.bmp") od=cv2.pyrDown(o) odu=cv2.pyrUp(od) lapPyr=o-odu cv2.imshow("original",o) cv2.imshow("lapPyr",lapPyr) cv2.waitKey() cv2.destroyAllWindows()
结果