机器视觉图像去噪python
时间: 2023-08-19 11:13:08 浏览: 102
基于python对图像进行增强去噪修补的设计与实现
要使用Python进行机器视觉图像去噪,可以使用OpenCV和NumPy库。以下是一些示例代码来去除图像中的高斯噪声、添加高斯噪声和添加椒盐噪声。
1. 去除高斯噪声的示例代码:
```python
import cv2
import numpy as np
# 读取带噪声的图像
img = cv2.imread('noisy_image.jpg')
# 去除高斯噪声
denoised_img = cv2.GaussianBlur(img, (5, 5), 0)
# 显示去噪后的图像
cv2.imshow('denoised image', denoised_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码使用了`cv2.GaussianBlur`函数来对图像进行高斯模糊处理,从而去除高斯噪声。
2. 添加高斯噪声的示例代码:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('input.jpg')
# 添加高斯噪声
mean = 0
var = 0.1
sigma = var ** 0.5
gaussian = np.random.normal(mean, sigma, img.shape)
gaussian = gaussian.reshape(img.shape)
noisy_img = img + gaussian
# 将像素值限制在 0 和 255 之间
noisy_img = np.clip(noisy_img, 0, 255)
# 显示带噪声的图像
cv2.imshow('noisy image', noisy_img.astype(np.uint8))
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码使用了`np.random.normal`函数生成高斯噪声,并将其添加到原始图像上。
3. 添加椒盐噪声的示例代码:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('input.jpg')
# 添加椒盐噪声
p = 0.05 # 像素点被替换为椒盐噪声的概率
salt_vs_pepper = 0.5 # 椒盐噪声的比例
num_salt = np.ceil(p * img.size * salt_vs_pepper)
num_pepper = np.ceil(p * img.size * (1.0 - salt_vs_pepper))
coords = [np.random.randint(0, i - 1, int(num_salt)) for i in img.shape]
img[coords[0], coords[1], :] = 255
coords = [np.random.randint(0, i - 1, int(num_pepper)) for i in img.shape]
img[coords[0], coords[1], :] = 0
# 显示带噪声的图像
cv2.imshow('noisy image', img.astype(np.uint8))
cv2.imwrite('noise_pic.jpg', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码使用了随机生成的坐标来将像素点替换为椒盐噪声,从而添加椒盐噪声到原始图像中。
请注意,以上示例代码中的图像文件路径需要根据实际情况进行修改。
阅读全文