opencv-图像金字塔

图像金字塔是一种图像处理技术,它通过不断降低图像的分辨率,形成一系列图像 。金字塔分为两种类型:高斯金字塔和拉普拉斯金字塔

  1. 高斯金字塔(Gaussian Pyramid):

高斯金字塔是通过使用高斯滤波和降采样(缩小)操作构建的 。每一层的图像都是前一层图像的一部分。在OpenCV中,可以使用cv2.pyrDown()cv2.pyrUp() 函数构建高斯金字塔。

  • cv2.pyrDown(src[, dst[, dstsize[, borderType]]]): 通过高斯内核进行降采样,缩小图像。
  • cv2.pyrUp(src[, dst[, dstsize[, borderType]]]): 通过插值进行升采样,放大图像。

示例代码:

python 复制代码
import cv2

# 读取图像
img = cv2.imread(r"C:\Users\mzd\Desktop\opencv\images.jpg")

# 构建高斯金字塔
layer = img.copy()
gaussian_pyramid = [layer]

for i in range(6):
    layer = cv2.pyrDown(layer)
    gaussian_pyramid.append(layer)

# 显示原始图像和金字塔图像
cv2.imshow('Original Image', img)

for i in range(6):
    cv2.imshow(f'Layer {i+1}', gaussian_pyramid[i])

# 等待用户按下任意键
cv2.waitKey(0)
cv2.destroyAllWindows()
  1. 拉普拉斯金字塔(Laplacian Pyramid):

拉普拉斯金字塔是由高斯金字塔构建而来的,每一层都是其高斯金字塔层与其扩展(上采样)版本的差。在OpenCV中,可以使用cv2.subtract() 函数构建拉普拉斯金字塔。

示例代码:

python 复制代码
 
import cv2

# 读取图像
img = cv2.imread(r"C:\Users\mzd\Desktop\opencv\images.jpg")
# 构建高斯金字塔
layer = img.copy()
gaussian_pyramid = [layer]

for i in range(6):
    layer = cv2.pyrDown(layer)
    gaussian_pyramid.append(layer)

# 构建拉普拉斯金字塔
laplacian_pyramid = [gaussian_pyramid[5]]

for i in range(5, 0, -1):
    gaussian_expanded = cv2.pyrUp(gaussian_pyramid[i])

    # Ensure the sizes match before subtraction
    if gaussian_pyramid[i-1].shape[:2] == gaussian_expanded.shape[:2]:
        laplacian = cv2.subtract(gaussian_pyramid[i-1], gaussian_expanded)
        laplacian_pyramid.append(laplacian)
    else:
        print(f"Size mismatch in level {i}.")
        break

# 显示原始图像、高斯金字塔和拉普拉斯金字塔
cv2.imshow('Original Image', img)

for i in range(min(6, len(laplacian_pyramid))):  # Ensure loop doesn't go out of range
    cv2.imshow(f'Laplacian Layer {i}', laplacian_pyramid[i])

# 等待用户按下任意键
cv2.waitKey(0)
cv2.destroyAllWindows()

这里构建了一个6层的高斯金字塔,然后使用高斯金字塔构建拉普拉斯金字塔。拉普拉斯金字塔的每一层都包含了对应层高斯金字塔的细节信息。金字塔的构建在图像处理中常用于图像融合、图像金字塔匹配等应用。

相关推荐
木雷坞9 分钟前
Physical AI 数据工厂怎么落地?先把 CUDA、K8s、Quay 镜像拉取稳定下来
人工智能·容器·kubernetes
QYR-分析14 分钟前
高级辅助驾驶系统控制模块行业分析报告
人工智能
STLearner22 分钟前
AI论文速读 | QuitoBench:支付宝高质量开源时间序列预测基准测试集
大数据·论文阅读·人工智能·深度学习·学习·机器学习·开源
Lucifer__hell38 分钟前
【测试】Axure原型的AI测试用例生成方案
人工智能·测试用例·axure
跨境卫士苏苏43 分钟前
清关链路更透明以后跨境卖家如何减少资料反复修改
大数据·人工智能·安全·跨境电商·亚马逊
easy_coder1 小时前
ReAct 进入死循环?用 Harness 把它拉回来
人工智能·架构·云计算
我是无敌小恐龙1 小时前
Java SE 零基础入门Day06 方法重载+Debug调试+String字符串全套API详解(超全干货)
java·开发语言·人工智能·python·transformer·无人机·量子计算
aidesignplus1 小时前
从平方到线性:Mamba如何挑战Transformer的长序列效率瓶颈?
人工智能·python·深度学习·vim·transformer
三维频道1 小时前
工业级三维扫描实测:汽车灯具复杂结构件的全尺寸 3D 测量方案分析
java·人工智能·python·数码相机·3d·汽车·汽车轻量化制造
人工智能AI技术1 小时前
过拟合与欠拟合:机器学习最基础核心问题
人工智能