图像金字塔(image pyramid) 分为两种:高斯金字塔  和  拉普拉斯金字塔。

 

高斯金字塔

高斯金字塔模仿的是图像的不同的尺度,尺度应该怎样理解?对于一副图像,你近距离观察图像,与你在一米之外观察,看到的图像效果是不同的,前者比较清晰,后者比较模糊,前者比较大,后者比较小,通过前者能看到图像的一些细节信息,通过后者能看到图像的一些轮廓的信息,这就是图像的尺度。

 

实现

将原始图像当作金子塔的最底层;然后进行按图像长宽各减少二分之一进行下采样。在进行下采样之前需要进行高斯滤波(也就是高斯核进行卷积)

import cv2
img_down = cv2.pyrDown(img) #直接调包进行下采样

高斯滤波

            高斯滤波是一种线性平滑滤波器,对于服从正态分布的噪声有很好的抑制作用。在实际场景中,我们通常会假定图像包含的噪声为高斯白噪声,所以在许多实际应用的预处理部分,都会采用高斯滤波抑制噪声。高斯滤波和均值滤波一样,都是利用一个掩膜和图像进行卷         积求解。不同之处在于:均值滤波器的模板系数都是相同的,为1。而高斯滤波器的模板系数,随着距离模板中心距离的增大,系数减小(服从二维高斯分布)。所以,高斯滤波器相比于均值滤波器而言,对图像模糊程度较小,更能保持图像的整体细节。

              

import cv2
 
img=cv2.imread('../paojie.jpg')
 

out=cv2.GaussianBlur(img,(3,3),1.3)#(3, 3)表示高斯滤波器的长和宽都为3,1.3表示滤波器的标准差
 

cv2.imwrite('out.jpg',out)
 
cv2.imshow('result',out)
 
cv2.waitKey(0)
 
cv2.destroyAllWindows()

看到一篇将

 

拉普拉斯金字塔

拉普拉斯金子塔可以理解残差金子塔,它是用来存储下采样后的图像于原始图像的差异的。假如原始图像为 G0,金字塔中任意一层图像为 Gi,下采样后得到 Gi+1 = Down(Gi), 由于图像下采样之后尺寸发生了变化,若将下采样后的图进行上采用得到 Up(Down(Gi)), 但是下采样后的变化是不可逆的即不可能恢复成原始图像。因此,有部分信息丢失不能完全恢复成原始图像。拉普拉斯金字塔就是记录金字塔每一层下采样后再上采用回来与该层之间的差异的。

def laplacian(gaussian_pyramid, up_times=5):
    laplacian_pyramid = [gaussian_pyramid[-1]]

    for i in range(up_times, 0, -1):
        # i的取值为5,4,3,2,1,0也就是拉普拉斯金字塔有6层
        temp_pyrUp = cv2.pyrUp(gaussian_pyramid[i])
        temp_lap = cv2.subtract(gaussian_pyramid[i-1], temp_pyrUp)
        laplacian_pyramid.append(temp_lap)
    return laplacian_pyramid

cv2.pyrDown : 先对图像进行高斯平滑,然后再进行降采样(将图像尺寸行和列方向缩减一半)

  缩减的过程是这样的,隔行隔列删去图像中的对应行和列!由此我们也可以看出,这样缩减会带来的影响就是:原图中那些精细的细节边缘等地方,会因此变得锯齿状,产生失真,因此为了缩小之后图像看起来自然,必须进行平滑,这也就是这个算法为什么在降采样之前先对    图像进行了高斯模糊的原因。

                                        

cv2.pyrUp : 先对图像进行升采样(将图像尺寸行和列方向增大一倍),然后再进行高斯平滑。


 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值