Самый быстрый способ извлечь кусочки цветов из изображения .pgm? - PullRequest
3 голосов
/ 13 сентября 2010

У меня есть сто 128 x 128 .pgm файлов с некоторыми формами на них, и я думаю, что их цветовая гамма составляет 255 (хотя не уверен насчет этого, поэтому было бы неплохо, если бы решение могло также принять эторассмотрение), и мне нужно извлечь эти цвета для обработки изображений.В итоге я хотел бы получить матрицу 128 x 128, в которой каждый элемент имеет значение от 0 до 255, если принять пример 256 цветов.

Что касается языка, то все в Python / Java/ C # будет делать, предпочтительно в таком порядке.Я могу использовать либо Windows, либо Linux, так что эксклюзивные библиотеки не проблема.

Ответы [ 2 ]

1 голос
/ 13 сентября 2010

Что касается решения Python, я считаю, PIL поддерживает файлы .pgm.В этом случае (используя numpy в качестве контейнера массива, но эта часть необязательна):

(Правка: перечитайте ваш вопрос и поняли, что вы специально хотели использовать оттенки серого, а не RGB ... Что мне нужнов любом случае реализовано в формате .pgm ...)

import Image
import numpy as np

im = Image.open('test.pgm')

# Convert to grayscale (single 8-bit band), if it's not already...
im = im.convert('L')

# "data" is a uint8 (0-255) numpy array...
data = np.asarray(im)
0 голосов
/ 14 сентября 2010
Формат

P ortable G ray M ap настолько тривиален, что я считаю делом чести написать парсер дляPGM файлы самостоятельно на любом языке, который вам нужен.Каждое значение, считанное из файла PGM, будет соответствовать RGB

255*Value/Max_Value
байт.

удачи.

...