2010-11-04 2 views
0

EDIT: На самом деле, мне нужен способ, которым я могу читать строки и извлекать информацию пикселя в некоторую структуру, так что я могу использовать функцию putpixel для создания изображения на основе частей на миллион p3.Импорт PPM изображения питона и PIL модуля

Я пробовал это так долго, и я не могу просто понять это правильно.

Я работаю с Python Imaging Library (PIL), и я хочу открыть изображение PPM и отобразить его как изображение на экране.

Как это сделать, используя только PIL?

это мой ppm образ. это всего лишь изображение 7x1, которое я создал.

P3 
# size 7x1 
7 1 
255 
0 
0 
0 
201 
24 
24 
24 
201 
45 
24 
54 
201 
201 
24 
182 
24 
201 
178 
104 
59 
14 
+0

Показаны то, что вы пытались бы хорошо. –

ответ

0

Редактировать: После того как вы изменили свой вопрос и позволили просто прочитать строки, проверьте приведенную ниже ссылку. В нем объясняется, как написать оболочку, загружающую файл. Я собираюсь проверить это сам, и он должен работать ...


Вы в настоящее время (11/2010) не может открыть простые изображения PPM с PIL. Обычная здесь означает ascii. Однако работают двоичные версии. Основная причина этого заключается в том, что файлы ascii не имеют постоянного количества бит на пиксель. И это то, что предполагает загрузчик изображений в PIL. У меня есть вопрос, связанный на:

How to write PIL image filter for plain pgm format?

Я планирую написать PIL-фильтр для равнины PPM, но я мало времени. Если вы хотите помочь, сообщите мне.

уш,
Юха

2

Edit: Немного больше информации проходит долгий путь. Теперь, когда я вижу изображение, которое вы пытаетесь открыть вместе с точным сообщением об ошибке, я помню немного документированный факт о PIL и PPM-PIL не поддерживает версии ASCII, начиная с P1/P2/P3, только двоичный версии P4/P5/P6. Постскриптум Вам не хватает поля в вашем файле, должно быть 255 для максимального значения пикселя после ширины и высоты.


PPM is listed в качестве поддерживаемого формата, вы должны иметь возможность открыть файл с помощью Image.open('myfile.ppm').

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

+0

Windows xp, python 2.6, установленный для python 2.6. – andrepcg

+0

@Andrepcg, см. Обновление. –

+0

проверить мое обновление – andrepcg

1

Читать учебник: http://effbot.org/imagingbook/introduction.htm

Самый первый пример

>>> import Image 
>>> im = Image.open("lena.ppm") 
>>> im.show() 
+0

Стоит отметить, что вы можете попасть в метод 'show()'. Если вы работаете в Linux, убедитесь, что у вас установлена ​​команда 'xv'. – Wesley

+0

Я пробовал это раньше, и каждый раз получаю сообщение об ошибке. "повысить IOError (" невозможно определить файл изображения ") IOError: невозможно определить файл изображения" – andrepcg

1

im = Image.open("lena.ppm")

Это не похоже на работу для P3 * .PPM, это работает, если вы пытаетесь P6 один.

2

И если вам нравится работать с np.array объектами, просто сделать это:

>>> from scipy.misc import imread 
>>> img = imread(path_to_ppm_file) 
>>> img.shape 
>>> (234, 555, 3) 
Смежные вопросы