Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 如何绘制图像的色调分量_Image Processing_Hsl - Fatal编程技术网

Image processing 如何绘制图像的色调分量

Image processing 如何绘制图像的色调分量,image-processing,hsl,Image Processing,Hsl,我提取了一个图像的色调成分,我需要渲染它。色调是角度值范围[0°-360°],使用最小-最大规格化将其规格化为[0-255]是不合理的,如下所示: 值=(色调-0)*255/(360-0) 知道如何将色调值标准化为[0-255]吗? 谢谢 在给定输入范围[inp_min-inp_max]和输出范围[out_min-out_max]的情况下,从一个范围归一化到另一个范围的常用方法是使用 输出=(输入-输入最小值)/(输入最大值-输入最小值)*(输出最大值-输出最小值)+输出最小值 因此,请使用:

我提取了一个图像的色调成分,我需要渲染它。色调是角度值范围[0°-360°],使用最小-最大规格化将其规格化为[0-255]是不合理的,如下所示: 值=(色调-0)*255/(360-0)

知道如何将色调值标准化为[0-255]吗?
谢谢

在给定输入范围[inp_min-inp_max]和输出范围[out_min-out_max]的情况下,从一个范围归一化到另一个范围的常用方法是使用 输出=(输入-输入最小值)/(输入最大值-输入最小值)*(输出最大值-输出最小值)+输出最小值

因此,请使用: 值=(色调-0)/(360-0)*(255-0)+0

或者更简单地说: 值=色调*255/360

编辑

因此,从下面的评论中,我现在理解了这个问题。真正要问的是如何将色调值转换为RGB三元组。使用作为参考:

h'=色调/60

x=(1-|(h'模2)-1 |)*255


如果(h'在给定输入范围[inp_min-inp_max]和输出范围[out_min-out_max]的情况下,从一个范围归一化到另一个范围的通常方法是使用 输出=(输入-输入最小值)/(输入最大值-输入最小值)*(输出最大值-输出最小值)+输出最小值

因此,请使用: 值=(色调-0)/(360-0)*(255-0)+0

或者更简单地说: 值=色调*255/360

编辑

因此,从下面的评论中,我现在理解了这个问题。真正要问的是如何将色调值转换为RGB三元组。使用作为参考:

h'=色调/60

x=(1-|(h'模2)-1 |)*255


如果(h',我假设你从RGB开始,转换成HSV得到h值

显示此H值的最简单方法是将大值指定给S(最大饱和度),将中值指定给V(不是最大强度,因为这会导致白色),然后应用逆变换(HSV到RGB)。这将生成带有H颜色表示的RGB图像


通过使用逆变换(我假设它与您用于RGB到HSV转换的库相同),您可以确保使用了相同的H定义。我看到了许多不同的HSV定义(以及HSI、HSL、ISH等)--似乎每个人都使用自己的。我假设你从RGB开始,转换成HSV得到H值

显示此H值的最简单方法是将大值指定给S(最大饱和度),将中值指定给V(不是最大强度,因为这会导致白色),然后应用逆变换(HSV到RGB)。这将生成带有H颜色表示的RGB图像


通过使用逆变换(我假设它与您用于RGB到HSV转换的库相同),您可以确保使用了相同的H定义。我看到了许多不同的HSV定义(以及HSI、HSL、ISH等)--似乎每个人都使用自己的。

这是错误的。这样,你将360°的强度值255和0°分配给强度值0。虽然360°和0°是相同的。我明白你的意思,所以实际上你希望[0-360]映射到[0-256],其中0==360和0==256。怎么样(色调*256/360)mod 256No,0不等于255。它表示强度。而色调也有角度错误,因为350°-358°将有高强度值,2°-10°将有低强度值,这是错误的。这样你将360°强度值255和0°分配给强度值0。而360°和0°是相同的。我明白你的观点,所以实际上您希望[0-360]映射到[0-256],其中0===360和0===256。那么(色调*256/360)mod 256No,0不等于255。它表示强度。虽然色调是角度,但也是错误的,因为350°-358°将具有高强度值,而2°-10°将具有低强度值