在 Python 中将 RGB 图像转换为灰度
将 RGB 图像转换为灰度是图像处理中的基本操作。在 Python 中,有多种方法可以使用流行的库(例如 scikit-image、NumPy 和 Pillow)来完成此任务。
Pillow
Pillow 是一个功能强大的 Python 库用于图像处理。它提供了一种使用转换函数将 RGB 图像转换为灰度的便捷方法:
from PIL import Image img = Image.open('image.png').convert('L')
“L”参数指定图像应转换为灰度,保留亮度值。如果输入图像包含 alpha(透明度)通道且应保留它,请改用“LA”模式。
NumPy 和 Matplotlib
另一种方法是使用 NumPy 和 Matplotlib。 NumPy 提供了 RGB 到灰度转换的简单实现:
import numpy as np def rgb2gray(rgb): return np.dot(rgb[...,:3], [0.2989, 0.5870, 0.1140])
此函数使用红色、绿色和蓝色值的加权和来计算灰度强度。使用 Matplotlib,您可以加载并显示灰度图像:
import matplotlib.pyplot as plt import matplotlib.image as mpimg img = mpimg.imread('image.png') gray = rgb2gray(img) plt.imshow(gray, cmap=plt.get_cmap('gray'), vmin=0, vmax=1) plt.show()
scikit-image
scikit-image 是一个专门用于图像处理的 Python 库。它提供了一个名为 color.rgb2gray 的函数用于灰度转换:
from skimage import color img = color.rgb2gray(mpimg.imread('image.png'))
附加实现
Sebastian 提供的函数也有效地完成了任务,但它运行于单独的 RGB 通道,在处理大图像时可能效率较低。尽管如此,它演示了灰度转换公式的简单实现。
以上是如何在 Python 中将 RGB 图像转换为灰度图像?的详细内容。更多信息请关注PHP中文网其他相关文章!