Numpy-Array aus Liste erstellen: Kann keinen dtype zuweisen
Verfasst: Mittwoch 5. März 2014, 19:52
Zur Sonifizierung eines Bildes (ich bin eher Künstler als Programmierer) sitze ich gerade an einer Bildanalyse.
Das Bild ist bereits segmentiert und mir liegen die Labels vor. Jetzt möchte ich die zu jedem Label gehörenden Pixelkoordinaten in ein Numpy-Array schreiben. Da ich im Vorfeld nicht weiß, wie die Struktur dieses Arrays aussieht, erstelle ich zunächst eine Liste, an die ich die Koordinaten jedes Labels in einer Schleife nach und nach anhänge.
Bei der Erstellung des Arrays aus der Liste habe ich jetzt das Problem, dass ich keinen dtype zuweisen kann, ich kriege immer folgende Fehlermeldung:
Hier der Code des entsprechenden Programmteils, die letzte Zeile verursacht den obigen Fehler:
Ich bin momentan ziemlich ratlos, sowohl was die Ursache als auch die Lösung des Problems angeht, könnt ihr mir weiterhelfen?
Das Bild ist bereits segmentiert und mir liegen die Labels vor. Jetzt möchte ich die zu jedem Label gehörenden Pixelkoordinaten in ein Numpy-Array schreiben. Da ich im Vorfeld nicht weiß, wie die Struktur dieses Arrays aussieht, erstelle ich zunächst eine Liste, an die ich die Koordinaten jedes Labels in einer Schleife nach und nach anhänge.
Bei der Erstellung des Arrays aus der Liste habe ich jetzt das Problem, dass ich keinen dtype zuweisen kann, ich kriege immer folgende Fehlermeldung:
Code: Alles auswählen
ValueError: setting an array element with a sequence.
Code: Alles auswählen
import numpy as np
img_labels = [[ 0 0 1 1 2 2 3 3 4 4 5 5]
[ 0 0 1 1 2 2 3 3 4 4 11 5]
[ 6 6 7 7 8 8 8 9 10 10 11 5]
[ 6 6 7 7 8 8 9 9 10 10 10 11]
[12 12 12 14 14 8 15 9 16 16 16 17]
[13 13 13 20 20 14 14 15 16 16 17 17]
[18 18 19 19 20 20 21 22 22 22 22 23]
[18 18 19 19 20 20 21 21 22 22 23 23]]
unique_labels = np.unique(img_labels)
coord_list = []
for i in unique_labels:
current_indices = np.argwhere(img_labels == i)
coord_list.append(current_indices.tolist())
label_coord = np.array(coord_list, dtype = np.int64 )