Я думаю, что вы хотите сопоставить все цвета одному из 8 "праймериз" .Итак, давайте сделаем палитру приемлемых цветов:
convert xc:red xc:lime xc:blue xc:cyan xc:magenta xc:yellow xc:white xc:black +append palette.gif
И увеличим ее и посмотрим на нее (потому что на данный момент это всего 8x1 пикселей):

Теперь возьмите это colorwheel
:

и переназначьте все цвета в «приемлемо» палитра без дизеринг:
convert colorwheel.png +dither -remap palette.gif result.png

и теперь переназначение с дизерингом:
convert colorwheel.png -remap palette.gif result.png

Вы можете создать свою собственную палитру - вам не нужно использовать мои цвета, и вы можете создавать любые RGB /HSL, шестнадцатеричный цвет, который вам нравится, например:
convert xc:"rgb(10,20,200)" xc:"#ff7832" xc:"hsl(10,40,90)" +append palette.gif
Если вам нужны имена и шестнадцатеричные значения цветов в результирующих изображениях:
convert result.png -unique-colors txt:
ОбразецВыход
# ImageMagick pixel enumeration: 7,1,65535,srgb
0,0: (65535,0,0) #FF0000 red
1,0: (0,65535,0) #00FF00 lime
2,0: (65535,65535,0) #FFFF00 yellow
3,0: (0,0,65535) #0000FF blue
4,0: (65535,0,65535) #FF00FF magenta
5,0: (0,65535,65535) #00FFFF cyan
6,0: (65535,65535,65535) #FFFFFF white