给我以下几个实验的代码1.计算原始图像的高斯金字塔 2.计算原始图像的高斯差分金字塔(DoG) 3.计算原始图像的拉普拉斯金字塔(LoG)
时间: 2024-03-18 18:41:18 浏览: 9
以下是Python实现的代码,分别用于计算原始图像的高斯金字塔、高斯差分金字塔和拉普拉斯金字塔:
1. 计算原始图像的高斯金字塔
```python
import cv2
import numpy as np
def gaussian_pyramid(img, levels):
G = img.copy()
pyr = [G]
for i in range(levels):
G = cv2.pyrDown(G)
pyr.append(G)
return pyr
```
2. 计算原始图像的高斯差分金字塔(DoG)
```python
import cv2
import numpy as np
def gaussian_pyramid(img, levels):
G = img.copy()
pyr = [G]
for i in range(levels):
G = cv2.pyrDown(G)
pyr.append(G)
return pyr
def difference_of_gaussians(pyr):
DoG = []
for i in range(len(pyr)-1):
dog = cv2.absdiff(pyr[i], cv2.pyrUp(pyr[i+1]))
DoG.append(dog)
return DoG
```
3. 计算原始图像的拉普拉斯金字塔(LoG)
```python
import cv2
import numpy as np
def laplacian_of_gaussian(img, levels):
pyr = gaussian_pyramid(img, levels)
LoG = []
for i in range(levels):
up = cv2.pyrUp(pyr[i+1])
L = cv2.subtract(pyr[i], up)
LoG.append(L)
return LoG
```