Mam n: 2 macierz z punktami (x, y) znalezionymi z kropek w prostokątnym wzorcu kalibracji. Lubię sortować te punkty po kolei. Posortowałem te punkty za pomocą polecenia lexsort, ale zniekształcenie w kamerze jest zbyt duże, aby współrzędne y zachodziły na siebie.sortuj punkty kalibracji 2d z numpy
imageloading...
blobs=imageprocessing....
coordinates=np.array([blob.centroid() for blob in blobs])
nd=np.lexsort((coordinates[:,0],coordinates[:,1]))
coordinates=coordinates[ind]
Czy istnieje sposób, aby to rozwiązać przy pomocy wzoru Delaunaya będzie długie wiersze?
import matplotlib.tri as tri
x=coordinates[:,0] y=coordinates[:,1]
triang = tri.Triangulation(x, y)
Czy możesz liczyć na współrzędne x, które się nie nakładają? Możesz odwrócić kolejność sortowania, a następnie transponować wynikową macierz. To znacznie ułatwiłoby życie. Triangulacja Delaunaya może być bardziej odporna na małe nakładki, ale jeśli zniekształcenie jest zbyt duże, spowoduje to również rozbicie prostokątnego wzoru. – Jaime
Dlaczego chcesz je sortować? Punktem kalibracji jest to, że możesz "po prostu" umieścić dużą liczbę punktów w algorytmach. Po wykonaniu kalibracji możesz przywrócić obraz, a punkty będą dokładnie na liniach. – RobAu