我想使用python将RGB值转换为HSV。我得到了一些代码样本,其结果是S和V值大于100.(例如:http://code.activestate.com/recipes/576554-covert-color-space-from-hsv-to-rgb-and-rgb-to-hsv/)。任何人有一个更好的代码转换RGB到HSV反之亦然使用python将RGB值转换为等效的HSV值
感谢
我想使用python将RGB值转换为HSV。我得到了一些代码样本,其结果是S和V值大于100.(例如:http://code.activestate.com/recipes/576554-covert-color-space-from-hsv-to-rgb-and-rgb-to-hsv/)。任何人有一个更好的代码转换RGB到HSV反之亦然使用python将RGB值转换为等效的HSV值
感谢
你尝试使用colorsys库?
的colorsys模块定义了 RGB表示颜色之间 值颜色的 双向转换(红绿蓝)色彩空间用于在计算机显示器 和三个其他 坐标系:YIQ,HLS(色调 明度饱和度)和HSV(色调饱和度 值)
实施例(从上述链接截取):
>>> import colorsys
>>> colorsys.rgb_to_hsv(.3, .4, .2)
(0.25, 0.5, 0.4)
>>> colorsys.hsv_to_rgb(0.25, 0.5, 0.4)
(0.3, 0.4, 0.2)
你输入了什么R,G和B值,以及你看到错误的H,S和V的值?
您链接到的代码与colorsys类似,预计值在0.0到1.0之间。如果你用0到255范围内的整数值来调用它,你会得到假结果。如果你给它所期望的输入值,它应该可以正常工作。
(这是一个代码示例,它实际上并没有记录,预计什么样的投入明显失败。)
如果使用PIL,与最近枕头的副本,一个应该使用
def rgb2hsv(image):
return image.convert('HSV')
如何将像(220,20,60)这样的整数值转换为float以与colorsys一起使用? – 2010-04-10 05:35:42
@ sree01:256中的小数部分适合你吗?即'val_in_int/float(256)'? – 2010-04-10 05:38:15
感谢您的回复 – 2010-04-12 05:04:38