2017-01-05 24 views
0

我试图在Python 2.7中使用Pillow库来提取给定坐标PNG和JPG图像上的像素值。我没有遇到错误,但是我总是得到相同的值,而不管我在图像中使用的坐标值是否与值有所不同。使用Pillow提取像素值 - 我使用的每个坐标都给出相同的值

这是我的脚本摘录,我打印的所有值(它的一个小的测试图像):

from PIL import Image 

box = Image.open("col_grad.jpg") 

pixels = list(box.getdata()) 

print(pixels) 

而且从当我尝试提取单个值:

from PIL import Image, ImageFilter 

box = Image.open("col_grad.jpg") 

value = box.load() 

print(value[10,10]) 

我一直在使用关于此主题的这些以前的问题以获得指导,包括:

Getting list of pixel values from PIL

How can I read the RGB value of a given pixel in Python?

感谢任何帮助,

亚历

+0

你可以上传你所使用的测试图像? –

回答

1

您应该考虑做以下之一:

FIRST转换您的图像灰度,然后找到像素值当下。

img_grey= img.convert('1')  # convert image to black and white 

第二如果你想RGB通道的像素值,你要拆你的彩色图像。然后在特定的坐标处找到所有通道中的像素值。

Image.split(img) 
+0

谢谢。这实际上解决了这个问题,因为我正在做的分析在灰度图像上效果更好。 –

2

由于图像数据的复杂性,我不确定您是否可以按照自己想要的方式访问它。

刚刚获得the pixel

Image.getpixel(XY)

Returns the pixel value at a given position. 
Parameters: xy – The coordinate, given as (x, y). 
Returns: The pixel value. If the image is a multi-layer image, this method returns a tuple.: 
相关问题