Mahotas - 顏色空間轉換



顏色空間指的是影像處理和訊號系統中使用的不同型別的顏色模式,用於各種目的。一些常見的顏色空間包括:

  • CMYK - 這是一種用於列印的減色顏色模型,由四個顏色通道表示:青色 (C)、品紅色 (M)、黃色 (Y) 和黑色 (K)。

  • YUV - 這是一種用於影片編碼和影像處理的顏色空間。它將影像資訊分成亮度 (Y') 和色度 (UV) 分量。

    Y' 通道表示亮度或灰度資訊,而 U 和 V 通道表示顏色資訊。

  • YIQ - 這是一種用於模擬電視系統的顏色空間,其中 Y 通道表示亮度,I 和 Q 通道表示顏色資訊。

  • Y'CbCr - 這是一種常用在數字影像和影片編碼中的顏色空間,其中 Y' 通道表示亮度,Cb 和 Cr 通道表示顏色資訊。

    Y' 通道包含灰度資訊,而 Cb 和 Cr 通道分別表示藍色差和紅色差色度分量。

  • HSV - HSV(色相、飽和度、明度)是一種顏色空間,用於以對人眼更直觀的方式表示顏色。

在本教程中,我們將廣泛討論RGB 顏色空間

RGB 顏色空間

RGB 代表紅、綠、藍。它是使用最廣泛的顏色空間,我們將在後續章節中詳細討論。

RGB color space

RGB 模型指出,每張彩色影像實際上是由三張不同的影像組成的。

紅色影像、藍色影像和黑色影像。普通的灰度影像僅由一個矩陣定義,但彩色影像實際上是由三個不同的矩陣組成的。

One color image matrix = red matrix + blue matrix + green matrix

這在下圖中可以最好地看出:

RGB color space1

可用函式

以下是 Mahotas 中用於顏色空間轉換的不同函式:

序號 函式和描述
1 rgb2gray()

此函式將 RGB 影像轉換為灰度影像。

2 rgb2grey()

此函式將 RGB 影像轉換為灰度影像。

3 rgb2lab()

此函式將 RGB 影像轉換為 L*a*b 座標。

4 rgb2sepia()

此函式將 RGB 影像轉換為棕褐色,即紅棕色。

5 rgb2xyz()

此函式將 RGB 影像轉換為 XYZ 顏色空間,即亮度、顏色和強度。

6 xyz2lab()

此函式將 XYZ 轉換為 L*a*b 顏色空間。

7 xyz2rgb()

此函式將 XYZ 轉換為 RGB 顏色空間。

現在,讓我們看看其中一些函式的示例。

rgb2grey() 函式

rgb2grey() 函式用於將 RGB 影像轉換為灰度影像。

此函式假設輸入影像是一個二維 NumPy 陣列,表示 RGB 影像,其中維度為 (高度、寬度、3),分別表示高度、寬度和 RGB 通道。

如果影像已經是灰度影像(即只有一個通道),則該函式只返回影像而不進行任何修改。

示例

以下是使用 rgbtogrey() 函式將 RGB 影像轉換為灰度影像的基本示例:

import mahotas as mh
import numpy as np
from pylab import imshow, show
# Loading the image
image = mh.imread('nature.jpeg')
# Converting it to grayscale
grey_image = mh.colors.rgb2grey(image)
imshow(grey_image)
show()

輸出

執行上述程式碼後,我們將得到以下輸出:

rgbtogrey Grayscale Image.

rgb2sepia() 函式

rgb2grey() 函式用於將 RGB 影像轉換為棕褐色調影像,即紅棕色影像。

為了將 RGB 影像轉換為棕褐色,該函式會對每個畫素的 RGB 值應用轉換。此轉換涉及調整紅色、綠色和藍色通道以達到所需的棕褐色效果。

示例

以下是 RGB 顏色空間到棕褐色調影像的基本實現:

import mahotas as mh
import numpy as np
from pylab import imshow, show
# Loading the image
image = mh.imread('nature.jpeg')
# Converting it to grayscale
sepia_image = mh.colors.rgb2sepia(image)
imshow(sepia_image)
show()

輸出

以下是上述程式碼的輸出:

rgb2sepia() Image

我們在本節的其餘章節中詳細討論了這些函式。

廣告