如何在 Python 中使用 scikit-learn 將影像從 RGB 轉換為灰度?


Scikit-learn,通常稱為 sklearn,是 Python 中一個用於實現機器學習演算法的庫。

將影像從一個色彩空間轉換為另一個色彩空間通常用於使新獲得的色彩空間能夠作為更好的輸入來對其執行其他操作。這包括分離色調、亮度、飽和度級別等等。當影像使用 RGB 表示法表示時,色調和亮度屬性顯示為通道 R、G 和 B 的線性組合。

當嘗試將具有 RGB 色彩空間的影像轉換為灰度時,畫素值計算為紅色、綠色和藍色畫素的加權和。公式如下所示:

Y = 0.2125 R + 0.7154 G + 0.0721 B

這些權重是專門提供的,因為它們被 CRT 熒光粉使用,與為所有三個值提供相等權重相比,CRT 熒光粉更好地代表了人類對紅色、綠色和藍色的感知。

讓我們看看如何將 RGB 影像轉換為灰度影像:

示例

from skimage import io
import matplotlib.pyplot as plt
from skimage import data
from skimage.color import rgb2gray
from skimage import data
path = "path to puppy_1.JPG"
orig_img = io.imread(path)
grayscale_img = rgb2gray(orig_img)
fig, axes = plt.subplots(1, 2, figsize=(8, 4))
ax = axes.ravel()
ax[0].imshow(orig_img)
ax[0].set_title("Original image")
ax[1].imshow(grayscale_img, cmap=plt.cm.gray)
ax[1].set_title("Grayscale image")
fig.tight_layout()
plt.show()

輸出

解釋

  • 匯入所需的庫。
  • 定義儲存影像的路徑。
  • 使用 ‘imread’ 函式訪問路徑並讀取影像。
  • 使用 ‘imshow’ 函式在控制檯上顯示影像。
  • 使用 ‘rgb2gray’ 函式將影像從 RGB 色彩空間轉換為灰度色彩空間。
  • 使用 matplotlib 庫繪製此資料,並顯示原始影像和轉換為灰度後的影像。
  • 這將顯示在控制檯上。

更新於:2020年12月11日

1K+ 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告