Photoshop调色刀效果背后的算法是什么?

时间:2019-07-03 20:30:26

标签: algorithm image-processing colors photoshop

我正在尝试找到Photoshop中使用的某些效果背后的算法甚至是一般思路。具体来说,调色刀效果可简化图像的颜色。例如,下面的图片:

enter image description here

变成这样的东西:

p

我希望对于每组具有相似颜色的像素,像在Photoshop中一样,将其实时转换为一种或两种颜色的简单块。任何实现此方法的想法都将受到赞赏。

按照tucuxi的建议,我可以运行类似 kNN 的分类算法,为每个图像(视频中的帧)选择 K 主要颜色,然后更改每个像素的颜色 k 代表中最接近的代表。我将把代码放在这里,感谢任何改进建议。

1 个答案:

答案 0 :(得分:3)

由于要选择代表性的颜色,因此可以按以下步骤进行操作:

  1. 从图像中总共存在的N种颜色中选择K种颜色
  2. 对于图像中的每个像素,将其替换为所选K内最接近的颜色

要实现步骤1,您可以在实际的色彩空间上运行k-nearest-neighbors。在WxH图像中,您有WxH像素,每个像素都有一种颜色。您选择K种随机颜色充当质心,向每个像素添加最接近的像素,然后过一会儿,您将获得K种不同的颜色,这些颜色或多或少代表了图像的最重要颜色(就不是太重要而言)远离其他所有人)。请注意,这只是一种可能的聚类算法-我相信有很多关于替代词及其相对优点的文献。

第2步相对容易得多。对于每个原始像素,计算与K种所选颜色中每种颜色的距离,然后用最接近的一种替换。