opencv-python图像处理 ----详解高斯、拉普拉斯图像金字塔

一、概念
图像金字塔是由一幅图像的多个不同分辨率的子图所构成的图像集合。这个图像集合是由原图像不断下采样;产生的,最底层是原图像,该层的上层图像是该层图像下采样产生,因此,图像的大小就是 : NN —N/2N/2----…一直到顶点1*1。
图片来源百度
根据下采样前使用的卷积核操作的不同,图像金字塔可以分为高斯金字塔、拉普拉斯金字塔等等。下采样的一般步骤为:先将图片滤波,然后将滤波后的图像去掉其偶数行和偶数列,在滤波器的选择上我们有多种方式,cv包中使用的默认滤波器为高斯滤波器
由于采样后的图像将越来越小,因此可以通过上采样来对图像进行尺寸扩大,每经历一次上采样,图像的大小都将扩大二倍。由于上采样需要我们创造原来没有的像素点,因此该像素点值的填充有多种方式,比如最近邻插值法、零填充法等等。使用零填充法就是将新创建的周围像素点的像素值填充为0, 然后再使用高斯滤波进行平滑处理。

拉普拉斯金字塔:
上面方法创建的金字塔称为高斯金字塔,高斯金字塔是通过对一幅图像进行一系列大的下采样产生。而有时候我们想要得到小图像中的大尺寸清晰图像,这个时候就要用到拉普拉斯金字塔。其公式为:

L_IMG = IMG - pyrUp(img + 1)

拉普拉斯金字塔的作用在于能够恢复高分辨率的图像,由于使用下采样操作,会使原图像中的一部分特征(像素点)丢失,因此即使是上采样后的图像也不能与原图保持特征一致。但使用拉普拉斯金字塔可以做到恢复高分辨率,实现步骤见下代码。

二、程序中的实现

1、下采样实现函数:

img_down = cv.pyrDown(img1)

2、上采样实现的函数

img_up = cv.pyrUp(img)

3、创建一层拉普拉斯金字塔图像

img1 = cv.imread("car_red.jpg", cv
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值