Самый быстрый способ извлечь кусочки цветов на изображение .pgm?
-
02-10-2019 - |
Вопрос
У меня есть сотня 128 x 128 .pgm -файлов с некоторыми формами на них, и я думаю, что их цветов Мне нужно извлечь эти цвета для обработки изображений. Так что я хотел бы получить матрицу 128 x 128 с каждым элементом, имеющим значение от 0 до 255, предполагая пример 256 цветов.
Что касается языка, то в Python/Java/C# будет поступить, предпочтительно в таком порядке. Я могу использовать либо Windows, либо Linux, чтобы эксклюзивные библиотеки не являются проблемой.
Решение
Что касается решения Python, я считаю Пилот Поддерживает .pgm -файлы. В этом случае (используя Numpy в качестве контейнера для массива, но эта часть не является обязательной):
(Редактировать: Перечитайте свой вопрос и понял, что вы специально хотели GreyScale, а не 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)
Другие советы
п окрашенный грамм луча М доступа Формат настолько тривиальен, что я бы посчитал честью написать анализатор для PGM -файлов на любом языке, который вам нужен. Каждое значение, чтение из файла PGM будет соответствовать RGB
255*Value/Max_Valueбайт.
удачи.