首頁 > 後端開發 > Python教學 > 如何在 Python 中將 RGB 影像轉換為灰階影像?

如何在 Python 中將 RGB 影像轉換為灰階影像?

Mary-Kate Olsen
發布: 2024-12-12 20:23:13
原創
453 人瀏覽過

How Can I Convert RGB Images to Grayscale in Python?

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板