OpenCV笔记18:图像金字塔

同一图像具有不同分辨率的图像被称为图像金字塔(因为它们被保存在堆叠中,底部最大图像,顶部最小图像看起来像金字塔)。
图像金字塔应用于处理同一图像的不同分辨率的图像。
图像金字塔操作的是图像的像素问题。
在这里插入图片描述
1、学习目标
如何使用Python和OpenCV的Image Pyramids。
使用图像金字塔 来做图像缩放
2、使用的函数方法
图像金字塔有两种。
1)高斯金字塔:
cv2.pyrDown()
cv2.pyrUp()
2)拉普拉斯金字塔:
拉普拉斯金字塔由高斯金字塔形成。没有专属功能。拉普拉斯金字塔图像仅与边缘图像相似。它的大部分元素都是零。它们用于图像压缩。
3、程序
(1)
在这里插入图片描述
结果
在这里插入图片描述
(2)
在这里插入图片描述
出现的结果类似于这样
在这里插入图片描述
第二个程序运行时出现了一个问题:

Traceback (most recent call last):
  File "F:/OpenCV/pyramid.py", line 18, in <module>
    laplacian = cv2.subtract(gp[i], gaussian_extended)
cv2.error: OpenCV(4.1.0) C:\projects\opencv-python\opencv\modules\core\src\arithm.cpp:663: error: (-209:Sizes of input arguments do not match) The operation is neither 'array op array' (where arrays have the same size and the same number of channels), nor 'array op scalar', nor 'scalar op array' in function 'cv::arithm_op'

好像是图片不匹配的问题,我现在一头雾水,有没有哪个大佬指点一下。

函数程序讲解:
(1)高斯金字塔
(a)原理:
高斯金字塔的顶部是通过将底部图像的连续行与列去掉得到的。
每一层图像中的像素值等于下一层图像中对应位置5个像素的高斯加权平均值。这样操作一个MN的图像就变成了(M/2)(N/2)的图像,图像的面积就变为原来的1/4,连续进行这样的操作,就会得到一些列的金字塔的图像。
(b)用来向下采样
向下采样缩小图像的时候, 实际上丢失 了一些信息。

(2)
从一个高分辨率大尺寸的图像向上构建一个金字塔(尺寸变小,分辨率降低)

cv2.pyrDown()
参数:
tmp: 当前图像,初始化为原图像 src 。
dst: 目的图像( 显示图像,为输入图像的一半)
Size( tmp.cols/2, tmp.rows/2 ) :目的图像大小 

默认情况:
直接输入需要操作的图像,图像按缩小1/4来处理
(3)
从一个低分辨率小尺寸的图像向上构建一个金字塔(尺寸变大,但分辨率不会增加)

cv2.pyrUp()

(4)
拉普拉斯金字塔(Laplacian pyramid):
用来从金字塔低层图像重建上层未采样图像
拉普拉斯金字塔可以由高斯金字塔计算得来。公式如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值