1 Вопрос: Обработайте изображение с помощью Imagemagick в «палитре по умолчанию» (например, 16 или 256 цветов)

вопрос создан в Thu, May 2, 2019 12:00 AM

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

-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. Я не понимаю, что здесь происходит. Какую версию ImageMagick вы используете - попробуйте identify -version. Кроме того, это генерирует потенциально 1 000 000 различных цветов, но в результате я получаю только 8 - вы можете попробовать, пожалуйста? convert -size 1000x1000 xc:red +noise random -colors 8 result.png Подсчитайте цвета с помощью identify -format %k result.png
    2019-05-02 15: 04: 36Z
  2. Вы имеете в виду, что имеете или хотите создать личную палитру и применять ее ко многим изображениям?
    2019-05-02 16: 23: 24Z
  3. Вы можете составить список цветов, которые вы хотите использовать. Затем превратите это в цветное изображение карты. Затем используйте -remap, чтобы заставить изображение иметь только эти цвета, переназначая пиксели на ближайший цвет. См. imagemagick.org/Usage/quantize/#remap
    2019-05-02 16: 34: 10Z
  4. например, логотип Google - я хочу получить извлечение цветов, таких как: (синий красный желтый желтый зеленый), а не полутонов
    2019-05-03 07: 49: 19Z
  5. Мой ответ решил вашу проблему? Если это так, рассмотрите возможность принятия его в качестве ответа - щелкнув пустую галочку /галочку рядом с подсчетом голосов. Если нет, пожалуйста, скажите, что не сработало, чтобы я или кто-то другой мог помочь вам в дальнейшем. Благодарю. meta.stackexchange. ком /вопросы /5234 /...
    2019-05-15 12: 29: 49Z
1 ответ                              1                         

Я думаю, что вы хотите сопоставить все цвета одному из 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
    
1
2019-05-03 08: 28: 54Z
    отличное начало! и как я мог извлечь существующие цвета только из изображения после этого? Я имею в виду, что colorwheel не имеет черного и белого, поэтому мне нужен список всех цветов, кроме них
    2019-05-03 08: 27: 37Z
  1. Я обновил список ответов, показывающий, как перечислить имена цветов и шестнадцатеричные значения. Обратите внимание, что ImageMagick использует SVG-имя цвета lime, где вы можете ожидать green.
    2019-05-03 09: 07: 25Z
  2. знаете ли вы, как я мог бы преобразовать его, например, для 256 цветов? мне нужно создать палитру вручную? или есть какое-то встроенное решение?
    2019-05-03 12: 03: 29Z
  3. Это зависит от того, что вы хотите сделать, но вы не ответили на мои вопросы в области комментариев. Хотите ли вы всегда конвертировать ваши изображения в фиксированный набор из N цветов, который всегда одинаковый N цветов, или нет? Если нет, то что вы на самом деле хотите сделать?
    2019-05-03 12: 16: 33Z
  4. да, я хочу всегда преобразовывать в определенное количество цветов. convert colorwheel.png -type palette -depth 1 -colors 8 -unique-colors txt: похоже, это то, что мне нужно, спасибо!
    2019-05-03 13: 33: 07Z
источник размещен Вот