Python中灰度图像添加噪声和去噪的示例代码

作者:php是最好的2024.01.08 13:42浏览量:14

简介:在Python中,我们可以使用OpenCV和NumPy库来处理灰度图像的噪声。以下是一个简单的示例,展示如何向灰度图像添加噪声以及如何进行去噪。

首先,我们需要导入必要的库。在这个例子中,我们将使用OpenCV和NumPy库。

  1. import cv2
  2. import numpy as np

接下来,我们将读取一个灰度图像。

  1. image = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)

添加噪声

  1. # 添加椒盐噪声(Salt-and-Pepper Noise)
  2. noise = 0.01 # 噪声比例
  3. row, col, channel = image.shape
  4. # 生成随机数,确定需要添加噪声的位置
  5. # 在这里我们使用np.random.rand,生成的随机数在0到1之间,因此需要乘以总像素数
  6. # 然后我们使用np.where函数来找到这些随机位置
  7. # 最后,我们使用np.random.randint函数将随机数转换为0或1,表示像素点的状态(被污染或未被污染)
  8. noisy_image = image.copy()
  9. noisy_image[np.where((np.random.rand(*image.shape) < noise) | (np.random.rand(*image.shape) > 1 - noise))] = 1 # 将噪声位置设为1(白色)
  10. cv2.imshow('Noisy Image', noisy_image)
  11. cv2.waitKey(0)
  12. cv2.destroyAllWindows()

去噪

  1. # 中值滤波去噪(Median Blurring)
  2. # 首先创建一个与原图大小相同的全黑图像
  3. result = np.zeros(image.shape, image.dtype)
  4. # 然后对原图进行中值滤波处理
  5. result = cv2.medianBlur(noisy_image, 5)
  6. cv2.imshow('Result', result)
  7. cv2.waitKey(0)
  8. cv2.destroyAllWindows()

请注意,这只是一个简单的示例,可能不适用于所有情况。在实际应用中,您可能需要根据具体情况调整噪声类型、噪声比例以及去噪方法。