OpenCV+python 图像金字塔
程序员文章站
2023-12-27 08:50:15
...
OpenCV中图像金字塔主要包括两类:高斯金字塔和拉普拉斯金字塔。先来看一下原理图:
高斯金字塔
离金字塔尖越近,则图像越小。离底部越近,则图像越大。一般来讲金字塔分为向上采样和向下采样,
向下采样实际上就是图像进行缩小,即离塔尖越来越近:
来看一下代码:
import cv2
img = cv2.imread('pie.png')
img = cv2.pyrDown(img)
cv2.imshow("img",img)
cv2.waitKey()
cv2.destroyAllWindows()
向上采样则正好相反,实际上就是放大图像:
import cv2
img = cv2.imread('pie.png')
img = cv2.pyrUp(img)
cv2.imshow("img",img)
cv2.waitKey()
cv2.destroyAllWindows()
那么假设我们设想一下,先执行一次上采样,然后再执行一次下采样,那么图像还是跟原图像一样吗,实验一下就可以知道肯定是不一样的,因为图像在此过程中会丢失很多信息,可以看一下对比,发现图像已经跟原图像不一样清晰了:
拉普拉斯金字塔
看一下拉普拉斯金字塔的原理:
实际上就是高斯金字塔的嵌套,不多介绍了,看一下代码:
import cv2
img = cv2.imread('cat.jpg')
cv2.imshow("orgi",img)
down = cv2.pyrDown(img)
up = cv2.pyrUp(down)
result = img - up
cv2.imshow("result",result)
cv2.waitKey()
cv2.destroyAllWindows()
拉普拉斯金字塔简单了解一下就可以