OpenCV图像处理技术(Python)——图像金字塔

© Fu Xianjun. All Rights Reserved.

一、理论基础

图像金字塔是同一图像不同分辨率的子图集合,是通过对原图像不断地向下采样而产生的,即由高分变率的图像(大尺寸)产生低分辨率的近似图像(小尺寸)。
· 邻域滤波器: 采用邻域平均技术求原始图像的近似图像。该滤波器能够产生平均金字塔。
· 高斯滤波器: 采用高斯滤波器对原始图像进行滤波,得到高斯金字塔。这是OpenCV函数cv2.pyrDown()所采用的方式。

二、图像金字塔

1.高斯金字塔构建

1.1pyrDown函数及使用
·作用 :用于实现图像函数高斯金字塔操作中的向下采样。
·语法格式
dst=cv2.pyrDown(scr[,dstsize[,borderType]])

1.2pyrUp函数及使用
·作用: 用于实现图像函数高斯金字塔操作中的向上采样。
·语法格式
dst=cv2.pyrUp(scr[,dstsize[,borderType]])
代码如下:

import cv2 
import numpy as np
#高斯金字塔
def pyramid_demo(image,level):
    temp = image.copy()
    pyramid_images = []
    for i in range(level):
        dst = cv2.pyrDown(temp)
        pyramid_images.append(dst)
        cv2.imshow("pyramid_down_"+str(i), dst)
        temp = dst.copy()
    return pyramid_images[level-1]
src = cv2.imread("lena.jpg")
cv2.imshow("input image", src)
pyramid_demo(src,4)
cv2.waitKey(0)
cv2.destroyAllWindows()

结果如下:
OpenCV图像处理技术(Python)——图像金字塔_第1张图片

2.拉普拉斯金字塔构建

2.1拉普拉斯金字

代码如下:

# 拉普拉斯金字塔构建
G0 = cv2.imread("lena.bmp")
cv2.imshow("input image",G0)
G1=cv2.pyrDown(G0)
G2=cv2.pyrDown(G1)
G3=cv2.pyrDown(G2)
G4=cv2.pyrDown(G3)
L0 = cv2.subtract(G0,cv2.pyrUp(G1))
L1 = cv2.subtract(G1,cv2.pyrUp(G2))
L2 = cv2.subtract

你可能感兴趣的:(OpenCV图像处理技术(Python)——图像金字塔)