-1

我对这些东西很陌生,我已经在 C++ 中实现了一个代码来从 RGB 值中查找 HSV 值。

R = 255;
G = 0;
B = 0;

为此,我得到了HSVas 的值:

H = 0;
S = 1;
V = 1;

不,我正在这里V= 255VS = 255SH = H/2。我得到了正确的hsv值,但我不知道如何在 24 位图图像中绘制它们。我已经搜索了互联网,但可以找到机器人。有人可以帮我吗?谢谢

4

1 回答 1

1

大多数图像格式(包括位图)以 RGB 格式(或 BGR 格式,取决于字节序)存储值。对于 24 位位图,红色使用 8 位,绿色使用 8 位,蓝色使用 8 位,因此如果要以这种格式存储图像,则必须使用 RGB(或在保存之前转换为 RGB)以使图像正确着色。

现在,如果您不关心图像的显示方式,而只想将 H、S 和 V 分量存储在图像的 R、G 和 B 通道中,您可以轻松地做到这一点(只需将通道放大到所需的范围)。因此,对于 24 位位图,每个通道 8 位意味着通道的值介于 0 和 255 之间。假设 H、S 和 V 在 0 到 1 的范围内,您可以将每个通道乘以 255 以将它们置于该范围内.

下面是分别存储在图像的 R、G 和 B 通道中的 Stack Overflow 徽标的 H、S 和 V 值。

RGB 通道中的 HSV 示例

于 2013-04-22T03:11:41.590 回答