1.高斯金字塔
主要使用cv.pyrDown()函数和cv.pyrUp()函数。
cv.pyrDown()函数从一个高分辨率大尺寸的图像向上构建一个金字塔(尺寸变小,分辨率降低。
cv2.pyrDown(src, dst=None, dstsize=None, borderType=None)
参数如下:
- src:表示输入图像
- dst:表示输出图像
- dstsize:表示输出图像的大小
- borderType:表示图像边界的处理方式
cv2.pyrUp()函数从一个低分辨率小尺寸的图像向下构建一个金子塔(尺寸变大,但分辨率不会)
cv2.pyrUp(src, dst=None, dstsize=None, borderType=None)
参数同上。
代码示例:
import cv2 as cv
img = cv.imread('C:\\Users\\dell\\Desktop\\prac files\\prac1.jpg')
dst1 = cv.pyrDown(img)
dst2 = cv.pyrDown(dst1)
dst3 = cv.pyrUp(dst2)
dst4 = cv.pyrUp(dst3)
cv.imshow("prac1", dst2)
cv.imshow("prac2", dst4)
cv.waitKey(0)
2.拉普拉斯金字塔
用高斯金字塔的每一层图像,减去其上一层图像上采样并高斯卷积之后的预测图像,得到一系列的差值图像即为 LP 分解图像(其中 LP 即为拉普拉斯金字塔图像)。计算公式为:Ln =Gn?PyrUp(PyrDown(Gn))
代码示例:
import cv2 as cv
img = cv.imread('C:\\Users\\dell\\Desktop\\prac files\\prac1.jpg')
dst1 = cv.pyrDown(img)
dst2 = cv.pyrUp(dst1)
lap = cv.subtract(img, dst2)
cv.imshow("prac", lap)
cv.waitKey(0)
cv.destroyAllWindows()
|