【问题标题】:What would be a good algorithm to convert an image to a limited size color palette将图像转换为有限大小的调色板的好算法是什么
【发布时间】:2014-10-09 15:08:33
【问题描述】:

我正在尝试找出一种算法,将图像(8 位或 32 位)转换为 3 或 4 种自定义颜色(非灰度)的有限调色板。

这可能吗?

我正在尝试使用 C++(但我可以从其他语言中获得它)

Qt 似乎已经有了一个调色板——虽然我不明白它的用法,但它似乎强制显示在它自己的标准调色板之一上,我没有看到任何自定义它的方法。

我将不胜感激一些算法示例或建议。

【问题讨论】:

    标签: c++ image algorithm palette


    【解决方案1】:

    您可以将图像转换为使用固定数量的颜色,方法是使用convertToFormat 传入一个 QRgb 值数组:

    http://qt-project.org/doc/qt-5/qimage.html#convertToFormat-2

    在这种情况下没有抖动...它只是选择最接近的颜色来使用。所以它不是强迫你的调色板,但你必须决定使用什么颜色。互联网上有很多“图像调色板”生成器,如果您想挑选 N 个“最佳”颜色用于图像,您可能会查看这些生成器,尽管这将是一种启发式方法。

    如果你想要抖动,你可以从 Meego 的这个案例开始:

    https://github.com/openwebos/qt/blob/master/src/plugins/graphicssystems/meego/dithering.cpp

    经常有类似任务的人会使用 ImageMagick:

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

    【讨论】:

      猜你喜欢
      • 2013-08-25
      • 1970-01-01
      • 2015-08-31
      • 2019-02-08
      • 2012-10-31
      • 1970-01-01
      • 1970-01-01
      • 2018-01-10
      • 2010-09-27
      相关资源
      最近更新 更多