python实现高斯滤波底层
时间: 2023-12-04 20:04:31 浏览: 100
高斯滤波是一种常见的图像处理技术,用于平滑图像。下面是一个简单的Python实现高斯滤波的底层代码:
```python
import numpy as np
import cv2
def gaussian_kernel(size, sigma):
# 创建高斯核
x, y = np.meshgrid(np.linspace(-1, 1, size), np.linspace(-1, 1, size))
d = np.sqrt(x * x + y * y)
kernel = np.exp(-(d ** 2 / (2 * sigma ** 2)))
kernel /= np.sum(kernel)
return kernel
def gaussian_filter(image, kernel_size=5, sigma=1):
# 应用高斯滤波
kernel = gaussian_kernel(kernel_size, sigma)
return cv2.filter2D(image, -1, kernel)
# 示例
img = cv2.imread('image.jpg')
blur_img = gaussian_filter(img, kernel_size=5, sigma=1)
cv2.imshow('Original Image', img)
cv2.imshow('Gaussian Blur Image', blur_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个代码中,`gaussian_kernel`函数用于创建高斯核,`gaussian_filter`函数用于将高斯核应用于图像。我们可以通过调整`kernel_size`和`sigma`参数来自定义高斯滤波器的大小和强度。最后,我们通过OpenCV库中的`cv2.filter2D`函数将滤波器应用于图像。
阅读全文