Wie konvertieren von RGB-PIL Bild zu numpy-array mit 3 Kanälen?

Ich bin laden-image mit dem folgenden code

image = PIL.Image.open(file_path)
image = np.array(image)

Funktioniert es, aber die Größe des Arrays zu sein scheint (X, X, 4) ist, d.h. Sie hat 4 Ebenen. Ich würde wie normale RGB-Schichten. Ist es möglich?

UPDATE

Fand ich, dass nur das entfernen der 4. Kanal ist unsufficcient. Der folgende code notwendig:

image = PIL.Image.open(file_path)
image.thumbnail(resample_size)
image = image.convert("RGB")
image = np.asarray(image, dtype=np.float32) / 255
image = image[:, :, :3]

Warum?

Einfach clip auf drei Kanälen : image[...,:3].
Die vierte Schicht ist das alpha (D. H. Transparenz) Kanal. Sind Sie sicher, dass Sie das nicht wollen?
Ich lese JPEGs, soweit ich weiß, enthalten Sie keine alpha.
Wenn ich np.asarray(my_pil_img).shape es gibt (480, 640, 3) auf 480x640 .png-Bild ohne alpha. Ist das etwas, das wurde "behoben" werden in einer späteren version, da diese post?

InformationsquelleAutor Dims | 2017-07-06

Schreibe einen Kommentar