Обработайте изображение с помощью Imagemagick в «палитре по умолчанию» (например, 16 или 256 цветов) - PullRequest
1 голос
/ 02 мая 2019

В настоящее время я обрабатываю изображение, чтобы извлечь из него основные цвета:

-resize '50x50' -colors '8' -colorspace 'RGB' -quantize 'RGB' '/tmp/downsampled20190502-27373-iqgqom.png'

Тем не менее, он возвращает мне много цветов, поэтому я должен ограничить их основной палитрой (например, белый / черный / красный / и т. Д.), Так что я думаю, мне будет достаточно 8 или 16 цветов.

Я думал, что -colors '8' должен его обработать, однако он возвращает только 8 основных цветов изображения.

Есть ли у вас какие-либо идеи о том, как я могу извлечь цвета и преобразовать их в 3-битную (8-цветная палитра)

Я конвертирую его в GIF, однако GIF содержит 256 цветовых палитр.

1 Ответ

1 голос
/ 03 мая 2019

Я думаю, что вы хотите сопоставить все цвета одному из 8 "праймериз" .Итак, давайте сделаем палитру приемлемых цветов:

convert xc:red xc:lime xc:blue xc:cyan xc:magenta xc:yellow xc:white xc:black +append palette.gif

И увеличим ее и посмотрим на нее (потому что на данный момент это всего 8x1 пикселей):

enter image description here

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

enter image description here

и переназначьте все цвета в «приемлемо» палитра без дизеринг:

convert colorwheel.png +dither -remap palette.gif result.png

enter image description here

и теперь переназначение с дизерингом:

convert colorwheel.png -remap palette.gif result.png

enter image description here


Вы можете создать свою собственную палитру - вам не нужно использовать мои цвета, и вы можете создавать любые 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...