OpenCV-38 图像金字塔

目录

一、图像金字塔

[1. 高斯金字塔](#1. 高斯金字塔)

[2. 拉普拉斯金字塔](#2. 拉普拉斯金字塔)


一、图像金字塔

图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割 ,是一种以多分辨率来解释图像的有效但概念简单的结构。简单来说,图像金字塔是同一图像不同分辨率的子图集合。

图像金字塔最初用于机器视觉和图像压缩,一幅图像的金字塔是一系列以金字塔状排列的分辨率逐步降低 ,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样 。金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。

目前有两类常用的图像金字塔

高斯金字塔(Gaussian pyramid):用于向下/降采样(向下不是方向向下,而是指的是分辨率减小),是主要的图像金字塔

拉普拉斯金字塔(Laplacian pyramid):用于从金字塔底层图像重建上层未采样图像,在数字图像处理中也即是预测残差,可以对图像进行最大程度的还原,配合高斯金字塔一起使用。

1. 高斯金字塔

高斯金字塔是通过高斯平滑 和**亚采样(subsampling)**获得一系列下采样的图像。

原理如下:

GI指图像

原始图像 M * N -> 处理后图像 M/2 * N/2(奇数也可以进行,系统会自动进行类似于四舍五入的操作)

每次处理后,结果图像时原来的1/4

注意:

向下采样会丢失图像的信息

向上采样与向下采样操作相反

  1. 将图像在每个方向扩大为原来的两倍,新增的行和列以0补充。

  2. 使用先前同样的内核(乘以4)与放大后的图像卷积。获得近似值。

pyrDown(img)--- 向下采样

pyrUp(img)--- 向上采样

示例代码如下:

复制代码
import cv2
import numpy as np
lena = cv2.imread("beautiful women.png")
print(lena.shape)
# 分辨率减小,下采样
new_1 = cv2.pyrDown(lena)
new_2 = cv2.pyrDown(new_1)
print(new_1.shape)
cv2.imshow("img", lena)
cv2.imshow("img1", new_1)
cv2.imshow("img2", new_2)
# 分辨率增大,上采样
new_3 = cv2.pyrUp(lena)
cv2.imshow("img3", new_3)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出结果如下:

2. 拉普拉斯金字塔

拉普拉斯金字塔没有特定的函数,只是用数学公式进行推导得到的。

将降采样之后的图像在进行上采样操作,与原图进行做差得到残差图。 为还原图像做信息准备。

即拉普拉斯金字塔最终得到的是残差。

拉普拉斯金字塔由高斯金字塔构成,没有专门的函数。

拉普拉斯金字塔图像类似图像边缘,它的大部分元素都是0, 用于图像压缩。

示例代码如下:

复制代码
import cv2
lena = cv2.imread("beautiful women.png")
# 计算第0层的拉普拉斯金字塔
# 先缩小再放大
dst = cv2.pyrDown(lena)
# 分辨率增大,上采样
dst = cv2.pyrUp(dst)
dst.resize((634, 627, 3))
print(dst.shape)
print(lena.shape)
lap0 = lena - dst
cv2.imshow("img", lap0)
#  计算第1层的拉普拉斯金字塔
dst1 = cv2.pyrDown(dst)
dst1 = cv2.pyrUp(dst1)
dst1.resize((634, 627, 3))
lap1 = dst - dst1
cv2.imshow("img1", lap1)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出结果如下:

第0层拉普拉斯金字塔:

第1层拉普拉斯金字塔:

相关推荐
杨杨杨大侠3 小时前
RAG、记忆、上下文,这几个东西到底怎么串起来?
人工智能·agent
system_error_x5 小时前
MCP协议开发实战:从零搭建AI Agent工具链
人工智能
破茧蝴蝶5 小时前
Python分布式爬虫完整教程
开发语言·python
Sayai5 小时前
ComfyUI+混元视频实战:12G 显存跑 13G 模型,5 分钟出片(国产开源,附模型与工作流)
人工智能·aigc·音视频·comfyui·hunyuanvideo·混元视频
benchmark_cc5 小时前
量化系统架构设计:为什么应该将数据获取与策略逻辑解耦?
python·数据分析·pandas·量化交易·股票数据·quantdash
燧机科技SuiJi5 小时前
山体坍塌落石滑坡泥石流监测系统 落石泥石流监控摄像机
大数据·人工智能·深度学习·yolo
凤山老林6 小时前
Spring Boot 启动冲刺:耗时剖析、懒加载策略与事件驱动初始化优化
spring boot·后端·python
国科安芯6 小时前
立方星与微纳卫星综合电子微型化趋势下的抗辐射MCU选型综述
人工智能·单片机·嵌入式硬件·mcu·risc-v·抗辐射
小白快快跑哦6 小时前
python-字符串全解(六):正则表达式-逻辑运算或
python·正则表达式·字符串·逻辑运算
诸神缄默不语6 小时前
小春学习日刊 2026年第4期:2026.10.16
人工智能