2017-01-05 12 views
0

Я пытаюсь использовать библиотеку Pillow в Python 2.7 для извлечения значений пикселей в заданных координатах на изображениях 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?

Спасибо за любую помощь в этом,

Alex

+0

вы можете загрузить тестовое изображение, которое вы использовали? –

ответ

1

Вы должны рассмотреть, выполнив одно из следующих действий:

ПЕРВОГО конвертировать изображение в оттенки серого, а затем найти значения пикселей настоящее время.

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

ВТОРОЙ Если вы хотите, чтобы значения пикселов каналов RGB, вы должны разделить ваш цвет изображения. Затем найдите значения пикселей во всех каналах с определенной координатой.

Image.split(img) 
+0

Спасибо. Это фактически решило эту проблему для меня, поскольку анализ, который я делаю, работает лучше на изображении в градациях серого. –

2

Я не уверен, что вы можете получить к нему доступ так, как хотите, из-за сложности данных изображений.

the pixel Просто получить:

Image.getpixel (ху)

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.: