opencvpython添加椒盐噪声
时间: 2023-04-26 18:05:58 浏览: 134
要在OpenCV Python中添加椒盐噪声,可以使用以下代码:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('image.jpg')
# 添加椒盐噪声
noise = np.zeros(img.shape, np.uint8)
cv2.randu(noise, , 255)
black = noise < 30
white = noise > 225
img[black] =
img[white] = 255
# 显示图像
cv2.imshow('image', img)
cv2.waitKey()
cv2.destroyAllWindows()
```
这段代码首先读取一张图像,然后使用`cv2.randu()`函数生成一个与图像大小相同的随机噪声矩阵。接着,将噪声矩阵中小于30的像素设为黑色,大于225的像素设为白色,从而模拟椒盐噪声。最后,将噪声添加到原始图像中,并显示结果。
相关问题
opencv图像添加椒盐噪声
可以使用OpenCV中的`randn()`函数来生成高斯噪声,使用`rand()`函数来生成椒盐噪声。以下是添加椒盐噪声的示例代码:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('test.jpg')
# 添加椒盐噪声
noise_img = np.zeros(img.shape, np.uint8)
p = 0.05 # 噪声比例
for i in range(img.shape[0]):
for j in range(img.shape[1]):
r = np.random.rand()
if r < p / 2:
noise_img[i][j] = 0
elif r < p:
noise_img[i][j] = 255
else:
noise_img[i][j] = img[i][j]
# 显示图像
cv2.imshow('img', img)
cv2.imshow('noise_img', noise_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上述代码中,`p`表示噪声比例,即图像中像素点被噪声覆盖的比例。通过循环遍历每个像素点,生成随机数,若随机数小于`p/2`,则将该像素点设置为黑色(椒噪声);若随机数在`p/2`和`p`之间,则将该像素点设置为白色(盐噪声);否则保持原来的像素值。
使用Python添加椒盐噪声
使用Python添加椒盐噪声可以通过OpenCV库来实现。首先,我们需要加载图像并将其转换为灰度图像。然后,我们可以使用OpenCV的`addSaltAndPepperNoise`函数向图像添加椒盐噪声。这个函数接受三个参数:图像、椒盐噪声比例和噪声密度。
下面是一个示例代码,演示如何使用Python添加椒盐噪声:
```python
import cv2
import numpy as np
def add_salt_and_pepper_noise(image, salt_vs_pepper_ratio, noise_density):
height, width = image.shape[:2]
num_salt = int(height * width * noise_density * salt_vs_pepper_ratio)
num_pepper = int(height * width * noise_density) - num_salt
salt_coords = [np.random.randint(0, height, num_salt),
np.random.randint(0, width, num_salt)]
pepper_coords = [np.random.randint(0, height, num_pepper),
np.random.randint(0, width, num_pepper)]
image[salt_coords = 255
image = 0
return image
# 加载图像并转换为灰度图像
image = cv2.imread('image.jpg')
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 添加椒盐噪声
salt_vs_pepper_ratio = 0.5
noise_density = 0.01
noisy_image = add_salt_and_pepper_noise(gray_image, salt_vs_pepper_ratio, noise_density)
# 显示原始图像和添加椒盐噪声后的图像
cv2.imshow('Original Image', gray_image)
cv2.imshow('Noisy Image', noisy_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,我们首先加载图像并将其转换为灰度图像。然后,调用`add_salt_and_pepper_noise`函数来添加椒盐噪声。最后,我们使用OpenCV的`imshow`函数来显示原始图像和添加椒盐噪声后的图像。
请注意,`salt_vs_pepper_ratio`参数表示椒盐噪声中椒盐比例的权重,可以根据需要进行调整。`noise_density`参数表示噪声密度,控制噪声的强度。您可以根据实际情况调整这两个参数来达到所需的效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声)](https://download.csdn.net/download/weixin_38641150/12862928)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [对灰度图像添加高斯噪声和椒盐噪声_使用字典学习和深层字典学习进行图像去噪_python](https://download.csdn.net/download/m0_53407570/85040807)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [selenium+python代码合集](https://download.csdn.net/download/qq_44700741/88269968)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]
阅读全文