高斯金字塔(涉及高斯分布)
简介
向下采样(缩小,对金字塔来说是自下向上)
第一步: 高斯滤波去噪
第二部:将偶数行和列去掉
向上采样(放大,对金字塔来说是自上向下)
第一步:在每个方向上扩大两倍,新增的行和列填充0
第二步:利用之前同样的内核进行卷积,获得近似值(高斯滤波?)
注意:无论是先下后上还是先上后下的采样,不会使图片回到原本,因为无论上采样还是下采样都会造成原本信息的丢失。
案例
#高斯金字塔
lena = cv2.imread('Picture/Lena.png')
gassUp = cv2.pyrUp(lena)
gassDown = cv2.pyrDown(lena)
gassUpDown = cv2.pyrDown(gassUp)
gassDownUp = cv2.pyrUp(gassDown)
cv2.imshow('GassUp',gassUp)
cv2.waitKey(0)
cv2.destroyAllWindows()
自己一个一个看 不能使用np.hstack一起显示,因为维度是不同的 ,比如原图是512,但经过pyrUp之后维度就是1024了,所以是无法使用数组放的。
拉普拉斯金字塔
简介
它可以看作是 base + detail 分解,其中 base 就是低分辨率下的低频信号,而 detail 就是不同尺度下的高频细节。图像的 detail 中只有少部分是高频,大部分细节接近于 0,只要把接近于 0 的那部分数据置为 0,就可以减少数据存储所需空间,同时图像的基本信息不变。实际存储只需要记录每个尺度下的少量高频 + 低分辨率的低频(图面积还小)
案例
#拉普拉斯金字塔
laplacianpyr = lena - gassDownUp
cv2.imshow('Laplacianpyr',laplacianpyr)
cv2.waitKey(0)
cv2.destroyAllWindows()