在 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中文網其他相關文章!