按颜色对图像进行排序

| 我正在寻找一种对图像进行排序的方法,如以下屏幕截图所示: http://www.pixolution.de/sites/LargeImages_en.html 我已经研究了关于stackoverflow的所有主题,但是没有一个提议的解决方案能像上面那样给我提供帮助。 我尝试过的方法: 对于每个图像,按出现的降序建立rgb颜色的直方图 对于每个直方图,计算与黑色(r:0,g:0,b:0)的距离,如下所示:
for color in image_histogram:
  total_distance += color.percentage_of_image * distance(BLACK_RGB, color.rgb)
然后按距离对图像进行排序 我希望颜色分布相似的图像最终具有相似的距离,并导致颜色的视觉排序。事实并非如此,它似乎可以工作,但与上图中的不一样。 对于距离函数,我尝试了欧几里得距离,hsv排序(h-> s-> v),甚至是Lab距离排序。没有任何帮助 如果有人有更好的方法,我很想知道!     
已邀请:
我自己从未做过这样的事情,因此,如果以下方法很幼稚,请原谅我: 对于每张图像,通过将所有像素的R,G,B值相加,将其煮沸到1个平均RGB值,然后除以总共#个像素。将分量归一化为[0..1] 根据RGB值在2D颜色空间中绘制图像。这可以是3D(r,g,b)矢量变换的2D投影。     
您可以转换为HSV并按H排序 色相是大多数人在想到“颜色”时所想到的 请参见:RGB到PHP中的HSV     
使用它们之间的距离(而不是它们与黑色之间的距离)对相似的颜色进行分组,并使用图像中的平均颜色。     
您可能要签出ImagePlot。我不确定系统背后的算法是否可用,但是您当然可以通过免费软件下载并运行图像收集进行分析。 该软件可用于数以百万计的海量图像收集的许多有趣的可视化中 信息:http://lab.softwarestudies.com/p/imageplot.html#whatsnew 资料来源:https://github.com/culturevis/imageplot     

要回复问题请先登录注册