2017-02-22 31 views
0

Мой вопрос несколько похож на this one, но я не мог понять, как заставить его работать для меня. Я хочу, чтобы преобразовать в оттенках серого BMP произвольного размера в список списков со значениями от 0 до 255.
Например:
Если вход выглядит следующим образом: grayscale bmp
Вывод должен быть:Python: превращение BMP в шкалу серого в список списков

pic = [[255, 255, 255, 255, 255, 255, 255, 255, 255, 255], 
     [255, 255, 255, 255, 255, 255, 255, 255, 255, 255], 
     [255, 255, 127, 127, 127, 127, 127, 127, 255, 255], 
     [255, 255, 127, 127, 127, 127, 127, 127, 255, 255], 
     [255, 255, 127, 127, 0 , 0 , 127, 127, 255, 255], 
     [255, 255, 127, 127, 0 , 0 , 127, 127, 255, 255], 
     [255, 255, 127, 127, 127, 127, 127, 127, 255, 255], 
     [255, 255, 127, 127, 127, 127, 127, 127, 255, 255], 
     [255, 255, 255, 255, 255, 255, 255, 255, 255, 255], 
     [255, 255, 255, 255, 255, 255, 255, 255, 255, 255]] 

У меня почти нет опыта обработки изображений.

ответ

1

Вы должны рассмотреть возможность использования библиотеки PIL:

In [1]: from PIL import Image 
In [2]: img = Image.open('HrWCY.png') 
In [3]: img.getdata().getpixel((0,0)) 
Out[3]: 0 
In [4]: img.getdata().getpixel((4,4)) 
Out[4]: 255 
In [5]: img.getdata().getpixel((5,7)) 
Out[5]: 164 
In [6]: img.getdata().getpixel((12,12)) 
--------------------------------------------------------------------------- 
IndexError        Traceback (most recent call last) 
<ipython-input-6-8456667c785c> in <module>() 
----> 1 img.getdata().getpixel((12,12)) 
IndexError: image index out of range 

Проверьте documentation, вы должны оштрафовать лучшие методы для этой цели.