『youcans 的 OpenCV 例程200篇 - 总目录』
【youcans 的 OpenCV 例程200篇】31. 图像金字塔(cv2.pyrDown)
扩展例程:1.40 图像金字塔
图像金字塔是一种以多分辨率来解释图像的结构,常用于图像分割、图像压缩和机器视觉。
在需要处理同一图像的不同分辨率的子图时,需要创建一组具有不同分辨率的原始图像。把最大的图像放在底部,最小的放在顶部,看起来就像一座金字塔,称为图像金字塔。
图像金字塔是一系列来源于同一张原始图像、以金字塔形状排列的分辨率逐步降低的图像集合。
金字塔的底部是原始图像的高分辨率的表示,顶部是低分辨率的近似。
OpenCV 为向下采样和向上采样提供了两个函数:cv2.pyrDown 和 cv2.pyrUp。
函数说明:
cv2.pyrDown(src, dst=None, dstsize=None, borderType=None) → dst # 向下采样
cv2.pyrUp(src, dst=None, dstsize=None, borderType=None) → dst # 向上采样
函数 cv2.pyrDown 是从高分辨率的大尺寸图像逐次向下采样得到一系列图像,构建一个金字塔,称为高斯金字塔(Gaussian pyramid),实际上是一个重复高斯平滑并重新对图像采样的过程。拉普拉斯金字塔每次向下采样后将再次向上采样,并记录残差信息,可以对图像进行最大程度的还原。
# 1.40 图像金字塔def GussianPyramid(image): # 高斯金字塔level = 2 # 金字塔的层数imgCopy = image.copy()pyramidImages = [] # 创建图像 Listfor i in range(level):dst = cv2.pyrDown(imgCopy) # 下采样pyramidImages.append(dst) # 添加到图像 Listcv2.imshow("pyramid down "+str(i), dst)imgCopy = dst.copy()return pyramidImagesimg = cv2.imread("../images/imgLena.tif") # 读取彩色图像(BGR)
cv2.namedWindow("input image", cv2.WINDOW_AUTOSIZE)
cv2.imshow("input image", img)
GussianPyramid(img) # 高斯图像金字塔
# LapalianPyramid(img) # 拉普拉斯图像金字塔
cv2.waitKey(0)
(本节完)
版权声明:
youcans@xupt 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/125112487)
Copyright 2022 youcans, XUPT
Crated:2021-11-18
【第3章:图像的几何变换】
30. 图像的缩放(cv2.resize)
31. 图像金字塔(cv2.pyrDown)