对图像进行线性灰度变换py代码
时间: 2024-09-18 16:06:28 浏览: 38
在Python中,我们可以使用PIL(Pillow)库来进行图像的线性灰度变换。线性灰度变换通常涉及将每个像素从原来的颜色空间转换到灰度值,这可以通过缩放每个通道的强度来实现,比如平均值、加权平均或其他线性函数。
以下是一个简单的例子,使用加权平均将RGB图像转换成灰度:
```python
from PIL import Image
def grayscale_linear(image_path):
# 打开图像
img = Image.open(image_path)
# 获取图像的宽度和高度
width, height = img.size
# 将图像转为灰度
def convert_grayscale(pix):
r, g, b = pix[:3] # 取出RGB值
gray = 0.2989 * r + 0.5870 * g + 0.1140 * b # 加权平均公式
return (gray,) + pix[3:] # 返回灰度和透明度
new_img = img.convert('L', convert_grayscale) # L表示灰度模式,convert_grayscale提供自定义转换函数
# 保存处理后的图像
new_img.save('gray_image.png')
# 使用函数
grayscale_linear('input_image.jpg')
```
在这个示例中,我们计算了红色(R), 绿色(G), 和蓝色(B)通道的加权平均值作为灰度值,并将结果应用到整个图像上。
阅读全文