Python +OpenCV CH12:图像金字塔

1 理论基础

1.1 什么是图像金字塔

  • 同一图像的不同分辨率的子图集合
  • 形式: . 向下取样以及向上取样
    在这里插入图片描述

1.2 向下取样: 分辨率不断降低

  • 从第i层获取第i+1层
  • 实现方法
    ・1) 对图像Gi进行高斯核卷积(高斯滤波 - 让临近的点权重更大)
    ・2) 删除所有的偶数行与列
    ・3) 原始图像M*N → 处理后 M/2 * N/2 , 也就是原来的1/4, 称为 Octave操作
    ・4) 重复执行该过程. 注意: 会丢失信息

1.3 向上取样: 分辨率不断增大

  • 从第i层获取第i+1层 注意: 会模糊
  • 实现方法
    ・1) 在每个方向上扩大为原来的2倍
    ・2) 新增的行列以0填充
    ・3) 使用与"向下采样"相同的卷积核(滤波),乘以4 获取"新增像素"的新值.
    ・4) 乘以4的原因是, 原像素值周围的3个0,会把自身像素值给分掉.
    在这里插入图片描述

1.4 对比

  • 向上采样,向下采样不是互逆操作
  • 经过两种操作后,无法恢复原有图像
    在这里插入图片描述

2 pryDown函数及应用

2.1 cv2.pyrDown函数

dst = cv2.pyrDown(src)
・dst – 向下采样结果;
・src– 源图像;

2.2 代码示例

  • 示例1 (单次取样)代码
import cv2
import numpy as np
src = cv2.imread("image\\lena.bmp", cv2.IMREAD_GRAYSCALE)
dst=cv2.pyrDown(src )
cv2.imshow("original",src )
cv2.imshow("PyrDown",dst)
cv2.waitKey()
cv2.destroyAllWindows()
  • 示例1 (单次取样) 运行结果

在这里插入图片描述

  • 示例2(多次取样) 代码
import cv2
import numpy as np
o=cv2.imread("image\\man.bmp")
r1=cv2.pyrDown(o)
r2=cv2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值