Fork me on GitHub

python opencv图像金字塔

通俗点讲,

对一个图片进行金字塔操作,涉及如下两个函数;

pyrDown( )函数的作用是向下采样并模糊一张图片,说白了就是缩小一张图片。

pyrUp( )函数的作用是向上采样并模糊一张图像,说白了就是放大一张图片;

python示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import cv2

def pyramid():
img = cv2.imread('.\obma.jpg', cv2.IMREAD_COLOR)

lower_reso1 = cv2.pyrDown(img)
lower_reso2 = cv2.pyrDown(lower_reso1)
lower_reso3 = cv2.pyrDown(lower_reso2)
cv2.imshow('original', img)
cv2.imshow('pyrdown1', lower_reso1)
cv2.imshow('pyrdown2', lower_reso2)
cv2.imshow('pyrdown3', lower_reso3)
cv2.waitKey(0)
cv2.destroyAllWindows()

if __name__=='__main__':
pyramid()

每调用一次pyrDown()操作,图片的H,W就减小至原来的一半。故面积缩小至原来的四分之一;

预览:

pyrUp()相反,每调用一次,图片的H,W就增大至原来的2倍。故面积增大至原来的4倍;

需要注意的是,PryUp和PryDown不是互逆的,即PryUp不是降采样的逆操作。如果一张图片先调用pyrdown()一次,然后再调用pyrUp(),图片大小会恢复至原始大小,但是图像清晰度会下降

您的鼓励是我持之以恒的动力