使用skimage.util库创建随机高斯噪声图像的Python函数
skimage.util库是scikit-image包提供的一个实用工具库,用于图像处理和操作。其中包括了一些常用的函数,如创建随机高斯噪声图像。
创建随机高斯噪声图像的函数是random_noise,可以用于在图像中添加随机高斯噪声。该函数接受以下参数:
- image:输入的图像。可以是灰度图像或彩色图像。
- mode:噪声的模式。可以选择为'salt'、'pepper'、's&p'、'gaussian'或'poisson'。对于高斯噪声,选择'gaussian'。
- var:噪声的方差,用于控制噪声的强度。值越大,噪声越明显。可以是一个标量,也可以是一个形状与图像相匹配的数组。
下面是一个使用skimage.util库创建随机高斯噪声图像的Python函数的例子:
from skimage.util import random_noise
import matplotlib.pyplot as plt
def add_gaussian_noise(image, var):
noisy_image = random_noise(image, mode='gaussian', var=var)
# 显示原始图像和添加噪声后的图像
fig, axes = plt.subplots(1, 2, figsize=(10, 5))
axes[0].imshow(image, cmap='gray')
axes[0].set_title('Original Image')
axes[1].imshow(noisy_image, cmap='gray')
axes[1].set_title('Noisy Image')
plt.show()
# 示例用法
import skimage.data
# 读取示例图像
image = skimage.data.camera()
# 添加高斯噪声
var = 0.1
add_gaussian_noise(image, var)
在上面的例子中,首先导入了skimage.util库中的random_noise函数和matplotlib.pyplot库用于显示图像。然后定义了一个add_gaussian_noise函数,该函数接受一个图像和一个方差作为参数。在函数中,首先使用random_noise函数添加了随机高斯噪声,并保存为noisy_image。然后通过使用matplotlib.pyplot库中的函数,将原始图像和添加噪声后的图像进行显示。
接下来,在主程序中,首先使用skimage.data包中的camera函数读取了一个示例图像。然后定义了方差var为0.1,调用了add_gaussian_noise函数,将示例图像和方差作为参数传入。该函数会显示原始图像和添加噪声后的图像。
通过以上操作,我们可以使用skimage.util库中的random_noise函数创建随机高斯噪声图像,并通过matplotlib.pyplot库对它们进行显示,以方便观察和分析。
