在 Python 中将 RGB 图像转换为灰度
您正在尝试使用 Python 的 matplotlib 库将 RGB 图像转换为灰度。虽然该库提供了阅读功能,但未明确包含灰度转换。
内置函数搜索
您正确地质疑缺少原生灰度转换函数在 NumPy 或 matplotlib 中。事实上,这样的转换是图像处理中的基本操作。
分辨率选项
尽管缺乏内置函数,但有几种推荐的方法:
枕头库:
枕头,一个图像处理库,提供了简单高效的解决方案:
from PIL import Image img = Image.open('image.png').convert('L') img.save('greyscale.png')
Matplotlib 公式实现:
Matplotlib 允许您自己实现灰度转换公式:
import numpy as np import matplotlib.pyplot as plt import matplotlib.image as mpimg def rgb2gray(rgb): return np.dot(rgb[...,:3], [0.2989, 0.5870, 0.1140]) img = mpimg.imread('image.png') gray = rgb2gray(img) plt.imshow(gray, cmap=plt.get_cmap('gray'), vmin=0, vmax=1) plt.show()
自定义函数:
您还可以创建自己的函数来执行转换,如原始代码所示。虽然它可能不是最有效的,但它提供了一个可行的解决方案。
Alpha 通道保留
如果您的输入图像包含 alpha(透明度)通道,Pillow 允许您可以使用“LA”模式保留它:
img = Image.open('image.png').convert('LA')
这些方法根据您的具体情况提供灵活性和效率要求。
以上是如何在 Python 中将 RGB 图像转换为灰度图像?的详细内容。更多信息请关注PHP中文网其他相关文章!