OpenCV 11(图像金字塔)

这篇具有很好参考价值的文章主要介绍了OpenCV 11(图像金字塔)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、 图像金字塔

**图像金字塔**是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构。简单来说, 图像金字塔是同一图像不同分辨率的子图集合.

图像金字塔最初用于机器视觉和图像压缩。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低

OpenCV 11(图像金字塔),opencv,计算机视觉,图像处理

**常见两类图像金字塔**

**高斯金字塔 ( Gaussian pyramid)**: 用来向下/降采样,主要的图像金字塔
**拉普拉斯金字塔(Laplacian pyramid)**: 用来从金字塔低层图像重建上层未采样图像,在数字图像处理中也即是预测残差,可以对图像进行最大程度的还原,配合高斯金字塔一起使用。 

1.1 高斯金字塔

**高斯金字塔**是通过高斯平滑和亚采样获得一系列下采样图像.

原理非常简单, 如下图所示:

OpenCV 11(图像金字塔),opencv,计算机视觉,图像处理

原始图像 M * N -> 处理后图像 M/2 * N/2.

每次处理后, 结果图像是原来的1/4.

  • 图片与卷积核卷积  -- 高斯平滑
  • 去除所有偶数的行和列 -- 图像缩小到原图的1/4 

OpenCV 11(图像金字塔),opencv,计算机视觉,图像处理

注意: 向下采样会丢失图像信息.

- pyrDown 向下采样

import cv2
import numpy as np


img = cv2.imread('./lena.png')

print(img.shape)
dst = cv2.pyrDown(img)

print(dst.shape)

cv2.imshow('img', img)
cv2.imshow('dst', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

OpenCV 11(图像金字塔),opencv,计算机视觉,图像处理

- pyrUp 向上取样

  向上取样是向下取样的相反过程, 是指图片从小变大的过程.

OpenCV 11(图像金字塔),opencv,计算机视觉,图像处理

 文章来源地址https://www.toymoban.com/news/detail-703552.html

 # 向上采样
  # 向下采样
  import cv2
  import numpy as np
  
  
  img = cv2.imread('./lena.png')
  
  print(img.shape)
  dst = cv2.pyrUp(img)
  
  print(dst.shape)
  
  cv2.imshow('img', img)
  cv2.imshow('dst', dst)
  cv2.waitKey(0)
  cv2.destroyAllWindows()

- 取样可逆性研究

​        在根据向上和向下取样的原理, 我们能够发现图像在变大变小的过程中是有信息丢失的. 即使把图片变回原来大小,图片也不是原来的图片了, 而是损失了一定的信息.

# 研究采样中图像的损失
import cv2
import numpy as np


img = cv2.imread('./lena.png')

# 先放大, 再缩小
dst = cv2.pyrUp(img)
dst = cv2.pyrDown(dst)

cv2.imshow('img', img)
cv2.imshow('dst', dst)
cv2.imshow('loss', img - dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

1.2 拉普拉斯金字塔

OpenCV 11(图像金字塔),opencv,计算机视觉,图像处理

将降采样之后的图像再进行上采样操作,然后与之前还没降采样的原图进行做差得到残差图(为还原图像做信息的准备)

也就是说,拉普拉斯金字塔是通过源图像减去先缩小后再放大的图像的一系列图像构成的。保留的是残差!

残差就是丢失掉的信息。

拉普拉斯金字塔是由高斯金字塔构成的没有专门的函数。

拉普拉斯金字塔图像只像图像边缘,它的大部分元素都是0,用于图像压缩。

OpenCV 11(图像金字塔),opencv,计算机视觉,图像处理

OpenCV 11(图像金字塔),opencv,计算机视觉,图像处理 

# 研究采样中图像的损失
import cv2
import numpy as np


img = cv2.imread('./lena.png')

dst = cv2.pyrDown(img)
dst = cv2.pyrUp(dst)

lap0 = img - dst
cv2.imshow('img', img)
cv2.imshow('dst', dst)
cv2.imshow('lap0', lap0)
cv2.waitKey(0)
cv2.destroyAllWindows()

OpenCV 11(图像金字塔),opencv,计算机视觉,图像处理

# 研究采样中图像的损失
import cv2
import numpy as np


img = cv2.imread('./lena.png')

dst = cv2.pyrDown(img)
dst = cv2.pyrUp(dst)

lap0 = img - dst
cv2.imshow('img', img)
cv2.imshow('dst', dst)
cv2.imshow('lap0', lap0)


第二层拉普拉斯效果:
dst1 = cv2.pyrDown(dst)
dst2 = cv2.pyrUp(dst1)
lap1 = dst - dst2 
cv2.imshow('lap1 ', lap1)

cv2.waitKey(0)
cv2.destroyAllWindows()

OpenCV 11(图像金字塔),opencv,计算机视觉,图像处理

 

到了这里,关于OpenCV 11(图像金字塔)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python Opencv实践 - 图像金字塔

     

    2024年02月12日
    浏览(22)
  • opencv基础45-图像金字塔01-高斯金字塔cv2.pyrDown()

    图像金字塔(Image Pyramid)是一种用于多尺度图像处理和分析的技术,它通过构建一系列不同分辨率的图像,从而使得图像可以在不同尺度下进行处理和分析。图像金字塔在计算机视觉、图像处理和计算机图形学等领域中广泛应用,可以用于目标检测、特征提取、图像匹配、尺

    2024年02月13日
    浏览(25)
  • 【OpenCV实现平滑图像金字塔,轮廓:入门】

    文章内容的概要: 平滑图像金字塔: 轮廓: 使用图像金字塔去创造一个新的水果,“橘果(Orapple)” 函数:cv.pyrUp(), cv.pyrDown() 通常,我们处理图像时使用的是固定分辨率。然而,在某些情况下,我们需要在不同的分辨率下处理同一张图像。例如,在搜索图像中的某些内容(

    2024年02月08日
    浏览(31)
  • OpenCV图像金字塔pyrDown下采样

    2024年02月13日
    浏览(27)
  • Opencv 图像金字塔----高斯和拉普拉斯

    原文:图像金字塔----高斯和拉普拉斯 图像金字塔 是图像中多尺度表达的一种,最初用于机器视觉和图像压缩,最主要用于图像的分割、融合。 高斯金字塔是由底部的最大分辨率图像逐次向下采样得到的一系列图像。最下面的图像分辨率最高,越往上图像分辨率越低。 高斯

    2024年02月09日
    浏览(25)
  • OpenCV官方教程中文版 —— 图像金字塔

    • 学习图像金字塔 • 使用图像创建一个新水果:“橘子苹果” • 将要学习的函数有:cv2.pyrUp(),cv2.pyrDown()。 一般情况下,我们要处理是一副具有固定分辨率的图像。但是有些情况下,我们需要对同一图像的不同分辨率的子图像进行处理。比如,我们要在一幅图像中查找某

    2024年02月07日
    浏览(33)
  • 构建图像金字塔:探索 OpenCV 的尺度变换技术

    在计算机视觉领域,图像金字塔是一种强大的技术,可用于在不同尺度下对图像进行分析和处理。金字塔的概念借鉴了古埃及的金字塔形状,其中每一级都是前一级的缩小版本。本篇博客将深入探讨如何构建图像金字塔,以及如何在实际应用中利用金字塔来解决各种计算机视

    2024年02月08日
    浏览(34)
  • OpenCV基础补充自适应阈值及图像金字塔

    对于OpenCV知识点还有很多,基础的大家可以参考前面几节。 OpenCv基础之绘图及几何变换实例 OpenCV基础操作之图像的形态学运算 OpenCV基础操作之边界填充、图像阈值以及图像平滑处理 OpenCV基础之边缘检测与轮廓描绘 OpenCV基础之模板匹配与直方图 OpenCV图像处理之傅里叶变换

    2024年02月02日
    浏览(25)
  • 图像金字塔、高斯金字塔、拉普拉斯金字塔是怎么回事?附利用拉普拉斯金字塔和高斯金字塔重构原图的Python-OpenCV代码

    图像金字塔是对图像进行多分辨率表示的一种有效且简单的结构。 一个图像金字塔是一系列以金字塔形状排列的分辨率逐步降低的图像。图像金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率表示。 图像金字塔有什么作用? 图像金字塔常用于图像缩放、图像重

    2024年02月04日
    浏览(39)
  • Python-OpenCV中的图像处理-图像金字塔

    同一图像的不同分辨率的子图集合,如果把最大的图像放在底部,最小的放在顶部,看起来像一座金字塔,故而得名图像金字塔。 cv2.pyrUp():上采样 cv2.pyrDown():下采样 高斯金字塔的顶部是通过将底部图像中的连续的行和列去除得到的。顶部图像中的每个像素值等于下一层图

    2024年02月13日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包