目录
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