2、将一幅彩色图用两种以上的方法变成灰度图,并以灰度图实现颜色反转。代码
时间: 2024-11-03 20:16:19 浏览: 25
在Python中,我们可以使用PIL库来处理图像,包括将其转换成灰度图并实现颜色反转。这里有两种常见的方法:
**方法一:直接转换**
首先,你需要安装Pillow库,如果你还没有安装,可以使用`pip install pillow`。
```python
from PIL import Image
def convert_to_grayscale_and_invert(image_path):
# 读取彩色图片
img = Image.open(image_path)
# 转换为灰度图
gray_img = img.convert('L') # 'L'表示灰度模式
# 颜色反转
inverted_img = gray_img.point(lambda x: 255 - x) # 点函数用于逐像素操作
# 保存结果
inverted_img.save("inverted_gray_" + image_path)
# 使用方法
convert_to_grayscale_and_invert('input_color_image.jpg')
```
**方法二:通道合并**
另一种方法是先将RGB三个通道合并为单个灰度通道,然后进行反转。
```python
def convert_to_grayscale_and_invert(image_path):
with Image.open(image_path) as img:
r, g, b = img.split() # 分离红绿蓝通道
gray = (r.value // 3 + g.value // 3 + b.value // 3) * 3 # 合并通道生成灰度
inverted_gray = Image.new('L', img.size, "white") # 创建空白灰度图
inverted_gray.putdata([255 if p < 128 else 0 for p in gray]) # 反转像素值
inverted_gray.save("inverted_gray_" + image_path)
# 使用方法
convert_to_grayscale_and_invert('input_color_image.jpg')
```
阅读全文