繁体   English   中英

将hsv转换为rgb并返回

[英]Converting hsv to rgb and back

我一直很想获得正确的值。 在此示例中,我有一台向我发送紫色的设备,其中发送给我的数据是:

Saturation: 68
Brightness: 100
ColorTemperature: 4049
Hue: 0

我需要将其转换为RGB。 当我尝试内置方法时:

import colorsys

hue = 0
saturation = 68
brightness = 100
colortemp = 4049

r, g, b = colorsys.hsv_to_rgb(hue, saturation, brightness)

我得到以下结果:

Red: 100 | Green: -6700.0 | Blue: -6700.0

因此,我进行了一些研究,找到了这篇SO文章该文章解释了数字必须是十进制值,并在声明以下内容时尝试使用其写法:

该函数期望s(饱和度)和v(值)为小数,而不是百分比。 除以100。

对代码进行以下更改:

hue = 0
saturation = .68
brightness = 1.0
colortemp = 4049

结果是:

Red: 1.0 | Green: 0.32 | Blue: 0.32

或乘以255:

Red: 255.0 | Green: 81.6 | Blue: 81.6

那颜色是红色。

我究竟做错了什么? 我知道,使用吸管抓取颜色时,RGB的结果应该在102、60、250左右,但是我无法获得接近该值的任何值。

为了使其更加复杂,在某些时候,我将需要再次从RGB转换回HSV。 如果解决方案是因为我只是使用了不正确的值或其他东西,那么我认为要转换回去的Python方法是正确的,但我现在就陷入了困境。

我认为您的设备向您发送了不正确的信息。 您为HSV提供的值红色的。

颜色选择器

暂无
暂无

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

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