Seite 1 von 1

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

Verfasst: Freitag 13. März 2020, 10:05
von Metatron
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?

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

Verfasst: Freitag 13. März 2020, 10:31
von Sirius3
`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]