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()
相关推荐
GuWenyue20 小时前
放弃云端API!一套React+WebGPU本地LLM方案,零数据上传、离线可用
前端·人工智能·前端框架
love530love21 小时前
OpenClaw Windows Companion 桌面客户端 连接 LM Studio 完整配置指南
人工智能·windows·python·openclaw
墨舟的AI笔记1 天前
从文本提示到可交互道具:AIGC 生成游戏资产的语义对齐与合规校验
人工智能
rain_sxr1 天前
逼近上限就裁剪:大模型 Token 计数与前端上下文预算管理
人工智能
资深数据库专家1 天前
月之暗面Kimi:K3之后,开源怎么走?
人工智能
小林ixn1 天前
告别“屎山”与“幻觉”:3个核心心法,让你的Vibe Coding体验起飞
人工智能·agent
汤姆小白1 天前
06-CLI命令参考
人工智能
颜酱1 天前
04 | 召回前置准备:搭好召回所需的四个数据库
前端·人工智能·后端
A洛1 天前
Codex 实战:一句话完成 Temu 商品图采集与印花抠图自动化
运维·人工智能·自动化·codex