【发布时间】:2020-11-18 14:36:52
【问题描述】:
所以我正在尝试在 Python 上编写一个将 RGB 转换为 HSI 的函数。
我有一个保存在 np.ndarray(我想是张量?)中的图像,尺寸为(1080、1920、3),即 - RGB 中的 1080x1920 像素。如何提取 R/G/B 矩阵;得到 H/S/I 后,如何连接矩阵以取回张量 (1080, 1920, 3)?
【问题讨论】:
所以我正在尝试在 Python 上编写一个将 RGB 转换为 HSI 的函数。
我有一个保存在 np.ndarray(我想是张量?)中的图像,尺寸为(1080、1920、3),即 - RGB 中的 1080x1920 像素。如何提取 R/G/B 矩阵;得到 H/S/I 后,如何连接矩阵以取回张量 (1080, 1920, 3)?
【问题讨论】:
假设your_image包含RGB通道,您可以使用相应的索引提取每个通道:
r = your_image[..., 0]
g = your_image[..., 1]
b = your_image[..., 2]
注意:您可能需要将值标准化为区间 [0.0, 1.0]。如果是这样,将它们除以 255.0。
相反,您可以将三个通道堆叠在一起,如下所示:
import numpy as np
your_image = np.dstack((r, g, b))
【讨论】: