log gabor python代码
时间: 2023-04-06 17:01:15 浏览: 138
以下是 log gabor 的 Python 代码示例:
```python
import numpy as np
import cv2
def log_gabor_filter(img, sigma, theta, lambd, gamma):
# 计算图像的傅里叶变换
fft_img = np.fft.fft2(img)
# 获取图像的中心点
rows, cols = img.shape
crow, ccol = int(rows/2), int(cols/2)
# 创建一个网格,用于计算滤波器的频率
x, y = np.meshgrid(np.arange(-cols/2, cols/2), np.arange(-rows/2, rows/2))
# 计算滤波器的频率
theta = np.deg2rad(theta)
x_theta = x * np.cos(theta) + y * np.sin(theta)
y_theta = -x * np.sin(theta) + y * np.cos(theta)
freq = np.sqrt(x_theta**2 + y_theta**2) / lambd
# 计算滤波器的方向
angle = np.arctan2(y_theta, x_theta)
# 创建 log gabor 滤波器
gb = np.exp(-(np.log(freq/sigma)**2) / (2 * np.log(gamma)**2))
gb *= np.exp(1j * angle)
# 进行滤波
filtered = np.real(np.fft.ifft2(fft_img * gb))
return filtered
# 读取图像
img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
# 进行 log gabor 滤波
filtered = log_gabor_filter(img, sigma=10, theta=0, lambd=10, gamma=1.2)
# 显示结果
cv2.imshow('Filtered Image', filtered)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
注意:以上代码仅为示例,具体参数需要根据实际情况进行调整。
阅读全文