python - 如何按主色自动分类图像?

标签 python ruby image-processing html5-canvas

我有很多(数万张)相当大的 JPG 图片。每个都是索引卡的图像。它们中的大多数是白色的,但有些具有标准索引卡颜色(these colors)。

颜色对应于数据属性,所以我想以编程方式按颜色对这些卡片进行分类。我知道可以使用 canvas 元素和类似 color thief 的算法从 Web 浏览器中的图像中提取主色, 它起作用了——它给了我一个足以装箱的 rgb 值。

但我看不出如何通过网络浏览器在如此多的图像上运行这样的东西。

我想知道是否有人可以推荐一个可以做类似事情的命令行工具,也许是 Python 或 Ruby 模块。

最佳答案

这似乎与 this question 强烈重叠.

不过,如果我处于您的情况,我会尝试一些事情。首先,您可以获得几个可用的 Python 库中的任何一个:OpenCV , Mahotas , PIL , 或 scikits.image都可以解决这个问题,因为您真的只需要去除平均 RGB 值。

编写一个脚本来加载每个图像并将其平均 RGB 值附加到列表中。然后您可以使用 scikits.learn 中的内置方法对这个大的颜色列表执行 meanshift 或 k-means 聚类。由于您可能知道有多少种不同的颜色,因此 k-means 是一个不错的选择。或者,如果您已经知道标准颜色的 RGB 值,那么对于您加载的每个图像,只需计算平均 RGB 值,然后根据最接近的标准颜色 RGB 向量“分类”该图像。

关于python - 如何按主色自动分类图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9677550/

相关文章:

python - 如何迭代 3D numpy 数组

python - 自定义字典类的 ipython 选项卡完成

ruby - 如何告诉终端使用哪个版本的 Ruby?

javascript - Rails 使用 Ajax 和acts_as_votable 进行赞成/反对

python - 将张量保存为 JPEG 图像 - Python/TensorFlow

python - cvtColor() 转换为 LAB 颜色空间后的 Numpy 8 位和 32 位图像数据类型

matlab - 如何使用 MATLAB 对索引图像进行中值滤波?

python - Tensorflow LinearRegressor 特征不能有等级 0

ruby - 当前行以 ^M 结尾时追加文件中的下一行

python - Django Inlines 用户权限+仅查看 - 权限问题