展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

图像金字塔

  • 简介
金字塔的底层是比较大,越往上越小,图像金字塔就是把图像组合成金字塔的形状。
图像金字塔可以做图像特征提取,做特征提取时有时可能不光对原始输入做特征提取,可能还会对好几层图像金字塔做特征提取。可能每一层特征提取的结果是不一样的,再把特征提取的结果总结在一起。
常用的两种图像金字塔形式:
高斯金字塔
拉普拉斯金字塔

  • 高斯金字塔

  • 代码案例

import cv2 #opencv的缩写为cv2
import matplotlib.pyplot as plt # matplotlib库用于绘图展示
import numpy as np # numpy数值计算工具包
# 魔法指令,直接展示图,Jupyter notebook特有
%matplotlib inline
def cv_show(img,name):
cv2.imshow(name,img)
cv2.waitKey()
cv2.destroyAllWindows()
img = cv2.imread('01_Picture/09_AM.png')
cv_show(img,'img')
print(img.shape)
# 执行结果:(442, 340, 3)
img = cv2.imread('01_Picture/09_AM.png')
up = cv2.pyrUp(img)
cv_show(up,'up')
print(up.shape)
# 执行结果:(884, 680, 3)
img = cv2.imread('01_Picture/09_AM.png')
down = cv2.pyrDown(img)
cv_show(down,'down')
print(down.shape)
# 执行结果:(221, 170, 3)
up = cv2.pyrUp(up) # 上采样之后再上采样
cv_show(up,'up')
print(up.shape)
# 执行结果:(1768, 1360, 3)
img = cv2.imread('01_Picture/09_AM.png')
up = cv2.pyrUp(img)
up_down = cv2.pyrDown(up) # 先上采样再下采样
cv_show(np.hstack((img,up_down)),'up_down')
  • 执行结果
点击查看详情
  • 原图

  • 放大

  • 缩小

  • 再次放大

  • 先放大再缩小,原图与结果图对比

  • 拉普拉斯金字塔
拉普拉斯金字塔的每一层图像尺寸不变。
拉普拉斯金字塔的每一层操作都是上一层处理后作为输入,该输入减去该输入缩小放大后的图像,获得该层的输出

  • 代码案例
img = cv2.imread('01_Picture/09_AM.png')
domn = cv2.pyrDown(img)
down_up = cv2.pyrUp(down)
L_1 = img - down_up
cv_show(L_1,'L_1')
print(L_1.shape)
# 执行结果:(442, 340, 3)
  • 执行结果
posted @   DogLeftover  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示