5

我需要解决以下问题:

输入:图像 IM,Palette PA

OUTPUT: IM 只有 PA 的颜色

输入图像是 RGB,但我可以将其转换为 HSV。我指定的颜色目标调色板目前包含:黑色、白色、浅灰色、灰色、深灰色、蓝色、粉色、红色、紫色、绿色、黄色、棕色、橙色。

我为此搜索了很多,但我只能找到将图像缩小为最常见的颜色或将其缩小为固定调色板,如 16 色 EGA 图形。

我找到了最好的答案: 如何使用 Python 图像库将任何图像转换为 4 色调色板图像?

它有一个输入调色板并将图像缩小到该调色板。在 OpenCV 中是否有与 C++ 相同的方法?

4

2 回答 2

2

假设 rgb 颜色空间是 3D 立方体

RGB色彩空间

并且Palette PA是这个立方体中的几个点。所以我们的问题被简化为找到3D 空间Palette PA中任何给定点的最近点。rgb

我认为更好的解决方案是kd 树

在此处输入图像描述

wiki 页面的末尾,您可以找到几个 c++ 实现的链接

于 2014-02-13T12:21:02.423 回答
1

由于您的调色板是固定的,因此您需要使用诸如Floyd Steinberg 抖动之类的抖动方法以及适当的颜色相似性度量,例如在Lab color space中。

于 2013-02-01T12:44:08.850 回答