Mahotas 简明教程

Mahotas - Color-Space Conversion

颜色空间是指在图像处理和信号以及系统中用于各种目的的不同类型的颜色模式。一些常见的颜色空间有 −

  1. CMY’K − 它是印刷中使用的减色模式,由四种颜色通道表示:青色(©)、品红色(M)、黄色(Y)和黑色密钥(K)。

  2. Y’UV − 它是用于视频编码和图像处理的颜色空间。它将图像信息分离为亮度(Y')和色度(UV)分量。Y' 通道表示亮度或灰度信息,而 U 和 V 通道表示颜色信息。

  3. YIQ − 它是用于模拟电视系统中的颜色空间,其中 Y 通道表示亮度,I 和 Q 通道表示颜色信息。

  4. Y’CbCr − 它是数字图像和视频编码中常用的颜色空间,其中 Y' 通道表示亮度,Cb 和 Cr 通道表示颜色信息。Y' 通道包含灰度信息,而 Cb 和 Cr 通道分别表示蓝-差分和红-差分色度分量。

  5. HSV − HSV(色调、饱和度、值)是一个用于以对人类更具知觉意义的方式表示颜色的颜色空间。

在我们的教程中,我们将广泛讨论关于 RGB color space

RGB Color Space

RGB 代表红色、绿色和蓝色。这是最广泛使用的颜色空间,我们将在后续章节中详细讨论它。

rgb color space

RGB 模型指出,每个彩色图像实际上是由三张不同的图像组成的。

红色图像、蓝色图像和黑色图像。普通的灰度图像仅由一个矩阵定义,但彩色图像实际上由三个不同的矩阵组成。

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

这在以下数字中可以最好地看出 −

rgb color space1

Available Functions

以下是在 mahotas 中用于颜色空间转换的不同函数 −

S.No

Function & Description

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 颜色空间。

现在,让我们看看其中一些函数的示例。

The rgb2grey() Function

rgb2grey() 函数用于将 RGB 图像转换为灰度图像。

此函数假设输入图像是一个表示 RGB 图像的二维 NumPy 数组,其中维度分别为 (高度、宽度、3),分别代表高度、宽度和 RGB 通道。

如果图像已经是灰度(即仅有一个通道),该函数只需返回该图像而不进行任何修改。

Example

以下是使用 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

The rgb2sepia() Function

rgb2grey() 函数用于将 RGB 图像转换为棕褐色图像,即红棕色的图像。

为了将 RGB 图像转换为棕褐色调,此函数会对每个像素的 RGB 值应用一个变换。此变换涉及调整红色、绿色和蓝色通道以实现所需的棕褐色调效果。

Example

以下是将 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()

以下是上面代码的输出: -

rgbtosepia image

我们已经在本节的其余章节详细讨论了这些函数。