Python+OpenCV图像处理(第7课---图像金字塔)

在这里插入图片描述
向下取样:缩小图像(先高斯滤波,再删除所有偶数行列,缩小为原来的1/4)。
向上取样:放大图像(每个方向扩大为原来的2倍,用0填充;使用与向下取样同样的卷积核乘以4,获取新增像素的值)。
在这里插入图片描述

pyrDown函数

# -*- coding: utf-8 -*-

import cv2

img = cv2.imread("C:\\imgs\\man.bmp", flags = cv2.IMREAD_UNCHANGED)

pyrDown1 = cv2.pyrDown(img)
pyrDown2 = cv2.pyrDown(pyrDown1)
pyrDown3 = cv2.pyrDown(pyrDown2)

cv2.imshow("img", img)
cv2.imshow("pyrDown1", pyrDown1)
cv2.imshow("pyrDown2", pyrDown2)
cv2.imshow("pyrDown3", pyrDown3)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述

pyrUp函数

# -*- coding: utf-8 -*-

import cv2

img = cv2.imread("C:\\imgs\\lena256.bmp", flags = cv2.IMREAD_UNCHANGED)

pyrUp1 = cv2.pyrUp(img)
pyrUp2 = cv2.pyrUp(pyrUp1)

cv2.imshow("img", img)
cv2.imshow("pyrUp1", pyrUp1)
cv2.imshow("pyrUp2", pyrUp2)

cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述

拉普拉斯金字塔

在这里插入图片描述

# -*- coding: utf-8 -*-

import cv2

img = cv2.imread("C:\\imgs\\lena256.bmp", flags = cv2.IMREAD_UNCHANGED)

pyrDown1 = cv2.pyrDown(img)
pyrUp1 = cv2.pyrUp(pyrDown1)
laplace1 = img - pyrUp1

pyrDown2 = cv2.pyrDown(pyrDown1) # 上次向下取样的图像作为新的原始图像
pyrUp2 = cv2.pyrUp(pyrDown2)
laplace2 = pyrDown1 - pyrUp2

cv2.imshow("img", img)
cv2.imshow("laplace1", laplace1)
cv2.imshow("laplace2", laplace2)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述

特别说明

本文参考网易云课堂《Python+OpenCV图像处理》

发布了323 篇原创文章 · 获赞 193 · 访问量 20万+

猜你喜欢

转载自blog.csdn.net/ccnuacmhdu/article/details/103837356