opencv学习之:图像金字塔(高斯金字塔,拉普拉斯金字塔,图像向上、向下采样)

import cv2
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as c
def cv_show(img):
    cv2.imshow("img",img)
    cv2.waitKey(0)
    
    
def cv_read(img_file,gray=True):
    if gray == True:
        return cv2.imread(img_file,0)
    else:
        return cv2.imread(img_file)

图像金字塔

  • 高斯金字塔
  • 拉普拉斯金字塔
    在这里插入图片描述

高斯金字塔

向下采样(缩小图片尺寸)

在这里插入图片描述

向上采样(放大图片尺寸)

在这里插入图片描述

img = cv2.imread("img.png")
up = cv2.pyrUp(img)
cv_show(up)

在这里插入图片描述

img = cv2.imread("img.png")
down = cv2.pyrDown(img)
cv_show(down)

在这里插入图片描述

拉普拉斯金字塔

  • 拉普拉斯金字塔也有很多层,每一层的计算公式都是
    在这里插入图片描述

  • 也就是说,使用原图 img 减去通过 高斯金字塔下采样再上采样的图片,每层都是如此

  • G 0 , . . . , G L G_0,...,G_LG0,...,GL 代表金字塔中的每一层
    在这里插入图片描述

'''只展示第一层的拉普拉斯金字塔'''
layer1 = img - cv2.pyrUp(cv2.pyrDown(img))
cv_show(layer1)

在这里插入图片描述


版权声明:本文为qq_42902997原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。