【发布时间】:2012-12-05 19:59:24
【问题描述】:
我有一个 n:2 矩阵,其中点 (x,y) 从矩形校准图案中的点中找到。 我喜欢逐行对这些点进行排序。 我已经用 lexsort 对这些点进行了排序,但是相机的失真太大,以至于 y 坐标会重叠。
imageloading...
blobs=imageprocessing....
coordinates=np.array([blob.centroid() for blob in blobs])
nd=np.lexsort((coordinates[:,0],coordinates[:,1]))
coordinates=coordinates[ind]
有没有办法在 delaunay 模式的帮助下进行排序?
import matplotlib.tri as tri
x=coordinates[:,0] y=coordinates[:,1]
triang = tri.Triangulation(x, y)
【问题讨论】:
-
你能指望 x 坐标不重叠吗?您可以颠倒排序顺序,然后转置结果矩阵。这将使生活变得更加轻松。 Delaunay 三角剖分对小的重叠可能更稳健,但如果失真太大,也会破坏矩形模式。
-
为什么要对它们进行排序?校准的重点是您可以“只是”在算法中放置大量点。校准后,您可以恢复图像,并且点将完全在线。
标签: python sorting numpy matplotlib delaunay