Liste mit allen Koordinaten erzeugen von einem 2D-Array wo die einträge größer 0 sind

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Metatron
User
Beiträge: 42
Registriert: Donnerstag 10. Mai 2018, 08:35

Hallo,

ich habe zwei 2-D Arrays, und ich möchte mir möglchst schnell eine liste mit Koordinaten erstellen in denen ein eintrag in einen oder beiden Array größer als null ist.
Ein Code sagt mehr als tausend worte, so hatte ich mir das gedacht:

Code: Alles auswählen

	
	        mask = np.logical_or(img[:,:,0] > 0, img[:,:,1] > 0)
		itemindex = np.where(mask ==True)		
		
		for ii in itemindex:
			h = ii[0]
			w = ii[1]
leider bekomme ich nicht keine 2D Koordinaten zurück sondern 1D indexe (???)
könnt ihr mir kurz auf die sprünge hefen?
Sirius3
User
Beiträge: 18221
Registriert: Sonntag 21. Oktober 2012, 17:20

`np.where` betrachtet die Arrays als flach.

Code: Alles auswählen

mask = (img > 0).any(axis=2)
row_indices, column_indices = np.indices(mask.shape)
row_indices = row_indices[mask]
column_indices = column_indices[mask]
Antworten