OpenCV-Python实战(12)——图像金字塔

一、高斯核--金字塔

1.1 向下采样

python 复制代码
img = cv2.pyrDown(src=*,dstsize=*,borderType=*)

**img:**目标图像。

**src:**原始图像。

**dstsize:**目标图像的shape,默认为:宽度和高度为原先的一半。

**borderType:**边界样式,使用默认即可。

python 复制代码
import cv2

img = cv2.imread('Lena.png')

img1 = cv2.pyrDown(src=img)
img2 = cv2.pyrDown(src=img1)
img3 = cv2.pyrDown(src=img2)

cv2.imshow('img',img)
cv2.imshow('img1',img1)
cv2.imshow('img2',img2)
cv2.imshow('img3',img3)

cv2.waitKey(0)
cv2.destroyAllWindows()

1.2 向上采样

python 复制代码
img = cv2.pyrUp(src=*,dstsize=*,borderType=*)

**img:**目标图像。

**src:**原始图像。

**dstsize:**目标图像的shape,默认为:宽度和高度为原先的一半。

**borderType:**边界样式,使用默认即可。

python 复制代码
import cv2

img = cv2.imread('Lena.png')

img1 = cv2.pyrDown(src=img)
img2 = cv2.pyrDown(src=img1)
img3 = cv2.pyrDown(src=img2)

img4 = cv2.pyrUp(src=img3)
img5 = cv2.pyrUp(src=img4)
img6 = cv2.pyrUp(src=img5)


cv2.imshow('img',img)
cv2.imshow('img1',img4)
cv2.imshow('img2',img5)
cv2.imshow('img3',img6)


cv2.waitKey(0)
cv2.destroyAllWindows()

由图可以看出上采样并不能完全还原原图像素点,还原像素点一般以 0 填充,所以图像会变模糊。

二、拉普拉斯--金字塔

python 复制代码
img = cv2.imread('Lena.png')  # 原图
L = img - cv2.pyrUp(src = cv2.pyrDown(src=img)) # 拉普拉斯图像

拉普拉斯金字塔 = 当前层高斯金字塔 - 下一层高斯金字塔上采样结果。

即高斯金字塔上下采样间丢失的像素点值。

python 复制代码
import cv2

img = cv2.imread('Lena.png')  # 原图

G = cv2.pyrDown(src=img)      # 下采样1次
L = img - cv2.pyrUp(src=G)    # 拉普拉斯图像
img1 = L + cv2.pyrUp(src=G)   # 恢复结果图像

cv2.imshow('img',img)
cv2.imshow('L',L)
cv2.imshow('img1',img1)

cv2.waitKey(0)
cv2.destroyAllWindows()
相关推荐
小林ixn5 分钟前
MCP 保姆级入门指南:AI 的“万能充电口”到底怎么玩?
人工智能
转转技术团队2 小时前
没有测试的核心代码,怎么交给 AI 重构
人工智能
爱读源码的大都督3 小时前
Claude Code源码分析(三):为什么系统提示词中需要有tools呢?
前端·人工智能·后端
半个落月4 小时前
LLM如何预测下一个Token?一文拆解Transformer核心流程
人工智能
触底反弹4 小时前
🔥 2026 年爆火的 Harness Engineering 到底是什么?从原理到实战一文讲透
javascript·人工智能·程序员
user4465117917914 小时前
源码深读 XAgent:6 个 Agent 怎么分工?工具失败不崩、死循环怎么防?
人工智能
魏祖潇4 小时前
SDD 完整指南——Spec 端打底、Story 端交付、留白区
人工智能·后端
常丛丛4 小时前
5.9 式输出:实时查看 LangGraph Agent 思考过程
人工智能
Token炼金师4 小时前
从节点图到低秩矩阵:ComfyUI 推理引擎与 LoRA 适配机制拆解
人工智能·aigc