Schnellster Weg, um die Bits der Farben in einem .pgm Bild zu extrahieren?
-
02-10-2019 - |
Frage
Ich habe hundert 128 x 128 .pgm Dateien mit einigen Formen auf ihnen, und ich denke, dass die Farbskala ist 255 (nicht sicher, auf diesem aber so, es wäre schön, wenn eine Lösung auch das nehmen könnte in consideration) und ich brauche diese Farben zu extrahieren, um die Bilder zu verarbeiten. Also, was Ich mag würde am Ende mit einer 128 x 128 Matrix mit jedem Elemente sein würde, einen Wert zwischen 0 mit -. 255, das 256 Farben Beispiel unter der Annahme,
Wie für die Sprache, alles in Python / Java / C # tun wird, vorzugsweise in dieser Reihenfolge. Ich kann entweder Windows oder Linux verwenden, so exklusive Bibliotheken sind kein Thema.
Lösung
Soweit eine Python-Lösung geht, glaube ich PIL unterstützt .pgm Dateien. In diesem Fall (unter Verwendung von numpy als Ordnungsbehälter, aber dieser Teil ist optional):
(Edit: Re-lesen Sie Ihre Frage und erkennen, dass Sie speziell Graustufen- wollten, anstatt RGB ... Was ich aus dem .pgm Format erkannt haben sollte, trotzdem ...)
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)
Andere Tipps
P ortable G ray < strong> M ap Format ist so trivial, dass ich eine Ehrensache betrachten würde einen Parser für pgm-Dateien zu schreiben, sich in welcher Sprache Sie benötigen. Jeder Wert von PGM-Datei lesen entspräche RGB
255*Value/Max_ValueByte.
viel Glück.