opencv学习(图像金字塔)

1.什么是图像金字塔

图像金字塔是一种多尺度图像表示方法 ,通过对原始图像进行下采样 (缩小)和上采样(放大),生成一系列不同分辨率的图像集合,形似 "金字塔"(底部是高分辨率原始图像,向上逐渐变为低分辨率图像)。

2.核心作用

多尺度分析:不同分辨率的图像适用于检测不同大小的目标(如大目标在低分辨率图像中更易识别,小目标需要高分辨率)。

图像融合:结合不同尺度的图像信息(如拉普拉斯金字塔可无缝融合两张图像的细节)。

降维与压缩:低分辨率图像数据量小,便于快速处理和存储。

特征提取:在多个尺度上提取特征(如 SIFT 特征依赖金字塔实现尺度不变性)。

3.常见的2种操作方法

高斯金字塔,拉普拉斯金字塔

(1)高斯金字塔

是最常见的类型,通过下采样上采样操作生成,核心是高斯模糊(平滑)和降采样。

下采样(缩小图像):cv2.pyrDown()

上采样(放大图像):cv2.pyrUp()

如代码示例:

python 复制代码
img=cv2.imread('aiye.jpg')
def cv_show(name,img):
    cv2.imshow(name,img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
cv_show('aiye',img)
print(img.shape)
#高斯金字塔(向下采样(图像缩小),向上采样(图像放大,矩阵添0))

up1=cv2.pyrUp(img)
cv_show('up1',up1)
print(up1.shape)

down1=cv2.pyrDown(img)
cv_show('down1',down1)
print(down1.shape)

'''
先执行上采样再执行下采样,或者先下后上都是无法恢复到原图的
'''
(2)拉普拉斯金字塔

基于高斯金字塔构建,用于保留图像下采样过程中丢失的细节,核心是 "原始图像与上采样后的下采样图像的差值"。

计算方式

公式:Li​=Gi​−pyrUp(pyrDown(Gi)​)

如代码示例:

python 复制代码
up2=cv2.pyrUp(down1)
'''
img 和 up2 的尺寸不同(一个是 (299,299,3),另一个是 (300,300,3)),无法进行减法运算(lap=img-up2),
则先让两个图像的尺寸大小一致了再进行减法。要么改img要么改up2
'''
up2_rs=cv2.resize(up2,(img.shape[1],img.shape[0]))
lap=img-up2_rs
cv_show('lap',lap)
print(lap.shape)
相关推荐
轮到我狗叫了6 分钟前
GAN初次阅读
人工智能·神经网络·生成对抗网络
一只土卜皿6 分钟前
列线图/诺莫图 含概率轴
人工智能
造夢先森7 分钟前
【白话神经网络(三)】从Transformer到XXX
人工智能·神经网络·transformer
研究点啥好呢18 分钟前
3月22日GitHub热门项目推荐|网页浏览,何须手动
人工智能·python·开源·github
zl_vslam19 分钟前
SLAM中的非线性优-3D图优化之相对位姿Between Factor-四元数(十二)
人工智能·算法·计算机视觉
知行产研23 分钟前
神宝能源:启动国内首个极寒工况5G+无人驾驶项目
人工智能·自动驾驶
love530love31 分钟前
ComfyUI-3D-Pack:Windows 下手动编译 mesh_inpaint_processor C++ 加速模块
c++·人工智能·windows·python·3d·hunyuan3d·comfyui-3d-pack
uzong36 分钟前
“腾讯QClaw全面开放”,不花 Token 钱、真正体验一把小龙虾的快乐,最低成本全面了解龙虾
人工智能·后端
C羊驼38 分钟前
C语言学习笔记(十一):数据在内存中的存储
c语言·经验分享·笔记·学习
剑穗挂着新流苏31241 分钟前
111_神经网络的指路明灯:损失函数与反向传播深度解析
人工智能·深度学习·神经网络