0

拥有一张图片,我想将其简化为x颜色并将其保存在 png 文件中。

我选择使用 k-means(OpenCV 中已经提供)来执行此操作。在全分辨率图像上,它需要超过一分钟,所以我将图像调整为更小的东西,然后我得到了调色板。

用调色板中的颜色替换原始图像中的颜色的最佳方法是什么?

我所做的一个简单实现是获取图像中的每个像素并计算该像素与调色板中的像素之间的欧几里德距离,然后在调色板中选择最接近的颜色。这在视觉方面是可以的,但是调色板大小超过 30 需要 30 多秒。

我知道要走的路是使用八叉树或某种形式的k-最近邻算法,但老实说,我不知道我是否应该花时间来实现我认为已经实现的东西。

我可以使用 OpenCV 中适合我的场景的东西吗?我可以期望它比使用欧几里得距离至少快 2 倍吗?

C++ 示例将不胜感激。

4

0 回答 0