对“jizhu”图像添加高斯噪声,然后采用不同标准差的高斯函数滤波处理。python
时间: 2024-11-12 16:37:01 浏览: 21
在Python中,你可以使用OpenCV库对"jizhu"图像(通常指JPEG或PNG等常见图像格式)添加高斯噪声并应用不同标准差的高斯滤波。以下是一个简化的示例:
```python
import cv2
import numpy as np
# 加载图像
img = cv2.imread('jizhu.jpg', cv2.IMREAD_GRAYSCALE) # 灰度图像处理
# 或者 img = cv2.imread('jizhu.png', cv2.IMREAD_COLOR) # 保持原图颜色
# 添加高斯噪声
mean = 0 # 高斯噪声的均值,默认为0
sigma = [10, 20, 30] # 不同标准差的列表
noisy_imgs = []
for std_dev in sigma:
noise = np.random.normal(mean, std_dev, img.shape)
noisy_img = img + noise
noisy_img = np.clip(noisy_img, 0, 255) # 保证像素值在0到255范围内
noisy_imgs.append(noisy_img)
# 应用高斯滤波
gaussian_blur = cv2.GaussianBlur
filtered_imgs = [gaussian_blur(img, (kernel_size, kernel_size), sigmaX=std_dev) for img, std_dev in zip(noisy_imgs, sigma)]
# 显示原始和处理后的图像
cv2.imshow("Original", img)
for i, filtered in enumerate(filtered_imgs):
cv2.imshow(f"Noise with std dev {sigma[i]} and filtered", filtered)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个例子中,我们首先加载图像,然后创建一系列噪声版本,每个版本使用一个特定的标准差。接着,我们对每个噪声图像应用高斯滤波,`kernel_size`可以根据需要调整。最后,显示原始图像以及经过不同标准差高斯滤波后的结果。
阅读全文