如何使用scikit-learn将图像从RGB色彩空间转换为Python中的灰度图像?
Scikit-learn,通常称为sklearn,是Python中用于实现机器学习算法的库。
通常使用将图像从一个颜色空间转换到另一个颜色空间,以便新获得的颜色空间可以作为更好的输入来执行其他操作。这包括分离色调,亮度,饱和度水平等。当使用RGB表示法表示图像时,色调和亮度属性显示为通道R,G和B的线性组合。
当尝试将使用RGB颜色空间的图像转换为灰度时,像素值被计算为红色、绿色和蓝色像素的加权和。以下是该方程式−
Y = 0.2125 R + 0.7154 G + 0.0721 B
这些权重是明确提供的,因为它们被CRT磷光体使用,该磷光体以比对三种值的均等权重更好地代表红色、绿色和蓝色颜色的人类感知。
让我们看看如何将RGB图像转换为灰度图像 −
更多Python相关文章,请阅读:Python 教程
示例
from skimage import io
import matplotlib.pyplot as plt
from skimage import data
from skimage.color import rgb2gray
from skimage import data
path = "路径到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("原始图像")
ax[1].imshow(grayscale_img, cmap=plt.cm.gray)
ax[1].set_title("灰度图像")
fig.tight_layout()
plt.show()
输出

解释
- 导入所需的库。
- 定义图像存储的路径。
- 使用‘imread’函数访问路径并读取图像。
- 使用‘imshow’函数将图像显示在控制台上。
- 使用函数‘rgb2gray’将图像从RGB色彩空间转换为灰度色彩空间。
- 使用matplotlib库绘制此数据,并显示原始图像和转换为灰度图像后的图像。
- 这在控制台上显示。
极客教程