[英]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
的取值范围0
到1
:
所有这些颜色空间中的坐标都是浮点值。 在 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.