图像金字塔从分辨率的角度分析处理图像。图像金字塔的底部为原始图像,对原始图像进行梯次向下采样,得到金字塔的其他各层图像。层次越高,分辨率越低,图像越小。通常,每向上一层,图像的宽度和高度就为下一层的一半。常见的图像金字塔可分为高斯金字塔和拉普拉斯金字塔。
高斯金字塔有向下和向上两种采样方式。向下采样时,原始图像为第0层,第1次向下采样的结果为第1层,第2次向下采样的结果为第2层,依此类推。每次采样图像的高度和宽度都减小为原来的一半,所有的图层构成高斯金字塔。向上采样的过程和向下采样相反,每次采样图像的高度和宽度都扩大为原来的二倍。
1.高斯金字塔向下采样
OpenCV中的cv2.pyrDown()函数用于执行高斯金字塔构造的向下采样步骤,其基本格式如下。
ret=cv2.pyrDown(image[,dstsize[,borderType]])
参数说明如下。
ret为返回的结果图像,类型和输入图像相同。
image为输入图像。
dstsize为结果图像大小。
borderType为边界值类型。
高斯金字塔向下采样
import cv2
img0=cv2.imread('qizi.jpg')
img1=cv2.pyrDown(img0) #第1次采样
img2=cv2.pyrDown(img1) #第2次采样
cv2.imshow('img0',img0) #显示第0层
cv2.imshow('img1',img1) #显示第1层
cv2.imshow('img2',img2) #显示第2层
print('0层形状:',img0.shape) #输出图像形状
print('1层形状:',img1.shape) #输出图像形状
print('2层形状:',img2.shape) #输出图像形状
cv2.waitKey(0)