openCV高阶操作之金字塔操作与直方图分析

OpenCV图像处理:金字塔与直方图分析

在计算机视觉领域,图像金字塔和直方图是基础且重要的工具。图像金字塔用于多尺度分析(如图像缩放、特征融合),直方图则用于描述图像像素分布(如亮度调整、对比度增强)。本文将通过Python和OpenCV实现这两部分功能,并结合代码详细讲解原理。


一、图像金字塔:上下采样与高斯/拉普拉斯金字塔

1.1 金字塔基础概念

图像金字塔是一种多分辨率表示方法,通过**下采样(降分辨率)上采样(升分辨率)**生成不同尺度的图像集合。常见的金字塔有两种:

  • 高斯金字塔:通过高斯模糊后下采样生成,用于多尺度表示。
  • 拉普拉斯金字塔:通过高斯金字塔相邻层差值生成,用于图像重建(保留细节)。

1.2 下采样(pyrDown)

cv2.pyrDown() 用于对图像进行下采样,生成分辨率减半的图像(宽高各缩小为1/2)。其核心步骤是:

  1. 对原图进行高斯模糊(核大小为5x5),消除高频细节;
  2. 将图像尺寸从 (w, h) 缩小为 (w//2, h//2)(舍入取整)。
import cv2
import numpy as np
import matplotlib.pyplot as plt

# 读取灰度图像(G0层,原始层)
face = cv2.imread('longpic.png', cv2.IMREAD_GRAYSCALE)
cv2.imshow('Original Face (G0)', face)
cv2.waitKey(0)

# 下采样生成G1层(分辨率减半)
face_down_1 = cv2.pyrDown(face)  # 尺寸:(w//2, h//2)
cv2.imshow('Downsampled G1', face_down_1)
cv2.waitKey(0)

# 继续下采样生成G2层(分辨率再减半)
face_down_2 = cv2.pyrDown(face_down_1)  # 尺寸:(w//4, h//4)
cv2.imshow('Downsampled G2', face_down_2)
cv2.waitKey(0)

1.3 上采样(pyrUp)

cv2.pyrUp() 用于对图像进行上采样,生成分辨率翻倍的图像(宽高各放大为2倍)。其核心步骤是:

  1. 将图像尺寸从 (w, h) 放大为 (w*2, h*2)(新增像素用0填充);
  2. 对放大后的图像进行高斯模糊(核大小为5x5)。
# 上采样生成G1'层(
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值