对一个图片进行金字塔操作,涉及如下两个函数;
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(),图片大小会恢复至原始大小,但是
图像清晰度会下降
。