高斯滤波python代码
时间: 2024-06-22 18:03:38 浏览: 115
高斯滤波是一种常见的图像处理技术,用于平滑图像,去除噪声。在Python中,我们可以使用`scipy.ndimage`库来实现高斯滤波。以下是一个简单的高斯滤波器应用示例:
```python
from scipy import ndimage
import numpy as np
import matplotlib.pyplot as plt
# 创建一个简单的图像数据
image = np.random.rand(50, 50)
# 定义高斯核(标准差可以根据需求调整)
sigma = 5
gaussian_kernel = ndimage.gaussian_filter(np.eye(2), sigma)
# 应用高斯滤波
blurred_image = ndimage.convolve(image, gaussian_kernel, mode='constant')
# 显示原图和模糊后的图像
fig, axs = plt.subplots(1, 2, figsize=(10, 5))
axs.imshow(image, cmap='gray')
axs.set_title('Original Image')
axs.imshow(blurred_image, cmap='gray')
axs.set_title('Blurred Image (Gaussian Filtered)')
for ax in axs:
ax.set_axis_off()
plt.show()
相关问题
opencv高斯滤波python代码
以下是使用OpenCV库在Python中实现高斯滤波的代码示例:
```python
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 高斯滤波
img_gaussian = cv2.GaussianBlur(img, (5,5), 0)
# 显示图像
cv2.imshow('Original Image', img)
cv2.imshow('Gaussian Filtered Image', img_gaussian)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个例子中,我们使用了`cv2.GaussianBlur()`函数来对输入图像进行高斯滤波。该函数接受3个参数:输入图像,卷积核大小和标准差。在这里,我们使用了一个5x5的卷积核和标准差为0,可以根据需要修改这些参数。最后,我们使用`cv2.imshow()`函数显示原始图像和高斯滤波后的图像。
双边高斯滤波python代码
以下是一个简单的双边高斯滤波的Python代码实现,可以使用OpenCV库中的bilateralFilter函数进行实现:
``` python
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 设置双边滤波器的参数
d = 15 # 邻域直径
sigmaColor = 75 # 颜色标准差
sigmaSpace = 75 # 空间标准差
# 进行双边滤波
bilateral = cv2.bilateralFilter(img, d, sigmaColor, sigmaSpace)
# 显示原图和滤波后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Bilateral Filtered Image', bilateral)
# 等待按下任意按键退出
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个例子中,我们使用了一个d=15的邻域直径,以及sigmaColor和sigmaSpace都为75的标准差。你可以根据自己的需求来调整这些参数。
阅读全文