编写一个高斯高通滤波器函数
时间: 2024-05-07 14:21:18 浏览: 205
下面是一个简单的高斯高通滤波器函数,使用OpenCV库实现:
```python
import cv2
import numpy as np
def gaussian_highpass_filter(image, kernel_size, sigma):
# 创建高斯核
gaussian_kernel = cv2.getGaussianKernel(kernel_size, sigma)
# 将1D高斯核转换为2D高斯核
gaussian_kernel = np.outer(gaussian_kernel, gaussian_kernel.transpose())
# 计算高斯平滑图像
smooth_image = cv2.filter2D(image, -1, gaussian_kernel)
# 计算拉普拉斯算子
laplacian_kernel = np.array([[-1,-1,-1], [-1,8,-1], [-1,-1,-1]])
# 计算拉普拉斯图像
laplacian_image = cv2.filter2D(smooth_image, -1, laplacian_kernel)
# 将拉普拉斯图像加到原始图像上
result_image = image - laplacian_image
# 返回结果图像
return result_image
```
该函数需要输入三个参数:
- `image`:需要进行高斯高通滤波的图像。
- `kernel_size`:高斯核的大小,通常为一个奇数。
- `sigma`:高斯核的标准差。
阅读全文