Sto cercando quanto segue. Ho una matrice numpy che è etichettata come regioni. La matrice numpy rappresenta un'immagine segmentata. Una regione è un numero di celle adiacenti con lo stesso valore. Ogni regione ha il suo valore unico. Una versione semplificata con 3 regioni sarebbe simile a questa:Determinare le regioni adiacenti nell'array numpy
x = np.array([[1, 1, 1], [1, 1, 2], [2, 2, 2], [3, 3, 3]], np.int32)
uscita:
array([[1, 1, 1],
[1, 1, 2],
[2, 2, 2],
[3, 3, 3]])
Nell'esempio sopra abbiamo 3 regioni distinte, ciascuna marcata con un valore univoco (1,2,3 in questo caso).
Quello che voglio è il valore delle regioni adiacenti (vicini) per ogni singola regione. Quindi in questo caso:
- Regione 1 è adiacente alla regione 2
- Regione 2 è adiacente alla zona 1 e 3
- regione 3 è adiacente alla regione 2
Quale sarebbe il modo più elegante e veloce per raggiungere questo?
Grazie mille!
Puoi spiegare cosa intendi per regioni? Vuoi dire colonne? –
Ho aggiunto alcune spiegazioni aggiuntive sulla definizione delle regioni in questo caso. – cf2