请用python编出数字图像处理中的影像金字塔
时间: 2023-10-02 11:08:43 浏览: 81
python 图像金字塔代码
以下是使用Python编写数字图像处理中的图像金字塔的示例代码:
```python
import cv2
# 加载图像
img = cv2.imread('image.jpg')
# 构建高斯金字塔
gaussian_pyramid = [img]
for i in range(6):
img = cv2.pyrDown(img)
gaussian_pyramid.append(img)
# 构建拉普拉斯金字塔
laplacian_pyramid = []
for i in range(5, 0, -1):
gaussian_expanded = cv2.pyrUp(gaussian_pyramid[i])
laplacian = cv2.subtract(gaussian_pyramid[i-1], gaussian_expanded)
laplacian_pyramid.append(laplacian)
# 显示金字塔
cv2.imshow('Original Image', img)
for i in range(len(gaussian_pyramid)):
cv2.imshow(f'Gaussian Pyramid Level {i}', gaussian_pyramid[i])
for i in range(len(laplacian_pyramid)):
cv2.imshow(f'Laplacian Pyramid Level {i}', laplacian_pyramid[i])
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,我们首先加载了一个名为`image.jpg`的图像,并使用`cv2.imread()`函数将其读入内存。接下来,我们使用`cv2.pyrDown()`函数构建高斯金字塔,它将图像缩小一半。我们将这些金字塔层存储在`gaussian_pyramid`列表中。
接下来,我们使用`cv2.pyrUp()`和`cv2.subtract()`函数创建拉普拉斯金字塔。拉普拉斯金字塔的每一层是由高斯金字塔的当前层减去该层的上一层经过放大后的结果得到的。我们将这些金字塔层存储在`laplacian_pyramid`列表中。
最后,我们使用`cv2.imshow()`函数显示原始图像和每个金字塔层。`cv2.waitKey()`函数等待用户按下任意键,然后使用`cv2.destroyAllWindows()`函数关闭所有窗口。
阅读全文