Я собрал несколько цветовых диаграмм, составленных HSL, HSV и LCH (цилиндрический LAB), чтобы увидеть, какой показатель лучше для «нейтральности цвета». Насыщенность / цветность увеличивается сверху вниз, яркость / значение увеличивается слева направо, а цвет увеличивается по диагонали вверх слева направо внутри каждого квадрата 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