我对这些东西很陌生,我已经在 C++ 中实现了一个代码来从 RGB 值中查找 HSV 值。
R = 255;
G = 0;
B = 0;
为此,我得到了HSV
as 的值:
H = 0;
S = 1;
V = 1;
不,我正在这里V= 255V
,S = 255S
而H = H/2
。我得到了正确的hsv
值,但我不知道如何在 24 位图图像中绘制它们。我已经搜索了互联网,但可以找到机器人。有人可以帮我吗?谢谢
我对这些东西很陌生,我已经在 C++ 中实现了一个代码来从 RGB 值中查找 HSV 值。
R = 255;
G = 0;
B = 0;
为此,我得到了HSV
as 的值:
H = 0;
S = 1;
V = 1;
不,我正在这里V= 255V
,S = 255S
而H = H/2
。我得到了正确的hsv
值,但我不知道如何在 24 位图图像中绘制它们。我已经搜索了互联网,但可以找到机器人。有人可以帮我吗?谢谢
大多数图像格式(包括位图)以 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 值。