2015-11-04 110 views
0

我正在开发一个项目,我需要找到图片中每个像素的RGB值。我如何使用PIL来做到这一点?我知道枕头更好,但是因为我只需要做这件事情,我认为我可以使用PIL。如果这不起作用,请告诉我。使用PIL分析像素RGB值

回答

0
from PIL import Image 
img = Image.open("filename.png") 
pixels = img.load() 

#get the B value of the pixel at x=23, y=42 
print pixels[23, 42][2] 
+0

谢谢,这个答案帮了我很多 –

0

以前的答案是一个很好的解决方案,但只是建议另一种方式是一条线:

from scipy import misc; 

imgData = misc.imread('./image.png'); 

然后,您可以轻松搞定的颜色在你需要每一个像素。

0

凯文得到了很多的发现,你也可以使用getdata()返回元组列表。

我可能得到了这个完全错误的,但如果你需要特定的像素,load()可能会更好,如果你需要所有的像素,load()可能会更好。另外,如果它只是一个普通的图像,那么转换为RGB是个好主意,因为我之前没有这样做,所以我以前有过错误。

image = Image.open('filename').convert('RGB') 
width, height = image.size 

#Get pixels in a list of tuples 
pixels = image_input.getdata() 

#If you need a flat list containing all the colours 
bytes = [j for i in pixels for j in i] 

如果您需要对像素执行某些操作并重建图像,那么图像大小会变得有用。