Python中的主要颜色检测

dch*_*ang 7 python colors detection

我有大约3000张图像和13种不同的颜色(这些图像的大部分背景为白色).如果图像的主色是13种不同颜色中的一种,我希望它们相关联.

我见过类似的问题,例如使用python的图像颜色检测,要求使用平均颜色算法.我几乎使用Python图像库和直方图复制了这些代码,并使其工作 - 但我发现它对于确定主要颜色并不太可靠.

有任何想法吗?或图书馆可以解决这个问题?

提前致谢!

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

再次感谢.

jte*_*ace 10

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

(N, COLOR)
Run Code Online (Sandbox Code Playgroud)

其中NCOLOR图像中颜色出现的次数.要获得最大颜色,可以将列表传递给max函数:

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

请注意,我传递im.size[0]*im.size[1]给getcolors函数,因为这是最大值maxcolors(有关详细信息,请参阅文档).