我正在使用ImageMagick库处理一些图像。作为处理的一部分,如果这不会影响图像质量(太多),我想减少颜色数量。
为此,我尝试使用MagickQuantizeImage函数。有人可以解释一下我该选择谁。
树深度:
通常,此整数值为零或一。零或一告诉Quantize选择Log4(number_colors)。%的最佳树深度。%此深度的树通常可以用最少的内存和最快的计算速度来最好地表示引用图像。在某些情况下,例如具有低色散(少数颜色)的图像,需要Log4(number_colors)以外的其他值。要完全展开颜色树,请使用值8。
抖动:
零以外的值会沿希尔伯特曲线将原始图像和相应的颜色缩减算法之间的差异分配给相邻像素。
measure_error:
除零以外的其他值用于测量原始图像和量化图像之间的差异。该差异是总量化误差。通过对图像中的所有像素求和,将每个引用像素值与其量化值之间在RGB空间中平方的距离求和来计算误差。
ps:我做了一些测试,但是有时图像质量受到严重影响,我不想通过反复试验找到结果。
最佳答案
这是对算法的一个很好的描述
http://www.imagemagick.org/www/quantize.html
它们引用的是命令行版本,但是概念相同。
参数measure_error
旨在指示您获得的答案的好坏。设置为非零,然后在量化后查看Image对象的mean_error_per_pixel字段,以查看量化效果如何。
如果不够好,请增加颜色数量。