python实现图片灰度化
时间: 2025-01-08 13:20:51 浏览: 3
### Python 实现图片灰度化
在Python中,可以利用Pillow库来轻松地对图像进行灰度化处理。下面是一个简单的例子,展示了如何加载一张彩色图片并将其转换成灰度图:
```python
from PIL import Image
def convert_to_grayscale(image_path, output_path):
with Image.open(image_path).convert('L') as img:
img.save(output_path)
# 使用函数的例子
convert_to_grayscale('input_color_image.jpg', 'output_gray_image.png')
```
上述代码定义了一个`convert_to_grayscale`函数,该函数接收输入文件路径和输出文件路径作为参数[^1]。
对于更深入的理解以及更多功能的需求,比如自定义灰度计算方法,可以通过逐像素访问的方式手动设置每个像素的颜色值。这里给出另一种实现方式:
```python
import numpy as np
from PIL import Image
def manual_convert_to_grayscale(image_path, output_path):
image = Image.open(image_path)
grayscale_array = np.array(image.convert('RGB'))
# 将 RGB 转换为灰度 (R*0.2989 + G*0.5870 + B*0.1140),这是人类视觉感知加权的结果
gray_scale_values = np.dot(grayscale_array[..., :3], [0.2989, 0.5870, 0.1140])
result_img = Image.fromarray(gray_scale_values.astype(np.uint8))
result_img.save(output_path)
manual_convert_to_grayscale('color_input.jpg', 'grayscaled_output.png')
```
这段代码同样实现了将彩色图片转为灰度的功能,但是它采用了基于numpy数组的操作来进行色彩空间变换,并应用了特定的人眼敏感度权重因子。
阅读全文