繁体   English   中英

colorsys中的RGB到HSV错误?

[英]RGB to HSV wrong in colorsys?

我正在使用 Python 的colorsys库:

import colorsys
colorsys.rgb_to_hsv(64, 208, 61)

output:(0.16666666666666666, 0, 208)

但是这个输出是错误的,这是使用 RGB 到 HSV 在线转换器的真实值: RGB to HSV

这是怎么回事?

colorsys的取值范围01

所有这些颜色空间中的坐标都是浮点值。 在 YIQ 空间中,Y 坐标介于 0 和 1 之间,但 I 和 Q 坐标可以为正也可以为负。 在所有其他空间中,坐标都在 0 和 1 之间。

您需要将每个值除以255.以获得预期的输出:

>>> colorsys.rgb_to_hsv(64/255., 208/255., 61/255.)
(0.3299319727891157, 0.7067307692307692, 0.8156862745098039)

为避免此类错误,您可以使用colorir 它在底层使用 colorsys,但允许格式规范:

>>> from colorir import sRGB
>>> sRGB(64, 208, 61).hsv(round_to=1)
HSV(118.8, 0.7, 0.8)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM