📜  使用 OpenCV 的图像金字塔 | Python

📅  最后修改于: 2022-05-13 01:55:11.506000             🧑  作者: Mango

使用 OpenCV 的图像金字塔 | Python

图像金字塔是图像处理中最漂亮的概念之一。通常,我们使用默认分辨率的图像,但很多时候我们需要更改分辨率(降低它)或调整原始图像的大小,这样图像金字塔就派上用场了。

pyrUp()函数将大小增加到其原始大小的两倍,而pyrDown()函数将大小减小到一半。如果我们将原始图像保留为基础图像并继续对其应用pyrDown函数并将图像保持在垂直堆栈中,它将看起来像一个金字塔。通过pyrUp函数对原始图像进行放大也是如此。

一旦我们缩小,如果我们将其重新缩放到原始大小,我们会丢失一些信息,并且新图像的分辨率比原始图像的分辨率低得多。

下面是一个图像金字塔的例子——

import cv2
import matplotlib.pyplot as plt
  
img = cv2.imread("images/input.jpg")
  
layer = img.copy()
  
for i in range(4):
    plt.subplot(2, 2, i + 1)
  
    # using pyrDown() function
    layer = cv2.pyrDown(layer)
  
    plt.imshow(layer)
    cv2.imshow("str(i)", layer)
    cv2.waitKey(0)
      
  
cv2.destroyAllWindows()

输出:

图像金字塔的优点:

  • 降低分辨率
  • 获取各种尺寸的图像
  • 图像混合
  • 边缘检测