OpenCV学习(4.8) 图像金字塔

1.目的

在这一章当中,

  • 我们将了解图像金字塔。
  • 我们将使用图像金字塔创建一个新的水果,“Orapple”
  • 我们将看到这些功能: cv.pyrUp() , cv.pyrDown()

在通常情况下我们使用大小恒定的图像。但在某些情况下,我们需要使用不同分辨率的同幅图像。例如,在搜索图像中的某些内容如脸部信息时,并不确定该内容在图像中占据的大小。在这种情况下,我们需要创建一组不同分辨率的相同图像,并在所有图像中搜索该内容。这些不同分辨率的图像被称为图像金字塔(因为当它们堆叠排列时,底部为最高分辨率图像而顶部为最低分辨率图像,看起来像金字塔)。

图像金字塔有两种: 1)高斯金字塔和 2)拉普拉斯金字塔

通过去除较低级别图像(较高分辨率)中的连续行和列来形成高斯金字塔中的较高级别图像(较低分辨率)。较高级别图像的每个像素值由低一级别图像的 5 个像素值高斯加权得到,由此图像面积减少到原来的四分之一。这些图像被称为 Octave(组)。当我们在金字塔中上升时(即分辨率降低),重复相似的操作。同理,在金字塔中下降时,每个级别的图像面积大小为上一级的四倍。我们可以使用 cv.pyrDown() 和 cv.pyrUp() 函数获取高斯金字塔。

2. 图像金字塔

import cv2
import numpy as np
from matplotlib import pyplot as plt

# 读取原始图像
image = cv2.imread(r'D:\study\EmotionDetection_RealTime-master\data\data\te\13.jpg', cv2.IMREAD_COLOR)

# 创建图像金字塔
# 这里我们将创建三个层次的金字塔
pyramid_images = [image]
cv2.imshow('image',image)
downscaled_image = cv2.pyrDown(image)
cv2.imshow('downscaled_image',downscaled_image)

upsampled_image = cv2.pyrUp(image)

cv2.imshow('upsampled_image',upsampled_image)


# 等待按键后关闭所有窗口
cv2.waitKey(0)
cv2.destroyAllWindows()
2.1 cv2.pyrDown()

cv2.pyrDown()函数用于对图像进行下采样,即减少图像的分辨率。它通常用于创建图像金字塔的较低层次。下采样的具体过程是:

  1. 对图像进行高斯模糊。
  2. 将模糊后的图像沿水平方向和垂直方向各减半。

这样,原始图像的分辨率被降低了一半。

2.2 cv2.pyrUp()

cv2.pyrUp()函数用于对图像进行上采样,即增加图像的分辨率。它通常用于创建图像金字塔的较高层次。上采样的具体过程是:

  1. 将图像复制到一个新的尺寸更大的图像中。
  2. 在新图像的边缘填充零。
  3. 对新图像进行高斯模糊。

这样,原始图像的分辨率被提高了一倍。

原始图像的分辨率通常指的是图像在水平和垂直方向上的像素数量。这是图像的一个重要属性,因为它决定了图像的清晰度和细节水平。

例如,一个分辨率为1024x768的图像意味着图像在水平方向上有1024个像素,在垂直方向上有768个像素。这意味着图像的总面积是786432个像素(1024x768)。

分辨率通常以像素为单位表示,但也可以用其他单位,如英寸(inches)或厘米(centimeters)。在这种情况下,分辨率指的是每英寸或每厘米的像素数量。例如,一个分辨率为300dpi(dots per inch)的图像意味着每英寸有300个像素。

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-06-09 05:36:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-09 05:36:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-09 05:36:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-09 05:36:02       20 阅读

热门阅读

  1. 平滑值(pinghua)

    2024-06-09 05:36:02       8 阅读
  2. Ubuntu bash按Table不联想

    2024-06-09 05:36:02       10 阅读
  3. 素数幂变换问题

    2024-06-09 05:36:02       9 阅读
  4. html前端怎么赚钱:探索多元盈利途径

    2024-06-09 05:36:02       9 阅读
  5. 1、项目介绍:为什么要做此项目。

    2024-06-09 05:36:02       7 阅读
  6. ssh远程管理和密钥和yum源

    2024-06-09 05:36:02       6 阅读
  7. 动态规划学习

    2024-06-09 05:36:02       8 阅读
  8. 单片机毕业设计论文都些什么,章节规划

    2024-06-09 05:36:02       9 阅读
  9. leetcode-01-[704]二分查找[27]移除元素

    2024-06-09 05:36:02       12 阅读
  10. Leetcode:有效的括号

    2024-06-09 05:36:02       11 阅读
  11. 深入解析Kafka消息丢失的原因与解决方案

    2024-06-09 05:36:02       11 阅读
  12. 大模型日报2024-06-08

    2024-06-09 05:36:02       8 阅读