Получение преобладающего цвета на изображении?
Можно ли получить преобладающий цвет на изображении из командной строки? В идеале я хотел бы вернуть его в виде шестнадцатеричного или RGB
Я подумал, что это можно сделать с помощью команды идентификации imagemagick, но я не видел возможности сделать это в документации.
2 ответа
Imagemagick-х identify -verbose
предоставляет таблицу гистограмм палитры, но только если количество уникальных цветов ниже предела (1024 в проверенных версиях, v6.x до v6.8.3).
Вместо этого вы можете простоconvert
"Ваше изображение гистограммой, этот вывод не ограничен количеством уникальных цветов:
convert image.jpg -format %c -depth 8 histogram:info:histogram_image.txt
sort -n histogram_image.txt | tail -1
Сортировка выходных данных по первому столбцу сортировка по частоте цветов пикселей. (Частота определенных цветовых пикселей, конечно, может не соответствовать восприятию человеком преобладающего цвета.)
Если вы уменьшаете цвета, вы можете просто доверять convert
сделать это для вас, выбрав дизеринг и / или постеризацию. Даже специально для веб-сейфа 216:
convert image.png +dither -remap netscape: image_websafe.png
Вы, вероятно, приблизитесь к воспринимаемому преобладающему цвету с помощью некоторого сочетания размытия, изменения размера и постеризации, это не простая задача для определения и решения:
- http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=16936
- https://stackoverflow.com/questions/1421863/get-dominant-colors-from-image-discarding-the-background
Смотрите также следующую ссылку для dcolors
Сценарий, использующий Imagemagick для определения набора преобладающих цветов в изображении, включает в себя координацию цветовой схемы вашего рабочего стола с выбранным изображением рабочего стола: http://javier.io/blog/en/2015/09/30/using-imagemagick-and-kmeans-to-find-dominant-colors-in-images.html
Я нашел этот элегантный и короткий ответ здесь http://blog.endpoint.com/2011/04/determining-dominant-image-color.html
$ convert Waffle.jpg -scale 1x1\! -format '%[pixel:u]' info:-
rgb(219,166,94)