繁体   English   中英

如何使用python PIL获取图像中的颜色集

[英]How to get set of colours in an image using python PIL

使用python的PIL模块导入图像后,我想获得图像中的一组颜色作为rgb元组的列表。

如果我事先知道只有2种颜色并且图像会非常小,可能是20x20像素,该怎么办? 但是,我将在很多图像上运行此算法。 遍历所有像素直到看到2种独特的颜色会更有效吗? 因为我知道python中的循环非常慢。

首先,让我们做一个图像。 我将使用ImageMagick使用洋红色书写来制作蓝色背景:

convert -size 300x120 -background blue -fill magenta -gravity center -font AppleChancery label:"StackOverflow" PNG24:image.png

在此处输入图片说明

如您所见,我只指定了两种颜色-洋红色和蓝色,但PNG图像实际上包含200多种颜色,而JPEG图像则包含2,370种不同的颜色!

因此,如果我想获得两种主要颜色,则可以这样做:

from PIL import Image

# Open the image
im = Image.open('image.png') 

# Quantize down to 2 colour palettised image using *"Fast Octree"* method:
q = im.quantize(colors=2,method=2)

# Now look at the first 2 colours, each 3 RGB entries in the palette:
print(q.getpalette()[:6])

样品结果

[0, 0, 255, 247, 0, 255]

如果将其写为2个RGB三元组,则会得到:

RGB 0/0/255   = blue
RGB 247/0/255 = magenta

对于很多图像,最好的方法是使用多线程或多处理,如果您希望它们快完成!

关键字 :Python,PIL,枕头,图像,图像处理,八叉树,快速八叉树,量化,量化,调色板,调色,调色,减少颜色,减少颜色,抗锯齿,字体,独特,独特颜色,独特颜色。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM