用python写一段代码,读入一幅 RGB 图像,变换为灰度图像和二值图像, 并在同一个窗口内分成三个子窗口来分别显示 RGB原图像、灰度图像和二值图像,分别注上“RGB原图像、灰度图像和二值图像”
时间: 2024-09-20 17:06:15 浏览: 43
使用OpenCV-Python实现灰度化、二值化等基本处理
你可以使用Python的`PIL`库(Pillow)来进行图像处理。下面是一段示例代码:
```python
from PIL import Image, ImageOps
# 读取RGB图像
img = Image.open('input_image.jpg') # 替换 'input_image.jpg' 为你需要处理的图片路径
rgb_image = img.convert('RGB')
# 转换为灰度图像
gray_image = img.convert('L')
gray_image.save('gray_image.png') # 保存灰度图,这里假设已经创建好一个同名文件夹
# 将灰度图转换为二值图像
binary_threshold = 128
binary_image = gray_image.point(lambda x: 0 if x < binary_threshold else 255, '1')
binary_image.save('binary_image.png') # 同样保存为二值图
# 创建一个新的Image对象用于显示
combined_image = Image.new('RGB', (img.width * 2, img.height))
combined_image.paste(rgb_image, (0, 0)) # 粘贴RGB原图到左半部分
combined_image.paste(gray_image.resize((rgb_image.width, rgb_image.height)), (rgb_image.width, 0)) # 粘贴灰度图到右半部分
combined_image.paste(binary_image.resize((rgb_image.width, rgb_image.height)), (2*rgb_image.width, 0)) # 粘贴二值图到最右侧
# 显示在窗口
combined_image.show()
```
在这个代码中,首先打开RGB图像,然后将其转换为灰度图像并保存。接着将灰度图像转化为二值图像,并保存为单独的文件。最后,我们在一个新的窗口中创建一个结合了RGB原图、灰度图和二值图的复合图像。
阅读全文