c++ - MagickQuantizeImage 用法

标签 c++ image imagemagick image-manipulation

我正在使用 ImageMagick 处理一些图像图书馆。作为处理的一部分,如果这不影响图像质量(太多),我想尽量减少颜色的数量。

为此,我尝试使用 MagickQuantizeImage功能。谁能告诉我应该选择哪些参数?

树深度:
通常,此整数值为零或一。零或一告诉 Quantize 选择最佳树深度 Log4(number_colors)。% 这种深度的树通常允许以最少的内存和最快的计算速度最好地表示引用图像。在某些情况下,例如具有低色散(几种颜色)的图像,需要除 Log4(number_colors) 之外的值。要完全展开颜色树,请使用值 8。
抖动:
非零值将原始图像和相应颜色减少算法之间的差异分布到沿希​​尔伯特曲线的相邻像素。
测量误差:
非零值衡量原始图像和量化图像之间的差异。这个差异就是总的量化误差。误差的计算方法是对图像中的所有像素求和 RGB 空间中每个引用像素值与其量化值之间的距离平方。

ps:我做了一些测试,但有时图像质量受到严重影响,我不想通过反复试验找到结果。

最佳答案

这是对算法的非常好的描述

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

它们引用的是命令行版本,但概念是相同的。

参数 measure_error 旨在让您了解您得到的答案有多好。设置为非零值,然后在量化后查看 Image 对象的 mean_error_per_pixel 字段,看看您获得的量化有多好。

如果不够好,增加颜色的数量。

关于c++ - MagickQuantizeImage 用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5422102/

相关文章:

c++ - boost::condition_variable::timed_wait() 在虚假唤醒时返回什么?

c++ - 可能的内存泄漏?

c++ - 采访: Maximum path sum in a 2-D matrix using recursion.路径恢复

linux - ImageMagick,反转我的命令

imagemagick - 如何使用 imagemagick 创建类似 shutterstock 的水印

我的最大二进制堆中的 C++ 轮询操作工作得非常慢

html - 调整到屏幕宽度约束比例的背景图像

css - 当我向下滚动时背景变白,我哪里出错了? (我是新来的)

image - 快速计算扭曲矩阵

ImageMagick 批量蒙太奇子文件夹中的所有图像