我有很多相当大的JPG图像(成千上万)。每个都是索引卡的图像。其中大多数是白色的,但有些具有标准的索引卡颜色(these colors)。
颜色对应于数据属性,因此我想以编程方式按颜色对这些卡进行分类。我知道可以使用canvas
元素和color thief这样的算法在Web浏览器中从图像中提取主色,并且它可以工作 - 它给了我一个rgb值,足以容纳卡。
但我无法看到如何在这么多图像上通过网络浏览器运行这样的东西。
我想知道是否有人可以推荐一个命令行工具,可能是Python或Ruby模块,可以做类似的事情。
答案 0 :(得分:3)
这似乎与this question强烈重叠。
如果我在你的情况下,我会尝试一些事情。首先,您可以使用几个可以工作的Python库中的任何一个:OpenCV,Mahotas,PIL或scikits.image都可以处理这个,因为您真的需要去除平均RGB值。
编写脚本以加载每个图像并将其平均RGB值附加到列表中。然后,您可以使用scikits.learn中的内置方法在这个大的颜色列表上执行meanshift或k-means聚类。由于您可能知道有多少种不同的颜色,因此k-means是一个不错的选择。或者,如果您已经知道标准颜色的RGB值,那么对于您加载的每个图像,只需计算平均RGB值,然后根据RGB矢量最接近的标准颜色“分类”该图像。