利用PerlinNoise实现图像雾化效果的python代码
时间: 2023-12-28 12:04:46 浏览: 48
Perlin Noise是一种生成噪声的算法,可以用来创建自然风景中的各种纹理和形状。可以使用`noise`库来生成Perlin Noise,然后将其应用于图像以实现雾化效果。以下是一个简单的示例代码:
```python
from PIL import Image
from noise import pnoise2
# 创建一个空白的灰度图像
img_size = (512, 512)
img = Image.new('L', img_size)
# 生成云雾图像
scale = 200 # 噪声规模
octaves = 6 # 八度数
persistence = 0.5 # 持续时间
lacunarity = 2.0 # 缺口
for x in range(img_size[0]):
for y in range(img_size[1]):
noise = pnoise2(x/scale, y/scale, octaves=octaves, persistence=persistence, lacunarity=lacunarity) # 生成Perlin Noise
value = int((noise + 1) / 2 * 255) # 将Perlin Noise缩放到0~255之间
img.putpixel((x, y), value)
# 显示图像
img.show()
```
这个代码会生成一个512x512的灰度图像,其中使用Perlin Noise生成的噪声来模拟云雾效果。你可以根据需要调整噪声规模、八度数、持续时间和缺口等参数来生成不同的云雾效果。