用python给图片添加噪点
时间: 2023-07-04 20:06:56 浏览: 263
可以使用Python的Pillow库来添加噪点到图片中。下面是一个简单的示例代码:
```python
from PIL import Image, ImageDraw
import random
# 打开图片
image = Image.open('example.jpg')
# 获取图片的宽度和高度
width, height = image.size
# 创建一个新的画布
canvas = ImageDraw.Draw(image)
# 添加噪点
for x in range(width):
for y in range(height):
# 随机生成一个数,如果小于100,就添加黑色噪点
if random.randint(0, 100) < 10:
canvas.point((x, y), fill='black')
# 保存图片
image.save('noisy.jpg')
```
在上面的代码中,我们使用了`Pillow`库来打开一张图片,并获取图片的宽度和高度。接着,我们创建了一个新的画布,并使用两个嵌套的循环来遍历图片的每一个像素点。在每一个像素点上,我们使用`random`模块来生成一个随机数,如果这个随机数小于10,就在这个像素点上添加一个黑色的噪点。最后,我们使用`save`方法保存添加了噪点的图片。
相关问题
python给图片添加噪声
在Python中,我们可以使用各种库来给图片添加噪声,最常用的是PIL(Python Imaging Library)和OpenCV。下面是一个简单的例子,使用PIL库中的`ImageFilter`模块添加高斯噪声:
```python
from PIL import Image, ImageFilter
# 打开图片
img = Image.open('image.jpg')
# 添加高斯噪声
noisy_img = img.filter(ImageFilter.GaussianBlur(radius=5))
# 可能还需要调整噪点的强度,例如通过增加sigma值
# noisy_img = img.filter(ImageFilter.GaussianNoise(sigma=0.1))
# 保存处理后的图片
noisy_img.save('noisy_image.jpg')
```
如果你想添加更复杂的噪声,如椒盐噪声,可以使用其他库,如`scikit-image`(skimage):
```python
from skimage.util import random_noise
# 加载图片
import skimage.io as io
img_array = io.imread('image.jpg', as_gray=True) # 如果是彩色图,记得设置as_gray=False
# 添加椒盐噪声
noisy_array = random_noise(img_array, mode='salt', amount=0.05)
# 将数组转换回图像并保存
noisy_img = Image.fromarray(noisy_array * 255)
noisy_img.save('noisy_image.jpg')
```
python 批量图片加噪声
您可以使用Python的Pillow库来批量添加噪声到图片中。以下是一个示例代码:
```python
from PIL import Image, ImageDraw
import random
import os
# 输入文件夹路径
input_folder = "input"
# 输出文件夹路径
output_folder = "output"
# 噪声强度
noise_intensity = 50
# 遍历文件夹中的所有图片
for filename in os.listdir(input_folder):
if filename.endswith(".jpg") or filename.endswith(".png"):
# 打开图片
img = Image.open(os.path.join(input_folder, filename))
# 获取图片宽度和高度
width, height = img.size
# 创建一个与图片大小相同的画布
draw = ImageDraw.Draw(img)
# 随机添加噪点到画布上
for x in range(width):
for y in range(height):
r, g, b = img.getpixel((x, y))
noise = random.randint(-noise_intensity, noise_intensity)
draw.point((x, y), (r+noise, g+noise, b+noise))
# 保存图片
img.save(os.path.join(output_folder, filename))
```
在以上示例代码中,我们使用了Pillow库的Image模块和ImageDraw模块。该代码会遍历文件夹中的所有图片,对每张图片进行噪声添加,并保存到输出文件夹中。您可以根据需要调整噪声强度大小。
阅读全文