Ho una matrice n: 2 con punti (x, y) trovati da punti in un modello di calibrazione rettangolare. Mi piace ordinare questi punti riga per riga. Ho ordinato questi punti con lexsort ma la distorsione dalla fotocamera è troppo grande in modo che le coordinate y si sovrappongano.ordina punti di calibrazione 2d con numpy
imageloading...
blobs=imageprocessing....
coordinates=np.array([blob.centroid() for blob in blobs])
nd=np.lexsort((coordinates[:,0],coordinates[:,1]))
coordinates=coordinates[ind]
C'è un modo per risolvere la questione con l'aiuto di un modello di Delaunay andando un lungo le righe?
import matplotlib.tri as tri
x=coordinates[:,0] y=coordinates[:,1]
triang = tri.Triangulation(x, y)
Riesci a contare sulle coordinate x non sovrapposte? È possibile invertire il proprio ordine di selezione e quindi trasporre la matrice risultante. Ciò renderebbe la vita molto più semplice. La triangolazione di Delaunay può essere più robusta rispetto alle piccole sovrapposizioni, ma se la distorsione è troppo grande, si romperà anche il motivo rettangolare. – Jaime
Perché dovresti ordinarli? Il punto di calibrazione è che puoi "solo" inserire un gran numero di punti negli algoritmi. Dopo la calibrazione, è possibile ripristinare l'immagine e i punti saranno esattamente sulle linee. – RobAu