用python写一个对数gabor提取图片纹理的代码
时间: 2023-05-11 20:03:32 浏览: 139
以下是一个简单的 Python 代码示例,用于提取图像纹理的对数 Gabor 特征:
```python
import cv2
import numpy as np
def log_gabor_filter(image, sigma, theta, Lambda, gamma, psi):
"""对数 Gabor 滤波器"""
kernel = cv2.getGaborKernel((21, 21), sigma, theta, Lambda, gamma, psi, ktype=cv2.CV_32F)
filtered = cv2.filter2D(image, cv2.CV_8UC3, kernel)
return np.log(filtered + 1)
# 读取图像
image = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
# 提取对数 Gabor 特征
sigma = 5
theta = 0
Lambda = 10
gamma = 0.5
psi = 0
log_gabor = log_gabor_filter(image, sigma, theta, Lambda, gamma, psi)
# 显示结果
cv2.imshow('Original Image', image)
cv2.imshow('Log Gabor Filtered Image', log_gabor)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这个代码使用 OpenCV 库中的 `cv2.getGaborKernel()` 函数生成一个对数 Gabor 滤波器,然后使用 `cv2.filter2D()` 函数将其应用于输入图像。最后,使用 `numpy.log()` 函数计算对数值,并使用 `cv2.imshow()` 函数显示结果。
阅读全文