Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.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
Colors 从HSL检测颜色中性_Colors_Imagemagick_Hsl_Color Theory - Fatal编程技术网

Colors 从HSL检测颜色中性

Colors 从HSL检测颜色中性,colors,imagemagick,hsl,color-theory,Colors,Imagemagick,Hsl,Color Theory,我有许多HSL值,我想根据以下方面进行分类: 颜色中性(即将所有中性颜色(如黑色/灰色/白色/米色/棕色)归为一组,将所有非中性颜色(如黄色/蓝色/绿色/红色)归为一个单独的类别) 亮度 后者相对简单,因为我可以取L值并将>50%定义为光,我整理了一些由HSL、HSV和LCH(圆柱形实验室)安排的颜色图表,以了解什么是“颜色中性”的更好指标。饱和度/色度从上到下增加,亮度/值从左到右增加,色调在每个4*4子正方形内从左上到右下呈对角线增加 HSL HSV LCH 当然,这取决于你的决定

我有许多HSL值,我想根据以下方面进行分类:

  • 颜色中性(即将所有中性颜色(如黑色/灰色/白色/米色/棕色)归为一组,将所有非中性颜色(如黄色/蓝色/绿色/红色)归为一个单独的类别)
  • 亮度

后者相对简单,因为我可以取L值并将>50%定义为光,我整理了一些由HSL、HSV和LCH(圆柱形实验室)安排的颜色图表,以了解什么是“颜色中性”的更好指标。饱和度/色度从上到下增加,亮度/值从左到右增加,色调在每个4*4子正方形内从左上到右下呈对角线增加

HSL

HSV

LCH

当然,这取决于你的决定,但我认为HSL s、HSV s和LCH C似乎都相当符合“颜色中性”


我有一点想法。在我看来,这有点像:

我们可以用一些简单的算法来实现这个版本

convert xc:blue xc:darkRed xc:red xc:pink xc:brown xc:gray \
  -colorspace HSL -format '%[fx:(abs(b-0.5)+(1-g))/1.5]\n' info:-
# 5.08634e-06
# 0.151629
# 5.08634e-06
# 0.250985
# 0.333272
# 0.670588
或将其应用于HSL彩色图表

convert comp-hsl.png -colorspace HSL \
  -channel red -fx "(abs(b-0.5)+(1-g))/1.5" -channel R -separate \
  hsl4.png

< /P>我相信低饱和度将识别HSL色彩空间的颜色中性。感谢@ EMCuneLee,虽然我不确定它是否会起作用。例如,以布朗为例,它往往具有高饱和度,但我仍然认为它是中性色。也许我对中性色有不同的定义,因为即使是低饱和的绿色或蓝色,我也会考虑非中性——我想我正在寻找一个相对严格的定义,黑色,灰色,白色,米色和棕色。我希望这是有道理的!