Использование MagickQuantizeImage - PullRequest
2 голосов
/ 24 марта 2011

Я обрабатываю некоторые изображения, используя библиотеку ImageMagick . В рамках обработки я хочу минимизировать количество цветов, если это не влияет на качество изображения (слишком сильно).

Для этого я попытался использовать функцию MagickQuantizeImage . Может кто-нибудь объяснить мне, кому выбрать параметры?

treedepth
Обычно это целочисленное значение равно нулю или единице. Ноль или один говорит Квантования выбрать оптимальную глубину дерева в Log4 (number_colors).% Дерево этой глубины обычно позволяет наилучшее представление опорного изображения с наименьшим количеством памяти и быстрой скоростью вычислений. В некоторых случаях, таких как изображение с низкой дисперсией цвета (несколько цветов), требуется значение, отличное от Log4 (number_colors). Чтобы полностью развернуть дерево цветов, используйте значение 8.
дитеринг
Значение, отличное от нуля, распределяет разницу между исходным изображением и соответствующим алгоритмом уменьшения цвета по соседним пикселям вдоль кривой Гильберта.
measure_error:
Значение, отличное от нуля, измеряет разницу между исходным и квантованным изображениями. Эта разница является общей ошибкой квантования. Ошибка вычисляется путем суммирования по всем пикселям в изображении квадрата расстояния в RGB-пространстве между каждым значением эталонного пикселя и его квантованным значением.

ps: я провел несколько тестов, но иногда сильно ухудшает качество изображений, и я не хочу находить результат методом проб и ошибок.

1 Ответ

1 голос
/ 26 марта 2011

Это действительно хорошее описание алгоритма

http://www.imagemagick.org/www/quantize.html

Они ссылаются на версию для командной строки, но концепции совпадают.

параметр measure_error предназначен для того, чтобы дать вам представление о том, насколько хороший ответ вы получили.Установите ненулевое значение, затем посмотрите на поле mean_error_per_pixel объекта Image после квантования, чтобы увидеть, насколько хорошо вы получили квантование.

Если этого недостаточно, увеличьте количество цветов.

...