python - Python中的主要颜色检测

标签 python colors detection

我有大约 3000 张图片和 13 种不同的颜色(其中大部分图片的背景是白色)。如果图像的主要颜色是这 13 种不同颜色中的一种,我希望将它们关联起来。

我见过类似的问题 Image color detection using python要求平均颜色算法。我几乎复制了该代码,使用 Python 图像库和直方图,并让它工作 - 但我发现它对于确定主要颜色不太可靠。

有什么想法吗?或者可以解决这个问题的图书馆?

提前致谢!

:编辑: 谢谢大家 - 你们几乎都说了同样的话,创建“桶”并增加图像每个最近像素的桶数。我似乎收到很多返回“白色”或“米色”的图像,这也是大多数这些图像的背景。有没有办法解决或忽略背景?

再次感谢。

最佳答案

您可以使用 getcolors函数获取图像中所有颜色的列表。它以以下形式返回元组列表:

(N, COLOR)

其中 N 是颜色 COLOR 在图像中出现的次数。要获得最大出现的颜色,您可以将列表传递给 max功能:

>>> from PIL import Image
>>> im = Image.open("test.jpg")
>>> max(im.getcolors(im.size[0]*im.size[1]))
(183, (255, 79, 79))

请注意,我将 im.size[0]*im.size[1] 传递给了 getcolors 函数,因为这是最大的 maxcolors 值(参见 the docs了解详情)。

关于python - Python中的主要颜色检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7772510/

相关文章:

python - 使用 Selenium 选择具有更改值的单选按钮

css - Mac 上的 Firefox userChrome 边框颜色不正确

python - 在 python : extrapolate background color 中旋转图像

java - 如何更改 Exomedia 的默认视频控制栏的颜色?

delphi - 检测是否存在物理光盘驱动器

python - 你如何在python中移动一个圆圈?

Python RoboBrowser - 如何从此页面获取内容

python - 如何从 Pandas DataFrame 中的行值构建的列表中删除 NaN 值

java - 如何找到某个接口(interface)的所有实现?

c# - 如何查找当前使用的是哪个串口?