利用scipy库的滤波函数对一张图片进行滤波处理,比较滤波前后图片的变化
时间: 2024-12-14 07:13:45 浏览: 2
Scipy 库是 Python 中科学计算的一个工具包,其中包含了图像处理模块 `scipy.ndimage`,可以用于各种图像滤波操作。滤波是对图像进行平滑、去噪或增强的一种基本技术。以下是一个简单的例子,说明如何使用 scipy 对图片进行高斯滤波,并对比滤波前后的变化:
```python
from PIL import Image
import numpy as np
from scipy.ndimage import gaussian_filter
# 1. 打开图片并转化为灰度图
img = Image.open("input_image.jpg").convert("L")
img_array = np.array(img)
# 2. 定义滤波器参数(这里使用高斯滤波,sigma 表示标准差)
sigma = 1
# 3. 对图片应用高斯滤波
filtered_img_array = gaussian_filter(img_array, sigma)
# 4. 将滤波后的结果转回 PIL 图像并保存
filtered_img = Image.fromarray(filtered_img_array.astype(np.uint8))
filtered_img.save("filtered_image.jpg")
# 5. 比较原始图片和滤波后的图片
side_by_side = Image.new("RGB", (img.width*2, img.height))
side_by_side.paste(img, (0, 0))
side_by_side.paste(filtered_img, (img.width, 0))
side_by_side.show()
阅读全文