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()
相关推荐
机器之心19 小时前
字节Seedream 4.0将全量开放!抢先评测来了,我们摸索出AI生图一大波「邪修」玩法
人工智能·openai
空白到白19 小时前
机器学习-集成学习
人工智能·机器学习·集成学习
水凌风里19 小时前
4.4 机器学习 - 集成学习
人工智能·机器学习·集成学习
雲_kumo19 小时前
集成学习:从理论到实践的全面解析
人工智能·机器学习·集成学习
用户51914958484520 小时前
30条顶级APT与蓝队攻防单行命令:网络战场终极对决
人工智能·aigc
双向3320 小时前
AI 辅助文档生成:从接口注释到自动化 API 文档上线
人工智能
CoovallyAIHub20 小时前
SBP-YOLO:面向嵌入式悬架的轻量实时模型,实现减速带与坑洼高精度检测
深度学习·算法·计算机视觉
算法打盹中20 小时前
基于树莓派与Jetson Nano集群的实验边缘设备上视觉语言模型(VLMs)的性能评估与实践探索
人工智能·计算机视觉·语言模型·自然语言处理·树莓派·多模态·jetson nano
卿·静20 小时前
Node.js对接即梦AI实现“千军万马”视频
前端·javascript·人工智能·后端·node.js