按颜色分类图像

use*_*543 9 php rgb image histogram

我正在寻找一种方法来对图像进行排序,如下面的屏幕截图所示:

http://www.pixolution.de/sites/LargeImages_en.html

我已经在stackoverflow上查看了关于这个主题的所有主题,但是所提出的解决方案都没有给我上面的图像.

我试过的方法:

  1. 对于每个图像,按发生的降序构建rgb颜色的直方图
  2. 对于每个直方图,计算与黑色的距离(r:0,g:0,b:0),如下所示:

    for color in image_histogram:
      total_distance += color.percentage_of_image * distance(BLACK_RGB, color.rgb)
    
    Run Code Online (Sandbox Code Playgroud)

然后按距离对图像进行排序

我希望相似颜色分布的图像最终会有相似的距离,并导致按颜色进行视觉排序.事实并非如此,它似乎有点工作,但不像上面的图像.

对于距离函数,我尝试了欧几里德距离,hsv排序(h-> s-> v)甚至Lab距离排序.其中没有一个有帮助

如果有人有更好的方法,我很想知道!

Ry-*_*Ry- 0

使用相似颜色之间的距离而不是它们与黑色之间的距离对相似颜色进行分组,并使用图像中的平均颜色。